[计算机软件及应用]ZigBee协议栈TI Z.doc

上传人:sccc 文档编号:4561730 上传时间:2023-04-27 格式:DOC 页数:44 大小:378.50KB
返回 下载 相关 举报
[计算机软件及应用]ZigBee协议栈TI Z.doc_第1页
第1页 / 共44页
[计算机软件及应用]ZigBee协议栈TI Z.doc_第2页
第2页 / 共44页
[计算机软件及应用]ZigBee协议栈TI Z.doc_第3页
第3页 / 共44页
[计算机软件及应用]ZigBee协议栈TI Z.doc_第4页
第4页 / 共44页
[计算机软件及应用]ZigBee协议栈TI Z.doc_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《[计算机软件及应用]ZigBee协议栈TI Z.doc》由会员分享,可在线阅读,更多相关《[计算机软件及应用]ZigBee协议栈TI Z.doc(44页珍藏版)》请在三一办公上搜索。

1、ZigBee协议栈TI Z-Stack分析 2007年4月,德州仪器推出业界领先的ZigBee协议栈(Z-Stack)。Z-Stack符合ZigBee 2006规范,支持多种平台,包括基于CC2420收发器以及TI MSP430超低功耗单片机的平台,CC2430的SOC SLANRF-2431DK平台。Z-Stack包含了网状网络拓扑的几近于全功能的协议栈,在竞争激烈的ZigBee领域占有很重要地位。 ZigBee stack应用开发相关概念 ZigBee术语一、属性 属性Attribute是一个反映物理数量或状态的数据值,比如开关值(On/Off) ,温度值、百分比等。 二、群集 群集Clu

2、ster是包含一个或多个属性(attribute)的群组。简单的说,群集就是属性的集合。每个群集都被分配一个唯一的群集ID 且每个群集最多有65536个属性。 三、设备描述 设备描述Device Description是指一个大型目标应用的一部分,包括一个或多个群集,并且指定群集是输入还是输出。 四、端点 端点EndPoint是协议栈应用层的入口,也可以理解应用对象(Application Object)存在的地方,它是为实现一个设备描述而定义的一组群集。每个ZigBee设备可以最多支持240这样的端点,这也意味着在每个设备上可以定义240个应用对象。端点0被保留用于与ZDO接口而端点255被

3、保留用于广播,端点241-254则被保留用于将来做扩展使用。25 五、配置文件 配置文件Profile可以理解为共同促成交互式应用的多个设备描述项的集合。 ZigBee联盟已经定义了部分标准的配置文件,比如远程控制开关配置文件和光传感器配置文件等。任何遵循某一标准配置文件的节点都可以与实现相同配置文件的节点进行互操作。用户也可以创建自己的配置文件然后递交ZigBee联盟测试、审核批准。 配置文件是对逻辑设备及其接口描述的集合,是面向某个应用类别的公约、准则。设备描述符是为分布应用提供的描述项,多种描述项共同组成描述集合Profile。定义Profile的目的就是使得不同厂商生产的ZigBee设

4、备能够实现互操作。 六、节点 节点Node也可以理解为一个容器,包含一组ZigBee设备,分享一个无线信道。每个节点有且只有一个无线信道使用。 七、绑定(Binding) ZigBee定义了一个称为端点绑定的特殊过程。绑定即在源节点的某个端点( EndPoint)和目标节点的某个端点之间创建一条逻辑链路。绑定可以发生在两个或多个设备之间。协调器节点维护一个基本上包括两个或多个端点之间的逻辑链路的绑定表。 在绑定表中,包含如下信息,源节点和目的节点的IEEE地址、Endpoint号以及ClusterID。对于可以建立绑定关系的两个节点,它们的Cluster的属性必须一个选择“输入”,另一个选择“

5、输出”,而且ClusterID值相等,只有这样,它们彼此才能建立绑定。如果目标设备的扩展地址是已知的,则调用zb_BindDeviceRequest( )函数可以创建一个绑定条目。 八、寻址(Addressing) 在ZigBee网络中,使用两种地址: 一种是64位的IEEE Address,也叫物理地址,64位地址在所有ZigBee设备之中是唯一,其中包含一个由IEEE分配、也是全球唯一的24位制造商特定组织标识符OUI(Organizationally Unique Identifier); 另一种是16位的NWK Address即网络地址,当设备加入ZigBee网络时,从允许其加入的父设

6、备上获取16位网络地址。该地址在ZigBee网络中唯一,用于数据传输和数据包路由。 在ZigBee中,数据包可以单点传送(unicast),多点传送(multicast)或者广播传送(broadcast),所以必须有地址模式参数。一个单点传送数据包只发送给一个设备,多点传送数据包则要传送给一组设备,而广播数据包则要发送给整个网络的所有节点。当应用程序需要将数据包发送给网络上的一组设备时,还可以使用组寻址方式(Group Addressing)。 TI Z-Stack协议栈架构分析 协议栈定义通信硬件和软件在不同级如何协调工作。在网络通信领域,在每个协议层的实体们通过对信息打包与对等实体通信。在

7、通信的发送方,用户需要传递的数据包按照从高层到低层的顺序依次通过各个协议层,每一层的实体按照最初预定消息格式向数据信息中加入自己的信息,比如每一层的头信息和校验等终抵达最低的物理层,变成数据位流,在物理连接间传递。在通信的接收方数据包依次向上通过协议栈,每一层的实体能够根据预定的格式准确的提取需要在本层处理的数据信息,最终用户应用程序得到最终的数据信息进行处理。ZigBee无线网络的实现,是建立在ZigBee协议栈的基础上的,协议栈采用分层的结构协议分层的目的是为了使各层相对独立,每一层都提供一些服务,服务由协议定义,程序员只需关心与他的工作直接相关的那些层的协议,它们向高层提供服务,并由低层

8、提供服务。 在ZigBee协议栈中,PHY、MAC层位于最低层,且与硬件相关;NWK、APS, APL层以及安全层建立在PHY和MAC层之上,并且完全与硬件无关。分层的结构脉络清晰、一目了然,给设计和调试带来极大的方便。 整个Z-Stack采用分层的软件结构,硬件抽象层(HAL)提供各种硬件模块的驱动,包括定时器Timer,通用I/O口GPIO,通用异步收发传输器UART,模数转换ADC的应用程序接口API,提供各种服务的扩展集。操作系统抽象层OSAL实现了一个易用的操作系统平台,通过时间片轮转函数实现任务调度,提供多任务处理机制。用户可以调用OSAL提供的相关API进行多任务编程,将自己的应

9、用程序作为一个独立的任务来实现。Z-stack OSAL API 介绍 OSAL层是与协议栈独立的,但是整个协议都要基于OS才能运行。OSAL提供如下服务和管理:信息管理、任务同步、时间管理、中断管理、任务管理、内存管理、电源管理以及非易失存储管理。 一、信息管理API 信息管理为任务间的信息交换或者外部处理事件(例如:中断服务程序或一个控制循环内的函数调用等)提供一种管理机制。包括允许任务分配或不分配信息缓存、发送命令信息到其他任务、接受应答信息等API函数。 二、同步任务API 该API允许一个任务等待某个事件的发生并返回等待期间的控制。该API的功能是为某个任务设置事件,一旦任何一个事件

10、被设置就修改该任务。 三、时间管理API 该API允许定时器被内部(Z-Stack)任务和外部任务使用。该API提供开始和停止一个定时器的功能,这些定时器能用毫秒(ms)设置。 四、中断管理API 这些API是外部中断和任务的接口。这些API函数允许一个任务为每个中断分配指定服务程序。这些中断能被允许或禁止。在服务程序内,可为其他的任务设置事件。 五、任务管理API 该API用在管理OSAL中的任务,包括系统任务和用户自定义任务的创建、管理和信息处理等。 六、内存管理API 该API描绘了简单的存储分配系统。这些函数允许动态存储分配。 七、电源管理API 这里描写了OSAL的电源管理系统。当O

11、SAL安全地关闭接收器与外部硬件并使处理器进入休眠模式时,该系统提供向应用/任务通告该事务的方式。Z-Stack ZigBee API命令解释:应用程序编程接口(1) 1.1 ZigBee 设备对象(ZDO) 本节列举了ZDO 层提供的所有函数调用,它们对于实现ZigBee 设备功能层(ZDP)定义的所有命令和响应,以及其它能使设备像ZigBee 设备一样运行的功能都是必需的。在概述一节中根据功能将ZDO 的所有API 函数分类,每一类将在以下的章节中进行讨论。 1.1.1 概述 ZDP描述了ZDO内部一般性的ZigBee 设备功能是如何实现的。它定义了使用命令和响应对的设备描述和簇。通过定义

12、命令结构体的信息,ZDP为ZDO和应用程序提供了如下功能: ? 设备网络启动 ? 设备和服务发现 ? 终端设备绑定、绑定和取消绑定服务 ? 网络管理服务 设备发现是为一个ZigBee 设备找到另一个ZigBee 设备的过程。设备发现的一个例子是网络寻址命令,它以广播的形式发送,携带已知的IEEE 地址作为数据的有效载荷。目标设备应该做出响应并告知其网络地址。设备发现能使个人区域网络中的设备发现其它ZigBee 设备提供的服务。它使用各种描述符来指定设备的功能。 典型的绑定用于网络配置期间,即当用户需要将控制设备绑定到被控制设备(比如开关和灯光)时。特别地,终端设备绑定支持一个简化的绑定方法,即

13、使用用户的输入来识别控制或被控制的设备对。绑定和取消绑定服务提供了创建和删除绑定表条目的功能,其中绑定表的功能是记录控制信息及其各自的目的地。 网络管理服务提供了检索设备管理信息的功能,包括网络发现结果、路由表内容、到周边节点的链路质量以及绑定表内容。它还提供了通过断开与个人区域网络设备的联系来控制网络联系的功能。网络管理服务主要是针对用户或调试工具而设计,用来管理网络。以上三种功能的API将在下面的分节中讨论。 1.1.2 ZDO 网络启动 通过默认的ZDApp_Init()(在ZDApp.c中)启动ZigBee 网络中的设备。但是一个应用程序可以跳过这个默认行为。对于控制网路设备启动的应用

14、程序,必须包含HOLD_AUTO_START作为编译选项,还建议包含NV_RESTORE编译选项(以便在NV中保存ZigBee 网络状态)。如果设备包含这些编译标志,将需要调用ZDOInitDevice()来启动网络中的设备。 1.1.2.1 ZDOInitDevice() 启动网络中的设备。这个函数将读取ZCD_NV_STARTUP_OPTION (NV 条目)的值来决定是否恢复设备的网络状态。要调用这个函数,设备必须先编译HOLD_AUTO_START 编译标志。 如果应用程序想要强制加入一个新设备,在调用此函数之前应用程序应该设置ZCD_NV_STARTUP_OPTION NV条目下的Z

15、CD_STARTOPT_DEFAULT_NETWORK_STATE位,加入新设备意味着不再恢复设备的网络状态。使用zgWriteStartupOptions()来设置这些选项zgWriteStartupOptions(ZG_STARTUP_SET, ZCD_STARTOPT_DEFAULT_NETWORK_STATE);。 函数原型 uint8 ZDOInitDevice( uint16 startDelay ); 参数描述 startDelay设备启动时延(单位为毫秒)。这一时延增加了一个变化幅度:(NWK_START_DELAY + startDelay) + (osal_rand() &

16、 EXTENDED_JOINING_RANDOM_MASK) 返回值 这个函数将返回下面值之一: ZDO _INITDEV_RESTORED_NET WORK_STATE 该设备的网络状态为恢复状态。 ZDO _INITDEV_NEW_NETWORK_STATE 网络状态初始化。这可能意味ZCD_NV_STARTUP_OPTION说,不能恢复,或它可能意味着,没有任何网络状态恢复。 ZDO _INITDEV_LEAVE_ NOT_STARTED 复位前,网络假发重返选项设置为TRUE。因此,该设备没有在网络中启动(仅一次)。下一次调用该函数它才会启动。 1.1.3 ZDO 信息回调 一个应用程

17、序使用ZDO_RegisterForZDOMsg()登记信息,就能够接收任何无线信息(请求或响应)。 1.1.3.1 ZDO_Regis terForZDOMsg() 调用此函数请求一个空中信息。该信息的复本会被送到OSAL信息的一个任务中。接收此信息的任务可以自己解析信息或调用一个ZDO解析函数来解析该信息。只有响应信息具有ZDO解析函数。 登记信息之后,信息被接收(OTA:无线传送),作为一个ZDO_CB_ MSG(OSAL 信息)被发送至一个应用程序或任务。信息的主体(zdoIncomingMsg_t定义在ZDProfile.h 中)包含了OTA信息。 函数原型 ZStatus_t ZD

18、O_RegisterForZDOMsg( uint8 taskID, uint16 clusterID ); 参数描述 tasked应用程序的任务ID。这将用于发送OSAL信息。 clustered要接收的无线信息的簇ID号(例如:NWK_addr_rsp)。这些定义在ZDProfile.h中。 返回值 ZStatus_t 定义在ZComDef.h中的ZStatus_t 状态值。 1.1.3.2 ZDO_Remo veRegisteredCB() 调用此函数取消一个无线信息请求。 函数原型 ZStatus_t ZDO_RemoveRegisteredCB( uint8 taskID, uint

19、16 clusterID ); 参数描述 tasked应用程序的任务ID。调用ZDO_RegisterForZDOMsg()时必须使用同一ID。 clustered无线信息的簇ID。调用ZDO_RegisterForZDOMsg()时必须使用同一ID。 返回值 ZStatus_t定义在ZComDef.h中的ZStatus_t状态值。 1.1.4 ZDO 查询API 查询API建立、发送ZDO设备和服务的查询请求和响应。所有API函数及其相应的ZDP命令列在下表中。用户可以将命令名称作为关键字在最新的ZigBee 规范中查阅,以作进一步参考。这些函数将在下面的分节中一一详细讨论。 Zigbee设

20、备对象API 函数ZDP发现命令 ZDP_NwkAddrReq() NWK_addr_req ZDP_NWKAddrRsp() NWK_addr_rsp ZDP_IEEEAddrReq() IEEE_addr_req ZDP_IEEEAddrRsp() IEEE_addr_rsp ZDP_NodeDescReq() Node_Desc_req ZDP_NodeDescRsp() Node_Desc_rsp ZDP_PowerDescReq() Power_Desc_req ZDP_PowerDescRsp() Power_Desc_rsp ZDP_SimpleDescReq() Simple_

21、Desc_req ZDP_SimpleDescRsp() Simple_Desc_rsp ZDP_ComplexDescReq() Complex_Desc_req ZDP_ActiveEPIFReq() Active_EP_req ZDP_ActiveEPIFRsp() Active_EP_rsp ZDP_MatchDescReq() Match_Desc_req ZDP_MatchDescRsp() Match_Desc_rsp ZDP_UserDescSet() User_Desc_set ZDP_UserDescConf() User_Desc_conf ZDP_UserDescReq

22、() User_Desc_req ZDP_UserDescRsp() User_Desc_rsp ZDP_EndDeviceAnnce() Device_annce ZDP_ServerDiscReq() System_Server_Discovery_req ZDP_ServerDiscRsp() System_Server_Discovery_rspZ-Stack ZigBee API命令解释:应用程序编程接口(2) 1.1.4.1 ZDP_NwkAddrReq() 调用此函数将生成一个根据其已知IEEE地址询问远程设备16位地址的信息。这个信息作为一个广播信息发送给网络中所有设备。 函数

23、原型 afStatus_t ZDP_NwkAddrReq( byte *IEEEAddress, byte ReqType,byte StartIndex, byte SecuritySuite ); 参数描述 IEEEAddress请求设备的IEEE地址。 ReqType响应信息类型要求。其允许值列在下表中: 名称 描述 ZDP_NWKADDR_REQTYPE_ SINGLE 只返回设备的短地址和扩展地址。 ZDP_NWKADDR_REQTYPE_ EXTEND ED 返回设备短地址和扩展地址以及所有相关设备短地址。 StartIndex响应设备的响应信息可以有更多的响应选项,请求程序可以在

24、可能的响应设备中指定一个起始索引。索引从0开始。 SecuritySuite该信息的安全类型要求。 返回值 afStatus_t这个函数使用AF层来发送信息,所以状态值是定义在ZComDef.h中的ZStatus_t的AF层状态值。 1.1.4.2 ZDP_NWKAddrRsp() 这实际上是一个调用ZDP_AddrRsp()的宏。这个调用将建立和发送一个网络地址响应。 函数原型 afStatus_t ZDP_NWKAddrRsp( byte TranSeq, zAddrType_t *dstAddr, byte Status, byte *IEEEAddrRemoteDev,byte Req

25、Type, uint16 nwkAddr,byte NumAssocDev, byte StartIndex, uint16 *NWKAddrAssocDevList, byte SecuritySuite ); 参数描述 TranSeq本次事务的序列号。 DstAddr目的地址。 Status值如下: 含义 值 ZDP_SUCCESS 0 ZDP_INVA LID_REQTYPE 1 ZDP_DEVICE_ NOT_FOUND 2 Reserved 0x03-0xff IEEEAddrRemoteDev远程设备的64位地址。 ReqType该请求信息的请求类型。 nwkAddr远程设备的16

26、位地址。 NumAssocDev计算与远程设备关联的设备个数,以及各自的16位短地址个数。如果远程设备无关联设备,NumAssocDev值应设为0,且StartIndex 和NWKAddrAssocDevList的值应设为空。 StartIndex响应设备的响应信息中可以有更多的响应选项。请求程序可以给可能的响应设备指定一个起始索引。这是该响应信息的起始索引字段。 NWKAddrAssocDevList16 位地址列表,与远程设备的关联设备一一对应。 NWKAddrAssocDevList 中的16 位地址个数由NumAssocDev 提供。 SecuritySuite该信息的安全类型要求。

27、返回值 afStatus_t这个函数使用AF层来发送信息,所以状态值是定义在ZComDef.h中的ZStatus_t 的AF层状态值。1.1.4.3 ZDP_IEEEAddrReq() 调用此函数将生成一个根据其已知16位网络地址询问远程设备64位地址的信息。 函数原型 afStatus_t ZDP_IEEEAddrReq( uint16 shortAddr, byte ReqType, byte StartIndex, byte SecuritySuite ); 参数描述 shortAddr已知的16位网络地址。 ReqType响应信息类型要求。 名称 描述 ZDP_IEEEADDR_REQ

28、TYPE_ SINGLE 只返回该设备短地址和扩展地址。 ZDP_IEEEADDR_REQTYPE_ EXTEND ED 返回该设备短地址和扩展地址及所有相关设备短地址。 StartIndex响应设备的响应信息可以有更多的响应选项,请求程序可以给可能的响应设备指定一个起始索引。 SecuritySuite该信息的安全类型要求。 返回值 afStatus_t这个函数使用AF层来发送信息,所以状态值是定义在ZComDef.h中的ZStatus_t 的AF层状态值。 1.1.4.4 ZDP_IEEEAddrRsp() 这实际上是一个调用ZDP_AddrRsp()的宏。这个调用将建立和发送一个IEEE

29、地址响应。 函数原型 afStatus_t ZDP_IEEEAddrRsp( byte TranSeq, zAddrType_t *dstAddr, byte Status, byte *IEEEAddrRemoteDev, byte ReqType, uint16 nwkAddr, byte NumAssocDev, byte StartIndex, uint16 *NWKAddrAssocDevList, byte SecuritySuite ); 参数描述 TranSeq本次事务的序列号。 DstAddr目的地址。 Status值如下: 含义值 ZDP_SUCCESS 0 ZDP_INV

30、A LID_REQTYPE 1 ZDP_DEVICE_ NOT_FOUND2 Reserved 0x03-0xff IEEEAddrRemoteDev远程设备的64位地址。 ReqType该请求信息的请求类型。 nwkAddr远程设备的16位地址。 NumAssocDev计算与远程设备关联的设备个数,以及各自的16位短地址个数。如果远程设备无关联设备,NumAssocDev值应设为0,且StartIndex 和NWKAddrAssocDevList的值应设为空。 StartIndex本次报告中关联设备列表的起始索引。 WKAddrAssocDevList16位地址列表,与远程设备的关联设备一一

31、对应。NWKAddrAssoc -DevList 中的16位地址个数由NumAssocDev提供。 SecuritySuite该信息的安全类型要求。 返回值 afStatus_t这个函数使用AF层来发送信息,所以状态值是定义在ZComDef.h中的ZStatus_t 的AF层状态值。 1.1.4.5 ZDP_NodeDescReq() 这实际上是一个调用ZDP_NWKAddrOfInterestReq()的宏。这个调用将为目的地址字段指定的远程设备建立和发送一个节点描述请求。 函数原型 afStatus_t ZDP_NodeDescReq( zAddrType_t *dstAddr, uint

32、16 NWKAddrOfInterest, byte SecuritySuite ); 参数描述 DstAddr目的地址。 NWKAddrOfInterest目标设备的16位短地址。 SecuritySuite该信息的安全类型要求。 返回值 Z-Stack ZigBee API命令解释:应用程序编程接口(3) ZDP_NodeDescMsg() 调用此函数来响应节点描述请求。函数原型 afStatus_t ZDP_NodeDescMsg( byte TransSeq, zAddrType_t *dstAddr,byte Status, uint16 nwkAddr, NodeDescripto

33、rFormat_t *pNodeDesc,byte SecuritySuite );参数描述 TranSeq本次事务的序列号。 DstAddr目的地址。 Status值如下:含义值SUCCESS0DEVICE_ NOT_FOUND1 nwkAddr设备的16位地址。 pNodeDesc指向节点描述符的指针(定义在AF.h中)。 SecuritySuite该信息的安全类型要求。返回值afStatus_t这个函数使用AF层来发送信息,所以状态值是定义在ZComDef.h中的ZStatus_t的AF层状态值。ZDP_PowerDescReq()这实际上是一个调用ZDP_NWKAddrOfIntere

34、stReq()的宏。这个调用将建立和发送一个功率描述请求。使用这个宏来请求远程设备的功率描述。函数原型afStatus_t ZDP_PowerDescReq( zAddrType_t *dstAddr, int16 NWKAddrOfInterest,byte SecuritySuite );参数描述 DstAddr目的地址。 NWKAddrOfInterest目标设备16位短地址。 SecuritySuite该信息的安全类型要求。返回值afStatus_t这个函数使用AF层来发送信息,所以状态值是定义在ZComDef.h中的ZStatus_t的AF层状态值。ZDP_PowerDescMsg(

35、)调用此函数来响应功率描述请求。函数原型 afStatus_t ZDP_PowerDescMsg( byte TranSeq, zAddrType_t *dstAddr,byte Status, int16 nwkAddr, NodePowerDescriptorFormat_t *pPowerDesc,byte SecuritySuite );参数描述 TranSeq本次事务的序列号。 DstAddr目的地址。 Status值如下:含义值SUCCESS0DEVICE_ NOT_FOUND1 nwkAddr设备16位地址。 pPowerDesc指向功率描述符的指针(定义在AF.h中)。 Sec

36、uritySuite该信息的安全类型要求。返回值afStatus_t这个函数使用AF层来发送信息,所以状态值是定义在ZComDef.h中的ZStatus_t的AF层状态值。ZDP_SimpleDescReq()调用此函数将建立和发送一个简单描述符请求。函数原型afStatus_t ZDP_SimpleDescReq( zAddrType_t *dstAddr, uint16 nwkAddr,byte epIntf, byte SecuritySuite );参数描述 DstAddr目的地址。 nwkAddr已知的16位网络地址。 epIntf目标应用程序的终端设备或接口。 SecuritySu

37、ite该信息的安全类型要求。返回值afStatus_t这个函数使用AF层来发送信息,所以状态值是定义在ZComDef.h中的ZStatus_t的AF层状态值。ZDP_SimpleDescRsp() 调用此函数来响应简单描述符请求。函数原型afStatus_t ZDP_SimpleDescRsp( byte TranSeq, zAddrType_t *dstAddr, byte Status, SimpleDescriptionFormat_t *pSimpleDesc,byte SecuritySuite );参数描述 TranSeq本次事务的序列号。 DstAddr目的地址。 Status值

38、如下:含义值SUCCESS0INVA LID_EP1NOT_ACTIVE2DEVICE_ NOT_FOUND3 pSimpleDesc指向简单描述符的指针(定义在AF.h中)。 SecuritySuite该信息的安全类型要求。返回值afStatus_t这个函数使用AF层来发送信息,所以状态值是定义在ZComDef.h中ZStatus_t的AF层状态值。ZDP_ComplexDescReq()这个调用建立和发送一个复杂描述符请求。它是一个调用ZDP_NWKAddrOfInterestReq()的宏。函数原型afStatus_t ZDP_ComplexDescReq( zAddrType_t *d

39、stAddr, uint16 nwkAddr, byte SecuritySuite );参数描述 DstAddr目的地址。 nwkAddr已知的16位网络地址。 SecuritySuite该信息的安全类型要求。返回值afStatus_t这个函数使用AF层来发送信息,所以状态值是定义在ZComDef.h中的ZStatus_t的AF层状态值。ZDP_ActiveEPIFReq ()这实际上是一个调用ZDP_NWKAddrOfInterestReq()宏。这个调用将建立和发送一个动态终端或接口请求。使用这个宏来请求远程设备的所有动态终端或接口。函数原型 afStatus_t ZDP_ActiveE

40、PIFReq( zAddrType_t *dstAddr, uint16 NWKAddrOfInterest, byte SecuritySuite );参数描述 DstAddr目的地址。 NWKAddrOfInterest目标设备的16位短地址。 SecuritySuite该信息的安全类型要求。返回值afStatus_t这个函数使用AF层来发送信息,所以状态值是定义在ZComDef.h中的ZStatus_t的AF层状态值。ZDP_ActiveEPIFRsp() 这是一个调用ZDP_EPIFRsp()宏。调用此函数来响应动态终端或接口请求。函数原型 afStatus_t ZDP_ActiveE

41、PIFRsp( byte TranSeq, zAddrType_t *dstAddr,byte Status, uint16 nwkAddr, byte Count, byte *pEPIntfList, byteSecuritySuite );参数描述 TranSeq本次事务的序列号。 DstAddr目的地址。 Status值如下:含义值SUCCESS0DEVICE_ NOT_FOUND1 nwkAddr设备的16位网络地址。 CounpEPIntfList中的动态终端或接口个数。 pEPIntfList设备的动态终端或接口数组。 SecuritySuite该信息的安全类型要求。返回值afS

42、tatus_t这个函数使用AF层来发送信息,所以状态值是定义在ZComDef.h中的ZStatus_t的AF层状态值。ZDP_MatchDescReq()这个调用将建立和发送一个匹配描述请求。使用这个函数查询与应用程序输入或输出簇列表相匹配的设备或应用程序。函数原型 afStatus_t ZDP_MatchDescReq( zAddrType_t *dstAddr, uint16 nwkAddr,uint16 ProfileID,byte NumInClusters, byte *InClusterList, byteNumOutClusters, byte *OutClusterList,

43、byteSecuritySuite );参数描述 DstAddr目的地址。 nwkAddr已知的16位网络地址。 ProfileID应用程序的特征ID,作为簇ID的参照。 NumInClusters簇输入列表中的簇ID个数。 InClusterList簇ID的输入数组(每个占1个字节)。 NumOutClusters簇输出列表中的簇ID个数。 OutClusterList簇ID的输出数组(每个占1个字节)。 SecuritySuite该信息的安全类型要求。返回值afStatus_t这个函数使用AF层来发送信息,所以状态值是定义在ZComDef.h中的ZStatus_t的AF层状态值。ZDP_M

44、atchDescRsp()这是一个调用ZDP_EPIFRsp()的宏。调用此函数响应匹配描述请求。函数原型 afStatus_t ZDP_MatchDescRsp( byte TranSeq, zAddrType_t *dstAddr, byte Status , uint16 nwkAddr, byte Count, byte *pEPIntfList, byteSecuritySuite );参数描述 TranSeq本次事务的序列号。 DstAddr目的地址。 Status值如下:含义值SUCCESS0DEVICE_ NOT_FOUND1 nwkAddr设备16位网络地址。 CountpEPIntfList中的动态终端

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 教育教学 > 成人教育


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号