您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业文化 > 无线传感器网络技术实验指导书(苏明霞)
1实验一外部中断实验1.实验环境硬件:ZigBee(CC2530)模块,ZigBee下载调试板,USB仿真器,PC机。软件:IAREmbeddedWorkbenchforMCS-512.实验目的阅读ZigBee2530开发套件ZigBee模块硬件部分文档,熟悉ZigBee模块按键接口中断使用方式。使用IAR开发环境设计程序,利用CC2530的电源管理控制寄存器控制系统工作状态。3.实验原理3.1硬件接口原理按键接口,如图3.1.1所示。图3.1.1CC2530开发板有三个按键,一个复位按键。其余两个按键可以通过编程进行控制。当按键按下时,相应的管脚输出低电平。在此我们采用下降沿触发中断的方式来检测是否有按键按下。2ZigBee(CC2530)模块LED硬件接口图3.1.2LED硬件接口CC2530相关寄存器图3.1.2P1寄存器图3.1.3P1SEL寄存器图3.1.4P1DIR寄存器图3.1.5P1INP寄存器3图3.1.6P2INP寄存器图3.1.7PICTL寄存器图3.1.8P1IEN寄存器4图3.1.9IEN2寄存器4、实验内容按键按下一次,led1亮,led2灭。按键按下2次,led1灭,led2亮。按键按下3次,都亮。按键按下4次,都灭。下降沿触发中断。5、注意事项1、实验前,请正确安装RF2530模块,注意其丝印方向应与底板丝印方向一致,严禁反接;2、实验过程中,严禁带电插拨器件,防止损坏电路;3、实验过程中,严禁用手触摸裸露的器件特别是芯片,防止造成短路或损坏芯片;4、所有模块出厂前均已调试完毕,除非有特别说明,否则不建议自行对电路中可调部分进行调节。56、实验步骤1、将一个RF2530模块插入到WSN通用底板的相应位置。2、zigbee多功能仿真器的一端通过10pin下载线接到WSN通用底板的JTAG接口上,另一端通过USB线接到PC机上,并通过SmartRFFlashProgrammer软件正确下载自己编写的实验源码。3、通过USB外接电源(或锂电池BT)给WSN通用底板供电并将电源开关拨至USB供电(或锂电池BT供电)的位置,程序自动运行,可以看到WSN通用底板上的6个LED间歇的亮灭。4、实验完毕后,关闭电源,各模块放回原位。7、程序流程图请在实验报告上详细写出。6实验二串口通信实验1.实验环境硬件:ZigBee(CC2530)模块,ZigBee下载调试板,USB仿真器,PC机。软件:IAREmbeddedWorkbenchforMCS-512.实验目的阅读ZigBee2530开发套件ZigBee模块硬件部分文档,熟悉ZigBee模块硬件接口使用IAR开发环境设计程序,利用CC2530的串口0对板载LED灯进行控制3.实验原理3.1硬件接口原理ZigBee(CC2530)模块LED硬件接口图3.1.1LED硬件接口ZigBee(CC2530)模块硬件上设计有2个LED灯,用来编程调试使用。分别连接CC2530的P1_0、P1_1两个IO引脚。从原理图上可以看出,2个LED灯共阳极,当P1_0、P1_1引脚为低电平时候,LED灯点亮。CC2530IO相关寄存器7表3.1.2P1寄存器表3.1.3P1DIR寄存器以上图表列出了关于CC2530处理器的P1IO相关寄存器,其中只用到了P1和P1DIR两个寄存器的设置,P1寄存器为可读写的数据寄存器,P1DIR为IO输入输出选择寄存器,其他IO寄存器的功能,使用默认配置。详情请用户参考CC2530的芯片手册。89表3.1.4CLKCONCMD和CLKCONSTA寄存器10表3.1.5SLEEPCMD和SLEEPSTA控制寄存器表3.1.6PERCFG寄存器11表3.1.7U0CSR寄存器表3.1.8U0GCR寄存器表3.1.9U0DBUF和U0BAUD寄存器12以上图表列举了和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软件正确下载自己编写的实验源码。133、通过USB外接电源(或锂电池BT)给WSN通用底板供电并将电源开关拨至USB供电(或锂电池BT供电)的位置,程序自动运行,可以看到WSN通用底板上的6个LED间歇的亮灭。4、实验完毕后,关闭电源,各模块放回原位。7、程序流程图请在实验报告上详细写出。14实验三人体传感器检测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代码分析(自己写)15实验四基于Z-Stack的无线组网实验1.实验环境硬件:ZigBee(CC2530)模块(两个),ZigBee下载调试板,USB仿真器,PC机。软件:IAREmbeddedWorkbenchforMCS-51ZStack-2.3.0-1.4.0协议栈2.实验内容学习TIZStack2007协议栈内容,掌握CC2530模块无线组网原理及过程。有关Z-Stack2007协议栈的具体内容,请参考附录中相关说明及TI官方文档。使用IAR开发环境设计程序,ZStack-2.3.0-1.4.0协议栈源码例程SampleApp工程基础上,实现无线组网及通讯。即协调器自动组网,终端节点自动入网后,LED1开始点亮,并发送广播信息“LED2”,协调器接收到消息后将LED2闪烁,并将数据通过串口发送给PC计算机。3.实验原理3.1ZigBee(CC2530)模块LED硬件接口图3.1.1LED硬件接口ZigBee(CC2530)模块硬件上设计有2个LED灯,用来编程调试使用。分别连接CC2530的P1_0、P、1_1两个IO引脚。从原理图上可以看出,2个LED灯共阳极,当P1_0、P1_1引脚为低电平时候,LED灯点亮。163.2SampleApp实验简介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()来发送周期信息。17if(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_TASK,ZTOOL_P1或ZAPP_P1。18在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);}19这个函数是终端节点要完成的功能,通过上面对周期事件的分析,可以知道这个函数是会被
本文标题:无线传感器网络技术实验指导书(苏明霞)
链接地址:https://www.777doc.com/doc-3260238 .html