ZStack通訊 Zigbee協議棧通訊

2021-10-07 18:06:41 字數 1681 閱讀 7493

應用都是建立在端點zdo(zigbee device object)之上的, 所以要實現通訊首先要定義並註冊乙個端點。註冊過程就是向端點應用鍊錶eplist增加乙個節點。

註冊函式:

afregister

( endpointdesc_t *epdesc )

;

終端描述型別:

typedef

struct

endpointdesc_t;

端點的簡單描述資訊:

typedef

struct

******descriptionformat_t;

af_datarequest

( afaddrtype_t *dstaddr,

//目標位址

endpointdesc_t *srcep,

//源端點

uint16 cid,

//簇命令id,對於接收方可以通過該命令來區分資料報

uint16 len,

//傳送資料的長度

uint8 *buf,

//傳送資料的起始位址

uint8 *transid,

//事務id, 可以是包計數器, 用於資訊確認

uint8 options,

//告知af層做的一些預處理,一般為af_discv_route

uint8 radius //**資料最多經過的路由深度(af_default_radius)

)

傳送訊息demo:按鍵按下,傳送點播訊息

if

(events & demo_keyboard_2)

1.封裝所有接收到的資訊到給定的訊息報結構體,並通過訊息(event)上報給應用層任務處理。上層任務被觸發後會不斷接收並處理訊息,判斷訊息型別,並處理接收到的訊息中的資料報。

afincomingmsgpacket_t*msgpkt;

osal_msg_receive(task_id);

msgpkt->hdr.event

無線訊息型別結構體:

typedef

struct

addr;

afaddrmode_t addrmode;

//位址模式

uint8 endpoint;

//端點號1-240

uint16 panid;

//網路id

} afaddrtype_t;

通訊模式結構體:

typedef

enum

afaddrmode_t;

接受訊息並處理demo:

else

if(events & sys_event_msg)

osal_msg_deallocate

((uint8 *

)msgpkt )

; msgpkt =

(afincomingmsgpacket_t *

)osal_msg_receive

(my_taskid)

;}

zstack通道 ZigBee網路多通道排程

8.4 zigbee 網路多通道排程 如果需要擴大 zigbee 網路規模,只要網路 panid 不同,在乙個通道上建立多個 pan網路的方式是可行的,但是,ieee 802.15.4 標準mac 層通道接入技術採用的是 csma c a機制,過多的節點勢必會造成嚴重的通道退避衝突。ieee 802...

zstack通道 zigbee無線通道的組成

由於zigbee使用的是免執照的工業科學醫療 ism 頻段,所以zigbee使用了3個頻段,分別為 868mhz 歐洲 915mhz 美國 2.4ghz 全球 這樣,zigbee共定義了27個物理通道,其中,868mhz頻段定義了乙個通道 915mhz頻段附近定義了10個通道,通道間隔為2mhz 2...

ZigBee 點對點無線通訊

先從主函式開始 void main void 串列埠初始化 void inituart void 初始化rf void initrftest void radioinit frequency,myaddr 頻率,位址 傳送函式 void contionuousmode void 和沒用串列埠的時候基...