《電子技術應用》
您所在的位置:首頁 > 通信與網(wǎng)絡 > 設計應用 > 基于FPGA的MEWTOCOL-COM 與MODBUS RTU協(xié)議快速轉換的設計與實現(xiàn)
基于FPGA的MEWTOCOL-COM 與MODBUS RTU協(xié)議快速轉換的設計與實現(xiàn)
2019年電子技術應用第11期
陳 虎1,,陳 倩2
1.成都航空職業(yè)技術學院 信息工程學院,,四川 成都610100,;2.四川大學 電子信息學院,,四川 成都610064
摘要: 在工業(yè)智能化過程中,現(xiàn)場總線設備之間需要信息交換,,但種類繁多的總線通信協(xié)議造成了不同設備之間無法進行正確的信息交換,。為解決這個問題,首先深入研究了MEWTOCOL-COM和MODBUS RTU(Remote Terminal Unit)兩種現(xiàn)場總線協(xié)議通信的原理及其運行機制,,分析了創(chuàng)建命令,、地址和數(shù)據(jù)映射關系的方法,實現(xiàn)了兩者協(xié)議間的快速命令,、地址和數(shù)據(jù)的映射,,設計了基于FPGA的硬件電路協(xié)議轉換方案,搭建了實驗平臺進行MEWTOCOL-COM協(xié)議與MODBUS RTU協(xié)議之間的轉換測試,。實驗結果表明,,該種方法實現(xiàn)了兩種網(wǎng)絡協(xié)議間的轉換,從而完成了MEWTOCOL-COM標準設備與MODBUS RTU標準設備的數(shù)據(jù)互通,,且兩種協(xié)議轉換后的通信時延為微秒級,。
中圖分類號: TN792;TP274
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.190859
中文引用格式: 陳虎,,陳倩. 基于FPGA的MEWTOCOL-COM與MODBUS RTU協(xié)議快速轉換的設計與實現(xiàn)[J].電子技術應用,,2019,45(11):112-116.
英文引用格式: Chen Hu,,Chen Qian. Design and implementation of the protocol conversion between MEWTOCOL-COM and MODBUS RTU based on FPGA[J]. Application of Electronic Technique,,2019,45(11):112-116.
Design and implementation of the protocol conversion between MEWTOCOL-COM and MODBUS RTU based on FPGA
Chen Hu1,,Chen Qian2
1.College of Electronical and Information Engineering,,Chengdu Aeronautic Polytechnic,Chengdu 610100,,China,; 2.College of Electronics and Information Engineering,Sichuan University,,Chengdu 610064,,China
Abstract: The information is needed to exchange between fieldbus devices in industrial artificial intelligence. However, it is difficult to exchange data and information between equipments for various fieldbus communications protocol. In this paper, the principle and mechanism of MEWTOCOL-COM and MODBUS RTU(Remote Terminal Unit) were discussed. The quick commands, address and data were mapped between the two communications protocol. Moreover, a protocol conversion programme was designed based on FPGA. The platform was built up by hardware and software for exchange experiments between devices based on MEWTOCOL-COM and MODBUS RTU communications protocol. The experiments results showed that communications could be realized between the devices based on MEWTOCOL-COM and MODBUS RTU communications protocol, the transform between two protocol was implemented, and the communication time delay was completed within milliseconds.
Key words : MEWTOCOL-COM;MODBUS RTU,;protocol conversion

0 引言

    現(xiàn)場總線技術是在工業(yè)自動化領域中解決工業(yè)現(xiàn)場的智能化儀器儀表,、控制器、執(zhí)行機構等現(xiàn)場設備間的數(shù)字通信以及這些現(xiàn)場控制設備和高級控制系統(tǒng)之間的信息傳遞問題,,是工業(yè)設備自動化和信息化的基礎,。然而,由于歷史原因,現(xiàn)場總線的通信協(xié)議卻種類繁多,,根據(jù)IEC61158第四版國際標準,,已有20種現(xiàn)場總線協(xié)議成為國際標準[1]。常用的現(xiàn)場總線協(xié)議有西門子的MPI和PPI Rockwell的DF1,、松下的MEWTOCOL-COM以及絕大多數(shù)設備廠商都遵循的MODBUS協(xié)議等,。由于不同設備商支持的協(xié)議標準不同,導致不同設備商的設備之間不能直接互聯(lián)互通,,這就造成了生產制造單位在擴大生產線或設計產品線時,,無法做到資源的合理規(guī)劃和充分利用,老舊產線無法順利接入智能網(wǎng)絡等困境,。

    目前,,針對不同的工業(yè)協(xié)議之間的相互轉換,最常見的方式有基于嵌入式系統(tǒng)實現(xiàn)協(xié)議轉換,、基于專用芯片實現(xiàn)協(xié)議轉換和基于FPGA實現(xiàn)協(xié)議轉換[2],。表1是對這三種常用方式的優(yōu)缺點的比較。

qrs4-b1.gif

    本文針對松下電工的私有協(xié)議 MEWTOCOL-COM 和標準串行協(xié)議 MODBUS RTU進行了深入的研究,,并設計和實現(xiàn)了一種 MEWTOCOL-COM 與 MODBUS RTU協(xié)議快速轉換的電路方案,,不但解決了 MEWTOCOL-COM 標準設備與 MODBUS RTU標準設備集成在一個現(xiàn)場總線網(wǎng)絡中進行互聯(lián)互通、數(shù)據(jù)交換的問題,,而且完成了兩個協(xié)議快速轉換,,轉換前后的數(shù)據(jù)報文時延小于2 ms。

1 MEWTOCOL-COM與MODBUS通信原理

1.1  MEWTOCOL-COM通信原理

    MEWTOCOL-COM是松下電工FP系列PLC與PLC,、計算機或者HMI觸摸屏之間采用的一種專用的通信協(xié)議,。該協(xié)議采用主從應答模式,數(shù)據(jù)傳送采用的是ASCII碼編碼形式,,每次通信的開始,,都由主站(主PLC、計算機或者HMI觸摸屏)發(fā)送指令,,從站(從PLC)接受到指令后,自動進行相應的響應,,主站根據(jù)從站的響應,,可以得知從設備是否正確執(zhí)行了剛剛發(fā)送的指令,這樣就構成了一個交互式的操作,。圖1是完成主從通信模型的示意圖,。

qrs4-t1.gif

1.2 MEWTOCOL-COM基本幀格式

    MEWTOCOL-COM協(xié)議中規(guī)定了基本幀格式,基本幀格式有控制代碼,,包含了幀頭,、命令、正常響應、錯誤響應,、結束等字符,,如表2所示。MEWTOCOL-COM的每次通信都先由主站發(fā)起,,主站發(fā)起命令幀,,命令幀內容除了包含控制代碼外,還包括一些特殊標志碼,、PLC站號和呼號字符等[3],。表3是基本幀的格式。命令幀在文本區(qū)域中填寫命令代碼和操作地址,,命令代碼含義如表4所示,。

qrs4-b2.gif

qrs4-b3.gif

qrs4-b4.gif

1.3 MODBUS RTU工作原理

    自1979年來,MODBUS已經成為工業(yè)領域通信協(xié)議的業(yè)界標準,,通過MODBUS連接著百萬臺自動化設備之間的通信,。在OSI模型中,MODBUS位于第7層,,是一種應用層報文傳輸協(xié)議,。

    MODBUS在串行通信模式下,通信幀格式有兩種:一種是主機發(fā)起的查詢和命令從設備的格式,,另一種是從設備收到主機命令后的應答格式[4],。通信原理是采用請求/應答的方式進行主從通信,其工作原理如圖2所示,。MODBUS主站通過向相應物理地址的從站發(fā)送相應的控制信息進行總線數(shù)據(jù)的交互,,一般采用的是一對多的物理連接方式,其通信的實質是主從一對一的請求/應答模式的通信過程[5],。

qrs4-t2.gif

    當物理層為RS422或RS485的串行通信方式下,,MODBUS通信協(xié)議有兩種數(shù)據(jù)的收發(fā)模式,一種是RTU(Remote Terminal Unit)模式,,另外一種是ASCII模式,。與ASCII模式不同的是,RTU模式下的報文內容是按十六進制的字節(jié)方式進行收發(fā),,沒有報文的開始和結束標記,。MODBUS協(xié)議規(guī)定,在工業(yè)總線上的所有設備,,都必須支持RTU模式,,而ASCII通信模式作為可選項,而非必選項,。本文以RTU模式為研究對象,,建立MEWTOCOL-COM與MODBUS RTU報文的命令、地址映射關系,從而實現(xiàn)兩種不同的總線協(xié)議的相互轉換,。

    在MODBUS RTU協(xié)議中,,主機設備通常通過不同的功能碼實現(xiàn)對位、字進行操作,,這里的功能碼就是對應MEWTOCOL-COM中的命令,。

1.4 命令映射表

    為了實現(xiàn)MEWTOCOL-COM 協(xié)議與MODBUS 協(xié)議的相互轉換,首先創(chuàng)建命令對應表,,如表5所示,。

qrs4-b5.gif

1.5 地址映射表

    MODBUS的地址編碼是從1開始,并且分不同的地址段,,MEWTOCOL-COM的地址是從0開始,,要進行兩者相互之間的轉換,MODBUS的地址是MEWTOCOL-COM的地址+1,。轉換關系如表6所示,。

qrs4-b6.gif

2 FPGA實現(xiàn)設計

    本文結合實際協(xié)議網(wǎng)關項目驗證了一種基于FPGA的高速協(xié)議轉換的設計方案,它以Altera公司Cyclone系列FPGA芯片為核心,,采用原理圖和Verilog HDL語言編程實現(xiàn)[4-8],。采用友晶提供的DE0-Nano開發(fā)板,配合開發(fā)軟件Quartus II 13.0,,設計了一個驗證系統(tǒng),,系統(tǒng)采用固定波特率115 200 b/s,接收MEWTOCOL-COM協(xié)議數(shù)據(jù),,使用8 bit數(shù)據(jù)位,,1 bit停止位,無奇偶校驗位,。

    轉換后的MODBUS RTU協(xié)議報文,,按照8 bit數(shù)據(jù)位,1 bit停止位的發(fā)送,。

    FPGA從串行端口接收一幀MEWTOCOL-COM協(xié)議數(shù)據(jù)%10#RDD011050110757cr,,表明讀取站號為10的寄存器地址1105-1107三個字的內容,轉換為MODBUS RTU報文后,,為0A 03 04 52 00 03 A4 51,。

2.1 頂層設計

    圖3是驗證系統(tǒng)的頂層RTL視圖,頂層一共有三個輸入端口:clk,,rst_n和rxd信號,,分別表示FPGA的外部時鐘輸入,,復位信號的輸入(低電平有效)和串口接收信號,。頂層的兩個輸出端口,分別是數(shù)據(jù)輸出有效信號d_valid和串口發(fā)送信號txd。

qrs4-t3.gif

    頂層一共例化了4個獨立模塊,,分別是pll,,uart_receiver,cov_fp_mod和uart_transfer模塊,。

2.2 各模塊說明

    (1)時鐘模塊PLL

    PLL模塊采用Altera公司提供的基礎鎖相環(huán)IP,,輸入時鐘clk是50 MHz,通過PLL后,,輸出信號c0是波特率的采樣時鐘,,本例中采用固定波特率115 200 b/s,因此,,采用頻率為波特率115 200的16倍,,即1.843 2 MHz。

    采樣時鐘c0作為模塊的運行時鐘,,分別送到串行端口的收發(fā)數(shù)據(jù)模塊,。

    (2)串口接收數(shù)據(jù)模塊uart_receiver

    uart_receiver模塊是從串行端口rxd信號中接收串行數(shù)據(jù),并轉換成8 bit并行數(shù)據(jù)后從dout端口輸出,,同時模塊將給出data_ready指示信號,,表明串并轉換完成1個字節(jié)的有效數(shù)據(jù)。

    (3)協(xié)議轉換模塊cov_fp_mod

    cov_fp_mod模塊是從串口接收數(shù)據(jù)模塊中接收并行的8 bit數(shù)據(jù),,同時按照MEWTOCOL-COM協(xié)議幀轉換為MODBUS RTU協(xié)議幀的方式,,將重新組裝數(shù)據(jù),并實時地發(fā)送到串口發(fā)送數(shù)據(jù)模塊,。

    (4)串口發(fā)送數(shù)據(jù)模塊uart_transfer

    串口發(fā)送數(shù)據(jù)模塊是將協(xié)議轉換模塊輸出的協(xié)議幀數(shù)據(jù),,進行并串轉換,并發(fā)送到串行接口線路上,。

2.3 SignalTap信號抓取

    圖4是通過Altera(現(xiàn)為Intel)公司的Quartus II軟件信號抓取工具SignalTap,,實時獲得的FPGA的內部信號數(shù)據(jù),其中rxd和txd為FPGA的串口輸入和輸出信號,,i_data_d是來自MEWTOCOL-COM協(xié)議的做了同步處理后的并行數(shù)據(jù),,send_en是轉換模塊進行轉換后使能數(shù)據(jù)輸出的指示信號;o_data信號是協(xié)議轉換模塊的MODBUS RTU協(xié)議報文的輸出并行數(shù)據(jù),;silent_interval_done信號是根據(jù)MODBUS RTU協(xié)議,,發(fā)送數(shù)據(jù)報文前后至少要保持3.5個字符時間以內,串口總線保持寂靜,,對于波特率為115 200 b/s時,,要求這個時間為1 750 μs。當總線上不滿足寂靜時間時,,信號silent_interval_done為低電平,,否則為高電平,,表示數(shù)據(jù)可以從串行端口上進行發(fā)送。信號t35_cnt是串口總線寂靜時間的累加寄存器值,,當MODBUS RTU協(xié)議的數(shù)據(jù)從串行端口上發(fā)送結束后,,信號t35_cnt便開始從0計時,直到計滿1 750 μs后,,silent_interval_done信號才為高電平有效,,表示串口發(fā)送總線上可以進行數(shù)據(jù)的傳送了。

qrs4-t4.gif

    SignalTap的采樣時鐘使用16x波特率的時鐘,,即1.843 2 MHz,,每個時鐘周期為0.542 5 μs。從接收到MEWTOCOL-COM協(xié)議的數(shù)據(jù)到轉換為MODBUS RTU的數(shù)據(jù)并發(fā)送,,通過將SignalTap的數(shù)據(jù)導出為csv格式,,得到從rxd信號接收開始有效計算到協(xié)議轉換發(fā)送txd信號有效輸出,兩者之間的時間差2 212個時間單位,,每個時間單位為0.542 5 μs,,則協(xié)議轉換并開始發(fā)送的時間為0.542 5×2 212=1 200.01 μs。因此,,協(xié)議轉換時間很短,,而且不需要完全接收完整的一個MEWTOCOL-COM協(xié)議的報文才開始轉換,硬件電路上可以在適當?shù)臅r間內開始進行轉換,,大大節(jié)省了協(xié)議收發(fā)的時間延時(協(xié)議轉換的CRC計算為組合邏輯,,時延為納秒級,不影響整個轉換時延),。

3 測試

    假設PC按MEWTOCOL-COM協(xié)議從站號(設備地址)為10號(范圍是1~32)的保持寄存器DT1105號開始讀取數(shù)據(jù),,直到讀到寄存器1107號,命令幀:%10#RDD011050110757cr,。

    其中57是數(shù)據(jù)幀的BCC校驗字段,,cr是結束符。

3.1 命令轉換

    根據(jù)命令對應關系,,在讀取保持寄存器,,MEWTOCOL-COM的RD命令對應MDOBUS RTU的03功能碼。

3.2 地址轉換

    首先是站號的進制轉換,,MEWTOCOL-COM協(xié)議中是ASCII通信,,站號為10,對應到MODBUS RTU的十六進制格式就是0x0a,。

    其次是訪問的寄存器地址轉換,,在MEWTOCOL-COM協(xié)議中,訪問的是數(shù)據(jù)保持寄存器DT1105~DT1107,,起始寄存器地址是1105,,結束地址是1107,,一共3個寄存器。在MODBUS RTU協(xié)議中,,需要起始地址和訪問的寄存器數(shù)量,因此,,根據(jù)表4,,MOBUS RTU的地址是MEWTOCOL-COM的地址+1,DT1105的地址映射到MODBUS RTU地址,,16位的十六進制就是0x0452,。

    最后是不同協(xié)議中地址字段的轉換映射關系。MEWTOCOL-COM協(xié)議字段使用了起始地址和結束地址,,而MODBUS RTU協(xié)議中使用的是寄存器的起始地址和被訪問的寄存器的數(shù)量,,因此,還要計算出實際的訪問寄存器的數(shù)量,,1 107-1 105+1=3,,轉成16位的十六進制數(shù)據(jù)是0x0003,并填入MODBUS RTU協(xié)議字段中,。

3.3 轉換前后通信幀

    經過上述命令,、地址和數(shù)據(jù)的轉換和映射關系,由PC發(fā)出的MEWTOCOL-COM協(xié)議的通信幀命令%10#RDD011050110757cr,,經過FPGA電路轉換到從站號25號接收到的MODBUS RTU協(xié)議通信幀是(hex格式):0A 03 04 52 00 03 A4 51,。

4 結論

    本文在深入分析了MEWTOCOL-COM和MODBUS RTU兩種現(xiàn)場總線通信協(xié)議的基礎上, 提出了基于FPGA架構的協(xié)議轉換方法的硬件方案,,方便快捷地實現(xiàn)了不同現(xiàn)場總線網(wǎng)絡的互聯(lián)互通,,并能快速進行協(xié)議轉換和收發(fā),兩者延時時間約1 200 μs,,F(xiàn)PGA的資源占用也比較小,,圖5是綜合后的實際邏輯數(shù)量,綜合代碼已經包含了兩者協(xié)議的相互轉換邏輯,,實驗驗證了基于FPGA實現(xiàn)MEWTOCOL-COM與MODBUS RTU協(xié)議轉換,,達到了快速轉換和收發(fā)的特點,為現(xiàn)場總線網(wǎng)關的設計提供了一個很好的解決方案,。

qrs4-t5.gif

參考文獻

[1] 梅恪,,沈璞.關于總線國際標準IEC61158的研究報告[J].儀器儀表標準化與計量,2003(2):30-34.

[2] 王治靈.基于FPGA的多協(xié)議轉換系統(tǒng)的研究與設計[D].成都:電子科技大學,,2018.

[3] 高偉增,,徐君鵬.松下PLC編程與應用(第二版)[M].北京:機械工業(yè)出版社,2015.

[4] 于楓.ALTERA可編程邏輯器件應用技術[M].北京:科學出版社,,2004.

[5] 李洪偉,,袁斯華.基于Quartus II的FPGA/CPLD設計[M].北京:電子工業(yè)出版社,,2006.

[6] 吳志杰,王新霞,,孔凡敏,,等.多路隔離的Modbus協(xié)議轉換器的設計[J].電子技術應用,2016,,42(10):77-79.

[7] 吳繼華,,王誠.Altera FPGA/CPLD設計[M].北京:人民郵電出版社,2005.

[8] 夏宇聞.Verilog數(shù)字系統(tǒng)設計教程[M].北京:北京航空航天大學出版社,,2003.



作者信息:

陳  虎1,,陳  倩2

(1.成都航空職業(yè)技術學院 信息工程學院,四川 成都610100,;2.四川大學 電子信息學院,,四川 成都610064)

此內容為AET網(wǎng)站原創(chuàng),未經授權禁止轉載,。