




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验一外部中断实验实验环境硬件:ZigBee(CC2530)模块,ZigBee下载调试板,USB仿真器,PC机。软件:IAREmbeddedWorkbenchforMCS-51实验目的阅读ZigBee2530开发套件ZigBee模块硬件局部文档,熟悉ZigBee模块按键接口中断使用方式。使用IAR开发环境设计程序,利用CC2530的电源管理控制存放器控制系统工作状态。实验原理硬件接口原理按键接口,如图3.1.1所示。CC2530开发板有三个按键,一个复位按键。其余两个按键可以通过编程进行控制。当按键按下时,相应的管脚输出低电平。在此我们采用下降沿触发中断的方式来检测是否有按键按下。ZigBee(CC2530)模块LED硬件接口图3.1.2LED硬件接口CC2530相关存放器图3.1.2P1存放器图3.1.3P1SEL存放器图3.1.4P1DIR存放器图3.1.5P1INP存放器图3.1.6P2INP存放器图3.1.7PICTL存放器图3.1.8P1IEN存放器图3.1.9IEN2存放器4、实验内容按键按下一次,led1亮,led2灭。按键按下2次,led1灭,led2亮。按键按下3次,都亮。按键按下4次,都灭。下降沿触发中断。5、考前须知1、实验前,请正确安装RF2530模块,注意其丝印方向应与底板丝印方向一致,严禁反接;2、实验过程中,严禁带电插拨器件,防止损坏电路;3、实验过程中,严禁用手触摸裸露的器件特别是芯片,防止造成短路或损坏芯片;4、所有模块出厂前均已调试完毕,除非有特别说明,否那么不建议自行对电路中可调局部进行调节。6、实验步骤1、将一个RF2530模块插入到WSN通用底板的相应位置。2、zigbee多功能仿真器的一端通过10pin下载线接到WSN通用底板的JTAG接口上,另一端通过USB线接到PC机上,并通过SmartRFFlashProgrammer软件正确下载自己编写的实验源码。3、通过USB外接电源〔或锂电池BT〕给WSN通用底板供电并将电源开关拨至USB供电〔或锂电池BT供电〕的位置,程序自动运行,可以看到WSN通用底板上的6个LED间歇的亮灭。4、实验完毕后,关闭电源,各模块放回原位。7、程序流程图请在实验报告上详细写出。实验二串口通信实验实验环境硬件:ZigBee(CC2530)模块,ZigBee下载调试板,USB仿真器,PC机。软件:IAREmbeddedWorkbenchforMCS-51实验目的阅读ZigBee2530开发套件ZigBee模块硬件局部文档,熟悉ZigBee模块硬件接口使用IAR开发环境设计程序,利用CC2530的串口0对板载LED灯进行控制实验原理硬件接口原理ZigBee(CC2530)模块LED硬件接口图3.1.1LED硬件接口ZigBee(CC2530)模块硬件上设计有2个LED灯,用来编程调试使用。分别连接CC2530的P1_0、P1_1两个IO引脚。从原理图上可以看出,2个LED灯共阳极,当P1_0、P1_1引脚为低电平时候,LED灯点亮。CC2530IO相关存放器表3.1.2P1存放器表3.1.3P1DIR存放器以上图表列出了关于CC2530处理器的P1IO相关存放器,其中只用到了P1和P1DIR两个存放器的设置,P1存放器为可读写的数据存放器,P1DIR为IO输入输出选择存放器,其他IO存放器的功能,使用默认配置。详情请用户参考CC2530的芯片手册。表3.1.4CLKCONCMD和CLKCONSTA存放器表3.1.5SLEEPCMD和SLEEPSTA控制存放器表3.1.6PERCFG存放器表3.1.7U0CSR存放器表3.1.8U0GCR存放器表3.1.9U0DBUF和U0BAUD存放器以上图表列举了和CC2530处理器串口操作相关的存放器,其中包括CLKCONCMD和CLKCONSTA控制存放器,用来控制系统时钟源和状态,SLEEPCMD和SLEEPSTA存放器用来控制各种时钟源的开关和状态。PERCFG存放器为外设功能控制存放器,用来控制外设功能模式。U0CSR、U0GCR、U0BUF、U0BAUD等为串口相关存放器。4、实验内容PC机发送11#时,led1亮,同时单片机向PC机发送,led1on字样,显示在在串口助手上。PC机发送12#时led1灭,同时单片机向PC机发送led1off字样,显示在在串口助手上。PC机发送21#时,led2亮,同时单片机向PC机发送,led2on字样,显示在在串口助手上。PC机发送22#时led2灭,同时单片机向PC机发送led2off字样,显示在在串口助手上。5、考前须知1、实验前,请正确安装RF2530模块,注意其丝印方向应与底板丝印方向一致,严禁反接;2、实验过程中,严禁带电插拨器件,防止损坏电路;3、实验过程中,严禁用手触摸裸露的器件特别是芯片,防止造成短路或损坏芯片;4、所有模块出厂前均已调试完毕,除非有特别说明,否那么不建议自行对电路中可调局部进行调节。6、实验步骤1、将一个RF2530模块插入到WSN通用底板的相应位置。2、zigbee多功能仿真器的一端通过10pin下载线接到WSN通用底板的JTAG接口上,另一端通过USB线接到PC机上,并通过SmartRFFlashProgrammer软件正确下载自己编写的实验源码。3、通过USB外接电源〔或锂电池BT〕给WSN通用底板供电并将电源开关拨至USB供电〔或锂电池BT供电〕的位置,程序自动运行,可以看到WSN通用底板上的6个LED间歇的亮灭。4、实验完毕后,关闭电源,各模块放回原位。7、程序流程图请在实验报告上详细写出。实验三人体传感器检测1.实验目的1)通过实验掌握CC2530芯片GPIO的配置方法2)掌握MQ-2气体传感器的使用2.实验设备硬件:PC机一台、ZB2530〔底板、核心板、仿真器、USB线〕一套、人体红外传感器一个软件:2000/XP/win7系统,IAR8.10集成开发环境3.实验相关电路图4.实验原理HC-SR501人体红外感应模块是基于红外线技术的自动控制产品。灵敏度高、可靠性强、超低功耗,超低电压工作模式。接线方式(实验是接到J10上):1)、VCC:接电源正极〔5V〕2)、OUT:检测引脚3)、GND:接电源负极实验中使用P0_6作为检测引脚,人进入其感应范围模块输出高电平,点亮LED1,人离开感应范围LED1熄灭P0.6口为HC-SR501传感器的输入端。具体HC-SR501人体感应模块OUT输出电平由模块决定。5.实验流程图及效果〔自己写〕6代码分析〔自己写〕实验四基于Z-Stack的无线组网实验实验环境硬件:ZigBee(CC2530)模块(两个),ZigBee下载调试板,USB仿真器,PC机。软件:IAREmbeddedWorkbenchforMCS-51ZStack-2.3.0-1.4.0协议栈实验内容学习TIZStack2007协议栈内容,掌握CC2530模块无线组网原理及过程。有关Z-Stack2007协议栈的具体内容,请参考附录中相关说明及TI官方文档。使用IAR开发环境设计程序,ZStack-2.3.0-1.4.0协议栈源码例程SampleApp工程根底上,实现无线组网及通讯。即协调器自动组网,终端节点自动入网后,LED1开始点亮,并发送播送信息“LED2”,协调器接收到消息后将LED2闪烁,并将数据通过串口发送给PC计算机。实验原理ZigBee(CC2530)模块LED硬件接口图3.1.1LED硬件接口ZigBee(CC2530)模块硬件上设计有2个LED灯,用来编程调试使用。分别连接CC2530的P1_0、P、1_1两个IO引脚。从原理图上可以看出,2个LED灯共阳极,当P1_0、P1_1引脚为低电平时候,LED灯点亮。SampleApp实验简介SampleApp实验是协议栈自带的ZigBee无线网络自启动(组网)样例,该实验实现的功能主要是协调器自启动(组网),节点设备自动入网。之后两者建立无线通讯,数据的发送主要有2中方式,一种为周期定时发送信息(本次实验采用该方法测试),另一种需要通过按键事件触发发送FLASH信息。接下来我们分析发送periodic信息流程(发送按键事件flash流程略)Periodic消息是通过系统定时器开启并定时播送到group1出去的,因此在SampleApp_ProcessEvent事件处理函数中有如下定时器代码:caseZDO_STATE_CHANGE:SampleApp_NwkState=(devStates_t)(MSGpkt->hdr.status);if((SampleApp_NwkState==DEV_ZB_COORD)||(SampleApp_NwkState==DEV_ROUTER)||(SampleApp_NwkState==DEV_END_DEVICE)){//Startsendingtheperiodicmessageinaregularinterval.//参加网络后的功能添加在此;osal_start_timerEx(SampleApp_TaskID,SAMPLEAPP_SEND_PERIODIC_MSG_EVT,SAMPLEAPP_SEND_PERIODIC_MSG_TIMEOUT);//定时发送消息}else{//Deviceisnolongerinthenetwork}break;当设备参加到网络后,其状态就会变化,对所有任务触发ZDO_STATE_CHANGE事件,开启一个定时器。当定时时间一到,就触发播送periodic消息事件,触发事件SAMPLEAPP_SEND_PERIODIC_MSG_EVT,相应任务为SampleApp_TaskID,于是再次调用SampleApp_ProcessEvent()处理SAMPLEAPP_SEND_PERIODIC_MSG_EVT事件,该事件处理函数调用SampleApp_SendPeriodicMessage()来发送周期信息。if(events&SAMPLEAPP_SEND_PERIODIC_MSG_EVT){//SampleApp_SendPeriodicMessage();//去掉,这个是实现周期发送播送消息//Setuptosendmessageagaininnormalperiod(+alittlejitter)osal_start_timerEx(SampleApp_TaskID,SAMPLEAPP_SEND_PERIODIC_MSG_EVT,(SAMPLEAPP_SEND_PERIODIC_MSG_TIMEOUT+(osal_rand()&0x00FF)));return(events^SAMPLEAPP_SEND_PERIODIC_MSG_EVT);//returnunprocessedevents}MT层串口通讯 协议栈将串口通讯局部放到了MT层的MT任务中去处理了,因此我们在使用串口通讯的时候要在编译工程〔通常是协调器工程〕时候在编译选项中参加MT层相关任务的支持:MT_TASK,ZTOOL_P1或ZAPP_P1。在definedsymbols里面添加HAL_UART=TRUE关于无线组网实验关键代码分析voidSampleApp_SendPeriodicMessage(void){charbuf[]="~HELLO!~";AF_DataRequest(&SampleApp_Periodic_DstAddr,&SampleApp_epDesc,SAMPLEAPP_PERIODIC_CLUSTERID,8,(unsignedchar*)buf,&SampleApp_TransID,AF_DISCV_ROUTE,AF_DEFAULT_RADIUS);} 这个函数是终端节点要完成的功能,通过上面对周期事件的分析,可以知道这个函数是会被周期调用的,通过AF_DataRequest()向协调器周期发送播送字符串“~HELLO!~”uint16SampleApp_ProcessEvent(uint8task_id,uint16events){afIncomingMSGPacket_t*MSGpkt;(void)task_id;//Intentionallyunreferencedparameterif(events&SYS_EVENT_MSG){MSGpkt=(afIncomingMSGPacket_t*)osal_msg_receive(SampleApp_TaskID);while(MSGpkt){switch(MSGpkt->hdr.event){//ReceivedwhenakeyispressedcaseKEY_CHANGE:SampleApp_HandleKeys(((keyChange_t*)MSGpkt)->state,((keyChange_t*)MSGpkt)->keys);break;//Receivedwhenamessagesisreceived(OTA)forthisendpointcaseAF_INCOMING_MSG_CMD:SampleApp_MessageMSGCB(MSGpkt);break;;//ReceivedwheneverthedevicechangesstateinthenetworkcaseZDO_STATE_CHANGE:SampleApp_NwkState=(devStates_t)(MSGpkt->hdr.status);if((SampleApp_NwkState==DEV_ZB_COORD)||(SampleApp_NwkState==DEV_ROUTER)||(SampleApp_NwkState==DEV_END_DEVICE)){//Startsendingtheperiodicmessageinaregularinterval.HalLedSet(HAL_LED_1,HAL_LED_MODE_ON);osal_start_timerEx(SampleApp_TaskID,SAMPLEAPP_SEND_PERIODIC_MSG_EVT,SAMPLEAPP_SEND_PERIODIC_MSG_TIMEOUT);}else{//Deviceisnolongerinthenetwork}break;default:break;}osal_msg_deallocate((uint8*)MSGpkt);//ReleasethememoryMSGpkt=(afIncomingMSGPacket_t*)osal_msg_receive(SampleApp_TaskID);//Next-ifoneisavailable}return(events^SYS_EVENT_MSG);//returnunprocessedevents}//Sendamessageout-Thiseventisgeneratedbyatimer//(setupinSampleApp_Init()).if(events&SAMPLEAPP_SEND_PERIODIC_MSG_EVT){SampleApp_SendPeriodicMessage();//Sendtheperiodicmessage//Setuptosendmessageagaininnormalperiod(+alittlejitter)osal_start_timerEx(SampleApp_TaskID,SAMPLEAPP_SEND_PERIODIC_MSG_EVT,(SAMPLEAPP_SEND_PERIODIC_MSG_TIMEOUT+(osal_rand()&0x00FF)));return(events^SAMPLEAPP_SEND_PERIODIC_MSG_EVT);//returnunprocessedevents}return0;//Discardunknownevents} SampleApp_ProcessEvent()函数为应用层事件处理函数,当接收到网络数据〔即发生AF_INCOMING_MSG_CMD事件〕时,会调用SampleApp_MessageMSGCB(MSGpkt);处理函数,现在来分析这个函数voidSampleApp_MessageMSGCB(afIncomingMSGPacket_t*pkt){uint16flashTime;unsignedchar*buf;switch(pkt->clusterId){caseSAMPLEAPP_PERIODIC_CLUSTERID://播送消息的处理//调用HalUARTWrite函数向上位机发送接收到的字符。//HalLedBlinkLED灯闪烁函数break;caseSAMPLEAPP_FLASH_CLUSTERID:flashTime=BUILD_UINT16(pkt->cmd.Data[1],pkt->cmd.Data[2]);HalLedBlink(HAL_LED_4,4,50,(flashTime/4));break;}} 这个函数是协调器要完成的工作,对终端发过来的消息进行格式转换后发给串口终端。更详细的处理流程。增加内容:终端节点按键S1连接在P1_6引脚上,请修改按下按键后发送播送消息,LED2,协调器接收到LED2后,让LED2闪烁,并把接收到的字符发送到PC机上。实验五基于Z-Stack的串口控制LED灯实验环境硬件:ZigBee(CC2530)模块(两个),ZigBee下载调试板,USB仿真器,PC机。软件:IAREmbeddedWorkbenchforMCS-51ZStack-2.3.0-1.4.0协议栈二、实验内容学习TIZStack2007协议栈内容,掌握CC2530模块无线组网原理及过程。有关Z-Stack2007协议栈的具体内容,请参考附录中相关说明及TI官方文档。使用IAR开发环境设计程序,ZStack-2.3.0-1.4.0协议栈源码例程SampleApp工程根底上,实现协调器接收到来自上位机串口助手的消息后,向终端节点发送组播或播送消息,终端节点接受消息如0x01led1亮,0x02led2亮。实验原理ZigBee(CC2530)模块LED硬件接口图3.1.1LED硬件接口ZigBee(CC2530)模块硬件上设计有2个LED灯,用来编程调试使用。分别连接CC2530的P1_0、P、1_1两个IO引脚。从原理图上可以看出,2个LED灯共阳极,当P1_0、P1_1引脚为低电平时候,LED灯点亮。3.2串口简介串行接口((SerialInterface)是指数据一位一位地顺序传送,其特点是通信线路简单,只要一对传输线就可以实现双向通信,从而大大降低了本钱,特别适用于远距离通信,但传送速度较慢。一条信息的各位数据被逐位按顺序传送的通讯方式称为串行通讯。串行通讯的特点是:数据位的传送,按位顺序进行,最少只需一根传输线即可完成;本钱低但传送速度慢。串行通讯的距离可以从几米到几千米;根据信息的传送方向,串行通讯可以进一步分为单工、半双工和全双工三种。串口在嵌入式开发中非常重要,一般都要使用串口通讯、调试,所以学会串口使用也是必须的。实际上这个实验非常简单,和上个实验大局部一样,增加三个语句就可使串口工作。3.3.实验详解:使用串口步骤:workspace目录下比拟重要的两个文件夹分别是Zmain和App。我们开发主要在App文件夹进行,这也是用户自己添加自己代码的地方。主要修改SampIeApp.c和SampIeApp.h即可,如果增加传感器那么增加相应的模块驱动到App里面,在SampIeApp.c中调用就行。1串口初始化第一步:串口初始化,串口初始化相信大家很熟悉,就是配置串口号、波特率、校验位、数据位、停止位等等。在根底实验我们都是配置好存放器然后使用。现在我们在workspace下找到HAL\Target\CC2530EB\drivers的hal_uart.c文件,我们可以看到里面已经包括串口初始化、发送、接收等函数,全都封装好了;我们只需根据自己需要修改相关配置。浏览一下关于串口的操作函数还是挺全的。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年高考物理复习:摩擦力(含解析)
- 2025年高考历史一轮复习考点巩固卷:中华民族的抗日战争和人民解放战争(解析版)
- 2024年领军高考政治一轮复习专题15我国政府受人民的监督高效演练含解析
- 山东省烟台市2024-2025学年高一上学期期末考试历史试题(原卷版+解析版)
- 2025-2030年中国PE塑料软管数据监测研究报告
- 2025-2030年中国柏油/不干胶清洁剂数据监测研究报告
- 2025年高中化学基本概念知识点+常见化学气体性质归纳
- 能源行业-能源工程师个人简历
- 部编版语文二年级下册第三单元达标测试卷(含答案)
- 八年级上册英语教案 Unit 1 Where did you go on vacation?Section B 3a-Self Check(表格式)
- 《干眼诊断和治疗》
- 报价单模板完整版
- 2022年水域救援考试题库(含答案)
- GB/T 18658-2018摆锤式冲击试验机间接检验用夏比V型缺口标准试样
- 罚款单的模板
- GB 16899-2011自动扶梯和自动人行道的制造与安装安全规范
- 宏观经济学 布兰查德第六版 第6章劳动力市场
- 2022年江西建设职业技术学院单招语文试题及答案解析
- 高中信息技术《人工智能》优质教学课件
- 99S203 消防水泵接合器安装图集
- 拼音田字格(A4 word 打印版)
评论
0/150
提交评论