分享
分享赚钱 收藏 举报 版权申诉 / 6

类型zigbee技术入门之我见.doc

  • 上传人:yjrm16270
  • 文档编号:7660386
  • 上传时间:2019-05-23
  • 格式:DOC
  • 页数:6
  • 大小:39.50KB
  • 配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    zigbee技术入门之我见.doc
    资源描述:

    1、Zigbee 是一种新型的短距离无线通信技术。其特点是低功耗,低成本,组网灵活。Zigbee协议由 zigbee 联盟指定,包括应用层,和网络层,其下层采用 IEEE802.15.4 协议。无论是学习 zigbee 技术,还是利用 zigbee 技术开发产品,都需要较好的掌握 zigbee 协议,并比较深入的了解 IEEE802.15.4 协议.然而仅 zigbee 协议就接近 400 页,而IEEE802.15.4 协议多达 600 页,全部是英文。如果从来没有接触过无线通信的开发,要迅速掌握这么多内容确实有一些难度,笔者考虑到广大急切进入 zigbee 的同仁者,结合自己开发中总结出的理解

    2、协议的特定方法,从开发的角度,阐述协议内容,以达到抛砖引玉的效果,同时和广大同仁交流,共同提高,并希望 zigbee 技术能够在中国发扬光大。协议从功能实现来讲,ZigBee 协议层共包括物理层(又称实体层) 、MAC 层、数据链接层、网络层和应用支持层五个主要层次。在标准制定的分工上,ZigBee 协议层是由ZigBee 联盟和 IEEE802.15.4 的任务小组共同完成的。其中,物理层(又称实体层) 、MAC层、数据链接层,以及传输过程中的资料加密机制等都是由 IEEE 所主导的。网络层和应用支持层则由 ZigBee 联盟来完成。IEEE802.15.4 小组与 ZigBee 联盟共同针

    3、对 ZigBee 协议栈的发展进行研究,而未来还能依据系统客户的要求来修正其所需的应用界面。如图 1 所示: Zigbee 协议整体架构作为理解协议,从开发者的角度来讲,这样学习协议是比较费时间的,也较难掌握。笔者从自己长期开发的经验来看,对无线通信,最重要的就是在发送端根据用户的要求,把数据能够扔出去,并且是扔到指定的设备,在接收端,能够把发送到该设备的数据捡起来。并根据用户要求的作特定的处理。如果考虑在一个无线网路中的话,就得首先建立网络,其他得设备加入网络。最后是才是一些其他的问题,如设备离开网络,设备重新加入网络,等等。这样从通信过程去理解协议,将会使得协议的内容非常明了,也可以很好的

    4、知道利用协议开发产品,达到事半功倍的效果。本人将根据这样的思路,分五期具体讲述协议内容:第一期:设备建立网络过程第二期:设备加入网络过程第三期:数据发送过程第四期:数据接收过程第五期:其他的问题zigbee 设备建立网络过程在一个 zigbee 网络中,只有协调器( coordinator)设备可以建立网络,在建立网络过程中,所有的实现过程都是通过原语实现的(具体在程序中,如用 c 语言,就是调用一个一个函数,或者是一个一个任务来实现(不要刻意最求这句话的准确性,本来好的协议就是只要达到这样的结果,不管具体实现) ) ,首先协调器设备的应用层调用NLME_NETWORK_FORMATION.r

    5、equest 原语,发出建立网络请求,网络层收到这个原语,就要求 MAC 层执行信道能量扫描(在 IEEEE802.15.4 协议中规定,在 2.4G 频段,共有 16个信道,每个信道的带宽为 5M,深入理解,可以看协议和通信原理的相关资料) 。这调用MLME_SCAN.request,主要找到信道能量低于设定能量值的信道,并且标注这些信道是可用信道,下一步就在可用信道中执行活动情况扫描(active scan),就是在可接受的信道搜寻zigbeee 设备,找到一个最好的信道,通过记录的结果,选择一个信道,该信道存在最少的zigbee 网络,最好是没有 zigbee 设备。如果没有合适的,将发

    6、送 confirm 原语,并告知上层结果;如果找到了合适的信道,将随机选择一个 PAN(网络号,就是可以识别一个特定 zigbee 网络的标识号) ,不与原来的冲突,如果没有找到,也通过原语告诉上层结果,如果找到了,就通过原语在 MAC 层注册,这个 ID 号,然后选择网络地址,并发送 MLME_START.request 原语,获取 PAN ID和信道扫描结果,将通过 confirm 原语告知上层。收到 PAN 开始的状态, NLME 将告知应用层,它要求的建立网络的状态,这通过NLME_NETWORK_FORMATION.confirm 原语实现。zigbee 设备加入网络过程(方式一 关

    7、联加入)在一个 zigbee 协调器设备建立网络后,路由器设备或者终端设备(end device) ,可以加入协调器建立的网络,具体加入网络有两种方式,一种是通过关联(association)方式,就是待加入的设备发起加入网络,具体实现方式后面讨论,另一种是直接(direct)方式,就是待加入的设备具体加入到那个设备下,作为该设备的子节点,由以前网络中的设备,想待加入的设备作为其子设备决定。下面重点讨论第一种方式,也是实际中用的最多的方式通过关联方式加入一个网络:加入一个设备,是两个设备的事,即子设备和待定父设备对于子设备,首先子设备调用 NLME-NETWORK-DISCOVERY.requ

    8、est 原语,设定待扫描的信道,以及每个信道扫描的时间,网络层收到这个原语,将要求 MAC 层执行被动或主动扫描。具体发送到设备外的是一个 becon request 帧,当在这个信道中的设备收到该帧,将会发送 becon 帧,这是子设备通过 BEACON-NOTIFY.indication 原语,告知该设备的 MAC 层,该 becon 帧包含了发送该帧的地址信息,以及是否允许其他设备以其子节点的方式加入。待加入的设备,在网络层,将检查该 becon 帧 协议 ID 是否是 zigbee ID 。如果不是,将 忽略;如果是,该设备将复制收到每个 becon 帧的相关信息到其关联表中( nei

    9、ghbor table) 。一旦 MAC 层完成了扫描,将发送 MLME-SCAN.confirm 原语,告知网络层,网络层将发送 NLME-NETWORK-DISCOVERY.confirm 原语,告知应用层。应用层收到该原语,应用层将根据情况,要么重新要求扫描,或者从关联表中选择所发现的网络加入。调用 NLME-JOIN.request 原语,原语中各个参数的设置参看协议(可以在本站下载栏找到)非常容易。如果在关联表中找不到合适的准父节点,将调用原语告知应用层,如果由多个设备可以满足要求,将选择到协调器节点深度最低的设备,如果有几个设备的深度相同,且都是最小深度,将从中随机选择一个。一旦潜

    10、在的父节点确定,网络层将调用 MLME-ASSOCIATE.request 原语到 MAC 层。具体设置参看协议相关部分(213 页) ,连接状态将通过 MLME-ASSOCIATE.confirm 原语反馈。如果试图加入不成功,网络层将收到 MAC 层通过 MLME-ASSOCIATE.confirm 告知的加入失败,如果收到的是潜在父节点拒绝该设备加入,这时候,网络层将会在关联表中,把该潜在父节点的相应部分,潜在父节点位(potential parent bit)置为零,确保网络层,不再给这个设备二次发送加入请求。如果一次加入没成功,将选择另一个潜在的父节点加入,指导找到一个合适的设备加入

    11、或者所有的设备都不适合。如果加入成功,网络层收到的 MLME-ASSOCIATE.confirm 原语,将含有该设备可用的16 唯一的逻辑地址,网络层将在关联表中设置与其父节点的关系,同时,这个父节点也会在其关联表中加入这个新设备。如果是以路由器(router) 形式成功加入网络,该设备的应用层将发送 NLME-STAT_ROUTER. request 原语,网络层将发送 MLME-STAT.request 原语到 MAC 层。收到了 MLME-START.confirm 原语,网络层 将发送 NLME-START-ROUTER.confirm 原语,含有同样的状态值。对于父节点设备:只有协调

    12、器或路由器,可以加入设备,进行该操作,首先从 MAC 层开始,MAC 接收到一帧(ASSOCIATE)数据 ,通过 MLME_ASSOCIATE.indication 原语传到网络层,潜在的父节点收到这帧数据,首先判断该设备是否已经存在其关联表中,如果找到,NLME 将获取相应的 16 位网络地址,并发送 association response 到 MAC 层,如果没有找到,将分配一个在这个网络中唯一的地址给待加入的设备,如果潜在父节点已经用完了地址分配,NLME 将中止,通过 MLME-ASSOCIATE.reponse 原语,告知该设备,不能接收子设备了,在多跳网络中,其他的设备还可以接

    13、收。如果设备加入得到许可,这时候,将在关联表中创建一个表项,作为其子节点,并通过MLME-ASSOCIATE.reponse 原语,告知该设备,已经成功加入网络。zigbee 设备加入网络(方式二 直接加入)直接方式加入网络(directly)下面讲述如何一个子设备,在其潜在父节点预先指派的情况下加入网络以这种方式加入网络的过程中,首先由父节点发起,下面根据建网的过程来讲述父节点:首先调用requese 原语,在目的地址部分设置成要求加入网络设备的地址,当这个过程初始化后,在父节点的网络层要判断该子设备是否已经加入网络,如果在其关联表中找到了这个设备,将终止操作,并通过confirm 原语告诉

    14、应用层,设备已经加入网络,如果没有找到匹配的,在网络层,如果可能 ,将分配一个在这个 网络中唯一的位网络地址,将在其关联表中为这个子节点创建一个表项,如果不可以,confirm 原语告诉应用层表已满,如果可以,confirm 原语告诉应用层创建成功注意,这个过程父节点设备是没有向空中发射信息,只是在自己设备内处理但是,在子设备要求加入时,以孤节点方式实现,因为该过程和孤节点方式重新加入实现方式一样子节点:子节点通过孤节点方式加入首先子设备调用request 原语,并在 ejoinetwork 项设置为真,然后网络层要求执行孤节点扫描,对设置的信道,该步由request 初始化,通过 comfi

    15、rm 原语返回结果如果扫描成功,网络层将通过调用.confirm 原语告之应用层,加入成功如果扫描没有成功,网络层将终止操作,并告之应用层,没有找到网络,该步通过调用confirm 原语实现子节点要求加入后,父节点将做如下处理在层收到indication 原语,只有协调器或路由器将做进一步处理当这一过程完成后,网络层将首先查找看其子设备是否为孤节点,如果有,将比较地址,如果匹配,将获取相应的位网络地址,通过层reponse 原语告之子设备接收发送数据的总体过程在前面已经讲述了 zigbee 网络的建立过程,以及设备设备加入网络,现在作为实质的网络通信的平台已经搭建好了,可以进行数据传输了,下面

    16、将讲述在 zigbee 网络中,数据从一个设备发送到另一个设备的整体过程,后面在讲述涉及到数据传输的路由发现以及路由过程。传输:只有设备加入到网络中,才可以传输数据,首先,按照协议中规定的帧形式,构建帧数据,该帧数据包括帧头,帧内容,其中帧头包括帧类型,源地址,目的地址,PAN,CLUSTERID,等等信息,详细参考协议,帧构建好后,然后调用 MAC 层的原语,MCPS-DATA.request,将收到结果通过 MCPS-DATA.confirm接收:设备可以接收数据,首先必须使能接收,在协调器或路由器中,只要设备不发送数据就可以处于接收状态,对于 end device,应用调用 NLME-S

    17、YNC.request 原语,网络层,调用MLME-POLL.request 原语,去查看其父节点是否暂存数据,待发送到该节点,如果有,将使能接收。在 MAC 层收到数据后,首先帧头控制部分的传输半径内容将减一,然后交到网络层,网络层判断目的地址是否是自己或者该帧是广播数据帧,将把该数据传到应用层,广播帧数据将通过后面(广播传输部分)继续传输,如果目的地址不是自己,该节点是路由器或协调器,将通过后面(路由传输部分)继续传输,否则,该帧数据将被丢弃。如果是路由发现帧,将会用路由回复帧,并继续发送路由发送帧,具体过程后面详细讨论。zigbee 设备收发数据的整体过程zigbee 设备发送数据只有加

    18、入了网络的设备才可以发送数据,首先,应用层将一帧数据打包好,然后调用网络层的原语,并在网络层按照协议的配置,加上帧头,如果考虑安全机制,还要做安全处理。接收和再发送:在非信标的网络中,只要设备不发送数据,就可以处于接收的状态,只要在接收使能的情况下,收到一帧数据,将把该帧数据帧头的传输半径减一。如果该值为零,将不会再传输到下一个设备,该帧数据,将被送到应用层,或在网络层做具体的处理。数据帧,如果目的地址是该接收设备,将会发送到应用层,如果是广播数据帧,也会发送到应用层,并且还会继续传播到其他设备,具体的传输方式将在下一讲中介绍。如果正在接收的设备是协调器或路由器设备,并且已经使能了路由,如果接收到的数据目的地址不是该设备,将中继该帧数据到其他设备,如果其他情况,将舍弃该帧数据。如果接收到的数据是路由应答,如果目的地址是该设备,将用后面讲到的方式处理,否则,将舍弃该帧数据,并且将发送路由错误帧。本文来自:我爱研发网(52RD.com) - R&D 大本营详细出处:http:/

    展开阅读全文
    提示  道客多多所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:zigbee技术入门之我见.doc
    链接地址:https://www.docduoduo.com/p-7660386.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    道客多多用户QQ群:832276834  微博官方号:道客多多官方   知乎号:道客多多

    Copyright© 2025 道客多多 docduoduo.com 网站版权所有世界地图

    经营许可证编号:粤ICP备2021046453号    营业执照商标

    1.png 2.png 3.png 4.png 5.png 6.png 7.png 8.png 9.png 10.png



    收起
    展开