文獻標識碼: A
文章編號: 0258-7998(2014)04-0019-03
物聯網的概念最初在1999年提出,其基本思路是:通過射頻識別(RFID)、紅外感應器、全球定位系統、激光掃描器、氣體感應器等信息傳感設備,按約定的協議,把任何物品與互聯網連接起來,進行信息交換和通信,以實現智能化識別、定位、跟蹤、監控和管理的一種網絡。近些年,物聯網的概念總是和無線傳感器網絡的概念共同提出。無線傳感器網絡由部署在監測區域內的大量微型傳感器節點組成,通過無線通信方式形成一個網狀拓撲,網絡中的節點能夠實現路由功能,實現信息多跳傳輸。無線傳感器網絡將邏輯上的信息世界與客觀上的物理世界融合在一起,極大地延伸了人們的感知領域和范圍[1]。
目前對于傳感器網絡節點的要求一般是結構簡單,成本低廉,能夠長時間地工作。因此目前較為常見的解決方案一般會選用ZigBee協議作為傳感器網絡或是物聯網的通信協議。ZigBee協議與傳統的WiFi、藍牙等通信協議相比,擁有較低的功耗,并能實現多跳傳輸的功能,但相應的傳輸速率也較低,適合傳感器網絡這類數據量不會很大,但節點規模可能非常大的網絡應用。
目前ZigBee網絡節點大多數是基于TI的CC系列芯片和Ztack協議棧,這類基于C語言的協議棧往往存在著開發困難、編程復雜等缺點,無法幫助開發人員迅速地搭建基于ZigBee網絡的傳感器網絡應用[2]。
本文提出了一種基于SNAP OS和UART的異系統通信架構,SNAP OS本身就是兼容ZigBee通信標準的嵌入式操作系統,能夠很好地實現多跳和多點通信。在此基礎上,利用工作在透傳模式下的SNAP OS,提供給用戶一組基于串口的通信協議,使得用戶只需懂得簡單的串口編程,即能實現多點對多點的傳感器網絡應用的設計,極大地提升了傳感器網絡的開發效率。
1 SNAP OS及相關硬件的介紹
SNAP OS是由美國Synapse公司發布的一套能運行在各類計算平臺上的網絡操作系統,該系統的總體框圖如圖1所示。SNAP OS能夠兼容目前所有主流的通信協議,并進行異系統之間的數據路由傳輸。而該操作系統的另一大特色就是其專門為嵌入式平臺所開發的SNAPpy虛擬機系統,能夠利用一種與python語法兼容的腳本語言進行編程,并且由于其解釋執行的特點,能夠在系統運行的狀態下進行應用編程,極大地提高了系統開發的靈活度和便利度。
由于SNPA OS目前還不是開源的操作系統,因此它只能運行在由Synapse公司或其合作伙伴所開發的硬件平臺上。本文在設計異系統多點通信架構時,選用了目前國內唯一能獲得的ZIC2410模塊作為系統的主要無線通信模塊。該無線通信模塊結構如圖2所示。模塊的整體尺寸十分小巧,并且已經集成了射頻收發的硬件電路和PCB印刷天線及射頻端子,對于需要二次開發的用戶而言,只需設計底板即可,大大提高了系統的開發效率。而ZIC2410芯片則是一塊以8051作為內核、集成了基帶Modem收發器的SoC,同時它還擁有豐富的常規外設,基本能滿足用戶日常開發所需。
2 ZigBee網絡節點硬件設計
本文所采用的ZIC2410模塊的最小系統如圖3所示,其在運行SNPA OS之后,原生支持ZigBee網絡的多跳、節點中繼等特性,并且由于其利用SNAPpy編程語言進行開發,因此用戶只需幾行代碼即能使其運行在串口透傳模式下,并實現多點通信的功能。但由于ZIC2410采用的是8051內核,其運行效率并不是很高,當工作在透傳模式下時,操作系統的大部分運行時間將被透傳任務所占據,系統對于需要高運算負荷任務的處理效率大大降低[3]。
為了使本文所設計的異系統多點通信架構能夠滿足各種不同應用場合對于系統性能的要求,設計的ZigBee節點采用雙處理器的架構,由ZIC2410芯片專門負責無線數據的收發和ZigBee協議棧的實現,而利用基于Cortex M3內核的LPC1754芯片來負責高運算負荷的任務,并利用其極為豐富的外設,極大地豐富了ZigBee節點的應用場合。
本文所設計的雙處理器ZigBee節點系統框圖如圖4所示,LPC1754和ZIC2410芯片采用串口進行通信。同時,利用LPC172自帶的全速USB2.0接口和UART接口,拓展了USB CDC總線和485總線接口[4]。
3.2 通信數據包格式
用戶平面的通信數據包如圖6所示,其中接收者地址和發送者地址可以是承載用戶平面通信的ZigBee節點在系統中的節點編號,也可以是用戶平面本身所指定的一些地址信息。由于UART平面和ZigBee平面將廣播所收到的所有用戶平面數據包,對于用戶平面來說完全透明,因此該地址無需和ZigBee節點地址一一對應。此外,該數據包格式還對鏈路層的信息進行了額外的打包過程,將鏈路層信息中每7 B數據的最高位提取出來,形成一個新的字節,放在這7 B的末尾,并將這8 B的最高位置0。這樣做的好處是可以把幀起始符和結束符的最高位置1,從而使得最終在無線鏈路上傳輸的數據除了起始符和結束符以外的所有字節最高位都是0,不會造成幀起始符和結束符的誤判[6-7]。
3.3 通信協議
首先,位于UART平面的LPC1754將工作在透明傳輸或ACK傳輸模式下。
(1)透明傳輸:LPC1754不負責任何對于3.2中通信數據包的校驗,只負責將從用戶平面收到的數據轉發出去,所有數據包的解析與校驗均在用戶平面完成。其優點是用戶平面直接透明傳輸,編程和協議均較為簡單。而缺點則是由于無線鏈路的不確定性,使得系統整體的通信速率較低,可能會出現較大的重傳概率。
(2)ACK傳輸模式:LPC1754負責用戶平面下發的數據包的校驗和重傳確認。具體實現方式如下:LPC1754不再透明傳輸從用戶層傳下來的數據,而是將用戶層傳輸過來的數據存儲在緩存中,并負責對用戶平面的數據進行校驗,如果校驗不通過,則直接向用戶平面發起重傳請求。其優點是有效降低了通信的延時,并提高了通信鏈路的可靠性;而缺點則是編程較為復雜,節點模塊的程序需要根據具體應用調整參數。
其次,位于ZigBee平面的ZIC2410也將工作在兩種模式下。
(1)串口廣播模式:ZIC2410將收到的數據廣播給某一分組的所有節點。這樣做的優點是ZIC2410將收到的數據包直接廣播出去,無需與UART平面有ACK過程,簡化了UART平面編程的難度并降低了運行負荷。而這樣做的缺點也十分明顯,由于ZIC2410將數據直接廣播出去,因此當用戶平面下發的數據較大的情況下,無線鏈路上所承載的數據負荷將成倍增加,從而造成了ZigBee平面通信效率的下降。
(2)串口點對點模式:UART平面在將數據下發給ZigBee平面之前,先對ZIC2410下一次無線傳輸的接收節點的地址進行配置,ZIC2410將根據這一地址來進行后續數據包的點對點無線傳輸。這樣做的優點十分明顯,由于ZIC2410工作在點對點模式下,因此無線鏈路傳輸的效率和可靠性將大大增加,但由此也會造成UART平面的傳輸效率降低,需要額外的REQ-ACK過程。
本文所提出的基于ZigBee和UART的異系統多點通信架構很好地利用了ZigBee協議支持網狀拓撲、多點、節點中繼的特點以及UART編程簡單的特點,為用戶搭建物聯網和無線傳感器網絡提供了極大的便利。同時,通過不同工作模式的結合和靈活切換,能夠滿足各類不同的應用場合,有望成為下一代物聯網的主流通信平臺。
參考文獻
[1] 胡杰.淺談ZigBee無線通信網絡與物聯網之間互補式發展[J].科技風,2012(01):25.
[2] 王萌.基于ZigBee技術的智能養殖系統[J].科技風,2012(07):27-28.
[3] ZigBee聯盟.ZigBee技術引領無線數字新生活[J].電腦知識與技術,2006(9):29-34.
[4] 朱向慶,王建明.ZigBee協議網絡層的研究與實現[J].電子技術應用,2006,32(1):129-132.
[5] 夏恒星,馬維華.基于CC2430的無線傳感器網絡節點設計[J].電子技術應用,2007,31(5):45-47,54.
[6] 石繁榮,黃玉清,任珍文.基于ZigBee的多傳感器物聯網無線監測系統[J].電子技術應用,2013,34(3):96-99.
[7] 徐書芳,王金海,宮玉龍,等.基于ZigBee的智能家居控制系統的研究與設計[J].電子技術應用,2013,39(8):80-83.