ZigBee協(xié)議棧wireless UART模板網(wǎng)絡(luò)自啟動的實現(xiàn)
掃描二維碼
隨時隨地手機看文章
引 言
在工業(yè)應(yīng)用領(lǐng)域,ZigBee工業(yè)控制的主要原理是下位機利用微處理器采集現(xiàn)場環(huán)境和運行信息,并通過接口電路將現(xiàn)場信息發(fā)送到 ZigBee 節(jié)點,ZigBee 節(jié)點通過 ZigBee 網(wǎng)絡(luò)發(fā)送到 ZigBee 協(xié)調(diào)器,協(xié)調(diào)器將收到的信息轉(zhuǎn)發(fā)到上位管理計算機,上位機對采集的信息進行處理,并將相關(guān)控制命令通過 ZigBee 網(wǎng)絡(luò)發(fā)送到下位機。
1 ZigBee 工業(yè)控制的基本應(yīng)用結(jié)構(gòu)
ZigBee工業(yè)控制的基本應(yīng)用結(jié)構(gòu)如圖 1 所示。在這種工業(yè)控制結(jié)構(gòu)中,ZigBee 網(wǎng)絡(luò)主要實現(xiàn)網(wǎng)絡(luò)傳輸功能,而Freescale ZigBee 協(xié)議棧 提 供 的 wireless UART 模 板 具 有ZigBee 和 UART 數(shù)據(jù)收發(fā)的基本功能函數(shù)。
在 wireless UART 模板中,協(xié)調(diào)器、路由器、終端設(shè)有網(wǎng)絡(luò)啟動 ( 加入 ) 按鍵,網(wǎng)絡(luò)運行模式 ( 確認模式、應(yīng)用模式 )切換按鍵和節(jié)點綁定按鍵。每次啟動網(wǎng)絡(luò)時,都需按序進行相應(yīng)的按鍵操作。在系統(tǒng)運行過程中,當有節(jié)點需要重新啟動、新節(jié)點加入等情況發(fā)生時,就需要重新啟動所有節(jié)點并按序重新操作后,才能進入運行狀態(tài)。下面介紹一種自動啟動 ( 加入 )網(wǎng)絡(luò)的方法,同時給出相應(yīng)的源代碼文件及需要修改的程序代碼,以供參考。
1.1網(wǎng)絡(luò)建立
所謂網(wǎng)絡(luò)建立,就是啟用協(xié)調(diào)器并加入路由與終端,此時可在BeeApp.c文件voidBeeAppInit(void)函數(shù)的UartX_SetRxCallBack(UartRxCallBack)語句后增加ZDO_Start(gStartWithOutNvm_c)。
1.2 去除綁定
去除綁定,可將其修改為 16 位網(wǎng)絡(luò)地址模式,即在BeeApp.c 文件中修改以下函數(shù)的內(nèi)容 :
(1) 在 void BeeAppInit(void) 函數(shù)中修改如下:
gSendingNwkData.gAddressMode =gZbAddrMode16Bit_c;
(2) 在 static void TxZigBeeAck(void)、void TxZigBeeData(void)及相關(guān)ZigBee 無線發(fā)送的各個函數(shù)中修改如下:
afAddrInfo.dstEndPoint =1;
afAddrInfo.dstAddrMode = gZbAddrMode16Bit_c ;
afAddrInfo.dstAddr.aNwkAddr[0]=0xff;
afAddrInfo.dstAddr.aNwkAddr[1]=0xff; //{0x00,0x00};//
ZC 廣播方式其 中,
afAddrInfo.dstAddr.aNwkAddr[1]、afAddrInfo.dstAddr.aNwkAddr[0] 為 ZigBee 無線發(fā)送的 16 位網(wǎng)絡(luò)目的地址,協(xié)調(diào)器的網(wǎng)絡(luò)地址為 0x0000,協(xié)調(diào)器以廣播方式發(fā)送時目的地址為 0xffff,點對點發(fā)送時,應(yīng)使用接收端的網(wǎng)絡(luò)地址。
2 自動進入應(yīng)用模式
自動進入應(yīng)用模式時,可將 ASL_UserInterface.c 文件的ASL_UpdateDevice 函數(shù)修改如下:
case gZDOToAppMgmtZCRunning_c:
ASL_ChangeUserInterfaceModeTo(gApplicationMode_c);
ASL_DisplayChangeToCurrentMode(gmUserInterfaceMo
de);
3 修改按鍵功能
事實上, 也 可 以 修 改 按 鍵 功 能, 具 體 可 在 ASL_UserInterface.c 的 ASL_InitUserInterface 函數(shù)中做如下修改 :
// KBD_Init(BeeAppHandleKeys);
當然,也可以通過修改 BeeApp.c 的 BeeAppHandkeys(key_event_t event)) 函數(shù)實現(xiàn)相應(yīng)的按鍵功能。
A Method of ZigBee Network Self-starting in Freescale
WirelessUART Sample
YANG Da –sheng
(NeiMongol Electronic information Vocational Technical
College, Hohhot 010070,PRC)
Abstract: To simplify the ZigBee network boot steps
in Freescale UARTwireless sample ,a method was given in
source code .
Keyword: ZigBee stack ;Binding ;network self-starting ;
4 結(jié) 語
ZigBee工業(yè)控制就是將下位機利用微處理器采集的現(xiàn)場環(huán)境和運行信息通過接口電路發(fā)送到 ZigBee 節(jié)點,從而控制工業(yè)過程的一種無線網(wǎng)絡(luò)系統(tǒng)。本文給出了在 FreescaleZigBee 協(xié)議棧 wireless UART 應(yīng)用模板中簡化網(wǎng)絡(luò)啟動的步驟,同時給出了在源代碼中需要修改的內(nèi)容,以期能對有興趣者有所啟發(fā)。
20211020_61701ed347f32__ZigBee協(xié)議棧wireless UART模板網(wǎng)絡(luò)自啟動的實現(xiàn)