組建SMAC協議構架的ZigBee星形網絡
Freescale公司提供足夠的軟件支持MC13192硬件,SMAC是MC13192射頻模塊產品隨機附帶的軟件協議包,用于簡單的個人無線連接。SMAC協議包源程序是C語言,該協議包可以應用在基于MC13192集成電路的RF收發器中。協議包包含一個SMAC應用模版以及幾個應用示例程序(Wireless UART、Packet Error Rate等),可以直接應用于Freescale公司的2.4 GHz無線收發器*估板(MC13192EVB)。SMAC協議包雖是建立于HCS08系列的MCU和其串行接口SPI組成的硬件電路,但是具有很好的可移植性,能夠移植到大多數處理器內核中使用。
3.2 軟件設計構架
當MC13192射頻模塊搭配了適合的MCU時,用戶首先要在SMAC協議包的基礎上弄明白收發器各個工作狀態的基本特征,以及各個工作狀態之間的轉換機制。然后更改SMAC協議包中硬件接口部分的程序,在主程序中調用相應功能服務函數進行組合。整個SMAC協議構架采用狀態轉換的思想,清楚地將MC13192收發器的休眠、睡眠、空閑、發送、接收等狀態抽象并分解出來,收發器對接收到數據的有效信息的相應字段進行判斷之后,依據協議改變收發器的工作狀態。
SMAC協議包是不包含ZigBee規范的網絡層的,也就是說該協議包中不具有組網通信、節點自主加入的功能程序,使用SMAC協議包只能夠實現無線模塊之間進行無目的的廣播方式的無線通信。要使用MC13192收發器組建一個有效的無線傳感器網絡,并且能夠與其他的ZigBee產品相兼容,軟件設計必須嚴格遵守IEEE 802.15.4協議,在SMAC協議包構架的基礎上進一步對協議進行擴展。本文成功實現了非超幀結構的星形網絡,具體軟件流程如圖4所示。
3.3 組網的基本過程
PAN協調器選定創建網絡的信道后,首先要初始化網絡的各種屬性,建立協調器的PAN信息數據庫,分配網絡ID號和16位的網絡短地址,設定允許設備入網機制并初始化設備近鄰表,然后進入接收模式等待其他節點加入。網絡節點上電后,也要初始化內部資源并建立其自身節點的PAN信息數據庫之后,發送掃描信號進而準備通過MAC層關聯過程加入網絡。
網絡節點先以廣播方式發送一個掃描信號,查看當前信道是否存在PAN。協調器收到廣播信號后會發送一個確認幀。網絡節點若沒有收到確認幀就代表當前信道還沒有協調器,則繼續處于接收模式,等待協調器發現該節點后直接將其加入網絡;若收到確認幀,即存在PAN,該節點就可以嘗試加入網絡。網絡節點首先向PAN協調器發送信標請求命令,收到協調器的信標幀后,根據信標幀更新自身節點的信息數據庫中的PAN標識等相關屬性,并判斷當前PAN協調器是否未飽和以及是否允許設備入網。若協調器允許設備入網,網絡節點就要向協調器發送關聯請求命令,嘗試通過關聯方式加入網絡。協調器收到后把該節點信息(如64位擴展地址等)寫入設備近鄰表并向該節點分配16位的網絡短地址。該節點收到協調器的關聯響應命令后,把短地址寫入其數據信息庫,即成功入網。然后網絡節點按照功能設定使用此短地址向協調器發送信息。網絡節點一般為電池供電,在空閑狀態時就會進入休眠節能狀態。外圍電路的控制主要是針對傳感器、開關、LED等器件的控制,可隨時根據不同需求對軟件進行相應修改。
3.4 調試及運行
MC13192包括4種主動模式:空閑模式、TX模式、RX模式和CCA/能量檢測模式。空閑模式是退出低功耗模式后的缺省模式,每次各個模式間轉換的起點必須是空閑模式,從該模式起才能轉化到其他主動模式。
MC13192發送片上事件給主控MCU通過中斷(IRQ)來完成,作為主機的外部中斷源,主機通過讀MC13192的中斷標志寄存器IRQ_status的相應標志位來判別各個片上事件的發生。然而IRQ的中斷優先級在MCU中僅次于復位信號,比計數器中斷、鍵盤中斷等優先級都要高,因此當程序中涉及其他中斷時,用戶須先屏蔽MCU的外部中斷源(IRQ),再單獨打開要使用的中斷源。
4 應用
目前,本設計已被應用于某紡織車間線路改造的項目中。該車間有200臺紡機,每臺紡機獨立工作。現在工廠要對車間實行統一控制,需要在每臺紡機上安裝.,把紡機數據實時上傳給中央控制器。中央控制器通過控制每臺紡機的停車狀態、車速、打緯次數、加時產量等信息,進而控制整個車間的運行狀態。這樣既可提高車間的生產效率,又使車間易于管理。若采用CAN總線等有線網絡進行控制,由于車間各臺紡機布線通道已經固定,且車間的空間較小,這些因素給車間的線路設計造成了不便,而且走線的過于密*給車間增加安全隱患。
ZigBee無線網絡的引入,解決了該車間布局下的多臺設備之間不易走線的問題。中央控制器相當于PAN協調器,而每臺紡機的.相當于終端設備。網絡中只有這兩種角色,不需要增加PAN協調器。每臺紡機每0.5 s上傳一次數據,而且最遠的紡機距離區域控制器也在80 m之內,這些因素ZigBee星形網絡都能夠滿足。網絡中的應答機制和數據校驗機制能夠保證紡機數據的可靠傳輸,而且網絡節點功耗極低。測試表明,MC13192工作在停止、休眠、睡眠、空閑各模式時的工作電流依次為0.2 μA、1 μA、35 μA、200 μA。采用了低功耗的ZigBee無線技術之后,車間節約了大量成本。
5 結論
本文利用Freescale公司的8位微處理器MC9S08GT60和射頻模塊MC13192在硬件上實現了網絡節點的設計。通過對協議包SMAC進行分析,在原有協議框架的基礎上對其進行擴展,在軟件上實現了ZigBee星形網絡的組建。該網絡實現了多個節點的自動入網、網間可靠通信等功能,并且成功應用于紡織車間線路改造的項目中。
評論