1 引言
工業(yè)無線通信技術(shù)是繼現(xiàn)場總線、工業(yè)以太網(wǎng)之后,工業(yè)自動化領(lǐng)域又一個研究熱點。 實際上,無論是場總線還是工業(yè)以太網(wǎng),都已經(jīng)形成了多標準并存的局面,在協(xié)議轉(zhuǎn)換、異 構(gòu)網(wǎng)絡(luò)接入過程中,網(wǎng)關(guān)起著重要作用。工業(yè)無線通信技術(shù)要應(yīng)用于工控領(lǐng)域,也面臨諸如 開放性、互操作等技術(shù)。
ZigBee 因其低成本、低功耗、組網(wǎng)靈活等眾多優(yōu)勢,成為工業(yè)無線通信技術(shù)中備受關(guān) 注的技術(shù)之一。ZigBee 是一種低速網(wǎng)絡(luò),傳輸速度為10KB/S~250KB/S,其在工業(yè)自動化 應(yīng)用中,一般要接入上層網(wǎng)絡(luò)。本文介紹一種ZIGBEE/工業(yè)以太網(wǎng)網(wǎng)關(guān)設(shè)計,實現(xiàn)ZIGBEE 與工業(yè)以太網(wǎng)的一種接入,設(shè)計中ZigBee 和工業(yè)以太網(wǎng)應(yīng)用層都采用自動化儀表廣泛支持 的Modbus/RTU 協(xié)議。
2 網(wǎng)關(guān)硬件體系結(jié)構(gòu)
網(wǎng)關(guān)硬件體系結(jié)構(gòu)如圖 1 所示。系統(tǒng)以Rabbit3000 MPU 為核心,擴展了以太網(wǎng)接口、 ZigBee 無線通信接口和基本的flash、RAM 及電源電路。圖中SST39LF040 為512Kflash, AS7C4096 為512K SRAM,與Rabbit3000 的地址線(A0~A18)、數(shù)據(jù)線(D0~D7)、片選 線(CS0~CS2)、讀寫線(OE0、OE1、WE0、WE1)直接無譯碼相連。AX88796L 為以太 網(wǎng)接口控制芯片,10M/100M 兼容,3.3V 供電。AX88796L 的TPOP、TPON、TPIP、TPIN 接RJ45 連接器LF1S022。
SZ05-ZBEE 是上海順舟公司的無線通信模塊,模塊將Freescale的MC13213及外圍電路 布置在2.75×4.8cm的PCB板上,提供標準2.54 雙排插針接口,包含電源接口、數(shù)據(jù)接口、 控制接口和系統(tǒng)指示燈接口和天線接口等,采用IEEE802.15.4/ZIGBEE 標準地址尋址,支持 星型、樹型、鏈型、網(wǎng)狀網(wǎng)等拓撲結(jié)構(gòu)。SZ05-ZBEE通過RX1、TX1(串行通信接口)直接與 Rabbit3000的PC6、PC7(串行通信口A)連接。
3 網(wǎng)關(guān)軟件設(shè)計
網(wǎng)關(guān)的主要功能是實現(xiàn)Zigbee與以太網(wǎng)之間的數(shù)據(jù)傳輸。SZ05-ZBEE無線通信模塊集成 了符合ZigBee協(xié)議標準的射頻收發(fā)器和微處理器,初始化設(shè)置后,模塊即可以實現(xiàn)透明串口 傳輸。為適應(yīng)短幀實時和確定性通信發(fā)展趨勢,以太網(wǎng)通信采用UDP/IP協(xié)議,應(yīng)用層采用 Modbus/RTU主從式協(xié)議。類似于Modbus/TCP協(xié)議,也可以稱以太網(wǎng)側(cè)協(xié)議為Modbus/UDP 協(xié)議。網(wǎng)關(guān)軟件基于Dynamic C和μC/OS-Ⅱ?qū)崟r操作系統(tǒng)設(shè)計。
3.1 網(wǎng)關(guān)轉(zhuǎn)發(fā)報文的總體設(shè)計
Modbus 標準中規(guī)定了完整的消息、數(shù)據(jù)結(jié)構(gòu)、命令和應(yīng)答方式,但只是OSI 模型第7 層上的應(yīng)用層報文傳輸協(xié)議,定義的是一種以數(shù)據(jù)幀形式表示的能使設(shè)備相互識別和使用的 消息結(jié)構(gòu)。因此,可以不對數(shù)據(jù)包作任何修改,將Modbus/RTU 報文作為應(yīng)用層數(shù)據(jù)在不 同網(wǎng)絡(luò)之間傳輸。
網(wǎng)關(guān)中即是將 Modbus/RTU 報文作為UDP 和ZigBee 應(yīng)用層數(shù)據(jù)傳輸。主站報文通過 UDP 端口接收,去掉幀頭幀尾,附加Zigbee 短地址,通過串口發(fā)給SZ05-ZBEE,轉(zhuǎn)化為 ZigBee 報文發(fā)送;從站的ZigBee 報文由SZ05-ZBEE 轉(zhuǎn)為串口數(shù)據(jù)接收,去掉ZigBee 短地 址,附加UDP 幀頭幀尾,然后由以太網(wǎng)口轉(zhuǎn)發(fā)。具體程序包括5 個任務(wù):UDP 接收、串口 發(fā)送、串口接收、UDP 發(fā)送以及嵌入式Web Server。嵌入式Web Server 用于設(shè)備管理。系 統(tǒng)程序結(jié)構(gòu)如圖2 所示。
3.2 地址映射
對于ZigBee 設(shè)備,有其IEEE 地址和16 位短地址。設(shè)計中將ZigBee16 位短地址與Modbus 從站地址綁定,從而實現(xiàn)Modbus 主、從各節(jié)點之間地址定向。具體是將一系列Modbus 從 站地址和ZigBee 短地址以配置文件config.txt 下裝到flash,網(wǎng)關(guān)在初始化時,讀取配置文件 內(nèi)容,存儲在數(shù)組中。數(shù)組形式為:
char ModbusZigbee_Addr[ ]=
[{ModbusAddr0,shortAdd0H, shortAdd0L},……{ ModbusAddrn,shortAddnH,shortAddnL}]
接收UDP 報文后,讀取報文中的Modbus 從站地址,檢索數(shù)組得到與之匹配的 ModbusAddrx(ModbusAddr0 到ModbusAddrn 中查找),從而讀取該從站ZigBee 短地址 shortAddxH、 shortAddxL。該短地址將附加在所接收的UDP 報文之前,一同作為串行通信 口的轉(zhuǎn)發(fā)報文。
config.txt 文件中,Modbus 從站地址和ZigBee 短地址在存儲時以空格間隔,文件以#結(jié) 束。數(shù)組的第一維長度在讀取文件后確定,定義為Device_Number。檢索ZigBee 短地址函 數(shù)如下:
int ZigBee_Search(char Modbusaddr)
{int i=0;
For(i=0;i{If(Addr[ i][0]== ModbusAddr)
return i ;
}
return Device_Number }
Addr[ i]、Addr[ i]為對應(yīng)的ZigBee 短地址。返回值為Device_Number 表示未檢索到。
3.3 緩沖區(qū)設(shè)計及數(shù)據(jù)接收轉(zhuǎn)發(fā)
為了解決以太網(wǎng)口和串行通信口速度配合上,以及解除串口與以太網(wǎng)口耦合,設(shè)計了兩 個環(huán)形隊列作為UDP 接收緩沖區(qū)和串口接收緩沖區(qū)(用宏Buffer_Size 定義)。緩沖區(qū)仿雙口 RAM 思想、按照先進先出(FIFO)原則設(shè)計。 UDP 接收緩沖區(qū)同時是串口發(fā)送數(shù)據(jù)區(qū)。 緩沖區(qū)結(jié)構(gòu)為:
char UDP_ReceiveBuffer[Buffer_Size]=
[SendNumber1,shortAddxH,shortAddxL,ModbusAddrx,F(xiàn)uncodex,……
……SendNumbern,shortAddxH,shortAddxL,ModbusAddrx,F(xiàn)uncodex]
ModbusAddrx 開始為所接收的UDP 報文,即完整的Modbus/RTU 數(shù)據(jù)。shortAddxH 和shortAddxL 為ZigBee 短地址,SendNumberx 為UDP 報文長度加2,即串口要轉(zhuǎn)發(fā)的數(shù)據(jù)長 度。每次接收的UDP 報文都附加ZigBee 短地址和SendNumberx 這3 個字節(jié)存放在緩沖區(qū) 中。UDP 接收緩沖區(qū)設(shè)置了當前存儲數(shù)據(jù)指針(int UDP_Location),始終指向當前存儲數(shù)據(jù) 尾部。類似,針對串口轉(zhuǎn)發(fā),設(shè)置了當前發(fā)送數(shù)據(jù)指針(int Serial_Location)始終指向已經(jīng) 發(fā)送數(shù)據(jù)尾部。系統(tǒng)默認Modbus/RTU 數(shù)據(jù)幀長度不大于256。指針大于Buffer_Size 以后 均回零,此后,原來的報文陸續(xù)被覆蓋。“串口發(fā)送”任務(wù)判斷兩指針是否重合,決定是否 啟動串口轉(zhuǎn)發(fā)。UDP 口接收報文部分程序如下。
串口接收緩沖區(qū)設(shè)計類似。由于數(shù)據(jù)通過固定的端口和IP 地址轉(zhuǎn)發(fā),存儲數(shù)據(jù)中不再 包含類似于Zigbee 地址的數(shù)據(jù)項。
4 結(jié)束語
本文設(shè)計適當調(diào)整可以用于更多場合。如,動態(tài)管理地址綁定數(shù)組,可以適應(yīng)動態(tài)組網(wǎng);數(shù)組中增加IP 地址、端口號等可適應(yīng)其他類型報文;調(diào)整緩沖區(qū)大小可以適應(yīng)不同尺寸報 文收發(fā)等。 經(jīng)過多年的重點扶持,我國工業(yè)以太網(wǎng)研究已經(jīng)取得大量成果并廣泛應(yīng)用。目前,工業(yè) 無線通信技術(shù)也列為我國“十一五”863 重點研究項目,ZigBee 等技術(shù)也將逐步廣泛應(yīng)用于 工業(yè)自動化領(lǐng)域。本系統(tǒng)開發(fā)基于市場現(xiàn)有的通用技術(shù),對中小型控制系統(tǒng)開發(fā)和改造有借 鑒意義。
文章創(chuàng)新點:提出了一種簡潔方便的 Zigbee/以太網(wǎng)接入方案,應(yīng)用地址映射、環(huán)形緩 沖隊列等解決了Zigbee 通信與以太網(wǎng)通信速度協(xié)調(diào)技術(shù)。
責(zé)任編輯:gt
-
以太網(wǎng)
+關(guān)注
關(guān)注
40文章
5385瀏覽量
171160 -
接口
+關(guān)注
關(guān)注
33文章
8526瀏覽量
150860 -
ZigBee
+關(guān)注
關(guān)注
158文章
2269瀏覽量
242552
發(fā)布評論請先 登錄
相關(guān)推薦
評論