没有合适的资源?快使用搜索试试~ 我知道了~
zigbee基础知识笔记.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 74 浏览量
2023-03-05
12:53:01
上传
评论
收藏 355KB PDF 举报
温馨提示
试读
12页
。
资源推荐
资源详情
资源评论
1.基础知识
........................................................................................................................................................................................................................................
1
1.1IEEE 地址
....................................................................................................................................................................................................................
1
1.2 簇
.......................................................................................................................................................................................................................................
1
1.3 Profile ID
....................................................................................................................................................................................................................
2
1.4 网络地址与端点号、节点
...........................................................................................................................................................................
2
1.5 PANID
...........................................................................................................................................................................................................................
2
1.6 zigbee 设备
..............................................................................................................................................................................................................
2
2.绑定机制
........................................................................................................................................................................................................................................
3
2.1 描述符绑定
...............................................................................................................................................................................................................
3
2.2 设备绑定
.....................................................................................................................................................................................................................
9
1.基础知识
1.1IEEE 地址
IEEE 地址是 64 位,在设备进入网络之前就分配好了的,应该在全球是唯一的,
而网络地址是在网络建立后,设备加入网络时,它的父节点给它分配的,在设备通信时,
首先由 ieee 地址找到设备的网络地址,然后根据网络地址实现设备之间的通信,
这样可以减少帧头长度,多传有效数据
通俗的说 IEEE 地址相当于你的手机号(
短地址就相当于你们公司的小号
11 位的那个),
(3、 4)位,一个公司的互打电话就用小号噻。
666。
假设你的手机号 138xxxxx666,这个是唯一的,但你的小号,假设是
是唯一的,但是在另一个网中,可能别人的小号也是
666,在你的公司网中
1.2 簇
簇就是相当于端点房间里面的人,是接收最终的目标。这东西是
在射频发送的时候,必须要指定接收模块的镞,发送模块不需要指定。
首先每一个端点可以看成是一个
数据最终的目标是进入到无线数据包指定的目标端点房间,
事件处理函数 来取这个无线数据包里面的有用数据。
2 个字节编号,
1 个字节数字编号的开有一扇门的房间,
而取无线数据这个相关的代码在
所以必须要指定在哪个任务
!!
任务事件处理函数里, TI 协议栈有那么多的任务事件处理函数,
端点就相当于一个房间的门牌号!
SimonApp_epDesc.endPoint = 10;//SimonApp_ENDPOINT; 此端点编号为 10
SimonApp_epDesc.task_id = &SimonApp_TaskID; 和我们应用层任务挂钩
完成了簇信息表的构建,因为簇信息封装在
SimonApp_SimpleDesc 里面,
这里面却只是起到一个信息表的作用!方便数据到来的时候查询相关信息表!
const cId_t SimonApp_ClusterList[SimonApp_MAX_CLUSTERS] =
{
SimonApp_CLUSTERID
};
const SimpleDescriptionFormat_t SimonApp_SimpleDesc =
{
SimonApp_ENDPOINT,
SimonApp_PROFID,
SimonApp_DEVICEID,
SimonApp_DEVICE_VERSION,
// int Endpoint;
// uint16 AppProfId[2];
// uint16 AppDeviceId[2];
// int AppDevVer:4;
SimonApp_FLAGS,
SimonApp_MAX_CLUSTERS,
(cId_t *)SimonApp_ClusterList,
//
//
int
byte
AppFlags:4;
AppNumInClusters;
// byte *pAppInClusterList;
SimonApp_MAX_CLUSTERS,
(cId_t *)SimonApp_ClusterList
// byte AppNumInClusters;
// byte *pAppInClusterList;
};
接收到数据以后,判断是属于哪一个端点、属于哪一个簇
1.3 Profile ID
这个是由 Zigbee 组织来分配的应用
智能电表用 ox0002 ,万用遥控器用
电灯开关的。
ID 号,比如无线开关用 0x0001,
0x0003 等等。在这个例子里,这个
ID
号是专门用来做
为什么要这么做呢?这里就体现了“标准”的意义,不同厂家功能的设备,
由于有了这个 ID 就能互相间使用了,你使用这种开关一样可以达到别的开关控制灯的效果
1.4 网络地址与端点号、节点
在 zigbee 中,节点对应主机,相当于一个物理射频模块,一个端点对应一个任务号,即交
由哪一个任务对象, 端点号在端点描述符中, 是要向操作系统注册端点描述符的, 网络中的一个
数据消息通过寻址(即网络地址)到达一个节点,节点收到消息后,操作系统查看消息
端点对应的任务号,然后交由这个任务号的事件处理函数执行。
1.5 PANID
PANID 就是个人网络 id 号, Zigbee 协议规定,用一个
14 位的个人域网来标识一个网络,
1.6 zigbee 设备
Zigbee 定义了三种功能的设备,每种设备都有自己的功能要求:
ZigBee 协调器是启动和配置网络的一种设备。
关联,同时还能设计信任中心和执行其它活动。
一个 ZigBee 网络只允许有一个 ZigBee 协调器。
ZigBee 路由器是一种支持关联的设备,能够将消息转发到其它设备。
ZigBee 网格或树型网络可以有多个
它的存储器容量要求最少
Zigbee 协议栈类似 ucos,有自己的任务调度, 不过它是轮询, 没有优先级, 只要查询到每一
层有相应的事件发生,就进行处理。具体代码如下:
void osal_run_system( void )
{
uint8 idx = 0;
osalTimeUpdate();
Hal_ProcessPoll();
do {
if (tasksEvents[idx]) // Task is highest priority that is ready.
{
break;
}
} while (++idx < tasksCnt);
ZigBee 路由器。 ZigBee 星型网络不支持
ZigBee 路由器。
协调器可以保持间接寻址用的绑定表格,
支持
ZigBee 终端设备可以执行它的相关功能,
并使用 ZigBee 网络到达其它需要与其通信的设备。
if (idx < tasksCnt)
{
uint16 events;
halIntState_t intState;
HAL_ENTER_CRITICAL_SECTION(intState);
events = tasksEvents[idx];
tasksEvents[idx] = 0;
// Clear the Events for this task.
HAL_EXIT_CRITICAL_SECTION(intState);
activeTaskID = idx;
events = (tasksArr[idx])( idx, events );
activeTaskID = TASK_NO_TASK;
HAL_ENTER_CRITICAL_SECTION(intState);
tasksEvents[idx] |= events;
}
// Add back unprocessed events to the current task.
HAL_EXIT_CRITICAL_SECTION(intState);
2.绑定机制
绑定机制即绑定之后就不用知道对方的地址就可以发送数据过去, 对方的的地址可以在绑定表中
查询, 绑定非常灵活,也是难点,例如假设有两个按键, 可以通过绑定将一个按键控制其他的三
个灯, 另一个按键控制两个窗帘。 绑定比较常见的两种绑定是描述符绑定跟设备绑定。
2.1 描述符绑定
设置允许设备响应 ZDO 的描述符匹配请求
afSetMatch(sapi_epDesc.simpleDesc->EndPoint, TRUE);
Zigbee 协议栈默认是允许的
有了允许绑定就会有绑定请求,在 myAllowBindTimeout
规定的时间内,终端设备调用
zb_BindDevice()函数,请求绑定。 由于 zb_BindDevice()函数的第三个参数是 NULL,所以是以,未
知 IEEE 地址的绑定。在 zb_HandleKeys()函数中调用了,
zb_BindDevice(TRUE, TOGGLE_LIGHT_CMD_ID, NULL); zb_BindDevice 函 数 中 调 用 了
ZDP_MatchDescReq()函数,
这个函数的参数,在上一篇文章中也做了介绍,这个函数是是初始化一个匹配描述符请求,
也 就 是 发 现 服 务 , 或 者 叫 自 动 寻 求 匹 配 设 备 。 其 中
destination.addr.shortAddr
NWK_BROADCAST_SHORTADDR;
终端发起请求:
afStatus_t ZDP_MatchDescReq( zAddrType_t *dstAddr, uint16 nwkAddr,
uint16 ProfileID,
byte NumInClusters, cId_t *InClusterList,
byte NumOutClusters, cId_t *OutClusterList,
byte SecurityEnable )
----->return fillAndSend( &ZDP_TransID, dstAddr, Match_Desc_req , len );
----->return AF_DataRequest( &afAddr, & ZDApp_epDesc, clusterID,
=
剩余11页未读,继续阅读
资源评论
G11176593
- 粉丝: 6667
- 资源: 3万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- python开心麻花影视作品分析程序+源码.zip
- pythonExcel数据分析师程序+源码.zip
- PlatformUI.jar 支持RCP控件环境插件
- VB+ACCESS大型机房学生上机管理系统(源代码+系统).zip
- 基于BP神经网络的回归分析,基于优化动量因子的BP神经网络,基于优化学习率的BP神经网络,基于优化隐藏层神经元的bp神经网络
- python读取excel数据Python-file-reading-master.zip
- STC15单片机串口2使用程序例子
- 读取日志的excel生成周报 用python3开发weekplan-master.zip
- python 读取excel数据导入dbimport-data-master.zip
- K折交叉验证BP神经网络,多输入多输出BP神经网络(代码完整,数据齐全)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功