欢迎来到装配图网! | 帮助中心 装配图网zhuangpeitu.com!
装配图网
ImageVerifierCode 换一换
首页 装配图网 > 资源分类 > DOC文档下载
 

实验11 无线采集温度传感器

  • 资源ID:158208345       资源大小:1.83MB        全文页数:19页
  • 资源格式: DOC        下载积分:10积分
快捷下载 游客一键下载
会员登录下载
微信登录下载
三方登录下载: 微信开放平台登录 支付宝登录   QQ登录   微博登录  
二维码
微信扫一扫登录
下载资源需要10积分
邮箱/手机:
温馨提示:
用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

实验11 无线采集温度传感器

ZigBee实验十一无线采集温度11.1 实验简介对于温度传感器,主要原理就是将温度转化成为模拟量,再通过ADC将模拟信号转换成数字信号。对于CC2530芯片内部已经集成了ADC,该ADC 支持多达14 位的模拟数字转换,具有多达12 位的ENOB(有效数字位)。它包括一个模拟多路转换器,具有多达8 个各自可配置的通道;以及一个参考电压发生器。转换结果通过DMA 写入存储器。还具有若干运行模式。同时CC2530内部也集成了一温度传感器,可以通过配置寄存器,将温度传感器作为ADC的输入,这样CC2530就可以方便的使用温度传感器。在基础实验中,也用过了温度传感器,本实验主要是居于TI的协议栈进行的无线采集实验目的11.2 训练目的 12.2.1 通过本实验了解Z-STACK协议栈中的ADC采集的使用及相关寄存器的配置。11.3实验设备11.3.1 硬件:(1) ZIGBEE 调试底板2个:可调电阻ZigBee_DEBUG指示灯红外发射ZigBee复位ZigBee按键拨码开关节点按键复位传感器接口1J-LINK接口传感器接口3传感器接口2电源开关电源图11-1 ZIGBEE调试底板(2) UART转接板与转接线各1个:UART转接线转接串口输入,连接到ZIGBEE调试底板转接串口输出,连接到电脑串口图11-2 UART转接板与转接线(3) ZIGBEE仿真器1个;10PIN下载接口电源(上)和状态指示灯USB接口图11-3 ZIGBEE仿真器(4) ZIGBEE模块2个;图11-4 ZIGBEE模块(5) 电源2个图11-5 电源(6) 串口延长线1根图11-6 串口延长线(7) 硬件连接图连接电脑串口ZigBee调试底板与串口转接板连接电源连接电脑USBZIGBEE DeBug连接口图11-7 硬件连接11.3.2 软件(1) IAR Embedded Workbench for MCS-51 7.51A集成开发环境;(2) TI Z-STACK;(3) 仿真器驱动;(4) 串口调试助手。实验知识11.4 11.4.1 ADC输入除了输入引脚AIN0-AIN7,片上温度传感器的输出也可以选择作为ADC 的输入,用于温度测量。可通过配置寄存器TR0.ADCTM 和ATEST.ATESTCTRL去实现。 11.4.2 片内温度传感器的温度计算方法在CC2530的用户手册中没找到相关的温度计算方法,而在CC2430用户手册用,可以得到以下一个表格:在TI提供的官方例程中“SimpleSensorEB-Pro”中,得到这样的一段话:value ranges from 0 to 0x8000 indicating 0V and 1.25VVOLTAGE_AT_TEMP_ZERO = 0.743 V = 19477TEMP_COEFFICIENT = 0.0024 V/C = 62.9 /CThese parameters are typical values and need to be calibratedSee the datasheet for the appropriate chip for more detailsalso, the math below may not be very accurate可以知道以上的确实为CC2530的内部温度传感器的电压与温度的关系,从而可以得到计算温度的方法。实验步骤11.511.5.1 在开始本实验的仿真前,参看配套源资料中“关于节点板串口使用的统一说明”,先按照本说明去配置好串口,波特率38400,以便往下实验能正常使用串口。图11-8 节点板串口使用的统一说明11.5.2 启动IAR Embedded Workbench,打开对应配套实验源码中“路由器”的SampleApp.eww工程:图11-9 工程文件图11-10 打开工程界面11.5.3 编译链接程序代码Make,这一步可以省略,因为进行DeBug前,IAR软件会先编译再下载代码到目标板上去仿真,但对于编译检查错误,这一步也很有必要。如果正确编译后文件右侧的红星会消失。在Make之前,最好Clean一下,如下图所示:图11-11 编译链接代码文件红色星星编译后变没有了编译后生成图11-12 编译前后对比如果正确建立工程并正确配置了工程,则此时编译是无错误的,编译无错误如图 图11-13 编译链接无错误图11-14 编译连接有错误11.5.4 按照前面“实验设备”小节中的“硬件连接图”连接好硬件并打开电源,点击DEBUG按钮或者”Project->Debug”或者快捷键“Ctrl + D”进行程序下载并Debug。如有出错,请检查硬件连接或拔掉仿真器USB再重接图11-15 Debug 调试图11-16 程序正在下载到目标板11.5.5 正确进入DeBug界面,如下图:图11-17 仿真调试界面11.5.6 通过以上步骤已将路由器程序下载到节点,此时的节点叫“路由器”。卸下仿真器与“路由器”的连接线,使得“路由器”为一个单独的个体。再将仿真器与另外一个节点按照“硬件连接图”去进行连接。按“实验步骤”从头开始,将“协调器”程序下载到到节点,以得到一个节点为“协调器”,一个节点为“路由器”。图11-18 协调器与路由器11.5.7 此时“协调器”节点与“路由器”节点已经准备好。“协调器”则通过串口连接电脑,打印出收到的数据包。先让“协调器”在DEBUG状态下全速运行,再给“路由器”上电运行(注意:协调器要先于路由器运行,不然两个节点可能建立不了连接。如果“路由器”连接不到“协调器”,那么LED一直闪烁,闪烁周期大概1S)。11.5.8 在配套资料“提高实验”文件夹下找到“超级单片机工具软件.exe”,如果是WIN7系统,右键“以管理员身份运行”,选择电脑对应的端口,设置和程序对应的波特率“38400”,数据位“8”,停止位“1”,校验位“NONE”,然后点击“打开串口”图11-19 超级单片机工具软件图11-20 超级单片机工具软件界面11.5.9 按下“全速运行”按钮进行试验验证,与下文“实验验证”小节内容进行验证本实验结果步出函数步入函数单步运行复位全速运行按钮图11-21 调试功能按钮11.5.10 实验完毕。实验验证11.6 11.6.1 路由器是否每个1秒LED闪烁一下;11.6.2 查看协调器串口(串口调试助手)是否有温度数据上传显示。图11-22 实验结果验证实验部分参考程序解析(完整程序见源程序文件)11.7代码解释:11.7.1 路由器设计uint16 SampleApp_ProcessEvent( uint8 task_id, uint16 events )afIncomingMSGPacket_t *MSGpkt;if(events&SYS_EVENT_MSG)MSGpkt=(afIncomingMSGPacket_t *)osal_msg_receive(SampleApp_TaskID);while(MSGpkt)switch(MSGpkt->hdr.event) case AF_INCOMING_MSG_CMD:break; case ZDO_STATE_CHANGE:GenericApp_NwkState=(devStates_t)(MSGpkt->hdr.status);if(GenericApp_NwkState=DEV_ROUTER)osal_set_event(SampleApp_TaskID,SEND_DATA_EVENT);break;default:break;osal_msg_deallocate(uint8 *) MSGpkt);MSGpkt=(afIncomingMSGPacket_t *)osal_msg_receive(SampleApp_TaskID);return (events SYS_EVENT_MSG); if(events&SEND_DATA_EVENT)GenericApp_SendTheMessage();osal_start_timerEx(SampleApp_TaskID,SEND_DATA_EVENT,1000);return (eventsSEND_DATA_EVENT);return 0;参考注解:当路由器检测到网络并加入网络后即会发生ZDO_STATE_CHANGE事件,当系统检测到该事件时,启动SEND_DATA_EVENT事件,在SEND_DATA_EVENT事件中每个1000MS进行一次GenericApp_SendTheMessage()函数的调用。void GenericApp_SendTheMessage(void) int8 tvalue; uint8 datatemp5; tvalue=readTemp();datatemp0=tvalue/10+'0'datatemp1=tvalue%10+'0'datatemp2='C' AF_DataRequest( &SampleApp_Flash_DstAddr, &SampleApp_epDesc, SAMPLEAPP_FLASH_CLUSTERID, 3, datatemp, &SampleApp_TransID, AF_DISCV_ROUTE, AF_DEFAULT_RADIUS ); HalLedBlink(HAL_LED_1,0,50,500);参考注解:本函数的目的主要是调用readTemp()温度读取函数,将数据进行字符串转换后通过无线电发送出去。int8 readTemp(void) static uint16 reference_voltage; static uint8 bCalibrate=TRUE; uint16 value; int8 temp; ATEST=0x01; TR0|=0x01; ADCIF=0; ADCCON3=(HAL_ADC_REF_115V|HAL_ADC_DEC_256|HAL_ADC_CHN_TEMP); while(!ADCIF);ADCIF=0;value = ADCL >> 2; /ADCL寄存器低2位无效value |= (UINT16)ADCH) << 6);if(bCalibrate)reference_voltage=value;bCalibrate=FALSE;temp=22+(value-reference_voltage)/4);return temp; 参考注解:这个函数只要是开启AD采集,并将温度数值进行函数返回。11.7.2 协调器设计uint16 SampleApp_ProcessEvent( uint8 task_id, uint16 events ) afIncomingMSGPacket_t *MSGpkt; (void)task_id; / Intentionally unreferenced parameter if ( events & SYS_EVENT_MSG ) MSGpkt = (afIncomingMSGPacket_t *)osal_msg_receive( SampleApp_TaskID ); while ( MSGpkt ) switch ( MSGpkt->hdr.event ) / Received when a key is pressed / Received when a messages is received (OTA) for this endpoint case AF_INCOMING_MSG_CMD: SampleApp_MessageMSGCB( MSGpkt ); break; / Release the memory osal_msg_deallocate( (uint8 *)MSGpkt ); / Next - if one is available MSGpkt = (afIncomingMSGPacket_t *)osal_msg_receive( SampleApp_TaskID ); / return unprocessed events return (events SYS_EVENT_MSG); return 0;参考注解:协调器运行建网后,在等待事件的发生,当检测到AF_INCOMING_MSG_CMD(接收到无线数据)事件后,调用SampleApp_MessageMSGCB( MSGpkt )数据接收处理函数。void SampleApp_MessageMSGCB( afIncomingMSGPacket_t *pkt )switch(pkt->clusterId)case SAMPLEAPP_FLASH_CLUSTERID:HalUARTWrite(0,(uint8*)pkt->cmd.Data,3);HalUARTWrite(0,"n",1 );/换行break;参考注解:本函数将接收到的数据原封不动的通过串口发送出去。思考题1 修改程序,温度原始十六进制数据上传,并修改上传频率。19

注意事项

本文(实验11 无线采集温度传感器)为本站会员(无***)主动上传,装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知装配图网(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!