【雲隱】TI CC2530 Zigbee協議棧開發的七大深坑,歡迎來跨~
寫作初衷
寫這篇文章是因為最近碰到幾家客戶公司,都自己使用了Zigbee技術做了相關產品,有的是協議棧自己開發的,有的是用的第三方提供的模組,但是在專案大規模應用時出現了各種各樣頭疼的問題,無從下手。帶著這樣的問題來諮詢希望從我們這個得到解決方法,我們也感同身受,因為曾經的我們也是這樣的小白鼠,滿滿的苦……
適用前提
本文所有問題是僅針對TI的 CC2530F256晶片,以及TI所提供的半開源Zstack協議棧、ZHA協議棧。
其他Zigbee晶片及協議棧方案,我們沒有大規模應用,所以不做評述。
給大家先上眼藥
首先明明白白的告訴大家,協議棧在真實專案應用中,是純在很多問題的,這些問題都是需要通過優化協議棧的邏輯來解決的。
如果你們只是做了應用層的功能開發,就想上專案應用,那麼很不幸,你會為此付出遠超預期的代價。要做Zigbee產品開發,請一定有一顆敬畏之心,深度理解協議棧的運轉原理,修改運轉機制,以符合各自的專案需要。
給大家一個安慰
上述所說協議棧的問題並不是真的說協議棧有嚴重的BUG,而是協議棧的設計之初,官方是有官方的設計邏輯的,並不是針對我們的專案,拿來即用的。很多業務邏輯跟我們的真實專案是有區別的,所以我們是一定要修改這些業務邏輯的。
來一個忠告
協議棧的優化開發非短時間可以考慮全面的,很多時候,實驗室內是不出問題的。一定要準備好打長期的硬仗,千萬不要急於求成,兵家大忌!!
正文
好了廢話不多說,今天針對Zigbee技術,我們只講乾貨,不講理論,希望這篇文章能夠為大家稍稍解答一些疑惑,以過來人身份,來為同行們指明一下開發方向。
坑一:Zigbee硬體模組選型
1、無線模組如果是自研的,那麼一定要做好天線部分的效能測試。天線設計的好壞,對專案影響巨大。
2、如果是選用第三方模組,儘量選擇通過認證的模組,以通過FCC認證為佳,其次能夠提供模組天線測試報告(發射的波形圖)。目前市場上,zigbee模組很多,但是能真正做好的也不多,3~5家而已,這裡就不打廣告了。
坑二:Zigbee網路抓包工具的使用
Ti 提供的Zigbee抓包工具是Packet Sniffer的使用還是太弱了,不夠人性化。
這裡推薦一下比較強大的抓包工具 ubiqua。
我們開發過程中碰到所有問題一定要抓取資料包,通過資料包來解釋現象,單純的猜測很多時候解決不了問題。
下載連結:https://www.ubilogix.com/ubiqua/
坑三:Zigbee的2.4G同頻干擾問題
Zigbee使用的是2.4Ghz頻段,與wifi的2.4G是屬於同一個頻段,那麼自然是會存在一定的干擾。
1、解決這個問題我們可以通過對Zigbee的16個頻道、和wifi的頻道做一下對比,儘量避開主要的干擾頻道,選擇幾個可用通道即可。
推薦文章:http://blog.sina.com.cn/s/blog_595296f50102vkmf.html
2、解決同一個通道的Zigbee網路之間也會存在同頻干擾的問題
專案安裝時,需要在實施過程中,儘量避免同通道網路裝置安裝距離太近,以避免資料頻繁的碰撞。關注每臺閘道器內的“協調器”所建立的網路的Channel,業務機制上要注意“協調器通道搜尋及網路建立的機制”
坑四:Zigbee節點裝置掉線問題
Zigbee掉線問題是有多種不同的現象的,大家一定要注意區別分析。
1、Zigbee節點掉線,一段時間無法通訊,後又自動恢復了連線
調查:可分析一下整個zigbee網路構成,協調器、路由器是可以起到網路擴充能力的,那麼掉線的終端裝置 與 父節點裝置之間是否具體過長?
2、Zigbee節點掉線,需要開放網路才能重新進入
調查:該情況下是Zigbee節點觸發了異常機制,做了恢復出廠設定處理,屬於協議棧的保護機制,那麼這個機制要針對性的去做修改。
坑五:Zigbee節點裝置竄網問題
如果碰到Zigbee節點裝置原先執行在網路A 內,一段時間後突然發現裝置進入了網路B 內。
調查:該問題是多個原因組成的
可能原因1:Zigbee節點裝置恢復了出廠設定(異常狀態)
可能原因2:網路B中存在 持續開放網路的許可權 / 網路重連的許可權
可能原因3:Zigbee網路相關配置引數沒有做Flash儲存,掉電等異常情況會導致丟失
……
坑六:Zigbee網路內路由裝置和終端裝置的分配問題
Zigbee網路內三種裝置型別,Zigbee協調器、路由節點、終端節點。很多時間大家無法決斷應該如何來分配節點裝置的型別。
推薦:https://blog.csdn.net/u012912039/article/details/52250253
有一點是沒錯的,路由節點承擔網路內的穩定鏈路的工作,所以當路由節點過多時,會出現網路路徑經常更新的情況,這就是網路最優路徑演算法作怪,會導致資料延遲。
我們的建議:
A、強供電並且穩定分佈的裝置可以作為路由節點
B、電池類低功耗裝置必須設計作為終端節點
C、根據網路情況,小範圍大密度佈設時,充分計算節點數量,控制路由節點的量
D、大範圍低密度佈設時,強電類裝置儘可能多的設定為路由節點
坑七:測試不嚴謹會隱藏很多問題
注意這幾個Zigbee開發中的測試項(裝置數自然越多越好)
1、實驗室內要測試:單臺閘道器 配 100臺以上節點裝置(路由+終端)的穩定性測試,至少1周
2、實驗室內要測試:同通道下,10臺閘道器,每臺閘道器下配5~10個節點裝置(路由+終端)的穩定性測試,至少1周
3、實驗室內要測試:網路的斷電恢復能力
A、整個網路裝置斷電,重新上電,何時能夠恢復?
B、網路內協調器斷電,重新上電,何時能夠恢復?
C、網路內終端節點斷電,重新上電,何時能夠恢復?
D、網路內路由節點斷電,重新上電,何時能夠恢復?
E、網路內隨機部分路由節點、部分終端節點斷電,重新上電,何時能夠恢復?
4、測試網路內,節點裝置處於臨界通訊點時的異常狀態(db較差的情況,測試難度較高)
以上是暫時回憶到的,我們在協議棧開發過程中所碰到的這些問題,都是真實技術研發過程中血的教訓。
如果你們在實驗室內碰到了並解決了,那麼產品才真正能放心的通過一兩個實踐專案來做現場測試。
————————————————————————————————————————————————————————
雲隱科技是一家專注物聯網領域,基於無線Wifi、Zigbee技術對外提供智慧硬體產品級解決方案的公司,我們的研發產品目前在酒店、公寓及家居中都有大規模應用,穩定性有保障。
選擇雲隱,選擇的是一份控制專案風險的保障,雲隱人始終堅持不忘初心,努力做好產品,技術不斷的迭代更新,不斷的增強我們的技術優勢。
雲隱Zigbee相關業務合作方式:
一、Zigbee模組銷售(內含我司ZHA韌體),客戶可直接應用於專案中,按訂單採購報價
二、韌體定製服務,可根據客戶產品需求提供韌體定製,並提供生產用韌體,一次性收費
三、Zigbee成品銷售,我司有成熟智慧閘道器及Zigbee節點裝置,客戶可免去產品端研發投入,直接做雲端協議對接即可複用
相關文章
- CC2530 ZigBee協議棧 學習心得協議
- TI的TCP/IP協議棧--NDK .TCP協議
- 【無線通訊篇 | Zstack協議棧】CC2530 Zigbee Zstack協議棧組網專案及詳細講解篇協議
- ZigBee協議棧Zstack介紹協議
- [ZigBee] 15、Zigbee協議棧應用(一)——Zigbee協議棧介紹及簡單例子(長文,OSAL及Zigbee入門知識)...協議單例
- zigbee協議棧OSAL執行原理-----個人理解協議
- ZigBee ZStack 協議棧學習--架構分析篇協議架構
- Zigbee學習(一)之新建Zstack協議棧工程協議
- Vue最受歡迎的七大跨端框架,你都用過哪幾個?Vue跨端框架
- zigbee協議的缺點 zigbee的主要應用領域協議
- PHP開發內部規範,歡迎提出優化建議PHP優化
- zstack協議棧協議
- 最受歡迎的App開發工具推薦APP
- 1、zstack協議棧協議
- 歡迎來到HadoopHadoop
- ZigBee(CC2530)(02)開發平臺的搭建-工程設定-下載模擬除錯除錯
- 歡迎來到devdede的空間!dev
- 最近自己開發了個人部落格站,歡迎大家來看看
- 【Zigbee精華教程02】一圖讀懂ZStack協議棧的核心思想與工作機理協議
- iOS開發- tableView的協議iOSView協議
- 歡迎來到 AdonisJS!JS
- 最受歡迎 Linux 發行版,來看看都有誰?Linux
- Zstack協議棧結構的初步解析協議
- [騰訊-微保內推] 深圳急需 Go 開發工程師~ 歡迎來鵝廠~Go工程師
- 歡迎來到ShuipFCMS官方小組UI
- 歡迎來到HTML5.2時代!HTML
- 受歡迎的無程式碼開發平臺有哪些?
- 來說說目前受歡迎的10個Python開源框架Python框架
- 【Zigbee技術入門教程-02】一圖讀懂ZStack協議棧的核心思想與工作機理協議
- 微信開發介面API協議API協議
- [計算機網路]協議棧計算機網路協議
- 歡迎來撩 | 掘金翻譯計劃
- 番茄工作法?歡迎來問Staffan
- 從GitHub中整理出來的15個最受歡迎的Python開源框架,你喜歡哪個GithubPython框架
- SOAP協議棧是令人尷尬的失敗?協議
- 遊戲開發—協議設計遊戲開發協議
- MG--Swift面向協議開發Swift協議
- 年度最受歡迎的開源CHROME外掛Chrome