亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        現(xiàn)場總線協(xié)議轉(zhuǎn)換硬件架構(gòu)設(shè)計*

        2022-04-19 10:49:22王雪迪時廣軼
        電子技術(shù)應(yīng)用 2022年4期
        關(guān)鍵詞:總線錯誤控制器

        王雪迪,王 博,時廣軼,嚴 偉

        (北京大學(xué) 軟件與微電子學(xué)院,北京 102627)

        0 引言

        現(xiàn)場總線是20 世紀80 年代中期發(fā)展起來的通信、控制技術(shù),帶給20 世紀90 年代的工業(yè)控制領(lǐng)域一場革命。與其他工業(yè)領(lǐng)域的網(wǎng)絡(luò)相比,現(xiàn)場總線采用串行通信方式,具有穩(wěn)定性高、布網(wǎng)簡單、設(shè)備開發(fā)周期快等優(yōu)點,迅速發(fā)展成為工業(yè)控制領(lǐng)域內(nèi)應(yīng)用最廣泛的通信網(wǎng)絡(luò)。

        自現(xiàn)場總線出現(xiàn)以來,工業(yè)控制領(lǐng)域出現(xiàn)了多種現(xiàn)場總線標準,這些標準在出現(xiàn)之初都曾被廣泛應(yīng)用過,它們在不同的方面占據(jù)優(yōu)勢。隨著工業(yè)應(yīng)用場景的變化其他新型總線標準不斷出現(xiàn)。目前業(yè)內(nèi)大約存在著40種現(xiàn)場總線標準,但絕大部分的市場份額被少數(shù)幾種總線標準占據(jù)。

        目前現(xiàn)場總線出現(xiàn)的這種多種標準并存的現(xiàn)象,一方面是受到商業(yè)利益的驅(qū)使[1],另一方面還存在客觀上的原因。新應(yīng)用場景、新技術(shù)層出不窮,至今仍沒有一種現(xiàn)存的現(xiàn)場總線能夠滿足所有應(yīng)用要求,用戶不得不根據(jù)自己的需要選擇不同的總線設(shè)備。不同現(xiàn)場總線網(wǎng)絡(luò)間不可互相通信,所以多種總線標準并存勢必會大大降低系統(tǒng)的組態(tài)性和靈活性,增加系統(tǒng)的后續(xù)改造升級難度。由此可見,提出實現(xiàn)一種不同現(xiàn)場總線間的協(xié)議轉(zhuǎn)換架構(gòu),是一個具有較高使用價值的研究內(nèi)容,解決工業(yè)領(lǐng)域不同設(shè)備不同總線協(xié)議之間的通信問題,降低開發(fā)、組網(wǎng)成本。

        國內(nèi)對協(xié)議轉(zhuǎn)換的研究與開發(fā)仍主要集中在現(xiàn)場總線網(wǎng)關(guān)的開發(fā),且大多采用通用嵌入式處理器實現(xiàn),協(xié)議轉(zhuǎn)換的實時性和確定性較差。戈瑞[2]實現(xiàn)了一種MODBUS 總線與CAN 總線的一對一的轉(zhuǎn)換器設(shè)計,包括兩種總線協(xié)議數(shù)據(jù)的轉(zhuǎn)換和地址的互相尋址。轉(zhuǎn)換方案的硬件平臺采用DSP 和CAN 總線控制器實現(xiàn),PC 作為MODBUS 主站,另一個DSP 和51 單片機以及CAN 控制器作為兩個CAN 節(jié)點。DSP 芯片集成了CAN 總線控制器。莊乾成等[3]實現(xiàn)了以太網(wǎng)與現(xiàn)場總線CAN 協(xié)議的轉(zhuǎn)換,文獻中提到的協(xié)議轉(zhuǎn)換方案,是將CAN 總線幀中的數(shù)據(jù)或者以太網(wǎng)幀中的數(shù)據(jù)提取出來,再封裝進目的協(xié)議幀中,沒有對網(wǎng)絡(luò)中的地址、錯誤處理等部分進行轉(zhuǎn)換。胥軍等[4]通過嵌入式的方式,采用ASPC2 專用PROFIBUS-DP 芯片實現(xiàn)了從PROFIBUS-DP 主站到MODBUS 從站的單向協(xié)議轉(zhuǎn)換。其中協(xié)議數(shù)據(jù)轉(zhuǎn)換方式是將MODBUS 的ADU 數(shù)據(jù)作為PROFIBUS-DP 數(shù)據(jù)鏈路層的DU 域從PROFIBUS-DP 發(fā)給轉(zhuǎn)換器,轉(zhuǎn)換器再將DU 中的數(shù)據(jù)ADU 取走發(fā)給MODBUS 從站,僅實現(xiàn)了協(xié)議數(shù)據(jù)的轉(zhuǎn)換。LOU GUOHUAN 等[5]進行了PROFIBUS和CAN 協(xié)議之間的轉(zhuǎn)換,建立了統(tǒng)一的報文格式和地址編址。硬件平臺采用ARM9 單片機S3C2410 作為主控芯片,使用Linux 操作系統(tǒng)。文獻中對PROFIBUS 和CAN協(xié)議之間的轉(zhuǎn)換做了較為詳細的闡述,但是采用嵌入式操作系統(tǒng),協(xié)議轉(zhuǎn)換的實時性較差,且沒有對協(xié)議的錯誤處理進行轉(zhuǎn)換。RONG YIN 等[6]進行了統(tǒng)一的協(xié)議數(shù)據(jù)處理,統(tǒng)一的數(shù)據(jù)幀中包括了da、sa、pr、fc 和df 共五段。設(shè)計了消息緩沖機制。一旦應(yīng)用層需要讀取現(xiàn)場設(shè)備的狀態(tài)數(shù)據(jù),就向網(wǎng)關(guān)發(fā)送讀取命令消息。硬件平臺采用ARM11 微處理器s3c6410 為核心,采用嵌入式的處理方式,實現(xiàn)協(xié)議數(shù)據(jù)轉(zhuǎn)換。

        綜合以上國內(nèi)外研究現(xiàn)狀,目前對于協(xié)議轉(zhuǎn)換工作的研究,大多只對協(xié)議數(shù)據(jù)做重新封裝,將協(xié)議數(shù)據(jù)放入目的協(xié)議幀中進行轉(zhuǎn)發(fā),部分研究進行了較深入的協(xié)議轉(zhuǎn)換,編制了統(tǒng)一的地址,定義了統(tǒng)一的報文格式。但絕大多數(shù)的研究工作都沒有對協(xié)議的錯誤處理錯誤響應(yīng)機制進行轉(zhuǎn)換,協(xié)議的錯誤處理錯誤響應(yīng)機制在協(xié)議組成中是至關(guān)重要的一部分,它能保證總線網(wǎng)絡(luò)的正常運行以及總線突發(fā)情況的正確及時處理,能夠極大地保障網(wǎng)絡(luò)的穩(wěn)定性,所以對協(xié)議的錯誤處理錯誤響應(yīng)機制的轉(zhuǎn)換,是協(xié)議轉(zhuǎn)換工作中重要的組成部分。其次絕大多數(shù)的研究工作采用的是嵌入式的處理方式,即由總線控制模塊和通用處理器組成,采用嵌入式軟件或基于Linux 操作系統(tǒng)的軟件平臺進行協(xié)議轉(zhuǎn)換,受限于通用處理器的通用架構(gòu)和中斷處理等機制,以及操作系統(tǒng)的調(diào)度機制,總線協(xié)議幀接收以及轉(zhuǎn)換時間較長且不確定,協(xié)議轉(zhuǎn)換實時性較差,不能滿足工業(yè)4.0 對于通信實時性和確定性的要求。

        1 協(xié)議轉(zhuǎn)換原理設(shè)計

        1.1 協(xié)議轉(zhuǎn)換拓撲結(jié)構(gòu)

        本協(xié)議轉(zhuǎn)換方案支持三種協(xié)議的相互轉(zhuǎn)換,支持三種網(wǎng)絡(luò)拓撲結(jié)構(gòu):MODBUS 總線網(wǎng)絡(luò)、CAN 總線網(wǎng)絡(luò)、HART 總線網(wǎng)絡(luò)。三種網(wǎng)絡(luò)拓撲結(jié)構(gòu)有所不同。

        1.1.1 MODBUS 總線網(wǎng)絡(luò)拓撲結(jié)構(gòu)

        當整個網(wǎng)絡(luò)工作在MODBUS 總線網(wǎng)絡(luò)中時,網(wǎng)絡(luò)的拓撲結(jié)構(gòu)如圖1 所示。

        圖1 MODBUS 總線網(wǎng)絡(luò)拓撲圖

        整個網(wǎng)絡(luò)中只有1 個MODBUS 主設(shè)備,MODBUS 從設(shè)備以及CAN 節(jié)點設(shè)備、HART 從站,均是MODBUS 總線網(wǎng)絡(luò)的從設(shè)備。協(xié)議轉(zhuǎn)換器和其他MODBUS 從設(shè)備相同,通過MODBUS 物理層電路接入MODBUS 總線網(wǎng)絡(luò)中。協(xié)議轉(zhuǎn)換器通過CAN 總線的控制器和收發(fā)器與CAN 總線網(wǎng)絡(luò)連接;通過HART 總線的控制器和物理層電路與HART 總線網(wǎng)絡(luò)連接。

        MODBUS 主設(shè)備可尋址網(wǎng)絡(luò)中的MODBUS 從設(shè)備以及CAN 節(jié)點設(shè)備、HART 從站設(shè)備。網(wǎng)絡(luò)中的CAN 節(jié)點設(shè)備、HART 從站設(shè)備轉(zhuǎn)接到MODBUS 總線網(wǎng)絡(luò)時,只作為MODBUS 主設(shè)備的從站,可將MODBUS 主站請求的數(shù)據(jù)通過轉(zhuǎn)換器傳輸?shù)組ODBUS 總線網(wǎng)絡(luò)中。其中CAN 節(jié)點設(shè)備轉(zhuǎn)接到MODBUS 總線網(wǎng)絡(luò)時,CAN 節(jié)點設(shè)備不可向其他CAN 節(jié)點和MODBUS 設(shè)備、HART 從站發(fā)送遙控幀請求數(shù)據(jù);HART 從站設(shè)備轉(zhuǎn)接到MODBUS 總線網(wǎng)絡(luò)時,不可向其他HART 從站和CAN 節(jié)點、MODBUS從設(shè)備發(fā)送命令幀請求數(shù)據(jù)。

        1.1.2 CAN 總線網(wǎng)絡(luò)拓撲結(jié)構(gòu)

        當整個網(wǎng)絡(luò)工作在CAN 總線網(wǎng)絡(luò)中時,網(wǎng)絡(luò)的拓撲結(jié)構(gòu)如圖2 所示。

        圖2 CAN 總線網(wǎng)絡(luò)拓撲圖

        協(xié)議轉(zhuǎn)換器和其他CAN 節(jié)點設(shè)備相同,通過CAN 收發(fā)器電路接入CAN 總線網(wǎng)絡(luò)中。協(xié)議轉(zhuǎn)換器通過MODBUS 控制器和物理層電路與MODBUS 總線網(wǎng)絡(luò)連接;通過HART 總線的控制器和物理層電路與HART 總線網(wǎng)絡(luò)連接。

        CAN 總線網(wǎng)絡(luò)中的CAN 節(jié)點設(shè)備,可向MODBUS 從設(shè)備和HART 從站發(fā)送遙控幀請求數(shù)據(jù)。網(wǎng)絡(luò)中的MODBUS 從設(shè)備、HART 從站設(shè)備轉(zhuǎn)接到CAN 總線網(wǎng)絡(luò)時,只作為CAN 總線網(wǎng)絡(luò)中的節(jié)點,不可發(fā)送遙控幀請求數(shù)據(jù),可發(fā)送數(shù)據(jù)幀和錯誤幀等其他幀類型。其中MODBUS從設(shè)備轉(zhuǎn)接到CAN 總線網(wǎng)絡(luò)時,MODBUS 從設(shè)備不可向其他MODBUS 設(shè)備發(fā)送MODBUS 命令請求數(shù)據(jù);HART從站設(shè)備轉(zhuǎn)接到CAN 總線網(wǎng)絡(luò)時,不可向其他HART 從站和發(fā)送命令幀請求數(shù)據(jù)。

        1.1.3 HART 總線網(wǎng)絡(luò)拓撲結(jié)構(gòu)

        當整個網(wǎng)絡(luò)工作在HART 總線網(wǎng)絡(luò)中時,網(wǎng)絡(luò)的拓撲結(jié)構(gòu)如圖3 所示。

        圖3 HART 總線網(wǎng)絡(luò)拓撲圖

        整個網(wǎng)絡(luò)中只有1 個HART 主站、1 個HART 第二主站,MODBUS 從設(shè)備以及CAN 節(jié)點設(shè)備均是HART 總線網(wǎng)絡(luò)的從站。協(xié)議轉(zhuǎn)換器和其他HART 從站相同,通過HART 物理層電路接入HART 總線網(wǎng)絡(luò)中。協(xié)議轉(zhuǎn)換器通過CAN 總線的控制器和收發(fā)器與CAN 總線網(wǎng)絡(luò)連接;通過MODBUS 總線的控制器和物理層電路與MODBUS總線網(wǎng)絡(luò)連接。

        HART 主站可尋址網(wǎng)絡(luò)中的HART 從站以及CAN節(jié)點設(shè)備、MODBUS 從設(shè)備。網(wǎng)絡(luò)中的CAN 節(jié)點設(shè)備、MODBUS 從設(shè)備轉(zhuǎn)接到HART 總線網(wǎng)絡(luò)時,只作為HART網(wǎng)絡(luò)的從站,可將HART 主站請求的數(shù)據(jù)通過轉(zhuǎn)換器傳輸?shù)紿ART 總線網(wǎng)絡(luò)中。其中CAN 節(jié)點設(shè)備轉(zhuǎn)接到HART 總線網(wǎng)絡(luò)時,CAN 節(jié)點設(shè)備不可向其他CAN 節(jié)點和MODBUS 設(shè)備、HART 從站發(fā)送遙控幀請求數(shù)據(jù);MODBUS 從設(shè)備轉(zhuǎn)接到HART 總線網(wǎng)絡(luò)時,不可向其他HART 從站和CAN 節(jié)點、MODBUS 從設(shè)備發(fā)送命令幀請求數(shù)據(jù)。

        1.2 地址轉(zhuǎn)換

        1.2.1 MODBUS 總線網(wǎng)絡(luò)

        當協(xié)議轉(zhuǎn)換器工作在MODBUS 總線網(wǎng)絡(luò)時,則要求給每個CAN 節(jié)點設(shè)備和HART 從設(shè)備分配一個8 位地址,且符合MODBUS 總線協(xié)議地址要求。對于HART 設(shè)備,要求使用長地址,且每個長地址對應(yīng)一個MODBUS總線地址,此MODBUS 總線地址在整個MODBUS 總線網(wǎng)絡(luò)中唯一。對于CAN 設(shè)備,需要找到每個CAN 設(shè)備獨特的ID 號,獨特的ID 號表示只有本CAN 節(jié)點設(shè)備可接收的ID 幀數(shù)據(jù),其他CAN 設(shè)備不能接收此ID 幀數(shù)據(jù),如果CAN 總線設(shè)備沒有獨特的ID 號,則需要創(chuàng)建一個獨特的ID 號,專門用來被MODBUS 主設(shè)備尋址,然后將此ID 號對應(yīng)為一個MODBUS 總線地址。

        1.2.2 CAN 總線網(wǎng)絡(luò)

        CAN 設(shè)備沒有主從之分,而是通過總線幀中的仲裁段ID 進行仲裁,以獲取總線發(fā)送權(quán)。CAN 節(jié)點通過發(fā)送遙控幀請求其他節(jié)點數(shù)據(jù),數(shù)據(jù)幀的優(yōu)先級要高于遙控幀。

        當協(xié)議轉(zhuǎn)換器工作在CAN 總線網(wǎng)絡(luò)時,應(yīng)為每個MODBUS 從設(shè)備和HART 從站分配一個固定的CAN ID號,同時規(guī)定這些ID 號只能用來尋址MODBUS 從設(shè)備和HART 從站,其他CAN 節(jié)點不能回復(fù)此ID 幀數(shù)據(jù),保證只有一個MODBUS 從設(shè)備或HART 從站回復(fù)此ID的協(xié)議幀。要求HART 采取長地址,也就是唯一地址,每一個長地址對應(yīng)一個CAN ID。

        1.2.3 HART 總線網(wǎng)絡(luò)

        當協(xié)議轉(zhuǎn)換器工作在HART 網(wǎng)絡(luò)時,則要求HART網(wǎng)絡(luò)使用長地址模式,由于HART 設(shè)備的長地址是設(shè)備廠商出場時所附有的唯一地址,因此本轉(zhuǎn)換模塊工作的HART 總線網(wǎng)絡(luò)中MODBUS 總線和CAN 總線設(shè)備的地址為虛擬HART 長地址,僅滿足在本HART 網(wǎng)絡(luò)內(nèi)唯一即可。對于網(wǎng)絡(luò)中的MODBUS 設(shè)備,需要將每個MODBUS 設(shè)備的地址對應(yīng)為一個HART 長地址;對于網(wǎng)絡(luò)中的CAN 設(shè)備,需要將每個CAN 設(shè)備獨特的ID 號對應(yīng)為一個HART 長地址。

        1.3 協(xié)議幀轉(zhuǎn)換

        本部分定義一種統(tǒng)一的數(shù)據(jù)幀結(jié)構(gòu),協(xié)議轉(zhuǎn)換模塊將接收到的各協(xié)議數(shù)據(jù)轉(zhuǎn)換為統(tǒng)一的數(shù)據(jù)幀格式進行緩存,然后再將緩存的統(tǒng)一數(shù)據(jù)幀轉(zhuǎn)換為目標協(xié)議的幀格式發(fā)送出去。兩種協(xié)議幀之間的轉(zhuǎn)換,可以采用一對一的轉(zhuǎn)換方式,但這樣做的缺點在于每增加一種新的總線形式都需要針對其他總線類型進行新的轉(zhuǎn)換設(shè)計,擴展性和兼容性較差。所以本方案定義一種統(tǒng)一的數(shù)據(jù)幀格式,增加新的協(xié)議幀不需要再針對其他協(xié)議進行轉(zhuǎn)換設(shè)計,只需要將新的協(xié)議幀轉(zhuǎn)換為統(tǒng)一的數(shù)據(jù)幀格式。

        統(tǒng)一的數(shù)據(jù)幀結(jié)構(gòu)如圖4 所示。

        圖4 數(shù)據(jù)幀結(jié)構(gòu)圖

        SAddr 代表源地址,DAddr 代表目的地址,Length 代表Data 字段長度,即字節(jié)數(shù)量;Timer_a 和Timer_b 用來存放時間戳信息,Type 表示原協(xié)議幀類型,Data 字段表示協(xié)議幀數(shù)據(jù)。

        SAddr 和DAddr,如果原協(xié)議幀是CAN 總線協(xié)議幀,那么SAddr 和DAddr 均為CAN 協(xié)議幀中的ID 號;如果原協(xié)議幀是MODBUS 總線和HART 總線協(xié)議幀,那么SAddr 是發(fā)送協(xié)議幀的設(shè)備地址,DAddr 是目的地址。

        Length,表示Data 字段的字節(jié)數(shù)量,長度為1 B。

        Timer_a 和Timer_b,字段長度均為1 B,用于應(yīng)用層對鏈路層協(xié)議幀的實時性進行控制,為了保證通信的實時性,應(yīng)在應(yīng)用層設(shè)計監(jiān)聽程序,對所有的數(shù)據(jù)請求、數(shù)據(jù)交換進行監(jiān)聽與調(diào)度,利用此字段進行時間約束。

        Type,字段長度為1 B,表示原協(xié)議幀類型。

        Data 為數(shù)據(jù)字段。如果原協(xié)議幀是MODBUS 總線協(xié)議幀,需要將MODBUS 總線協(xié)議幀的功能碼、數(shù)據(jù)段填入此Data 段。如果原協(xié)議幀是HART 總線協(xié)議幀,需要將HART 協(xié)議幀的命令字段、數(shù)據(jù)段填入此Data 段。如果原協(xié)議幀是CAN 總線協(xié)議幀,需要將CAN 協(xié)議幀的數(shù)據(jù)段填入此Data 段。

        1.4 錯誤通知轉(zhuǎn)換

        1.4.1 協(xié)議轉(zhuǎn)換器工作在CAN 網(wǎng)絡(luò)狀態(tài)

        當網(wǎng)絡(luò)工作在CAN 總線網(wǎng)絡(luò)時,一方面需要將MODBUS 從設(shè)備和HART 從站的錯誤響應(yīng)轉(zhuǎn)換為CAN總線的錯誤響應(yīng),另一方面,協(xié)議轉(zhuǎn)換器作為發(fā)送設(shè)備應(yīng)發(fā)出錯誤通知和作為接收設(shè)備檢測總線錯誤。

        當CAN 總線設(shè)備發(fā)送遙控幀,請求MODBUS 從設(shè)備和HART 從站數(shù)據(jù)時,如果發(fā)送遙控幀的CAN 設(shè)備產(chǎn)生了位錯誤、格式錯誤,轉(zhuǎn)換模塊中的CAN 控制器在接收到此類錯誤時,不會將錯誤的遙控幀轉(zhuǎn)換后發(fā)給MODBUS 從設(shè)備和HART 從站,同時按照CAN 協(xié)議規(guī)范向總線發(fā)送錯誤通知。如果轉(zhuǎn)換模塊接收到遙控幀,檢測到總線上的遙控幀的填充錯誤或CRC 錯誤,轉(zhuǎn)換模塊的CAN 控制器產(chǎn)生錯誤通知,不會將錯誤的遙控幀轉(zhuǎn)換后發(fā)給MODBUS 從設(shè)備和HART 從站。如果CAN設(shè)備的遙控幀成功發(fā)送給MODBUS 從設(shè)備和HART 從站后,MODBUS 從設(shè)備和HART 從站回復(fù)錯誤響應(yīng)給轉(zhuǎn)換模塊,轉(zhuǎn)換模塊將不會向CAN 設(shè)備發(fā)出錯誤幀,這是由于CAN 協(xié)議的錯誤通知均是在協(xié)議幀正在發(fā)送過程中進行上報,轉(zhuǎn)換模塊成功接收遙控幀后,不能再上報CAN 協(xié)議錯誤通知。

        如果MODBUS 從設(shè)備和HART 從站回復(fù)校驗錯誤,或HART 設(shè)備回復(fù)組幀錯誤,那么轉(zhuǎn)換模塊將再次發(fā)送命令幀給MODBUS/HART 設(shè)備回復(fù),并設(shè)定最大重復(fù)次數(shù);如果MODBUS 從設(shè)備和HART 從站回復(fù)地址錯誤,或MODBUS 設(shè)備回復(fù)非法功能錯誤等其他應(yīng)用層錯誤,那么轉(zhuǎn)換模塊將錯誤響應(yīng)幀轉(zhuǎn)換為CAN 協(xié)議的ACK幀,將錯誤信息放入data 字段,回復(fù)給CAN 設(shè)備。

        如果CAN 設(shè)備的遙控幀成功發(fā)送給MODBUS 從設(shè)備和HART 從站后,MODBUS 從設(shè)備和HART 從站回復(fù)正確的響應(yīng)幀,轉(zhuǎn)換模塊將響應(yīng)幀進行轉(zhuǎn)換后發(fā)送至CAN 總線上,如在發(fā)送過程中產(chǎn)生位錯誤、格式錯誤、ACK 錯誤,轉(zhuǎn)換模塊將按照CAN 協(xié)議要求進行錯誤通知與重發(fā)操作,如果CAN 接收設(shè)備檢測到響應(yīng)幀的填充錯誤、格式錯誤、CRC 錯誤,轉(zhuǎn)換模塊在檢測到錯誤通知后進行錯誤響應(yīng)與重發(fā)操作。

        1.4.2 協(xié)議轉(zhuǎn)換器工作在MODBUS 網(wǎng)絡(luò)狀態(tài)

        當協(xié)議轉(zhuǎn)換器工作在MODBUS 總線網(wǎng)絡(luò)時,需要將CAN 節(jié)點和HART 從站的錯誤響應(yīng)轉(zhuǎn)換為MODBUS 總線的異常響應(yīng)。當MODBUS 主站發(fā)送的命令幀請求CAN 節(jié)點和HART 從站回復(fù)時,如果轉(zhuǎn)換模塊接收到的命令幀CRC 校驗錯誤或奇偶校驗錯誤時,轉(zhuǎn)換模塊不會將此幀數(shù)據(jù)轉(zhuǎn)換后發(fā)送至CAN 節(jié)點和HART 從站,同時轉(zhuǎn)換模塊回復(fù)異常響應(yīng)PDU 至MODBUS 主站設(shè)備。

        如果轉(zhuǎn)換模塊接收到正確的MODBUS 主站命令PDU,轉(zhuǎn)換模塊將命令PDU 轉(zhuǎn)換后發(fā)送至CAN 節(jié)點和HART 從站,CAN 節(jié)點和HART 從站將響應(yīng)幀發(fā)送至轉(zhuǎn)換模塊的過程中產(chǎn)生的鏈路層錯誤,按照相應(yīng)協(xié)議要求,在CAN 節(jié)點和HART 從站和轉(zhuǎn)換模塊之間進行錯誤響應(yīng)與錯誤處理,不會將錯誤通知發(fā)送到MODBUS 網(wǎng)絡(luò)中;CAN 節(jié)點和HART 從站將響應(yīng)幀發(fā)送至轉(zhuǎn)換模塊的過程中產(chǎn)生的應(yīng)用層錯誤,轉(zhuǎn)換模塊將錯誤碼轉(zhuǎn)換成MODBUS 協(xié)議中規(guī)定的錯誤代碼,回復(fù)異常響應(yīng)PDU 至MODBUS 主站。

        1.4.3 協(xié)議轉(zhuǎn)換器工作在HART 網(wǎng)絡(luò)狀態(tài)

        當協(xié)議轉(zhuǎn)換器工作在HART 總線網(wǎng)絡(luò)時,需要將CAN節(jié)點和MODBUS 從設(shè)備的錯誤響應(yīng)轉(zhuǎn)換為HART 總線的錯誤響應(yīng)。當HART 主站發(fā)送的命令幀請求CAN 節(jié)點和MODBUS 從設(shè)備回復(fù)時,如果轉(zhuǎn)換模塊接收到的命令幀奇偶校驗錯誤,轉(zhuǎn)換模塊不會將此幀數(shù)據(jù)轉(zhuǎn)換后發(fā)送至CAN 節(jié)點和MODBUS 從設(shè)備,同時轉(zhuǎn)換模塊回復(fù)異常響應(yīng)幀至HART 主站設(shè)備。

        如果轉(zhuǎn)換模塊接收到正確的HART 主站命令PDU,轉(zhuǎn)換模塊將命令PDU 轉(zhuǎn)換后發(fā)送至CAN 節(jié)點和MODBUS從設(shè)備,CAN 節(jié)點和MODBUS 從設(shè)備將響應(yīng)幀發(fā)送至轉(zhuǎn)換模塊的過程中產(chǎn)生的鏈路層錯誤,按照相應(yīng)協(xié)議要求,在CAN 節(jié)點和MODBUS 從設(shè)備和轉(zhuǎn)換模塊之間進行錯誤響應(yīng)與錯誤處理,不會將錯誤通知發(fā)送到HART網(wǎng)絡(luò)中;CAN 節(jié)點和MODBUS 從設(shè)備將響應(yīng)幀發(fā)送至轉(zhuǎn)換模塊的過程中產(chǎn)生的應(yīng)用層錯誤,轉(zhuǎn)換模塊將錯誤碼轉(zhuǎn)換成HART 協(xié)議中規(guī)定的錯誤代碼,回復(fù)錯誤響應(yīng)PDU 至HART 主 站。

        1.5 總線速度匹配

        本部分主要解決兩個傳輸速率差距較大的總線網(wǎng)絡(luò)之間的通信問題。當傳輸速率高的總線網(wǎng)絡(luò)向速率低的網(wǎng)絡(luò)發(fā)送命令請求數(shù)據(jù)時,此時兩個網(wǎng)絡(luò)傳輸速率差距較大,應(yīng)答設(shè)備通過速率較低的網(wǎng)絡(luò)接收和發(fā)送應(yīng)答幀,發(fā)出命令的設(shè)備可能會出現(xiàn)等待應(yīng)答超時的錯誤。

        當網(wǎng)絡(luò)工作在HART 網(wǎng)絡(luò)狀態(tài)時,由于HART 網(wǎng)絡(luò)傳輸速率最低,傳輸速率為1 200 b/s,HART 主站向CAN節(jié)點和MODBUS 從設(shè)備發(fā)送命令時,不會出現(xiàn)等待超時的錯誤。

        當網(wǎng)絡(luò)工作在MODBUS 網(wǎng)絡(luò)狀態(tài)時,傳輸速率可選較低的9 600 b/s。MODBUS 主設(shè)備向CAN 節(jié)點設(shè)備發(fā)送命令時,由于CAN 總線的傳輸速率最高可達1 Mb/s,因此不會出現(xiàn)等待超時錯誤;MODBUS 主設(shè)備向HART 從站發(fā)送命令時,經(jīng)計算,即使HART 網(wǎng)絡(luò)的傳輸速率為9 600 b/s,也能滿足MODBUS 總線協(xié)議要求的應(yīng)答間隔低于3.5 個字符時間,所以不會出現(xiàn)等待超時錯誤。

        當網(wǎng)絡(luò)工作在CAN 網(wǎng)絡(luò)狀態(tài),如果CAN 網(wǎng)絡(luò)的傳輸速率是最高的1 Mb/s,則與其他兩種總線傳輸速率差距很大,但是由于CAN 總線協(xié)議只規(guī)定了鏈路層傳輸規(guī)范,沒有定義應(yīng)答超時的錯誤機制。為解決此狀態(tài)下的總線速度不匹配問題,可采取以下兩種方式:(1)在CAN 網(wǎng)絡(luò)上定義的應(yīng)用層,其應(yīng)答間隔定義時長能滿足總線速度差異產(chǎn)生的傳輸間隔。采用這種方式,缺點是整個網(wǎng)絡(luò)的通信效率較低,浪費了CAN 網(wǎng)絡(luò)的傳輸帶寬;優(yōu)點是開發(fā)難度較小。(2)采取異步數(shù)據(jù)緩存的方法。在總線網(wǎng)絡(luò)空閑階段,轉(zhuǎn)換模塊不斷向HART/MODBUS 設(shè)備請求關(guān)鍵數(shù)據(jù),轉(zhuǎn)換模塊將此數(shù)據(jù)預(yù)存到緩沖區(qū)內(nèi),并不斷刷新,當CAN 設(shè)備請求HART/MODBUS設(shè)備的數(shù)據(jù)時,可將緩沖區(qū)內(nèi)預(yù)存的數(shù)據(jù)回復(fù)給CAN 設(shè)備。采用這種方式,優(yōu)點是能夠及時響應(yīng)CAN 設(shè)備的請求,傳輸效率高,缺點是請求的數(shù)據(jù)類型受限,這是由于在總線空閑期間,轉(zhuǎn)換模塊不斷向HART/MODBUS 設(shè)備請求的數(shù)據(jù),并不能覆蓋所有的設(shè)備數(shù)據(jù)類型,如果不斷請求所有的設(shè)備數(shù)據(jù)類型,會占用較大的緩沖區(qū)空間。

        2 協(xié)議轉(zhuǎn)換硬件架構(gòu)設(shè)計

        協(xié)議轉(zhuǎn)換的硬件架構(gòu)設(shè)計圖5 所示。

        圖5 現(xiàn)場總線協(xié)議轉(zhuǎn)換硬件架構(gòu)圖

        協(xié)議轉(zhuǎn)換部分共包括rec_buffer、tran_buffer、addr_conver、frame_conver、error_conver、discriminator 共6 個模塊;filedbus_controller 模塊是三種總線控制器模塊;apb_reg和intr 模塊為本硬件架構(gòu)的配置模塊。

        2.1 filedbus_controller 模塊

        此模塊中集成了3 種總線協(xié)議控制器,用來接收來自總線物理層的協(xié)議串行數(shù)據(jù)。當filedbus_controller 模塊接收到總線物理層上的數(shù)據(jù),需要將物理層的串行數(shù)據(jù)轉(zhuǎn)化為字節(jié)數(shù)據(jù),并將字節(jié)數(shù)據(jù)存入到rec_buffer 中。其中MODBUS 總線協(xié)議幀輸出地址域、功能碼和數(shù)據(jù)字段,不輸出CRC 校驗字段;CAN 總線協(xié)議幀輸出仲裁段的11 bit CAN ID、控制端的4 bit DLC(數(shù)據(jù)長度)和數(shù)據(jù)段;HART 總線協(xié)議幀輸出定界符、地址段、擴展字段、DLL 載荷段(command、octet count、data)。

        2.2 緩存模塊

        rec_buffer 模塊、tran_buffer 模塊完成的是總線協(xié)議幀的緩存工作,2 個緩存模塊均采用異步FIFO 實現(xiàn),F(xiàn)IFO寬度是1 B,深度為256 B,之所以將FIFO 深度設(shè)計為256 B,是因為三種協(xié)議幀幀長最長是256 B,而CAN 總線協(xié)議和HART 總線協(xié)議的協(xié)議幀中均有數(shù)據(jù)長度或者幀長度字段,所以需要預(yù)先緩存整個協(xié)議幀,才能獲得實際的數(shù)據(jù)長度或者幀長度。rec_buffer 模塊緩存接收到的上游原始協(xié)議幀數(shù)據(jù),tran_buffer 模塊緩存協(xié)議轉(zhuǎn)換后的協(xié)議幀數(shù)據(jù)。

        2.3 addr_conver 模塊

        此模塊主要完成的是協(xié)議轉(zhuǎn)換中的協(xié)議地址轉(zhuǎn)換工作。模塊內(nèi)含有一個地址映射表,此地址映射表中含有原協(xié)議網(wǎng)絡(luò)地址和目標協(xié)議網(wǎng)絡(luò)地址的映射關(guān)系,表格可通過外部總線維護。

        映射表中的每一項的前半部分是原協(xié)議幀的地址,后半部分是目標協(xié)議地址。由于不同的協(xié)議轉(zhuǎn)換,其原協(xié)議幀地址和目標協(xié)議地址長度均不相同,因此,需要根據(jù)轉(zhuǎn)換判斷模塊輸出的指示信號,進行地址轉(zhuǎn)換查找。

        2.4 frame_conver 模塊

        frame_conver 模塊原理圖如圖6 所示,模塊內(nèi)含有6個不同的轉(zhuǎn)換電路模塊,根據(jù)選擇信號,來判斷原協(xié)議幀將進入哪個轉(zhuǎn)換電路模塊。選擇信號由4 bit 位寬的信號組成,高2 bit 用來表示原數(shù)據(jù)幀總線類型,低2 bit用來表示目標總線類型,數(shù)據(jù)分配器將依據(jù)此信號進行數(shù)據(jù)分配。

        圖6 frame_conver 模塊原理圖

        當MODBUS 總線協(xié)議幀向CAN 總線協(xié)議和HART總線協(xié)議轉(zhuǎn)換時,MODBUS 總線協(xié)議幀中的命令字段和數(shù)據(jù)字段需填到CAN 總線協(xié)議幀或HART 總線協(xié)議幀的數(shù)據(jù)字段;當CAN 總線協(xié)議幀向MODBUS 總線協(xié)議和HART 總線協(xié)議轉(zhuǎn)換時,CAN 總線協(xié)議幀中的數(shù)據(jù)字段填到MODBUS 總線協(xié)議幀或HART 總線協(xié)議幀的數(shù)據(jù)字段;當HART 總線協(xié)議幀向MODBUS 總線協(xié)議轉(zhuǎn)換時,HART 總線協(xié)議幀中的命令字段填到MODBUS 總線協(xié)議幀中的命令字段,數(shù)據(jù)字段填到MODBUS 總線協(xié)議幀的數(shù)據(jù)字段,當HART 總線協(xié)議幀向CAN 總線協(xié)議轉(zhuǎn)換時,HART 總線協(xié)議幀中的命令字段和數(shù)據(jù)字段填到CAN 總線協(xié)議幀的數(shù)據(jù)字段。

        2.5 error_conver 模塊

        此模塊主要完成原協(xié)議幀無錯誤的被轉(zhuǎn)發(fā)至目標協(xié)議設(shè)備后,目標協(xié)議設(shè)備回復(fù)的協(xié)議幀出現(xiàn)錯誤,此時的轉(zhuǎn)換工作。

        當網(wǎng)絡(luò)工作在MODBUS 總線網(wǎng)絡(luò)時,CAN 節(jié)點和HART 從站將響應(yīng)幀發(fā)送至轉(zhuǎn)換模塊的過程中產(chǎn)生的鏈路層錯誤,按照相應(yīng)協(xié)議要求,在CAN 節(jié)點和HART從站和轉(zhuǎn)換模塊之間進行錯誤響應(yīng)與錯誤處理,不會將錯誤通知發(fā)送到MODBUS 網(wǎng)絡(luò)中;HART 從站將響應(yīng)幀發(fā)送至轉(zhuǎn)換模塊的過程中產(chǎn)生的應(yīng)用層錯誤,本模塊需要將HART 總線協(xié)議定義的錯誤碼轉(zhuǎn)換為MODBUS總線協(xié)議規(guī)定的異常響應(yīng)碼,然后將錯誤幀發(fā)送給filedbus_controller 模塊中的MODBUS 總線控制器。

        當網(wǎng)絡(luò)工作在HART 總線網(wǎng)絡(luò)時,MODBUS 總線從設(shè)備將響應(yīng)幀發(fā)送至轉(zhuǎn)換模塊的過程中產(chǎn)生的應(yīng)用層錯誤,本模塊需要將MODBUS 總線協(xié)議定義的一場響應(yīng)碼轉(zhuǎn)換為HART 總線協(xié)議規(guī)定的錯誤碼,然后將此錯誤碼發(fā)送給filedbus_controller 模塊中的HART 總線控制器。

        3 仿真驗證

        圖7 展示了MODBUS 總線協(xié)議傳輸測試,由仿真圖可以看出MODBUS 總線控制器數(shù)據(jù)收發(fā)正常,波特率配置、奇偶校驗配置正常,能進行正??偩€通信。

        圖7 MODBUS 總線協(xié)議仿真圖

        圖8 展示了HART 總線協(xié)議傳輸測試,由仿真圖可以看出HART 總線控制器數(shù)據(jù)收發(fā)正常,中斷產(chǎn)生正常,能進行正常的總線通信。

        圖8 HART 總線協(xié)議仿真圖

        FPGA 原型驗證原理圖如圖9 所示,本現(xiàn)場總線協(xié)議轉(zhuǎn)換器內(nèi)集成了三種總線控制器,所以僅需要連接三種總線的物理層芯片,即可接入到三種總線網(wǎng)絡(luò)中。

        圖9 FPGA 原型驗證原理圖

        圖9 展示的是轉(zhuǎn)換器工作在MODBUS 總線網(wǎng)絡(luò)中,MODBUS 物理層采用的是RS232 芯片,轉(zhuǎn)換器通過RS232接入到MODBUS 總線網(wǎng)絡(luò)中,MODBUS 主站向MODBUS總線網(wǎng)絡(luò)發(fā)送協(xié)議幀尋址CAN 節(jié)點或者HART 從設(shè)備,轉(zhuǎn)換器通過RS232 接收MODBUS 總線協(xié)議幀,然后將轉(zhuǎn)換后的協(xié)議幀通過CAN 收發(fā)器和HART 調(diào)制解調(diào)電路發(fā)送至相應(yīng)的總線網(wǎng)絡(luò)中,CAN 節(jié)點和HART 從設(shè)備在相應(yīng)的總線網(wǎng)絡(luò)中接收轉(zhuǎn)換后的協(xié)議幀。

        4 結(jié)論

        本文介紹了MODBUS 總線、CAN 總線和HART 總線三種總線協(xié)議之間的轉(zhuǎn)換原理,并依據(jù)此轉(zhuǎn)換原理,設(shè)計了一種現(xiàn)場總線協(xié)議轉(zhuǎn)換硬件架構(gòu),硬件架構(gòu)集成有總線控制器、協(xié)議轉(zhuǎn)換器以及配置模塊。采用硬件電路并行處理總線數(shù)據(jù),進行總線協(xié)議幀轉(zhuǎn)換,仿真驗證表明實現(xiàn)了三種總線協(xié)議的轉(zhuǎn)換,轉(zhuǎn)換時間短且具有確定性。

        猜你喜歡
        總線錯誤控制器
        在錯誤中成長
        基于PCI Express總線的xHC與FPGA的直接通信
        機載飛控1553B總線轉(zhuǎn)以太網(wǎng)總線設(shè)計
        不犯同樣錯誤
        多通道ARINC429總線檢查儀
        模糊PID控制器設(shè)計及MATLAB仿真
        MOXA RTU控制器ioPAC 5542系列
        自動化博覽(2014年9期)2014-02-28 22:33:17
        倍福 CX8091嵌入式控制器
        自動化博覽(2014年4期)2014-02-28 22:31:15
        基于EtherCAT總線的ROV控制系統(tǒng)設(shè)計
        河南科技(2014年16期)2014-02-27 14:13:22
        4V三輸出同步降壓型控制器
        人体内射精一区二区三区| 水蜜桃一二二视频在线观看免费| 在线观看日韩精品视频网站| 国产精品高清视亚洲乱码| 精品人妻少妇av中文字幕| 国自产拍偷拍精品啪啪一区二区 | 亚洲AV无码精品色欲av| 99国产精品欲av麻豆在线观看| 一区二区三区人妻av| 国产操逼视频| 天天爽天天爽天天爽| 国产欧美激情一区二区三区| 国产成人亚洲合色婷婷| av中文字幕性女高清在线| 成 人色 网 站 欧美大片在线观看 | 成 人片 黄 色 大 片| 午夜精品久久久久久中宇| 99久久久精品免费| 国产精品国产三级在线专区| 亚洲国产精品激情综合色婷婷| 久久久久亚洲av综合波多野结衣| 最新亚洲精品国偷自产在线| 国产在线网址| 中文字幕精品乱码一区| 无套无码孕妇啪啪| 丰满老熟妇好大bbbbb| 9191在线亚洲精品| 国产美女主播福利一区| 级毛片内射视频| 人人添人人澡人人澡人人人人| 2021久久精品国产99国产| 国产丝袜美腿在线播放| 少妇被粗大的猛烈进出69影院一| 亚洲v日本v欧美v综合v| 人妻中出中文字幕在线| 精品无码久久久久久久久| 精品人人妻人人澡人人爽牛牛| 在线观看国产一区亚洲bd| 大香蕉久久精品一区二区字幕| 日本一区二区不卡在线| 人妻中文字幕乱人伦在线|