zigbee怎么用?zigbee的应用之ZigBee学习笔记
扫描二维码
随时随地手机看文章
作为一个硬件从业人员,虽然不是从事物理网行业的,但是多少得了解一些,以下是笔者最近学习Zigbee的笔记,包含了Zigbee基本知识,正确的学习方法。
Zigbee无线传感网络
先搞清楚IEEE802.15.4协议。
这个协议必须搞清楚,搞不定这个协议,Zigbee永远吃不透。其实学习这个很简单,如果学过TCP/ip的话,大家知道,我们要去掌握整个tcp/ip核心的话,我们要掌握以太网底层的一些协议,比如我们做驱动,我们做开发,如果说不懂的话,是没有办法做项目的,更直白一点,没法在工作中去解决实际的问题。对于老板来说,老板招人过来,就是要解决问题的,如果没有解决问题的能力,那在职场中是没有竞争力的。
ZIGBEE是什么?
在传统的无线网络当中,大家耳熟能详的就是两种,蓝牙和wifi。在物联网的世界,也存在物与物之间存在信息沟通的桥梁,也是通过无线技术,最经典的就是ZIGBEE技术,还有ZWAVE技术,不过ZWAVE在中国还是用得很少的。
为什么要引入zigbee呢?
有了Zigbee之后,全球才有了一个物联网的概念,Zigbee号称我们商用的第一个无线传感网络。
到目前为止,无论是国内还是全球,Zigbee是商用最多的,Zigbee做出来的产品是很多的,在国内,最典型的Zigbee应用是在智能家居领域,目前在国内推出的只能家居,绝对是Zigbee,为什么呢?
zigbee出来比较早,大概是在03年,Zigbee整个协议的这个技术现在变得很成熟。真正可商用化的产品,一定会选一个成熟的技术方案。
Zigbee能够干什么?
Zigbee主要用于构建无线局域网,如果这个无线局域网用于传感器的数据收集和监控,这个网络就叫做无线传感器网络(WSN:Wirelss Sensor Network),是无线局域网的具体应用。
Zigbee是属于无线传感网络的一种。
图中Sink node叫做集中器,负责整个Zigbee网络的管理和接入的,同时还负责和外围交互,可以和PC,互联网进行连接。
单纯的一个Zigbee是没有实际的应用场景的,现在使用的各种的物联网终端,最起码有一个app,需要用来观看无线传感网络中的信息,需要保证这个Sink node接入到我们的物联网当中来。
Zigbee特点
低功耗:6个月-2年,为什么是一个比较大的范围呢?任何一个低功耗的传感网络,首先需要问工作方式是什么,比如多长时间获取一次数据,多长时间发送一次数据,才能得到具体的使用时间。
高可靠性:用tcp/ip来解释,在tcp/ip协议中,有两种经典协议,TCP和UDP,一个是面向连接的,一个是无连接的,一个是可靠传输的,一个是不可靠传输的。无线连接本身存在不可靠性,zigbee针对这个做了一些高可靠性的机制。
低成本:开源,免专利费
碰撞避免机制,交互确认的机制,保证可靠通信
低延时:设备搜索时延30ms,休眠激活时延典型值是15ms,活动设备信道接入时延为15ms
低数据量:Zigbee每个网络模块射频前端的数据传输为250kbps
网络容量大:Zigbee可以采用星形,树形,网形的结构组网,而且可以通过任一节点组成更大的网络结构,从理论上讲,其可连接的节点多达65535个,其实就是一个16bit的数。实际应用中并没有这么多,实际受限于硬件资源。所谓的硬件资源就是芯片的ram,flash,是否能够容纳这么多的节点,是否能够管理。
高保密性:Zigbee提供了基于循环冗余校验(CRC)的数据包完整性检验和鉴权的功能,加密算法采用AES-128,同时各个应用可以灵活确定其安全属性。----所有的无线传输,都是通过一个射频的物理通道,任何人都可以利用zigbee协议开放特性,通过射频芯片发送数据包。但是与互联网一样,我们访问网站的时候,为什么要用https,是因为安全机制,个人网络不希望被人攻击,这个时候需要考虑网络的健壮性,保密性。Zigbee采用AES-128,并需要硬件支持
全球的通用性和完好的开发性:由于Zigbee标准协议,因此不同厂家芯片利用Zigbee通信将是轻而易举的事情。如ti的方案,恩智浦的方案,只要都满足Zigbee,互相通信将不是问题。
Zigbee学习模式
单片机+Zigbee=学习模式
只花20%的实际学习单片机的外设,编程。要花80%的时间放在Zigbee协议栈。只有这样才能用Zigbee来做项目,但是很多书籍都是大篇介绍单片机的使用,各种外设的使用。
学Zigbee其实学的是网络编程。Zigbee的代码量其实是挺大的,不要一上来就分析代码,要明白整个协议的设计,才能明白代码,才能读懂代码。
抓包分析:如果没有抓包能力,传输的数据就没法知道是上面什么意思,当网络不通的时候就没法分析。如果掌握抓包能力,发的任何信息都能知道是上面意思,这样才能把Zigbee掌握透彻。
Zigbee联盟
Zigbee协议标准的一个协会。
Zigbee硬件平台
TI,Jennic,Silicon Labs
不同厂家都有自己硬件上的芯片,都有自己软件的协议栈。
Zigbee协议栈
Zigbee协议实现的代码库
Zigbee协议栈,有一个分层的概念。不管是软件还是硬件项目,达到一定规模之后,都要进行分层,不分层的话,项目的管理,可扩展性等等效率问题解决不了。
Zigbee分层
最下面是IEEE802.15.4是一个标准,它规定了协议的物理层和MAC层,再上面是Zigbee的网络层Zigbee NWK(network)和应用层。网络层和应用层又分很多模块,为什么呢?
首先网络分层以后,要有加密特性(Security),再往上是一个Zigbee应用支持的子层,在网络层和应用层之间又开辟了一个子层(Zigbee ApplicaTIon Support Subplayer(APS))这个层起到承上启下的作用。承上指的是给整个Zigbee应用的框架。
Zigbee会根据不同的场景(ApplicaTIon Object),比如智能家居,能源,工业等等不同的场景,有一个库的概念。
针对设备终端的管理,又有单独的一个层,Zigbee Device object。
学习Zigbee就是学些Zigbee层与层之间的实现,或者说掌握层与层之间的交互,只有把各个功能模块之间了解清楚,Zigbee才有可能吃透。
IEEE802.15.4协议
Zigbee学习第一个要搞明白的就是Zigbee的物理层和Mac层,为什么呢?我们学习单片机,其实就是和硬件打交道,Zigbee通讯也是建立在硬件的基础之上的,硬件基础指的就是射频,要搞清楚这个无线射频到底是怎么来通讯的。如果说底层搞不清的话,应用层也是很难理解,因为它很抽象。-----所以说要搞清楚802.15.4这个协议。
Zigbee是由Zigbee联盟所主导的标准,定义了网络层,安全层和应用层,以及各种应用的产品架构;而由IEEE所制定的802.15.4标准,则是定义了物理和MAC层。
Zigbee协议,Zibgee联盟和IEEE组织都参与制定。
Zigbee网络分层
下面是MAC层和PHY层,其实几个网络协议都差不多,只是底层的实现不同。
比如wifi,wifi为什么能跑TCP/IP协议,wifi的物理层和以太网的物理层是完全不同的,如果没有把MAC和物理层分层的话,wifi是没有办法很容易的跑TCP/IP协议的。有了分层,我们就可以把以太网协议移植到射频里面来。
物理层频带参数
三个频段,国内用得最多是2.4Ghz-2.4835Ghz,在2.4G划分了16个信道(信道11到信道26),信道与信道的带宽是5Mhz,信道与wifi信道有交叉(如果应用中信号通讯不稳定,可以看下使用的信道是否和wifi相同,被占用比较多)
868MHZ--美国
915MHZ--欧洲
把数字信号变成一个射频信号,涉及到调制,调整方式为FSK(频移键控),通过频率的变化来表示我们的0,1信号,把数字信号变为模拟信号。
物理帧格式
前导码(4字节):用于符合同步。
起始分隔符(1字节):用于帧同步。
物理头端(1字节):指定了物理服务数据单元的长度。
物理服务单元(