郇 極 劉 喆 靳 陽 胡 星
(北京航空航天大學(xué) 機(jī)械工程及自動(dòng)化學(xué)院,北京100191)
實(shí)時(shí)工業(yè)以太網(wǎng)技術(shù)是以太網(wǎng)技術(shù)在自動(dòng)控制領(lǐng)域的延伸和發(fā)展,是工業(yè)控制自動(dòng)化領(lǐng)域的一個(gè)重要發(fā)展方向[1].它具有采用標(biāo)準(zhǔn)以太網(wǎng)器件,基于串行轉(zhuǎn)發(fā)技術(shù),大部分使用集總幀結(jié)構(gòu)等特點(diǎn),典型協(xié)議包括 EtherCAT,Profinet和 SERCOS III等[2].針對(duì)此類協(xié)議的研究主要集中于系統(tǒng)功能實(shí)現(xiàn)以及時(shí)序特性分析等方面[3].
實(shí)時(shí)工業(yè)以太網(wǎng)的時(shí)序特性包括通信鏈路和器件的延遲、周期和抖動(dòng)等,針對(duì)各類協(xié)議時(shí)序特性的研究比較豐富,主要的研究方法和內(nèi)容是特性參數(shù)的模型建立和圖形化結(jié)果的定性分析[4].但是,數(shù)據(jù)捕獲方法以及分析統(tǒng)計(jì)算法很少被涉及,一般解析過程需要調(diào)用多種軟件,其中包括Wireshark等報(bào)文分析工具和Matlab等建模、畫圖工具,因此軟硬件的集成度也不高.
德國Hilscher公司提出一種實(shí)時(shí)以太網(wǎng)網(wǎng)絡(luò)延遲和時(shí)間抖動(dòng)分析系統(tǒng)netANALYZER[5],該系統(tǒng)功能豐富,但是數(shù)據(jù)捕獲硬件需要使用 ExpressCard或PCI接口與監(jiān)聽計(jì)算機(jī)連接,組配能力受到局限,而且數(shù)據(jù)幀信息沒有被完全保存,離線分析能力較弱.
本文提出一種軟硬件集成的時(shí)序特性分析系統(tǒng),該系統(tǒng)可以在線捕捉及離線分析被監(jiān)聽鏈路上的數(shù)據(jù)幀,并最終以圖形化方式顯示相應(yīng)鏈路和器件的時(shí)序特性分析結(jié)果.
系統(tǒng)整體架構(gòu)如圖1所示.其中硬件部分包括數(shù)據(jù)偵聽器和監(jiān)聽計(jì)算機(jī);軟件部分是安裝在監(jiān)聽計(jì)算機(jī)上的時(shí)序分析儀.
圖1 系統(tǒng)架構(gòu)
數(shù)據(jù)偵聽器是安裝在工業(yè)以太網(wǎng)網(wǎng)絡(luò)中的硬件單元,它的功能是捕捉被監(jiān)聽鏈路上的原始數(shù)據(jù)幀(圖中所示OF),提取數(shù)據(jù)幀信息包括時(shí)間戳、長度、是否出錯(cuò)等,封裝這些信息生成一個(gè)Probe幀(圖中所示PF),最后發(fā)送原始數(shù)據(jù)幀和Probe幀至監(jiān)聽計(jì)算機(jī).Probe幀是本文提出的一種專門用于實(shí)時(shí)工業(yè)以太網(wǎng)時(shí)序、功能分析的以太網(wǎng)數(shù)據(jù)幀.
監(jiān)聽計(jì)算機(jī)是一臺(tái)配置有千兆以太網(wǎng)口的普通計(jì)算機(jī).監(jiān)聽計(jì)算機(jī)上安裝的時(shí)序分析儀軟件會(huì)自動(dòng)捕捉數(shù)據(jù)偵聽器發(fā)送過來的原始數(shù)據(jù)幀和Probe幀,解析Probe幀中封裝的信息,根據(jù)用戶的設(shè)置對(duì)數(shù)據(jù)進(jìn)行篩選、運(yùn)算和統(tǒng)計(jì),最后顯示圖形化的分析結(jié)果.
數(shù)據(jù)偵聽器[6]是本文提出的實(shí)時(shí)工業(yè)以太網(wǎng)時(shí)序特性分析系統(tǒng)的重要硬件組成單元.如圖1所示,數(shù)據(jù)偵聽器主要由現(xiàn)場可編程門陣列(FPGA,F(xiàn)ield-Programmable Gate Array)和5個(gè)標(biāo)準(zhǔn)以太網(wǎng)接口組成.FPGA是偵聽器的核心,實(shí)現(xiàn)數(shù)據(jù)幀轉(zhuǎn)發(fā)、Probe幀生成等邏輯控制功能,采用Altera公司EP3C25系列芯片;Port 0~3是4個(gè)百兆以太網(wǎng)接口,分別與需要被分析的網(wǎng)絡(luò)器件端口用網(wǎng)線相連,采用LXT973系列10/100M雙端口以太網(wǎng)PHY芯片;PortM是千兆以太網(wǎng)接口,與監(jiān)聽計(jì)算機(jī)相連,采用88E1111千兆以太網(wǎng)PHY芯片.
FPGA是數(shù)據(jù)偵聽器的核心,其內(nèi)部模塊設(shè)計(jì)如圖2所示.
圖2 FPGA內(nèi)部模塊設(shè)計(jì)
圖3 輸入端口模塊功能示意圖
內(nèi)部TAP模塊實(shí)現(xiàn)原始數(shù)據(jù)幀的分路轉(zhuǎn)發(fā)功能.輸入端口模塊的功能如圖3所示,它主要完成數(shù)據(jù)幀(圖中所示OF)的信息提取和Probe幀(圖中所示PF)的生成功能.校驗(yàn)子模塊完成原始數(shù)據(jù)幀接收、信息提取和錯(cuò)誤校驗(yàn)等功能;Probe幀生成子模塊封裝原始數(shù)據(jù)幀的各種信息包括端口號(hào)、時(shí)間戳、長度、是否出錯(cuò)等,并生成一個(gè)對(duì)應(yīng)的Probe幀;兩種數(shù)據(jù)幀都暫時(shí)存放在buffer子模塊中,等待下一步處理.
數(shù)據(jù)緩存模塊依次讀取各個(gè)輸入單口模塊buffer中的數(shù)據(jù),并寫入內(nèi)部緩存中.輸出端口模塊負(fù)責(zé)將內(nèi)部緩存中的數(shù)據(jù)通過端口PortM發(fā)送給監(jiān)聽計(jì)算機(jī).控制單元模塊控制其他各個(gè)模塊,其內(nèi)部時(shí)間戳子模塊負(fù)責(zé)提供一個(gè)穩(wěn)定的分辨率為10 ns的時(shí)間戳基準(zhǔn).
Probe幀是本文提出的一種數(shù)據(jù)幀,是數(shù)據(jù)偵聽器和時(shí)序分析儀進(jìn)行數(shù)據(jù)交換的載體,其結(jié)構(gòu)如圖4所示.Probe幀采用802.3標(biāo)準(zhǔn)MAC幀格式,目的地址和源地址字段值均為6 Byte的0xFF(廣播地址),EtherType字段值為0x0923.MAC數(shù)據(jù)包括Probe首部和填充兩個(gè)字段.填充字段內(nèi)的數(shù)據(jù)為30 Byte的0,該字段的功能是使整個(gè)幀長度達(dá)到以太網(wǎng)最短幀長度64 Byte.
圖4 Probe幀結(jié)構(gòu)
Probe首部字段的長度為16 Byte,其子字段含義如表1所示.該字段封裝了偵聽器端口以及原始數(shù)據(jù)幀的各種信息,其中最重要的是時(shí)間戳.數(shù)據(jù)偵聽器在捕捉到原始數(shù)據(jù)幀的幀起始標(biāo)記(SFD,Start of Frame Delimiter)時(shí),會(huì)在相應(yīng)的Probe幀中嵌入一個(gè)以10 ns為單位的時(shí)間戳,該時(shí)間戳即為本系統(tǒng)中時(shí)序分析儀的主要操作對(duì)象.
表1 Probe首部子字段含義
Probe幀和原始數(shù)據(jù)幀一同被發(fā)送到主站并被捕獲、保存,因此在沒有改變?cè)紨?shù)據(jù)幀的前提下,盡可能多的保留了原始幀的信息,使得精準(zhǔn)的離線分析成為可能.
時(shí)序分析儀是安裝在監(jiān)聽計(jì)算機(jī)上的工具軟件,分析數(shù)據(jù)偵聽器發(fā)送過來的Probe幀,根據(jù)用戶的設(shè)置進(jìn)行數(shù)值計(jì)算和統(tǒng)計(jì),最終顯示圖形化的解析結(jié)果,從而對(duì)工作器件性能或通信鏈路質(zhì)量進(jìn)行評(píng)價(jià).
時(shí)序分析儀的功能模塊如圖5所示.數(shù)據(jù)捕捉模塊捕獲監(jiān)聽計(jì)算機(jī)千兆以太網(wǎng)接口接收到的數(shù)據(jù)幀并保存成Pcap格式文件;文件讀取模塊加載Pcap文件后調(diào)用延遲分析和周期分析等模塊生成預(yù)處理數(shù)據(jù);通過調(diào)用過濾設(shè)置模塊用戶可以定義分析數(shù)據(jù)幀的范圍;接著統(tǒng)計(jì)分析模塊對(duì)預(yù)處理數(shù)據(jù)進(jìn)行統(tǒng)計(jì)運(yùn)算;最后圖形化顯示模塊顯示分析結(jié)果.
圖5 時(shí)序分析儀功能圖
時(shí)序分析儀的主要對(duì)象是延遲時(shí)間和周期時(shí)間,進(jìn)行統(tǒng)計(jì)計(jì)算后獲得這兩種時(shí)序特性參數(shù)的統(tǒng)計(jì)值和抖動(dòng)特性.
3.2.1 延遲時(shí)間分析方法
延遲的測(cè)量需要使用數(shù)據(jù)偵聽器的兩個(gè)端口,算法涉及的兩類數(shù)據(jù)幀定義如下:時(shí)序在前的稱為“前幀”(fore),時(shí)序在后的稱為“后幀”(back),二者的時(shí)間差ΔTdelay即為所測(cè)的延遲時(shí)間.圖6所示為此分析方法的兩種應(yīng)用.
圖6 延遲分析方法示意圖
圖6a所示前幀、后幀分別從器件左端口輸入、右端口輸出,時(shí)間差ΔTdelay即為該方向上的以太網(wǎng)數(shù)據(jù)流在器件內(nèi)的延遲時(shí)間;圖6b所示前幀、后幀分從器件的右端口輸出、輸入,時(shí)間差ΔTdelay即為以太網(wǎng)數(shù)據(jù)流在該器件右側(cè)的總延遲時(shí)間.
延遲時(shí)間算法使用的參數(shù)名稱及意義如表2所示.本文提出的算法忽略線纜長度的因素.其中ΔTrx,ΔTtx可以通過查PHY芯片手冊(cè)得到,ΔTloop經(jīng)實(shí)驗(yàn)測(cè)得為200 ns.
表2 算法參數(shù)含義
延遲時(shí)間的算法如圖7所示,可以推導(dǎo)延遲時(shí)間ΔTdelay的公式如下:
根據(jù)式(1)~式(3)可得所求延遲時(shí)間的表達(dá)式為
圖7 延遲時(shí)間分析算法示意圖
3.2.2 周期分析方法
此分析方法以數(shù)據(jù)偵聽器的某一個(gè)端口作為測(cè)量端口,研究單向鏈路中周期性數(shù)據(jù)幀的周期性抖動(dòng).如圖8所示,Td(i)是數(shù)據(jù)幀經(jīng)過器件右端口輸出的時(shí)間,Ts(i)是數(shù)據(jù)幀在數(shù)據(jù)偵聽器中的時(shí)間戳.
3.2.3 統(tǒng)計(jì)分析及抖動(dòng)特性分析
時(shí)序分析儀不僅可以計(jì)算單次延遲、周期時(shí)間,而且還可以對(duì)一段數(shù)據(jù)流進(jìn)行統(tǒng)計(jì)分析,得到延遲、周期時(shí)間的統(tǒng)計(jì)學(xué)特征參數(shù),它反應(yīng)了該時(shí)序參數(shù)的抖動(dòng)特性.抖動(dòng)特性分析的特征值包括平均值、標(biāo)準(zhǔn)偏差σ、最值以及峰峰值等.
圖8 周期分析方法示意圖
時(shí)序分析儀還會(huì)以圖形化的方式顯示最終分析結(jié)果.圖形化結(jié)果包括兩種:一個(gè)是時(shí)間趨勢(shì)圖,表示抖動(dòng)與時(shí)間的關(guān)系,分別以時(shí)間和被測(cè)值為x軸和y軸;另一個(gè)是分布直方圖,表示抖動(dòng)的分布規(guī)律,分別以被測(cè)值和發(fā)生次數(shù)為x軸和y軸.
時(shí)序分析儀使用C#語言在NET 2.0平臺(tái)上開發(fā)而成.顯示界面如圖9所示.時(shí)序分析儀可以同時(shí)進(jìn)行多個(gè)分析任務(wù),并得到清晰的解析結(jié)果.
圖9 時(shí)序分析儀的界面
為了驗(yàn)證本文提出的時(shí)序分析系統(tǒng)的性能,構(gòu)建了一個(gè)采用以實(shí)時(shí)工業(yè)以太網(wǎng)EtherCAT的實(shí)驗(yàn)系統(tǒng).EtherCAT是由德國BECKHOFF自動(dòng)化公司于2003年提出的實(shí)時(shí)工業(yè)以太網(wǎng)技術(shù),使用標(biāo)準(zhǔn)以太網(wǎng)器件和串行轉(zhuǎn)發(fā)技術(shù)實(shí)現(xiàn),已經(jīng)成為工業(yè)以太網(wǎng)的主流技術(shù)之一,獲得廣泛應(yīng)用[7].
實(shí)驗(yàn)系統(tǒng)組成如圖10所示,包括一個(gè)控制主站,兩個(gè)帶有EtherCAT接口的伺服及電機(jī),數(shù)據(jù)偵聽器和監(jiān)聽計(jì)算機(jī).
系統(tǒng)開始工作后,控制主站一直發(fā)送周期性數(shù)據(jù)幀控制兩個(gè)伺服電機(jī)運(yùn)動(dòng),通信周期2 ms.實(shí)驗(yàn)系統(tǒng)工作時(shí),數(shù)據(jù)偵聽器始終捕捉EtherCAT鏈路上的數(shù)據(jù)幀,并發(fā)送給監(jiān)聽計(jì)算機(jī).實(shí)驗(yàn)系統(tǒng)工作結(jié)束后,時(shí)序分析儀開始分析被監(jiān)聽鏈路的時(shí)序特性.
圖10 實(shí)驗(yàn)系統(tǒng)結(jié)構(gòu)
本次實(shí)驗(yàn)的延遲分析對(duì)象是下行數(shù)據(jù)流在伺服1內(nèi)部的延遲.數(shù)據(jù)偵聽器的Port 0是前幀端口,Port 2是后幀端口.
延遲分析的結(jié)果如圖11所示.圖11a是時(shí)間趨勢(shì)圖,從圖中可以看出該伺服的處理延遲在550~650 ns之間成一定周期性規(guī)律抖動(dòng);圖11b是分布直方圖,可以看出延遲時(shí)間主要集中在570 ~620 ns這個(gè)區(qū)間.ΔTrx,ΔTtx,ΔTloop的值分別為180 ns,50 ns和200 ns,測(cè)試數(shù)據(jù)實(shí)例如表3所示,抖動(dòng)特性的特征值如表4所示.
圖11 延遲分析結(jié)果圖
周期分析對(duì)象是主站發(fā)送的下行周期性數(shù)據(jù)幀,因此選擇數(shù)據(jù)偵聽器的Port 0為測(cè)試端口.
周期分析的結(jié)果如圖12所示.圖12a是時(shí)間趨勢(shì)圖:控制主站發(fā)送數(shù)據(jù)幀的周期在1.98~2.02 ms的范圍內(nèi)無規(guī)律的抖動(dòng);從圖12b分布直方圖可以看出周期抖動(dòng)近似正態(tài)分布.測(cè)試數(shù)據(jù)實(shí)例如表3所示,抖動(dòng)特性的特征值如表4所示.
圖12 周期分析結(jié)果圖
表3 測(cè)試數(shù)據(jù)實(shí)例 ns
表4 抖動(dòng)特征值列表
本文提出一種時(shí)序特性分析系統(tǒng),數(shù)據(jù)偵聽器和偵聽計(jì)算機(jī)采用千兆以太網(wǎng)連接,硬件單元組配簡單可靠;Probe幀是系統(tǒng)硬件和軟件進(jìn)行集成交互的數(shù)據(jù)載體,它封裝了原始幀的所有信息,使系統(tǒng)輕松實(shí)現(xiàn)時(shí)序特性分析功能;時(shí)序分析儀的軟件功能集成度高,不依賴其他工具軟件即可獨(dú)立完成解析工作.最后本文構(gòu)建基于Ether-CAT的實(shí)驗(yàn)系統(tǒng),實(shí)驗(yàn)結(jié)果表明,本文提出的時(shí)序特性分析系統(tǒng)能夠完成對(duì)實(shí)時(shí)工業(yè)以太網(wǎng)數(shù)據(jù)的在線捕捉和離線分析,并清晰、直觀的顯示時(shí)序特性解析結(jié)果,圖形化的展示通信鏈路和器件的時(shí)序特性.
References)
[1] Smith Jack.Basics of industrial ethernet[J].Plant Engineering,2004,58(8):65-71
[2]劉喆,郇極,劉艷強(qiáng).基于XML的EtherCAT工業(yè)以太網(wǎng)協(xié)議解析技術(shù)[J].北京航空航天大學(xué)學(xué)報(bào),2011,37(9):1086-1090 Liu Zhe,Huan Ji,Liu Yanqiang.Parser of industrial Ethernet EtherCAT based on XML[J].Journal of Beijing University of Aeronautics and Astronautics,2011,37(9):1086-1090(in Chinese)
[3] Wang Z,Song Y Q,Chen J M,et a1.Real-time characteristics of Ethernet and its improvement[C]//Proceedings of the 4th World Congress on Intelligent Control and Automation(WCICA).Piscataway,NJ:IEEE,2002:1311-1318
[4]胡國傳,沈杰,劉彬,等.基于PROFINET IO的延遲和抖動(dòng)研究[J].儀器儀表學(xué)報(bào),2011,32(9):2153-2160 Hu Guochuan,Shen Jie,Liu Bin,et al.Study on delay and jitter based on PROFINET IO[J].Chinese Journal of Scientific Instrument,2011,32(9):2153-2160(in Chinese)
[5] hilscher.netANALYZER NANL-C500-RE and NANL-B500-RE and software installation,operation and hardware description[EB/OL].2010-03[2012-05-18].http://www.hilscher.com/files_manuals/netANALYZER_usermanual_en.pdf.
[6] Liu Zhe,Huan Ji,Hu Xing.Multi-channel probe for industrial Ethernet measurement[C]//The Proceedings of 2012 International Conference on Frontiers of Manufacturing Science and Measuring Technology.Clausthal-Zellerfeld:Trans Tech Publications,2012:1476-1479
[7]郇極,劉艷強(qiáng).工業(yè)以太網(wǎng)現(xiàn)場總線EtherCAT驅(qū)動(dòng)程序設(shè)計(jì)及應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2010:3-4 Huan Ji,Liu Yanqiang.The driver development and application of industrial Ethernet fieldbus EtherCAT[M].Beingjing:BUAA Press,2010:3-4(in Chinese)