协议栈里常见的英文缩写:
SDK: software development kit
BSP: board support package(板级支持包):硬件电路图,PCB. 相应的源码
API: Application Programming Interface 编程应用接口
CBC-MAC: Cipher Block Chaining Message Authentication Code
CCM: Counter with CBC-MAC (mode of operation)
CCM*: Extension of CCM
FCS: Frame Check Sequence
HAL: Hardware Abstraction Layer 把同类型的设备封装成标准的统一的API
IO: Input/Output
MIC: Message Integrity Code
MPDU: MAC Protocol Data Unit
PAN: Personal Area Network
PER: Packet Error Rate
RF: Radio Frequency
RSSI: Received Signal Strength Indicator
SFD: Start of Frame Delimiter
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
摘自开发板文档和”Z-Stack Develper’s Guide”
协议栈的分层:
ZigBee 的协议分为两部分,IEEE 802.15.4 定义了 PHY(物理层) MAC和 (介质访问层)技术规范;ZigBee联盟定义了 NWK(网络层)、APS(应用程序支持子层)、APL(应用层)技术规范。ZigBee协议栈就是将各个层定义的协议都集合在一直,以函数的形式实现,并给用户提供 API(应用层),用户可以直接调用.
物理层( PHY)
物理层定义了物理无线信道和 MAC 子层之间的接口,提供物理层数据服务和
物理层管理服务。
物理层内容:
1)ZigBee 的激活;
2)当前信道的能量检测;
3)接收链路服务质量信息;
4)ZigBee 信道接入方式;
5)信道频率选择;
6)数据传输和接收。
MAC层
MAC层负责处理所有的物理无线信道访问,并产生网络信号、同步信号;支持PAN连接和分离,提供两个对等MAC实体之间可靠的链路。
MAC层功能:
1)网络协调器产生信标;
2)与信标同步;
3)支持 PAN(个域网)链路的建立和断开;
4)为设备的安全性提供支持;
5)信道接入方式采用免冲突载波检测多址接入(CSMA-CA)机制;
6)处理和维护保护时隙(GTS)机制;
7)在两个对等的 MAC 实体之间提供一个可靠的通信链路
网络层(NWK)
ZigBee协议栈的核心部分在网络层。网络层主要实现节点加入或离开网络、接收或抛弃其他节点、路由查找及传送数据等功能。
网络层功能:
1)网络发现;
2)网络形成;
3)允许设备连接;
4)路由器初始化;
5)设备同网络连接;
6)直接将设备同网络连接;
7)断开网络连接;
8)重新复位设备;
9)接收机同步;
10)信息库维护。
应用层
ZigBee应用层框架包括应用支持层(APS)、ZigBee设备对象(ZDO)和制造商所定义的应用对象。
应用支持层的功能包括:维持绑定表、在绑定的设备之间传送消息。
ZigBee设备对象的功能包括:定义设备在网络中的角色(如ZigBee协调器和终端设备),发起和响应绑定请求,在网络设备之间建立安全机制。 ZigBee设备对象还负责发现网络中的设备,并且决定向他们提供何种应用服务。
ZigBee应用层除了提供一些必要函数以及为网络层提供合适的服务接口外,一个重要的功能是应用者可在这层定义自己的应用对象
应用程序框架(APF):
运行在ZigBee协议栈上的应用程序实际上就是厂商自定义的应用对象,并且遵循规范(profile)运行在端点1~ 240上。在ZigBee应用中,提供2种标准服务类型:键值对(KVP)或报文(MSG)
设备对象(ZDO):
ZigBee设备对象(ZDO)的功能包括负责定义网络中设备的角色,如:协调器或者终端设备。还包括对绑定请求的初始化或者响应,在网络设备之间建立安全联系等。实现这些功能, ZDO使用APS层的APSDE-SAP和网络层的NLME-SAP。ZDO是特殊的应用对象,它在端点(entire)0上实现。远程设备通过ZDO请求描述符信息,接收到这些请求时,ZDO会调用配臵对象获取相应描述符值
////////////////////////////////
在ZigBee网络中存在三种逻辑设备类型:Coordinator(协调器),Router(路由器)和
End-Device(终端设备)。ZigBee网络由一个Coordinator以及多个Router和多个
End_Device组成.
Coordinator(协调器)
协调器负责启动整个网络。它也是网络的第一个设备。协调器选择一个信道和一个网络ID(也称之为PAN ID,即Personal Area Network ID),
随后启动整个网络。协调器也可以用来协助建立网络中安全层和应用层的绑定(bindings)。
注意,协调器的角色主要涉及网络的启动和配臵。一旦这些都完成后,协调器的工作就像一个路由器(或者消失go away)。
由于ZigBee网络本身的分布特性,因此接下来整个网络的操作就不在依赖协调器是否存在。**不可以存在有多个协调器共用一个PAN ID**.
Router(路由器)
路由器的功能主要是:允许其他设备加入网络,多跳路由和协助它自己的由电池供电的终端设备的通讯。
通常,路由器希望是一直处于活动状态,因此它必须使用主电源供电。但是当使用树状网络拓扑结构时,允许路由间隔一定的周期操作一次,
这样就可以使用电池给其供电。
End-Device(终端设备)
终端设备没有特定的维持网络结构的责任,它可以睡眠或者唤醒,因此它可以可以是一个电
池供电设备。通常,终端设备对存储空间(特别是RAM的需要)比较小。