文獻(xiàn)標(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)連接起來,進(jìn)行信息交換和通信,,以實(shí)現(xiàn)智能化識別,、定位、跟蹤,、監(jiān)控和管理的一種網(wǎng)絡(luò),。近些年,物聯(lián)網(wǎng)的概念總是和無線傳感器網(wǎng)絡(luò)的概念共同提出,。無線傳感器網(wǎng)絡(luò)由部署在監(jiān)測區(qū)域內(nèi)的大量微型傳感器節(jié)點(diǎn)組成,,通過無線通信方式形成一個網(wǎng)狀拓?fù)洌W(wǎng)絡(luò)中的節(jié)點(diǎn)能夠?qū)崿F(xiàn)路由功能,,實(shí)現(xiàn)信息多跳傳輸,。無線傳感器網(wǎng)絡(luò)將邏輯上的信息世界與客觀上的物理世界融合在一起,極大地延伸了人們的感知領(lǐng)域和范圍[1],。
目前對于傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的要求一般是結(jié)構(gòu)簡單,,成本低廉,能夠長時間地工作,。因此目前較為常見的解決方案一般會選用ZigBee協(xié)議作為傳感器網(wǎng)絡(luò)或是物聯(lián)網(wǎng)的通信協(xié)議,。ZigBee協(xié)議與傳統(tǒng)的WiFi、藍(lán)牙等通信協(xié)議相比,,擁有較低的功耗,,并能實(shí)現(xiàn)多跳傳輸?shù)墓δ埽鄳?yīng)的傳輸速率也較低,,適合傳感器網(wǎng)絡(luò)這類數(shù)據(jù)量不會很大,,但節(jié)點(diǎn)規(guī)模可能非常大的網(wǎng)絡(luò)應(yīng)用,。
目前ZigBee網(wǎng)絡(luò)節(jié)點(diǎn)大多數(shù)是基于TI的CC系列芯片和Ztack協(xié)議棧,,這類基于C語言的協(xié)議棧往往存在著開發(fā)困難、編程復(fù)雜等缺點(diǎn),,無法幫助開發(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),,能夠很好地實(shí)現(xiàn)多跳和多點(diǎn)通信,。在此基礎(chǔ)上,利用工作在透傳模式下的SNAP OS,提供給用戶一組基于串口的通信協(xié)議,,使得用戶只需懂得簡單的串口編程,,即能實(shí)現(xiàn)多點(diǎn)對多點(diǎn)的傳感器網(wǎng)絡(luò)應(yīng)用的設(shè)計,,極大地提升了傳感器網(wǎng)絡(luò)的開發(fā)效率,。
1 SNAP OS及相關(guān)硬件的介紹
SNAP OS是由美國Synapse公司發(fā)布的一套能運(yùn)行在各類計算平臺上的網(wǎng)絡(luò)操作系統(tǒng),該系統(tǒng)的總體框圖如圖1所示,。SNAP OS能夠兼容目前所有主流的通信協(xié)議,,并進(jìn)行異系統(tǒng)之間的數(shù)據(jù)路由傳輸。而該操作系統(tǒng)的另一大特色就是其專門為嵌入式平臺所開發(fā)的SNAPpy虛擬機(jī)系統(tǒng),,能夠利用一種與python語法兼容的腳本語言進(jìn)行編程,,并且由于其解釋執(zhí)行的特點(diǎn),能夠在系統(tǒng)運(yùn)行的狀態(tài)下進(jìn)行應(yīng)用編程,,極大地提高了系統(tǒng)開發(fā)的靈活度和便利度,。
由于SNPA OS目前還不是開源的操作系統(tǒng),因此它只能運(yùn)行在由Synapse公司或其合作伙伴所開發(fā)的硬件平臺上,。本文在設(shè)計異系統(tǒng)多點(diǎn)通信架構(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é)點(diǎn)硬件設(shè)計
本文所采用的ZIC2410模塊的最小系統(tǒng)如圖3所示,,其在運(yùn)行SNPA OS之后,原生支持ZigBee網(wǎng)絡(luò)的多跳,、節(jié)點(diǎn)中繼等特性,,并且由于其利用SNAPpy編程語言進(jìn)行開發(fā),因此用戶只需幾行代碼即能使其運(yùn)行在串口透傳模式下,,并實(shí)現(xiàn)多點(diǎn)通信的功能,。但由于ZIC2410采用的是8051內(nèi)核,其運(yùn)行效率并不是很高,,當(dāng)工作在透傳模式下時,,操作系統(tǒng)的大部分運(yùn)行時間將被透傳任務(wù)所占據(jù),系統(tǒng)對于需要高運(yùn)算負(fù)荷任務(wù)的處理效率大大降低[3]。
為了使本文所設(shè)計的異系統(tǒng)多點(diǎn)通信架構(gòu)能夠滿足各種不同應(yīng)用場合對于系統(tǒng)性能的要求,,設(shè)計的ZigBee節(jié)點(diǎn)采用雙處理器的架構(gòu),,由ZIC2410芯片專門負(fù)責(zé)無線數(shù)據(jù)的收發(fā)和ZigBee協(xié)議棧的實(shí)現(xiàn),而利用基于Cortex M3內(nèi)核的LPC1754芯片來負(fù)責(zé)高運(yùn)算負(fù)荷的任務(wù),,并利用其極為豐富的外設(shè),,極大地豐富了ZigBee節(jié)點(diǎn)的應(yīng)用場合。
本文所設(shè)計的雙處理器ZigBee節(jié)點(diǎn)系統(tǒng)框圖如圖4所示,,LPC1754和ZIC2410芯片采用串口進(jìn)行通信,。同時,利用LPC172自帶的全速USB2.0接口和UART接口,,拓展了USB CDC總線和485總線接口[4],。
3.2 通信數(shù)據(jù)包格式
用戶平面的通信數(shù)據(jù)包如圖6所示,其中接收者地址和發(fā)送者地址可以是承載用戶平面通信的ZigBee節(jié)點(diǎn)在系統(tǒng)中的節(jié)點(diǎn)編號,,也可以是用戶平面本身所指定的一些地址信息,。由于UART平面和ZigBee平面將廣播所收到的所有用戶平面數(shù)據(jù)包,對于用戶平面來說完全透明,,因此該地址無需和ZigBee節(jié)點(diǎn)地址一一對應(yīng),。此外,該數(shù)據(jù)包格式還對鏈路層的信息進(jìn)行了額外的打包過程,,將鏈路層信息中每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ù)包的校驗(yàn),,只負(fù)責(zé)將從用戶平面收到的數(shù)據(jù)轉(zhuǎn)發(fā)出去,所有數(shù)據(jù)包的解析與校驗(yàn)均在用戶平面完成,。其優(yōu)點(diǎn)是用戶平面直接透明傳輸,,編程和協(xié)議均較為簡單。而缺點(diǎn)則是由于無線鏈路的不確定性,,使得系統(tǒng)整體的通信速率較低,,可能會出現(xiàn)較大的重傳概率。
(2)ACK傳輸模式:LPC1754負(fù)責(zé)用戶平面下發(fā)的數(shù)據(jù)包的校驗(yàn)和重傳確認(rèn),。具體實(shí)現(xiàn)方式如下:LPC1754不再透明傳輸從用戶層傳下來的數(shù)據(jù),,而是將用戶層傳輸過來的數(shù)據(jù)存儲在緩存中,,并負(fù)責(zé)對用戶平面的數(shù)據(jù)進(jìn)行校驗(yàn),如果校驗(yàn)不通過,,則直接向用戶平面發(fā)起重傳請求,。其優(yōu)點(diǎn)是有效降低了通信的延時,并提高了通信鏈路的可靠性,;而缺點(diǎn)則是編程較為復(fù)雜,,節(jié)點(diǎn)模塊的程序需要根據(jù)具體應(yīng)用調(diào)整參數(shù)。
其次,,位于ZigBee平面的ZIC2410也將工作在兩種模式下,。
(1)串口廣播模式:ZIC2410將收到的數(shù)據(jù)廣播給某一分組的所有節(jié)點(diǎn),。這樣做的優(yōu)點(diǎn)是ZIC2410將收到的數(shù)據(jù)包直接廣播出去,,無需與UART平面有ACK過程,簡化了UART平面編程的難度并降低了運(yùn)行負(fù)荷,。而這樣做的缺點(diǎn)也十分明顯,,由于ZIC2410將數(shù)據(jù)直接廣播出去,因此當(dāng)用戶平面下發(fā)的數(shù)據(jù)較大的情況下,,無線鏈路上所承載的數(shù)據(jù)負(fù)荷將成倍增加,,從而造成了ZigBee平面通信效率的下降。
(2)串口點(diǎn)對點(diǎn)模式:UART平面在將數(shù)據(jù)下發(fā)給ZigBee平面之前,,先對ZIC2410下一次無線傳輸?shù)慕邮展?jié)點(diǎn)的地址進(jìn)行配置,,ZIC2410將根據(jù)這一地址來進(jìn)行后續(xù)數(shù)據(jù)包的點(diǎn)對點(diǎn)無線傳輸。這樣做的優(yōu)點(diǎn)十分明顯,,由于ZIC2410工作在點(diǎn)對點(diǎn)模式下,,因此無線鏈路傳輸?shù)男屎涂煽啃詫⒋蟠笤黾樱纱艘矔斐蒛ART平面的傳輸效率降低,,需要額外的REQ-ACK過程,。
本文所提出的基于ZigBee和UART的異系統(tǒng)多點(diǎn)通信架構(gòu)很好地利用了ZigBee協(xié)議支持網(wǎng)狀拓?fù)洹⒍帱c(diǎn),、節(jié)點(diǎn)中繼的特點(diǎn)以及UART編程簡單的特點(diǎn),,為用戶搭建物聯(lián)網(wǎng)和無線傳感器網(wǎng)絡(luò)提供了極大的便利。同時,,通過不同工作模式的結(jié)合和靈活切換,,能夠滿足各類不同的應(yīng)用場合,有望成為下一代物聯(lián)網(wǎng)的主流通信平臺,。
參考文獻(xiàn)
[1] 胡杰.淺談ZigBee無線通信網(wǎng)絡(luò)與物聯(lián)網(wǎng)之間互補(bǔ)式發(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ò)層的研究與實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,,2006,32(1):129-132.
[5] 夏恒星,,馬維華.基于CC2430的無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)設(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.