ZigBee協(xié)議棧wireless UART模板網(wǎng)絡(luò)自啟動(dòng)的實(shí)現(xiàn)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
引 言
在工業(yè)應(yīng)用領(lǐng)域,ZigBee工業(yè)控制的主要原理是下位機(jī)利用微處理器采集現(xiàn)場環(huán)境和運(yùn)行信息,并通過接口電路將現(xiàn)場信息發(fā)送到 ZigBee 節(jié)點(diǎn),ZigBee 節(jié)點(diǎn)通過 ZigBee 網(wǎng)絡(luò)發(fā)送到 ZigBee 協(xié)調(diào)器,協(xié)調(diào)器將收到的信息轉(zhuǎn)發(fā)到上位管理計(jì)算機(jī),上位機(jī)對采集的信息進(jìn)行處理,并將相關(guān)控制命令通過 ZigBee 網(wǎng)絡(luò)發(fā)送到下位機(jī)。
1 ZigBee 工業(yè)控制的基本應(yīng)用結(jié)構(gòu)
ZigBee工業(yè)控制的基本應(yīng)用結(jié)構(gòu)如圖 1 所示。在這種工業(yè)控制結(jié)構(gòu)中,ZigBee 網(wǎng)絡(luò)主要實(shí)現(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ò)啟動(dòng) ( 加入 ) 按鍵,網(wǎng)絡(luò)運(yùn)行模式 ( 確認(rèn)模式、應(yīng)用模式 )切換按鍵和節(jié)點(diǎn)綁定按鍵。每次啟動(dòng)網(wǎng)絡(luò)時(shí),都需按序進(jìn)行相應(yīng)的按鍵操作。在系統(tǒng)運(yùn)行過程中,當(dāng)有節(jié)點(diǎn)需要重新啟動(dòng)、新節(jié)點(diǎn)加入等情況發(fā)生時(shí),就需要重新啟動(dòng)所有節(jié)點(diǎn)并按序重新操作后,才能進(jìn)入運(yùn)行狀態(tài)。下面介紹一種自動(dòng)啟動(dòng) ( 加入 )網(wǎng)絡(luò)的方法,同時(shí)給出相應(yīng)的源代碼文件及需要修改的程序代碼,以供參考。
1.1網(wǎng)絡(luò)建立
所謂網(wǎng)絡(luò)建立,就是啟用協(xié)調(diào)器并加入路由與終端,此時(shí)可在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ā)送的各個(gè)函數(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ā)送時(shí)目的地址為 0xffff,點(diǎn)對點(diǎn)發(fā)送時(shí),應(yīng)使用接收端的網(wǎng)絡(luò)地址。
2 自動(dòng)進(jìn)入應(yīng)用模式
自動(dòng)進(jìn)入應(yīng)用模式時(shí),可將 ASL_UserInterface.c 文件的ASL_UpdateDevice 函數(shù)修改如下:
case gZDOToAppMgmtZCRunning_c:
ASL_ChangeUserInterfaceModeTo(gApplicationMode_c);
ASL_DisplayChangeToCurrentMode(gmUserInterfaceMo
de);
3 修改按鍵功能
事實(shí)上, 也 可 以 修 改 按 鍵 功 能, 具 體 可 在 ASL_UserInterface.c 的 ASL_InitUserInterface 函數(shù)中做如下修改 :
// KBD_Init(BeeAppHandleKeys);
當(dāng)然,也可以通過修改 BeeApp.c 的 BeeAppHandkeys(key_event_t event)) 函數(shù)實(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è)控制就是將下位機(jī)利用微處理器采集的現(xiàn)場環(huán)境和運(yùn)行信息通過接口電路發(fā)送到 ZigBee 節(jié)點(diǎn),從而控制工業(yè)過程的一種無線網(wǎng)絡(luò)系統(tǒng)。本文給出了在 FreescaleZigBee 協(xié)議棧 wireless UART 應(yīng)用模板中簡化網(wǎng)絡(luò)啟動(dòng)的步驟,同時(shí)給出了在源代碼中需要修改的內(nèi)容,以期能對有興趣者有所啟發(fā)。
20211020_61701ed347f32__ZigBee協(xié)議棧wireless UART模板網(wǎng)絡(luò)自啟動(dòng)的實(shí)現(xiàn)