新聞中心

        EEPW首頁 > 手機與無線通信 > 設計應用 > ZigBee空中下載技術研究及其優化設計

        ZigBee空中下載技術研究及其優化設計

        作者: 時間:2012-12-05 來源:網絡 收藏

        摘要:首先介紹基于協議的OTA系統,并在CC2530F256硬件平臺上進行驗證。在Z-Staek協議棧中,設計出一種(Over the Air,OTA)更新方式,并通過實驗測試,與原有的方式進行了比較分析。實驗結果表明,方式可以大大減少網絡的更新流量,從而提高節點的
        關鍵詞:

        引言
        本文移植并驗證了一種基于協議的(OTA)技術,其分發協議支持點對多傳輸更新功能,多跳網絡的代碼分發功能由路由協議支撐。在Z-Stack協議棧下,僅僅支持功能,并不理想。針對此問題,設計出一種高效的鏡像頁請求功能,能夠提高點對多的傳輸更新效率,并減少網絡流量。

        1 OTA概述
        ZigBee協議規范使用了IEEE 802.15.4定義的物理層(PHY)和媒體介質訪問層(MAC),并在此基礎上定義了網絡層(NWK)和應用層(APL)。針對重編程技術的需求,ZigBee聯盟在原有協議的框架上,提出了一種OTA規范,其作為一個系統可選的功能模塊。OTA系統的結構示意圖和服務器與客戶端之間的數據交互過程略——編者注。

        2 OTA系統設計
        本文的OTA系統基于TI公司的ZigBee SoC芯片CC2530F256設計,包括硬件與軟件的設計。
        2.1 硬件系統
        CC2530F256內部集成一個增強型8051單片機,擁有8 KB SRAM和256 KB內部Flash存儲器。內部Flash主要用來保存程序代碼和常量數據。由于傳統8051代碼存儲空間尋址范圍只有64 KB,CC2530把內部256 KBFlash分成8個bank,每一個bank大小是32 KB,通過寄存器FMA P.MAP[2:0]選擇不同的bank映射到代碼存儲空間,解決了尋址空間受限的問題。
        對于OTA客戶端,啟動代碼位于bank0的0x0000~0x0800地址區域,大小為2 KB。其余的254 KB的Flash空間,用來存儲當前固件和其他信息。值得注意的是,0x0888~0x088B區域存放了CRC校驗信息,0x088C~0x0897區域存放了PREAMBLE,包括鏡像大小、制造商ID、鏡像類型和鏡像版本號信息。另外,bank7最后的14 KB空間(0x7C800~0x7FFFF)用作非易失性(None Volatile,NV)變量區(12 KB)和特定信息保留區(2 KB)。
        OTA系統升級方案有兩種,分別是片內Flash升級和片外Flash升級。考慮到一般程序固件大小都超過128KB和以后程序功能升級的擴展性,本文采用片外Flash的方案。采用的片外Flash(M25PE20)容量為256 KB,通過SPI總線與CC2530之間傳輸數據。
        2.2 軟件系統
        對于基于任務事件輪詢機制的Z-Stack工程,默認沒有添加OTA功能。如果節點需要開啟OTA功能,首先需要燒寫OTA的啟動代碼。當節點完成鏡像接收之后,對新鏡像進行CRC校驗,并清空當前鏡像的CRC信息,然后重啟。當節點重啟后,首先跳轉到啟動代碼的地址,開始執行如圖1所示的工作流程。

        本文引用地址:http://www.104case.com/article/153699.htm

        a.JPG



        3 OTA的鏡像頁請求實現
        根據ZigBee OTA的規范,OTA客戶端向OTA服務器請求鏡像的方式有兩種,分別是鏡像塊請求與鏡像頁請求。鏡像塊請求的OTA更新方式效率較低。
        本文根據ZigBee OTA的規范,在Z-Stack協議棧上設計出鏡像頁請求的更新方式。頁請求命令與塊請求命令類似,在數據幀當中附加了鏡像頁大小與響應間隔信息。當OTA服務器收到一次頁請求后,在一定時間間隔內多次向節點發送塊響應,免去了多次塊請求。其中,塊響應的次數由鏡像頁大小決定,時間間隔由響應間隔設定。正因為請求命令的銳減,能夠大大減輕整個網絡流量的負擔,并提高節點的傳輸更新效率。


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 晋中市| 大连市| 潮安县| 沁阳市| 肥东县| 克拉玛依市| 康马县| 江阴市| 佛山市| 江都市| 新野县| 威远县| 集贤县| 云霄县| 垦利县| 济阳县| 涟水县| 塘沽区| 怀柔区| 易门县| 灵川县| 新泰市| 东乡县| 凉城县| 玉屏| 抚州市| 陵川县| 开封市| 福清市| 岫岩| 即墨市| 陆良县| 焉耆| 望奎县| 东方市| 水富县| 成安县| 镇平县| 六枝特区| 延安市| 榆林市|