1. 程式人生 > >基於STM32F107+DP83848嵌入式zigbee閘道器設計

基於STM32F107+DP83848嵌入式zigbee閘道器設計

1. 引言

Wireless Sensor Network,WSN(無線感測器網路)是指由大量成本相對低廉的,具有感知能力、計算能力、實時通訊能力的感測器節點組成的嵌入式無線網路,是當前眾多領域的研究和應用熱點。建立在IEEE 802.15.4(LR_WPAN,低速率無線個人區域網)上的Zigbee協議是應用於無線監測與控制的全球性無線通訊標準,是無線感測器網路組網的首選技術之一。

2. 系統設計

Zigbee 閘道器在整個系統中是建立在傳輸層上的協議轉換器,首先,需要和伺服器建立通訊連線。其實,需要維護zigbee網路中的終端裝置。

                                                         系統整體框架

  • 閘道器和伺服器連線硬體上採用乙太網(有線)和WiFi(無線)兩種方式。

    Zigbee節點的通訊能力(資料速率僅為250Kbps),為了減少協調器自身的規則量,採用集成了Ethernet介面的STM32F107+DP83848為乙太網通訊提高可靠的硬體保證。嵌入式開發採用RT-thread嵌入式作業系統,TCP/IP協議棧Lwip,實現了zigbee和TCP/IP協議的雙向透明資料轉換。

   閘道器具有有限網路和無線網路的自動切換。實現閘道器登陸、資料同步、查詢裝置、新增裝置、裝置上報、刪除裝置、控制裝置等操作。

  •  閘道器和終端裝置的連線採用Zigbee網路,整個網路使用網狀結構(Mash結構),裝置型別分為3類,分別是協調器(Coordinator),路由器(Router),終端(EndDevice)。在閘道器端的角色為協調器,負責整個zigbee網路的維護。

協調器上的操作都有:

  1. 開啟組網 (協調器上電後,網路建立成功,不傳送網路資訊廣播,也不允許任何節點加入網路,只有當連按3次協調器的按鍵,或者上位機發送准許入網的指令,這時候協調器才傳送網路資訊廣播,准許裝置加入網路)
  2. 控制是否允許節點進入網路。(這裡有個時間窗,時間窗內所有的節點都允許正常進入的,並且給他們傳送入網成功的ACK,此時代表登記,配置成功。)
  3. 接收子裝置心跳並且響應心跳,判斷節點是否在網路中。
  4. 儲存網路的狀態。(網路狀態包括子裝置的廠地址,短地址,的對映關係等,同時在上位機上也儲存了裝置的廠地址短地址和LQI等一些資訊。)
  5. 記錄裝置狀態。(記錄燈,開關,窗簾,遙控器等各種家電的狀態。這些狀態不在協調器的儲存,協調器獲取到這些訊息後上傳給上位機。)
  6. 控制整個網路恢復出廠設定。(長按按鍵9S,此時協調器會廣播恢復出廠設定指令,廣播若干次,然後協調器進入網路恢復出廠設定的狀態,收到廣播資訊的節點也進入)
  7. 踢出某個節點。(協調器踢出某個節點,那麼這個節點會退出網路,並且協調器會清除這個節點的網路資訊)
  8. 傳輸資料給上位機。(將裝置的狀態,網路地址,鏈路質量等一些資訊通過串列埠傳送的上位機,同時接收上位機的控制指令,然後通過射頻傳送給目的節點,達到操作的目的。)

2.1 協調器首次上電流程圖

​​​​​​​2.1  協調器2次上電和新增新裝置流程圖

​​​​​​​2.3 路由和終端的功能圖

2.4 ​​​​​​​路由和終端掉電恢復圖

​​​​​​​2.5 網路整體流程

3.   民間開發板

4. 官方參考

方案一:ZigBee Lighting Gateway SW

http://processors.wiki.ti.com/index.php/ZigBee_Lighting_Gateway_SW

http://processors.wiki.ti.com/index.php/ZigBee_Lighting_Gateway

原始碼地址:

https://git.ti.com/iot-gateway/lighting-gateway

方案二:Z-STACK-LINUX-GATEWAY

原始碼下載:

http://www.ti.com.cn/tool/cn/z-stack-archive

相關內容可以檢視安裝包中的文件

MIPS平臺原始碼下載:

https://github.com/Torchwoods/Ti_Z-Stack_Linux_gateway.git

方案三:znp-host-framework

原始碼地址:

http://git.ti.com/znp-host-framework/znp-host-framework

可以檢視原始碼實現