zigbee译为“紫蜂”,它与蓝牙相类似。是一种新兴的短距离无线通信技术,用于传感控制应用(sensor and control)。由ieee 802.15工作组中提出,并由其tg4工作组制定规范。
系统zigbee协议栈设计基于msstate_lrwpan。msstate_lrwpan是由美国密西西比州立大学的robert b. reese教授开发的一套zigbee协议的简化实现。该协议栈可用于多种硬件平台,实现了协调器、路由器和精简功能节点之间的树路由、直接消息传输并用静态绑定方法实现了间接路由[[xxxix]]。
课题在对该协议栈进行深入分析的基础上,根据本课题中使用硬件平台的实际情况进行修改,将其移植到msp430 + cc2420的硬件平台上来。程序使用c语言编写,使用iar公司的ew430工具作为集成开发环境,编译后下载到目标板的msp430芯片中。
协议栈使用有限状态机(fsm,finite state machine)的编程方式,在协议的每一层实现单独的有限状态机来跟踪该层的工作状态,整个协议栈采用嵌套调用的方式,上层调用下层的有限状态机,实现完整协议栈的运行。最顶层的有限状态机是应用程序支持子层(aps)的apsfsm(),需要周期性的调用,以维持整个协议栈正常运行。
经过对msstate_lrwpan协议各层源程序的原理和实现方法进行分析后发现,在将协议栈从一种硬件平台移植到另外一种硬件平台时,需要修改的主要是物理层(phy)和媒体接入控制层(mac),这两层与硬件联系紧密,需要针对节点硬件的实际连接方式作较大的修改,涉及的文件主要有cc2420.c、clockhal.c和halstack.c等。
phy层和mac层屏蔽了硬件的差异,上层协议通过服务接入点(sap,service access point)使用下层协议提供的服务,透明地完成对硬件的控制,所以网络层(nwk)和应用层(aps)等文件要作的改动较小。
1.1 ieee802.15.4标准
zigbee联盟已于2005年6月27日公布了第一份zigbee规范“zigbee specification v1.0”。这标准定义了在ieee 802.15.4-2003物理层和标准媒体接入控制层上的网络层及支持的应用服务。zigbee联盟的长期目标是能够建立基于互操作平台和配置文件的可伸缩、低成本嵌入式基础架构。
1.1.1 ieee802.15.4协议框架
ieee802.15.4标准采用分层结构。每一层为上层提供一系列特殊的服务:数据实体提供数据传输服务,管理实体则提供所有其他的服务。所有的服务实体都通过服务接入点sap(service access point)为上层提供一个接口,每个sap都支持一定数量的服务原语来实现所需的功能。
ieee 802.15.4标准堆栈架构是在osi七层模型的基础上根据市场和应用的实际需要定义了,如图2-1。其中,ieee 802.15.4标准定义了底层:物理层phy(physical layer)和媒体访问控制子层mac(medium access control sub-layer)层。zigbee联盟在此基础上定义了网络层nwk(network layer),应用层apl(application layer)架构。其中应用层包括应用支持子层aps(application support sub-layer),应用框架af(application framework),zigbee设备对象zdo(zigbee device objects)以及用户定义应用对象(manufacturer-defined application objects )。[16]
ieee 802.15.4工作在工业科学医疗ism(industrial、scientific and medical)频段,定义了两个物理层phy,分别工作在两个频段上:868/915 mhz和2.4ghz。其中低频段物理层覆盖了868mhz的欧洲频段和915mhz的美国与澳大利亚等国的频段。高频段2.4ghz则全球通用。
ieee 802.15.4 mac层采用避免冲突多载波信道接入csma-ca(carrier sense multiple access with collision avoidance)方式,主要负责传输信标帧,同步以及提供可信赖的传输机制。
1.1.2 网络节点类型
在w-pan中有三种网络角色:pan网络协调器、协调器和设备。这三种角色在ieee 802.15.4规范中分别对应zigbee协调器zc(zigbee coordinator)、zigbee路由器zr(zigbee router)和终端设备zed(zigbee end device)。
协调器和路由器只能是全功能器件ffd。一个pan的网络中,至少要有一个全功能器件成网络的协调器,它可以看作是一个pan的网关节点(sink节点),它是网络建立的起点,负责pan网络的初始化,确定pan的id号和pan操作的物理信道并统筹短地址分配,充当信任中心和储存安全密钥,与其他网络的连接等。协调器在加入网络之后获得一定的短地址空间。这个空间内,他有能力允许其他节点加入网络,并分配短地址。当然协调器还具备路由和数据转发的功能。在任何一个拓扑网络上,所有设备都有一个唯一的64位ieee长地址,该地址可以在pan中用于直接通信。或者当所有设备之间都已经存在连接时,可以将其转变为16位的网络短地址分配给pan设备。因此在设备发起连接时采用的是64位的长地址,只有连接成功后,系统分配了pan的标志符后,才能采用16位的短地址来通信。路由器可以只运行一个存放有路由协议的精简协议栈,负责网络数据的路由,实现数据中转功能。
在网络中最基本的节点就是终端节点zed,一个终端节点可以是全功能器件ffd或者是精简功能器件rfd。
1.2.1 ieee 802.15.4
ieee802.15.4包括用于低速无线个人域网lr-wpan的物理层phy和媒体接入控制层mac两个规范。图2-4给出了ieee 802.15.4的分层参考模型。
1.2.1.1 ieee 802.15.4 phy层
物理层的作用主要是利用物理介质为数据链路层提供物理连接,负责处理数
据传输率并架空数据出错率,以便透明低传送比特流。zigbee协议的物理层主要负责以下任务:
(1)启动和关闭rf收发器。
(2)信道能量检测。
(3)对接收到的数据报进行链路质量指示lqi(link quality indication)。
(4)为csma/ca算法提供空闲信道评估cca(clear channel assessment)。
(5)对通信信道频率进行选择。
(6)数据包的传输和接收
ieee 802.15.4的物理层定义了物理信道和mac子层间的接口,提供数据服务和物理层管理服务。物理层数据服务从无线物理信道上收发数据,物理层管理服务维护一个物理层相关数据组成的数据库。
1.2.1.2 ieee 802.15.4 mac层
ieee 802.15.4媒体介入控制层的沿用了传统无线局域网中的带冲突避免的载波多路侦听访问技术csma/ca方式,以提高系统的兼容性。这种设计,不但使多种拓扑结构网络的应用变得简单,还可以实现非常有效的功耗管理。
mac层完成的具体任务如下:
(1)协调器产生并发送信标帧(beacon)。
(2)普通设备根据协调器的信标帧与协调器同步。
(3)支持pan网络的关联(association)和取消关联(disassociation)操作。
(4)为设备的安全性提供支持。
(5)使用csma-ca机制共享物理信道。
(6)处理和维护时隙保障gts(guaranteed time slot)机制。
(7)在两个对等的mac实体之间提供一个可靠的数据链路。
在ieee 802.15.4的mac层中引入了超帧结构和信标帧的概念。这两个概念的引入极大了方便了网络管理,我们可以选用以超帧为周期组织lr-wpan网络内设备间的通信。每个超帧都以网络协调器发出信标帧为始,在这个信标帧中包含了超帧将持续的时间以及对这段时间的分配等信息。网络中的普通设备接收到超帧开始时的信标帧后,就可以根据其中的内容安排自己的任务,例如进入休眠状态直到这个超帧结束。
mac子层提供两种服务:mac层数据服务和mac层管理服务(mac sub-layer management entity,mlme)。前者保证mac协议数据单元在物理层数据服务中正确收发,后者维护一个存储mac子层协议相关信息的数据库。
1.3 zigbee协议分析
1.3.1 zigbee协议
zigbee的协议栈结构是由一系列称为层的协议块所组成的。每个层为上一层提供一系列特定的服务。数据入口提供数据传输的服务,管理入口提供其余的所有服务。每个服务接口都通过sap(service access point)接口与上一层进行数据交换,每个sap都支持一系列的服务原语。
zigbee协议栈是基于osi(open systems interconnection)标准的,但只定义了所需要的那些层。主要由物理层phy,媒体接入层mac,网络层以及应用框架层组成,框架图如图所示。其中,phy层和mac层采用了ieee 802.15.4协议标准。
zigbee网络层主要用于zigbee的无线个人区域网wpan网的组网连接,数据管理以及网络安全等。
zigbee应用框架层主要为zigbee技术的实际应用提供一些应用框架模型等,以便对zigbee技术的开发应用,在不同的应用场合,其开发应用框架不同,从目前来看,不同厂商提供的应用框架是有差异的。
1.3.2 zigbee网络层
网络层需要在功能上保证与ieee 802.15.4标准兼容,同时也需要上层提供合适的功能接口。
对于网络层,其完成和提供的主要功能如下:
(1)产生网络层的数据包:当网络层接受到来自应用子层的数据包,网络层对数据包进行解析,然后加上适当的网络层包头向mac传输。
(2)网络拓扑的路由功能:网络层提供路由数据包的功能,如果包的目的节点是本节点的话,将该数据包向应用子层发送。如果不是,则将该数据包转发给路由表中下一结点。
(3)配置新的器件参数:网络层能够配置合适的协议,比如建立新的协调器并发起建立网络或者加入一个已有的网络。
(4)建立pan网络
(5)连入或脱离pan网络:网络层能提供加入或脱离网络的功能,如果节点是协调器或者是路由器,还可以要求子节点脱离网络。
(6)分配网络地址:如果本节点是协调器或者是路由器,则接入该节点的字节点的网络地址由网络层控制。
(7)邻居节点的发现:网络层能发现维护网络邻居信息。
(8)建立路由:网络层提供路由功能。
(9)控制接收:网络层能控制接收器的接受时间和状态。
zigbee网络层的结构
为了向应用层提供接口,网络层提供了两个功能服务实体,分别为数据服务实体nlde和管理服务实体nlme。nlde通过nlde-sap为应用层提供数据传输服务,nlme通过nlme-sap为应用层提供网络管理服务,并且,nlme还完成对网络信息库nib的维护和管理。
1.3.3 zigbee应用层
zigbee应用层包括应用支持子层aps、应用框架af、zigbee设备对象zdo。它们共同为各应用开发者提供统一的接口。
1.3.3.1 应用支持子层aps
aps层主要功能:
(1)aps层协议数据单元apdu的处理。
(2)apsde提供在同一个网络中的应用实体之间的数据传输机制。
(3)apsme提供多种服务给应用对象,这些服务包括安全服务何绑定设备,并维护管理对象的数据库,也就是我们常说的aib。
1.3.3.2 应用框架af
应用框架(application framework)为各个用户自定义的应用对象提供了模板式的活动空间,为每个应用对象提供了键值对kvp服务和报文msg服务两种服务供数据传输使用。
每个节点除了64位的ieee地址,16位的网络地址,每个节点还提供了8位的应用层入口地址,对应于用户应用对象。端点0为zdo接口,端点1至240供用户自定义用于对象使用,端点255为广播地址,端点241 -254保留将来使用。每一个应用都对应一个配置文件(profile)。配置文件包括:设备id(device id),事务集群id(cluster id),属性id(attribute id)等。af可以通过这些信息来决定服务类型。
1.3.3.3 zigbee设备对象zdo
zdo是一个特殊的应用层的端点(endpoint)。它是应用层其他端点与应用子层管理实体交互的中间件。它主要提供的功能如下:
(1)初始化应用支持子层,网络层。
(2)发现节点和节点功能。在无信标的网络中,加入的节点只对其父节点可见。而其他节点可以通过zdo的功能来确定网络的整体拓扑结构已经节点所能提供的功能。
(3)安全加密管理:主要包括安全key的建立和发送,已经安全授权。
(4)网络的维护功能。
(5)绑定管理:绑定的功能由应用支持子层提供,但是绑定功能的管理却是由zdo提供,它确定了绑定表的大小,绑定的发起和绑定的解除等功能。
(6)节点管理:对于网络协调器和路由器,zdo提供网络监测、获取路由和绑定信息、发起脱离网络过程等一系列节点管理功能。
zdo实际上是介于应用层端点和应用支持子层中间的端点,其主要功能集中在网络管理和维护上。应用层的端点可以通过 zdo提供的功能来获取网络或者是其他节点的信息,包括网络的拓扑结构、其它几点的网络地址和状态以及其他几点的类型和提供的服务等信息。
1.4 zigbee网络拓扑结构
zigbee网络支持多种网络拓扑结构,最典型的网络结构是星型网络的拓扑结构。对于星型网络,由一个协调器和多个终端节点组成。在星型网络中,所有的通信都是通过协调器转发。这样的网络结构有三个缺点:一是会增加协调器的负载,对协调器的性能要求很高;二是协调协作都通过协调器转发的话,会极大的增加系统的延时,使得系统的实时性受到影响;三是单一节点的破坏造成整个网络的瘫痪,降低了网络的鲁棒性。
除了支持星型网络以外,zigbee还支持树状(tree)和网状(mesh)等对等网络,如图2-11。在对等网络中,也存在一个pan协调器(coordinator),但是它已经不是网络的主控制器,而是主要起到发起网络和组网的作用。在对等网络中,一个设备在另一设备的通信范围之内,他们就可以互相通信。因此,对等网络拓扑结构统一构成较为复杂的网络结构。对等网络拓扑结构主要在工业检测和控制,无线传感网络,供应物资跟踪,农业智能化以及安全监控方面都有广泛的应用。在网络中,各个设备之间发送消息时,使用了多跳传输,以增大网络的覆盖范围。其中,组网的路由协议是采用了无线自组网按需平面距离矢量aodv路由协议(ad hoc on demand distance vector routing),无论是星型拓扑还是对等拓扑,每个独立的pan都有一个唯一的标志符pan id,用以同一个网络之内节点的互相识别和通信。
柔性振动盘视觉散料 anyfeeder
富士康大规模招聘,为即将到来的iPhone 14生产工作做准备
机器学习框架里不同层面的隐私保护
基于瑞芯微RK3399处理器的核心板Y-3399介绍
纳雷MR82无人机避障雷达技术方案
zigbee协议栈各层的功能
!供应 PCR-2000L PCR 2000L PCR-10
机器人将会取代人类?微软告诉你真相
河北首个A+P网络商用部署站点完成,华为助力河北联通5G网络建设
工程师说 | 自制硬件还是外购SOM和SBC系统方案?如何选择才能加快产品设计周期
全球首款半固态锂离子电池即将推向全球市场
额温枪准确性取决于红外传感器的稳定性
嵌入式系统与人工智能是怎样协同发展的
iphone8发布会中文视频直播地址,iphone8上市价高达8千多元!库克急疯了
真的凹凸了!国内创业黑马AR公司首次被曝出倒闭
变电站可以实现对光伏电站、开闭所智能终端设备
中国首条5G隧道即将迎来物联网感知设备等5G相关技术
LoRa技术是如何实现精确定位的
疫情让多国推迟5G频谱拍卖 5G商用不确定因素增加
业界首款!宝德重磅发布自强系列龙芯单路服务器