《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 基于FPGA的EtherCAT從站通信鏈路分析與驗證
基于FPGA的EtherCAT從站通信鏈路分析與驗證
2017年電子技術應用第8期
馬保全1,2,姚旺君1,2,劉云龍1,2,張曉莉1,2,黃 兵1,2,趙德政1,2
1.工業控制系統信息安全技術國家工程實驗室,北京100083;2.華北計算機系統工程研究所,北京100083
摘要: EtherCAT是工業控制領域廣泛應用的現場總線之一,從站控制器ESC(EtherCAT Slave Controller)是從站模塊實現EtherCAT協議數據通信的關鍵,對從站控制芯片實現自主可控是工業控制系統國產化研發的重要基礎。基于EtherCAT通信協議及基本通信功能邏輯,設計了EBUS編碼/解碼、Auto-forwarder、Loop-back function關鍵通信節點的FPGA狀態機,并通過解析各階段數據狀態變化,驗證了各節點通信數據的正確性。實驗結果表明,基于上述狀態機的FPGA實現EtherCAT從站基本通信鏈路是完全可行的。
中圖分類號: TN911.72;TP273
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.179002
中文引用格式: 馬保全,姚旺君,劉云龍,等. 基于FPGA的EtherCAT從站通信鏈路分析與驗證[J].電子技術應用,2017,43(8):95-99.
英文引用格式: Ma Baoquan,Yao Wangjun,Liu Yunlong,et al. Analysis and verification of EtherCAT slave controller communication link based on FPGA[J].Application of Electronic Technique,2017,43(8):95-99.
Analysis and verification of EtherCAT slave controller communication link based on FPGA
Ma Baoquan1,2,Yao Wangjun1,2,Liu Yunlong1,2,Zhang Xiaoli1,2,Huang Bing1,2,Zhao Dezheng1,2
1.National Engineering Laboratory for Industry Control System Information Security Technology,Beijing 100083,China; 2.National Computer System Engineering Research Institute of China,Beijing 100083,China
Abstract: EtherCAT is one of the widely used field bus for industrial control field. ESC(EtherCAT Slave Controller) is the critical part for communication protocol implementation, and autonomous and controllable design of ESC chip is the essential basis for domestic development of industrial control system. Based on the EtherCAT communications protocol and the basic communication function logic, the FPGA state machine of the EBUS encoding/decoding, Auto-forwarder, and Loop- back function module are designed, and the data states of each stage are analyzed for verifing the communications data of each stage. The results show that implementation of EtherCAT basic communication link is completely feasible based on the FPGA state machine.
Key words : EtherCAT;fieldbus;FPGA;ESC;slave module;EBUS

0 引言

    EtherCAT是由BECKHOFF提出的在工業控制領域獲得廣泛應用的現場總線之一,該總線具備全雙工工作模式,可基于主站(Master)和從站(Slave)連接的模式實現數據傳遞,且具有低延時、高安全性的特點。EtherCAT從站控制器ESC(EtherCAT Slave Controller)是從站模塊實現EtherCAT通信協議的關鍵,目前國內基于EtherCAT協議的通信功能基本都采用ET1100/ET1200等從站芯片來實現[1-4]。然而,由于這類芯片除基本通信功能外,還具備大量其他功能,而此類額外通信機制并不對我國技術人員公開,造成對此類通信芯片還無法實現完全自主可控,采用有效的安全機制提升系統安全性更是無從談起。隨著工業控制領域的信息安全問題日益突出,此類不可自主可控通信芯片的應用給我國核心控制系統的運行引入一定安全風險。為了實現對控制系統用通信芯片的完全自主可控,基于FPGA實現EtherCAT通信協議的自主化開發顯得非常必要,同時也是采用自主安全機制提升通信系統安全能力的重要前提。

    基本通信鏈路是實現收發EtherCAT協議數據的核心,因此,本研究基于EtherCAT協議特征及數據傳遞機制,設計關鍵通信節點的FPGA狀態機,驗證FPGA實現EtherCAT從站控制器基本通信鏈路功能的可行性,為完善EtherCAT其他通信功能及安全機制奠定重要基礎。

1 EtherCAT從站控制器框架

    EtherCAT主站與各從站之間的通信鏈路如圖1所示。通信過程中,數據幀遍歷所有從站設備,數據幀通過某一從站時,從站設備根據報文命令分析尋址到本機報文并進行讀/寫數據到指定位置,數據幀到達最后一個從站后,該從站把處理后的數據幀發送給主站。主站收到此上行電報后處理返回數據,一次通信結束[5-6]

tx1-t1.gif

    EtherCAT從站控制器主要包括數據幀處理單元、EBUS接口編碼/解碼模塊、Auto-forwarder模塊、Loop-back function模塊等。以ET1100/ET1200從站控制器為例,其內部框架如圖2所示,主要包括MII、EBUS接口,EtherCAT數據幀處理單元,現場總線內存管理單元(FMMU,Fliedbus Memory Management Unit),存儲同步管理通道(SM,SyncManager),分布時鐘,PDI接口,ESC地址空間(包括寄存器和用戶數據存儲器),EEPROM控制,以及狀態控制、中斷、看門狗和物理層管理等部分。

tx1-t2.gif

    其中,幀處理單元(EtherCAT Processing Unit)分析并處理EtherCAT數據流。現場總線內存管理單元(FMMU,Fliedbus Memory Management Unit)是EtherCAT從站控制IP核中的核心模塊之一,用于實現主站對從站的邏輯尋址。存儲同步管理通道(SM,SyncManager)實現主站和本地應用數據交換。Ethercat幀和PDI接口都必須輪詢處理器來判斷另一端是否完成訪問。PDI接口模塊是ESC芯片的應用數據接口。

    在FPGA實現EtherCAT從站控制器的過程中,如果能實現數據鏈路的通路,數據幀能夠通過EBUS、MII接口傳輸到FPGA中,FPGA將數據幀進行識別并進行CRC校驗,解包出EtherCAT的幀格式和協議命令,并通過端口連接狀態將數據幀發送。那么,可以說明EtherCAT從站控制器是可以在FPGA中進行自主開發實現。在以上的數據鏈路中,EBUS接口涉及到EBUS模塊,EBUS模塊主要對EBUS協議進行解析,通過曼徹斯特編碼/解碼接收或發送數據;FPGA將數據幀進行識別并進行CRC校驗是Auto-Forwarder模塊;通過Loop-back function模塊將數據幀發送。以下分別介紹上述各模塊的實現過程。

2 各模塊實現邏輯

2.1 EBUS編碼/解碼模塊

    對于EBUS實現方式,EBUS接口的LVDS信號數據率是100 Mb/s,EBUS接口是利用曼徹斯特編碼/解碼(Manchester encoded)通過LVDS方式實現。

    在實現EBUS部分時,根據EBUS協議要求,需要實現曼徹斯特解碼和曼徹斯特波編碼。其中“0”用“01”表示,“1”用“10”表示。EBUS協議中分為idle標識符、開始幀標識符(SOF)、結束幀標識符(EOF)。Idle標識符為“0”,開始幀標識符為連續3個時鐘(200 MHz)連續的1,結束幀標識符為連續3個時鐘(200 MHz)連續的0。EBUS協議如圖3所示。

tx1-t3.gif

    曼徹斯特編碼狀態機如圖4所示,曼徹斯特編碼的狀態機共分為8個狀態,分別為初始1狀態(IDLE_1C)、初始2狀態(IDLE_2C)、幀開始1狀態(SOFR_1C)、幀開始2狀態(SOFR_2C)、編碼1狀態(ENCO_1C)、編碼2狀態(ENCO_2C)、結束幀1狀態(EOFR_1C)、結束幀2狀態(EOFR_2C),處理時鐘為200 MHz。

tx1-t4.gif

    各狀態說明如下:

    IDLE_1C為初始1狀態,對應發送EBUS協議的idle標識符,發送的數據為‘0’。下一時鐘即進入IDLE_2C狀態。

    IDLE_2C為初始2狀態,對應發送EBUS協議的idle標識符,發送的數據為‘1’。當發送數據有效時進入SOFR_1C狀態,否則進入IDLE_1C狀態。

    SOFR_1C為幀開始1狀態,對應的發送EBUS協議的開始幀標識符,下一時鐘進入SOFR_1C狀態。

    SOFR_2C為幀開始2狀態,對應的發送EBUS協議的開始幀標識符,下一時鐘進入ENCO_1C狀態。

    ENCO_1C為編碼1狀態,對應發送幀數據,下一時鐘進入ENCO_2C。

    ENCO_2C為編碼2狀態,對應發送幀數據,當發送數據無效時進入EOFR_1C狀態,否則進入ENCO_1C狀態。

    EOFR_1C為結束幀1狀態,對應發送幀結束標識符,下一時鐘進入ENCO_2C狀態。

    EOFR_2C為結束幀2狀態,對應發送幀結束標識符,此時一幀數據發送完畢,下一時鐘回到IDLE_1C狀態。

    曼徹斯特解碼狀態機如圖5所示,曼徹斯特解碼的狀態機共分為5個狀態,分別為初始狀態(IDLE)、幀開始狀態(SOFR)、編碼1狀態(ENCO_1C)、編碼2狀態(ENCO_2C)、結束幀狀態(EOFR),處理時鐘為200 MHz。

tx1-t5.gif

    各狀態說明如下:

    IDLE為初始狀態,對應接收EBUS協議的idle標識符,下一時鐘即進入SODR狀態。

    SOFR為幀開始狀態,對應的接收EBUS協議的開始幀標識符,當接收到連續3個‘1’即rx_sof_dv為1時,下一時鐘進入ENCO_1C狀態,否則進入IDLE狀態。

    ENCO_1C為編碼1狀態,對應接收幀數據,下一時鐘進入ENCO_2C。

    ENCO_2C為編碼2狀態,對應接收幀數據,當接收到連續3個‘0’時,進入EOFR狀態,否則進入ENCO_1C狀態。

    EOFR_1C為結束幀狀態,此時已經接收到完整的EtherCAT幀,下一時鐘進入IDLE狀態。

2.2 Auto-forwarder模塊

    Auto-forwarder模塊是MII和EBUS模塊進入IPCORE的第一個處理模塊,主要實現MII/EBUS數據緩存、檢測幀導碼、錯誤檢測、將數據發送到自動回環(Loop-back function)和幀處理單元(EtherCAT Processing Unit)。Auto-forwarder模塊實現MII/EBUS數據緩存功能是將EtherCAT幀數據存到FIFO中,并經過IPCORE處理時鐘(25 MHz)數據讀出,實現幀數據與IPCORE時鐘同步,再進入到下一模塊處理。檢測幀導碼是在數據幀數據有效后,通過檢測幀導碼(0x55555555555555555D),從而確定此幀為以太網幀。數據檢測主要檢測3種錯誤:物理層錯誤(RX錯誤)、數據幀錯誤、CRC錯誤。在數據經過FIFO同步后,在以太網幀的條件下,進行CRC校驗,如果CRC校驗正確,把幀數據發送到自動回環或幀處理單元中;如果CRC校驗錯誤,將此幀丟棄。將數據發送到自動回環和幀處理單元是在CRC校驗正確和無其他錯誤的條件下,將幀數據發送到自動回環和幀處理單元中。Auto-forwarder模塊的狀態機如圖6所示。

tx1-t6.gif

    Auto-forwarder模塊的狀態機共分為5個狀態,分別為初始狀態(IDLE)、檢測前導碼狀態(DETECT_PREAM)、檢測前導碼開始狀態(DETECT_START)、幀開始狀態(FRAME_START)、幀處理狀態(FRAME_PROC)。處理時鐘為25 MHz。各狀態說明如下:

    IDLE為初始狀態,當沒有幀數據時,狀態處于IDLE狀態。當檢測到幀數據為5時,進入到DETECT_PREAM狀態。

    DETECT_PREAM 為檢測前導碼狀態,幀接收幀導碼5,當檢測到D時,進入到DETECT_START狀態。

    DETECT_START為檢測幀導碼開始狀態,在下一時鐘進入到FRAME_START狀態。

    FRAME_START為幀開始狀態,開始接收幀數據,在下一時鐘進入到FRAME_PROC狀態。

    FRAME_PROC為幀處理狀態,正式處理幀數據,當沒有幀數據時就進入IDLE狀態。

2.3 Loop-back function模塊

    自動回環(Loop-back function)是根據端口打開狀態確定數據幀轉發狀態,IP共有4個端口,如果當前端口處于閉合或未建立連接狀態,則回環功能轉發EtherCAT幀到下一個邏輯端后,端口0(PORT0)的回環功能會轉發幀數據到數據幀處理單元。端口狀態分別為:自動閉合、手動打開。不同端口數據幀的處理順序如下:

    (1)0→EtherCAT Processing Unit→0

    (2)0→EtherCAT Processing Unit→1 / 1→0

    (3)0→EtherCAT Processing Unit→1 / 1→2 / 2→0 (log. ports 0,1, and 2)or0→EtherCATProcessing Unit→3 / 3→1 / 1→0 (log. ports 0,1, and 3)

    (4)0→EtherCAT Processing Unit→3 / 3→1 / 1→2 / 2→0

    為便于驗證及測試,本文重點探討雙端口情況下的數據轉發功能及測試。

3 功能測試

    為了對基于FPGA的通信鏈路進行系統測試,搭建如圖7所示的測試環境。

tx1-t7.gif

    其中,EtherCAT主站是指倍福EtherCAT主站,可以將指定EtherCAT幀發送到從站中;EtherCAT從站(ASIC)是指倍福的以ET1100芯片為核心的EtherCAT從站,ETherCAT主站通過MII信號將EtherCAT幀發送到EtherCAT從站(ASIC)中,EtherCAT從站(ASIC)將EtherCAT幀轉換成EBUS信號,將數據傳輸到EtherCAT測試板中;EtherCAT測試板是以FPGA為核心的測試板。

    在測試中,測試板通過EBUS接口,將數據幀傳輸到FPGA中,FPGA通過EBUS解碼得到數據幀,數據幀到FPGA將進行識別并進行CRC校驗,解包出EtherCAT幀格式和協議命令。通過MII轉發到PC上,PC通過wireshark進行抓包驗證數據幀的正確性。

3.1 解碼狀態測試

    解碼狀態測試結果如圖8所示,其中rx_data_interal為EBUS差分轉單端信號,current_state為狀態機信號,rx_dv為數據有效信號,rx_data為接收數據。可以看出,EBUS協議的LVDS信號通過差分轉單端后,通過狀態機處理,得到幀數據。

tx1-t8.gif

3.2 編碼狀態測試

    編碼狀態測試結果如圖9所示,tx_data_interal為單端信號轉EBUS差分信號,current_state為狀態機信號,tx_dv為數據有效信號,tx_data為接收數據。可以看出,發送數據有效后,通過狀態機將數據單端轉差分發送出去。

tx1-t9.gif

3.3 Auto-forwarder數據狀態

    經過Auto-forwarder狀態的數據如圖10所示,其中frame為幀數據,fifo為幀數據通過數據同步后的數據,state為狀態機信號,frame_done為數據幀結束信號,frame_start為幀開始信號,frame_data_valid為數據幀有效信號,frame_crc_err為幀錯誤信號。結果表明,數據幀可以正確識別并進行解析,在幀結束后,可以看到frame_crc_err有一拍為低。

tx1-t10.gif

3.4 數據幀驗證

    用wireshark抓取的數據結果表明,數據幀可以由FPGA正確處理,wireshark抓取報文正確接收到EtherCAT類型的轉發報文,說明數據鏈路已打通。

4 結論

    本文通過解析各階段數據結果,驗證了關鍵通信鏈路上EBUS編碼/解碼、Auto-forwarder、Loop-back function模塊的FPGA狀態機的正確性,說明FPGA實現EtherCAT從站基本通信鏈路是完全可行的,為開發完善的ESC從站控制器創造了條件。

參考文獻

[1] 王磊,李木國,王靜,等.基于EtherCAT協議現場級實時以太網控制系統研究[J].計算機工程與設計, 2011,32(7):2294-2297.

[2] 李木國,王磊,王靜,等.基于EtherCAT的工業以太網數據采集系統[J].計算機工程,2010,36(3):237-239.

[3] 單春榮,劉艷強,郇極.工業以太網現場總線EtherCAT及驅動程序設計[J].制造業自動化,2007,29(11):79-82.

[4] 施大發,劉建林,王輝,等.一種高性能EtherCAT實時以太網從站的設計[J].湖南師范大學自然科學學報, 2011,34(3):37-40.

[5] 馬軍賢,周侗,楊志家,等.EtherCAT從站的設計與實現[J].總線與網絡,2011(8):37-40.

[6] 胡世江.基于ETll00的EtherCAT實時工業以太網從站設計[J].PLC&FA,2009(11):67-70.



作者信息:

馬保全1,2,姚旺君1,2,劉云龍1,2,張曉莉1,2,黃  兵1,2,趙德政1,2

(1.工業控制系統信息安全技術國家工程實驗室,北京100083;2.華北計算機系統工程研究所,北京100083)

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲精品乱码久久久久久黑人| 亚洲在线视频观看| 日韩午夜免费| 一区视频在线| 国产一区欧美| 国产欧美日韩不卡| 国产精品乱码人人做人人爱 | 欧美一级艳片视频免费观看| 一区二区欧美在线观看| 亚洲伦理自拍| 日韩一级黄色片| 亚洲精品专区| 99视频一区| 一区二区三区毛片| 亚洲一区二区精品在线| 亚洲午夜精品17c| 亚洲午夜精品久久久久久app| 一区二区三区不卡视频在线观看| 99精品久久| 亚洲视频www| 亚洲一区二区三区激情| 亚洲综合视频1区| 亚洲欧美在线另类| 久久99伊人| 久久久久久久久久久成人| 久久久久久一区二区三区| 久久久一区二区三区| 久久一区中文字幕| 欧美大片18| 欧美日韩一区二区在线播放| 国产精品成人一区二区三区吃奶| 国产精品国产三级国产普通话三级 | 亚洲在线日韩| 欧美一区二区三区精品| 久久国产欧美日韩精品| 91久久久亚洲精品| 一本到12不卡视频在线dvd| 亚洲一区三区电影在线观看| 亚洲欧美日韩在线一区| 久久精品av麻豆的观看方式| 久久五月天婷婷| 欧美高清你懂得| 欧美亚州一区二区三区 | 亚洲黄色精品| 一本久久综合亚洲鲁鲁五月天| 亚洲午夜性刺激影院| 性欧美8khd高清极品| 亚洲国产日韩欧美| 一区二区欧美视频| 欧美在线影院| 欧美成人tv| 国产精品大全| 伊人成人在线视频| 一本不卡影院| 欧美专区一区二区三区| 亚洲国产三级| 亚洲宅男天堂在线观看无病毒| 久久精品99国产精品日本| 欧美二区在线看| 国产精品美女www爽爽爽视频| 韩日精品视频一区| 亚洲裸体视频| 久久国产精品毛片| 亚洲永久在线| 蜜桃视频一区| 国产精品剧情在线亚洲| 在线欧美电影| 亚洲在线第一页| 好吊妞**欧美| 揄拍成人国产精品视频| 亚洲黄色成人| 亚洲视频欧美在线| 亚洲国产mv| 亚洲免费在线电影| 免费成人毛片| 国产精品久久久久久久电影| 在线观看一区| 亚洲一区二区精品在线观看| 亚洲黄色成人| 亚洲第一免费播放区| 国产视频一区在线| 亚洲美女黄网| 亚洲黄一区二区| 午夜精品视频在线观看| 欧美精品免费观看二区| 国内精品免费在线观看| 亚洲深爱激情| 亚洲美女91| 久久精品在线免费观看| 欧美日韩一区二区在线视频| 狠狠色狠狠色综合系列| 亚洲午夜女主播在线直播| 亚洲精品免费一二三区| 久久国产精品网站| 欧美性开放视频| 亚洲经典在线看| 亚洲福利在线看| 欧美在线地址| 欧美三级精品| 亚洲国产另类久久久精品极度| 篠田优中文在线播放第一区| 亚洲午夜激情免费视频| 欧美福利一区二区三区| 国语自产精品视频在线看| 亚洲一区高清| 亚洲制服av| 欧美日韩日日夜夜| 亚洲精品久久久久久下一站| 亚洲国产综合91精品麻豆| 久久精品国产亚洲a| 国产精品免费看片| 999在线观看精品免费不卡网站| 亚洲精品免费电影| 欧美1区2区视频| 黄页网站一区| 欧美有码视频| 久久精品九九| 国产一区二区三区av电影 | 亚洲国产天堂久久综合网| 欧美在线一级视频| 久久国内精品视频| 国产欧美日本在线| 午夜精品久久久久久99热软件| 午夜伦理片一区| 国产精品美女久久久| 欧美日韩久久精品| 久久久久一区二区三区四区| 国产精品色在线| 在线综合+亚洲+欧美中文字幕| 日韩亚洲欧美中文三级| 欧美精品激情在线观看| 亚洲级视频在线观看免费1级| 日韩视频免费看| 欧美日韩久久精品| 夜夜精品视频| 性欧美video另类hd性玩具| 国产精品一区二区久激情瑜伽| 亚洲视频在线观看视频| 亚洲欧美日韩精品久久久| 国产精品乱码人人做人人爱| 亚洲免费在线精品一区| 久久成人亚洲| 韩国久久久久| 亚洲国产精品一区二区www| 欧美α欧美αv大片| 亚洲美女精品久久| 亚洲欧美日韩综合aⅴ视频| 国产老肥熟一区二区三区| 性做久久久久久久久| 久久综合给合| 最近看过的日韩成人| 一区二区av在线| 国产精品视频精品| 久久国产精品网站| 欧美精品久久99久久在免费线| 日韩一级精品| 羞羞漫画18久久大片| 国内精品美女av在线播放| 亚洲精品一区二区在线观看| 欧美日韩免费观看一区三区| 亚洲综合好骚| 免费观看一区| 日韩一二三区视频| 欧美一区二区三区喷汁尤物| 韩国在线视频一区| 在线视频亚洲| 国产亚洲成av人片在线观看桃| 亚洲黄色在线看| 国产精品播放| 久久精品视频va| 欧美日韩在线亚洲一区蜜芽| 新67194成人永久网站| 欧美粗暴jizz性欧美20| 亚洲午夜久久久久久久久电影网| 久久精品亚洲一区二区三区浴池| 亚洲国产精品久久91精品| 亚洲在线成人| 在线日韩欧美| 亚洲欧美日本视频在线观看| 激情一区二区| 亚洲图片欧洲图片av| 国产日韩亚洲| 99亚洲一区二区| 国产日韩欧美一区在线| 国内自拍一区| 久久国产欧美精品| 韩日精品视频| 一区二区三区波多野结衣在线观看| 国产老女人精品毛片久久| 亚洲片在线观看| 国产精品午夜视频| 亚洲精品一区在线| 国产日韩欧美亚洲| 亚洲网站啪啪| 激情久久久久久久久久久久久久久久| 亚洲一区二区三区激情| 亚洲大黄网站| 久久9热精品视频| 99re6热只有精品免费观看 | 亚洲国产精品美女|