ZigBee_zstack协议栈_CC2530开发_学习笔记

合集下载

【无线通信篇Zstack协议栈】CC2530ZigbeeZstack协议栈组网项目及详细讲解篇

【无线通信篇Zstack协议栈】CC2530ZigbeeZstack协议栈组网项目及详细讲解篇

【⽆线通信篇Zstack协议栈】CC2530ZigbeeZstack协议栈组⽹项⽬及详细讲解篇物联⽹⽆线通信技术,ZigBee⽆线传感⽹络CC2530最⼤的特点就是⼀个拥有⽆线收发器(RF)的单⽚机,既能实现单⽚机功能,也能实现⽆线传输Zstack协议栈是ZigBee协议栈⾥的翘楚,是ZigBee组⽹的⾸选协议栈项⽬实现功能:l 总共有三个端点,⼀个协调器和两个终端节点l 终端节点1连接DHT11温湿度传感器,定时上传给协调器l 终端节点2连接LED,可以通过协调器按键控制,定时上报LED开关状态l 协调器连接12864 OLED 屏幕,实时显⽰温湿度和LED状态l 协调器可以通过按键控制终端2的LED开关,控制后将会显⽰控制结果扩展功能(当前未实现,可进⼀步开发实现):l 连接协调器串⼝,将终端节点采集的数据通过串⼝发送,PC写上位机实现数据展⽰l 连接WIFI或者4G模块,WIFI模块如ESP8266,实现数据局域⽹⽆线传输或者上传到OneNET、机智云、阿⾥云、⾃⼰开发云服务器等,实现WEB或⼿机APP显⽰和控制。

⼀、项⽬测试(可想⽽知,⼴州的天⽓有多热,39℃了都)实现功能汇总:l 总共有三个端点,⼀个协调器和两个终端节点l 终端节点1连接DHT11温湿度传感器,定时上传给协调器l 终端节点2连接LED,可以通过协调器按键控制,定时上报LED开关状态l 协调器连接12864 OLED 屏幕,实时显⽰温湿度和LED状态l 协调器可以通过按键控制终端2的LED开关,控制后将会显⽰控制结果(⼀) 环境汇总芯⽚:CC2530F256Zstack协议栈:ZStack-CC2530-2.5.1a编程环境:IAR(⼆) 引脚分配协调器:128*64 OLED 0.96⼨屏幕供电:3.3V通信协议:IIC引脚:SDA P0_6SCL P0_7按键:IO:P0_1下降沿触发中断终端1:DHT11:通信⽅式:单总线协议供电:3.3VIO:P0_6终端2:LEDIO:P1_0说明:⾼电平点亮,低电平熄灭⼆、基础认识(⼀) CC2530单⽚机CC2530最⼤的特点就是⼀个拥有⽆线收发器(RF)的单⽚机,既能实现单⽚机功能,也能实现⽆线传输。

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位寄存器。

Z-stack学习笔记

Z-stack学习笔记

2、何为 IEEE 802.15.4,其特点。 是 ZigBee 无限传感器网络通信标准,具有短距离(10m) ,低功 耗,低速率,低成本的特点,支持单跳星形(10m 内)和多跳对
等(>10m)两种网络拓扑。
3、何为 Z-Stack? Z-Stack 是 TI 公司开发的 ZigBee 协议栈,并且经过了 ZigBee 联 盟的认可而为全球众多开发商所广泛采用。 Z-Stack 实际上是帮助 程序员方便开发 ZigBee 的一套系统, 它采用轮转查询式操作系统, 包括两个主要流程(如图) :系统初始化和执行操作系统。系统初 始化完成后,就进入执行操作系统,并且在其中是一个死循环。 执行操作系统中主函数即为轮询式操作系统的主体部分,也是我 们需要重点开发、 调用、 掌握的部分。 欲知其详, 且听下文分解。
Check for keys */表示检查按键情况。
这个程序到最后,调用了一个重要的函数指针 pHalKeyProcessFunction
这个指针是指向 void OnBoard_KeyCallback ( uint8 keys, uint8 state ) 在“ZMain\OnBoard .c”文件中可以找到。
其中 0 号 endpoint 是用"ZDO"预留的,不能占用。 4. Cluster ID,这个怎么叫呢?叫信息簇 ID 吧。我的理解是,“这是个哪类的信息”,发送 端和接收端一定要对应,但是具体这个“类”怎么分,是我们可以自己决定的。比如说这个例 子,我可以这样定:Cluster ID=1 代表开关一次,Cluster ID=2 代表连续闪烁。或者定 义 Cluster ID=1 代表点对点控制,而 Cluster ID=2 代表全部控制,等等。
二、开发 Z-Stack 须知。 1、ZigBee 的体系,数据及管理的方式和方向。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),然后开始这个网络.因为协调器是整个网络的开始,他具有网络的最高权限,是整个网络的维护者,还可以保持间接寻址用的表格绑定,同时还可以设计安全中心和执行其他动作,保持网络其他设备的通信。

CC2530实现协议栈网络管理

CC2530实现协议栈网络管理

文件名: 协议栈网络管理ZigBee 协议栈网络管理这章内容主要是对新加入的设备节点的设备管。

我们都知道每个CC2530 芯片出厂时候都有一个全球唯一的32 位MAC 地址。

当时当设备连入网络中的时候,每个设备都能获得由协调器分配的16 位短地址,协调器默认地址(0x0000)。

很多时候网络就是通过短地址进行管理。

注意:1.先安装好PL2302 USB转串口驱动,转备好USB线,连接计算机与接收模块。

2.需要两个或者两个以上模块,分别用于协调器、路由器、终端。

●实验目的:学习如何使用TI提供的协议栈,进行网络管理。

●实验步骤:1.打开工程文件:协议栈的无线数据传输\Projects\zstack\Samples\SampleApp\CC2530DB\ SampleApp,分别选择EndDeviceEB-Pro, RouterEB-Pro,CoordintorEB-Pro,分别下载到三个模块中,如下图所示。

2.连接计算机与协调器模块,可以看到协调器接收到数据。

实验结果:将修改后的程序分别以协调器、路由器、终端的方式下载到3个或以上设备,协调器连接到PC机。

上电后每个设备往协调器发送自身编号,协调器通过串口显示出来。

具体实验:要实现协调器收集数据的功能,可以使用点播方式传输数据,点播地址为协调器地址(0x0000),避免了路由器和终端之间的互传,减少网络数据拥塞。

在samplApp.c中修改发送数据函数为:void SampleApp_SendPointToPointMessage( void ){uint8 device;//设备类型变量if ( SampleApp_NwkState == DEV_ROUTER )device=0x01; //编号1表示路由器else if (SampleApp_NwkState == DEV_END_DEVICE)device=0x02;//编号2表示终端elsedevice=0x03;//编号3表示出错if ( AF_DataRequest( &Point_To_Point_DstAddr, //发送设备类型编号&SampleApp_epDesc,SAMPLEAPP_POINT_TO_POINT_CLUSTERID,1,&device,&SampleApp_TransID,AF_DISCV_ROUTE,AF_DEFAULT_RADIUS ) == afStatus_SUCCESS ){}}修改完成后系统设备自动检测自己烧写的类型,然后发送对应的编号。

飞比”Zigbee论坛CC2530开发板学习教程

飞比”Zigbee论坛CC2530开发板学习教程

“飞比”Zigbee论坛CC2530开发板学习教程(一)--前言“奥特曼Zigbee读书日记”已经写到第六部分了,首先非常感谢广大网友的支持与长期关注,此系列笔记会继续按照开源的方向进行深入的学习及更新。

同时,应广大网友的要求,也由于CC2530替代CC2430的强劲动力,经论坛管理团队讨论,最终决定在最近的一段时间内暂停“奥特曼Zigbee读书日记”的更新,而推出更偏向于应用,且更贴近市场的教程--“飞比”Zigbee论坛CC2530开发板学习教程。

本教程将着眼于TI公司的新一代 2.4G Zigbee IC-CC2530及最新的Zigbee协议-Zstack2007的应用学习。

所采用的硬件平台为CC2530的官方开发板-CC2530DK (SmartRF05EB)。

少一点炒作,多做一点实事--本站致力于营造一个“潜心学习、踏实做事”的氛围,希望广大Zigbee技术的爱好者、从业者积极参与,一起为中国的“无线单片机”技术献出自己的微薄之力。

[注:本文源自--“飞比”Zigbee论坛,为尊重劳动者成果,如需转载请保留此行,并通知作者]在这一章里,首先介绍下本套教程的整体思路及具体会涉及到的例程。

需要声明的一点是,本教程不是单片机的入门教程,需要读者对单片机及C语言有一定的基础,它关注的是Zigbee协议的基本概念及TI公司公开发行的免费Zigbee协议-Zstack 2007的应用。

首先着眼于TI公司提供的学习例程的讲解,这其中不但包括Zstack 2007的例程,同时会介绍TI的一些简化协议,如Basic RF/SimpliciTI等;然后会将“奥特曼Zigbee读书日记”中介绍的开源协议-MSSTATE LRWPAN,移植到CC2530DK中;最后,我们再来一起进入一个具体的应用领域-智能家居,学习一下TI的专用Zigbee遥控器协议RemoTI。

以下为具体采用的平台及相应的例程:(以下例程很多是CC2430及CC2530中共用的,本教程将同时适用)1、TI Basic RF----Light Switch----PER test2、Zstack 2007-----Sample App-----Generic App-----Home Automation-----Serial App-----Transmit App-----Simple App-----OAD/ENP/ESP等,待定3、MSSTATE LRWPAN ---- 平台移植及Ping Pong例程4、RemoTI声明:本教程中采用的源代码均来源于官方网站,并在此基础上进行修改,本站尊重原作者的劳动,将保留所有源文件的版权信息,并将标明本站进行的修改。

ZigBee协议栈学习总结

ZigBee协议栈学习总结

ZigBee协议栈学习总结近年来,物联网技术发展迅猛,智能家居、智能工厂等应用逐渐普及。

而ZigBee协议作为一种广泛应用于物联网中的低功耗、近距离、网状网络通信协议,受到了广泛的关注和应用。

在ZigBee技术中,协议栈是关键的一环。

本文将对ZigBee协议栈的相关知识进行总结。

一、ZigBee协议栈概述ZigBee协议栈是指在物联网中实现ZigBee通信的软件系统,它包含了多个层级,每个层级负责不同的功能。

ZigBee协议栈分为应用层、网络层、MAC层和物理层,通过这些层级的协同工作,实现了ZigBee设备之间的通信。

1.1 应用层在ZigBee协议栈中,应用层是最上层的一层,负责定义应用数据的传输方式和应用协议。

应用层通过上层应用与下层协议栈进行交互,将上层应用数据封装为ZigBee命令帧发送给网络层。

1.2 网络层网络层是ZigBee协议栈的中间层,负责实现设备的网络发现、路由选择和网络管理等功能。

网络层通过维护网络拓扑结构,实现了ZigBee设备之间的互联互通。

1.3 MAC层MAC层即介质访问控制层,是介于网络层和物理层之间的一层。

MAC层负责管理无线通信信道,实现了数据的可靠传输和统计信息的收集。

1.4 物理层物理层是ZigBee协议栈的最底层,负责处理物理信号的传输和接收。

物理层根据不同的频段和传输速率,将数字信号转换为模拟信号进行无线传输。

二、ZigBee协议栈的工作原理ZigBee协议栈的各层级通过相互协作,实现了物联网设备之间的通信。

协议栈从应用层开始,将上层应用数据经过各层的处理和封装,最终通过物理层进行无线传输。

在接收端,协议栈将接收到的信号依次经过物理层、MAC层、网络层和应用层的解析,最终将数据传递给上层应用进行处理。

三、ZigBee协议栈的特点和优势ZigBee协议栈相较于其他通信协议具有以下特点和优势:3.1 低功耗ZigBee协议栈采用低功耗设计,设备在待机状态下功耗非常低,能够延长设备的使用寿命。

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

CC Debugger
设计有自恢复保险丝(200mA)
接口说明
CC Debugger的目标板调试端口引脚说明
(1)JTAG 口: 1 GND 2 VCC
3 DC
4 DD
5 CSN
6 SCK
7 RESET8 MOSI
9 MISO10 NC
仿真器的功能
(1)电路调试,采用 IAR Embedded Workbench 7.51A for 8051;
(2)Flash 编程,采用 SmartRF Flash Programmer;
(3)RF 测试,采用 SmartRF studio;
(4)包探测,采用 SmartRF Packet Sniffer.
功能1,2调试和编程的连接方法
包探测功能的连接方法
注意事项(1)仿真器可为目标板提供最大 3.3V/200mA 电流,若目标板电流较大,请单独供电。

(2)初次上电或者带电插拔目标板,有时会导致无法仿真,按 RESET 键复位即可。

SmartRF Flash Programmer的使用
CC DEBUGGER 在 SmartRF Flash Programmer 下的使用
连接CC仿真器
(1)EB ID<5026>:为 CC DEBUGGER 的设备 ID 号,
(2)Chip type<N/A>:表明未连接或未检测到目标设备。

system on chip
(1)选择Program CCxxxx SoC or MSP430选项
(2)选中system on chip选项
(3)在Flash 栏内浏览选中想要写入的HEX 文件
(4)在“Action”栏里选择“Erase, Program and Verify”
(5)点击Perform actions
Erase擦除
Erase and program擦除、编程
Erase, program and verify擦除、编程和验证
Append and verify追加 并 校验
Verify against hex-file验证 hex文件
Read flash into hex-file读flash 到 hex文件
Flash lock (effective after program/append):Flash锁(有效程序/追加后):闪存锁
Write protect:写保护:
对于这些设备可以写保护每一页的flash图像。

输入字段”写
保护”应该得到如图4,CC2530写保护。

这个页面写保护
可以给由一个逗号分开。

也可以指定一个范围的页。

Block debug commands (incl. read access)块调试命令(包括读访问)
NB: Cannot "Append and verify" when set!注:不能“Append和验证”当设置!
,请单独供电。

复位即可。

相关文档
最新文档