ZigBee空中下載技術(shù)研究及其優(yōu)化設計
摘要:首先介紹基于ZigBee協(xié)議的OTA系統,并在CC2530F256硬件平臺上進(jìn)行驗證。在Z-Staek協(xié)議棧中,設計出一種鏡像頁(yè)請求的空中下載(Over the Air,OTA)更新方式,并通過(guò)實(shí)驗測試,與原有的鏡像塊請求方式進(jìn)行了比較分析。實(shí)驗結果表明,鏡像頁(yè)請求方式可以大大減少網(wǎng)絡(luò )的更新流量,從而提高節點(diǎn)的更新效率。
關(guān)鍵詞:無(wú)線(xiàn)傳感網(wǎng)絡(luò );ZigBee;空中下載;鏡像塊請求;鏡像頁(yè)請求;更新效率
引言
本文移植并驗證了一種基于ZigBee協(xié)議的空中下載(OTA)技術(shù),其分發(fā)協(xié)議支持點(diǎn)對多傳輸更新功能,多跳網(wǎng)絡(luò )的代碼分發(fā)功能由路由協(xié)議支撐。在Z-Stack協(xié)議棧下,僅僅支持鏡像塊請求功能,更新效率并不理想。針對此問(wèn)題,設計出一種高效的鏡像頁(yè)請求功能,能夠提高點(diǎn)對多的傳輸更新效率,并減少網(wǎng)絡(luò )流量。
1 OTA概述
ZigBee協(xié)議規范使用了IEEE 802.15.4定義的物理層(PHY)和媒體介質(zhì)訪(fǎng)問(wèn)層(MAC),并在此基礎上定義了網(wǎng)絡(luò )層(NWK)和應用層(APL)。針對無(wú)線(xiàn)傳感網(wǎng)絡(luò )重編程技術(shù)的需求,ZigBee聯(lián)盟在原有協(xié)議的框架上,提出了一種OTA規范,其作為一個(gè)系統可選的功能模塊。OTA系統的結構示意圖和服務(wù)器與客戶(hù)端之間的數據交互過(guò)程略——編者注。
2 OTA系統設計
本文的OTA系統基于TI公司的ZigBee SoC芯片CC2530F256設計,包括硬件與軟件的設計。
2.1 硬件系統
CC2530F256內部集成一個(gè)增強型8051單片機,擁有8 KB SRAM和256 KB內部Flash存儲器。內部Flash主要用來(lái)保存程序代碼和常量數據。由于傳統8051代碼存儲空間尋址范圍只有64 KB,CC2530把內部256 KBFlash分成8個(gè)bank,每一個(gè)bank大小是32 KB,通過(guò)寄存器FMA P.MAP[2:0]選擇不同的bank映射到代碼存儲空間,解決了尋址空間受限的問(wèn)題。
對于OTA客戶(hù)端,啟動(dòng)代碼位于bank0的0x0000~0x0800地址區域,大小為2 KB。其余的254 KB的Flash空間,用來(lái)存儲當前固件和其他信息。值得注意的是,0x0888~0x088B區域存放了CRC校驗信息,0x088C~0x0897區域存放了PREAMBLE,包括鏡像大小、制造商ID、鏡像類(lèi)型和鏡像版本號信息。另外,bank7最后的14 KB空間(0x7C800~0x7FFFF)用作非易失性(None Volatile,NV)變量區(12 KB)和特定信息保留區(2 KB)。
OTA系統升級方案有兩種,分別是片內Flash升級和片外Flash升級??紤]到一般程序固件大小都超過(guò)128KB和以后程序功能升級的擴展性,本文采用片外Flash的方案。采用的片外Flash(M25PE20)容量為256 KB,通過(guò)SPI總線(xiàn)與CC2530之間傳輸數據。
2.2 軟件系統
對于基于任務(wù)事件輪詢(xún)機制的Z-Stack工程,默認沒(méi)有添加OTA功能。如果節點(diǎn)需要開(kāi)啟OTA功能,首先需要燒寫(xiě)OTA的啟動(dòng)代碼。當節點(diǎn)完成鏡像接收之后,對新鏡像進(jìn)行CRC校驗,并清空當前鏡像的CRC信息,然后重啟。當節點(diǎn)重啟后,首先跳轉到啟動(dòng)代碼的地址,開(kāi)始執行如圖1所示的工作流程。
3 OTA的鏡像頁(yè)請求實(shí)現
根據ZigBee OTA的規范,OTA客戶(hù)端向OTA服務(wù)器請求鏡像的方式有兩種,分別是鏡像塊請求與鏡像頁(yè)請求。鏡像塊請求的OTA更新方式效率較低。
本文根據ZigBee OTA的規范,在Z-Stack協(xié)議棧上設計出鏡像頁(yè)請求的更新方式。頁(yè)請求命令與塊請求命令類(lèi)似,在數據幀當中附加了鏡像頁(yè)大小與響應間隔信息。當OTA服務(wù)器收到一次頁(yè)請求后,在一定時(shí)間間隔內多次向節點(diǎn)發(fā)送塊響應,免去了多次塊請求。其中,塊響應的次數由鏡像頁(yè)大小決定,時(shí)間間隔由響應間隔設定。正因為請求命令的銳減,能夠大大減輕整個(gè)網(wǎng)絡(luò )流量的負擔,并提高節點(diǎn)的傳輸更新效率。
評論