概述
关于入网过程中的父子关系:
协调器组网后,一个终端和一个路由器,谁和协调器的信号好,谁先和协调器互为父子,(第一种结果:终端和路由器都和协调器互为父子;第二种结果:路由器和协调器互为父子,终端和路由器互为父子)
两个相同panid为a的协调器上电,可以都创建网络吗?
先上电的协调器panid为a,后上电的为a+1
协议栈最多16个事件
终端(如果父节点是协调器)不能直接广播,必须发给它的父节点再广播,如果其它路由器收到广播会再广播一次,保证网络中设备(距离协调器远的设备)都收到(最多转30次);比如A是终端,B(路由器)是A的父节点,C是同一个网络的另一个路由器,A发给C或者C发给A数据都要经过B转发,这种转发最多30次,转发一次减1
网络源地址(NWK)和源地址不一样,比如终端广播时其网络源地址不变,源地址是替它转发的设备地址
组广播必须,组号,端点,蔟都匹配才能收到数据
同一个端点可以对应多个组,同一个组对应多个点
当选择mac地址和发送时,如果zigbee设备中的地址管理表中有这个mac地址对应的8位网络地址,则使用网络地址发送,如果没有对应的网络地址且距离比较远,首先根据mac地址获得对方网络短地址(ZDP_NwkAddrReq函数让对方把网络短地址回复给发射方,然后地址管理器里就有保存了),然后等待30ms,在延时后的一个事件里以mac地址形式发送
低功耗程序加看门狗,莫名死机后,因为-DREJOIN_POLL_RATE=440,重启后找不到协调器,进入不了PM3导致电流一直7/8ma,这样纽扣电池会因为电流过大,导致电压下降,zigbee异常
zigbee重连的原因
(1)zigbee由于各种原因的干扰导致信号太差而掉线。
(2)协调器重启。
不正常原因:信号差导致重连,发现协调器没有,一直440ms轮询请求入网,然后电流大,电压小,又重启,循环
解决方法:zigbee 登记一个三秒事件,定义一个DEV_IDLE,判断入网失败三次后,启动事件,事件中停止rejoin,进入pm3,外部中断事件中判断DEV_IDLE决定是不是要再次rejoin三次
zigbee中继延时时间?
某终端在做中继时,传输刚传输到它这里,突然断电,重新上电后,数据会立刻继续向目标设备传吗?还是下一帧数据到达后,一起传?
协议栈事件定时器会被寻网干扰吗?不会的话为什么没有协调器时,事件定时器感觉延时特别大?用硬件定时器可以吗?
堆栈溢出后(可能由osal_memcpy造成),程序重启后设备偶尔正常偶尔不正常,是因为指针改变的数据重要性不一样导致的吗?
zigbee的路由表可以被查看或者修改吗?怎么查看zigbee协调器的路由表和组网数目?
怎么查看zigbee数据传输的跳转路线?
zigbee的路由表除了在协调器里面,在其它终端会有备份吗?备份超过最大值怎么办?
怎么手动删除关联表中已经失效的子节点?
#define NWK_MAX_ROUTERS 6也是表示每级最大路由器节点数为6
关于关联表
ZigBee是半双工通信,同一个节点收发不能同时
最后
以上就是清爽白猫为你收集整理的一些zigbee小知识点的全部内容,希望文章能够帮你解决一些zigbee小知识点所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复