劉曉勝,鄭檢,李瑩雪,吳海濤
(哈爾濱工業(yè)大學(xué) 電氣工程及自動(dòng)化學(xué)院,黑龍江 哈爾濱 150001)
由于傳統(tǒng)的以太網(wǎng)(Ethernet)是建立在載波監(jiān)聽多路訪問/碰撞檢測(cè)(CSMA/CD)機(jī)制上的廣播型網(wǎng)絡(luò),導(dǎo)致其在網(wǎng)絡(luò)通信方面存在不確定性和實(shí)時(shí)性能差等天然缺陷,已經(jīng)越來越難以滿足現(xiàn)代工業(yè)現(xiàn)場(chǎng)高精度和快速動(dòng)態(tài)響應(yīng)的需求[1-2]。以EtherCAT 為代表的實(shí)時(shí)以太網(wǎng)技術(shù)的出現(xiàn),解決了傳統(tǒng)以太網(wǎng)在確定性和實(shí)時(shí)性方面的不足,并逐漸被應(yīng)用在工業(yè)機(jī)器人等各種高速運(yùn)動(dòng)控制場(chǎng)合,已經(jīng)成為現(xiàn)代運(yùn)動(dòng)控制系統(tǒng)中通信領(lǐng)域的發(fā)展趨勢(shì)[3]。
EtherCAT 是發(fā)展到目前為止速度最快、功能最強(qiáng)的以太網(wǎng)解決方案。它于2003年被引入市場(chǎng),并于2007年成為國際標(biāo)準(zhǔn),EtherCAT 技術(shù)協(xié)會(huì)(EtherCAT Technology Group, ETG)負(fù)責(zé)推廣和持續(xù)研發(fā)該技術(shù)。EtherCAT 實(shí)時(shí)工業(yè)以太網(wǎng)除了具備高速高效的實(shí)時(shí)通信能力,同時(shí)具有拓?fù)浣Y(jié)構(gòu)靈活,成本低易實(shí)現(xiàn),集成安全等特點(diǎn)[4]。本文以赫優(yōu)訊公司的NetX500 芯片為核心,設(shè)計(jì)了一種通用的EtherCAT 網(wǎng)絡(luò)接口模塊。該模塊可與任意滿足其接口要求的控制系統(tǒng)連接,使控制系統(tǒng)成為一個(gè)EtherCAT 主站或者從站,具有良好的通用性和互操作性。通過對(duì)模塊的通信測(cè)試,驗(yàn)證了該模塊具備強(qiáng)大的EtherCAT 通信性能,可以滿足大多數(shù)快速運(yùn)動(dòng)控制場(chǎng)合的要求。
EtherCAT 采用標(biāo)準(zhǔn)的以太網(wǎng)數(shù)據(jù)幀和符合以太網(wǎng)標(biāo)準(zhǔn)的IEEE802.3 的物理層。EtherCAT 將其報(bào)文嵌入到標(biāo)準(zhǔn)的以太網(wǎng)數(shù)據(jù)幀中(形成EtherCAT 數(shù)據(jù)幀),通過幀類型0x88A4 識(shí)別EtherCAT 數(shù)據(jù)幀。由于EtherCAT 協(xié)議被優(yōu)化適用于短小的周期性過程數(shù)據(jù),因此無需龐大的協(xié)議棧,例如TCP/IP 或UDP/IP。
標(biāo)準(zhǔn)的EtherCAT 數(shù)據(jù)幀結(jié)構(gòu)如圖1所示。EtherCAT 幀的數(shù)據(jù)區(qū)包括2 個(gè)字節(jié)的EtherCAT數(shù)據(jù)頭和 44~1498 字節(jié)的 EtherCAT 數(shù)據(jù)。EtherCAT 頭中的EtherCAT 數(shù)據(jù)長度代表所有子報(bào)文的總長度,類型一般為1,表示此EtherCAT數(shù)據(jù)幀用于主站與從站之間的通信。數(shù)據(jù)區(qū)由一個(gè)或多個(gè)EtherCAT 子報(bào)文組成,每個(gè)子報(bào)文對(duì)應(yīng)獨(dú)立的設(shè)備或從站存儲(chǔ)區(qū)域,表1給出了EtherCAT 子報(bào)文的結(jié)構(gòu)定義[5]。
圖1 EtherCAT 數(shù)據(jù)幀 Fig.1 The EtherCAT frame structure
表1 EtherCAT 子報(bào)文結(jié)構(gòu)定義 Tab.1 The definition of EtherCAT sub-packet structure
EtherCAT 采用主從模式進(jìn)行通信,一個(gè)網(wǎng)絡(luò)最多可支持65535 個(gè)設(shè)備,同時(shí)支持線型、環(huán)形、樹形、星型、菊花鏈型等多種拓?fù)浣Y(jié)構(gòu)。EtherCAT物理層允許兩個(gè)設(shè)備最大間隔100m,采用光纖時(shí)可達(dá)到更遠(yuǎn)的間距,網(wǎng)絡(luò)最大通信速率達(dá)到100Mbit/s。一個(gè)典型的EtherCAT 環(huán)形冗余網(wǎng)絡(luò)如圖2所示。
圖2 EtherCAT 通信網(wǎng)絡(luò)及其通信原理 Fig.2 The structure and principle of the EtherCAT network
EtherCAT 網(wǎng)絡(luò)中由主站發(fā)送下行數(shù)據(jù)幀,每個(gè)從站接收到數(shù)據(jù)幀之后,讀取尋址到該從站的數(shù)據(jù),之后將它的反饋數(shù)據(jù)寫入數(shù)據(jù)幀,繼續(xù)下傳數(shù)據(jù)。最后一個(gè)從站處理完數(shù)據(jù)之后,再將數(shù)據(jù)幀上行傳輸回主站,從而完成了一個(gè)循環(huán)周期。
與傳統(tǒng)的以太網(wǎng)傳輸機(jī)制相比,EtherCAT 避免了網(wǎng)絡(luò)中不同設(shè)備對(duì)網(wǎng)絡(luò)資源的競(jìng)爭(zhēng),從而保證了數(shù)據(jù)傳輸時(shí)延的確定性,改善了以太網(wǎng)的帶寬利用率,報(bào)文最大有效利用率可達(dá)90%以上。同時(shí),由于EtherCAT 網(wǎng)絡(luò)中無需交換機(jī)或集線器,省去了交換機(jī)延時(shí),且借助于從站中的EtherCAT 專用芯片和主站中讀取網(wǎng)卡數(shù)據(jù)的DMA 技術(shù),整個(gè)協(xié)議處理過程都在硬件中進(jìn)行,大大降低了網(wǎng)絡(luò)通信時(shí)延,充分保證了數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性。
作為一個(gè)通用的EtherCAT 網(wǎng)絡(luò)接口,接口模塊與主/從站核心控制模塊之間的接口應(yīng)該具備兼容性的特點(diǎn),要求此接口能滿足包括DSP、ARM 等多種主流控制芯片系統(tǒng)外擴(kuò)的需求,從而使EtherCAT 網(wǎng)絡(luò)接口模塊能適用于各種不同工業(yè)控制場(chǎng)合。同時(shí),接口模塊的軟件設(shè)計(jì),也應(yīng)該具備易用性和靈活性的特點(diǎn)。
為了滿足運(yùn)動(dòng)控制系統(tǒng)高精度,快速動(dòng)態(tài)響應(yīng)的需求,結(jié)合EtherCAT 網(wǎng)絡(luò)性能,在接口模塊實(shí)時(shí)性方面,要求網(wǎng)絡(luò)通信的循環(huán)時(shí)間在毫秒級(jí),在同步性能方面,同時(shí)要求各個(gè)從站之間的報(bào)文延遲在微秒級(jí)。
3.2.1 網(wǎng)絡(luò)通信芯片NetX500
NetX 系列芯片是德國赫優(yōu)訊公司推出的新一代工業(yè)網(wǎng)絡(luò)控制芯片,是一種高度集成的網(wǎng)絡(luò)控制器。NetX 500 以32 位ARM926EJ-S 為CPU 核,主頻200MHz,包含有存儲(chǔ)管理單元、Cache、DSP和JAVA 擴(kuò)展器,同時(shí)具備豐富的外設(shè)資源,可以作為一個(gè)單片系統(tǒng)的控制核心,也可以作為專門的網(wǎng)絡(luò)通信芯片[6]。
NetX500 最大的特點(diǎn)在于它是一種高度集成的網(wǎng)絡(luò)通信解決方案,芯片支持包括:EtherCAT,EtherNet/IP,Powerlink,Modbus IDA,PROFINET等在內(nèi)的各種實(shí)時(shí)以太網(wǎng)。通過加載不同的固件程序,使用此芯片的接口模塊在硬件上可支持上述各種實(shí)時(shí)以太網(wǎng)通信[7]。在EtherCAT 通信中,此接口模塊既可被配置為主站,也可配置為從站。
3.2.2 模塊整體硬件結(jié)構(gòu)
接口模塊硬件結(jié)構(gòu)如圖3所示。
圖3 接口模塊硬件結(jié)構(gòu)圖 Fig.3 The hardware structure of the interface module
模塊以NetX500 芯片為核心,由于芯片內(nèi)部集成了以太網(wǎng)物理層的功能,因此只需通過擴(kuò)展出兩路RJ45 接口即可作為模塊的EtherCAT 物理通信接口。分別利用NetX500 的I2C 接口和SPI接口擴(kuò)展出E2PROM 和Flash 作為模塊的外圍存儲(chǔ)器,由于這兩種存儲(chǔ)器均具有數(shù)據(jù)掉電不丟失的特性,因此可用來存儲(chǔ)EtherCAT 網(wǎng)絡(luò)的相關(guān)配置信息和固件程序。SDRAM 在NetX500 運(yùn)行實(shí)時(shí)操作系統(tǒng)時(shí)可作為系統(tǒng)緩存,UART 用于下載固件程序。為了保證模塊的通用性,使用并行接口作為模塊與其他主控模塊的接口,以下將具體介紹通用并行接口。
3.2.3 通用并行接口
模塊提供給用戶的硬件接口為一個(gè)50 根管腳的排針連接頭,該連接頭包含了與NetX500 芯片通信必備的控制線、16 位數(shù)據(jù)總線D15-D0 和14 位地址總線A13-A0。其中控制線包括:WIF、BHE、RES、BUSY、INT、RD、WR、CS,這些控制線決定了數(shù)據(jù)的讀取、雙處理器的握手等操作,接口電路原理圖如圖4所示。
圖4 接口電路原理圖 Fig.4 The generic parallel interface
通用并行接口將NetX500 芯片的雙端口內(nèi)存(Dual-Port Memory, DPM)開放給主控系統(tǒng),由于實(shí)際使用時(shí)接口模塊已經(jīng)加載了EtherCAT 通信的固件程序,因此對(duì)于主控系統(tǒng)來說,操作整個(gè)接口模塊和操作一個(gè)外部存儲(chǔ)設(shè)備是一樣的。
3.3.1 雙端口內(nèi)存DPM
通信接口模塊作為從站設(shè)備的一部分,它與從站的主控系統(tǒng)之間的連接是通過DPM 實(shí)現(xiàn)的,DPM 默認(rèn)的空間結(jié)構(gòu)如圖5所示。
圖5 DPM 地址空間結(jié)構(gòu) Fig.5 The address space of DPM
系統(tǒng)通道是最重要的存儲(chǔ)單元,它包含了NetX500 芯片和實(shí)時(shí)操作系統(tǒng)rcX 的關(guān)鍵信息,即使沒有應(yīng)用固件被下載到模塊,也總是存在[8]。握手通道將所有通道的握手寄存器集中在一個(gè)位置,握手位允許主控系統(tǒng)和NetX 之間的同步數(shù)據(jù)傳輸。一個(gè)通信通道是一個(gè)協(xié)議棧,例如EtherCAT協(xié)議棧,協(xié)議棧中的用戶任務(wù)開放DPM 作為操作接口。用戶通道實(shí)現(xiàn)用戶預(yù)處理數(shù)據(jù)的處理和結(jié)果的傳輸,由用戶自行定義使用。
由圖5可知,DPM 最大地址空間是64 kBy,包括系統(tǒng)通道、握手通道、通訊通道0~3、應(yīng)用通道0~1。對(duì)于接口模塊,由于加載了固件,因此只需使用默認(rèn)的系統(tǒng)通道、握手通道和通訊通道0,即16 kBy 的地址空間。
3.3.2 DPM 的熱啟動(dòng)程序
DPM 熱啟動(dòng)過程是配合接口模塊加載固件程序的過程。它將相應(yīng)的熱啟動(dòng)參數(shù)發(fā)送給NetX500,從而完成EtherCAT 數(shù)據(jù)通信之前的準(zhǔn)備工作,是進(jìn)行EtherCAT 通信的關(guān)鍵步驟。熱啟動(dòng)操作流程如圖6所示。
EtherCAT 通信的協(xié)議堆棧已經(jīng)保存在了接口模塊的Flash 中。因此,在系統(tǒng)上電后,會(huì)自動(dòng)加載該協(xié)議堆棧,應(yīng)用程序?qū)⒖刂萍虞d主/從站的熱啟動(dòng)參數(shù)。不同的實(shí)時(shí)以太網(wǎng)從站,其熱啟動(dòng)參數(shù)是不一樣的,參數(shù)以報(bào)文的方式,通過DPM 提供的系統(tǒng)郵箱發(fā)送給接口模塊。
測(cè)試平臺(tái)使用了4 個(gè)接口模塊,其中一個(gè)加載EtherCAT 主站通信固件,通過赫優(yōu)訊公司的PCI 板載卡(CIF50-CB-COM-ABC)插在PC 上,成為EtherCAT 網(wǎng)絡(luò)中的唯一主站[9]。另外三個(gè)接口模塊加載EtherCAT 從站通信固件,作為網(wǎng)絡(luò)中的三個(gè)EtherCAT 從站,采用普通的五類雙絞線連接。同時(shí),主站PC 上插有實(shí)時(shí)以太網(wǎng)網(wǎng)絡(luò)分析儀netANALYZER,用于采集整個(gè)網(wǎng)絡(luò)的通信數(shù)據(jù),從而對(duì)EtherCAT 的時(shí)間周期、報(bào)文延時(shí)、事件響應(yīng)等結(jié)果進(jìn)行分析,連接好所有EtherCAT 網(wǎng)絡(luò)設(shè)備之后,在主站的SYCON.net軟件中可以看到EtherCAT 網(wǎng)絡(luò)已經(jīng)成功構(gòu)建,如圖7所示。
圖7 SYCON 軟件中的EtherCAT 網(wǎng)絡(luò) Fig.7 The EtherCAT network in SYCON
測(cè)試時(shí),EtherCAT 主從站之間不斷傳輸報(bào)文,網(wǎng)絡(luò)分析儀抓取數(shù)據(jù),并將報(bào)文數(shù)據(jù)轉(zhuǎn)為*.pcap 文件格式,然后通過Wireshark 軟件,對(duì)EtherCAT 網(wǎng)絡(luò)的循環(huán)時(shí)間、延時(shí)時(shí)間、時(shí)間抖動(dòng)等實(shí)時(shí)性能進(jìn)行分析。
對(duì)EtherCAT 數(shù)據(jù)進(jìn)行同步性測(cè)試,由主站給從站發(fā)送含600 字節(jié)EtherCAT 數(shù)據(jù)的數(shù)據(jù)幀,其中每個(gè)從站處理的數(shù)據(jù)為200 字節(jié),總共傳輸3810 個(gè) EtherCAT 幀,用 Wireshark 軟件對(duì)netANALYZER 采集到的數(shù)據(jù)幀進(jìn)行分析,得到的實(shí)時(shí)數(shù)據(jù)結(jié)果如圖8、圖9所示。
圖8 EtherCAT 數(shù)據(jù)幀循環(huán)周期分布圖 Fig.8 The cycle-time distribution of EtherCAT data frame
圖9 從站延遲時(shí)間分布圖 Fig.9 The delay-time distribution of the slave
圖8統(tǒng)計(jì)了所有數(shù)據(jù)幀的循環(huán)周期分布情況,由圖中左上角軟件的統(tǒng)計(jì)結(jié)果可知,實(shí)際網(wǎng)絡(luò)平均循環(huán)周期約為 1 ms,波動(dòng)范圍為0.993~1.006 ms,表明網(wǎng)絡(luò)循環(huán)時(shí)間短,速度快且傳輸性能穩(wěn)定。同理分析圖9中從站的報(bào)文延遲時(shí)間可知,報(bào)文在從站的平均延遲時(shí)間為1.153μs,最 大 延 遲 時(shí) 間 僅 為 1.18μs,表 明EtherCAT 網(wǎng)絡(luò)具有良好的網(wǎng)絡(luò)同步性能。綜上可知,本接口模塊的EtherCAT 網(wǎng)絡(luò)通信性能符合第3 節(jié)中提出的要求。
本文設(shè)計(jì)了一種通用的EtherCAT接口模塊,詳細(xì)介紹了接口模塊的工作原理和軟硬件設(shè)計(jì)流程,并且對(duì)接口模塊進(jìn)行了實(shí)際通信測(cè)試,測(cè)試結(jié)果表明接口模塊具備穩(wěn)定的EtherCAT 通信能力,并且在實(shí)時(shí)性方面符合大部分運(yùn)動(dòng)控制系統(tǒng)的需求,適用于多種控制系統(tǒng)擴(kuò)展EtherCAT網(wǎng)絡(luò)接口的場(chǎng)合。
[1] 馬世平.現(xiàn)場(chǎng)總線標(biāo)準(zhǔn)的現(xiàn)狀和工業(yè)以太網(wǎng)技術(shù)[J].機(jī)電一體化,2007,13(3):6-8.
[2] JASPERNEITE J, SCHUMACHER M, WEBER K.Limits of Increasing the Performance of Industrial Ethernet Protocols [J].Emerging Technologies and Factory Automation,2007(12):20-21.
[3] QI J Y, WANG L.Networked Motion Control System Design based on EtherCAT [J].Intelligent Computation Technology and Automation,2009(21):78.
[4] ETG.EtherCAT——以太網(wǎng)現(xiàn)場(chǎng)總線——關(guān)于“為何選擇EtherCAT 問題的技術(shù)解答”[J].國內(nèi)外機(jī)電一體化技術(shù),2007,10(7):28-30.
[5] 郇極,劉艷強(qiáng).工業(yè)以太網(wǎng)現(xiàn)場(chǎng)總線EtherCAT 驅(qū)動(dòng)程序設(shè)計(jì)及應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2010:9-13.
[6] 鄧梧鵬.基于赫優(yōu)訊嵌入式模塊EtherCAT 從站設(shè)備的設(shè)計(jì)[J].國內(nèi)外機(jī)電一體化,2009,12(1):58-59.
[7] 曹晶.EtherCAT 從站設(shè)備的開發(fā)[D].武漢:武漢科技大學(xué)2010:26-28.
[8] 謝香林.EtherCAT 網(wǎng)絡(luò)及其伺服運(yùn)動(dòng)控制系統(tǒng)研究[D].大連:大連理工大學(xué),2008:32-34.
[9] 鄒玉鞋.利用德國赫優(yōu)訊 netANALYZER 分析儀研究實(shí)時(shí)以太網(wǎng)的時(shí)間抖動(dòng)[J].國內(nèi)外機(jī)電一體化技術(shù),2008,11(7):14-16.