《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 基于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亚洲国产精品_日韩亚洲一区二区
国产精品久久久久秋霞鲁丝| 国产日产欧产精品推荐色 | 在线亚洲欧美视频| 亚洲第一页中文字幕| 亚洲欧美日韩国产综合| 亚洲精品一区二区三区av| 国产一区在线看| 国产精品入口麻豆原神| 欧美精品电影| 久久国产精品久久久久久电车| 亚洲精品在线视频观看| 亚洲免费在线精品一区| 99re国产精品| 亚洲三级毛片| 亚洲激情国产| 在线成人免费观看| 国产主播一区二区三区四区| 国产精品美女在线观看| 欧美日韩一二三区| 欧美jjzz| 美乳少妇欧美精品| 午夜精品福利电影| 亚洲性线免费观看视频成熟| 99精品久久久| 久久国产精品亚洲va麻豆| 欧美亚洲免费电影| 欧美一区二区三区免费看| 亚洲一卡久久| 亚洲天堂免费观看| 亚洲视频在线看| 一区二区三区国产在线观看| 日韩视频在线观看国产| 亚洲精品婷婷| 日韩亚洲欧美一区| 日韩视频免费观看| 99re6这里只有精品视频在线观看| 亚洲欧洲中文日韩久久av乱码| 在线日韩日本国产亚洲| 激情国产一区| 影音先锋在线一区| 亚洲国产91精品在线观看| 亚洲成色777777女色窝| 在线看国产一区| 激情国产一区二区| 国产在线不卡视频| 国产综合色在线视频区| 狠狠色丁香久久婷婷综合_中| 国语自产精品视频在线看8查询8 | 欧美精品一区二区在线播放| 欧美激情精品久久久久久蜜臀| 欧美91视频| 欧美裸体一区二区三区| 欧美母乳在线| 国产精品成人一区| 国产乱码精品一区二区三| 国产色爱av资源综合区| 国产性天天综合网| 国语对白精品一区二区| 伊人成综合网伊人222| 91久久精品日日躁夜夜躁欧美| 亚洲三级免费电影| 国产精品99久久久久久久女警| 亚洲天堂av电影| 性色av一区二区怡红| 久久黄色小说| 亚洲美女91| 亚洲天堂偷拍| 欧美在线啊v| 免费一区视频| 欧美色网在线| 欧美性一二三区| 国产亚洲综合在线| 亚洲国产一二三| 一区二区高清视频在线观看| 性色一区二区三区| 亚洲欧洲精品天堂一级| 亚洲一区成人| 久久网站免费| 欧美日韩美女在线| 国产日产欧产精品推荐色| 狠狠色伊人亚洲综合成人| 亚洲人成绝费网站色www| 国产精品99久久久久久久女警| 欧美一区二视频| 日韩视频在线观看| 亚洲一区视频在线观看视频| 久久精品国产成人| 欧美精品成人| 国产亚洲精品自拍| 亚洲精品视频在线观看网站| 午夜精品久久久久久久蜜桃app | 欧美一区二区成人6969| 亚洲黄色一区| 午夜免费日韩视频| 欧美1区免费| 国产欧美日韩在线播放| 亚洲国产精品视频| 香蕉免费一区二区三区在线观看 | 久久精品综合一区| 欧美日韩一区三区| 一区二区三区在线免费视频| 99xxxx成人网| 亚洲国产影院| 性欧美办公室18xxxxhd| 欧美第一黄色网| 国产欧美三级| 日韩一级免费观看| 亚洲国产视频一区二区| 亚洲欧美日韩精品久久奇米色影视 | 欧美国产日韩亚洲一区| 国产精品午夜国产小视频| 亚洲精品日本| 亚洲高清在线精品| 欧美中文字幕视频| 欧美日韩人人澡狠狠躁视频| 狠狠色狠狠色综合| 亚洲一区视频在线| 一区二区三区日韩欧美精品| 久久一综合视频| 国产日韩欧美一区在线| 一区二区成人精品| 日韩视频免费观看高清完整版| 久久精品99国产精品日本| 国产精品成人一区| 亚洲美女免费精品视频在线观看| 久久精品男女| 久久精品国产第一区二区三区最新章节| 欧美日韩一区在线| 亚洲片在线资源| 亚洲欧洲精品一区二区| 久久精品亚洲精品| 欧美日韩免费一区| 亚洲精品国久久99热| 久久精品国产999大香线蕉| 亚洲欧美第一页| 欧美四级在线观看| 日韩小视频在线观看专区| 亚洲另类视频| 欧美久久久久久| 91久久综合| 日韩视频精品| 欧美精品一区二| 亚洲欧洲精品成人久久奇米网| 亚洲激情偷拍| 欧美91精品| 亚洲激情女人| 99在线热播精品免费99热| 欧美电影资源| 亚洲国产高清一区| 亚洲日产国产精品| 欧美国产日本韩| 亚洲日本在线观看| 一区二区三区欧美在线| 欧美日韩中文字幕| 一区二区三区四区五区视频| 亚洲色在线视频| 国产精品成人aaaaa网站| 一区二区三区四区五区精品视频 | 国产精品永久免费在线| 一本一道久久综合狠狠老精东影业| 亚洲精品一区二区三区在线观看| 久久亚洲国产精品日日av夜夜| 国内精品免费在线观看| 亚洲韩国精品一区| 欧美第一黄网免费网站| 亚洲日本va午夜在线电影| 一区二区三区国产精华| 国产精品av免费在线观看| 亚洲一区3d动漫同人无遮挡| 亚洲一区网站| 国产精品videossex久久发布| 亚洲在线成人| 久久久另类综合| 国内精品久久久久国产盗摄免费观看完整版| 久久精品一区二区三区四区| 久久久噜噜噜久久| 亚洲高清av| 一区二区三区成人精品| 欧美视频在线观看免费| 午夜精品久久久久| 免费人成精品欧美精品| 99re8这里有精品热视频免费| 亚洲欧美日本日韩| 国内精品久久久久久影视8| 日韩亚洲欧美成人一区| 国产伦精品一区二区三区免费 | 欧美华人在线视频| 欧美一级淫片播放口| 欧美视频成人| 亚洲三级影片| 国产亚洲a∨片在线观看| 中国av一区| 亚洲国产va精品久久久不卡综合| 午夜日韩福利| 亚洲精品中文在线| 猛干欧美女孩| 欧美一区二区成人6969| 国产精品乱子久久久久| 亚洲美女性视频| 黄色精品网站|