欢迎来到天天文库
浏览记录
ID:40588415
大小:150.50 KB
页数:35页
时间:2019-08-04
《ZigBee编程基础入门》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、zigbee基本概念及协议术语1.逻辑设备类型协调器(coordinator),路由器(router),终端设备(end-device)•ZigBee协调者—coord为协调者节点*–每各ZigBee网络必须有一个.–初始化网络信息.协调器是一种特殊的路由器(待确认)•ZigBee路由器—router为路由节点*–路由信息•ZigBee终端节点—rfd为终端节点*–没有路由功能–低价格2.2.4GHz射频信道分为16个独立信道。3.绑定应用设备之间信息流的控制机制。有直接绑定(OTA)、间接绑定、直接绑定(通过串口)4.配
2、置文件profile应用程序框架5.端点endpoint每个ZigBee设备支持多达240个端点6.NWK寻址地址类型:ZigBee设备有一个64位IEEE长地址(MAC地址)通常用一个16位短地址表识网络地址分配由协调器完成相关参数:5max_depth网络的最大深度6Max_children路由器或协调器节点连接子节点最大个数20Max_router路由器或协调器处理的具有路由能力的子节点最大个数它是max_children的子集数据包传送单点unicast多点multicast广播broadcast路由:经过路由器的
3、每个数据帧寻找一条最佳传输路径,并将该数据有效地传送到目的节点。F8wconfig.cfg配置路由看了下面就不用纠结了。配置文件(profile):Zigbee协议的配置文件是对逻辑组件及其相关接口的描述,是面向某个应用类别的公约、准则.通常没有程序代码与配置文件相关联.属性(attribute):设备之间通信的每一种数据像开关的状态或温度计值等皆可称为属性.每个属性可得到唯一的ID值.簇(cluster):多个属性的汇集形成了簇,每个簇也拥有一个唯一的ID.虽然个体之间传输的通常是属性信息,但所谓的逻辑组件的接口指的却是
4、簇一级的操作,而非属性一级.终端(endpoint):每个支持一个或多个簇的代码功能块称为终端.不同的设备通过它们的终端及所支持的簇来进行通信.Cluster:isacontainerforoneormoreattributes.(一个或更多属性的集合)Attribute:adataentitywhichrepresentsaphysicalquantityorstate.(反映物理特性或状态的一个数据实体)Cluster是逻辑设备之间的事务关系Cluster定性Attribute则是某种事务关系的具体特例Attribut
5、e定量Endpoint是一个逻辑设备(个人理解为入口地址)。而一个Endpoint可以包含多个Cluster,每个Cluster包含不同的属性,这就是用来更加细分的了,Endpoint之间依据“事务关系”(cluster)通讯.一个节点除了64位的IEEE地址,16位的网络地址,每个节点还提供了8位的应用层入口地址(端点:EndPoint),对应于用户应用对象。端点0为ZDO接口,端点I至240供用户自定义应用对象使用,端点255为广播地址,端点241—254保留为将来使用。每一个应用都对应一个配置文件(Profile)。
6、配置文件内容包括:设备ID(DeviceID),事务ID(ClusterID),属性ID(AttributeID),及AF使用何种服务类型等信息。在zigbee协议中,一个配置文件中允许最多2^16个设备(16位表示),2^8个事务,每个事务支持最多约2^16个属性。zigbee的操作系统运行在main函数里,对各项硬件进行初始化,/********************************************************************* *@fnmain *@briefFirstfunct
7、ioncalledafterstartup. *@returndon’tcare *********************************************************************/ ZSEGintmain(void) { //Turnoffinterrupts关中断 osal_int_disable(INTS_ALL);//InitializeHAL初始化硬件层 HAL_BOARD_INIT();//Makesuresupplyvoltageishighenoughtorun电压检
8、测 zmain_vdd_check();//Initializestackmemory初始化stack存储区 zmain_ram_init();//InitializeboardI/O初始化板载IO InitBoard(OB_COLD);//InitialzeHALdrivers HalDriverIn
此文档下载收益归作者所有