zigbee的网络寻址

zstack中的地址的定义

typedef struct
{
  union
  {
    uint16      shortAddr;    //短地址
    ZLongAddr_t extAddr;        //扩展地址
  } addr;
  afAddrMode_t addrMode;           //地址模式
  uint8 endPoint;                    //端点
  uint16 panId;  // 用于多个PAN网络传递
} afAddrType_t;

扩展地址又叫做IEEE地址,MAC地址,64位,全球唯一,固化到硬件中。
短地址又叫网络地址,入网时有父设备指定,16位,一个网络内的设备短地址不能一样,理论上一个zigbee网络可以有2^16=65536个设备

代码的填充方式,举例

//广播
static afAddrType_t  SerialApp_TxAddr;
  SerialApp_TxAddr.addrMode =(afAddrMode_t) AddrBroadcast; //广播
  SerialApp_TxAddr.endPoint = SERIALAPP_ENDPOINT;
  SerialApp_TxAddr.addr.shortAddr = 0xffff;

//组播
static afAddrType_t  Group1_Addr;//定义分组的地址
  Group1_Addr.addrMode = (afAddrMode_t) afAddrGroup;//组播 AddrGroup
  Group1_Addr.endPoint = SERIALAPP_ENDPOINT;//自己的(消息地址的)端点号
  Group1_Addr.affr.shortAddr = GroupID1;

地址模式

typedef enum
{
  afAddrNotPresent = AddrNotPresent, //依照绑定表
  afAddr16Bit      = Addr16Bit,      //16位地址
  afAddr64Bit      = Addr64Bit,
  afAddrGroup      = AddrGroup,               //组播
  afAddrBroadcast  = AddrBroadcast               //广播
} afAddrMode_t;

几个特殊的地址
0xFFFF 对所有设备广播,包括睡眠
0xFFFE 间接传输,通过绑定表寻找网络短地址
0xFFFD 对没睡觉的设备广播
0xFFFC 给协调器和路由器广播
0x0000 给协调器通信
0x0000-0xFFFB 跟设定的目标地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值