无线传感器网络实验教程zstack协议栈中绑定.pptx
《无线传感器网络实验教程zstack协议栈中绑定.pptx》由会员分享,可在线阅读,更多相关《无线传感器网络实验教程zstack协议栈中绑定.pptx(49页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Copyright:柯宗武本章内容绑定的基本概念绑定的方法实例讲解第1页/共49页Copyright:柯宗武实验内容协调器通过广播方式绑定终端节点,在液晶屏上显示绑定过程。终端节点绑定到协调器。绑定成功后发送“Hello World”给协调器并显示。绑定完成后,按协调器中键(center)时点亮对方的指示灯。第2页/共49页Copyright:柯宗武预备知识-传感器网络数据通信第3页/共49页Copyright:柯宗武预备知识-ZigBee网络地址网络地址在一个新设备加入网络之后协调器会主动为它分配一个网络地址,以方便在网络中的身分确认理论地址范围:0-65535某些专用的地址不会分配给设备如
2、:0 xFFFF是广播地址(所有设备),0 xFFFE是广播到FFD设备(全功能设备:路由器)第4页/共49页Copyright:柯宗武预备知识-ZStack中网络地址定义typedef struct union uint16 shortAddr;ZLongAddr_t extAddr;addr;byte addrMode;zAddrType_t;枚举类型enum AddrNotPresent=0,AddrGroup=1,Addr16Bit=2,Addr64Bit=3,AddrBroadcast=15;第5页/共49页Copyright:柯宗武预备知识-应用框架(Application Fra
3、mework)AF层为各个用户自定义的应用对象提供了模板式的活动空间,为每个应用对象提供了键值对KVP服务和报文MSG服务两种服务供数据传输使用。每个节点除了64位的IEEE地址,16位的网络地址,每个节点还提供了8位的应用层入口地址,对应于用户应用对象。端点0为ZDO接口,端点1至240供用户自定义用于对象使用,端点255为广播地址,端点241-254保留将来使用。第6页/共49页Copyright:柯宗武预备知识-应用框架(Application Framework)每一个应用都对应一个配置文件(Profile)。配置文件包括:设备ID(Device ID),事务集群ID(cluster
4、ID),属性ID(Attribute ID)等。AF可以通过这些信息来决定服务类型。第7页/共49页Copyright:柯宗武预备知识-profiles应用profiles是一组统一的消息,消息格式和处理方法,允许开发者建立一个可以共同使用的分布式应用程序,这些应用是利用驻扎在独立设备中的应用实体来实现的。这些应用profiles允许应用程序发送命令、请求数据和处理命令的请求。总之,配置文件使得ZigBee 设备可以互操作。ZigBee 联盟已经定义了很多标准的配置文件,比如远程控制开关配置文件和智能家居等。任何遵循某一标准配置文件的节点都可以与其他实现相同配置文件的节点进行互操作。一个pub
5、lic profile也规定了profile 的ID,比如智能家居就规定是0 x104。第8页/共49页Copyright:柯宗武预备知识-簇(cluster)簇标识符可用来区分不同的簇,簇标识符联系着从设备流出和向设备流入的数据。在特殊的应用profiles范围内,簇标识符是唯一的。cluster要理解成一个大方向下的一个特定对象,比如智能家居下的一个调光器,操作这个调光器就需要一些命令,比如变亮,变暗,关灯,开灯这些,另外,这个调光器也会有一个attribute,也就属性,比如当前的亮度,由亮变暗的过程经历多长时间。第9页/共49页Copyright:柯宗武预备知识-簇(cluster)总
6、结说来,Profile规范了应该包括哪些cluster,一个cluster会有一个ID,在一个cluster下又会有很多command,也会有很多attibute,在一个cluster下面command 和attribute的ID要唯一,不同的cluster下可以重复,不同的profile下clusterID也可以重复。第10页/共49页Copyright:柯宗武预备知识-ZigBee设备对象(ZDO)ZigBee设备对象(ZDO),描述了一个基本的功能函数,这个功能在应用对象、设备profile和APS之间提供了一个接口。ZDO位于应用框架和应用支持子层之间。它满足所有在ZigBee协议栈中
7、应用操作的一般需要。此外ZDO还有以下作用:初始化应用支持子层(APS),网络层(NWK),安全服务规范(SSS)。从终端应用集合中配置的信息来确定和执行安全管理、发现、网络管理、以及绑定管理。第11页/共49页Copyright:柯宗武预备知识-ZigBee设备对象(ZDO)ZDO描述了应用框架层中应用对象的公用接口以及控制设备和应用对象的网络功能。在终端节点0,ZDO提供了与协议栈中与低一层连接的接口,如果是数据则通过APSDE-SAP,如果是控制信息则通过APSME-SAP。APS数据实体(APSDE)提供在同一个网络中的两个或者更多的应用实体之间的数据通信。通过APSDE服务接入点(A
8、PSDE-SAP);APS管理实体(APSME)提供多种服务给应用对象,这些服务包含安全服务和绑定设备,并维护管理对象的数据库,也就是我们常说的AIB。第12页/共49页Copyright:柯宗武预备知识-ZDO与Profile的关系ZDO是ZigBee设备对象,属于特殊的Endpoint(特制自己);Profile面向某个应用的公约或准则,包括5种描述项;AF是应用层。Profile是法律条款,ZDO是逻辑工作实体(自己);Profile中的多种描述项是条例、是图纸,ZDO是具体实现。以上内容详见ZigBee2007协议规范第13页/共49页Copyright:柯宗武绑定(Binding)的
9、基本概念绑定是一种两个(或者多个)应用设备之间信息流的控制机制。绑定允许应用程序发送一个数据包而不需要知道目标地址。APS 层从它的绑定表中确定目标地址,然后将数据继续向目标应用或者目标组发送当两个设备已经在他们的简单描述符结构中登记为一样的簇ID,并且一个作为输入另一个作为输出时,绑定才能成功。绑定服务是针对设备端点上的簇,用户程序只需要提供端点号和簇ID,就可以通过绑定表找到对应的被绑定的节点的网络地址和端点号,从而实现无线数据的发送 第14页/共49页Copyright:柯宗武建立绑定表有四种方法可以建立一个绑定表:ZigBee Device Object Bind Request(Ma
10、tch方式)一个启动工具可以告诉设备创建一个绑定记录ZigBee Device Object End Device Bind Request两个设备可以告诉协调器它们想要建立一个绑定表记录。协调器来协调并在两个设备中创建绑定表记录。Device Application一个设备上的应用程序建立或者管理一个绑定表由管理员手工绑定通过pc机串口发送绑定命令,集中管理。第15页/共49页Copyright:柯宗武ZigBee Device Object Bind Request任何一个设备都可以发送一个 ZDO 信息给网络中的另一个设备,用来建立绑定表。称之为援助绑定,它可以为一个发送设备创建一个绑定
11、记录。Match方式一个节点可以通过调用afSetMatch函数允许或禁止本节点被Match(协议栈默认允许,可以手工关闭),然后另外一个节点在一定的时间内发起ZDP_MatchDescReq请求,允许被Match的节点会响应这个Req,发起的节点在接收到RSP的时候就会自动处理绑定。第16页/共49页Copyright:柯宗武Match方式网络中不一定有协调器存在,但是有A、B、C、D等多个节点,A性质是Outcluster,B、C、D的性质是Incluster,你可以通过按键策略来在一定时间内允许B、C、D中的任何一个开启被Match的功能,同时A发起Match请求(广播的),那么被允许M
12、atch的节点就会在收到请求后将自己的信息返给A,A在得到rsp的时候来处理绑定,第17页/共49页Copyright:柯宗武Match方式绑定流程第18页/共49页Copyright:柯宗武Match方式绑定流程第19页/共49页Copyright:柯宗武ZigBee Device Object End Device Bind Request这个机制是在指定的时间周期(timeout period)内,通过按下选定设备上的按钮或者类似的动作来绑定。协调器在指定的时间周期内,搜集终端设备的绑定请求信息,然后以配置 ID(Profile ID)和簇ID(Cluster ID)协议为基础,创建一个
13、绑定表记录作为结果。默认的设备绑 定时间周期(APS_DEFAULT_MAXBINDING_TIME)是 16 秒钟(在 nwk_globals.h 中定义)。但是将它添加到f8wConfig.cfg 中,则可以更改。第20页/共49页Copyright:柯宗武ZigBee Device Object End Device Bind Request绑定程序流程在 GenericApp.c 中的GenericApp_HandleKeys 函数中首先确定目的地址类型及目的地址,然后调用 ZDApp_SendEndDeviceBindReq()函数ZDApp_SendEndDeviceBindReq
14、搜集所有终端节点的请求信息,然后调用 ZDP_EndDeviceBindReq()【userApp.c】函数将这些信息通过fillAndSend()【ZDProfile.c】函数调用AF_DataRequest()【ZDProfile.c】函数发送给协调器。第21页/共49页Copyright:柯宗武ZigBee Device Object End Device Bind Request绑定程序流程协调器调用函数ZDApp_ProcessOSALMsg()【ZDApp.c】ZDApp_ProcessOSALMsg调用函数 ZDP_IncomingData()【ZDProfile.c】函数接收这
15、些信息。ZDApp_ProcessMsgCBs函数处理响应信息,调用ZDO_MatchEndDeviceBind()【ZDObject.c 中】函数来处理这个请求。第22页/共49页Copyright:柯宗武ZigBee Device Object End Device Bind Request绑定程序流程当收到两个匹配的终端设备绑定请求,协调器在请求设备中启动创建源绑定记录的进程。假设在ZDO 终端设备中发现了匹配的请求,协调器将执行下面的步骤:发送一个解除绑定请求给第一个设备。这个终端设备锁定进程,这样解除绑定被首先发送来去掉一个已经存在的绑定记录。等待 ZDO 解除绑定的响应,如果响应的
16、状态是 ZDP_NO_ENTRY,则发 送一个 ZDO 绑定请求第23页/共49页Copyright:柯宗武ZigBee Device Object End Device Bind Request绑定程序流程在源设备中创建一个绑定记录。如果状态是 ZDP_SUCCESS,则继续前进到第一个设备的簇ID。等待 ZDO 绑定响应,如果收到了,则继续前进到第一个设备的下一个簇ID。当地一个设备完成后,用同样的方法处理第二个设备。当第二个设备也完成之后,发送 ZDO 终端设备绑定请求消息给两个设备。第24页/共49页Copyright:柯宗武Device Application另一种进入设备绑定记录的
17、方式是应用自己管理绑定表。这就意味着应用程序需要通过调用下面的绑定管理函数在本地进入并且删除绑定记录:bindAddEntry()在绑定表中增加一个记录bindRemoveEntry()从绑定表中删除一个记录bindRomoveClusterIdFromList()从一个存在的绑定表记录中删除一个群 IDbindAddClusterIdToList()向一个已经存在的绑定记录中增加一个群 IDbindRemoveDev()删除所有地址引用的记录第25页/共49页Copyright:柯宗武Device ApplicationbindRemoveSrcDev()删除所有源地址引用的记录bindUp
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 无线 传感器 网络 实验 教程 zstack 协议 绑定
限制150内