CC2652R性能真強大,芯片用的是Rev E版,配合SDK 3.10,3.20和3.30用。
最開始是在SDK3.10上面開發的,基本功能實作后,更新到SDK3.20。
SDK3.20存在以下幾個bug
1,TC Link Key超過112個后,協調器會崩潰,導致原因是SDK3.20的NV RAM只能使用2個扇區FLASH
2,如果目標設備是基于silabs的,CC2652對其發帶APS Ack請求的命令,silabs的zigbee節點先回復Response或其它應用層報文,再回復ASP Ack。CC2652會誤判APS Ack超時,而且這種誤判只有在多級路由的情況下出現。
3,Group表在NV RAM中無法正確保存,這個bug TI官方已經給了補丁。
SDK3.30解決了bug1和bug2,但是又帶出新的bug。
1,SDK 3.20以前版本,Associate List和TC Link Key Table在NV RAM中的保存地址,各自獨立占了一個NV RAM的分塊,也就是說每條記錄都是獨占一個NV記錄條目。但是可能是TI的協議堆疊團隊太粗心,這兩個表在store和restore的時候會出幺蛾子,我在E2E給出了解決辦法。
2,Group表不能保存NV RAM的問題,是在他們的SDK 3.30已經發版的情況下,我給他們找到的,所以SDK3.30繼續使用蛋疼的補丁方案。
3,決議ZCL Config Report命令時,bool型的資料占用0位元組的欄位,但是TI的代碼鬼使神差的跳了一個位元組,TI的所有版本協議堆疊都有這個bug,已經出現N年了,TI讓開發者在代碼中自己修復。關鍵是TMD這個錯誤都好多年,都沒被人發現。
---------------------------------------------------------------------------------------------------------------------------------------------
說說我們的萬能網關,首先要支持zigbee 3.0協議。TI的原生協議堆疊,收發命令時居然不支持帶manufacture code的命令,之前在對接鯨魚座和小米的外設時發現的,我自己改了zcl的代碼,可以完美支持帶manufacture code的命令。
其次是zigbee 3.0的入網管理,按照我自己的理解,zigbee 3.0有3個APS層加密的Key,分別是Default Key,TC Link Key(或者叫Verified Key),以及install code key。
設備入網時,協調器(又叫trust center)向入網設備發送NWK Key,在zigbee HA中,收到了NWK Key就算入網。在zigbee 3.0中,又增加了Verify Key這個程序,在Verify key時獲取一個唯一的TC Link Key,才算真正入網。TC Link Key可以算作zigbee 3.0的靈魂。
TC Link Key有幾個用處:1,如果以后NWK Key再次發生變化,協調器會使用TC Link Key來加密NWK Key,傳給目標設備。2,TC Link Key可以用于APS層加密,與NWK Key不同的是,TC Link Key只有協調器和目標節點知道,用來加密一些私密的訊息,如OTA升級的資料包等。
uj5u.com熱心網友回復:
cc2530F256請問是否也支持zigbee 3.0么?uj5u.com熱心網友回復:
肯定支持啊,就和北汽212吉普裝ETC一個性質啊
uj5u.com熱心網友回復:
大神,可以分享你的改動,讓我學習一下嗎,請添加:微信:cenjiu999轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/50455.html
標籤:無線
上一篇:arduino報警系統設計
