Zigbee五种通信方式

本文介绍了Zigbee的五种通信方式,包括单播、广播、组播、MAC地址通信和绑定。详细阐述了每个通信方式的工作原理,如端点、簇和绑定表的配置,以及在实际应用中的操作步骤。
摘要由CSDN通过智能技术生成

Zigbee共有五种通信方式,包括单播、广播、组播,MAC地址通信、绑定。

相关术语

Zigbee术语
在这里插入图片描述
一个设备有多个端点,一个端点对应一个应用,一个应用有多个属性和命令,相关的属性和命令归到一起形成簇,一个设备的这些应用一般属于同一类应用子集规范。

相关代码分析

xxApp.h文件中相关宏定义

#define TestApp_ENDPOINT           10 //端点号为10

#define TestApp_PROFID             0x0F04 //应用规范为0x0F04
#define TestApp_DEVICEID           0x0001 //由TI官方规定,不用考虑
#define TestApp_DEVICE_VERSION     0
#define TestApp_FLAGS              0

#define TestApp_MAX_CLUSTERS       1 //某端点多允许拥有的簇的个数最大值
#define TestApp_CLUSTERID          1 //簇ID为0X0001

xxApp.c文件中的相关常量

/* 簇ID的列表 */
const cId_t TestApp_ClusterList[TestApp_MAX_CLUSTERS] =
{
   
  TestApp_CLUSTERID   //0x0001
};

/* 简单描述符,对应用的描述 */
const SimpleDescriptionFormat_t TestApp_SimpleDesc =
{
   
  TestApp_ENDPOINT,              //  int 端点号
  TestApp_PROFID,                //  uint16 ProfId ID
  TestApp_DEVICEID,              //  uint16 设备ID
  TestApp_DEVICE_VERSION,        //  int  设备版本
  TestApp_FLAGS,                 //  int  程序标识
  TestApp_MAX_CLUSTERS,          //  byte  输入命令数
  (cId_t *)TestApp_ClusterList,  //  byte 输入命令列表地址
  TestApp_MAX_CLUSTERS,          //  byte  输出命令数
  (cId_t *)TestApp_ClusterList   //  byte 输出列表地址
};

各个通信模块的发送节点的相关程序

自身节点定义一个端点(任务)与应用层任务挂钩

void TestApp_Init( byte task_id )
{
   
	TestApp_TaskID = task_id;
	
	.............................
	
	endPointDesc_t TestApp_epDesc; //定义一个端点描述符变量
	
	TestApp_epDesc.endPoint = TestApp_ENDPOINT;  //定义端点号为TestApp_ENDPOINT
	TestApp_epDesc.task_id = &TestApp_TaskID;    //将该端点与任务层挂钩
	TestApp_epDesc.simpleDesc
	          = (SimpleDescriptionFormat_t *)&TestApp_SimpleDesc; //定义该任务的简单描述符
	TestApp_epDesc.latencyReq = noLatencyReqs;

	/* 这个函数必须要调用才能完成整个挂钩操作 */
	afRegister( &TestApp_epDesc );

目标节点地址、端点、输入簇的配置

/* 通信地址模式 */
typedef enum
{
   
  afAddrNotPresent = AddrNotPresent,  //绑定
  afAddr16Bit      = Addr16Bit,       //网络短地址(单播)
  afAddr64Bit      = Addr64Bit,		  //MAC地址通信
  afAddrGroup      = AddrGroup,		  //组播
  afAddrBroadcast  = AddrBroadcast    
  • 5
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值