zigbeeXX协议规范完整版_第1页
zigbeeXX协议规范完整版_第2页
zigbeeXX协议规范完整版_第3页
zigbeeXX协议规范完整版_第4页
zigbeeXX协议规范完整版_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

zigbeeXX协议规范完整版篇一:关于 ZigBee的准备资料HELP: 1 题目 2 最基本的就是文字质量,检查有无错字、别字和不恰当的地方。 3 代码 4 图片 5 摘要,是否需要一定需要英文版的 6 附件与参考文献的位置 为完成: 1 分别介绍运行过程 2 调整图 3 图片 4 删代码 5 对应修改术语以及路由 TIPS: 一、信标模式(Beacon):此模式下,存在周期性以信标帧为起始的超帧结构,规定其他设备何时访问信道,使所有设备工作及休眠同步,最大限度节省功耗。超 帧格式的定义及发送由协调器完成,通信时间分活跃和不活跃两阶段。不活跃 阶段网络设备互不通信,进入低功耗休眠模式。活跃阶段用于消息传送,分为 16个等长时隙,分为信标发送、竞争访问(CAP)和非竞争访问(CFP)3 阶段。竞争访问阶段,各节点使用有时隙的 CSMA-CA信道访问机制,发送数据 帧时,设备首先锁定下一退避时隙的边界位置,等待任意退避时隙后,若检测 到信道忙,设备再等待任意退避时隙,才能尝试再次接入信道。反之,设备在 下一空闲退避时隙发送数据。发送确认帧和信标帧不需要采用 CSMACA机制。 在非竞争访问阶段,协调器根据上一超帧周期网络设备申请保护时隙 GTS的情 况,将非竞争阶段分为多个由若干时隙组成的 GTS,每个保护时隙都分配了时 隙申请设备,不需竞争信道,节点采用时分复用方式接入信道。 非信标模式(Non-beaeon):非信标模式下,网络中没有设备周期性发送信标帧,不划分信道时间,采用无时隙 CSMACA 机制,节点均以竞争方式接入信道,在 ZigBee网络中应用较多。采用该机制的设备发送数据帧或 MAC层命令时,需等待一个任意长周期,此后若设备发现信道空闲,则进行数据或命令传输;反之,继续等待任意长周期后再次尝试接入信道。对于确认帧,发送时不采用 CSMACA机制,即收到数据帧后,接收设备直接发送确认帧,不管当前信道是否存在冲突,发送设备根据是否接收到正确的确认帧来判断数据是否发送成功。 二、原语概念 原语描述提供的服务,并规定通过服务存取端口所必须传递的信息在 ZigBee 协议栈的每层通过使用下层提供的服务完成自己的功能,同时对上层提供服务。 各层之间的联系是通过格式化、规范化的服务原语完成的。在 ZigBee技术中存在 4种类型的服务原语:请求原语(Request primitive),上 层发给下层的请求其完成某项服务的原语,比如建立连接,发送数据等;确认原 语(Confirm primitive),下层发给上层的表示某项服务完成情况的原语;指示原语 (Indication primitive),下层发给上层的表示有某些内部事件或外部事件发生的原 语;响应原语(Respond primitive),上层对下层发来的指示原语的响应,用来确认 原先的原语请求是否成功等。 三、 网络寻址 Z-Stack 使用一种分布式的地址分配方式来分配网络地址,这种方式确保所有的网络地址在网络中是唯一的。网络地址是由设备的父节点分配的。通过在 Z-Stack中网络层中相关位置的三个参数,包括最大深度(MAX_DEPTH) 、最大子节点数(MAX_CHILDREN)和最大路由器数量(MAX_ROUTERS)按照以下地址分配算法可得到相应的网络地址6。 第 n个终端设备的网络地址为: 其中:An?Aparent+ Cskip(d)?Rm + n Aparent表示第 n个终端设备的父设备网络地址; 1?n?(Cm - Rm)n 的取值范围:; Rm=MAX_ROUTERS; ; Cm=MAX_CHILDREN Lm?MAX_DEPTH; 如果 Rm?1:Cskip(d)?1?Cm?(Lm?d?1); 1?Cm?Rm?Cm?RmLm?d?1 Rm?1:Cskip(d)?1?Rm 如果; MAX_DEPTH 指网络的层数。协调器在第 0层的深度,它的子节点在第一层,以下就是第二层,以此类推。这个参数限定了网络结构的最大深度。MAX_CHILDREN 决定了协调器或者路由器可以有几个孩子节点。孩子节点可以是路由器或者是终端设备。MAX_ROUTERS 数决定了协调器或者路由器下面可以有几个路由器子节点。终端设备的个数=MAX_CHILDREN-MAX_ROUTERS。在 Z-Stack中网络结构和网络深度可在 nwk_文件中设置,默认设置为HOME_CONTROLS。 #if(STACK_PROFILE_ID=HOME_CONTROLS) byte CskipRtrsMAX_NODE_DEPTH+1=6,6,6,6,6,0; byte CskipChldrnMAX_NODE_DEPTH+1=20,20,20,20,20,0; #elif(STACK_PROFILE_ID=GENERIC_STAR)byte CskipRtrsMAX_NODE_DEPTH+1=5,5,5,5,5,0; byte CskipChldrnMAX_NODE_DEPTH+1=5,5,5,5,5,0; #elif(STACK_PROFILE_ID=NETWORK_SPECIFIC) byte CskipRtrsMAX_NODE_DEPTH+1=5,5,5,5,5,0; byte CskipChldrnMAX_NODE_DEPTH+1=5,5,5,5,5,0; #endif/STACK_PROFILE_ID 目的地址模式有如下几种值:AddrNotPresent(地址未知模式) ,Addr16Bit(短地址模式) ,AddrBroadcast(广播模式) 。这些地址模式都是必要的,因为在 ZigBee中,数据包可以是点对点发送(unicast) ,多点发送(multicast) ,也可以是广播式发送(broadcast)。接下来对各种传输模式进行简要的介绍7。 1、一对一模式 一对一模式是在已知目的地址的情况下使用这种方式。在发送数据的时候会包含目的地址信息。在 Z-Stack中的寻址方式可以这样来设置: GenericApp_=Addr16Bit;/以网络地址为目的地址进行寻址 GenericApp_=10;/目的节点的端口号为 10 GenericApp_=0x796f;/目的节点的网络地址 2、广播模式 广播模式是将数据发送给网络中所有的节点。在程序中地址模式设定 AddrBroadcast。在 Z-Stack中的寻址方式可以这样来设置: GenericApp_=AddrBroadcast;/以广播的方式进行寻址 GenericApp_=10;/目的节点的端口号为 10 GenericApp_=0xffff;/目的节点的网络中所有的节点 GenericApp_=0xfffd;/目的节点为网络中非睡眠节点 3、间接接模式 当地址模式设置为 AddrNotPresent,说明发送的信息都是发给协调器的,在协调器的绑定表中查找相应目的地址进行一对一的数据发送。 GenericApp_=(afAddrMode_t)AddrNotPresent; GenericApp_=10; GenericApp_=0;/协调器的网络地址固定为 0x0000; 四、分布式寻址 ZigBeeXX 和 ZigBee XX使用分布式寻址方案来分配网络地址。这个方案保证在整个网络中所有分配的地址是唯一的。这一点是必须的,因为这样才能保证一个特定的数据包能够发给它指定的设备,而不出现混乱。同时,这个寻址算法本身的分布特性保证设备只能与他的父辈设备通讯来接受一个网络地址。不需要整个网络范围内通讯的地址分配,这有助于网络的可测量性。 假设父设备可拥有的最大子设备数为 Cm,其拥有的最大路由子设备数为 Rm,网络的最大深度为 Lm,则父设备所能分配子区段地址数为: ZigBee XX PRO 使用的随机地址分配机制,对新加入的节点使用随机地址分配,为保证网络内地址分配不重复,使用其余的随机地址再进行分配。当一个节点加入时,将接收到父节点的随机分配地址,然后产生“设备声明” (包含分配到的网络地址和 IEEE地址)发送至网 络中的其余节点。如果另一个节点有着同样的网络地址,则通过路由器广播“网 络状态-地址冲突”至网络中的所有节点。所有发生网络地址冲突的节点更改自己的网络地址,然后再发起“设备声明”检测新的网络地址是否冲突。终端设备不会广播“地址冲突” ,他们的父节点会帮助完成。如果一个终端设备发生了“地址冲突” ,他们的父节点发送“重新加入”消息至终端设备,并要求他们更改网络地址。然后,终端设备再发起“设备声明”检测新的网络地址是否冲突。 当接收到“设备声明”后,关联表和绑定表将被更新使用新的网咯地址,但是路由表不会被更新。 络中的其余节点。如果另一个节点有着同样的网络地址,则通过路由器广播“网络状态-地址冲突”至网络中的所有节点。所有发生网络地址冲突的节点更改自己的网络地址,然后再发起“设备声明”检测新的网络地址是否冲突。 终端设备不会广播“地址冲突” ,他们的父节点会帮助完成。如果一个终端设备发生了“地址冲突” ,他们的父节点发送“重新加入”消息至终端设备,并要求他们更改网络地址。然后,终端设备再发起“设备声明”检测新的网络地址是否冲突。 当接收到“设备声明”后,关联表和绑定表将被更新使用新的网咯地址,但是路由表不会被更新。 络中的其余节点。如果另一个节点有着同样的网络地址,则通过路由器广播“网络状态-地址冲突”至网络中的所有节点。所有发生网络地址冲突的节点更改自己的网络地址,然后再发起“设备声明”检测新的网络地址是否冲突。 终端设备不会广播“地址冲突” ,他们的父节点会帮助完成。如果一个终端设备发生了“地址冲突” ,他们的父节点发送“重新加入”消息至终端设备,并要求他们更改网络地址。然后,终端设备再发起“设备声明”检测新的网络地址是否冲突。 当接收到“设备声明”后,关联表和绑定表将被更新使用新的网咯地址,但是路由表不会被更新。 五、Profiles:配置文件,每个应用对应一个配置文件,内容包括设备 ID,簇 ID,属性 ID以及 AF使用何种服务类型等信息。遵循相同标准配置文件的节点可进行互操作,便于不同厂商关于同类应用生产的设备互通互用。 篇二:Zigbee 技术说明技术简介: 蜜蜂在发现花丛后会通过一种特殊的肢体语言来告知同伴新发现的食 物源位置等信息,这种肢体语言就是 ZigZag行舞蹈,是蜜蜂之间一种简单传达信息的方式。借此意义 Zigbee作为新一代无线通讯技术的命名。在此之前 ZigBee也被称为“HomeRF Lite”、 “RF- EasyLink”或“fireFly”无线电技术,统称为 ZigBee。 简单的说,ZigBee 是一种高可靠的无线数传网络,类似于 CDMA和 GSM 网络。ZigBee 数传模块类似于移动网络基站。通讯距离从标准的 75m到几百米、几公里,并且支持无限扩展。 ZigBee 是一个由可多到 65000个无线数传模块组成的一个无线数传网 络平台,在整个网络范围内,每一个 ZigBee网络数传模块之间可以相互通信,每个网络节点间的距离可以从标准的 75m无限扩展。 与移动通信的 CDMA网或 GSM网不同的是,ZigBee 网络主要是为工业 现场自动化控制数据传输而建立,因而,它必须具有简单,使用方便,工作可靠,价格低的特点。而移动通信网主要是为语音通信而建立,每个基站价值一般都在百万元人民币以上,而每个 ZigBee“基站”却不到 1000元人民币。每个 ZigBee网络节点不仅本身可以作为监控对象,例如其所连接的传感器直接进行数据采集和监控,还可以自动中转别的网络节点传过来的数据资料。除此之外,每一个 ZigBee网络节点(FFD)还可在自己信号覆盖的范围内,和多个不承担网络信息中转任务的孤立的子节点(RFD)无线连接 技术特点: ZigBee 是一种无线连接,可工作在(全球流行)、868MHz(欧洲流 行)和 915 MHz(美国流行)3 个频段上,分别具有最高250kbit/s、20kbit/s 和 40kbit/s的传输速率,它的传输距离在 10-75m的范围内,但可以继续增加。作为一种无线通信技术,ZigBee 具有如下特点: (1) 低功耗: 由于 ZigBee的传输速率低,发射功率仅为 1mW,而且采用了 休眠模式,功耗低,因此 ZigBee设备非常省电。据估算,ZigBee 设备仅靠两节 5号电池就可以维持长达 6个月到 2年左右的使用时间,这是其它无线设备望尘莫及的。 (2) 成本低: ZigBee 模块的初始成本在 6美元左右,估计很快就能降 到美元, 并且 ZigBee协议是免专利费的。低成本对于 ZigBee也是一个关键的因素。 (3) 时延短: 通信时延和从休眠状态激活的时延都非常短,典型的搜索 设备时延 30ms,休眠激活的时延是 15ms, 活动设备信道接入的时延为 15ms。因此 ZigBee技术适用于对时延要求苛刻的无线控制(如工业控制场合等)应用。 (4) 网络容量大: 一个星型结构的 Zigbee网络最多可以容纳 254个从 设备和一个主设备, 一个区域内可以同时存在最多100个 ZigBee网络, 而且网络组成灵活。 (5) 可靠: 采取了碰撞避免策略,同时为需要固定带宽的通信业务预留 了专用时隙,避开了发送数据的竞争和冲突。MAC 层采用了完全确认的数据传输模式, 每个发送的数据包都必须等待接收方的确认信息。如果传输过程中 出现问题可以进行重发。(6) 安全: ZigBee提供了基于循环冗余校验(CRC)的数据包完整性检查 功能,支持鉴权和认证, 采用了 AES-128的加密算法,各个应用可以灵活确定其安全属性。 应用实例: ZigBee2模块是一种物联网无线数据终端,利用ZigBee网络为用户提供 无线数据传输功能。 该产品采用高性能的工业级 ZigBee方案,提供 SMT与 DIP接口,可直 接连接 TTL接口设备,实现数据透明传输功能;低功耗设计,最低功耗小于 1mA;提供 6路 I/O,可实现数字量输入输出、脉冲输出;其中有 3路 I/O还可实现模拟量采集、脉冲计数等功能。 该产品已广泛应用于物联网产业链中的 M2M行业,如智能电网、智能 交通、智能家居、金融、移动 POS终端、供应链自动化、工业自动化、智能建筑、消防、公共安全、环境保护、气象、数字化医疗、遥感勘测、农业、林业、水务、煤矿、石化等领域。 zigbee 组网模式 zigbee 组网模式 应用设计 1.采用高性能工业级 ZigBee芯片 2.低功耗设计,支持多级休眠和唤醒模式,最大限度降低功耗 3.电源输入(DC ) 稳定可靠 看门狗设计,保证系统稳定 2.提供 TTL串行接口,SPI 接口。 3.天线接口防雷保护(可选) 标准易用 1.采用的 SMA与 DIP接口,特别适合于不同用户的应用需求。 2.提供 TTL接口可直接连相同电压的 TTL串口设备 3.智能型数据模块,上电即可进入数据传输状态 4.使用方便,灵活,多种工作模式选择 5.方便的系统配置和维护接口 6.支持串口软件升级和远程维护 功能强大 1.支持 ZigBee无线短距离数据传输功能 2.具备中继路由和终端设备功能 3.支持点对点、点对多点、对等和 Mesh网络4.网络容量大:65000 个节点 5.节点类型灵活:中心节点、路由节点、终端节点可任意设置; 6.发送模式灵活:广播发送或目标地址发送模式可选 7.通信距离大 8.提供 6路 I/O,可实现 6路数字量输入输出;兼容6路脉冲输出、3 路模拟量输入、3 路脉冲计数功能 自组织网 编辑 ZigBee 技术所采用的自组织网是怎么回事?举一个简单的例子就可以 说明这个问题,当一队伞兵空降后,每人持有一个ZigBee网络模块终端,降落到地面后,只要他们彼此间在网络模块的通信范围内,通过彼此自动寻找,很快就可以形成一个互联互通的 ZigBee网络。而且,由于人员的移动,彼此间的联络还会发生变化。因而,模块还可以通过重新寻找通信对象,确定彼此间的联络,对原有网络进行刷新。这就是自组织网。 通信原因 网状网通信实际上就是多通道通信,在实际工业现场,由于各种原因,往往并不能保证每一个无线通道都能够始终畅通,就像城市的街道一样,可能因为车祸,道路维修等,使得某条道路的交通出现暂时中断,此时由于我们有多个通道,车辆(相当于我们的控制数据)仍然可以通过其他道路到达目的地。 篇三:zigbee 数据的发送和接收数据的发送和接收 一、 数据的发送 在 ZStackXX的协议栈中,我们只需调用函数AF_DataRequest()即可完成数据的 发送。 afStatus_t AF_DataRequest( afAddrType_t *dstAddr, endPointDesc_t *srcEP, uint16 cID, uint16 len, uint8 *buf, uint8 *transID, uint8 options, uint8 radius ) 而我们在使用 AF_DataRequest() 函数时只需要了解其参数便可以非常灵活的以 各种方式来发送数据。AF_DataRequest()函数参数说明如下: *dstAddr-发送目的地址、端点地址以及传送模式 *srcEP -源端点 cID -簇 ID len -数据长度 *buf -数据 *transID -序列号 options -发送选项 radius -跳数 *dstAddr 决定了消息发送到那个设备及那个endpoint,而簇 ID(cID)决定了设备接 收到信息如何处理。簇可以理解为是一种约定,约定了信息怎么处理。 重要参数说明: 1、地址 afAddrType_t typedef struct union uint16 shortAddr; /短地址 addr; afAddrMode_taddrMode; /传送模式 byteendPoint; /端点号 afAddrType_t; 2、端点描述符 endPointDesc_t typedef struct byteendPoint; /端点号 byte*task_id; /那一个任务的端点号 SimpleDescriptionFormat_t*simpleDesc;/简单的端点描述 afNetworkLatencyReq_tlatencyReq; endPointDesc_t; 3、简单描述符 SimpleDescriptionFormat_t typedef struct byte EndPoint; /EP uint16 AppProfId; /应用规范 ID uint16 AppDeviceId; /特定规范 ID 的设备类型 byte AppDevVer:4; /特定规范 ID 的设备的版本 byte Reserved:4; /AF_V1_SUPPORTusesforAppFlags:4. byte AppNumInClusters; /输入簇 ID 的个数 cId_t *pAppInClusterList; /输入簇 ID 的列表 byte AppNumOutClusters; /输出簇 ID 的个数 cId_t *pAppOutClusterList; /输出簇 ID 的列表 SimpleDescriptionFormat_t; 4、簇 ID cID ClusterID-具体应用串 ID 5、发送选项 options 发送选项有如下选项 #defineAF_FRAGMENTED 0x01 #defineAF_ACK_REQUEST 0x10 #defineAF_DISCV_ROUTE 0x20 #defineAF_EN_SECURITY 0x40 #defineAF_SKIP_ROUTING 0x80 其中 AF_ACK_REQUEST为发送后需要接收方的确认 6、半径、条数 radius 传输跳数或传输半径,默认值为 10 数据发送模式说明:在协议栈数据发送模式有以下几种:单播、组播、广播和直接发送四种模式。 广播发送 广播发送可以分为三种,如果想使用广播发送,则只需将 dstAddr-addrMode设为 AddrBroadcast,d(转 载于: 小 龙 文档网:zigbeeXX协议规范完整版)stAddr-addr-shortAddr 设置为相应的广播类型即可。具体的定义如下: NWK_BROADCAST_SHORTADDR_DEVALL(0xFFFF)数据包将被传送到网络上的所有设备,包括睡眠中的设备。对于睡眠中的设备,数据包将被保留在其父亲节点直到查询到它,或者消息超时。 NWK_BROADCAST_SHORTADDR_DEVRXON(0xFFFD)数据包将被传送到网络上的所有接收机的设备(RXONWHENIDLE),也就是说,除了睡眠中的所有设备。 NWK_BROADCAST_SHORTADDR_DEVZCZR(0xFFFC)数据包发送给所有的路由器,包括协调器。 组播发送 如果设备想传输数据到某一组设备,那么只需将dstAddr-addrMode设为AddrGroup, dstAddr-addr-shortAddr 设置为相应的组 ID 即可。代码如下: /Setupfortheflash commands destinationaddress-Group1 SampleApp_Flash_=(afAddrMode_t)afAddrGroup; SampleApp_Flash_=SAMPLEAPP_ENDPOINT; SampleApp_Flash_=SAMPLEAPP_FLASH_GROUP; 根据上面代码的配置,然后使用 AF_DataRequest()函数来进行组播发送。 单播发送 单播发送需要知道目标设备的短地址,需要将 dstAddr- addrMode 设为 Addr16Bit,dstAddr-addr-shortAddr 设置为目标设备的短地址即可。 代码如下: SampleApp_Flash_=(afAddrMode_t)afAddr16Bit; SampleApp_Flash_=SAMPLEAPP_ENDPOINT; SampleApp_Flash_=0x00; 根据上面代码的配置,然后使用 AF_DataRequest()函数来进行点对点发送。 绑定发送 绑定发送目标设备可以是一个设备、多个设备、或者一组设备,由绑定表中的绑定信息决定。绑定发送,需要

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论