下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于 Zstack 的串口LED 实验1.实验环境v 硬件:UP-CUP IOT-6410-II 型物联网综合实验系统,PC 机v:IAR Embedded Workbenchfor MCS-512.实验内容v 学习 TI ZStack2007 协议栈内容,掌握 CC2530 模块无线组网原理及过程。掌握 ZStack 协议中关于串口 MT 层的处理流程。学习协议栈中关于串口的基本设置和操作。v 使用 IAR 开发环境设计程序,ZStack-2.3.0-1.4.0 协议栈源码例程 SampleApp 工程基础上,实现无线组网及通讯。即协调器自动组网,终端节点自动入网,并设计上位机串口程序,实现
2、上位机PC 串口对 ZIGBEE 模块的,如 LED 的等。3.实验原理v ZIGBEE(CC2530)模块 LED 硬件接口图 5.6.1 LED 硬件接口ZIGBEE(CC2530)模块硬件上设计有 2 个 LED 灯,用来编程调试使用。分别连接 CC2530 的 P1_0、P、1_1 两个IO 引脚。从原理图上可以看出,2 个 LED 灯共阳极,当 P1_0、P1_1 引脚为低电候,LED 灯点亮。系统框图如下:TEL:FAX:总机转 82882114887 82114890 821149441博创科技 UP-TECH图 5.6.2 系统框图本实验实现上位机通过串口命令,发送数据到 ZI
3、GBEE 协调器节点,协调器通过无线网络节点端 LED 灯的开关状态。v MT 层串口通讯协议栈将串口通讯部分放到了 MT 层的 MT 任务中去处理了,因此我们在使用串口通讯的时候要在编译工程(通常是协调器工程)时候在编译选项中加入 MT 层相关任务的支持:MT_TASK,ZTOOL_P1或ZAPP_P1。v 关于串口LED 关键代码分析TEL:FAX:总机转 82882114887 82114890 821149442博创科技 UP-TECHuint16 SampleApp_ProcessEvent( uint8 task_id, uint16 events )afIncoMSGPacket
4、_t *MSGpkt;(void)task_id;/ Intentionally unreferenced parameterif ( events & SYS_EVENT_MSG )MSGpkt = (afIncoMSGPacket t *)osal msg receive( SampleApp TaskID ); while ( MSGpkt )switch ( MSGpkt->hdr.event )/ Received when a key is pressed case KEY_CHANGE:SampleApp_HandleKeys( (keyChange_t *)MSG
5、pkt)->state, (keyChange_t*)MSGpkt)->keys );break;/ Received when a messages is received (OTA) for thiscase AF INCOMSG CMD:SampleApp MessageMSGCB( MSGpkt ); break;case SPI_INCO_ZAPP_DATA: SampleApp_ProcessMTMessage(MSGpkt); MT_UartAppFlowControl (MT_UART_ZAPP_RX_Y); break;/ Received whenever th
6、e device changes state in the network case ZDO_STATE_CHANGE:SampleApp_ProcessEvent() 函数为应用层处理函数,从上面的代码可知,当应用层接收到串口数据(即发生 SPI_INCO_ZAPP_DATA:)时,会调用 SampleApp_ProcessMTMessage(MSGpkt); 串口处理函数,当接收到网络数据(即发生 AF_INCO_MSG_CMD)时,会调用SampleApp_MessageMSGCB( MSGpkt );处理函数,现在来分析这两个函数TEL:FAX:总机转 82882114887 8211
7、4890 821149443博创科技 UP-TECHvoid SampleApp ProcessMTMessage(afIncoMSGPacket t *msg)uint8 status;uint8 dataLen = *(uint8 *)msg+1); uint8 *pData = (uint8*)msg + 2;SampleApp_NwkState = (devStates_t)(MSGpkt->hdr.status); if ( (SampleApp_NwkState = DEV_ZB_COORD)| (SampleApp_NwkState = DEV_ROUTER)| (Samp
8、leApp_NwkState = DEV_END_DEVICE) )/ Starding the periodic message in a regular interval./osal_start_timerEx( SampleApp_TaskID,/SAMPLEAPP_SEND_PERIODIC_MSG_EVT,/SAMPLEAPP_SEND_PERIODIC_MSG_TIMEOUT );else/ Device is no longer in the networkbreak;default:break;osal_msg_deallocate( (uint8 *)MSGpkt );/ R
9、elease the memoryMSGpkt = (afIncoMSGPacket_t *)osal_msg_receive( SampleApp_TaskID );/ Next- if one is availablereturn (events SYS EVENT MSG);/ return unprocessed events/ Send a message out - This event is generated by a timer/(setup in SampleApp_Init().if ( events & SAMPLEAPP_SEND_PERIODIC_MSG_E
10、VT )SampleApp_SendPeriodicMessage();/ Send the periodic message/ Setup to send message again in normal period (+ a little jitter)osal_start_timerEx( SampleApp_TaskID, SAMPLEAPP_SEND_PERIODIC_MSG_EVT, (SAMPLEAPP_SEND_PERIODIC_MSG_TIMEOUT + (osal_rand() & 0x00FF) );return (events SAMPLEAPP SEND PE
11、RIODIC MSG EVT);/ return unprocessedeventsreturn 0;/ Discard unknown events这个函数是协调器要完成的工作,当串口接收到字符串“on”时会向串口回发“set led on”,并向终端节点发送 0x01,当串口接收到字符串“off”时会向串口回发“set led off”,并向终端节点发送0x00。这个函数是终端节点要完成的工作,当终端节点收到协调器以 SAMPLEAPP_LEDCTL_CLUSTERID 簇ID发送过来的一字节命令(保cmd.Data0)时,会根据这个命令来设置 LED 状态。更详细的处理流程,具体见工程源
12、代码。TEL:FAX:总机转 82882114887 82114890 821149444博创科技 UP-TECHvoid SampleApp_MessageMSGCB( afIncoMSGPacket_t *pkt )uint16 flashTime;switch ( pkt->clusterId )case SAMPLEAPP_PERIODIC_CLUSTERID:break;case SAMPLEAPP_FLASH_CLUSTERID:flashTime = BUILD UINT16(pkt->cmd.Data1, pkt->cmd.Data2 ); HalLedBli
13、nk( HAL LED 4, 4, 50, (flashTime / 4) );break;case SAMPLEAPP LEDCTL CLUSTERID:SetLedStatus(pkt->cmd.Data0); break;if(strncmp(pData, "on", 2) = 0) status = 0x01;HalUARTWrite (MT_UART_DEFAULT_PORT, "rset led on", 11);else if(strncmp(pData, "off", 3) = 0) status = 0x00;
14、HalUARTWrite (MT_UART_DEFAULT_PORT, "rset led off", 12);/HalUARTWrite(MT_UART_DEFAULT_PORT, pData, dataLen);if ( AF DataRequest( &SampleApp Periodic DstAddr, &SampleApp epDesc,SAMPLEAPP LEDCTL CLUSTERID, 1,&status, &SampleApp_TransID, AF_DISCV_ROUTE,AF_DEFAULT_RADIUS ) = af
15、Status_SUCCESS )else/ Error occurred in request to send.4.实验步骤v使用配套 USB 线连接 PC 机和 UP-CUP IOT-6410-II 型,上电,确保打开 ZIEBEE 模块开关供电。vvv使用 CCD_SETKEY 按键选择 ZIGBEE器要连接的 ZIGBEE模块(根据 LED 指示灯)。将系统配套串口线一端连接 PC 机,一端连接到平台上靠近 USB 串口(RS232-2)上。打开物联网无线传感网络部分expzstack基于 ZStack 的上位机串口LED 实验ProjectszstackSamplesSampleApp
16、CC2530DB 里的工程。vv编译 SampleApp-CoordinatorEB 和 SampleApp-EndDeviceEB 工程,分别到两个 zigbee 节点。启动测试,通过 CCD_SETKEY 按键将 PC 机串口线连接到 ZIGBEE 协调器模块对应的串口上,打开串口终端,设置波特率为 115200、8 位、无奇偶校验、无硬件流模式即可在串口终端中输入“on”或者“off”来发送串口命令至协调器模块,协调器通过串口接收到命令后,无线控制节点模块上 LED 灯开关状态。v实验截图TEL:FAX:总机转 82882114887 82114890 821149445博创科技 UP-TECH图 5.6.5 串口终端显示备注:如
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 包头轻工校车削加工技能(劳动版)教案学习情境二车削台阶轴类零件-子学习情境一认识车刀
- 《麻绳》小班美术教案 - 幼儿园美术教案
- 《液压传动》教案(劳动版)
- 临时广告投放合同
- 城市轨道交通招投标详解
- 生态农业发展公益林管理计划
- 电子商务平台交易信息保护规定
- 餐饮业宿舍电费管理规则
- 城市污水处理厂改造协议
- 企业社会责任激励管理办法
- 机电材料见证取样复试
- 2024年秋新版人教版三年级英语上册电子课本
- 护理安全教育案例及分析(3篇模板)
- 关爱失智失能老年人(失智失能老人健康照护课件)
- 事业单位嫖娼违法写检讨书
- 2024年信息安全师考试题库及答案(含AB卷)
- 24春国家开放大学《教育研究方法#》作业1-4参考答案
- 机场地勤的职业规划
- 大学物理-5省公开课金奖全国赛课一等奖微课获奖课件
- zpl语言指令解析
- 房屋维修实施方案
评论
0/150
提交评论