《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于FPGA的EtherCAT協議鏈路冗余研究
基于FPGA的EtherCAT協議鏈路冗余研究
2017年電子技術應用第9期
黃 兵,豐大軍,劉云龍,王 皓
華北計算機系統工程研究所,北京100083
摘要: EtherCAT是一種實時工業以太網協議,使用鏈路冗余技術是實現鏈路穩定性和可靠性的重要手段。介紹了基于FPGA的EtherCAT鏈路冗余原理,設計通過FPGA實現主站與從站、從站與從站之間的通信鏈路與冗余鏈路的自動切換,從而實現EtherCAT的鏈路冗余。通過測試驗證了此方法的可行性,增加了EtherCAT系統的可靠性與可維護性。
關鍵詞: EtherCAT FPGA 冗余
中圖分類號: TP23
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.179010
中文引用格式: 黃兵,豐大軍,劉云龍,等. 基于FPGA的EtherCAT協議鏈路冗余研究[J].電子技術應用,2017,43(9):80-82,86.
英文引用格式: Huang Bing,Feng Dajun,Liu Yunlong,et al. Research on link redundancy of EtherCAT protocol based on FPGA[J].Application of Electronic Technique,2017,43(9):80-82,86.
Research on link redundancy of EtherCAT protocol based on FPGA
Huang Bing,Feng Dajun,Liu Yunlong,Wang Hao
National Computer System Engineering Research Institute of China,Beijing 100083,China
Abstract: EtherCAT is a real-time industrial Ethernet protocol. The use of link redundancy is an important means of achieving link stability and reliability. This article describes the FPGA based EtherCAT link redundancy principle. This design uses FPGA to achieve the automatically switch of the communication link and redundant link between master station and slave station,or the slave and the slave,in order to achieve the link redundancy of EtherCAT. The feasibility of this method is verified by testing.
Key words : EtherCAT;FPGA;redundancy

0 引言

    EtherCAT最初是由德國的倍福公司基于標準以太網技術提出的工業以太網,是一種具有靈活網絡拓撲結構的技術[1]。EtherCAT技術具有速度快、同步性能好、支持多種拓撲結構、采用標準以太網幀、帶寬利用率高等優點[2]。工業以太網中冗余技術是提高以太網系統可靠性和可維護性最有效的手段之一[3]。鏈路冗余是應對網口故障(包括主站網卡本身故障和連接)及鏈路故障(指從站節點之間的鏈路存在斷開情況,如網線斷開)的補救措施。通常在對系統穩定運行要求比較高的情況下,就需要應用鏈路冗余技術。鏈路冗余是一種單一容錯機制,即如果鏈路在某一處發生故障,依然可以與各個從站保持數據的傳輸。當通信恢復時主要的通信方向也會恢復。如果不止一個地方發生通信中斷,所有的必須在發生另一個錯誤之前恢復。文獻[4]中介紹了一種工業以太網EtherCAT冗余和熱插拔技術,此種方法采用環型冗余結構,將最后一個 ESC節點連接到主站,此種方法雖然可以解決單點故障,但是在故障修理時需要斷電,且不能解決多點故障。為了解決此問題,本文通過介紹基于FPGA的EtherCAT的鏈路冗余原理,設計通過FPGA實現主站與從站、從站與從站之間的通信鏈路與冗余鏈路的自動切換,從而實現EtherCAT的鏈路冗余,增加了EtherCAT 系統的可靠性與可維護性 。

1 EtherCAT原理

    EtherCAT是一種實時工業以太網技術,采用主從站結構,如圖1所示。主站發送以太網幀給各從站,從站通過尋址從數據幀中抽取對應的數據或將數據插入數據幀,然后將該數據幀傳輸到下一個EtherCAT從站。最后一個EtherCAT從站發回經過完全處理的報文,并由第1個從站作為響應報文發送給主站。主站使用標準的以太網接口卡或具有以太網接口的嵌入式工業控制計算機,EtherCAT從站使用專用的從站控制芯片ESC,采取接收轉發機制,以太網幀可以雙向通行,但只有以太網幀由下行電報方向進入時,相應的報文才能得到處理,如果指定轉發的網口未連接,ESC自動將以太網幀沿原入口返回。

ck4-t1.gif

    EtherCAT數據直接使用以太網數據幀,使用的幀類型為0x88A4。EtherCAT數據包括2 B的數據頭和44 B~1 498 B的數據。數據區由一個或多個EtherCAT子報文組成,每個子報文對應獨立的設備和從站存儲區。每個EtherCAT 子報文包括子報文頭、數據域和相應的工作計數器(Working Counter,WKC),子報文尋址到從站節點并交換數據后,工作計數器將被增加,用以記錄該子報文的處理狀態。子報文頭中,8 bit命令字節指定了子報文類型(讀寫類型,尋址類型);8 bit索引號給出子報文編碼。32 bit的子報文地址指定了對從站的操作地址,尋址類型定義了尋址方式;8 bit長度用以指示報文數據區的字節數;R為4 bit的保留位;4 bit M表示本報文是否為最后一個報文;16 bit中斷目前保留。

2 基于FPGA的鏈路冗余原理

    在EtherCAT通信鏈路運行過程中,可能會存在如下幾種故障:

    (1)網口故障,包括主站網卡本身故障和連接。

    (2)鏈路故障,指從站節點之間的鏈路存在斷開情況,比如網線斷開。

    為了能夠增加EtherCAT系統的可靠性及可維護性,在EtherCAT主站與從站的鏈路之間通過FPGA增加了冗余功能,每一條鏈路都有對應的冗余鏈路作為備用。鏈路1出現故障時,可以通過FPGA自動切到冗余鏈路1;鏈路2出現故障時,通過FPGA自動切到冗余鏈路2。這樣如果鏈路在某一處發生故障,依然可以與各個從站保持數據的傳輸。當通信恢復時主要的通信方向也會恢復,極大地增強了系統的穩定性和可維護性。

    如圖2所示,EtherCAT主從站網絡構成框圖中,冗余卡為基于FPGA的鏈路冗余卡,通過通信鏈路1與主機冗余型CPU連接,冗余鏈路1與備機冗余型CPU連接,實現主從站之間的主備切換冗余。通過通信鏈路2與下一級冗余卡的鏈路1連接,冗余鏈路2與下一級冗余卡的冗余鏈路1連接,實現EtherCAT的鏈路冗余。

ck4-t2.gif

3 鏈路冗余的FPGA實現方法

    FPGA實現主站與從站、從站與從站之間的通信鏈路與冗余鏈路的自動切換功能。

    如圖3所示,FPGA的4個接口0、1、2、3與4條通信鏈路通過MII(Media Independent Interface)方式連接。FPGA的4個接口分為2組,接口0和接口1為1組,接口2和接口3為1組,兩組的邏輯相同?,F以接口0和接口1說明冗余的切換方式:

ck4-t3.gif

    (1)FPGA復位狀態為接口;

    (2)運行過程中,通信鏈路1狀態不正常,冗余鏈路1正常,接口1切換為接口0;

    (3)冗余鏈路1正常時,通信鏈路1恢復正常,此時不切換,還是連接接口1;

    (4)冗余鏈路1不正常,通信鏈路1恢復正常,接口2切換為接口1運行。

    接口2和接口3的切換方式與接口0和接口1的切換方式相同。

    在FPGA實現過程中,主要是通過判別兩個接口的PHY(Physical Layer)的數據連接信號(linkmii)和數據有效信號(rx_dv)判斷鏈路的狀態。其中,接口0的數據連接信號為linkmii0,數據有效信號為rx_dv0,接口1的數據連接信號為linkmii1,數據有效信號為rx_dv1。因為PHY在數據傳輸過程中,rx_dv信號只在數據有效時拉高,因此,需要檢測時間閾值(cnt_time0、cnt_time1),即兩次rx_dv時間差,超過時間閾值(cnt_time0=1、cnt_time1=1)認為此接口無數據連接。接口0和接口1的切換條件判斷為:

    (1)當linkmii0為低,linkmii1為高,選擇為接口0;

    (2)當linkmii0為高,linkmii1為低,選擇為接口1;

    (3)以前狀態為接口1,當linkmii0為低,linkmii1為低,rx_dv0=1,cnt_time0=0,則選擇為接口0;

    (4)以前狀態為接口1,當linkmii0為低,linkmii1為低,rx_dv1=1,cnt_time1=0,則選擇為接口0;

    (5)以前狀態為接口0,當linkmii0為低,linkmii1為低,rx_dv1=1,cnt_time0=1,則選擇為接口0;    

    (6)以前狀態為接口1,當linkmii0為低,linkmii1為低,rx_dv0=1,cnt_time1=1,則選擇為接口0。

    接口2和接口3的切換選擇邏輯與此類似。

4 功能測試

    為了驗證此鏈路冗余方法的可行性,搭建了以ALTERA公司的Cyclone III EP3C40E484i為核心的測試系統,此芯片有332個IO管腳,39 600個LE,可滿足設計的要求。根據FPGA實現冗余鏈路的要求,現根據測試圖型將測試敘述如下:

    (1)圖4中,0時刻前為通信鏈路和冗余鏈路都沒有連接到冗余卡上(linkmii0=1,linkmii1=1),此時默認選擇接口0,0時刻后冗余鏈路連接到冗余卡上(linkmii1=0,linkmii0=1),此時切換為接口1。

ck4-t4.gif

    (2)圖5中,0時刻前為冗余鏈路連接到冗余卡上(linkmii1=0,linkmii0=1),通道選擇為接口1,0時刻后,冗余鏈路從冗余卡上斷開(linkmii1=1,linkmii0=1),此時通道回到默認接口1。

ck4-t5.gif

    (3)圖6中,0時刻前為通信鏈路與冗余鏈路都連接到冗余卡上(linkmii0=0,linkmii1=0),通道選擇為接口1,但此時通信鏈路有數據有效信號(rx_dv0=1),冗余鏈路沒有數據有效信號(rx_dv1=0),此時通道切換到接口0。

ck4-t6.gif

    (4)圖7中,0時刻前為通信鏈路與冗余鏈路都連接到冗余卡上(linkmii0=0,linkmii1=0),通道選擇為接口0,但此時冗余鏈路有數據有效信號(rx_dv1=1),通信鏈路沒有數據有效信號(rx_dv0=0),此時通道切換到接口1。

ck4-t7.gif

5 結論

    本文首先介紹EtherCAT的基本原理,以增加EtherCAT系統穩定性和可維護性為出發點,給出了基于FPGA的EtherCAT鏈路原理,設計通過FPGA實現主站與從站、從站與從站之間的通信鏈路與冗余鏈路的自動切換,從而實現EtherCAT的鏈路冗余。通過測試驗證此方法的可行性,增加了EtherCAT 系統的可靠性與可維護性。

參考文獻

[1] Geon Yoon,Dae H yun Kwon,Soon Chang Kon,et al.Ring topology-based redundancy Ethernet for industrial network[C].SICE-ICASE International Joint Conference,2006.

[2] EtherCAT Technology Group(ETG).EtherCAT:the Ethernet fieldbus[J].PC Control,2005(7):14-19.

[3] Madren Frank.Redundancy with standards in industrial Ethernet LANs[J].Engineer IT,2006:72-75.

[4] 郇極,肖文磊,劉艷強.工業以太網EtherCAT冗余和熱插拔技術[J].北京航空航天大學學報,2009(2):38-41.



作者信息:

黃  兵,豐大軍,劉云龍,王  皓

(華北計算機系統工程研究所,北京100083)

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
久久精品免费观看| 亚洲视频1区| 亚洲精品中文字幕在线观看| 国产精品爽爽ⅴa在线观看| 免费看亚洲片| 欧美影院成年免费版| 一区二区三区欧美| 亚洲电影成人| 午夜欧美理论片| 亚洲桃花岛网站| 亚洲精品黄色| 国产一区二区中文字幕免费看| 欧美性开放视频| 欧美经典一区二区| 蜜臀91精品一区二区三区| 亚洲一区二区视频在线观看| 亚洲精品乱码久久久久久按摩观| 欧美一级专区免费大片| 亚洲一区二区三区国产| 一本久久综合亚洲鲁鲁五月天| 亚洲国产专区校园欧美| 精品福利免费观看| 国内精品视频一区| 国产视频精品xxxx| 国产伦精品一区二区三区高清| 国产精品高潮呻吟久久av无限| 欧美成人久久| 欧美大片第1页| 欧美aⅴ一区二区三区视频| 久久在线视频在线| 久久精品首页| 欧美在线亚洲一区| 欧美一区二区在线| 亚洲在线观看视频| 一道本一区二区| 夜夜嗨av一区二区三区四季av| 亚洲乱码国产乱码精品精天堂| 亚洲国产天堂久久国产91| 亚洲国产三级在线| 亚洲欧洲中文日韩久久av乱码| 久久精品国产欧美亚洲人人爽| 久久精品欧美| 欧美有码视频| 亚洲欧美一区二区视频| 午夜一区二区三视频在线观看| 亚洲男人第一av网站| 亚洲欧美国产精品va在线观看| 亚洲免费电影在线观看| 一区二区欧美视频| 亚洲与欧洲av电影| 欧美一区二区三区另类| 久久精品夜色噜噜亚洲a∨| 亚洲国产日韩欧美综合久久| 亚洲国产日韩在线| 亚洲免费电影在线| 亚洲一二三区在线| 亚洲欧美影音先锋| 久久漫画官网| 久久久久久久久一区二区| 久久躁日日躁aaaaxxxx| 欧美高清自拍一区| 欧美精品1区| 国产精品激情av在线播放| 国产欧美一区二区精品性色| 国内揄拍国内精品少妇国语| 国产欧美韩国高清| 在线欧美三区| 亚洲一区二区在线免费观看| 91久久午夜| 欧美亚洲视频一区二区| 欧美激情五月| 国产亚洲精品高潮| 99re这里只有精品6| 亚洲大胆人体视频| 午夜亚洲影视| 欧美日韩91| 国内精品国语自产拍在线观看| av不卡在线观看| 亚洲国产成人久久综合| 亚洲欧美日韩精品久久亚洲区| 欧美国产欧美亚洲国产日韩mv天天看完整| 国产精品美女一区二区| 亚洲国产专区| 欧美中文字幕| 午夜精品久久久久久久久久久久久| 免费日韩av电影| 国产一区二区欧美日韩| 亚洲视频在线看| 9色精品在线| 欧美96在线丨欧| 国内外成人在线视频| 西西裸体人体做爰大胆久久久| 亚洲视频精选| 欧美激情一区二区三区高清视频| 国产尤物精品| 亚洲欧美日韩高清| 亚洲在线1234| 欧美色网在线| 亚洲精品一区在线观看香蕉| 亚洲欧洲精品一区二区| 久久夜色精品亚洲噜噜国产mv| 国产伦理精品不卡| 亚洲小说春色综合另类电影| 亚洲天堂偷拍| 欧美日韩国产麻豆| 亚洲日韩欧美视频一区| 亚洲激情国产精品| 老司机一区二区三区| 狠狠色2019综合网| 久久国产加勒比精品无码| 久久精品av麻豆的观看方式| 国产精品你懂得| 亚洲午夜黄色| 午夜精彩视频在线观看不卡 | 国内精品视频在线观看| 欧美亚洲一区| 久久电影一区| 国内精品久久久久久久97牛牛| 亚洲欧美制服另类日韩| 欧美影院在线| 国产一区二区看久久| 欧美在线免费一级片| 久久aⅴ乱码一区二区三区| 国产欧美一区二区三区久久| 性娇小13――14欧美| 欧美在线播放视频| 国产在线拍偷自揄拍精品| 欧美专区18| 麻豆精品在线播放| 亚洲国产日韩欧美在线动漫| 亚洲毛片播放| 欧美日韩午夜| 亚洲午夜久久久久久久久电影网| 午夜久久99| 国产亚洲毛片在线| 亚洲国产欧美另类丝袜| 欧美风情在线观看| 99国产精品自拍| 亚洲欧美在线播放| 国产一区二区av| 亚洲人成网站999久久久综合| 欧美不卡高清| 日韩一级不卡| 欧美一级在线播放| 国产综合自拍| 日韩亚洲在线| 国产精品欧美风情| 久久成人精品| 欧美精品免费视频| 亚洲一二三区在线观看| 久久久久成人精品| 亚洲欧洲精品一区二区三区不卡| 一区二区三区波多野结衣在线观看| 欧美视频第二页| 欧美一区二区三区在| 欧美成人在线免费视频| 一区二区电影免费在线观看| 欧美资源在线| 亚洲人成免费| 欧美亚洲一级| 亚洲国产精品一区二区第一页| 中文欧美在线视频| 国产日韩欧美在线视频观看| 亚洲国产精品电影| 欧美视频一区二区三区…| 欧美在线观看一区二区三区| 欧美激情一二三区| 亚洲欧美日韩另类精品一区二区三区| 久久躁狠狠躁夜夜爽| 一本色道久久综合狠狠躁篇怎么玩| 午夜在线一区| 亚洲国产91精品在线观看| 亚洲欧美电影在线观看| 精久久久久久久久久久| 亚洲午夜av电影| 激情综合五月天| 亚洲一区二区在线| 在线成人激情| 翔田千里一区二区| 亚洲国产精品日韩| 久久高清国产| 夜夜嗨一区二区| 麻豆精品在线视频| 一区二区三区四区五区精品视频| 久久综合狠狠综合久久综合88| 亚洲巨乳在线| 久久色中文字幕| 亚洲一区二区三区在线播放| 欧美顶级大胆免费视频| 亚洲欧美亚洲| 欧美日韩精品免费观看视一区二区| 午夜视频久久久久久| 欧美日韩视频在线一区二区 | 一本综合精品| 欧美成人午夜剧场免费观看| 欧美亚洲视频| 国产精品久久久久久久久婷婷| 亚洲乱码国产乱码精品精98午夜| 国产午夜精品一区二区三区视频 | 亚洲二区在线|