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