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