胡 星 郇 極 劉 喆
(北京航空航天大學 機械工程及自動化學院,北京100191)
近年來基于以太網(wǎng)的工業(yè)現(xiàn)場總線已經(jīng)成為工業(yè)控制設備現(xiàn)場總線的發(fā)展方向.國際電工委員會IEC于2007年頒布了10種基于以太網(wǎng)的現(xiàn)場總線標準,如 EtherCAT,PROFINET,SERCOSⅢ等[1].這些總線具有豐富的控制功能,能夠覆蓋從小規(guī)模自動化設備到超大規(guī)模自動化車間和工廠的應用需求.但是它們的技術使用難度較大,需要開發(fā)大量的驅動程序而且配置過程非常復雜.在工業(yè)自動化領域中,用于設備控制的現(xiàn)場總線占有很大的應用需求比例.例如:數(shù)控機床中數(shù)控系統(tǒng)與伺服裝置的通信,工業(yè)機器人控制系統(tǒng)與伺服裝置的通信,它們通常要求很高的通信速度和很高的通信可靠性,但是不要求很復雜的可配置性.適用于大規(guī)模車間和工廠的現(xiàn)場總線對于這些應用來說過于復雜,這類應用需要開發(fā)一種配置簡便、低成本、高可靠性的現(xiàn)場總線.以太網(wǎng)在計算機網(wǎng)絡領域中獲得了廣泛應用,強大的市場需求使其核心物理層器件得以大規(guī)模生產(chǎn),在性能和成本方面顯示出極大的優(yōu)越性.因此本文提出一種基于以太網(wǎng)器件的工業(yè)現(xiàn)場總線FED(Fieldbus based on Ethernet Devices).FED 主要面向工業(yè)自動化設備,使用便捷無需復雜驅動程序,自動完成網(wǎng)絡的建立和通信的準備工作,能在底層網(wǎng)絡透明的情況下實現(xiàn)高速實時通信.
工業(yè)以太網(wǎng)通常將ISO/OSI定義的標準7層通信模型簡化為3層模型,分別為物理層、數(shù)據(jù)鏈路層和應用層[1].3層結構如圖1所示.FED采用通用以太網(wǎng)物理層器件(帶變壓器trafo的RJ45接頭和PHY芯片)和專門開發(fā)的FPGA片上系統(tǒng)(SOC,System On Chip)分別實現(xiàn)物理層和鏈路層.應用層可以由設備用戶自行定義,也可以采用目前自動化設備常用的通信協(xié)議,例如CANopen,SERCOS等.
FED原理如圖2所示,采用了主從式控制方式,線性拓撲結構,主站與上層的控制器相連,從站與上層的IO設備或者伺服電機相連.FED數(shù)據(jù)傳輸率為100 Mbit/s,站點連接使用100BASETX標準電纜,最大距離100m,主站可以最多掛接255個從站.主從站采用統(tǒng)一的硬件結構,F(xiàn)ED站點可以被配置成為主站或者從站.主站負責參數(shù)設定、指令發(fā)送、過程數(shù)據(jù)采集和狀態(tài)信息的讀取,并且對系統(tǒng)的異常做出處理.從站負責指令數(shù)據(jù)提取和狀態(tài)信息寫入.
圖1 FED的體系結構
圖2 FED結構和運行原理
站點的Rx為接收端口,Tx為發(fā)送端口.主站發(fā)出下行數(shù)據(jù)幀,遍歷所有從站設備.每個從站在數(shù)據(jù)幀經(jīng)過時交換其中的數(shù)據(jù),然后傳遞報文給下一個從站,最后一個從站把經(jīng)過完全處理的數(shù)據(jù)幀作為上行數(shù)據(jù)幀返回發(fā)送給主站,主站收到上行數(shù)據(jù)幀后,處理返回數(shù)據(jù),一次通訊結束.
在FED協(xié)議中,主站把給從站發(fā)送的所有信息打包到一個數(shù)據(jù)幀內(nèi),這種數(shù)據(jù)幀稱為集總幀.
通用以太網(wǎng)因為考慮到載波偵聽的碰撞檢測機制的效率問題,規(guī)定網(wǎng)絡上傳輸?shù)膸笮〔荒艹^1 536 Byte.FED使用的是全雙工傳輸,由于沒有沖突檢測和回退機制,F(xiàn)ED集總幀的長度可以超過普通以太網(wǎng)規(guī)定的標準幀長度.
FED數(shù)據(jù)幀的格式如圖3所示.FED協(xié)議規(guī)定了“FED 幀頭”包含了“Preamble”,“SFD”和“標識碼”3個字段.“Preamble”和“SFD”是指IEEE 802.3標準所規(guī)定的前導碼和幀起始界定符;“標識碼”包含“U/D”、“保留”和“幀類型”3個字段;“U/D”位用來標記該數(shù)據(jù)幀是上行還是下行;“保留”是系統(tǒng)保留的擴展功能控制位;“幀類型”是用來區(qū)分FED不同運行過程中使用的數(shù)據(jù)幀;“數(shù)據(jù)區(qū)”是指數(shù)據(jù)幀的具體內(nèi)容;“FCS”是指采用了CRC32的幀校驗序列.
圖3 FED幀格式
FED有3個運行過程:編碼配置過程、讀寫空間配置過程和周期運行過程.在這3個過程分別使用編碼配置幀(幀類型=0)、讀寫空間配置幀(幀類型=1)和數(shù)據(jù)空間幀(幀類型=2).
FED從系統(tǒng)上電開始進入編碼配置過程,在編碼配置過程中使用編碼配置幀.該配置幀如圖4所示,“當前站號”是指配置幀從主站發(fā)出后每經(jīng)過一個從站加1,表明從站在系統(tǒng)中物理位置編號;“從站本地編碼區(qū)”中是由各從站硬件設定的從站本地編碼.
圖4 編碼配置幀
主站首先發(fā)出編碼配置幀,幀的“當前站號”為0,“從站本地編碼區(qū)”為空.配置幀經(jīng)過第一個從站時從站把“當前站號”加1,把本地編碼順序填寫在“從站本地編碼區(qū)”中,最后把“幀校驗序列”重新計算后發(fā)給下一個從站.幀依次傳遞,每一個從站都進行上述操作,當配置幀經(jīng)過最后一個從站返回主站的時候,主站不僅獲取了系統(tǒng)中的從站數(shù)量,而且獲得了各從站的本地編碼和物理位置編號的對應關系,本文把這種對應關系稱為編碼映射.如果各從站的本地編碼沒有沖突,這個配置過程只要1次通訊就能完成,如果有沖突主站會停止并報警.
接下來FED進入到配置過程的第2步——讀寫空間配置過程,在編碼配置過程中使用編碼配置幀.該配置幀如圖5所示.“當前數(shù)據(jù)地址指針”是當前從站的讀寫數(shù)據(jù)在數(shù)據(jù)空間中的起始地址,用來給從站建立數(shù)據(jù)地址映射;“空間申請表”標示各從站讀空間大小和寫空間大小,反應了各從站申請的讀寫空間長度的大小.
圖5 讀寫空間配置幀
主站發(fā)出讀寫空間配置幀,幀的“當前站號”為0,“當前數(shù)據(jù)地址指針”為0,“空間申請表”內(nèi)容為空.配置幀經(jīng)過第1個從站時從站把當前站號加1,把需要申請的讀寫空間大小順序填入“空間申請表”中,并把“當前數(shù)據(jù)地址指針”加上該從站所占用的讀寫空間總長度,最后把“幀校驗序列”重新計算后發(fā)給下一個從站.幀依次傳遞,每一個從站都進行上述操作,當配置幀經(jīng)過最后一個從站返回主站的時候,主站就能得到所有從站的讀寫數(shù)據(jù)空間在數(shù)據(jù)空間幀中的對應關系.本文把這種對應關系稱為數(shù)據(jù)映射.該配置過程1次通訊可以完成.
主站在自動完成編碼配置過程和讀寫空間配置過程后立即通知上層控制器,上層控制器根據(jù)編碼映射和數(shù)據(jù)映射控制主站對從站開始周期性數(shù)據(jù)操作.
主站按照設定好的控制周期,每一個周期發(fā)送一個數(shù)據(jù)空間幀.數(shù)據(jù)空間幀如圖6所示.“索引表”標明了主站決定的每個從站讀寫數(shù)據(jù)權限;“周期性數(shù)據(jù)區(qū)”中從站數(shù)據(jù)按照從站在系統(tǒng)中的物理位置,也就是在配置過程中數(shù)據(jù)幀經(jīng)過從站的先后順序進行排列.
圖6 數(shù)據(jù)空間幀
從站按照在系統(tǒng)中的物理位置依次占用索引表的2位比特,這2位比特稱為該從站的索引位.例如索引表的第1個字節(jié)可以作為從站1到從站4的索引位.2位比特的第1位表示從站讀權限,第2位表示從站寫權限.權限位的值如果為0則表示從站沒有相應的操作權限,值為1則表示從站有相應的操作權限.數(shù)據(jù)空間幀經(jīng)過從站時,從站按照操作權限對本站的周期性數(shù)據(jù)進行操作,然后反轉索引位.例如從站如果進行了讀操作就把讀權限位的1反轉到0,如果進行了寫操作就把寫權限位的1反轉到0,如果該從站既沒有讀權限也沒有寫權限則把索引位的00反轉到11.該操作的意義是提示主站該從站正確操作了權限范圍內(nèi)的周期性數(shù)據(jù),同時告知主站從站處于正常的工作狀態(tài),有利于主站對于網(wǎng)絡和站點情況的監(jiān)控和診斷,索引位的反轉操作見表1.
表1 索引位的反轉操作
從站在數(shù)據(jù)空間幀經(jīng)過時讀取控制數(shù)據(jù)執(zhí)行指令,同時把狀態(tài)數(shù)據(jù)寫入幀中,反轉索引位.數(shù)據(jù)空間幀返回主站后,主站對每個從站的狀態(tài)數(shù)據(jù)和索引位進行甄別和處理并且準備開始下一周期的發(fā)送.在系統(tǒng)中運行的數(shù)據(jù)空間幀實際上就是一個以控制周期為基準定時刷新的數(shù)據(jù)空間,供主從站交換數(shù)據(jù).
飛讀寫功能可以使FED從站在接收的同時處理并轉發(fā)數(shù)據(jù)幀.如圖7所示,從站一旦探測到數(shù)據(jù)幀的到來,F(xiàn)PGA中的飛讀寫模塊(Fly_moudle)就開始工作.模塊監(jiān)視正在經(jīng)過從站的數(shù)據(jù)幀位置,如果該位置是本從站的讀地址,那么模塊將數(shù)據(jù)幀中該位置的字節(jié)復制出一個副本,同時數(shù)據(jù)幀不停留直接被發(fā)送出該從站.當數(shù)據(jù)幀中從站讀地址的數(shù)據(jù)字節(jié)被全部復制,副本數(shù)據(jù)會被組合成為完整的數(shù)據(jù)供從站上層設備訪問;如果模塊監(jiān)視到經(jīng)過從站的數(shù)據(jù)幀位置是本從站的寫地址,模塊會將準備好寫入的字節(jié)替代當前數(shù)據(jù)幀中該位置的數(shù)據(jù),同時數(shù)據(jù)幀立即被發(fā)送出該從站.飛讀寫功能使若干從站可以同時處理集總幀的不同部分,因此保證了通信的快速性和實時性.
圖7 飛讀寫功能
圖8 主從站結構功能圖
針對FED這種易操作的以太網(wǎng)現(xiàn)場總線,主從站使用相同的硬件結構,統(tǒng)一的硬件和接口使安裝和匹配更簡便.站點可以使用FPGA引腳電平設定站點類型和配置參數(shù),例如主站的主從屬性和讀寫空間.
考慮到主從站系統(tǒng)功能的復雜性和可擴展性,主從站FPGA內(nèi)的模塊結構如圖8虛線框內(nèi)所示.片上 NiosII軟處理器通過 Avalon MM和Avalon DMA兩種片上總線接口連接了各種硬件描述功能模塊.其中主站獨有負責幀生成和幀接收的Control_moudule模塊,而從站獨有負責飛讀寫的Fly_module模塊和負責幀轉發(fā)的Loop_module 模塊,其余的 Config,Registers,MII_control,Receive和Transmit 5個模塊為主從站通用模塊.Config負責芯片的主從屬性和從站本地編碼等基本配置,Registers為功能寄存器模塊,MII_control為管理PHY芯片的模塊,Receive和Transmit為接收和發(fā)送數(shù)據(jù)流的模塊.NiosII還通過Avalon MM接口和片內(nèi)DPRAM相連,主從站的上層設備通過DPRAM和FED站點進行數(shù)據(jù)交換.
為了測試FED主從站性能,如圖9所示,作者搭建了站點間電纜長度為15 m的單主站雙從站的測試系統(tǒng).數(shù)據(jù)延遲分析如圖10所示.SignalTAP是一款功能強大且極具實用性的FPGA片上調(diào)試工具.據(jù)SignalTAP測量數(shù)據(jù),在FED從站中數(shù)據(jù)幀從PHY的MII接收引腳到FPGA,經(jīng)過FPGA處理后再到MII發(fā)送管腳需要的延時tf=760 ns.根據(jù)芯片手冊,PHY芯片接收數(shù)據(jù)的最大延時tr=110ns,發(fā)送數(shù)據(jù)的最大延時tt=60ns,數(shù)據(jù)幀在15 m電纜上傳播的延時tw=50ns,因此經(jīng)過一個從站的總延時 ts=0.98 μs.
圖9 實驗驗證系統(tǒng)
圖10 數(shù)據(jù)幀延遲分析
在線性拓撲中每個數(shù)據(jù)幀會2次經(jīng)過同一個從站,在本實驗系統(tǒng)中2個從站會帶來4 μs的延遲.根據(jù)主站的SignalTAP測量結果,主站發(fā)出數(shù)據(jù)幀和收到數(shù)據(jù)幀的間隔為4 μs,與計算數(shù)據(jù)一致.根據(jù)實驗結果可知在系統(tǒng)掛載最多255個從站,每個從站為2 Byte輸入2 Byte輸出數(shù)據(jù)時,系統(tǒng)的最小控制周期可以達到0.51 ms.其實時通信能力遠遠超過目前流行的現(xiàn)場總線RS485和CAN.因此FED完全滿足CNC、工業(yè)機器人等自動化設備對于高速實時通信的需求.
References)
[1]郇極,劉艷強.工業(yè)以太網(wǎng)現(xiàn)場總線EtherCAT驅動程序設計及應用[M].北京:北京航空航天大學出版社,2010:1-28,115-120 Huan Ji,Liu Yanqiang.Design and application of industrial Ethernet fieldbus EtherCAT drivers[M].Beijing:Beijing University of Aeronautics and Astronautics Press,2010:1 - 28,115 - 120(in Chinese)
[2]郇極,尹旭峰.數(shù)字伺服通訊協(xié)議SERCOS驅動程序設計及應用[M].北京:北京航空航天大學出版社,2005:19-27 Huan Ji,Yin Xufeng.Design and application of digital servo communications protocol SERCOS drivers[M].Beijing:Beijing University of Aeronautics and Astronautics Press,2005:19 - 27(in Chinese)
[3]張鳳登.從MAC角度分析現(xiàn)場總線的多樣性[J].自動化儀表,2009,30(7):1 -5 Zhang Fengdeng.Analyzing the diversificationn of fieldbus standards from the viewpoint of media access control[J].Process Automation Instrumentation,2009,30(7):1 -5(in Chinese)
[4]Bechhoff Information System.Products & solution CD[EB/CD].Eiserstraβe:Beckhoff Inc,2007[2012-02-03]
[5]EtherCAT Technology Group.EtherCAT_SoE_specification_V1.01.pdf,version 1.01[EB/OL].Nuremberg:EtherCAT Technology Group,2010[2012-02-03].http://www.ethercat.org/cn/publications.html#logo
[6]Rafal C,Lukasz H.Field level industrial Ethernet network data analysis[J].Communications in Computer and Information Science,2011,160:358 -366
[7]Xiong Jianqiao,Xiong Xiaosong.The research of CNC communication based on industrial Ethernet[J].Electrical Engineering and Control,2011,98:689 -694
[8]劉喆,郇極,劉艷強.基于XML的EtherCAT工業(yè)以太網(wǎng)協(xié)議解析技術[J].北京航空航天大學學報,2011,37(9):1086-1090 Liu Zhe,Huan Ji,Liu Yanqing.Parser of industrial Ethernet EtherCAT bassed on XML[J].Journal of Beijing University of Aeronautics and Astronautics,2011,37(9):1086 - 1090(in Chinese)