新聞中心

EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計(jì)應(yīng)用 > ZigBee網(wǎng)絡(luò)地址的分配

ZigBee網(wǎng)絡(luò)地址的分配

作者: 時(shí)間:2017-10-24 來源:網(wǎng)絡(luò) 收藏

  一、 有兩種類型的地址:一種是 64 位 IEEE 地址,即 MAC 地址, 另一種是 16 位的。

本文引用地址:http://m.butianyuan.cn/article/201710/367875.htm

  (1) 64 位的IEEE地址是一個(gè)全球唯一的地址,一經(jīng)分配就將跟隨設(shè)備一生。它通常由制造商或者被安裝時(shí)設(shè)置。這些地址由 IEEE 組織來維護(hù)和分配。

  問題:用Z-stack 協(xié)議棧編程,64位IEEE地址是否是芯片自帶的,還是需要在編程時(shí)給予賦值?這點(diǎn)需要繼續(xù)深入研究后找出答案

  (2) 16 位是當(dāng)設(shè)備加入網(wǎng)絡(luò)后分配的, 它在網(wǎng)絡(luò)中是唯一的,用來在網(wǎng)絡(luò)中鑒別設(shè)備和發(fā)送數(shù)據(jù)。

  

  二、的分配

 ?。?) 使用分布式尋址方案來分配網(wǎng)絡(luò)地址。 這個(gè)方案保證整個(gè)網(wǎng)絡(luò)中所有分配出去的地址都是唯一的,同時(shí),這個(gè)尋址算法本身的分布特性保證設(shè)備只能與它的父輩設(shè)備通訊來接收一個(gè)唯一的網(wǎng)絡(luò)地址。

 ?。?) 在每個(gè)路由加入之前,尋址方案需要知道和配置一些參數(shù),這些參數(shù)是: MAX_DEPTH, MAX_ROUTERS, MAX_CHILDREN。 這些參數(shù)是協(xié)議棧的一部分,在2006中MAX_DEPTH = 5,MAX_ROUTERS = 6, MAX_CHILDREN = 20。

  (a) MAX_DEPTH 決定了網(wǎng)絡(luò)的最大深度, 協(xié)調(diào)器位于深度0 , 其子設(shè)備位于深度1, 其子子設(shè)備位于深度2 ……

 ?。╞) MAX_CHILDREN 決定了一個(gè)路由或者一個(gè)協(xié)調(diào)器節(jié)點(diǎn)可以處理的子節(jié)點(diǎn)的最大個(gè)數(shù)

 ?。╟) MAX_ROUTERS 決定了一個(gè)路由或者協(xié)調(diào)器節(jié)點(diǎn)可以處理的具有路由功能的子節(jié)點(diǎn)的最大個(gè)數(shù),這個(gè)參數(shù)是 MAX_CHILDREN 的一個(gè)子集。

 ?。?) 如果開發(fā)時(shí)想改變這些值, 需完成以下幾個(gè)步驟:

 ?。╝) 首先要保證這些參數(shù)的新植要合法,整個(gè)地址空間不能超過 2^16, 這就限制的參數(shù)能設(shè)置的最大值??梢允褂?projectZStacktools文件夾下的CSkip.xls文件來確認(rèn)這些值是否合法。當(dāng)表格中設(shè)置的數(shù)據(jù)不合法時(shí),就會出現(xiàn)錯(cuò)誤提示。

  (b) 其次,還要保證不再使用標(biāo)準(zhǔn)的棧配置, 取而代之的是使用網(wǎng)絡(luò)自定義的棧配置(例如:在 nwk_globals.h中將STACK_PROFILE_ID改為 NETWORK_SPECIFIC),然后設(shè)置nwk_globals.h文件中的MAX_DEPTH參數(shù)為一個(gè)適當(dāng)?shù)闹怠?/p>

 ?。╟) 最后,還要設(shè)置 nwk_golbals.c文件中的Cskipchldrn數(shù)組和CskipRtrs數(shù)組,這些數(shù)組的值由MAX_ROUTERS, MAX_CHILDREN構(gòu)成。



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉