zigbee3.0学习笔记@开发指导书@设备地址
#設(shè)備
##協(xié)調(diào)器
作用:啟動(dòng)網(wǎng)絡(luò)和管理密鑰
1.組建zigbee網(wǎng)絡(luò),選擇通道和PAN ID
2.創(chuàng)建集中安全網(wǎng)絡(luò)和授權(quán)可信任網(wǎng)絡(luò)
3.分發(fā)密鑰,允許設(shè)備加入網(wǎng)絡(luò)
4.路由功能
##路由
作用:
1.允許其他設(shè)備加入網(wǎng)絡(luò)
2.Multi-hop多跳路由(信號(hào)跳傳)
3.協(xié)助終端設(shè)備通訊
4.創(chuàng)建分布式網(wǎng)絡(luò)安全能力
##終端
作用:
1.休眠模式或者喚醒
#協(xié)議棧
配置文件可以被修改,修改后稱為“stack specific”stack profile
協(xié)議棧版本的標(biāo)識(shí)符在設(shè)備傳輸?shù)腷eacon中,加入網(wǎng)絡(luò)之前確認(rèn)協(xié)議棧
協(xié)議棧版本配置: STACK_PROFILE_ID 在nwk_golbals.h 文件中
#define NETWORK_SPECIFIC 0 特殊網(wǎng)絡(luò)
#define HOME_CONTROLS 1 傳統(tǒng)網(wǎng)絡(luò)
#define ZIGBEEPRO_PROFILE 2 zigbee3.0
#define GENERIC_STAR 3
#define GENERIC_TREE 4
#地址
64-bit IEEE address called MAC地址or 擴(kuò)展地址
作用:生產(chǎn)地址
16-bit address called 邏輯地址 or 短地址or網(wǎng)絡(luò)地址
作用:用于識(shí)別設(shè)備和在網(wǎng)絡(luò)中發(fā)送數(shù)據(jù)
##網(wǎng)絡(luò)地址
###分配網(wǎng)絡(luò)地址方式:隨機(jī)尋址方案
判斷地址沖突機(jī)制:新設(shè)備從父節(jié)點(diǎn)獲得隨機(jī)地址–新設(shè)備發(fā)送“設(shè)備通知”–沖突設(shè)備(路由)發(fā)送沖突廣播–新設(shè)備改地址–新設(shè)備發(fā)送“設(shè)備通知”(循環(huán))
如果終端地址有沖突–父節(jié)點(diǎn)發(fā)送重新連接響應(yīng)更改終端地址–終端發(fā)送“設(shè)備通知”
路由接收到設(shè)備通知,綁定表更新,路由表不更新
父節(jié)點(diǎn)接收到的設(shè)備通知來自于自己的子節(jié)點(diǎn),但是又不是子節(jié)點(diǎn)直接發(fā)出來的,認(rèn)為這個(gè)子節(jié)點(diǎn)被加入其他的父節(jié)點(diǎn)了
###協(xié)議棧中的地址
發(fā)送數(shù)據(jù)函數(shù) AF_DataRequest()
目標(biāo)設(shè)備數(shù)據(jù)包類型afAddTpye_t (defined in profile – AF.h)
無線發(fā)送地址類型 AF address modes (defined in profile – AF.h)
tpyedef enum {afAddrNotPresent = AddrNotPresent, //間接傳播(用于綁定表)afAddr16Bit = Addr16Bit, //單播afAddr64Bit = Addr64Bit, afAddrGroup = AddrGroup, //組播afAddBroadcast = AddrBroadcast //廣播 } afAddMode_t;####unicast單播
作用:向網(wǎng)絡(luò)中單個(gè)設(shè)備發(fā)數(shù)據(jù)包
addMode設(shè)置為Addr16Bit,目標(biāo)地址在數(shù)據(jù)包中攜帶
####inderect間接傳播(綁定)
不知道目的地。模式設(shè)置為AddrNotPresent。目的地在綁定表中查找。找到后一個(gè)以上的設(shè)備,則轉(zhuǎn)為類似單播的規(guī)則向每個(gè)設(shè)備發(fā)出。
####Broadcast廣播
作用:向網(wǎng)絡(luò)中所有設(shè)備發(fā)數(shù)據(jù)包
a.目標(biāo)地址設(shè)置為NWK_BROADCAST_SHORTADDR_DEVALL(0XFFFF)發(fā)送到所有設(shè)備
對(duì)于睡眠設(shè)備,消息保持在父設(shè)備上,直到睡眠設(shè)備輪詢到消息或者超時(shí),間接消息超時(shí)時(shí)間設(shè)置NWK_INDIRECT_MSG_TIMEOUT (in f8wConfig.cfg)
b.目標(biāo)地址設(shè)置為NWK_BROADCAST_SHORTADDR_DEVRXON(0XFFFD)發(fā)送到所有閑置狀態(tài)設(shè)備(除了睡眠狀態(tài)的設(shè)備)
c.目標(biāo)地址設(shè)置為NWK_BROADCAST_SHORTADDR_DEVZCZR(0XFFFC)發(fā)送到所有路由設(shè)備(包括協(xié)調(diào)器)
####Gruop組播
作用:向網(wǎng)絡(luò)中一組設(shè)備發(fā)數(shù)據(jù)包
addMode設(shè)置為AddrNotPresent,addr.shortAddr 設(shè)置為組標(biāo)識(shí)符
定義組方法:aps_AddGroup()
組也可以與間接尋址一起使用。綁定表中的目標(biāo)地址可以是單播也可以是組播地址。其實(shí)廣播只是一種特殊的組尋址。
添加設(shè)備到標(biāo)識(shí)符為1的組代碼:
###重要設(shè)備地址
查詢?cè)O(shè)備地址和子設(shè)備地址函數(shù):
NLME_GetShortAddr() --返回設(shè)備16位網(wǎng)絡(luò)短地址
NLME_GetExtAddr() --返回設(shè)備64位長地址
NLME_GetCoordShortAddr() --返回父設(shè)備16位網(wǎng)絡(luò)短地址
NLME_GetCoordExtAddr() --返回父設(shè)備64位長地址
總結(jié)
以上是生活随笔為你收集整理的zigbee3.0学习笔记@开发指导书@设备地址的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: class mate
- 下一篇: 移动端——常见的移动端mate