ZigBee重要结构及表解释
zigbee协议规范

zigbee协议规范ZigBee是一种低功耗、低成本、无线网络通信协议,旨在为物联网设备提供高效的通信方式。
它基于IEEE 802.15.4标准,并使用了一套自己的通信协议规范。
本文将介绍ZigBee协议规范的主要内容及其在物联网领域的应用。
一、ZigBee协议框架ZigBee协议规范采用分层架构,包括应用层、网络层、MAC层和物理层。
应用层负责定义设备之间的应用通信协议,网络层处理设备之间的路由和组网,MAC层管理设备之间的访问和数据传输,物理层负责无线信号的调制和解调。
二、ZigBee网络拓扑结构ZigBee支持多种网络拓扑结构,包括星型、网状、集群树型等。
星型拓扑结构是最简单的,以一个协调器为中心,与多个终端设备直接通信。
网状拓扑结构允许多个设备之间进行直接通信,具有自组织和自修复的能力。
集群树型拓扑结构是一种分层的网络结构,能够实现更高效的数据传输和路由选择。
三、ZigBee通信协议ZigBee协议规范定义了一组通信协议,包括应用层协议、网络层协议、MAC层协议和物理层协议。
其中,应用层协议提供了设备之间的应用通信接口,可根据不同的应用需求进行自定义;网络层协议负责路由选择和组网管理,实现了多跳传输和自动路由;MAC层协议管理设备之间的通信时间和频率,以实现低功耗和高效通信;物理层协议定义了无线信号的调制和解调方式,包括频率、带宽和调制类型等。
四、ZigBee应用领域ZigBee协议规范广泛应用于物联网领域,包括家庭自动化、智能城市、工业控制和农业监测等。
在家庭自动化中,ZigBee可以连接家庭中的各种设备,如灯光、门窗、温度传感器等,实现智能化的控制和管理。
在智能城市中,ZigBee可以应用于智能交通、环境监测和智能能源管理等领域,提高城市的管理效率和生活质量。
在工业控制中,ZigBee可以实现设备之间的无线通信和监测,提高生产效率和安全性。
在农业监测中,ZigBee可以应用于土壤湿度、气象信息等数据的采集和传输,为农业生产提供便利。
第五章 ZigBee技术原理

第一节 ZIGBEE网络结构 ------- 网络体系
按照OSI模型(开放式通信系统互联参考模 型),ZigBee网络分为4层,从下向上分别为物 理层、媒体访问控制层(MAC)、网络层(NWK) 和应用层。其中物理层和MAC层由 IEEE802.15.4标准定义,合称IEEE802.15.4通信 层;网络层和应用层由ZigBee联盟定义。
●网状型网络是在树型网络的基础上实现的。与 树状网络不同的是,它允许网络中所有具有路由 功能的节点互相通信,由路由器中的路由表完成 路由查寻过程。
6
第一节 ZIGBEE网络结构 -------拓扑结构
7
第一节 ZIGBEE网络结构 -------拓扑结构
1. 星型网络的形成过程 在星型网络中,协调器作为发起设备,协调器一旦被激活,它就建立
11
第一节 ZIGBEE网络结构 -------协议架构
3. 应用层 应用层包括三部分:应用支持子层、ZigBee设备对象
和厂商定义的应用对象。 ●应用支持子层提供了网络层和应用层之间的接口,包括 数据服务接口和管理服务接口。其中管理服务接口提供设 备发现服务和绑定服务,并在绑定的设备之间传送消息。 ●ZigBee设备对象功能包括:定义设备在网络中的角色(比 如协调器、路由器或终端设备),发起和响应绑定请求,在 网络设备之间建立安全机制。另外,还负责发现网络中的 设备,并且向他们提供应用服务。 ●厂商定义的应用对象功能包括:提供一些必要函数,为 网络层提供合适的服务接口。另外一个重要的功能是应用 者可以在这层定义自己的应用对象。
PLME-SET-TRX-STATE.request( status ) ●物理层在接收到收发器状态设置确认原语后,将射频设置为对应 的状态,并通过设置确认原语返回才做结果。语法如下: PLME-SET-TRX-STATE.confirm( status )
ZigBee协议架构

ZigBee协议架构ZigBee协议是一种低功耗、近距离无线通信协议,主要应用在无线传感器网络(WSN)中。
它是由ZigBee联盟(ZigBee Alliance)所定义和推广的,旨在为物联网设备之间的通信提供一个标准化的解决方案。
本文将介绍ZigBee协议的架构和其主要组件,以及在物联网应用中的应用场景。
一、ZigBee协议架构概述ZigBee协议采用了分层的架构,以便于各个组件的模块化和扩展性。
ZigBee协议架构一般可分为两个主要层次:应用层和网络层。
下面将详细介绍每个层次的主要组件和功能。
1. 应用层应用层是ZigBee协议栈的顶层,负责实现各种应用的功能。
它可以与不同类型的传感器和执行器进行通信,并执行各种任务,如数据采集、控制和管理等。
应用层使用ZigBee Cluster Library(ZCL)定义了一系列的应用框架和应用集群,以便开发人员可以方便地构建自己的应用。
2. 网络层网络层是ZigBee协议栈的中间层,负责实现节点之间的通信和路由功能。
它使用ZigBee网络堆栈协议(ZigBee Network Stack Protocol)来处理数据包的发送和接收,以及路由选择和网络管理等功能。
网络层的核心组件包括ZigBee协调器(ZigBee Coordinator)、路由器(Router)和终端设备(End Device)。
二、ZigBee协议架构组件1. ZigBee协调器ZigBee协调器是在ZigBee网络中的关键组件,它负责启动和管理整个网络,以及分配网络地址和加密密钥等。
协调器可以与多个路由器和终端设备建立连接,并通过网络层协议进行数据传输和路由选择。
此外,协调器还负责处理网络中的任何故障或冲突,并重新分配资源以保持网络的可靠性和稳定性。
2. 路由器路由器是ZigBee网络中的中间节点,它负责转发数据包并实现网络层的路由选择功能。
路由器可以与其他路由器和终端设备建立连接,并通过网络层协议将数据包从源节点传输到目标节点。
zigbee基础知识笔记(注释)

1.基础知识 (1)1.1IEEE地址 (1)1.2簇 (2)1.3 Profile ID (3)1.4 网络地址与端点号、节点 (3)1.5 PANID (3)1.6 zigbee设备 (3)2.绑定机制 (5)2.1描述符绑定 (6)2.2设备绑定 (18)1.基础知识1.1IEEE地址IEEE地址是64位,在设备进入网络之前就分配好了的,应该在全球是唯一的,而网络地址是在网络建立后,设备加入网络时,它的父节点给它分配的,在设备通信时,首先由ieee地址找到设备的网络地址,然后根据网络地址实现设备之间的通信,这样可以减少帧头长度,多传有效数据通俗的说IEEE地址相当于你的手机号(11位的那个),短地址就相当于你们公司的小号(3、4)位,一个公司的互打电话就用小号噻。
假设你的手机号138xxxxx666,这个是唯一的,但你的小号,假设是666,在你的公司网中是唯一的,但是在另一个网中,可能别人的小号也是666。
1.2簇簇就是相当于端点房间里面的人,是接收最终的目标。
这东西是2个字节编号,在射频发送的时候,必须要指定接收模块的镞,发送模块不需要指定。
首先每一个端点可以看成是一个1个字节数字编号的开有一扇门的房间,数据最终的目标是进入到无线数据包指定的目标端点房间,而取无线数据这个相关的代码在任务事件处理函数里,TI协议栈有那么多的任务事件处理函数,所以必须要指定在哪个任务事件处理函数来取这个无线数据包里面的有用数据。
端点就相当于一个房间的门牌号!!!SimonApp_epDesc.endPoint = 10;//SimonApp_ENDPOINT; 此端点编号为10 SimonApp_epDesc.task_id = &SimonApp_TaskID; 和我们应用层任务挂钩完成了簇信息表的构建,因为簇信息封装在SimonApp_SimpleDesc里面,这里面却只是起到一个信息表的作用!方便数据到来的时候查询相关信息表!const cId_t SimonApp_ClusterList[SimonApp_MAX_CLUSTERS] ={SimonApp_CLUSTERID};const SimpleDescriptionFormat_t SimonApp_SimpleDesc ={SimonApp_ENDPOINT, // int Endpoint;SimonApp_PROFID, // uint16 AppProfId[2];SimonApp_DEVICEID, // uint16 AppDeviceId[2];SimonApp_DEVICE_VERSION, // int AppDevVer:4;SimonApp_FLAGS, // int AppFlags:4;SimonApp_MAX_CLUSTERS, // byte AppNumInClusters;(cId_t *)SimonApp_ClusterList, // byte *pAppInClusterList;SimonApp_MAX_CLUSTERS, // byte AppNumInClusters;(cId_t *)SimonApp_ClusterList // byte *pAppInClusterList;};接收到数据以后,判断是属于哪一个端点、属于哪一个簇1.3 Profile ID这个是由Zigbee组织来分配的应用ID号,比如无线开关用0x0001,智能电表用ox0002,万用遥控器用0x0003等等。
zigbee

在智能家居领域中的实践应用
ZigBee无线通信技术凭借其一系列特征优势,因而在众多智能家居中得到广泛推广,而对于该项技术的应用, 离不开因特络技术的有力支持。因为家居房屋建筑面积存在一定局限性,由此为ZigBee无线通信技术应用创造了 适用条件。ZigBee无线通信技术在智能家居中的应用,主要表现为:其一,打造整体性ARM,以实现对不同家居 的智能控制;其二,选择合理区域安装ZigBee路由设备,建立起其与对应络的有效连接;其三,对一系列终端设 备开展ZigBee模块合理安装,以实现不同信息的有效交互。在实践应用中,可采取适用的控制手段,诸如遥控器 控制、声音控制等,即为可通过遥控器装置对冰箱制冷、微波炉等进行指令控制;可通过声音指令以实现对电视 机的开机或关机操作,等等。为了确保控制的高效性,应当保证信号口的有效连接,唯有如此方可实现对家居设 备的有效控制。将ZigBee无线通信技术应用于智能家居领域,一方面可提高家居操作的便捷性,缩减家居成本; 另一方面可提高人们的生活居住体验,切实彰显该项技术的实用性。除此之外,ZigBee无线通信技术还可实现有 效的信号抗干扰功能,为人们创造便利的同时,还可缩减对其他用户造成的信号干扰。
ZigBee技术的先天性优势,使得它在物联行业逐渐成为一个主流技术,在工业、农业、智能家居等领域得到 大规模的应用。例如,它可用于厂房内进行设备控制、采集粉尘和有毒气体等数据;在农业,可以实现温湿度、 PH值等数据的采集并根据数据分析的结果进行灌溉、通风等联动动作;在矿井,可实现环境检测、语音通讯和人 员位置定位等功能。
ZigBee重要结构及表解释

各表中的元素结构:1、组表的元素结构aps_Group_t;typedef struct{uint16 ID; // 组IDuint8 name[APS_GROUP_NAME_LEN]; // 组名称} aps_Group_t;2、组列表的元素结构typedef struct apsGroupItem{struct apsGroupItem *next; //指向下一个组表条目uint8 endpoint; //此终端接收发送给组的信息aps_Group_t group; //组ID和组名} apsGroupItem_t;3、路由表的元素结构rtgEntry_t;typedef struct{uint16 dstAddress; //目标地址uint16 nextHopAddress; //单跳地址byte expiryTime; //有效时间byte status; //状态} rtgEntry_t;4、绑定表的元素结构BindingEntry_t;typedef struct{uint8 srcEP; // 没有源地址自从源地址一直是本地设备uint8 dstGroupMode; // 目标地址类型; 0 –正常地址, 1 –组地址uint16 dstIdx; //在两种模式中(组或非组) 保存到NV 和RAM// dstGroupMode = 0 - Address Manager index// dstGroupMode = 1 –组地址uint8 dstEP; //目标地址uint8 numClusterIds; //簇个数uint16 clusterIdList[MAX_BINDING_CLUSTER_IDS];// Don't use MAX_BINDING_CLUSTERS_ID when// using the clusterIdList field. Use// gMAX_BINDING_CLUSTER_IDS} BindingEntry_t;5、相邻表的元素结构neighborEntry_t;typedef struct{uint16 neighborAddress; //相邻地址uint16 panId; //所属的PAN网络IDlinkInfo_t linkInfo; //连接信息(包括发送/接收和安全帧计数)} neighborEntry_t;6、路由发现表的元素结构rtDiscEntry_t;typedef struct{byte rreqId; //接收请求IDuint16 srcAddress; //源地址uint16 previousNode; //上次模式byte forwardCost; //发送成本byte residualCost; //剩余成本byte expiryTime; //有效时间} rtDiscEntry_t;7、广播表的元素结构bcastEntry_t;typedef struct{uint16 srcAddr; //源地址uint8 bdt; // 广播传递时间uint8 pat; // 被动应答超时uint8 mbr; // 最大广播重试次数uint8 handle;// 计数非睡眠邻居和路由器子节点.uint8 ackCnt; //应答次数uint8 id; //广播ID} bcastEntry_t;8、回调表的元素结构MTZDO_ConversionItem_t;typedef struct{uint16 clusterID; //请求命令uint32 subCBID; // 回调回应参数uint16 mtID; // SPI 消息ID pfnMtZdoRspProc pFn; //回调函数} MTZDO_ConversionItem_t;9、电源功率表macRadioDefsTxPowerTable10、全局常量表元素结构(即NV区中的项)zgItem_t;typedef struct zgItem{uint16 id; //项目类型uint16 len; //占用空间void *buf; //要写入的数据} zgItem_t;11、任务表元素结构*pTaskEventHandlerFn;( unsigned char task_id, unsigned short event );12、mac回调函数事件表zmacCBEventTable;13、数据结构大小查找表zmacCBSizeTable;必须以mac回调事件顺序相匹配;14、ZDP处理请求消息表的元素结构zdpMsgProcItem_t;typedef struct{uint16 clusterID; //--簇ID(请求消息) pfnZDPMsgProcessor pFn; //要执行的函数} zdpMsgProcItem_t;15、PAN网络描述列表的元素结构networkDesc_t;typedef struct{uint16 panId; //PAN IDbyte logicalChannel; //逻辑信道byte beaconOrder; //信标指令byte superFrameOrder; //超级帧指令byte routerCapacity; //路由能力byte deviceCapacity; //设备能力byte version; //版本byte stackProfile; //profilestack//byte securityLevel;uint16 chosenRouter; //所选择的路由器uint8 chosenRouterLinkQuality; //所选择路由器的链路质量byte chosenRouterDepth; //所选择路由器的深度uint8 extendedPANID[Z_EXTADDR_LEN]; //PAN ID的扩展地址void *nextDesc; //指向下一个的PAN} networkDesc_t;16、端点表元素结构endPointDesc_t;typedef struct{byte endPoint; //终端号byte *task_id; // Pointer to location of the Application task ID.//–指向本地应用任务,ID的一个指针SimpleDescriptionFormat_t *simpleDesc; //指向简单描述符afNetworkLatencyReq_t latencyReq; //这个字段必须为nolatencyreqs} endPointDesc_t;17、端点列表元素结构epList_t;typedef struct{endPointDesc_t *epDesc; //指向终端描述符eEP_Flags flags;pDescCB pfnDescCB; // Don't use if this function pointer is NULL.void *nextDesc;} epList_t;18、关联设备表元素结构associated_devices_t;typedef struct{UINT16 shortAddr; // 关联设备短地址uint16 addrIdx; // 地址管理器的索引标识byte nodeRelation;byte devStatus; // bitmap of various status valuesbyte assocCnt;linkInfo_t linkInfo;} associated_devices_t;重要的表网络表:1、关联表AssociatedDevList 最大条目数NWK_MAX_DEVICES2、相邻表neighborTable 最大条目数MAX_NEIGHBOR_ENTRIES3、路由表rtgTable 最大条目数MAX_RTG_ENTRIES4、路由发现表rtDiscTable 最大条目数MAX_RREQ_ENTRIES5、广播表bcastTable 最大条目数MAX_BCAST6、绑定表BindingTable 最大条目数NWK_MAX_BINDING_ENTRIES7、组表SampleApp_Group系统表:1、任务表tasksArr 最大任务数2、任务事件表tasksEvents 2字节*任务数3、电源功率表macRadioDefsTxPowerTable4、全局常量表zgItemTable static uint8 zgItemInit( uint16 id, uint16 len, void *buf, uint8 setDefault ) //初始化回调表:1、ZDO消息处理回调表zdpMsgProcs oid ZDP_IncomingData( afIncomingMSGPacket_t *pData ) //执行回调函数2、MT消息处理回调表mtzdoConvTable3、MAC事件回调表zmacCBEventTable4、MAC事件回调大小表zmacCBSizeTablevoid MAC_CbackEvent(macCbackEvent_t *pData) //回调事件处理链表:1、PAN网络描述符链表NwkDescList2、端点链表epList void afInit( void ) //初始化端点链表Status_t afRegister( endPointDesc_t *epDesc ) //端点注册记录表:1、定时器记录表halTimerSettings_t halTimerRecord。
Zigbee的网络层详细介绍

Zigbee的网络层详细介绍从协议来讲网络层确保底层MAC层的正确操作并为应用层提供接口。
而在Zigbee的网络中,网络层负责网络的架构和数据包的路由,并且按照规划的路径确保数据包可靠地从一个节点发送到另一个节点。
在Zigbee中,路由工作是由协调节点和路由节点共同规划并维护路由路径来保证正常通信。
Zigbee网络由协调节点负责建立,即选择网络组成和选择网络拓扑结构。
在Zigbee中通常有三种网络拓扑结构,即星状结构、树状结构和网状结构。
这三种拓扑结构如图2所示。
图 Zigbee网络拓扑结构星状拓扑是最简单的一种拓扑结构,在Zigbee中,星状拓扑包含了一个协调节点和多个终端节点。
这些终端节点直接且仅和位于网络中心的协调节点相连进行通信。
而两两终端节点需要进行通信时,由协调节点进行转发。
树状拓扑包含了一个协调节点和多个路由节点及终端节点。
协调节点和多个路由节点及终端节点相连,即协调节点作为这些路由节点和终端节点的父节点。
同时,每个路由节点还可以连接其它的路由节点或者终端节点作为其子节点。
需要说明的是,终端节点只能作为子节点而不能作为父节点。
在树状结构中两个节点需要进行通信时,该终端的消息会沿路径树向上传至目标通信节点共同的祖父节点再转发至目标通信节点。
网状拓扑和树状拓扑类似也包含了一个协调节点和多个路由节点及终端节点。
与树状节点不同的是,路由节点间可以相互直接通信,这样就组成了网络状的拓扑结构。
在传送消息时,协调节点和路由节点共同为待通信的两个节点规划最优的路径。
网络拓扑带来的优点有路由更加灵活且优化。
同时整体网络的鲁棒性增强,这是由于即使个别节点出现问题不能工作,还可以选择其它路径来保证通信完成。
应用层是Zigbee网络的最高层,它为Zigbee用户的需求提供服务。
举例来说,一个用户需要获得室内温度和湿度数据,该用户通过Zigbee网络应用层提出请求,之后Zigbee网络应用层向下层逐层传递指令并找到相应的传感器并进行感知获得数据。
ZigBee协议

ZigBee协议协议名称:ZigBee协议协议背景:ZigBee是一种低功耗、短距离、低速率的无线通信协议,主要用于物联网设备之间的通信。
它基于IEEE 802.15.4标准,并由ZigBee联盟制定和管理。
ZigBee协议广泛应用于家庭自动化、智能能源管理、工业控制等领域。
协议目的:本协议旨在规范ZigBee协议的使用和实施,确保不同厂商生产的ZigBee设备之间能够互联互通,实现无缝的物联网通信。
协议内容:1. ZigBee网络拓扑结构1.1 网络类型:支持星型、网状和混合型网络结构。
1.2 网络节点:定义协调器、路由器和终端设备三种类型的节点,并规定它们的功能和特性。
1.3 网络层次:定义网络的层次结构,包括协调器级别、路由器级别和终端设备级别。
2. ZigBee协议栈2.1 物理层:定义ZigBee的物理层规范,包括频率、调制方式和传输速率等参数。
2.2 MAC层:定义ZigBee的媒体访问控制层规范,包括帧格式、帧类型和帧交互过程等。
2.3 网络层:定义ZigBee的网络层规范,包括路由选择算法、网络拓扑管理和地址分配等。
2.4 应用层:定义ZigBee的应用层规范,包括应用对象、应用框架和应用服务等。
3. ZigBee设备和服务3.1 设备标识:定义ZigBee设备的唯一标识符,包括设备类型、设备ID和设备描述等信息。
3.2 服务接口:定义ZigBee设备的服务接口规范,包括服务对象、服务操作和服务参数等。
3.3 设备发现:定义ZigBee设备之间的发现机制,包括主动发现和被动发现两种方式。
3.4 设备配置:定义ZigBee设备的配置过程,包括设备加入网络、设备离开网络和设备重置等。
4. ZigBee安全机制4.1 认证和加密:定义ZigBee设备之间的认证和加密机制,保护通信数据的机密性和完整性。
4.2 密钥管理:定义ZigBee设备的密钥管理规范,包括密钥生成、密钥分发和密钥更新等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ZigBee重要结构及表解释ZigBee 2010-06-13 10:31:26 阅读103 评论0 字号:大中小订阅各表中的元素结构:1、组表的元素结构aps_Group_t;typedef struct{uint16 ID; // 组IDuint8 name[APS_GROUP_NAME_LEN]; // 组名称} aps_Group_t;2、组列表的元素结构typedef struct apsGroupItem{struct apsGroupItem *next; //指向下一个组表条目uint8 endpoint; //此终端接收发送给组的信息aps_Group_t group; //组ID和组名} apsGroupItem_t;3、路由表的元素结构rtgEntry_t;typedef struct{uint16 dstAddress; //目标地址uint16 nextHopAddress; //单跳地址byte expiryTime; //有效时间byte status; //状态} rtgEntry_t;4、绑定表的元素结构BindingEntry_t;typedef struct{uint8 srcEP; // 没有源地址自从源地址一直是本地设备uint8 dstGroupMode; // 目标地址类型; 0 –正常地址, 1 –组地址uint16 dstIdx; //在两种模式中(组或非组) 保存到NV 和RAM// dstGroupMode = 0 - Address Manager index// dstGroupMode = 1 –组地址uint8 dstEP; //目标地址uint8 numClusterIds; //簇个数uint16 clusterIdList[MAX_BINDING_CLUSTER_IDS];// Don't use MAX_BINDING_CLUSTERS_ID when// using the clusterIdList field. Use// gMAX_BINDING_CLUSTER_IDS} BindingEntry_t;5、相邻表的元素结构neighborEntry_t;typedef struct{uint16 neighborAddress; //相邻地址uint16 panId; //所属的PAN网络ID linkInfo_t linkInfo; //连接信息(包括发送/接收和安全帧计数)} neighborEntry_t;6、路由发现表的元素结构rtDiscEntry_t;typedef struct{byte rreqId; //接收请求IDuint16 srcAddress; //源地址uint16 previousNode; //上次模式byte forwardCost; //发送成本byte residualCost; //剩余成本byte expiryTime; //有效时间} rtDiscEntry_t;7、广播表的元素结构bcastEntry_t;typedef struct{uint16 srcAddr; //源地址uint8 bdt; // 广播传递时间uint8 pat; // 被动应答超时uint8 mbr; // 最大广播重试次数uint8 handle;// 计数非睡眠邻居和路由器子节点.uint8 ackCnt; //应答次数uint8 id; //广播ID} bcastEntry_t;8、回调表的元素结构MTZDO_ConversionItem_t; typedef struct{uint16 clusterID; //请求命令uint32 subCBID; // 回调回应参数uint16 mtID; // SPI 消息ID pfnMtZdoRspProc pFn; //回调函数} MTZDO_ConversionItem_t;9、电源功率表macRadioDefsTxPowerTable10、全局常量表元素结构(即NV区中的项)zgItem_t; typedef struct zgItem{uint16 id; //项目类型uint16 len; //占用空间void *buf; //要写入的数据} zgItem_t;11、任务表元素结构*pTaskEventHandlerFn;( unsigned char task_id, unsigned short event );12、mac回调函数事件表zmacCBEventTable;13、数据结构大小查找表zmacCBSizeTable;必须以mac回调事件顺序相匹配;14、ZDP处理请求消息表的元素结构zdpMsgProcItem_t; typedef struct{uint16 clusterID; //--簇ID(请求消息) pfnZDPMsgProcessor pFn; //要执行的函数} zdpMsgProcItem_t;15、PAN网络描述列表的元素结构networkDesc_t; typedef struct{uint16 panId; //PAN IDbyte logicalChannel; //逻辑信道byte beaconOrder; //信标指令byte superFrameOrder; //超级帧指令byte routerCapacity; //路由能力byte deviceCapacity; //设备能力byte version; //版本byte stackProfile; //profilestack//byte securityLevel;uint16 chosenRouter; //所选择的路由器uint8 chosenRouterLinkQuality; //所选择路由器的链路质量byte chosenRouterDepth; //所选择路由器的深度uint8 extendedPANID[Z_EXTADDR_LEN]; //PAN ID的扩展地址void *nextDesc; //指向下一个的PAN} networkDesc_t;16、端点表元素结构endPointDesc_t;typedef struct{byte endPoint; //终端号byte *task_id; // Pointer to location of the Application task ID.//–指向本地应用任务,ID的一个指针SimpleDescriptionFormat_t *simpleDesc; //指向简单描述符afNetworkLatencyReq_t latencyReq; //这个字段必须为nolatencyreqs} endPointDesc_t;17、端点列表元素结构epList_t;typedef struct{endPointDesc_t *epDesc; //指向终端描述符eEP_Flags flags;pDescCB pfnDescCB; // Don't use if this function pointer is NULL.void *nextDesc;} epList_t;18、关联设备表元素结构associated_devices_t;typedef struct{UINT16 shortAddr; // 关联设备短地址uint16 addrIdx; // 地址管理器的索引标识byte nodeRelation;byte devStatus; // bitmap of various status valuesbyte assocCnt;linkInfo_t linkInfo;} associated_devices_t;重要的表网络表:1、关联表AssociatedDevList 最大条目数NWK_MAX_DEVICES2、相邻表neighborTable 最大条目数MAX_NEIGHBOR_ENTRIES3、路由表rtgTable 最大条目数MAX_RTG_ENTRIES4、路由发现表rtDiscTable 最大条目数MAX_RREQ_ENTRIES5、广播表bcastTable 最大条目数MAX_BCAST6、绑定表BindingTable 最大条目数NWK_MAX_BINDING_ENTRIES7、组表SampleApp_Group系统表:1、任务表tasksArr 最大任务数2、任务事件表tasksEvents 2字节*任务数3、电源功率表macRadioDefsTxPowerTable4、全局常量表zgItemTable static uint8 zgItemInit( uint16 id, uint16 len, void *buf, uint8 setDefault ) //初始化回调表:1、ZDO消息处理回调表zdpMsgProcs oid ZDP_IncomingData( afIncomingMSGPacket_t *pData ) //执行回调函数2、MT消息处理回调表mtzdoConvTable3、MAC事件回调表zmacCBEventTable4、MAC事件回调大小表zmacCBSizeTablevoid MAC_CbackEvent(macCbackEvent_t *pData) //回调事件处理链表:1、PAN网络描述符链表NwkDescList2、端点链表epList void afInit( void ) //初始化端点链表Status_t afRegister( endPointDesc_t *epDesc ) //端点注册记录表:1、定时器记录表halTimerSettings_t halTimerRecord。
2、定时器通道表halTimerChannel_t halTimerChannel。
HalTimerStart()开始硬件定时器HalTimerStop()停止硬件定时器。