Zigbee学习系列——2.了解

3 篇文章 0 订阅
2 篇文章 0 订阅

自己想做一个物联网的所有部分,本以为这部分内容应该是重中之重,但是真正做起来才发现,自己的物联网整体架构才是最主要的,ZigBee只是其中的一小部分。

到目前为止也算是了解了ZigBee协议栈的一部分的工作,所以这里记录一下我对这个协议栈的了解。

一、组网

1、信道和PanID

先不说协议栈对外做的那行底层驱动接口,就说一下联网吧。如果我们手机连接对应的WiFi,那我们需要知道WiFi名称和密码,但是事实上除了这两个还有其他的好多信息必须知道才可以连接,但是其他信息又被做了统一,这就导致我们连接WiFi是如此的简单。ZigBee设备如果需要连接同一个网络,必须知道协调器组网使用的信道和PanID,信道即为信号通道,这和2.4GHz有关,这里不去解释,网上一搜一大堆,2.4GHz下有16个信道,一个网络用一个即可,显然,现在的设备那么多,仅仅通过一个信道是没有办法区分开网络的(想想,一旦周围的信号超过16种,必然有重复的),所以这里提供了另一个内容:PanID,PanID是一个16位数字,它可以自定义(范围 0~FFFE),也可以由协调器随机分配(范围 0~3FFF),当协调器中的PanID被设置为0xFFFF,则初始化的时候协调器会自己随机分配一个PanID(实际上也是有规律的),否则按你设置给协调器的PanID来进行组网。

如果想要连接入一个ZigBee网络,只需要信道和PanID相同即可连接,这里只是说了条件,但是要真正的连接还需要协调器设置可以入网才可以,就好比你有了对应的学生证,但是门必须打开你才可以进入。但即使门是开的,你的学生证不是这个学校的,照样进不去。

理论上来讲,你可以给协调器随意设置信道和PanID值,只要其他节点设置相同即可。但是现实是我们的周围存在各种信号,一些信道里的内容特别多,这个时候就需要根据选择一个最优的信道和没有用过的PanID来进行组网,正确做法是一个一个测试信号等等,但个人又不是工业,也不是商用,也不专业,所以就理论上设置一下就好啦!参考一下这个:

https://blog.csdn.net/stone8761/article/details/79651569

2、地址

ZigBee设备在使用时有两个地址,一个是身份证地址64位的IEEE,这个地址在出生时(被生产出)就已经时确定的,并且唯一,另一个是网络地址16位短地址,这个地址在连接到网络后才能确定,在当前网络下唯一,由协调器管理和分配,默认协调器的网络地址位0x0000,并且网络中收发信息都是以这个网络地址来进行操作的(当然也可以使用64位的长地址),那么问题来了,既然有一个唯一的身份证地址,干嘛还需要一个短地址,首先,64位地址太长,每次收发数据都需要携带地址,占用内存,所以不方便,其次,你想想你有一个身份证号码为什么学校还要给你分配一个学号,而且每个学校都不一样,公司要给你分配一个工号,这其中的道理都是差不多的。

其中有几个特殊的地址,当给这几个特殊的地址发消息时会有特殊的效果:

0x0000   协调器地址,给0x0000发送消息,协调器会收到

0xFFFF  全网络地址,给该地址发送消息,该网络下所有设备都会收到

二、联网

协调器上电后首先初始化会根据配置的信道和PanID来组件网络(这里不贴任何代码,因为其他博客已经很全面了),然后打开可以入网(前提是你配置了自动入网),此时路由和终端上电会自动搜索合适的网络来进行入网申请,这里注意,入网申请时还没有被分配短地址,所以此时是使用64位长地址对0x0000地址发送入网申请信息,如果没有什么问题,协调器会进行地址分配然后给该长地址设备发送分配好的地址和其他相关信息,然后协调器进行全网通告新设备加入消息(向0xFFFF发送),之后的消息则是通过短地址来进行的。

那这里就又有一个问题了,短地址是在联网后才能分配好,那么我要发送消息怎么知道对方的呢!

这就是ZigBee协议栈的功能了,ZigBee协议栈只负责连接好每一个合适的ZigBee设备并且让ZigBee设备在当前网络下保持唯一值,并且保证当一切设备合适时可以正常的收发信息,仅此而已,至于怎么去管理好ZigBee下的设备功能和记录连接的个数等等外围功能均由自己去实现。

这就是我对ZigBee协议栈的了解,如有不合适的地方还请多多指教!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值