免费预览已结束,剩余242页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ZigBee南京cc2530模块资料(天线杆版本)cc2530模块资料(天线杆版本)相关的学习文档Zstack OSAL详解.pdfZigBee南京cc2530模块资料(天线杆版本)cc2530模块资料(天线杆版本)相关的学习文档zigbee技术实践教程.pdfZigBeez-stackZ-Stack_API.pdf配置cc2530的第2功能时,不需要配置方向寄存器,否则可能出错hal_key.c下的HalKeyConfig()函数中/* Rising/Falling edge configuratinn */ HAL_KEY_JOY_MOVE_ICTL &= (HAL_KEY_JOY_MOVE_EDGEBIT); /* Clear the edge bit */ /* For falling edge, the bit must be set. */ #if (HAL_KEY_JOY_MOVE_EDGE = HAL_KEY_FALLING_EDGE) HAL_KEY_JOY_MOVE_ICTL |= HAL_KEY_JOY_MOVE_EDGEBIT; #endif有错,应将HAL_KEY_JOY_MOVE_ICTL改为PICTL1 ZigBee协议架构1.1 ZigBee简介Zigbee是IEEE 802.15.4协议的代名词。根据这个协议规定的技术是一种短距离、低功耗的无线通信技术。这一名称来源于蜜蜂的八字舞,由于蜜蜂(bee)是靠飞翔和“嗡嗡”(zig)地抖动翅膀的“舞蹈”来与同伴传递花粉所在方位信息,也就是说蜜蜂依靠这样的方式构成了群体中的通信网络。其特点是近距离、低复杂度、自组织、低功耗、低数据速率、低成本。主要适合用于自动控制和远程控制领域,可以嵌入各种设备。 Zigbee是一种新兴的短距离、低速率、低功耗无线网络技术,它是一种介于无线标记技术和蓝牙之间的技术提案。它此前被称作“HomeRF Lite”或“FireFly”无线技术,主要用于近距离无线连接。它有自己的无线电标准,在数千个微小的传感器之间相互协调实现通信。这些传感器只需要很低的功耗,以接力的方式通过无线电波将数据从一个传感器传到另一个传感器,因此它们的通信效率非常高。最后,这些数据就可以进入计算机用于分析或者被另外一种无线技术如WiMax收集。 它以IEEE 802.15.4协议为基础,使182 2006.24计算机工程与应用用全球免费频段进行通讯,能够在三个不同的频段上通讯。全球通用的频段是2.400GHz-2.484GHz,欧洲采用的频段是868.0 MHz -868.6 6MHz美国采用的频段是902MHz -928MHz传输速率分别为250kbps 20kbps和40kbps通讯距离的理论值为10m-75m。 ZigBee 不仅只是802.15.4的名字,IEEE仅处理低级的MAC层和物理层协议,因此ZigBee联盟对其网络层协议和API进行了标准化。 ZigBee技术作为一种无线传感网络的通信协议,按照7层OSI(Open System Interconnect Reference Model)开放系统互连参考模型来建立,每一层为上层提供一系列特殊的服务,数据实体提供数据传输服务,管理实体则提供所有其他的服务。所有的服务实体通过服务接入点(Server Access Point,SAP)为上层提供一个接口,每个SAP都支持一定数量的服务原语来实现所需要的功能。 ZigBee标准的协议框架结构如下图所示,其中IEEE802.15.4标准定义了底层即物理层(PhysicalLayer,PHY)和但介质访问控制层(MediumAccessControlSubLayer,MAC)。ZigBee联盟在此基础上定义了网络层(NetworkLayer,NWK)和应用层(ApplicationLayer,APL)架构。应用层包括应用支持子层(ApplicationSupportSubLays,APS),应用架构(ApplicationFramework,AF)、ZigBee设备对象(ZigBee Device Objects,ZDO)以及用户定义应用对象(Manufacturer-Defined Application Objects,MDAO).ZigBee协议栈模型1.2 ZigBee的技术优势低功耗。在低耗电待机模式下,2 节5 号干电池可支持1个节点工作624个月,甚至更长。这是Zigbee的突出优势。相比较,蓝牙能工作数周、WiFi可工作数小时。现在,TI公司和德国的Micropelt公司共同推出新能源的Zigbee节点。该节点采用Micropelt公司的热电发电机给TI公司的Zigbee提供电源。低成本。通过大幅简化协议(不到蓝牙的1/10) ,降低了对通信控制器的要求,按预测分析,以8051的8位微控制器测算,全功能的主节点需要32KB代码,子功能节点少至4KB代码,而且Zigbee免协议专利费。每块芯片的价格大约为2 美元。 低速率。Zigbee工作在20250 kbps的较低速率,分别提供250 kbps(2.4GHz)、40kbps (915 MHz)和20kbps(868 MHz) 的原始数据吞吐率,满足低速率传输数据的应用需求。近距离。传输范围一般介于10100 m 之间,在增加RF 发射功率后,亦可增加到13 km。这指的是相邻节点间的距离。如果通过路由和节点间通信的接力,传输距离将可以更远。短时延。Zigbee 的响应速度较快,一般从睡眠转入工作状态只需15 ms ,节点连接进入网络只需30 ms ,进一步节省了电能。相比较,蓝牙需要310 s、WiFi 需要3 s。高容量。Zigbee 可采用星状、片状和网状网络结构,由一个主节点管理若干子节点,最多一个主节点可管理254 个子节点;同时主节点还可由上一层网络节点管理,最多可组成65000 个节点的大网。高安全。Zigbee 提供了三级安全模式,包括无安全设定、使用接入控制清单(ACL) 防止非法获取数据以及采用高级加密标准(AES 128) 的对称密码,以灵活确定其安全属性。免执照频段。采用直接序列扩频在工业科学医疗( ISM) 频段,2. 4 GHz (全球) 、915 MHz(美国) 和868 MHz(欧洲)。1.3 ZigBee的主要应用领域家庭和楼宇网络:空调系统的温度控制、照明的自动控制、窗帘的自动控制、煤气计量控制、家用电器的远程控制等;工业控制:各种监控器、传感器的自动化控制;商业:智慧型标签等;公共场所:烟雾探测器等;农业控制:收集各种土壤信息和气候信息;医疗:老人与行动不便者的紧急呼叫器和医疗传感器等。水表、电表、气表三表集抄1.4 ZigBee实现方案目前ZigBee的实现方案主要有三种:第一种是MCU和RF收发器分离的双芯片方案,ZigBee协议栈在MCU上运行;第二种是集成RF和MCU的单芯片方案;第三种是ZigBee协处理器和MCU的双芯片方案,ZigBee协议栈在ZigBee协处理器上运行。在主要的Zigbee芯片提供商中,德州仪器(TI)的Zigbee产品线覆盖了以上三种方案,飞思卡尔、Ember、Jennic可以提供单芯片方案,Atmel、Microchip等其它厂商大都提供MCU和RF收发器分离的双芯片方案。 虽然这三种方案具有各自的优势,比如:外置MCU+收发器方案灵活性高,单芯片解决方案占用空间最小且开发容易,ZigBee协处理器+MCU方案灵活性高且能缩短产品上市时间,但单芯片方案是主要厂商的主推方案,也是重要的发展趋势。由于低功耗是ZigBee系统的关键,所以减少工作电流消耗、具有超低耗电睡眠模式并缩短模式切换时间对每一种方案而言都非常重要。 TI的单芯片方案CC2431/CC2430在单个芯片上集成了ZigBee射频前端、内存和微控制器,CC2431还带硬件定位引擎。CC2430芯片工作时的电流损耗为27mA,接收和发射模式下的电流损耗分别低于27mA或25mA,特别适合那些要求电池寿命非常长的应用。CC2430包含8KB RAM内存和外围模块,并有32、64或128KB内置闪存等三种不同组件可供选择,方便设计人员在复杂性与成本之间做出最佳选择。在MCU和RF收发器分离的双芯片方案方面,TI采用的是CC2420 RF收发器和超低功耗MCU MSP430。该公司最新推出的高度集成2.4GHz RF前端CC2591集成了可将输出功率提高22dBm的功率放大器,以及可将接收机灵敏度提高6dB的低噪声放大器,可显著扩大无线系统的覆盖范围. TI的第三种Zigbee方案是无线网络处理器CC2480(RF收发器和ZigBee协议栈),可搭配任意MCU,比如MSP430。TI的Z-Stack软件ZigBee-2006协议栈可在ZigBee处理器上运行,而应用程序则在外部MCU上运行。用户在设计和使用过程中不需要牵涉到很多ZigBee开发,可以任意选择MCU或沿用已有的MCU。 飞思卡尔(Freescale)的MC1321x平台是该公司第二代单芯片MCURF收发器解决方案,集成了MC9S08GT MCU与MC1320x收发器,闪存可以在16至60KB的范围内选择。第三代单芯片方案MC1322x以Platform in Package(PiP)的形式提供,在单一封装中包括一个32位MCU、一个完全符合IEEE 802.15.4标准的收发器,以及不平衡变压器和RF匹配组件,消除了对外部射频组件的需求。该平台解决方案还支持可以将节点之间的数据速率提高到每秒2Mbps的TurboLink技术模式。 Jennic公司的JN-5139芯片是一个低功耗的无线微处理器,集成了32位RISC微处理器和完全兼容2.4GHz IEEE 802.15.4的送收器、192k ROM以及一些数字及模拟外围电路,可降低对外部元件的需求。JN-5139模块基于JN-5139芯片,已经通过欧洲与美国规范FCC与ETSI的认证,可大大缩短在测试无线射频方面的时间。 Ember公司的ZigBee网络协处理器EM260集成了2.4GHz IEEE 802.15.4兼容的无线电收发器和运行在EmberZNet ZigBee堆栈上的基于闪存的16位微处理器(XAP2b核),并且该产品的SPI接口可以使开发者容易在自己的MCU中增加ZigBee网络功能。 1.5 ZigBee协议栈规范ZigBee协议栈体系结构由应用层、应用汇聚层、网络层、数据链路层和物理层组成,如下图所示:ZigBee 协议栈体系的层次结构 应用层定义了各种类型的应用业务,是协议栈的最上层用户;应用汇聚层负责把不同的应用映射到ZigBee网络层上,包括安全与时鉴权、多个业务数据流的汇聚、设备发现和业务发现。网线层的功能包括拓扑管理、MAC管理、路由管理和安全管理。1.5.1 数据链路层 数据链路层以可分为逻辑链路控制子层(LLC Logic Link Control)和介质访问控制子层(Medium Access Control, MAC)。IEEE802.15.4的LLC子层功能包括传输可靠性保障、数据包的分段与重组、数据包的顺序传输。IEEE802.15.4MAC子层功能包括设备间无线链路的建立、和拆除,确认的帧传送与接收,信道接入控制、帧校验、预留时隙管理和广播信息管理。1.5.2 物理层和MAC层 ZigBee直接使用了IEEE802.15.4标准的物理层和MAC层。ZigBee工作 在三种不同的频带上,欧洲的868MHz频带,美国的915MHz频带和全球通用的2.4GHz频带。968MHz频带上、915MHz频带和2.4GHz频带的物理层并不相同,它们各自的信道带宽分别是0.6MHz,2MHz和5MHz,分别有1个、10个和16处信道。不同频带的扩频和调制方式也有所区别,虽然都是使用了直接序列扩频(DSSS)的方式。但是比特到码片的变换方式有比较大的差别;调制方面都使用了调相技术,但868MHz和915MHz频段采用的是BPSK,而2.4GHz频段采用的是OQPSK。1.5.3 网络层(1)网络拓扑结构。ZigBee网络组网可以灵活地采用多种拓扑结构,可以采用星形,可以采用网状和树簇状拓扑等。在星形拓扑结构组网时,整个网络有一个ZigBee 协调器设备来进行整个网络的控制,ZigBee协调器能启动和维持网络的正常工作,使网络内的终端设备实现通信,如果采用网状和树形拓扑结构组网,ZigBee协调器则负责启动网络以及选择关键的网络参数。在树形网络中,路由器采用分级路由策略来传送数据和控制信息。网状网络中,设备之间使用完全对等的通信方式。ZigBee路由器不发送通信信标。(2)网络层及路由算法。ZigBee网络层的功能包括拓扑管理、MAC管理、路由管理和安全管理。网络层的主要功能是路由管理,路由算法是它的核心。网络层主要支持两种路由算法-树状路由和网状路由。(3)网络层中各部分的数据接口和网络层服务功能1)网络层中各部分的数据接口。ZigBee网络层的各个组成部分和彼此间的接口关系如下图 ZigBee 网络层的各个组成部分和彼此间接口关系 图中的NLDE-SAP是网络层数据实体的服务接入点,MLME-SAP是网络层管理实体的服务接入占,MCPS-SAP是媒体接入控制公共部分子层的服务接入点,MALME-SAP是MAC子层管理实体的服务接入点。 网络层通过两种服务接入点提供网络层数据服务和网络层管理服务,层数据服务通过层数据实体服务接入点接入,网络层管理服务通过网络层管理实体服务接入点接入、这两种服务通过媒体接入控制公共部分子层的服务接入点和MAC子层管理实体的服务接入点为MAC层提供接口;通过网络层数据实体的服务接入点和MAC子层管理实体的服务接入点为应用层实体提供接口服务。2)网络层服务功能。网络层要为IEEE802.15.4的MAC子层提供支持,确保ZigBee的MAC层正常工作,并为应用层提供合适的服务接口。为了向应用层提供其接口,层提供了两个必需的功能服务实体,它们分别为数据服务实体和管理服务实体。网络层数据实体(NLDE)通过网络层数据实体服务接入点(NLDE-SAP)提供数据传输服务。网络层管理实体(NLME)通过网络层管理实体服务接入点(NLME-SAP)提供网络管理服务。网络层数据实体提供的服务 产生网络层协议数据单元(NPDU),网络层数据实体通过增加一个适当的协议头,从应用支持层协议数据单元中生成网络层的协议数据单元。 指定拓扑传输路由,网络层数据实体能够发送一个网络层的协议数据协议数据单元到一个数据传输的目标终端设备,目标终端设备也可以是通信链路中的一个中间通信设备。 网络层管理实体提供的服务 配置一个新的设备。为保证设备正常工作的需要,设备应具有足够的堆栈,以满足配置的需要。配置选项包括对一个ZigBee协调器和连接一个现有网络设备的初始化操作。 加入或离开网络。具有连接或者断开一个网络的能力,以及建立一个ZigBee协调器或者ZigBee路由器,具有要求设备同网络断开的能力。 寻址。ZigBee协调器和ZigBee路由器具有为新加入网络的设备分配地址的能力。 邻居发现。具有发现。记录和汇报相关的一跳邻居设备信息的能力 接收控制。具有控制设备接收机接收状态的能力,即控制接收机什么时间接收。接收时间长短,以保证MAC层的同步或者正常接收等(4)原语在分层的通信协议中,层之间通过服务访问点SAP相连,每一屋都可以通过本层和下层的SAP调用下层为其提供相应的服务,同时通过与上层的SAP为上层提供相应的服务。访问点SAP有通信协议中层与层之间的为通信接口,但具体的服务是以通信原语的形式供上层调用的。在调用下层服务时,只需要遵循统一的原语规范,而不必了解下层是怎样处理原语的,通过这咱方式实现了数据层与层之间的透明传输。层与层之间的原语分成请求原语,确认原语,指示原语和响应原语(5)网络层管理服务。网络层管理实体服务接入点为其上层和网络层管理实体之间传送管理命令提供通信接口,网络层管理实体支持NLME-SAP接口原语,这些原语包括网络发现、网络的形成、允许设备连路由器初始化、设备同网络的连接等原语。(6)网络层帧格式。ZigBee网络帧由下列基本部分组成:网络层帧报头,包含帧控制、地址和序列信息;第二个部分是,网络层帧的可变长有效栽荷,包含帧类型所指定的信息。通用的网络层帧格式1)通用网络层帧的结构与格式,网络层帧的格式由一个网络层报头和一个网络层网负载组成。帧头部分域的顺序是固定的,但根据不同的具体应用情况,不是必须包括所有域。通用网络层帧格式所示:2) 不同域的说明: 帧控制域。由16位组成,内容包括帧类型、地址、序列域以及其他的控制标记。 目地地址域。在网络层帧中,必须要有目的地址域,该域长度两个字节,用来存放目标设备的网络地址或广播地址(0xffff). 源地址域。在网络层帧中,该域也是必备的,长度为两个字节,其值是16位的源设备网络地址 广播半径域。广播半径域在帧的目的地址为广播地址时才存在,长度一个字节。该域用来设定传输半径。 序列号域。在网络层帧中,该域是必备的,长度一个字节,每次发送帧时改为加1. 帧负载域。该域长度可变,包含了各种帧的具体信息。1.5.4 应用层ZigBee协议栈的层级有IEEE802.15.4的MAC、物理层(PHY)以及ZigBee网络层,网络层上面是应用层。网络层的頉是应用层,包括APS(Application Support Layer:应用支持子层)和ZDO(ZigBee设备对象:ZigBee Device Object)等部分,主要规定了一些和应用相关的功能,包括端点(Endpoint)的规定,还有绑定(Binding)、服务发现和设备发现等。APS子层的任务包括维护绑定表和绑定设备间消息传输;绑定指的是根据两个设备所提供的服务和它们的需求将两个设备关联起来。(1) ZigBee应用支持子层。应用支持子层(APS)是网络层和应用层之间接口。通过此接口可以调用一系列被ZDO和用户自定义应用对象的服务(2) ZigBee设备协定。ZigBee应用层规范描述了ZigBee设备的绑定、设备发现和服务发现在ZigBee设备对象(ZDO)中的实现方式,ZigBee设备协定(devic profile)支持以下几种设备间通信功能: 设备和服务发现 终端设备绑定请求过程 绑定和接触绑定过程 网络管理(3) ZigBee设备对象。(4) ZigBee设备对象(ZDO)是一种通过调用网络和应用支持子层原语来实现ZigBee规范中规定的ZigBee终端设备。ZigBee路由器能及ZigBee协调器的应用。ZigBee设备对象ZDO主要功能: 对APS子层、网络层、安全服务模块(SSP)以及除了应用层中端点1240以外的ZigBee设备层和初始化 集成终端应用的配置信息,实现设备服务发现、网络管理、网络安全、绑定管理和节点管理等功能。 上面主要是简单的描述了ZigBee中各层之间的相互关系和作用,希望对以后的学习有帮助。1.6 ZigBee工作频率在不同的国家和地区,ZigBee技术所允许使用的工作频率是不同的,而对于不同的应用频率范围,其调制方式。传输速率均不同,众所周知,蓝牙技术在世界多数国家都采用统一的频率范围,其范围为2.4GHz的ISM频段上,调制采用快速跳频扩频技术,而ZigBee技术不同,对于不同的国家和地区,为其提供的工作频率范围是不同的,ZigBee所使用的频率范围主要分为868/915MHz和2.4Ghz ISM频段,各个具体的频段的频率范围如下表所示:由于各个国家的地区采用的工作频率范围不同,为提高数据传输速率,IEEE802.15.4规范标准对于不同的频率范围,规定了不同的调制方式,因而在不同的频率段上,其数据传输速率不同,具体调制和传输速率如下所示:从上面可以看出ZigBee使用了3个工作频段,每一个频段宽度不同,其分配信道的个数也不相同,在IEEE802.15.4规范标准定义了27个物理信道,信道编号从0到26,在不同的频段其带宽不同,其中2450MHz频段定义了16个信道,915MHz频段定义了10个信道,868MHz频段定义了1个信道。这些信道的中心频率定义如下:1.7 网络拓扑结构ZigBee协调器是启动和配置网络的一种设备。协调器可以保持间接寻址用来绑定表格,支持关联,同时还能设计信任中心和执行其他的活动。协调器负责网络正常工作以及保持同网络其他设备的通信。一个ZigBee网络只允许有一个ZigBee协调器ZigBee路由器是一种支持关联的设备,能够将消息转发到其他设备。ZigBee网络或树形网络可以有多个ZigBee路由器,ZigBee星型网络不支持ZigBee路由器ZigBee终端设备可以执行它的相关功能,并使用ZigBee网络到达其他需要与其通信的设备它有存储容量要求最小。上述3种设备根据功能完整性可以分为全功能(FFD)设备和半功能(RFD)设备。其中,全功能设备可用作协调器,路由器和终端设备,而半功能设备只能用作终端设备。一个全功能设备可与多个RFD设备或多个其他FFD设备通信,而一个半功能设备只能与一个FFD通信。然而需要特别注意的是,网络的特定架构会戏剧性地影响设备所需要资源,NWK支持的网络拓扑有星形树型和网络型。这三种设备只是在安装在上面的协议的不同,设备是相同。ZigBee网络组网可以灵活地采用多种拓扑结构,可以采用星形,可以采用网状和树簇状拓扑等。如下图所示:星形拓扑结构树状拓扑结构 网状拓扑结构 星形拓扑具有组网简单、成本低;但网络覆盖范围小,一旦中心节点发生故障,所有与中心节点连接的传感器节点与网络中心的通信都将中断,星形拓扑组网时,电池使用寿命较长,网状拓扑组网可靠性高、覆盖范围大的优点,但电波使用寿命短、管理复杂。树簇形拓扑综合了以上两种拓扑的特点,相对讲会使ZigBee网络灵活、高效。 ZigBee/IEEE802.15.4网络中所有节点都工作在同一个信道上,当讨论某个节点要向另一个节点传输数据时,如果网络内其他节点音下在通信并发送数据,就有可能发生冲突。为此,在MAC层采用了CSMA/CA的媒质访问控制技术,简单来说,就是节点在发送数据之前先监听信道,如果信道空闲,则可以发送数据,否则,就要进行随机的退避,即延迟一段随机时间,然后再进行监听,这个退避的时间是指数增长的,但有一个最大值,即如果上一次退避之后再次监听信道忙,则退避时间要增倍,这们做的原因是如果多次监听信道都忙,有可能表明信道上的数据量大,因此让节点等待更多的时间,避免繁忙的监听,通过这种信道接入技术,所有节点竞争共享同一个信道。在MAC层当中还规定了“超帧”的格式,在超帧的开始发送信标帧,里面含有一些时序以及网络的信息,紧接着是竞争接入时期,在这段时间内各节点以竞争方式接入信道,再后面是非竞争接入时期,节点采用时分复用的方式接入信道,然后是非活跃时期,节点进入休眠状态,等待下一个超帧周期的开始以发送信标帧。而非信标模式则比较灵活,节点均以竞争方式接入信道,不需要周期性的发送信标帧。显然,在信标模式当中由于有了周期性的信标,整个网络的所有节点都能进行同步,但这咱同步的规模不会很大。实际上,在ZigBee当中用的更多的可能是非信标模式。1.8 ZigBee网络帧结构 在ZigBee技术中,每一个协议层都增加了各自的帧头和帧尾,在PAN网络结构中定义了4种帧结构: 信标帧-主协调器用来发送信标的帧 数据帧 用于所有数据传输的帧 确认帧用于确认成功接收的帧 MAC层命令帧用于处理所有MAC层对等实体间的控制传输 物理层以下所描述的包结构以比特表示,为实际在物理媒体上所发送的数据。1.8.1 信标帧 在信标网络中,信标由主协调器的MAC层生成,并向网络中的所有从设备发送,以保证各从设备与主协调器同步,使网络运行的成本最低,即采用信标网络通信,可减少从设备的功耗,保证正常的通信,信标帧的结构如下图:信标帧结构示意图 通常设备中的MAC层服务数据单元(MSDU)包括超帧格式,未处理事务地址格式 地址列表能及信标载荷。如果在MSDU前面,加上MAC层帧头(MHR),在MSDU结尾后面,加上帧尾(MFR),则MHRMSDU和MFR共同构成了MAC层信标帧(即MAC层协议数据单元MPDU),其中,MHR包括MAC帧的控制字段。信标序列码(BSN)以及寻址信息;MFR包含16位帧校验序列(FCS)。 在MAC层生成的MAC层信标作为物理层信标包的载荷(PSDU)发送到物理层。同样,在PSDU前面,需要加上一个同步帧头(SHR)和一个物理层帧头(PHR),其中,SHR包括前同步帧序列和帧起始定界符(SFD);在PHR中,包含有PSDU长度的信息。使用前同步码序列的目的是使从设备与主协调器达到符号同步,因此,SHR PHR以及PSDU共同构成了物理层的信标包(PPDU)。 通过上述过程,最终在PHY层就形成了网络信标帧,一个帧信号在MAC层和PHY层分别都要加上所对应层的帧头和帧尾,最后 在PHY层形成相应的帧信号。1.8.2 数据帧在ZigBee设备之间进行数据传输时,传输的数据由应用 层生成,经数据处理后,发送给MAC层,作为MAC层的数据载荷(MSDU),并在MSDU前面加上一个MAC层帧头MHR,在其结尾后面,加上一个MAC层帧尾其中,MHR包括帧控制。序列码以及寻址信息,MFR为16位FCS码,这样由MHR MSDU和MFR共同构成了MAC层数据帧(MPDU). MAC的数据帧作为物理层载荷(PSDU)发送到物理层。在PSDU前面,加上一个SHR和一个PHR。其中,SHR包括前同步码序列和SFD;PHR包含PSDU的长度信息。同信标帧一样,前同步码序列和数据SFD能够使接收设备与发送设备达到符号同步.SHR PHR 和PSDU共同构成了物理层的数据包(PPDU).数据帧示意图1.8.3 确认帧 在通信接收设备中,为保证通信的可靠性,通常要求接收设备在接收到正确的帧信息后,向发送设备返回一个确认信息。以向发送设备表示已经正确地接收到相应的信息。接收设备将接收到的信息经PHY层和MAC层后,由MACnfc经纠错解码后,恢复发送端的数据,如没有检查出数据的错误,则由MAC层生成一个确认帧,发送回发送端其帧结构 MAC层的确认帧由一个MHR和一个MFR构成,其中,MHR包括MAC帧控制字段和数据序列码字段,MFR由位FCS构成,MHR和MFR共同构成了MAC层的确认帧(MPDU)。MPDU作为物理层确认帧载荷(PSDU)发送到物理层,在PSDu前面,加上SHR和PHR。其中,SHR包括前同步码序列和SFD字段;PHR包含PSDU长度的信息。SHRPHR以及PSDU共同构成了物理层的确认包(PPDU).确认帧示意图1.8.4 MAC层命令帧 在ZigBee设备中,为了控制设备的工作状态,同网络中的其他设备进行通信,根据应用的实际需要,对设备进行控制,控制命令由应用层产生,在MAC层根据命令的类型,生成的MAC层命令帧,包含命令类型字段和命令数据的MSDU叫作命令载荷。同其他帧一样,在MSDU前面,加上一个帧头MHR,在其结尾后面,加上一个帧尾MFR,其中,MHR包括MAC层帧控制。数据序列码以及寻址信息字段,MFR由16位FCS构成,MHRMSDU和MFR共同构成了MAC层命令帧(MPDU)。 MPDU作为物理层命令帧发送到物理层,PSDU前加上一个SHR和一个PHR,其中,SHR包括前同步码序列和SFD字段,PHR包含了PSDU长度的信息,前同步码字段序列能够使接收机达到符号同步。SHRPHR和PSDU共同构成了物理层命令包(PPDU). MAC命令帧示意图2 Z-Stack简介Z-Stack是在2007年4月,德州仪器推出业界领先的ZigBee协议栈,Z-Stack符合ZigBee 2006规范,支持多种平台,Z-Stack包含了网状网络拓扑的几近于全功能的协议栈,在竞争激烈的ZigBee领域占有很重要地位。配合OSAL完成整个协议栈的运行。Z-Stack只是ZigBee协议的一种具体的实现,我们要澄清的是ZigBee不仅仅有Z-Stack这一种,也不能把Z-Stack等同于ZigBee2006协议,现在也有好几个真正开源的ZigBee协议栈,例如:msstatePAN协议栈,freakz协议栈,这些都是ZigBee协议的具体实现,而且是全部真正的开源的,它们的所有源代码我们都可以看到,而Z-Stack中的很多关键的代码是以库文件的形式给出来,也就是我们只能用它们,而看不到它们的具体的实现。那下面我们就以Z-Stack1.4.3-1.2.0看看它的组织架构,那些功能是开源的,那些是以库文件的形式提供给我们的。我们利用Z-Stack开发应用,只能知道怎么做和做什么也就是“how”和“what”,而不能准确的知道“为什么”,“why”.我们也可以通过真正这些开源的ZigBee协议栈了解为什么。2.1 z-stack协议栈下载完z-stack后我们可以点击EXE文件进行安装,默认会在C盘的根目录下建立Texas Instruments目录,该目录下面的子目录就是安装Z-Stack的文件。下面的这个图就是Z-Stack协议栈的目录结构, 根目录下有一个Getting Started Guide CC2430.pdf文件,是安装卸载协议栈的说明文件,另外三个文件夹分别是Documents Components 和Project。2.1.1 Documents Documents文件夹包含了对整个协议栈进行说明的所有文档信息,下面有很多的PDF格式的文档,内容比较多,不过也无需全部的细读,我们可以把它们当做参考手册,根据需要来阅读。2.1.2 Components Components文件夹是Z-Stack协议栈的各个功能部件的实现,本文件夹下包含的子目录下: 1)hal文件夹为硬件平台的抽象层2)mac文件夹包含了802.15.4物理协议的实现说需要代码文件的头文件,由于TI公司处于某种考虑,这部分并没有给出具体的源代码,而是以库文件的形式存在.ProjectszstackLibraries文件夹给出3)mt 文件夹包含了为系统添加在电脑上有Z-tools调试的功能所需要的源文件4)osal包含了操作系统抽象层所需要的文件5)service文件夹保护了Z-Stack提供的两种服务:寻址服务和数据服务所需要的文件6)stack文件夹是components文件夹最核心的部分,是ZigBee协议栈具体实现部分,在在其下有分为了af(应用框架),nwk(网络层),sapi(简单应用接口)、sec(安全)、sys(系统头文件),zcl(ZigBee簇库),zdo(ZigBee设备对象)等7个文件夹。7)zmac文件夹包含了Z-Stack MAC 导出层文件。还有一个Project目录,该目录下包含了用于Z-Stack功能演示的各个项目的例子。可供开发者们参考。从上面我们可以看到其中核心部分的代码都是编译好的,以库文件的形式给出的,比如安全模块,路由模块,和Mesh自组网模块。如果要获得这部分的源代码可以向TI购买,可能花费不菲,可要大几万人民币。TI所谓的“开源”只是提供给我们一个平台,开发者可以在上面做应用而已,而绝不是我们通常理解的开源。也就我们在下载后源代码后,有些函数我们根本无法查看到它们的源代码的原因。现在TI公司提供的CC2480芯片,已经把这个协议栈固化到了硬件中,我们只需要掌握几个简单的API就可以完成基本的应用开发。现在也有公司开发出了基于AT指令集的ZigBee协议栈,更方便开发了。2.2 z-stack工程目录在z-stack协议栈中的sample文件夹下,提供了几个例子文件中,唯一不同的是最后一个函数其它的函数都是一样的。一般情况下用户只需要额外添加三个文件就可以完成一个项目。例如GenericApp工程,一个是主文件,存放具体的任务事件处理函数如上述事例中的GenericApp_ProcessEvent,一个是这个主文件的头文件,另外一个是操作系统的接口文件以Osal开头,是专门存放任务处理函数数组tasksArr的文件,如下图中的App层,后面会详细说明。这样就实现了Z-Stack代码的公用,用户只需要添加这几个文件,编写自己的任务处理函数就可以了。在Z-Stack项目中大约有14个目录文件,目录文件下面又有很多的子目录和文件。下面就来看看这14个根目录,具体是有什么作用:(1)App:应用层目录,这个目录下的文件就是创建一个新项目时自己要添加的文件,(2)HAL:硬件层目录,Common目录下的文件是公用文件,基本上与硬件无关,其中hal_assert.c是断言文件,用于调用,hal_drivers.c是驱动文件,抽象出与硬件无关的驱动函数,包含有与硬件相关的配置和驱动及操作函数。Include目录下主要包含各个硬件模块的头文件,而Target目录下的文件是跟硬件平台相关的,可能看到有两个平台,分别是Cc2430DB平台和一个CC2430EB平台。后面的DB和EB表示的是TI公司开发板的型号,其实还有一种类型是BB的,BB: Battery BoardDB: Development BoardEB: Evaluation Board分别对应TI公司开发的三种板型,其功能按上顺序依次变强。可以参看Z-Stack Users Guide for CC2430的图片,可以获得更直观的认识。(3)MAC:MAC层目录,HighLevel和LowLevel两个目录表示MAC层分为了高层和底层两层,Include目录下则包含了MAC层的参数配置文件及基MAC的LIB库函数接口文件,这里的MAC层的协议是不开源的,以库的形式给出(4)MT:监制调试层目录,该目录下的文件主要用于调试目的,即实现通过串口调试各层,与各层进行直接交互。(5)NWK:网络层目录,含有网络层配置参数文件及网络层库的函数接口文件,及APS层库的函数接口(6)OSAL:协议栈的操作系统抽象层目录(7)Profile:AF层目录,Application Farmework 应用框架,包含AF层处理函数接口文件。(8)Security:安全层目录,包含安全层处理函数接口文件(9)Services:ZigBee和802.15.4设备地址处理函数目录,包括地址模式的定义及地址处理函数(10)Tools:工作配置目录,包括空间划分及Z-Stack相关配置信息(11)ZDO:指ZigBee设备对象,可认为是一种公共的功能集,文件用户用自定义的对象调用APS子层的服务和NWK层的服务(12)ZMAC:其中Zmac.c是Z-StackMAC导出层接口文件,zmac_cb.c是ZMAC需要调用的网络层函数(13) Zmain:Zmain.c主要包含了整个项目的入口函数main(),在OnBoard.c包含硬件开始平台类外设进行控制的接口函数(14)Output:输出文件目录,这个是EW8051 IDE自动生成的到现在是不是感觉很简单,别不想想像的那么复杂,这个操作系统抽象层和实时操作系统中的C/OS-II有相似之处,唉C/OS-II中可以分配给64个任务。了解了这个操作系统的话,理解OSAL应该不是很困难,但是,Z-Stack只是基于这个OSAL运行,但重点不在这里,而是ZigBee设备之间的通信的实现,以及组网,组成不同的网络结构,这些才是整个ZigBee协议中的核心内容,当然也应该远比我们添加几个文件来的复杂。2.3 其他开源ZigBee协议栈介绍当然也有一些真正开源的ZigBee协议栈,不过这些协议栈没有大的商业公司的支持,开发升级方面,性能方面和TI公司的还是有很大的差距,这里就简单的介绍几个:(1)msstatePAN协议栈 msstatePAN协议栈是由密西西比大学的RReese教授为广大无线技术爱好者开发的精简版ZigBee协议栈,基于标准C语言编写,基本具备了 ZigBee协议标准所规定的功能,最新版本为V026,该版本支持多种开发平台,包括PICDEM Z、CC2430评估板、MSP430+CC2420(Tmote)以及WIN32虚拟平台。源代码是开放的,整个协议栈是基于状态机(FSM)实现的。如果你的程序构架不是基于操作系统的,有限状态机应该是一个很好的选择。而且OS(operating system)中进程的状态也是个各个状态间的切换。该协议栈的网站地址如下/reese/msstatePAN/在网站上我们可以看到起最近的更新是在2007年,到目前为止已经有三年多的时间没有更新升级了。(2)freakz协议栈和contiki操作系统。 freakz是一个彻底的开源zigbee协议,配合contikj操作系统,相当于Z-Stack+OSAL。相对于另外一个开源的WSN(Wireless Sensor Networking,无线传感网)操作系统TinyOS来讲,contiki的代码全部为C语言写成,用GCC进行编译,对广大应用C语言多年的开发者 来说,减少了学习另外一种语言与编译平台所带来的时间花费。其下载地址如下:http:/www.sics.se/contiki//projects/freakz/ 这里介绍一个专门研究开源ZigBee协议的网站,主要是frankz协议栈,已经写了很多好的文章。下面是他们的网站:/(3)TinyOS : TinyOS是UC Berkeley(加州大学伯克利分校)开发的开放源代码操作系统,专为嵌入式无线传感网络设计,操作系统基于构件(component-based)的架构使得快速的更新成为可能,而这又减小了受传感网络存储器限制的代码长度。TinyOS的构件包括网络协议、分布式服务器、传感器驱动及数据识别工具。它只是一个操作系统,不过现在已经成立了 TinyOS ZigBee Working Group 已经开始设计开源的zigbee。非常值得我们的期待。Z-Stack的main函数在Zmain.c中,总体上来说,它一共做了两件工作,一个是系统初始化,即有启动代码来初始化硬件系统和软件架构需要的各个模块,另一个作用就是开福寺执行操作系统实体。其它的几个例子文件中,唯一不同的是最后一个函数其它的函数都是一样的。一般情况下用户只需要额外添加三个文件就可以完成一个项目。一个是主文件,存放具体的任务事件处理函数如上述事例中的GenericApp_ProcessEvent,一个是这个主文件的头文件,另外一个是操作系统的接口文件以Osal开头,是专门存放任务处理函数数组tasksArr的文件。这样就实现了Z-Stack代码的公用,用户只需要添加这几个文件,编写自己的任务处理函数就可以了。3 Z-Stack基础概念3.1 ZigBee协议体系结构ZigBee技术作为一种无线传感网络的通信协议,按照7层OSI(Open System Interconnect Reference Model)开放系统互连参考模型来建立,每一层为上层提供一系列特殊的服务,数据实体提供数据传输服务,管理实体则提供所有其他的服务。所有的服务实体通过服务接入点(Server Access Point,SAP)为上层提供一个接口,每个SAP都支持一定数量的服务原语来实现所需要的功能。ZigBee标准的体系结构如下图所示,其中IEEE802.15.4标准定义了底层即物理层(PhysicalLayer,PHY)和但介质访问控制层(MediumAccessControlSubLayer,MAC)。ZigBee联盟在此基础上定义了网络层(NetworkLayer,NWK)和应用层(ApplicationLayer,APL)架构。应用层包括应用支持子层(ApplicationSupportSubLays,APS),应用架构(ApplicationFramework,AF)、ZigBee设备对象(ZigBee Device Objects,ZDO)以及用户定义应用对象(Manufacturer-Defined Application Objects,MDAO). ZigBee网络层主要功能包括设备连接和断开网络里所采用的机制,以及在帧信息传输过程中所采用的安全性机制。此外,还包括设备之间的路由发现和路由维护和转交。并且,网络层对一跳(one-hop)邻居设备的发现和相关结点信息的存储。一个ZigBee协调器创建一个新的网络,为新加入的设备分配短地址等。 ZigBee应用层由应用支持层、ZigBee设备和制造商所定义的应用 对象组成。应用支持层的功能 包括:维护绑定表在绑定的设备之间传送消息。所谓绑定就是基于两台设备的服务和需求将它们匹配地连接越来。ZigBee设备对象的功能包括:定义设备在网络中的角色(ZigBee协调器和终端设备),发起和响应绑定请求,在网络设备之间建立安全机制。ZigBee设备对象还负责发现网络中的设备,并且决定向他们提供何种应用服务。从应用的角度看,通信的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年宁夏辅警招聘考试真题及一套参考答案详解
- 2023年鹰潭辅警协警招聘考试备考题库及答案详解(夺冠系列)
- 2023年莆田辅警协警招聘考试真题及答案详解(全优)
- 2024年北海辅警招聘考试真题及答案详解(网校专用)
- 2024年合肥辅警招聘考试题库及参考答案详解1套
- 2024年商洛辅警招聘考试题库及参考答案详解一套
- 2023年阿克苏辅警协警招聘考试备考题库及答案详解(夺冠)
- 2023年陇南辅警协警招聘考试备考题库附答案详解(综合题)
- 2024年宝鸡辅警协警招聘考试真题含答案详解(轻巧夺冠)
- 2023年驻马店辅警招聘考试题库附答案详解(突破训练)
- 2023学年完整公开课版感叹句说课
- 食用玫瑰生产技术规程
- 人工智能基础及应用 课件 第3章-搜索策略
- 科学用脑与高效学习课件
- 江苏省南京九中2023-2024高一上学期期中物理试卷及答案
- 人工智能在医疗领域的应用课件
- 面部浅二度烧伤临床路径
- 成果使用知情同意书
- 水产品中内在危害物与检验
- 《博雅汉语》编写实践与编写原则
- 异常子宫出血诊断与治疗指南(2022更新版)
评论
0/150
提交评论