魏亞鵬,韓衛(wèi)光
(1.中國(guó)科學(xué)院大學(xué),北京 100049;2.中國(guó)科學(xué)院沈陽(yáng)計(jì)算技術(shù)研究所,沈陽(yáng) 110168)
以太網(wǎng)具有開放性好、軟硬件資源廣泛支持、成本低廉、使用方便等優(yōu)點(diǎn)。隨著以太網(wǎng)應(yīng)用于工業(yè)環(huán)境中而出現(xiàn)的一系列問(wèn)題的解決,它成為了工業(yè)控制網(wǎng)絡(luò)中最具有應(yīng)用前景的技術(shù)。目前,國(guó)內(nèi)外有眾多單位研究工業(yè)以太網(wǎng),它在工業(yè)通信領(lǐng)域形成了廣泛應(yīng)用、快速推廣的局面。
EtherCAT是一種實(shí)時(shí)性高、可靠性好的工業(yè)以太網(wǎng)總線[1-2],它是工業(yè)以太網(wǎng)通信領(lǐng)域中一項(xiàng)性能突出的技術(shù)。EtherCAT的拓?fù)浣Y(jié)構(gòu)靈活,它可以實(shí)現(xiàn)總線型、環(huán)型、星型、樹型、菊花鏈型等幾乎所有的拓?fù)浣Y(jié)構(gòu)[3-5]。目前,EtherCAT已經(jīng)取得了廣泛的應(yīng)用,在全球超過(guò)1900個(gè)公司在開發(fā)和使用基于EtherCAT 技術(shù)的產(chǎn)品[12]。
在危險(xiǎn)性高、環(huán)境惡劣的一些工業(yè)制造現(xiàn)場(chǎng),存在布線不方便的問(wèn)題。無(wú)線傳感網(wǎng)ZigBee具有數(shù)據(jù)傳輸安全可靠、組網(wǎng)簡(jiǎn)易靈活等優(yōu)勢(shì)[6-7],它可以用來(lái)擴(kuò)展有線工業(yè)以太網(wǎng),以減少大量線纜施工帶來(lái)的麻煩。因此,研究開發(fā)連接EtherCAT與ZigBee的網(wǎng)關(guān),實(shí)現(xiàn)有線工業(yè)以太網(wǎng)與無(wú)線傳感網(wǎng)的結(jié)合,具有很高的應(yīng)用價(jià)值。
本課題基于“核高基”國(guó)家科技重大專項(xiàng)——國(guó)產(chǎn)軟硬件在數(shù)控/工業(yè)控制裝置中的應(yīng)用與推廣,研究探索工業(yè)控制領(lǐng)域?qū)崟r(shí)通信網(wǎng)絡(luò)的擴(kuò)展技術(shù)。在數(shù)控設(shè)備工作過(guò)程中,無(wú)線傳感器網(wǎng)絡(luò)Zig-Bee節(jié)點(diǎn)可以將現(xiàn)場(chǎng)采集到的溫度、壓力等信息傳遞至網(wǎng)關(guān),在網(wǎng)關(guān)進(jìn)行協(xié)議轉(zhuǎn)換后,經(jīng)由實(shí)時(shí)以太網(wǎng)EtherCAT傳輸至上位機(jī)。這樣,上位機(jī)就可以通過(guò)ZigBee節(jié)點(diǎn)監(jiān)控工業(yè)生產(chǎn)現(xiàn)場(chǎng)的環(huán)境信息,從而保證加工過(guò)程的安全和產(chǎn)品質(zhì)量。
無(wú)線傳感網(wǎng)ZigBee通過(guò)EtherCAT-Zig-Bee網(wǎng)關(guān)接入實(shí)時(shí)以太網(wǎng)EtherCAT,本文設(shè)計(jì)的組網(wǎng)方案如圖1所示。EtherCAT-ZigBee網(wǎng)關(guān)在實(shí)時(shí)以太網(wǎng)EtherCAT中作為一個(gè)智能EtherCAT從站節(jié)點(diǎn),它在寫入或讀出EtherCAT集總幀數(shù)據(jù)的同時(shí)完成EtherCAT和ZigBee的協(xié)議轉(zhuǎn)換功能。ZigBee作為Ether-CAT從站的擴(kuò)展,無(wú)線網(wǎng)段由EtherCAT-Zig-Bee網(wǎng)關(guān)和ZigBee終端節(jié)點(diǎn)組成,它們均為全功能節(jié)點(diǎn)。EtherCAT-ZigBee網(wǎng)關(guān)作為ZigBee網(wǎng)絡(luò)的協(xié)調(diào)器節(jié)點(diǎn),由它來(lái)發(fā)起和管理ZigBee網(wǎng)絡(luò)。Ether-CAT-ZigBee網(wǎng)關(guān)在邏輯上由ZigBee協(xié)調(diào)器模塊、協(xié)議轉(zhuǎn)換模塊和EtherCAT從站模塊三部分組成。
圖1 EtherCAT與ZigBee互連網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)圖
EtherCAT的互聯(lián)參考模型由物理層、數(shù)據(jù)鏈路層和應(yīng)用層組成。EtherCAT物理層完全符合IEEE802.3的規(guī)定。為了保證它的實(shí)時(shí)傳輸特性,EtherCAT的 MAC層由 ASIC或 FPGA來(lái)實(shí)現(xiàn)[1]。EtherCAT應(yīng)用層定義了控制程序與網(wǎng)絡(luò)交互的接口,是直接面向控制任務(wù)的一層,它包括EoE、FoE、SoE、CoE等幾種協(xié)議[8]。所有的以太網(wǎng)技術(shù)都可以通過(guò)EtherCAT實(shí)現(xiàn)而不影響其實(shí)時(shí)性。
ZigBee采用IEEE802.15.4標(biāo)準(zhǔn)規(guī)定的PHY層和MAC層作為其物理層和媒體訪問(wèn)控制層[9],而網(wǎng)絡(luò)層和應(yīng)用層則由ZigBee聯(lián)盟規(guī)定[10]。ZigBee設(shè)備對(duì)象和ZigBee應(yīng)用對(duì)象是由用戶根據(jù)需要自己定義[11]。ZStack是TI公司對(duì)ZigBee協(xié)議的一種實(shí)現(xiàn),本文采用ZStack2007協(xié)議。
ZigBee的數(shù)據(jù)通信速率介于20kbps到250kbps之間,是一種低速率的通信網(wǎng)絡(luò)。ZigBee終端節(jié)點(diǎn)采集的數(shù)據(jù)是非實(shí)時(shí)性數(shù)據(jù),所以采用EtherCAT郵箱方式來(lái)傳輸。在EtherCAT應(yīng)用層,選用Ethernet協(xié)議來(lái)通信。這樣,網(wǎng)關(guān)中的協(xié)議轉(zhuǎn)換模塊需要將ZigBee數(shù)據(jù)幀解析并封裝在EtherCAT數(shù)據(jù)報(bào)文中。之后,網(wǎng)關(guān)將含有ZigBee數(shù)據(jù)的集總幀通過(guò)Ether-CAT鏈路傳向主站?;谝陨戏治?,本文設(shè)計(jì)的EtherCAT-ZigBee網(wǎng)關(guān)通信模型如圖2所示。
圖2 EtherCAT與ZigBee的通信模型
EtherCAT-ZigBee網(wǎng)關(guān)的硬件主要由ARM Cortex-A8和CC2530組成,它的內(nèi)部結(jié)構(gòu)如圖3所示。德州儀器公司的Sitara AM3359 ARM Cortex-A8微處理器實(shí)現(xiàn)了EtherCAT技術(shù)與ARM微處理器的融合[12],本設(shè)計(jì)用它來(lái)實(shí)現(xiàn)EtherCAT從站模塊和協(xié)議轉(zhuǎn)換模塊。ZigBee協(xié)調(diào)器模塊采用德州儀器公司的無(wú)線傳感網(wǎng)絡(luò)片上系統(tǒng) CC2530套件。ARM的UART0口與CC2530模塊通過(guò)串行通訊線相連。PHY芯片采用TLK110,它可以保證EtherCAT的實(shí)時(shí)性。網(wǎng)關(guān)含有兩個(gè)RJ45網(wǎng)口,通過(guò)它們將網(wǎng)關(guān)連接到EtherCAT網(wǎng)絡(luò)中。
圖3 EtherCAT與ZigBee的網(wǎng)關(guān)內(nèi)部結(jié)構(gòu)圖
德州儀器公司生產(chǎn)的TLK110芯片是一個(gè)用于10Base-T和100Base-Tx信令的單一端口以太網(wǎng)PHY收發(fā)器,TLK110對(duì)MII接口和PHY芯片之間的延遲做了優(yōu)化。ARM與PHY的接口信號(hào)如下:TX_CLK由TLK110產(chǎn)生,TXD與TX_EN與此時(shí)鐘綁定;RX_CLK由TLK110產(chǎn)生,RX_DV、RX_ERR、RXD與此時(shí)鐘綁定;TXD[3:0]為要發(fā)送的數(shù)據(jù)信號(hào);RXD[3:0]為接收的數(shù)據(jù)信號(hào);TX_EN為從MAC接收有效數(shù)據(jù)的使能信號(hào);RX_DV為從網(wǎng)線接收有效數(shù)據(jù)的使能信號(hào);CRS為載波監(jiān)聽信號(hào),當(dāng)接收媒介非空閑時(shí)它是高電平;COL是碰撞檢測(cè)信號(hào),在全雙工模式下,它一直是低電平。EtherCAT接口如圖4所示。
圖4 EtherCAT接口接線圖
EtherCAT數(shù)據(jù)頭[8]的定義如下:
EtherCAT使用標(biāo)準(zhǔn)以太網(wǎng)幀進(jìn)行通信,目的地址和源地址由以太網(wǎng)幀頭規(guī)定。它使用的以太網(wǎng)幀類型為0x88A4,用此保留的以太網(wǎng)幀類型可以將控制數(shù)據(jù)直接寫入以太網(wǎng)幀內(nèi),并且能同遵守其它協(xié)議的以太網(wǎng)幀在同一網(wǎng)絡(luò)中運(yùn)行。EtherCAT采用集總幀的數(shù)據(jù)包格式,它頭部中的Length指出EtherCAT數(shù)據(jù)報(bào)文的總長(zhǎng)度。EtherCAT頭部中的Type的值為1時(shí)代表與從站通信。其中,Reserved為保留位。
ZigBee終端節(jié)點(diǎn)與網(wǎng)關(guān)綁定后,規(guī)定它每隔2秒調(diào)用一次sendReport()函數(shù),向網(wǎng)關(guān)發(fā)送環(huán)境溫度和自身電壓信息。ZigBee終端節(jié)點(diǎn)報(bào)告所用的數(shù)據(jù)結(jié)構(gòu)為pData[4],其結(jié)構(gòu)如圖 5所示。pData[0]存放的是ZigBee終端節(jié)點(diǎn)采集到的現(xiàn)場(chǎng)數(shù)據(jù)。pData[1]存放的是ZigBee終端節(jié)點(diǎn)自身的電壓值。pData[2]和 pData[3]存放的是此 ZigBee節(jié)點(diǎn)的父節(jié)點(diǎn)的16位短地址。
圖5 pData的結(jié)構(gòu)
規(guī)定網(wǎng)關(guān)中用于存放終端節(jié)點(diǎn)信息的數(shù)據(jù)結(jié)構(gòu)如下:
網(wǎng)關(guān)中的ZigBee模塊接收到ZigBee終端節(jié)點(diǎn)發(fā)送來(lái)的數(shù)據(jù)后,先保存在gtwData_t結(jié)構(gòu)體中。然后調(diào)用 sendGtwReport(&gtwData)函數(shù),經(jīng)過(guò)串口向ARM Cortex-A8傳輸數(shù)據(jù)。定義網(wǎng)關(guān)在串口傳遞數(shù)據(jù)所采用的數(shù)據(jù)結(jié)構(gòu)為 pFrame[15],如圖6所示。SOF是 pFrame幀的開始界定符,其值為 0xFE;FLength指出此幀中包含ZigBee數(shù)據(jù)的長(zhǎng)度,其值為10;CMD Type是接收Z(yǔ)igBee數(shù)據(jù)的指示命令類型,其值為0x8746;Source Addr為ZigBee數(shù)據(jù)采集節(jié)點(diǎn)的地址,其值由ZigBee節(jié)點(diǎn)本身決定;CMD ID為ZigBee節(jié)點(diǎn)報(bào)告的命令I(lǐng)D號(hào),其值為2;Data length為ZigBee節(jié)點(diǎn)報(bào)告數(shù)據(jù)的長(zhǎng)度,其值為4;在Data域中存放的是ZigBee終端節(jié)點(diǎn)采集的數(shù)據(jù);FCS是幀校驗(yàn)系列,它根據(jù)pFrame幀而算出。
圖6 pFrame的結(jié)構(gòu)
ZigBee與EtherCAT的協(xié)議轉(zhuǎn)換如圖7所示。ZigBee終端節(jié)點(diǎn)和網(wǎng)關(guān)以CSMA-CA方式來(lái)訪問(wèn)無(wú)線信道,它們通過(guò)數(shù)字?jǐn)U展頻譜信號(hào)來(lái)通信。ZigBee數(shù)據(jù)幀的同步頭包括前導(dǎo)序列和幀首界定符,前導(dǎo)序列定義為4個(gè)字節(jié)的0x00,SFD所在字節(jié)設(shè)置為0xA7。物理頭規(guī)定了MAC協(xié)議數(shù)據(jù)單元的長(zhǎng)度,它的最大長(zhǎng)度為127字節(jié)。MAC頭、NWK頭、APS頭規(guī)定了幀控制信息和地址信息等。存放在載荷區(qū)的應(yīng)用層數(shù)據(jù)由sendGtwReport()函數(shù)解析并且封裝至pFrame幀。在EtherCAT從站模塊,調(diào)用parse()函數(shù)將存放在pFrame中的ZigBee數(shù)據(jù)解析出來(lái),并且插入到EtherCAT數(shù)據(jù)報(bào)文區(qū)域。之后,裝載ZigBee數(shù)據(jù)的EtherCAT集總幀通過(guò)網(wǎng)關(guān)運(yùn)行的服務(wù)器進(jìn)程傳向EtherCAT主站運(yùn)行的客戶端進(jìn)程。
圖7 ZigBee與EtherCAT的協(xié)議轉(zhuǎn)換圖
EtherCAT主站安裝Ubuntu Linux操作系統(tǒng),在其上運(yùn)行客戶端進(jìn)程和數(shù)據(jù)顯示進(jìn)程。鑒于運(yùn)行速度的考慮,在網(wǎng)關(guān)ARM Cortex-A8模塊上移植了RT Linux操作系統(tǒng),并在其上安裝了minicom終端仿真程序。在網(wǎng)關(guān)的ARM模塊上運(yùn)行著協(xié)議轉(zhuǎn)換進(jìn)程和服務(wù)器進(jìn)程。在EtherCAT主站上運(yùn)行的客戶端進(jìn)程接收到網(wǎng)關(guān)上的服務(wù)器進(jìn)程發(fā)來(lái)的、經(jīng)過(guò)協(xié)議轉(zhuǎn)化后的ZigBee數(shù)據(jù)后,會(huì)將數(shù)據(jù)顯示出來(lái)。Ether-CAT主站顯示數(shù)據(jù)的界面如圖8所示,ZigBee終端節(jié)點(diǎn)采集的溫度值和電壓值用十進(jìn)制表示。
圖8 EtherCAT主站顯示ZigBee數(shù)據(jù)
圖9為Packet Sniffer在2.405GHz頻率下捕獲的空中ZigBee數(shù)據(jù)幀。ZigBee無(wú)線數(shù)據(jù)幀包含長(zhǎng)度、幀校驗(yàn)碼、幀序列號(hào)、源節(jié)點(diǎn)地址、目的節(jié)點(diǎn)地址等信息。其中,應(yīng)用層載荷域?yàn)閆igBee節(jié)點(diǎn)采集到的數(shù)據(jù),0x15、0x1B、0x0000 分別是溫度值、電壓值、和父節(jié)點(diǎn)16位短地址,它們與網(wǎng)關(guān)轉(zhuǎn)化后傳遞至Ether-CAT主站的數(shù)據(jù)一致,從而驗(yàn)證了網(wǎng)關(guān)的協(xié)議轉(zhuǎn)換功能和數(shù)據(jù)收發(fā)功能的正確性。經(jīng)過(guò)測(cè)試,設(shè)計(jì)的網(wǎng)關(guān)實(shí)現(xiàn)了EtherCAT與ZigBee網(wǎng)絡(luò)的數(shù)據(jù)交換。
圖9 Packet Sniffer捕獲的ZigBee數(shù)據(jù)幀
本文針對(duì)工業(yè)現(xiàn)場(chǎng)布線受制的問(wèn)題,設(shè)計(jì)并實(shí)現(xiàn)了連接EtherCAT與ZigBee的網(wǎng)關(guān)。經(jīng)實(shí)驗(yàn)驗(yàn)證,該網(wǎng)關(guān)能夠正確解析并轉(zhuǎn)發(fā)ZigBee節(jié)點(diǎn)采集到的數(shù)據(jù)。通過(guò)該網(wǎng)關(guān),能夠?qū)therCAT網(wǎng)絡(luò)和ZigBee網(wǎng)絡(luò)融合在一起,這為方便地?cái)U(kuò)展實(shí)時(shí)工業(yè)以太網(wǎng)提供了一種新途徑。
[1]EtherCAT Technology Group.EtherCAT-The Ethernet Fieldbus[EB/OL].2012-9-26.Available:http://www.ethercat.org/en/publications.html.
[2]李木國(guó),王磊,王靜,等.基于EtherCAT的工業(yè)以太網(wǎng)數(shù)據(jù)采集系統(tǒng)[J].計(jì)算機(jī)工程,2010,36(3):237-239.
[3]汪雅楠,譚南林.基于ARM9的工業(yè)以太網(wǎng)EtherCAT從站設(shè)計(jì)[J].機(jī)械工程與自動(dòng)化,2011(5):139-141.
[4]劉艷強(qiáng),王健,單春榮.基于EtherCAT的多軸運(yùn)動(dòng)控制器的研究[J].制造技術(shù)與機(jī)床,2008(6):100-103.
[5]王維健.工業(yè)以太網(wǎng)EtherCAT的原理及其實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2010,26(5):51 -52.
[6]ZigBee Alliance.ZigBee Specification[EB/OL].2008-1-17.Available:http://www.ZigBee.org/.
[7]IEEE Computer Society.IEEE Std.802.15.4-2006:Wireless Medium Access Control(MAC)and Physical Layer(PHY)specifications for Low Rate Wireless Personal Area Networks(LR-WPANs)[EB/OL].2006-9-8.Available:http://standards.ieee.org/getieee802/download/802.15.4-2006.pdf.
[8]郇極,劉艷強(qiáng).工業(yè)以太網(wǎng)現(xiàn)場(chǎng)總線EtherCAT驅(qū)動(dòng)程序設(shè)計(jì)與應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2010.
[9]Texas Instruments Incorporation.CC253x System-on-Chip Solution for 2.4 GHz IEEE 802.15.4 and ZigBee Applications User’s Guide(Rev.C)[EB/OL].2012-1-6.Available:http://www.ti.com/lit/ug/swru191c/swru191c.pdf.
[10]Shahin Farahani.ZigBee Wireless Networks and Transceivers[M].2008,9:1 -399.
[11]胡國(guó)珍,王泉,魏旻.基于ZigBee的工業(yè)無(wú)線網(wǎng)關(guān)研究[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2009(5):25-28.
[12]Texas Instruments Incorporation.EtherCAT on Sitara AM335x ARM Cortex-A8 Microprocessors[EB/OL].November 2011.Available:http://www.ti.com/.