葉楊婷, 雷海東
(江漢大學(xué) 物理與信息工程學(xué)院, 武漢 430056)
基于ZigBee的工業(yè)無線網(wǎng)關(guān)設(shè)計與應(yīng)用
葉楊婷, 雷海東
(江漢大學(xué) 物理與信息工程學(xué)院, 武漢 430056)
針對目前工業(yè)現(xiàn)場采用有線組網(wǎng)方式進(jìn)行數(shù)據(jù)通信時,布線困難、靈活性差等問題,提出了一種基于Profibus-DP現(xiàn)場總線與ZigBee技術(shù)的工業(yè)無線網(wǎng)關(guān)裝置,該裝置可實現(xiàn)工業(yè)現(xiàn)場總線網(wǎng)絡(luò)與ZigBee無線傳感器網(wǎng)絡(luò)之間的協(xié)議轉(zhuǎn)換。為提高網(wǎng)關(guān)的工作效率,采用雙CPU的硬件結(jié)構(gòu),分別對Profibus-DP網(wǎng)絡(luò)和ZigBee網(wǎng)絡(luò)的數(shù)據(jù)進(jìn)行控制和處理,并通過雙口RAM連接,實現(xiàn)兩種網(wǎng)絡(luò)的數(shù)據(jù)交換和協(xié)議轉(zhuǎn)換。描述了該網(wǎng)關(guān)的硬件組成、工作流程及數(shù)據(jù)交換過程,實驗結(jié)果驗證其可靠性高、實時性強(qiáng),很好地實現(xiàn)了無線網(wǎng)絡(luò)和有線工業(yè)網(wǎng)絡(luò)技術(shù)的相互結(jié)合,具有廣闊的應(yīng)用前景。
Profibus-DP; ZigBee; 現(xiàn)場總線; 工業(yè)無線網(wǎng)關(guān); 雙CPU; 雙口RAM
近年來,物聯(lián)網(wǎng)技術(shù)快速發(fā)展,與此相關(guān)的無線傳感器網(wǎng)絡(luò)ZigBee技術(shù)也得到了飛速發(fā)展,ZigBee技術(shù)以其可靠性高、成本低、功耗低、布局靈活等眾多優(yōu)勢,越來越受到工業(yè)通信領(lǐng)域的重視[1-2]。如果將ZigBee無線終端節(jié)點代替?zhèn)鹘y(tǒng)的傳感器或執(zhí)行器,接入現(xiàn)場總線網(wǎng)絡(luò)組成可移動的混合網(wǎng)絡(luò),可以解決工業(yè)現(xiàn)場總線布線困難、靈活性差等問題。為了解決這種兼容性,研究現(xiàn)場總線與ZigBee無線傳感器網(wǎng)絡(luò)之間的協(xié)議轉(zhuǎn)換是非常有必要的[3-5],因此,本文設(shè)計了一種基于Profibus-DP現(xiàn)場總線與ZigBee技術(shù)的雙CPU工業(yè)無線網(wǎng)關(guān)裝置,實驗結(jié)果驗證了該系統(tǒng)的可行性。
傳統(tǒng)的單主站Profibus-DP系統(tǒng)由一個PC或PLC主站和若干DP從站組成,并通過有線方式連接,主站周期的讀取從站發(fā)來的數(shù)據(jù)并周期發(fā)送數(shù)據(jù)給從站[6]。如圖1所示,本系統(tǒng)用ZigBee節(jié)點代替?zhèn)鹘y(tǒng)的DP從站(如傳感器或執(zhí)行器),接入Profibus-DP現(xiàn)場總線網(wǎng)絡(luò)。在這個系統(tǒng)里,Profibus-DP/ZigBee網(wǎng)關(guān)在Profibus-DP網(wǎng)絡(luò)一側(cè)作為DP從站,在ZigBee網(wǎng)絡(luò)一側(cè)作為協(xié)調(diào)器,網(wǎng)關(guān)可將ZigBee節(jié)點通過無線的方式接入Profibus-DP現(xiàn)場總線網(wǎng)絡(luò)里,組成可移動的混合工業(yè)網(wǎng)絡(luò),從而實現(xiàn)Profibus-DP現(xiàn)場總線網(wǎng)絡(luò)與ZigBee無線傳感器網(wǎng)絡(luò)之間的數(shù)據(jù)通信。
該網(wǎng)關(guān)由Profibus-DP、ZigBee通信模塊和雙口RAM組成,如圖2所示,其工作原理是CPU1和CPU2微處理器并行工作,分別對Profibus-DP總線通信模塊和ZigBee通信模塊的數(shù)據(jù)進(jìn)行控制與處理,并通過雙口RAM連接,實現(xiàn)兩種網(wǎng)絡(luò)的數(shù)據(jù)交換和協(xié)議轉(zhuǎn)換。采用雙CPU的硬件結(jié)構(gòu),可以使兩個CPU并行工作,互不干擾,既減輕了CPU的工作負(fù)擔(dān),也簡化了軟件編程的復(fù)雜程度,大大提高了系統(tǒng)的工作效率[7]。CPU1與CPU2微處理器選用高速度的SOC單片機(jī)C8051F021,這種單片機(jī)與標(biāo)準(zhǔn)的8051結(jié)構(gòu)相比,指令執(zhí)行速度要提高不少[8]。
圖1 系統(tǒng)整體結(jié)構(gòu)
圖2 系統(tǒng)硬件框圖
2.1 Profibus-DP通信模塊
Profibus-DP通信模塊由CPU1微處理器、SPC3協(xié)議芯片、光耦隔離芯片和RS-485驅(qū)動器組成[9]。這里定義ZigBee網(wǎng)絡(luò)向Profibus-DP網(wǎng)絡(luò)發(fā)送的數(shù)據(jù)為輸入數(shù)據(jù),Profibus-DP網(wǎng)絡(luò)向ZigBee網(wǎng)絡(luò)發(fā)送的數(shù)據(jù)為輸出數(shù)據(jù),因此,CPU1微處理的主要工作任務(wù)是通過SPC3協(xié)議芯片將輸入數(shù)據(jù)發(fā)送給Profibus-DP主站,并通過雙口RAM把輸出數(shù)據(jù)發(fā)送給ZigBee通信模塊。
2.2 ZigBee通信模塊
ZigBee通信模塊由CPU2微處理器、CC2530芯片及相關(guān)外圍電路組成。CPU2微處理器通過UART串口與CC2530芯片連接,實現(xiàn)與ZigBee模塊的通信。CC2530作為ZigBee無線傳感器網(wǎng)絡(luò)的協(xié)調(diào)器,負(fù)責(zé)組建和管理ZigBee網(wǎng)絡(luò),與ZigBee路由器節(jié)點或終端節(jié)點進(jìn)行無線通信[10]。
2.3 雙口RAM
雙口RAM選用高速1 Kb×8雙口靜態(tài)RAM的IDT7130芯片,適用于兩個CPU之間大量數(shù)據(jù)高速雙向傳送[11]。CPU1與CPU2微處理器通過各自的數(shù)據(jù)/地址總線及讀寫控制總線與雙口RAM兩端連接,實現(xiàn)兩種網(wǎng)絡(luò)的數(shù)據(jù)交換。雙口RAM被劃分為數(shù)據(jù)發(fā)送緩沖區(qū)和數(shù)據(jù)接收緩沖區(qū),數(shù)據(jù)發(fā)送緩沖區(qū)存放的是Profibus-DP網(wǎng)絡(luò)向ZigBee網(wǎng)絡(luò)發(fā)送的數(shù)據(jù),數(shù)據(jù)接收緩沖區(qū)存放的是ZigBee網(wǎng)絡(luò)向Profibus-DP網(wǎng)絡(luò)發(fā)送的數(shù)據(jù)。
參考傳統(tǒng)的Profibus-DP系統(tǒng)的工作流程[12],設(shè)計了Profibus-DP主站、Profibus-DP/ZigBee網(wǎng)關(guān)和ZigBee節(jié)點三者之間的通信流程,系統(tǒng)從上電到進(jìn)入正常數(shù)據(jù)交換工作狀態(tài)的整個過程分為以下幾個步驟,其工作流程如圖3所示。
(1) 系統(tǒng)上電后,主站、網(wǎng)關(guān)和ZigBee節(jié)點分別進(jìn)行初始化,網(wǎng)關(guān)的初始化主要包括兩個微處理器的初始化、SPC3協(xié)議芯片的初始化和ZigBee協(xié)調(diào)器CC2530的初始化。
圖3 系統(tǒng)工作流程
(2) ZigBee協(xié)調(diào)器建立網(wǎng)絡(luò)并允許ZigBee節(jié)點加入網(wǎng)絡(luò)后,協(xié)調(diào)器會根據(jù)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)為每一個ZigBee節(jié)點分配網(wǎng)絡(luò)地址,ZigBee節(jié)點在被分配網(wǎng)絡(luò)地址后將其發(fā)送給協(xié)調(diào)器,再通過串口發(fā)送給CPU2微處理器,這樣就可以在CPU2微處理器內(nèi)建立一張ZigBee節(jié)點網(wǎng)絡(luò)地址和Profibus-DP設(shè)備地址相對應(yīng)的地址映射表,當(dāng)發(fā)生設(shè)備斷電導(dǎo)致網(wǎng)絡(luò)地址改變時,只需及時更新地址映射表就可以保證設(shè)備的正常通信。
(3) 網(wǎng)關(guān)成功與Profibus-DP主站連接后,等待主站對其進(jìn)行參數(shù)設(shè)置、組態(tài)設(shè)置、新地址設(shè)置等。 SPC3協(xié)議芯片根據(jù)接受到的不同報文,通過中斷方式通知CPU1微處理器進(jìn)行以上事件處理,當(dāng)這些工作全部完成后,主站就可以循環(huán)地與從站交換用戶數(shù)據(jù)[13]。
(4) 進(jìn)入數(shù)據(jù)交換階段,Profibus-DP/ZigBee網(wǎng)關(guān)監(jiān)聽來自主站發(fā)送的數(shù)據(jù),并對Profibus-DP數(shù)據(jù)幀進(jìn)行分析并重新打包成符合ZigBee協(xié)議的數(shù)據(jù)包,通過查詢ZigBee網(wǎng)絡(luò)與Profibus-DP網(wǎng)絡(luò)對應(yīng)的地址映射表,發(fā)送給地址相對應(yīng)的ZigBee節(jié)點;同時網(wǎng)關(guān)也監(jiān)聽ZigBee網(wǎng)絡(luò)發(fā)送來的數(shù)據(jù),并對ZigBee數(shù)據(jù)幀進(jìn)行分析并重新打包成符合Profibus-DP協(xié)議的數(shù)據(jù)包,發(fā)送給主站,主站會根據(jù)接收到的數(shù)據(jù)包內(nèi)容判斷是哪個ZigBee節(jié)點發(fā)送來的數(shù)據(jù)。
使用雙CPU結(jié)構(gòu)的網(wǎng)關(guān),Profibus-DP和ZigBee通信模塊可以相互獨立進(jìn)行開發(fā),從而使網(wǎng)關(guān)軟件的復(fù)雜度大大降低。因此,網(wǎng)關(guān)的軟件開發(fā)分為3部分:①CPU1控制Profibus-DP總線通信模塊完成Profibus-DP網(wǎng)絡(luò)的數(shù)據(jù)通信;②CPU2控制ZigBee通信模塊完成ZigBee網(wǎng)絡(luò)的數(shù)據(jù)通信;③CPU1與CPU2通過雙口RAM連接,按照一定的數(shù)據(jù)通信規(guī)約,實現(xiàn)兩種網(wǎng)絡(luò)的數(shù)據(jù)交換和協(xié)議轉(zhuǎn)換。
雙口RAM一般通過硬件仲裁或中斷仲裁方式來避免數(shù)據(jù)冒險問題[14],為了保證系統(tǒng)的實時性,本文采用雙口RAM的中斷仲裁方式來通知對方CPU進(jìn)行數(shù)據(jù)交換,兩個CPU微處理器各包含一個主程序和一個中斷子程序,其軟件流程如圖4所示。
具體步驟是:
(1) 首先 CPU1與CPU2微處理器進(jìn)入主程序,CPU1微處理器查詢是否收到Profibus-DP主站發(fā)送來的數(shù)據(jù),如果是,則將Profibus-DP數(shù)據(jù)幀放入雙口RAM的發(fā)送緩沖區(qū),并對雙口RAM的右端中斷信箱進(jìn)行寫操作,向CPU2微處理器發(fā)/INTR中斷;同時CPU2微處理器查詢是否收到ZigBee通信模塊發(fā)送來的數(shù)據(jù),如果收到數(shù)據(jù),則查詢ZigBee網(wǎng)絡(luò)與Profibus-DP網(wǎng)絡(luò)對應(yīng)的地址映射表,并對ZigBee數(shù)據(jù)幀進(jìn)行分析并重新打包成符合Profibus-DP協(xié)議的數(shù)據(jù)包,存入雙口RAM的接收緩沖區(qū)。
(2) CPU2微處理器響應(yīng)/INTR中斷,進(jìn)入CPU2中斷程序,讀出雙口RAM發(fā)送緩沖區(qū)的Profibus-DP數(shù)據(jù)幀后,對Profibus-DP數(shù)據(jù)幀進(jìn)行分析并重新打包成符合ZigBee協(xié)議的數(shù)據(jù)包,并查詢Profibus-DP網(wǎng)絡(luò)與ZigBee網(wǎng)絡(luò)對應(yīng)的地址映射表,發(fā)送給ZigBee網(wǎng)絡(luò)里地址相對應(yīng)的的ZigBee節(jié)點,最后對雙口RAM的右端中斷信箱進(jìn)行讀操作,清除中斷。之后對雙口RAM的左端中斷信箱進(jìn)行寫操作,向CPU1微處理器發(fā)/INTL中斷。
(3) CPU1微處理器響應(yīng)/INTL中斷,進(jìn)入CPU1中斷程序,讀出雙口RAM接收緩沖區(qū)內(nèi)已經(jīng)打包好的數(shù)據(jù)幀后,發(fā)送給Profibus-DP主站,最后對雙口RAM的左端中斷信箱進(jìn)行讀操作,清除中斷。這樣該系統(tǒng)就完成了一次完整的數(shù)據(jù)交換和協(xié)議轉(zhuǎn)換過程,之后再進(jìn)入下一輪的數(shù)據(jù)交換。
5.1 系統(tǒng)搭建
系統(tǒng)在學(xué)校實驗室搭建,由Profibus-DP主站、Profibus-DP/ZigBee網(wǎng)關(guān)以及帶有不同傳感器的3個ZigBee終端節(jié)點組成。如圖5所示,主站是插有CP5611網(wǎng)絡(luò)接口卡的PC機(jī),3個ZigBee終端節(jié)點分別連接溫度、濕度和氣體傳感器,對實驗室的溫度、濕度及氣體進(jìn)行采集,再通過Profibus-DP/ZigBee網(wǎng)關(guān)將這些數(shù)據(jù)傳送給主站,主站PC機(jī)通過STEP7軟件對網(wǎng)關(guān)進(jìn)行組態(tài)及數(shù)據(jù)監(jiān)測。
圖5 系統(tǒng)應(yīng)用示意圖
5.2 系統(tǒng)配置
為了方便主站對網(wǎng)關(guān)的通信接口配置,規(guī)定每個ZigBee終端節(jié)點的輸入/輸出數(shù)據(jù)的格式及長度完全相同,用戶可根據(jù)自己的需求定義輸入/輸出數(shù)據(jù)的格式及長度。在這里根據(jù)實驗需求定義每個ZigBee節(jié)點的數(shù)據(jù)長度為8 byte輸入和2 byte輸出,其組態(tài)數(shù)據(jù)為0x17和0x21。
輸入數(shù)據(jù)是ZigBee節(jié)點發(fā)送給Profibus-DP主站的數(shù)據(jù),數(shù)據(jù)包格式如表1所示,長度為8 byte。當(dāng)ZigBee節(jié)點發(fā)送數(shù)據(jù)給網(wǎng)關(guān)時,實際上只發(fā)送7 byte(不包含Profibus-DP設(shè)備地址),網(wǎng)關(guān)在接收到ZigBee節(jié)點發(fā)送來的數(shù)據(jù)后,會根據(jù)地址映射表查詢到相應(yīng)的Profibus-DP設(shè)備地址,并插入第3 byte組成8 byte的數(shù)據(jù)包后再發(fā)送給Profibus-DP主站,這樣主站就知道是哪個ZigBee節(jié)點發(fā)送的數(shù)據(jù)。
表1 輸入數(shù)據(jù)包格式表
輸出數(shù)據(jù)是Profibus-DP主站發(fā)送給ZigBee節(jié)點的數(shù)據(jù),長度為2 byte,也就是主站發(fā)送命令給網(wǎng)關(guān),需要讀取哪個ZigBee節(jié)點的數(shù)據(jù)。定義第1個字節(jié)為Profibus-DP設(shè)備地址;第2個字節(jié)為傳感器類型。當(dāng)Profibus-DP主站發(fā)送命令給網(wǎng)關(guān)后,網(wǎng)關(guān)會根據(jù)地址映射表查詢到相應(yīng)的ZigBee網(wǎng)絡(luò)地址,并把網(wǎng)絡(luò)地址插入輸出數(shù)據(jù)的頭兩個字節(jié)組成4 byte的數(shù)據(jù)包后發(fā)送給ZigBee協(xié)調(diào)器,協(xié)調(diào)器再根據(jù)網(wǎng)絡(luò)地址發(fā)送數(shù)據(jù)給對應(yīng)的ZigBee節(jié)點,這樣主站就可以準(zhǔn)確無誤地發(fā)送命令給指定的ZigBee節(jié)點。
5.3 系統(tǒng)測試
編寫Profibus-DP/ZigBee網(wǎng)關(guān)的GSD文件,在STEP7中安裝網(wǎng)關(guān)的GSD文件。網(wǎng)關(guān)作為Profibus-DP網(wǎng)絡(luò)的從站,設(shè)置網(wǎng)關(guān)從站地址為3,通信速率為9 600 bit/s,并為網(wǎng)關(guān)配置一個輸入數(shù)據(jù)為8 byte、輸出數(shù)據(jù)為2 byte的模塊,其硬件配置如圖6所示,最后通過編寫數(shù)據(jù)讀寫程序觀測數(shù)據(jù)收發(fā)是否準(zhǔn)確。經(jīng)測試,Profibus-DP/ZigBee網(wǎng)關(guān)能準(zhǔn)確將主站發(fā)送的數(shù)據(jù)傳送給ZigBee終端節(jié)點,也能將ZigBee終端節(jié)點采集的溫度、濕度及氣體參數(shù)傳送給主站。
圖6 系統(tǒng)硬件配置
本文設(shè)計了一種基于Profibus-DP現(xiàn)場總線與ZigBee技術(shù)的工業(yè)無線網(wǎng)關(guān)裝置,實現(xiàn)了工業(yè)現(xiàn)場總線向無線工業(yè)網(wǎng)絡(luò)的延伸,解決了工業(yè)現(xiàn)場總線布線困難、擴(kuò)展性差等問題。系統(tǒng)采用雙CPU的硬件結(jié)構(gòu),并通過雙口RAM實現(xiàn)兩個CPU的高速通信,有效解決了因Profibus-DP網(wǎng)絡(luò)與ZigBee網(wǎng)絡(luò)速率不匹配而產(chǎn)生數(shù)據(jù)丟失、通信中斷等問題。隨著物聯(lián)網(wǎng)技術(shù)的發(fā)展和工業(yè)無線通信的需求,這種工業(yè)無線網(wǎng)關(guān)裝置必將具有廣闊的應(yīng)用前景[15]。
[1] 王小強(qiáng),歐陽駿,黃寧淋.Zigbee無線傳感器網(wǎng)絡(luò)設(shè)計與實現(xiàn)[M]. 北京:化學(xué)工業(yè)出版社,2012.
[2] 葉楊婷.基于ZigBee和GPRS的地鐵環(huán)境監(jiān)控系統(tǒng)設(shè)計[J].實驗室研究與探索,2015,34(12):65-68.
[3] 張建奇,張墨翰,張建鋒,等. Profibus總線的無線網(wǎng)關(guān)設(shè)計[J].自動化儀表,2013,34(4):55-58.
[4] 趙堅鈞,白 焰,汪鳳珠,等.化學(xué)水超濾系統(tǒng)中Zigbee無線網(wǎng)關(guān)設(shè)計[J]. 電站系統(tǒng)工程,2012,28(2):46-48.
[5] 劉 暉. 一種ZigBee到PROFIBUS-DP網(wǎng)關(guān)的實現(xiàn)[D].北京:冶金自動化研究設(shè)計院,2009.
[6] 梁 濤,楊 彬,岳大為. Profibus現(xiàn)場總線控制系統(tǒng)的設(shè)計與開發(fā)[M].北京:國防工業(yè)出版社,2013:22-23.
[7] 房立鎮(zhèn),程廣河,王茂勵,等. 雙口RAM在CAN與PROFIBUS-DP網(wǎng)關(guān)中的應(yīng)用研究[J].信息技術(shù),2010,34(8):124-126.
[8] 張培任,孫 力. C8051f系列單片機(jī)原理與應(yīng)用[M].北京:清華大學(xué)出版社,2013:22-25.
[9] 陳思敏,李 奎,王麗麗,等. 智能斷路器接入Profibus總線系統(tǒng)的新方法[J]. 儀表技術(shù)與傳感器,2014(10):28-30.
[10] 孫利民,李建中,陳 渝. 無線傳感器網(wǎng)絡(luò)[M].北京:清華大學(xué)出版社,2005.
[11] 方彥軍,張大海. 一種CAN與PROFIBUS-DP總線網(wǎng)關(guān)的實現(xiàn)[J]. 武漢大學(xué)學(xué)報,2005,38(3):137-140.
[12] 黃郭華,崔躍芬. 現(xiàn)場總線PROFIBUS-DP主-從站技術(shù)在變頻調(diào)速系統(tǒng)中的應(yīng)用[J].實驗室研究與探索,2015,34(9):136-140.
[13] 關(guān)新平,高洪昌,陳彩蓮,等. PROFIBUS-DP工業(yè)現(xiàn)場總線與無線ZIGBEE間的協(xié)議轉(zhuǎn)換裝置和方法[P]. 中國專利:CN200910310893.9. 2010-06-02.
[14] 陳德明,熊列彬. 雙口 RAM 在自動化系統(tǒng)中的應(yīng)用[J].國外電子元器件,2005(4):20-22.
[15] 方原柏. 無線技術(shù)是RTU發(fā)展的方向之一[J].自動化博覽,2014(9):78-80.
·名人名言·
我不知道世上的人對我怎樣評價。我卻這樣認(rèn)為:我好像是在海上玩耍,時而發(fā)現(xiàn)了一個光滑的石子兒,時而發(fā)現(xiàn)一個美麗的貝殼而為之高興的孩子。盡管如此,那真理的海洋還神秘地展現(xiàn)在我們面前。
——牛頓
Design and Application of the Industrial Wireless Gateway Based on ZigBee
YEYangting,LEIHaidong
(Physics and Information Engineering Institute, Jianghan University, Wuhan 430056, China)
At present, the data communication in the industrial field uses wired network, and it has disadvantages of wiring difficulty and poor flexibility. Aiming at this situation, the industrial wireless gateway device based on Profibus-DP fieldbus and ZigBee technology is presented. The device can realize the protocol conversion between the industrial fieldbus network and ZigBee wireless sensor network. In order to improve the work efficiency of the gateway,the hardware structure based on dual CPU is adopted to control and process the data of Profibus-DP network and ZigBee network, respectively. The data exchange and protocol conversion between those two kinds of networks can be realized by using dual port RAM. The hardware of the gateway,the workflow and the data exchange process are described in detail. The experimental results verify the high reliability and real-time performance. It is very good to achieve the combination of wireless network and wired industry network technology,so it has broad application prospects.
Profibus-DP; ZigBee; fieldbus; industrial wireless gateway; dual CPU; dual port RAM
2016-07-18
葉楊婷(1983-),女,湖北武漢人,碩士,實驗師,主要從事無線傳感器網(wǎng)絡(luò)和工業(yè)無線網(wǎng)絡(luò)的相關(guān)研究工作。
Tel.:13871263803;E-mail:yeyangting@126.com
雷海東(1978-),男,廣西桂林人,博士,副教授,信息與控制實驗室主任,主要從事物聯(lián)網(wǎng)、時間頻率領(lǐng)域的相關(guān)研究工作。
E-mail:272434390@qq.com
TP 23
A
1006-7167(2017)03-0148-05