zigbee学习笔记讲解

合集下载

ZigBee学习笔记一端口号命令簇

ZigBee学习笔记一端口号命令簇

主要解决的问题如何使用不同的命令号发送不同长度的的数据第一部分一些概念如图所示是一个节点设备上的端口号(endpoint)它是一个8位的字段,描述一个射频端所支持的不同应用。

端口0x00:用于寻址设备配置文件,这是每个ZigBee设备必须使用的端口;端点0xff:用于寻址所有活动端口;端口0xf1~0xfe:保留;端口0x01~0xf0:共支持240个应用,即一个物理信道最多支持240个虚拟链路。

图中还用另一个概念簇簇(cluster)多个属性的汇集形成了簇,簇是属性的集合,每个簇也拥有一个唯一的ID。

譬如,FS_ZStack\SimpleSwitch.cconst cId_t zb_OutCmdList[NUM_OUT_CMD_SWITCH]= //输出簇列表{TOGGLE_LIGHT_CMD_ID //簇ID, 1};FS_Zstack\SimpleController.cconst cId_tzb_InCmdList[NUM_IN_CMD_CONTROLLER] = //输入簇列表{TOGGLE_LIGHT_CMD_ID //簇ID, 1};cId_t=uint16,端口的描述第一步,定义一个结构体用来描述端口endPointDesc_t GenericApp_epDesc; //结构体类型变量第二步初始化端口参数要完整的描述一个端口,分为两部分(1)endPointDesc_t端口描述(2)简单端口描述SimpleDescriptionFormat_t其实2是包含在1里面的只是由于2比较多就单独列出来了。

下面是2的具体内容探明数据包内容1发送出去的数据是什么样子的第一步数据发送使用的是协议栈的发送函数内容包括了,目的地址目的节点上的那个端口簇里面的命令号要发送的数据长度要发送的数据地址发送的数据序列号第二步数据被接收后被解析成什么样子可以通过一个结构体看明白数据被接受过来以后到底是什么样子事件头很重要,它用来判断消息类型簇里面的命令号存储端口号链路质量数据具体位置很重要上面说到的两个很重要的成员在应用层程序里都有体现本想用两个命令号来区分不同的消息,但是好像不行!未完待续!第二部分消息队列从上面的讲解中我们了解了发送的无线数据、接收到的无线数据的样子。

zigbee基础知识笔记.docx

zigbee基础知识笔记.docx

1. 基础知识 (1)1.1IEEE 地址 (1)1.2 簇 (2)1.3 Profile ID (4)1.4网络地址与端点号、节点 (4)1.5 PANID (5)1.6 zigbee设备 (5)2. 绑定机制 (7)2.1 描述符绑定 (7)2.2 设备绑定 (23)1.基础知识1.1IEEE 地址IEEE 地址是 64 位,在设备进入网络之前就分配好了的,应该在全球是唯一的,而网络地址是在网络建立后,设备加入网络时,它的父节点给它分配的,在设备通信时,首先由ieee地址找到设备的网络地址,然后根据网络地址实现设备之间的通信,这样可以减少帧头长度,多传有效数据通俗的说IEEE 地址相当于你的手机号(11 位的那个),短地址就相当于你们公司的小号(3 、4) 位,一个公司的互打电话就用小号噻。

假设你的手机号138xxxxx666 ,这个是唯一的,但你的小号,假设是 666,在你的公司网中是唯一的,但是在另一个网中,可能别人的小号也是666。

1.2 簇簇就是相当于端点房间里面的人,是接收最终的目标。

这东西是 2 个字节编号,在射频发送的时候,必须要指定接收模块的镞,发送模块不需要指定。

首先每一个端点可以看成是一个 1 个字节数字编号的开有一扇门的房间,数据最终的目标是进入到无线数据包指定的目标端点房间,而取无线数据这个相关的代码在任务事件处理函数里,TI 协议栈有那么多的任务事件处理函数,所以必须要指定在哪个任务事件处理函数来取这个无线数据包里面的有用数据。

端点就相当于一个房间的门牌号!!!SimonApp_epDesc.endPoint= 10;//SimonApp_ENDPOINT;此端点编号为10SimonApp_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学习电子笔记

第一讲第二讲2530通用I/O口有21个:P0/P1/口个8个;P2口5个,其中,P1_0、P_1有20mA的驱动能力,其余只有4mA2.IO口配置相关的寄存器(3个)PxSEL: P0SEL、P1SEL、P2SEL,每个寄存器是1byte,分别用来设定3个口的工作模式。

IO的两种工作模式:1.普通IO口模式:点灯、监测按键输入2.片上外设模式:作为串口或者其他非普通IO口PxDIR:P0DIR/P1DIR/P2DIR,每个寄存器占一个字节,用来设定IO口作为输入还是输出PxINP:P0INP/P1INP/P2INP:输入情况下,注意P2INP寄存器后3位的用法(见下图):输出示例(以P0_0为例):1)设置P0_0为普通IO口工作模式,非片上外设:P0SEL=0xFE(&11111110) 2)让P0_0作为输出用,非输入监测用:P0DIR=0x01(+ 00000001)3)输出(如P0_0=0或P0_0=1等)。

输入示例(让P1_2作为输入):1)设置P1_2为普通IO口工作模式,非片上外设:P1SEL=0xfd(11111011)2)让P1_2作为输入检测用,非输出用P1DIR=0xfd(11111011)3)选择上拉、下拉或三态中的一种输入(因为上电的时候寄存器默认为0,所以IO口都默认工作在普通IO口输入、上下拉模式)4)检测用:If (P1_2= =0 or 1){}Else{}总结:由此可见,当芯片上电初始化后,3组IO口默认工作在普通IO口下的输入监测、上拉输入模式。

自己编程示例:第三讲:外部中断检测中断有3级开关:CPU中断总开关------IO口组中断开关---------IO组内某口中断开关中断信号触发类型选择:上升、下降因此,某IO口产生中断需配置:1)CPU中断开关打开;EA=1;2)该口所在的IO组中断打开;P0组的中断开关在IEN1的第5位;P1组的中断开关在IEN2的第4位;P2组的中断开关在IEN2的第1位;3)该口中断打开;P0IEN;8位寄存器。

ZigBee无线协议学习笔记

ZigBee无线协议学习笔记

1. ZigBee简介1.1. 概述zigbee协议栈结构由一些层构成,每个层都有一套特定的服务方法和上一层连接,称为协议。

数据实体(data entity)提供数据的传输服务,而管理实体(management entity)提供所有的服务类型。

每个层的服务实体通过服务接入点(service access point SAP)和上一层相接,每个SAP提供大量服务方法来完成相应的操作。

zigbee协议栈基于标准的OSI七层模型,但只是在相关范围来定义一些相应层来完成特定的任务。

IEEE802.15.4-2003标准定义了下面的两个层:物理层(PHY层)和媒介层(MAC层)。

zigbee联盟在此基础上建立了网络层(NWK 层)以及应用层(APL层)的框架(framework)。

APL层又包括应用支持子层(application support sub-layer APS),zigbee的设备对象(zigbee device object ZDO)以及制造商定义的应用对象。

1.2. 缩略语和简称AIB 应用支持层的信息库AF 应用框架APDU 应用支持子层协议数据单元APL 应用层APS 应用支持子层APSDE 应用支持子层数据实体APSDE-SAP 应用支持子层数据实体-服务接入点APSME 应用支持子层管理实体APSME-SAP 应用支持子层管理实体-服务接入点ASDU APS服务数据单元MAC 媒体访问控制MCPS-SAP 媒体访问控制公用部分子层-服务接入点MLME-SAP 媒体访问控制子层管理实体-服务接入点MSG 信息服务类型NHLE 上层实体NIB 网络层信息库NWK 网络OSI 开放式系统互连PAN 个人区域网络PDU 协议数据单元PHY 物理层QOS 服务质量RREP 路由应答RREQ 路由请求SAP 服务接入点ZB ZigBeeZDO ZigBee设备对象1.3. ZDOZigBee设备对象(ZDO)描述了一个基本的功能函数类,在应用对象、设备profile和APS 之间提供了一个接口。

Zigbee知识点

Zigbee知识点

第一章Zigbee概述1、Zigbee就是一种新兴的短距离、低速率无线网络技术,主要用于近距离无线连接。

2、Zigbee的特点就是功耗低、成本低、时延短、网络容量大、可靠安全。

3、常见的Zigbee芯片有CC243X系列、MC1322X系列与CC253X系列。

4、常见的Zigbee协议栈有非开源(msstatePAN)协议栈、开源(freakz)协议栈与半开源(Zstack)协议栈。

5、Zigbee软件开发平台包括IAR、Zigbee Sniffer、物理地址修改软件以及其它辅助软件。

6、Zigbee硬件开发平台采用Altium Designer进行设计。

7、简述Zigbee的定义。

答:Zigbee就是一种近距离、低复杂度、低功耗、低成本的双向无线通讯技术。

主要用于距离短、功耗低且传输速率不高的各种电子设备之间,进行数据传输(包括典型的周期性数据、间歇性数据与低反应时间数据)的应用。

( Zigbee的基础就是IEEE802、15、4,但就是IEEE802、15、4仅处理低级的MAC(媒体接入控制协议)层与物理层协议,Zigbee联盟对网络层协议与应用层进行了标准化。

)8、简述无线传感器网络与Zigbee之间的关系。

答:从协议标准来讲:目前大多数无线传感器网络的物理层与MAC层都采用IEEE802、15、4协议标准。

IEEE802、15、4描述了低速率无线个人局域网的物理层与媒体接入控制协议(MAC层),属于IEEE802、15、4工作组。

而Zigbee技术就是基于IEEE802、15、4标准的无线技术。

从应用上来讲:Zigbee适用于通信数据量不大,数据传输速率相对较低,成本较低的便携或移动设备。

这些设备只需要很少的能量,以接力的方式通过无线电波将数据从一个传感器传到另外一个传感器,并能实现传感器之间的组网,实现无线传感器网络分布式、自组织与低功耗的特点。

9、Zigbee技术特点:低功耗、低成本、大容量、可靠、时延短、灵活的网络拓扑结构。

Ti_CC2530之Zigbee学习笔记

Ti_CC2530之Zigbee学习笔记

Ti_CC2530之Zigbee学习笔记网友学习Zigbee的笔记这种学习方法值得借鉴,也值得推广,希望对大家学习Zigbee有所帮助。

硬件参考西安迖泰电子公司的CC2430开发套件。

目录一、重要变量说明 (2)二、重要属性 (9)三、重要结构 (13)四、重要的表 (17)五、ZigBee网络中的设备信息 (18)六、协调器网络的建立 (20)七、输入输出命令的邦定过程及数据发送 (23)一、重要变量说明编译选项:HOLD_AUTO_START --网络设备启动应用程序NV_RESTORE --在NV中保存网络状态RTR_NWKHAL_ADC --是否自持ADCHAL_DMA --是否支持DMAHAL_AESHAL_LCDHAL_LEDHAL_UARTHAL_KEYZDO_MGMT_NWKDISC_REQUEST --请求目标设备执行网络扫描ZDO_MGMT_NWKDISC_RESPONSE --响应目标设备执行网络扫描ZDO_MGMT_LQI_REQUEST --请求目标设备相邻设备列表ZDO_MGMT_LQI_RESPONSE --响应目标设备相邻设备列表ZDO_MGMT_RTG_REQUEST --请求目标设备路由表ZDO_MGMT_RTG_RESPONSEZDO_MGMT_BIND_REQUEST --请求目标设备绑定表ZDO_MGMT_BIND_RESPONSEZDO_MGMT_LEAVE_REQUEST --请求目标设备离开网络ZDO_MGMT_LEAVE_RESPONSEZDO_MGMT_ JOINDIRECT_REQUEST --请求目标设备直接连接另一个设备 ZDO_MGMT_ JOINDIRECT_RESPONSEZDO_MGMT_PERMIT_JOIN_RESPONSE --响应设备允许或拒绝连接宏:MAC_RADIO_TURN_OFF_POWER --关闭无线电MAC_RADIO_TURN_ON_POWER --打开无线电返回值状态:ZSUCCESS 0INVALID_TASK 1MSG_BUFFER_NOT_AVAIL 2INVALID_MSG_POINTER 3INVALID_LEN 4INVALID_SENDING_TASK 5INVALID_DESTINATION_TASK 6INVALID_EVENT_ID 7INVALID_TIMEOUT_VALUE 8INVALID_INTERRUPT_ID 9INVALID_ISR_PTR 10INVALID_TASK_TABLE 11NO_TIMER_AVAIL 12INVALID_MSG_LEN 13NOT_READY 14NV_ITEM_UNINIT 15NV_OPER_FAILED 16INVALID_MEM_SIZE 17NV_BAD_ITEM_LEN 18全局状态值:ZSuccess --成功 0x00 ZFailure --失败 0x01 ZInvalidParameter --无效参数 0x02 ZStack状态值:ZMemError --系统内存错误 0x10 ZBufferFull --缓冲区满 0x11 ZUnsupportedMode --未支持的模式 0x12 ZMacMemError --MAC 内存错误 0x13 ZSapiInProgress 0x20 ZSapiTimeout 0x21 ZSapiInit 0x22 APS层状态值:ZApsFail --失败 0xb1 ZApsTableFull --表满 0xb3ZApsIllegalRequestZApsInvalidBinding --绑定无效 0xb4 ZApsUnsupportedAttrib --未支持的属性0xb5 ZApsNotSupported --未支持0xb6 ZApsNoAck --没有Ack 0xb7 ZApsDuplicateEntry --条目重复 0xb8 ZApsNoBoundDevice --没有绑定设备 0xb9 SEC层状态值: ZSecNoKey --没有密钥0xa1 ZSecOldFrmCount 0xa2 ZSecMaxFrmCount --最大帧数 0xa3 ZSecCcmFail 0xa4 NWK层状态值:ZNwkInvalidParam --无效参数 0xc1 ZNwkInvalidRequest --无效请求0xc2 ZNwkNotPermitted --不允许0xc3 ZNwkStartupFailure --启动失败 0xc4 ZNwkAlreadyPresent --已存在0xc5 ZNwkSyncFailure --同步失败0xc6 ZNwkTableFull --表满0xc7 ZNwkUnknownDevice --未知设备0xc8 ZNwkUnsupportedAttribute --未支持的属性0xc9 ZNwkNoNetworks --没有网络 0xca ZNwkLeaveUnconfirmed --离开未确认 0xcb ZNwkNoAck --没有ACK 0xcc ZNwkNoRoute --没有路由 0xcd MAC层状态值:ZMacSuccess --成功 0x00 ZMacBeaconLoss --信标丢失 0xe0 ZMacChannelAccessFailure 0xe1 ZMacDenied 0xe2 ZMacDisableTrxFailure 0xe3ZMacFailedSecurityCheck 0xe4 ZMacFrameT ooLong 0xe5 ZMacInvalidGTS 0xe6 ZMacInvalidHandle 0xe7 ZMacInvalidParameter 0xe8 ZMacNoACK 0xe9 ZMacNoBeacon 0xea ZMacNoData 0xeb ZMacNoShortAddr 0xec ZMacOutOfCap 0xed ZMacPANIDConflict 0xee ZMacRealignment 0xef ZMacTransactionExpired 0xf0 ZMacTransactionOverFlow 0xf1 ZMacTxActive 0xf2 ZMacUnAvailableKey 0xf3 ZMacUnsupportedAttribute 0xf4 ZMacUnsupported 0xf5 组件标示:COMPID_OSAL 0COMPID_MTEL 1COMPID_MTSPCI 2COMPID_NWK 3COMPID_NWKIF 4COMPID_MACCB 5COMPID_MAC 6COMPID_APP 7COMPID_TEST 8COMPID_RTG 9COMPID_DATA 11测试中的组件标示:COMPID_TEST_NWK_STARTUP 20COMPID_TEST_SCAN_CONFIRM 21COMPID_TEST_ASSOC_CONFIRM 22COMPID_TEST_REMOTE_DATA_CONFI23RM系统事件:SYS_EVENT_MSG系统消息:SPI_INCOMING_ZTOOL_PORT 0x21SPI_INCOMING_ZAPP_DATA 0x22MT_SYS_APP_MSG 0x23MT_SYS_APP_RSP_MSG 0x24AF_DATA_CONFIRM_CMD 0xFDAF_INCOMING_MSG_CMD 0x1AAF_INCOMING_KVP_CMD 0x1BAF_INCOMING_GRP_KVP_CMD 0x1CKEY_CHANGE 0xC0ZDO_NEW_DSTADDR 0xD0ZDO_STATE_CHANGE 0xD1ZDO_MATCH_DESC_RSP_SENT 0xD2ZDO_CB_MSG 0xD3为用户所保留的消息id(用户自定义)0xE0—0xFF各层簇定义:APP层簇ID void SampleApp_MessageMSGCB( afIncomingMSGPacket_t *pkt ) SAMPLEAPP_MAX_CLUSTERS --最大簇数 2SAMPLEAPP_PERIODIC_CLUSTERID --一个簇标识的周期 1SAMPLEAPP_FLASH_CLUSTERID --一个簇标识的闪烁 2ZDO层簇ID void ZDApp_ProcessMsgCBs( zdoIncomingMsg_t *inMsg ) ZDO, _RESPONSE_BIT_V1_0 --响应位V1.0版本 0x80ZDO_RESPONSE_BIT --响应位 0x8000NWK_addr_req --网络地址请求 0x0000IEEE_addr_req --IEEE地址请求 0x0001Node_Desc_req --节点描述符请求 0x0002Power_Desc_req --电源描述符请求 0x0003Simple_Desc_req --简单描述符请求 0x0003Active_EP_req --动态端点/接口请求 0x0005Match_Desc_req --匹配描述符请求 0x0006NWK_addr_rsp (NWK_addr_req | ZDO_RESPONSE_BIT)IEEE_addr_rsp (IEEE_addr_req | ZDO_RESPONSE_BIT)Node_Desc_rsp (Node_Desc_req | ZDO_RESPONSE_BIT)Power_Desc_rsp (Power_Desc_req | ZDO_RESPONSE_BIT)Simple_Desc_rsp (Simple_Desc_req | ZDO_RESPONSE_BIT)Active_EP_rsp (Active_EP_req | ZDO_RESPONSE_BIT)Match_Desc_rsp (Match_Desc_req | ZDO_RESPONSE_BIT)Complex_Desc_req --复杂描述符请求 0x0010User_Desc_req --用户描述符请求 0x0011Discovery_Cache_req --缓存发现请求 0x0012End_Device_annce --终端设备性能 0x0013User_Desc_set --设置用户描述符 0x0014Server_Discovery_req --服务发现请求 0x0015Complex_Desc_rsp (Complex_Desc_req | ZDO_RESPONSE_BIT)User_Desc_rsp (User_Desc_req | ZDO_RESPONSE_BIT)Discovery_Cache_rsp (Discovery_Cache_req | ZDO_RESPONSE_BIT) User_Desc_conf (User_Desc_set | ZDO_RESPONSE_BIT)Server_Discovery_rsp (Server_Discovery_req | ZDO_RESPONSE_BIT)End_Device_Bind_req --终端设备绑定请求 0x0020Bind_req --绑定请求 0x0021Unbind_req --解除绑定请求 0x0022Bind_rsp (Bind_req | ZDO_RESPONSE_BIT)End_Device_Bind_rsp (End_Device_Bind_req | ZDO_RESPONSE_BIT) Unbind_rsp (Unbind_req | ZDO_RESPONSE_BIT)Mgmt_NWK_Disc_req --网络扫描请求 0x0030Mgmt_Lqi_req --相邻设备请求Mgmt_Rtg_req ((uint16)0x0032)Mgmt_Bind_req ((uint16)0x0033)Mgmt_Leave_req ((uint16)0x0034)Mgmt_Direct_Join_req ((uint16)0x0035)Mgmt_Permit_Join_req ((uint16)0x0036)Mgmt_NWK_Disc_rsp (Mgmt_NWK_Disc_req | ZDO_RESPONSE_BIT)Mgmt_Lqi_rsp (Mgmt_Lqi_req | ZDO_RESPONSE_BIT)Mgmt_Rtg_rsp (Mgmt_Rtg_req | ZDO_RESPONSE_BIT)Mgmt_Bind_rsp (Mgmt_Bind_req | ZDO_RESPONSE_BIT)Mgmt_Leave_rsp (Mgmt_Leave_req | ZDO_RESPONSE_BIT) Mgmt_Direct_Join_rsp (Mgmt_Direct_Join_req | ZDO_RESPONSE_BIT) Mgmt_Permit_Join_rsp (Mgmt_Permit_Join_req | ZDO_RESPONSE_BIT) 各层事件定义:MAC回调事件:void MAC_CbackEvent(macCbackEvent_t *pData)MAC_MLME_ASSOCIATE_IND --关联指示 1 MAC_MLME_ASSOCIATE_CNF --关联确认 2 MAC_MLME_DISASSOCIATE_IND --取消指示 3 MAC_MLME_DISASSOCIATE_CNF --取消确认 4 MAC_MLME_BEACON_NOTIFY_IND --信标通知指示 5 MAC_MLME_ORPHAN_IND --孤指示 6 MAC_MLME_SCAN_CNF --扫描确认7 MAC_MLME_START_CNF --开始确认8 MAC_MLME_SYNC_LOSS_IND --同步损失指示9 MAC_MLME_POLL_CNF --轮询确认10MAC_MLME_COMM_STATUS_IND --通信状态指示11 MAC_MLME_POLL_IND --轮询指示16 MAC_MCPS_DATA_CNF --数据确认 12 MAC_MCPS_DATA_IND --数据指示 13MAC_MCPS_PURGE_CNF --清除确认 14 MAC_PWR_ON_CNF --上电确认 15 ZDO层任务事件: UINT16 ZDApp_event_loop( byte task_id, UINT16 events )ZDO_NETWORK_INIT --设备初始化 0x0001ZDO_NETWORK_START --开始网络 0x0002ZDO_DEVICE_RESET --设备复位 0x0004ZDO_COMMAND_CNF --命令确认 0x0008ZDO_STATE_CHANGE_EVT --更新网路状态 0x0010ZDO_ROUTER_START --开始路由器 0x0020ZDO_NEW_DEVICE --新设备事件 0x0040ZDO_DEVICE_AUTH --设备确认事件 0x0080ZDO_SECMGR_EVENT --安全管理事件 0x0100ZDO_NWK_UPDATE_NV --保存网络状态 0x0200ZDO_FRAMECOUNTER_CHANGE --帧计数器改变 0x0400 二、重要属性获取或设置标准PIB MAC_MlmeGetReq() //获取属性值MAC_MlmeSetReq() //设置属性值MAC_ACK_WAIT_DURATION --等待确认帧的最大符号数MAC_ASSOCIATION_PERMIT --协调器允许关联MAC_AUTO_REQUEST --自动发送一个数据请求MAC_BATT_LIFE_EXT --启用电池寿命MAC_BATT_LIFE_EXT_PERIODSMAC_BEACON_PAYLOAD --信标负载内容MAC_BEACON_PAYLOAD_LENGTH --信标负载字节长度MAC_BEACON_ORDER --协调传送信标时间间隔MAC_BEACON_TX_TIMEMAC_BSN --信标帧序列号MAC_COORD_EXTENDED_ADDRESS --协调器扩展地址MAC_COORD_SHORT_ADDRESS --协调器短地址MAC_DSN --命令帧序列号MAC_GTS_PERMIT --PAN协调器接收GTS请求MAC_MAX_CSMA_BACKOFFS --消除信道之前,CSMA尝试抵消数 MAC_MIN_BE --如果设置为0,禁用避免碰撞MAC_PAN_ID --PAN标示符,0xFFFF不被关联MAC_PROMISCUOUS_MODE --mac处于混乱模式MAC_RX_ON_WHEN_IDLE --空闲周期启用接收器MAC_SHORT_ADDRESS --设备短地址,协调器在MAC_StartReq()设置,其他设备在关联中分配,MAC_ADDR_USE_EXT --设备没有短地址关联。

ZIGBEE学习笔记

ZIGBEE学习笔记

1、ZigBee协议栈:ZigBee协议是一系列的通信标准,通信双方需要共同按照这一标准进行正常的数据发射和接收。

协议栈是协议的具体实现形式,通俗点来理解就是协议栈是协议和用户之间的一个接口,开发人员通过使用协议栈来遵循和使用这个协议的,进而实现无线数据收发。

2、ZigBee无线网络协议层的架构:ZigBee协议分为两部分---IEEE 802.15.4和ZigBee,IEEE 802.15.4定义了PHY (物理层)和MAC(介质访问层)技术规范;ZigBee联盟定义了NWK(网络层)、APS(应用程序支持子层)、APL(应用层)技术规范。

ZigBee协议栈就是将各个层定义的协议都集合在一起,以函数的形式实现,并给用户提供API(应用层),用户可以直接调用---学习Zigbee就是熟悉API和学习如何使用对应函数。

3、用户实现简单的无线数据通信的一般步骤:---组网:调用协议栈的组网函数、加入网络函数,实现网络的建立与节点的加入。

---发送:发送节点调用协议栈的无线数据发送函数,实现无线数据发送。

---接收:接收节点调用协议栈的无线数据接收函数,实现无线数据接收。

4、Z-STACK协议栈工作原理:Z-stack可以看做是一个小型的操作系统(本质是大型的程序),用于实现底层和网络层的内容,Z-stack将复杂部分屏蔽掉。

用户通过API函数就可以轻易用ZigBee。

5、协调器、路由器、终端:Router----路由器Coodinator----协调器EndDevice----终端设备(1)协调器:(coordinator)每个zigbee网络只允许有一个zigbee的协调器,协调器首先选择一个信道和网络标识(PAN ID),然后开始这个网络.因为协调器是整个网络的开始,他具有网络的最高权限,是整个网络的维护者,还可以保持间接寻址用的表格绑定,同时还可以设计安全中心和执行其他动作,保持网络其他设备的通信。

ZigBee相关笔记

ZigBee相关笔记

常用控制寄存器相关技巧写1操作数据发送AF-DataRequest函数:afStatus_t AF_DataRequest( afAddrType_t * dstAddr,endPointDesc_t *srcEP,uint16 cID,uint16 le n, uint8 *buf,uint8 *transID,uint8 options,uint8 radius)MSGpkt = (afIncomingMSGPacket_t *)osal_msg_receive( SampleApp_TaskID )解释: (afIncomingMSGPacket_t *)是强制类型转换,SampleApp_TaskID包含的事件ID交给osal_msg_receive函数从消息队列上接受消息,并转换成afIncomingMSGPacket_t结构体类型并赋给MSGpkt遇到问题:1、电脑无法识别板子解决方法:电池组供电,单纯靠USB供电不足2、安装完USB转串口驱动后依然无法识别串口解决方法:去掉仿真器直接将板子与PC相连3、IAR编译问题解决办法:4、功放烧毁原因:上电顺序,先上电再装天线会烧毁功放5、自己定义头文件在IAR中编译时出现“Fatal Error[Pe1696]: cannot open source file”解决方法:在IAR提供的头文件中缺少你定义的,可以使用#include "E:\毕业设计\程序\5883L\5883L test\HMC5883.h",用具体的地址来解决这个问题6、IAR编译时出现“Error[Pe029]: expected an expression”解决方法:定义问题,检查定义语句,#defien定义是不需要加”;”,但是typedef定义是必须要加”;”7、在两个.C文件中使用同一个变量解决方法:方案1:在一个文件中定义全局变量“类型 tmp;”,注意是全局变量。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

关于ZIGBEE技术Zigbee的由来在蓝牙技术的使用过程中,人们发现蓝牙技术尽管有许多优点,但仍存在许多缺陷。

对工业,家庭自动化控制和遥测遥控领域而言,蓝牙技术显得太复杂,功耗大,距离近,组网规模太小等,而工业自动化对无线通信的需求越来越强烈。

正因此,经过人们长期努力,Zigbee协议在2003年中通过后,于2004正式问世了。

Zigbee是什么Zigbee是一个由可多到65000个无线数传模块组成的一个无线数传网络平台,十分类似现有的移动通信的CDMA网或GSM网,每一个Zigbee网络数传模块类似移动网络的一个基站,在整个网络范围内,它们之间可以进行相互通信;每个网络节点间的距离可以从标准的75米,到扩展后的几百米,甚至几公里;另外整个Zigbee网络还可以与现有的其它的各种网络连接。

例如,你可以通过互联网在北京监控云南某地的一个Zigbee控制网络。

不同的是,Zigbee网络主要是为自动化控制数据传输而建立,而移动通信网主要是为语音通信而建立;每个移动基站价值一般都在百万元人民币以上,而每个Zigbee―基站‖却不到1000元人民币;每个Zigbee 网络节点不仅本身可以与监控对对象,例如传感器连接直接进行数据采集和监控,它还可以自动中转别的网络节点传过来的数据资料; 除此之外,每一个Zigbee网络节点(FFD)还可在自己信号覆盖的范围内,和多个不承担网络信息中转任务的孤立的子节点(RFD)无线连接。

每个Zigbee网络节点(FFD和RFD)可以可支持多到31个的传感器和受控设备,每一个传感器和受控设备终可以有8种不同的接口方式。

可以采集和传输数字量和模拟量。

Zigbee技术的应用领域Zigbee技术的目标就是针对工业,家庭自动化,遥测遥控,汽车自动化、农业自动化和医疗护理等,例如灯光自动化控制,传感器的无线数据采集和监控,油田,电力,矿山和物流管理等应用领域。

另外它还可以对局部区域内移动目标例如城市中的车辆进行定位.通常,符合如下条件之一的应用,就可以考虑采用Zigbee技术做无线传输:1.需要数据采集或监控的网点多;2.要求传输的数据量不大,而要求设备成本低;3.要求数据传输可性高,安全性高;4.设备体积很小,不便放置较大的充电电池或者电源模块;5.电池供电;6.地形复杂,监测点多,需要较大的网络覆盖;7.现有移动网络的覆盖盲区;8.使用现存移动网络进行低数据量传输的遥测遥控系统。

9.使用GPS效果差,或成本太高的局部区域移动目标的定位应用。

Zigbee 技术的特点省电:两节五号电池支持长达6个月到2年左右的使用时间。

可靠:采用了碰撞避免机制,同时为需要固定带宽的通信业务预留了专用时隙,避免了发送数据时的竞争和冲突;节点模块之间具有自动动态组网的功能,信息在整个Zigbee网络中通过自动路由的方式进行传输,从而保证了信息传输的可靠性。

时延短:针对时延敏感的应用做了优化,通信时延和从休眠状态激活的时延都非常短。

网络容量大:可支持达65000个节点。

安全:ZigBee提供了数据完整性检查和鉴权功能,加密算法采用通用的AES-128。

高保密性:64位出厂编号和支持AES-128加密。

Zigbee的发展前景Zigbee技术和RFID 技术在2004年就被列为当今世界发展最快,市场前景最广阔的十大最新技术中的两个。

关于这方面的报道,你只需在百度,或GOOGLE搜索栏中键入―Zigbee‖,你就会看到大量的有关报道。

总之,今后若干年,都将是Zigbee技术飞速发展的时期。

Zigbee技术在我国的应用情况尽管,国内不少人已经开始关注Zigbee这们新技术,而且也有不少单位开始涉足Zigbee技术的开发工作,然而,由于Zigbee 本身是一种新的系统集成技术,应用软件的开发必须和网络传输,射频技术和底层软硬件控制技术结合在一起。

因而深入理解这个来自国外的新技术,再组织一个在这几个方面都有丰富经验的配套的队伍,本身就不是一件容易的事情,因而,到目前为止,国内目前除了成都西谷曙光数字技术有限公司,真正将Zigbee技术开发成产品,并成功地用于解决几个领域的实际生产问题而外,尚未见到其它报道。

Zigbee 和现有移动网(GPRS,CDMA-1X)的比较1.无网络使用费:使用移动网需要长期支付网络使用费,而且是按节点终端的数量计算的,而Zigbee没有这笔费用;2.设备投入低:使用移动网需要购买移动终端设备,每个终端的价格在人民币1000元上下,而使用Zigbee 网络,不仅Zigbee网络节点模块(相当于基站)费用每只人民币不到1000元,而且,主要使用的网络子节点(相当于手机)的价格还要低得多;3.通信更可靠:由于现有移动网主要是为手机通信而设计的,尽管CDMA-1X和GPRS可以进行数据通信,但实践发现,不仅通信数率比设计速率低很多,而且数据通信的可靠信也存在一定的问题。

而Zigbee网络则是专门为控制数据的传输而设计的,因而控制数据的传输具有相当的保证。

4.高度的灵活性和低成本:首先,通过使用覆盖距离不同,功能不同的Zigbee 网络节点,以及其它非Zigbee系统的低成本的无线收发模块,建立起一个Zigbee 局部自动化控制网,(这个网络可以是星型,树状,网状及其共同组成的复合网结构)再通过互联网或移动网与远端的计算机相连,从而实现低成本,高效率的工业自动化遥测遥控;5.比起现有的移动网来,尽管Zigbee仅仅只是一个局域网,覆盖区域有限,但它却可以与现有的移动网,互联网和其它通信网络相连接,将许多Zigbee局域网相互连成为一个整体。

有效的解决移动网的盲区覆盖问题:我们知道,现有移动网络在许多地方存在盲区,特别是铁路,公路,油田,矿山等野外,更是如此。

而增加一个移动基站或直放站的费用是相当可观的,此时使用Zigbee网络进行盲区覆盖不仅经济有效,而且往往是现在唯一可行手段。

Zigbee与现有数传电台的比较1.可靠性高:由于Zigbee模块的集成度远比一般数传电台高,分离元器件少,因而可靠性更高;2.使用方便安全:因为集成度高,比起一般数传电台来,Zigbee收法模块体积可以做得很小,而且功耗低,例如成都西谷公司远距离传输模块(2-5公里),最大发射电流比一个CDMA手机还要小许多,因而很容易集成或直接安放在到设备之中,不仅使用方便,而且在户外使用时,不容易受到破坏;3.抗干扰力强,保密性好,误码率低:Zigbee收发模块使用的是2.4G 直序扩频技术,比起一般FSK, ASK和跳频的数传电台来,具有更好的抗干扰能力,和更远的传输距离;参阅我们网站中有关CDMA直序扩频技术的优越性讨论,和Cypress公司有关实验报道。

4.免费频段:Zigbee使用的是免费频段,而许多数传电台所使用的频段不仅需要申请,而且每年都需要向国家无委会交纳相当的频率使用费。

5.价格低:Zigbee数传模块的价格只有具有类似功能的数传电台的几分之一;(2.4G,250kps,3-5公里距离DSSS 数传模块每只不到200元人民币) 提供低成本,高可靠性的无线数传互联网平台(包括软件和硬件),以及相关技术支持,以满足不同客户的具体需要,就是我们的服务宗旨。

学习Zstack之1Zstack情况:本人采用的是TI的Zstack1.4.3协议,据说这个需要IAR7.30B及以上版本,而目前市面上又没有破解,所以用的人很少,这也是我的机会!呵呵!(傻笑有点多,关键是WORD里没有表情符号,不能正常表达我此时的心情!)正式开始:开始之前在说一句:从TI网站上下载的Zstack的方法就不介绍了。

否则就是从-1开始了而不是从0开始了-----------------我是这么觉得的!第一步:安装Zstack从TI官方网站上下载的Zstack为:swrc072c.zip,我想这个压缩包大家都认识。

解压之后为:ZStack-CC2430-1.4.3.exe文件。

这个安装文件大家都会了。

默认安装路径为:C:\Texas Instruments\ZStack-1.4.3。

安装之后在C:\Texas Instruments\ZStack-1.4.3目录下有各PDF文档为:Getting Started Guide CC2430.pdf,不用多说,这个肯定是要看的。

既然把它放到这么前面,说明它是入门中的入门文档。

下面就简单介绍下这个文档:1、介绍了安装ZStack-CC2430-1.4.3.exe需要的硬件软件条件:需要电脑、操作系统为Windows 2000或Windows XP。

至于更高或更低版本的本人没有尝试。

2、讲了安装流程。

这个有点多余了,这年月哪个有电脑的没有安装上百上千次的软件啊?但是需要强调的是安装路径----默认就好!3、接下来就是让我们看的第一个文档为:Start->Programs->Texas Instruments->ZStack-1.4.3->Z-Stack User’s Guide,既然让我看我就来看看这个文档!!第二步:Z-Stack 用户指导这个文档的更新时间为:2007年12月21日----应该还是比较新的版本。

由于本人英文的却有限,就不翻译了,浏览一遍,把大概意思说下就可以了:1、介绍1.1、适用范围本文档适用于CC2430ZigBee开发板----CC2430ZDK。

2、产品包描述(TI提供的CC2430ZDK工具包)2.1、安装包内容这个就是上面提到的的ZStack-CC2430-1.4.3.exe安装之后的所有内容了。

说白了就是包含Zstack开发所需要的所有软件和文档资料等。

2.2、开发板介绍两块SmartRF04EB 评估版,每个都可以用于CC2430EM评估模块。

如图1-1所示:Figure 1: Chipcon SmartRF04EB Evaluation Board with CC2430EM5块CC2430DB 评估板,如图1-2所示:Figure 2: Chipcon CC2430DB Development Board10个SOC_BB 评估板,每个都可以用于CC2430EM或CC2431EM。

如图1-3所示:Figure 3: Chipcon SOC_BB Battery Board2.3、电缆也就是包含开发包所需要的电缆,如RS232串口线,USB线等等附属配件。

3、安装配置3.1、主机配置一台个人计算机----也就是电脑哈。

我想玩嵌入式的应该都有,而现今不过时的配置就可以:下面是最低配置.NET 1.1 架构Windows XP Service Pack 1 (i如果是Windows XP)1个串口(也就是RS232接口)s1 USB接口个人认为要求已经相当低了,如果你的电脑没有这配置,个人强烈建议马上扔掉!不过如今笔记本电脑很少有串口的,所以建议使用台式电脑,而且装机的时候一定要把串口引出,否则就比较麻烦了!3.2、目标板需求其实也是开发环境需求--- IAR EW8051。

相关文档
最新文档