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