zigbee协议栈各层的功能
zigbee协议栈各层的功能

竭诚为您提供优质文档/双击可除zigbee协议栈各层的功能篇一:zigbee协议栈各层分析3.4.2协议栈概况本课题研究的系统zigbee协议栈设计基于msstate_lRwpan。
msstate_lRwpan是由美国密西西比州立大学的Robertb.Reese教授开发的一套zigbee协议的简化实现。
该协议栈可用于多种硬件平台,实现了协调器、路由器和精简功能节点之间的树路由、直接消息传输并用静态绑定方法实现了间接路由[[xxxix]]。
课题在对该协议栈进行深入分析的基础上,根据本课题中使用硬件平台的实际情况进行修改,将其移植到msp430+cc2420的硬件平台上来。
程序使用c语言编写,使用iaR公司的ew430工具作为集成开发环境,编译后下载到目标板的msp430芯片中。
协议栈使用有限状态机(Fsm,Finitestatemachine)的编程方式,在协议的每一层实现单独的有限状态机来跟踪该层的工作状态,整个协议栈采用嵌套调用的方式,上层调用下层的有限状态机,实现完整协议栈的运行。
最顶层的有限状态机是应用程序支持子层(aps)的apsFsm(),需要周期性的调用,以维持整个协议栈正常运行。
经过对msstate_lRwpan协议各层源程序的原理和实现方法进行分析后发现,在将协议栈从一种硬件平台移植到另外一种硬件平台时,需要修改的主要是物理层(phy)和媒体接入控制层(mac),这两层与硬件联系紧密,需要针对节点硬件的实际连接方式作较大的修改,涉及的文件主要有cc2420.c、clockhal.c和halstack.c等。
phy层和mac层屏蔽了硬件的差异,上层协议通过服务接入点(sap,serviceaccesspoint)使用下层协议提供的服务,透明地完成对硬件的控制,所以网络层(nwk)和应用层(aps)等文件要作的改动较小。
3.4.3物理层phy物理层是协议的最底层,承担着和外界直接作用的任务。
zigbee 协议栈

zigbee 协议栈Zigbee 协议栈。
Zigbee 是一种无线通信协议,它被设计用于低数据速率、低功耗的应用场景,如智能家居、工业自动化、传感器网络等。
Zigbee 协议栈是指在 Zigbee 网络中的协议层,它定义了 Zigbee 网络中各个节点之间的通信规则和协议。
Zigbee 协议栈主要包括物理层、MAC 层、网络层和应用层。
物理层定义了无线通信的调制解调方式、频率和功率控制等;MAC 层负责数据的传输和接收,以及网络中节点的管理;网络层则负责路由和数据包转发;应用层则定义了具体的应用协议和数据格式。
在 Zigbee 协议栈中,物理层使用了 IEEE 802.15.4 标准,它定义了无线通信的物理层和 MAC 层规范,包括频率、调制方式、数据帧格式等。
MAC 层定义了数据的传输方式,包括信道访问方式、数据帧格式、数据重传机制等。
网络层则定义了路由协议和数据包转发规则,以实现多跳网络的数据传输。
应用层则定义了具体的应用协议,如 Zigbee Home Automation(ZHA)、Zigbee Light Link(ZLL)等。
Zigbee 协议栈的设计遵循了低功耗、低成本、可靠性和安全性的原则。
它采用了分层的设计,使得各个层之间的功能清晰明了,易于实现和维护。
同时,Zigbee 协议栈还支持多种网络拓扑结构,包括星型、网状和混合型网络,以满足不同应用场景的需求。
在实际的应用中,开发人员可以使用 Zigbee 协议栈来快速构建 Zigbee 网络应用。
通过使用 Zigbee 协议栈,开发人员可以方便地实现节点之间的数据通信、网络管理和安全保护,从而加速产品的开发周期和降低开发成本。
总的来说,Zigbee 协议栈是 Zigbee 网络中的核心部分,它定义了 Zigbee 网络中节点之间的通信规则和协议。
通过使用 Zigbee 协议栈,开发人员可以快速构建低功耗、低成本、可靠性和安全性的Zigbee 网络应用,满足不同应用场景的需求。
zigbee通信协议

Zigbee通信协议1. 概述Zigbee是一种低功耗、低数据速率的无线通信协议,用于物联网设备之间的通信。
它基于IEEE 802.15.4标准,适用于各种不同的应用领域,如智能家居、工业自动化和智能农业等。
2. Zigbee网络拓扑结构Zigbee网络采用了星型和网状拓扑结构。
在星型拓扑结构中,设备直接连接到一个中心节点,而在网状拓扑结构中,设备可以直接连接到其他设备,从而形成一个多层次的网络。
3. Zigbee网络协议栈Zigbee网络协议栈由物理层、MAC层、网络层和应用层组成。
•物理层:负责无线信号的传输和接收,定义了无线通信的频率、数据速率和功耗等参数。
•MAC层:提供对物理层的抽象,负责设备之间的无线通信和网络管理。
•网络层:负责设备之间的路由选择和数据包转发。
•应用层:提供各种应用程序所需的服务和功能,如设备发现、数据传输和网络配置等。
4. Zigbee通信机制Zigbee使用CSMA/CA(Carrier Sense Multiple Access/Collision Avoidance)机制来进行通信。
每个设备在发送数据之前会先进行信道侦听,如果信道空闲,则设备可以发送数据;如果信道被占用,则设备需要等待一段时间后再次侦听,以避免数据碰撞。
5. Zigbee安全性Zigbee提供了多种安全机制来保护通信过程中的数据安全性和隐私性。
其中包括:•认证:通过设备之间的互相认证,确保只有合法的设备可以加入网络。
•加密:使用对称加密算法对数据进行加密,防止数据被窃取或篡改。
•密钥管理:为每个设备生成唯一的密钥,并定期更新密钥以提高安全性。
6. Zigbee应用领域Zigbee通信协议在各种应用领域都有广泛的应用,下面列举了几个常见的应用领域:•智能家居:Zigbee可以用于连接智能家居设备,如智能灯泡、智能插座和智能门锁等,实现远程控制和自动化功能。
•工业自动化:Zigbee可以用于工业自动化中的传感器网络,实现设备之间的数据采集和监控。
zigbee 协议栈

zigbee 协议栈Zigbee是一种基于IEEE 802.15.4标准的无线通信协议,它是一种低功耗、短距离的无线网络协议,可以用于物联网中各种设备的通信。
Zigbee协议栈是指一套软件的层次结构,用于实现Zigbee协议的功能和特性。
Zigbee协议栈由四个层次组成:应用层,网络层,MAC层和物理层。
应用层是Zigbee协议栈的最高层,它提供了应用程序与其他网络层之间的接口。
应用层负责处理数据的收发,以及定义数据的格式和协议。
应用层也负责处理设备与设备之间的通信,例如传感器与控制器之间的通信。
网络层是Zigbee协议栈的中间层,它负责网络的发现和路由选择。
网络层的主要功能是将数据传输到目标设备,以及维护网络拓扑结构。
网络层使用一种叫做AODV(Ad-hoc On-Demand Distance Vector)的路由选择算法来决定数据的传输路径。
MAC层是Zigbee协议栈的第二层,它负责实现对数据的传输和控制。
MAC层的主要功能包括数据的处理、帧的编码和解码、对信道的管理等。
MAC层使用CSMA-CA(Carrier Sense Multiple Access with Collision Avoidance)协议来控制数据的传输,并通过BEACON帧来管理设备之间的通信。
物理层是Zigbee协议栈的最底层,它负责将数据从电子信号转换为无线信号,并传输到接收设备。
物理层的主要功能包括信号的调制和解调、信道编码和解码、信号的传输和接收等。
Zigbee协议栈还支持一种叫做ZDO(Zigbee Device Object)的设备对象。
ZDO是一个与设备相关的软件模块,提供了设备的管理和控制功能。
ZDO负责设备的发现、加入网络、离开网络、重置等操作,并通过指定的应用程序接口来与设备进行通信。
总的来说,Zigbee协议栈是一个非常复杂的系统,包含了多个层次和各种功能。
它通过不同的层次和模块来实现Zigbee协议的各种特性和功能,从而使得物联网设备之间可以方便地进行通信和控制。
zigbee协议位于osi的哪层

竭诚为您提供优质文档/双击可除zigbee协议位于osi的哪层篇一:zigbee无线网络协议层各层的作用zigbee无线网络协议层各层的作用zigbee无线网络协议层共分为4层,分别为phy层,mac 层,nwk层和apl层,各层作用的简单介绍如下。
1.phy层在zigbee无线网络中,phy层位于协议层的最底层,是距离硬件最近的层,它直接控制并与无线收发器通信。
phy 层负责激活发送或接受数据包的无线设备。
phy层还选择信道的频率并确保该频道当前没有被任何一个其他网络中的设备所使用。
2.mac层mac层为phy层和nwk层提供了接口,它负责产生信标和为信标(beacon-enabled网络)同步设备,mac层还提供建立连接和解除连接的服务。
3.nwk层nwk层接口负责管理网络形成和路径选择。
路径选择就是选择将信息转发到目标设备的路径。
zigbeecoordinator 和router负责发现和维护网络中的路径,zigbee终端设备不能执行发现路径。
zigbeecoordinator或者router将代表终端执行路径发现,zigbeecoordinator的nwk层负责建立一个新的网络和选择网络拓扑(树型,星型,或网状网络拓扑),zigbeecoordinator还为网络中的设备分配网络地址。
4.apl层apl层是zigbee无线网络中的最高协议层并且管理应用对象。
生产商开发应用对象来为各种应用定制一款设备,在zigbee设备中,应用对象控制和管理协议层,单个的设备中最多可以有240个应用对象。
在开发一个应用时,zigbee标准提供了使用应用框架的选择。
应用框架是一系列关于特定应用消息格式和处理动作的协议。
使用应用框架可以使不同供应商开发的同一款应用的产品之间有更好的互操作性。
篇二:网络题目+答案选择:1.ip、telnet、udp分别是osi参考模型的哪一层协议?a.1、2、3b.3、4、5c.4、5、6d.3、7、42.如何跟踪Rip路由更新的过程?a.showiprouteb.debugipripc.showipripd.cleariproute*3.Rip的最大跳数是:__________________a.24b.18c.15d.124.ieee802.1qVlan能支持的最大个数为?a.256b.1024c.2048d.40945.在访问列表中,有一条规则如下:access-list131permitipany192.168.10.00.0.0.255eq ftp在该规则中,any的意思是表示:____________ a.检察源地址的所有bit位b.检查目的地址的所有bit位c.允许所有的源地址d.允许255.255.255.2550.0.0.0 6.访问列表是路由器的一种安全策略,你决定用一个标准ip访问列表来做安全控制,以下为标准访问列表的例子为:______________a.access-liststandard192.168.10.23b.access-list10deny192.168.10.230.0.0.0c.access-list101deny192.168.10.230.0.0.0d.access-list101deny192.168.10.23255.255.255.255 7.当Rip向相邻的路由器发送更新时,它使用多少秒为更新计时的时间值?a.30b.20c.15d.258.如果子网掩码是255.255.255.128,主机地址为195.16.15.14,则在该子网掩码下最多可以容纳多少个主机?a.254b.126c.62d.309.ieee802.1q数据帧用多少位表示Vida.10b.11c.12d.1410.如何在R2624路由器上测试到达目的端的路径a.tracertb.pathpingc.tracerouted.ping11.190.188.192.100属于哪类ip地址a.a类b.b类c.c类d.d类e.e类12.Rip对应的端口号是什么a.25b.23c.520d.6913.校园网设计中常采用三层结构,s1908主要应用在哪一层a.核心层b.分布层c.控制层d.接入层14.对应osi参考模型的网络层在tcp/ip定义叫什么名称?a.应用层b.网际层c.会话层d.传输层15.下列哪些访问列表范围符合ip范围的扩展访问控制列表?a.1-99b.100-199c.800-899d.900-99916.stp交换机缺省的优先级为:______________a.0b.1c.32767d.3276817.ieee制定实现stp使用的是下列哪个标准a.ieee802.1wb.ieee802.3adc.ieee802.1dd.ieee802.1x 18.R2624路由器如何验证接口的acl应用a.showintb.showipintc.showipd.showaccess-list 19.数据包丢失一般是由网络_________________引起的。
zigbee协议栈代码主要名词解释

zigbee协议重要名词解释及英文缩写(转载)网络层功能:1. 加入和退出网络2. 申请安全结构3. 路由管理4. 在设备之间发现和维护路由5. 发现邻设备6. 储存邻设备信息当适当的重新分配地址联合其他设备,ZIGBEE2006可以依赖于网络协调者建立一个新网络.ZIGBEE应用层由APS(应用支持)、AF(应用结构)、ZDO(ZIGBEE设备对象)和厂商自定义应用对象组成。
APS功能1. 绑定维持工作台,定义一个两个合拢的设备进行比较建立他们的需要和服务。
2. 促进信息在设备之间的限制3. 组地址定义,移除和过滤组地址消息4. 地址映射来自于64位IEEE地址和16位网络地址5. 分裂、重新组装和可靠数据传输ZDO功能1. 定义设备内部网络(ZigBee协调者和终端接点)2. 开始和/或回答绑定请求3. 在网络设备中建立一个网络安全关系4. 在网络中发现设备和决定供给哪个应用服务ZDO同样有责任在网络中发现设备和为他们提供应用服务。
1.1.4 网络拓扑ZIGBEE网络层支持星状、树状和网状拓扑。
在星状拓扑中网络受约束与单个设备,呼叫COORD。
COORD有责任建立和维持在网络中发现的设备和其他所有设备,都知道的终端接点直接和COORD 通信。
在网状和树状拓扑中,COORD有责任建立一个网络和选择几个关键网络参数,但是网络有有可能直接应用于ZigBee路由器。
在树状网络中,利用分等级路由策略完成路由传输数据和控制消息直通网络。
树状网络在802.15.4-2003中可以采用信标引导通信。
网状网络将允许所有对等网络通信。
ZIGBEE 路又将不能在网状网络中发射规则的IEEE802.15.4-2003信标。
缩写含义AIB:应用支持层消息AF:应用结构APDU:应用支持层以下数据单位APL:应用层APS:应用支持层APSDE:应用支持层以下数据实体APSDE-SAP:应用支持层数据实体—服务通道APSME:应用支持层管理实体APSME-SAP:应用支持层管理实体—服务通道ASDU:APS服务数据单位BRT:广播重试计时器BTR:广播处理记录BTT:广播处理工作台CCM*:CSMA-CA:载波多重监听通道——避免碰撞FFD:全部功能设备GTS:担保时间跟踪IB:消息数据LQI:连接质量指示LR-WPAN:低速率无线局域网MAC:控制层MCPS-SAP:控制层公共部分—服务通道MIC:消息完整代码MLME-SAP:控制层管理实体—服务通道MSC:消息序列图表MSDU:控制层服务数据单位MSG:消息服务类型NBDT:网络广播发送时间NHLE:下一个更高层实体NIB:网络层信息数据NLDE:网络层数据实体NLDE-SAP:网络层数据实体——服务通道NLME:网络层管理实体NLME-SAP:网络层管理实体——服务通道NPDU:网络层数据单位NSDU:网络服务数据单位NWK:网络OSL:打开系统联络PAN:局域网PD-SAP:物理层数据—指向服务通道PDU:协议数据单位PHY:物理层PIB:局域网消息PLME-SAP:物理层管理实体——指向服务通道POS:私人运作空间QOS:服务质量RREP:路由回答RN:路由接点SKG:SKKE:SSP:安全服务提供SSS:安全服务说明WPAN:无线局域网XML:可扩展语言ZB:ZIGBEEZDO:ZIGBEE设备对象2.1.1APSAPS提供一个工作台在网络层和应用层之间直接服务于ZDO和厂商自定义设备。
Zigbee 无线网络协议层各层的作用

Z i g b e e无线网络协议层各层的作用------------------------------------------作者xxxx------------------------------------------日期xxxx【精品文档】ZigBee 无线网络协议层各层的作用ZigBee 无线网络协议层共分为 4 层,分别为 PHY 层,MAC 层,NWK 层和 APL层,各层作用的简单介绍如下。
1.PHY 层在 ZigBee 无线网络中,PHY 层位于协议层的最底层,是距离硬件最近的层,它直接控制并与无线收发器通信。
PHY 层负责激活发送或接受数据包的无线设备。
PHY 层还选择信道的频率并确保该频道当前没有被任何一个其他网络中的设备所使用。
2.MAC 层MAC 层为PHY 层和NWK 层提供了接口,它负责产生信标和为信标(beacon-enabled 网络)同步设备,MAC 层还提供建立连接和解除连接的服务。
3.NWK 层NWK 层接口负责管理网络形成和路径选择。
路径选择就是选择将信息转发到目标设备的路径。
ZigBee coordinator 和 router 负责发现和维护网络中的路径,ZigBee 终端设备不能执行发现路径。
ZigBee coordinator 或者 router 将代表终端执行路径发现,ZigBee coordinator 的 NWK 层负责建立一个新的网络和选择网络拓扑(树型,星型,或网状网络拓扑),ZigBee coordinator 还为网络中的设备分配网络地址。
4.APL 层APL 层是 ZigBee 无线网络中的最高协议层并且管理应用对象。
生产商开发应用对象来为各种应用定制一款设备,在 ZigBee 设备中,应用对象控制和管理协议层,单个的设备中最多可以有 240 个应用对象。
在开发一个应用时,ZigBee 标准提供了使用应用框架的选择。
应用框架是一系列关于特定应用消息格式和处理动作的协议。
ZigBee协议架构

ZigBee协议架构ZigBee协议是一种低功耗、近距离无线通信协议,主要应用在无线传感器网络(WSN)中。
它是由ZigBee联盟(ZigBee Alliance)所定义和推广的,旨在为物联网设备之间的通信提供一个标准化的解决方案。
本文将介绍ZigBee协议的架构和其主要组件,以及在物联网应用中的应用场景。
一、ZigBee协议架构概述ZigBee协议采用了分层的架构,以便于各个组件的模块化和扩展性。
ZigBee协议架构一般可分为两个主要层次:应用层和网络层。
下面将详细介绍每个层次的主要组件和功能。
1. 应用层应用层是ZigBee协议栈的顶层,负责实现各种应用的功能。
它可以与不同类型的传感器和执行器进行通信,并执行各种任务,如数据采集、控制和管理等。
应用层使用ZigBee Cluster Library(ZCL)定义了一系列的应用框架和应用集群,以便开发人员可以方便地构建自己的应用。
2. 网络层网络层是ZigBee协议栈的中间层,负责实现节点之间的通信和路由功能。
它使用ZigBee网络堆栈协议(ZigBee Network Stack Protocol)来处理数据包的发送和接收,以及路由选择和网络管理等功能。
网络层的核心组件包括ZigBee协调器(ZigBee Coordinator)、路由器(Router)和终端设备(End Device)。
二、ZigBee协议架构组件1. ZigBee协调器ZigBee协调器是在ZigBee网络中的关键组件,它负责启动和管理整个网络,以及分配网络地址和加密密钥等。
协调器可以与多个路由器和终端设备建立连接,并通过网络层协议进行数据传输和路由选择。
此外,协调器还负责处理网络中的任何故障或冲突,并重新分配资源以保持网络的可靠性和稳定性。
2. 路由器路由器是ZigBee网络中的中间节点,它负责转发数据包并实现网络层的路由选择功能。
路由器可以与其他路由器和终端设备建立连接,并通过网络层协议将数据包从源节点传输到目标节点。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
竭诚为您提供优质文档/双击可除zigbee协议栈各层的功能篇一:zigbee协议栈各层分析3.4.2协议栈概况本课题研究的系统zigbee协议栈设计基于msstate_lRwpan。
msstate_lRwpan是由美国密西西比州立大学的Robertb.Reese教授开发的一套zigbee协议的简化实现。
该协议栈可用于多种硬件平台,实现了协调器、路由器和精简功能节点之间的树路由、直接消息传输并用静态绑定方法实现了间接路由[[xxxix]]。
课题在对该协议栈进行深入分析的基础上,根据本课题中使用硬件平台的实际情况进行修改,将其移植到msp430+cc2420的硬件平台上来。
程序使用c语言编写,使用iaR公司的ew430工具作为集成开发环境,编译后下载到目标板的msp430芯片中。
协议栈使用有限状态机(Fsm,Finitestatemachine)的编程方式,在协议的每一层实现单独的有限状态机来跟踪该层的工作状态,整个协议栈采用嵌套调用的方式,上层调用下层的有限状态机,实现完整协议栈的运行。
最顶层的有限状态机是应用程序支持子层(aps)的apsFsm(),需要周期性的调用,以维持整个协议栈正常运行。
经过对msstate_lRwpan协议各层源程序的原理和实现方法进行分析后发现,在将协议栈从一种硬件平台移植到另外一种硬件平台时,需要修改的主要是物理层(phy)和媒体接入控制层(mac),这两层与硬件联系紧密,需要针对节点硬件的实际连接方式作较大的修改,涉及的文件主要有cc2420.c、clockhal.c和halstack.c等。
phy层和mac层屏蔽了硬件的差异,上层协议通过服务接入点(sap,serviceaccesspoint)使用下层协议提供的服务,透明地完成对硬件的控制,所以网络层(nwk)和应用层(aps)等文件要作的改动较小。
3.4.3物理层phy物理层是协议的最底层,承担着和外界直接作用的任务。
该层定义了物理无线信道和mac子层之间的接口,提供物理层数据服务和管理服务。
数据服务负责控制射频收发器的工作,从物理无线信道上收发数据,主要有以下几个方面的功能[[xl],[xli]]:(1)激活和休眠射频收发器;(2)信道能量检测;(3)检测接收到数据包的链路质量指示(lqi,linkqualityindication);(4)空闲信道评估(cca,clearchannelassessment);(5)收发数据。
为了提高协议栈的可移植性,让它可以灵活方便地应用于其它类型的硬件平台,从物理层中划分出一部分与硬件联系极为紧密的操作,形成硬件抽象层(hal,hardwareabstractlayer),这一层中的函数大多涉及到对硬件器件端口和寄存器的直接操作,包含对一部分硬件的初始化和一些中断函数入口定义。
硬件抽象层中的主要函数有:(1)halinit(void):对硬件抽象层的初始化。
包含了对串口uaRt和计时器mactimer的初始化。
(2)halinituart(void):对串口uaRt的初始化。
对连接uaRt的管脚设置i/o方向和功能,选择时钟信号源为smclk,设置波特率为57600,打开usaRt1的发送和接收使能并打开接收中断。
(3)halgetch(void):从接收缓存中读取数据。
(4)halgetchRdy(void):根据头指针和尾指针的位置判断是否接收到数据。
(5)halputch(charc):等待发送缓存可用时,向其中写入一个字节的数据进行发送。
(6)halinitmactimer(void):初始化计时器。
(7)halgetprocessorieeeaddress(byte*buf):获取节点的64位ieee长地址,存在buf指向的数组内。
(8)halwaitms(uint32msecs):等待毫秒级的一段时间。
(9)halsleep(uint32msecs):在看门狗溢出时间内处于lpm1低功耗模式。
(10)uart1_intr(void):uaRt1中断处理函数,从接收缓存RxbuF1中读取接收到的数据。
(11)watchdog_timer(void):看门狗中断处理函数,从lpm1低功耗休眠模式中退出。
在物理层phy中实现的主要是初始化函数和物理层有限状态机phyFsm。
物理层的初始化函数phyinit(void)对存储区域进行了初始化,将堆栈清空,并指示物理层有限状态机进入空闲状态。
物理层有限状态机设计如图3-10所示。
图3-10物理层有限状态机phyFsm物理层有限状态机接收上层指令,做初始化射频模块RF 和向RF发送数据包的工作。
数据包发送给RF模块后需要等待RF模块返回的消息以确认数据被正确地发出,如果超时,将在RF模块空闲时,再次重发。
物理层的数据帧格式[1]如图3-11所示。
首先是四个字节的前导序列符(preamble),用于收发器从中提取时钟信号,完成片同步和符号同步;然后是帧定界符(sFd),其值固定为0xa7,标识一个物理帧的开始,保证收发器与字节的同步;接着是负载长度域,由一个字节的低七位表示,因此物理帧的负载长度不能超过127个字节;最后是物理服务数据单元(psdu,physervicedataunit),也就是物理层向RF发出的数据会由cc2420自动加上相应的同步头,故在程序中不再考虑帧头的计算与添加。
3.4.4媒体接入控制层macmac层使用物理层提供的服务实现设备间的数据帧传输,负责设备间无线数据链路的建立、维护和终结,其提供的数据服务保证mac协议数据单元(pdu,protocoldataunit)在物理层的数据服务中能够正确收发。
mac层的主要有以下几个方面的功能[38]:(1)协调器产生并发送信标帧,普通设备根据信标帧与进行协调器同步;(2)支持无线信道通信安全机制;(3)提供csma-ca信道访问机制;(4)提供时隙保障(gts,guaranteedtimeslot)机制;(5)提供不同设备mac层间的可靠传输。
在mac层中,设备有两种地址格式:16位的短地址(shortaddress)和64位的扩展地址(extendedaddress)。
16位短地址是设备加入pan网络时,由协调器为其分配的网内局部地址,随着网络拓扑和设备在pan网络中所处层次的不同会有所变化。
64位扩展地址是由ieee分配的全球唯一地址,在设备制造时即已确定且不可改变。
mac层工作时的很多特性由一些特定的数据决定[[xlii]]。
这些数据有的是由协议和硬件决定的常量,有的是可以由上层软件根据需要通过相应的服务原语来设置或改变的。
这些可以改变的数据称为属性,把它们集中在一起管理,称之为pib(paninformationbase)。
可以通过服务原语实现对这些属性的操作。
mac层的主要函数有:(1)macinit(void):mac层的初始化函数,初始化mac_pib,清空节点间的连接。
(2)macwarmstartRadio(void):初始化RF射频模块,设置使用的信道、panid和当前节点短地址。
(3)mactxdata(void):发送mac层数据包。
首先格式化数据帧头,然后格式化信息来源地址和来源panid,再格式化信息目的地址和目的panid,并格式化数据帧的序列号(dsn,dataserialnumber),最后格式化msb和lsb,写入数据帧的长度,并交给下层进行发送。
(4)macparsehdr(void):分析获取接收到的数据帧的帧头所包含的信息。
从中读取目的panid,目的地址和来源地址等。
(5)macFormatbeacon(void):格式化信标帧。
依次填入魔术数,当前节点的深度,网络层协议版本号,协议栈配置,zigbee协议id和超帧。
(6)macparsebeacon(void):处理收到的信标帧。
从信标帧中读取超帧、协议的id和版本号等,如果有与本设备不兼容的地方,则丢弃。
如果检验通过,条件符合,则以发出信标帧的传感器节点作为父节点。
设置完成之后发出接收到信标帧的确认信息。
(7)macparseassocResponse(void):处理协调器对加入请求的返回。
如果协调器同意加入,则从中获取分配给自已的短地址,并将自已的panid设置成和协调器相同。
记录父节点的长地址并发送加入成功的确认信息。
(8)maccheckdataRejection(void):判断是否对接收到的信息进行处理。
对RFd来说,只有由父节点发出的数据帧才会被接受;对路由器来说,只接受来自与自已关联的传感器节点的数据帧。
mac的有限状态机设计为主状态机macFsm、发送状态机txFsm和接收状态机RxFsm三个。
发送状态机txFsm和接收状态机RxFsm完成对数据包的提交和下发,并完成一些应答等一般请求。
接收状态机RxFsm的设计如图3-12所示。
如果物理层没有数据提交上来,则保持空闲状态。
物理层提交的数据包有三种形式:应答帧、数据帧和请求帧。
对于应答帧,RxFsm 可直接处理,不需要交给主状态机macFsm;对于数据帧,如果通过验证确信是发送给本节点的,刚提交给网络层处理,并在mac层将数据包释放,等待处理下一个数据包(注意:不能释放数据包的存储区域,因为网络层处理时会从此区域中读取数据);对于请求帧,RxFsm没有办法处理,将交由主状态机macFsm决定,如果macFsm已处理,则释放该数据包,清除存储区域。
图3-12mac层接收状态机RxFsm发送状态机txFsm的设计如图3-13所示。
每次只允许一个数据包处一在发送状态,当之前发出的数据包返回状态不为成功时,或者物理层协议栈处于忙碌状态,txFsm会保持空闲状态;如果启动时发生错误,会尝试重发数据,直至超过设定的最大重试次数,则不再处理,进入空闲状态;在启动正常的情况下,如果收到应答帧或数据帧不要求应答,则直接进入空闲状态,如果超时后尚未收到应答帧,则返回相应指示后进入空闲状态。
图3-13mac层发送状态机txFsm主状态机macFsm的设计如图3-14所示,主要是对命令和一些请求作出响应。
该状态机负责发出各种类型的命令帧和数据帧。
接收到命令后,状态机进入命令启动状态,如果是上层要求发送普通的数据帧,则交给底层等待发送,确定发送完成后,回到空闲状态;如果收到的是错误的服务请求,也即虚拟服务,则不作处理,直接回到空闲状态。
接收到的其它类型信令帧主要分为三种:信标帧、孤儿节点请求加入帧和网络请求加入帧。
如果网络中有节点由于掉电等原因而重启,子节点将会断开与之前绑定的父节点之间的连接,成为孤儿节点,这时需要重新与父节点进行绑定,发出的信令帧即孤儿请求。