嵌入式温度采集系统.docx
《嵌入式温度采集系统.docx》由会员分享,可在线阅读,更多相关《嵌入式温度采集系统.docx(15页珍藏版)》请在冰豆网上搜索。
嵌入式温度采集系统
*******************
实践教学
*******************
兰州理工大学
计算机与通信学院
2014年春季学期
嵌入式系统开发技术课程设计
题 目:
嵌入式温度采集系统设计
专业班级:
姓 名:
学 号:
指导教师:
成 绩:
摘 要
本设计是基于嵌入式技术作为主处理器的温度采集系统,辅以单独的数据采集模块采集数据,实现了智能化的温度数据采集、传输、处理与显示等功能,并讨论了如何提高系统的速度、可靠性和可扩展性。
温度是表示物体冷热程度的物理量,微观上来讲是物体分子热运动的剧烈程度。
在整个宇宙当中,温度无处不存在。
湿度表示气体中的水蒸汽含量,有绝对湿度和相对湿度两种表示方法。
总之,环境温湿度的检测与调节仪器的设计和开发具有非常大的市场前景和实用价值。
嵌入式系统是一般由嵌入式微处理器,外围硬件设备,嵌入式操作系统,用户应用程序四个部分组成。
用于实现对其他设备的控制,监视或管理等功能。
嵌入式系统已经广泛已经广泛应用于科学研究,工业控制,军事技术,交通通信,医疗卫生,消费娱乐等领域,人们常用的手机,PDA,汽车,智能家电,GPS等均是嵌入式系统的典型代表。
本设计将其中对温湿度的读取是利用CC2530的I/O(P1.0和P1.1)模拟一个类IIC的过程。
对光照的采集使用内部的AIN0通道。
关键词:
温度,湿度,嵌入式,CC2530,SHT10
一、前 言 1
二、基本原理 2
2.1CC2530结构及实现原理 2
2.2 SHT10结构及实现原理 4
三、系统分析 7
3.1程序流程图 7
3.2软件子系统设计 8
四、实验结果及分析 11
4.1湿度采集 11
4.1.1湿度采集试验结果 11
4.1.2结果分析 11
4.2温度采集 12
4.2.1湿度采集实验结果 12
4.2.2结果分析 12
五、结论 13
六、参考文献 14
致谢 15
一、前 言
本设计将其中对温度的读取是利用CC2530的I/O(P1.0和P1.1)模拟一个类IIC的过程。
对光照的采集实用内部的AINO通道。
无线网络传感器是一种将传感器、控制器、计算能力、通信能力完美的结合于一身的嵌入式设备。
它们跟外界的物理环境交互,实时的采集信息,并且将收集到的信息通过无线传感器网络传送给远程用户。
无线网络传感器一般是由一个低功耗的微控制器(MCU)和若干个存储器、无线电/光通信装置、传感器等组件所集成的,通过传感器、动臂机构、以及通信装置和它们所处的外界物理环境进行交互。
一般说来,独立的传感器功能是非常有限的,但是如果将他们大量地分布到所需要检测的物理环境中,并组成一个无线传感网络,加上性能良好的软件系统平台,就能够完成强大的状态监测、实时跟踪、环境监测等功能。
随着微机系统和高集成低功耗数字设备的发展,小体积、低成本、低功耗的传感器节点将得以实现。
温度、湿度是工业农业生产不可缺少的因素,但传统的方法是用温度表、毛发湿度表、双金属式测量计等测试器材,通过人工进行检测,对不符合温度和湿度要求的库房进行通风、去湿和降温等工作。
随着生产的发展,一个低成本和具有较高精度的温度湿度测量仪在许多领域会代替人工操作,自动控制各种仪器调整环境温度湿度。
目前市场上普遍存在的温湿度检测仪器大都是温湿度分开测量,而且温湿度信息传递不及时,精度达不到要求,不利于控制者根据温度、湿度变化及时做出决定,为此,本设计开发了一种能够同时测量温湿度,并实时性高、精度高,能够方便扩展处理多点温湿度信息,并能进行温湿度控制的测控产品。
二、基本原理
2.1CC2530结构及实现原理
CC2530是基于2.4-GHzIEEE802.15.4、ZigBee和RF4CE上的一个片上系统解决方案。
其特点是以极低的总材料成本建立较为强大的网络节点。
CC2530芯片结合了RF收发器,增强型8051CPU,系统内可编程闪存,8-KBRAM和许多其他模块的强大的功能。
如今CC2530主要有四种不同的闪存版本:
CC2530F32/64/128/256,分别具有32/64/128/256KB的闪存。
其具有多种运行模式,使得它能满足超低功耗系统的要求。
同时CC2530运行模式之间的转换时间很短,使其进一步降低能源消
下图是CC2530的方框图,图中模块大致可以分为三类:
CPU和内存相关的模块;外设、时钟和电源管理相关的模块,以及无线电相关的模块。
图2.1CC2530方框图
图2.2 CC2530引脚图
利益:
●支持ZigBee/ZigbeePRO,ZigbeeRF4CE,6LoWPAN,WirelessHART及其他所有基于802.15.4标准的解决方案;
●卓越的接收机灵敏度和可编程输出功率;
●在接收、发射和多种低功耗的模式下具有极低的电流消耗,能保证较长的电池使用时间;
●一流的选择和阻断性能(50-dBACR)
应用:
●智能能源/自动化仪表读取
●远程控制
●居家及楼宇自动化
●消费类电子产品
●工业控制及监测
主要特点:
●高达256kB的闪存和20kB的擦除周期,以支持无线更新和大型应用程序
●8kBRAM用于更为复杂的应用和ZigBee应用
●可编程输出功率达+4dBm
●掉电模式下,在睡眠定时器运行时,仅有不到1uA的电流损耗
CC2530前瞻及应用
CC2530实施了IEEE802.15.4标准,因此它是一款通用性极强的芯片高级计量与ZigBee智能能源、家庭与适用于包括消费类电子与RF4CE远程控制、楼宇自动化、照明、工业控制与监控、保健与医疗等在内的许多市场。
CC2530搭配最新的ZigbeePRO协议栈以及我们的支持,到目前为止成为业界最佳的市场解决方案概念。
另一种基于IEEE的标准被称为RF4CE,最近在国外人气急升,由于拥有非视距操作,全球多家大型消费类电子公司合力推动RF远程控制技术进入普通家庭。
更大的遥控范围、双向确认通信等功能,因此RF4CE将会彻底改变您的家庭影院体验。
2.2 SHT10结构及实现原理
本课设将使用CC2530读取温湿度传感器SHT10的温度和湿度数据,并将采样到的数据转换然后再LCD显示。
其中对温湿度的读取是利用CC2530的I/O(P1.0和P1.1)模拟一个类IIC得过程。
SHT10是一款高度集成的温湿度传感器芯片,提供全标定的数字输出。
它采用专利的CMOSens技术,确保产品具有极高的可靠性与卓越的长期稳定性。
传感器包括一个电容性聚合体测湿敏感元件、一个用能隙材料制成的测温元件,并在同一芯片上,与14位的A/D转换器以及串行接口电路实现无缝连接。
温湿度探头直接使用IIC接口进行控制。
图2.3SHT10温湿度采集电路原理图
图2.4SHT10引脚图
SHT10引脚特性如下:
1.VDD,GNDSHT10的供电电压为2.4~5.5V。
传感器上电后,要等待11ms以越过“休眠”状态。
在此期间无需发送任何指令。
电源引脚(VDD,GND)之间可增加一个100nF的电容,用以去耦滤波。
2.SCK用于微处理器与SHT10之间的通讯同步。
由于接口包含了完全静态逻辑,因而不存在最小SCK频率。
3.DATA三态门用于数据的读取。
DATA在SCK时钟下降沿之后改变状态,并仅在SCK时钟上升沿有效。
数据传输期间,在SCK时钟高电平时,DATA必须保持稳定。
为避免信号冲突,微处理器应驱动DATA在低电平。
需要一个外部的上拉电阻(例如:
10kΩ)将信号提拉至高电平。
上拉电阻通常已包含在微处理器的I/O电路中。
向SHT10发送命令:
用一组“启动传输”时序,来表示数据传输的初始化。
它包括:
当SCK时钟高电平时DATA翻转为低电平,紧接着SCK变为低电平,随后是在SCK时钟高电平时DATA翻转为高电平。
后续命令包含三个地址位(目前只支持“000”),和五个命令位。
SHT10会以下述方式表示已正确地接收到指令:
在第8个SCK时钟的下降沿之后,将DATA拉为低电平(ACK位)。
在第9个SCK时钟的下降沿之后,释放DATA(恢复高电平)。
测量时序(RH和T):
发布一组测量命令(‘00000101’表示相对湿度RH,‘00000011’表示温度T)后,控制器要等待测量结束。
这个过程需要大约11/55/210ms,分别对应8/12/14bit测量。
确切的时间随内部晶振速度,最多有±15%变化。
SHTxx通过下拉DATA至低电平并进入空闲模式,表示测量的结束。
控制器在再次触发SCK时钟前,必须等待这个“数据备妥”信号来读出数据。
检测数据可以先被存储,这样控制器可以继续执行其它任务在需要时再读出数据。
接着传输2个字节的测量数据和1个字节的CRC奇偶校验。
uC需要通过下拉DATA为低电平,以确认每个字节。
所有的数据从MSB开始,右值有效(例如:
对于12bit数据,从第5个SCK时钟起算作MSB;而对于8bit数据,首字节则无意义)。
用CRC数据的确认位,表明通讯结束。
如果不使用CRC-8校验,控制器可以在测量值LSB后,通过保持确认位ack高电平,来中止通讯。
在测量和通讯结束后,SHTxx自动转入休眠模式。
通讯复位时序:
如果与SHTxx通讯中断,下列信号时序可以复位串口:
当DATA保持高电平时,触发SCK时钟9次或更多。
在下一次指令前,发送一个“传输启动”时序。
这些时序只复位串口,状态寄存器内容仍然保留。
三、系统分析
3.1程序流程图
图3.1程序流程图
3.2软件子系统设计
为了能够进行系统初始化.采用一个汇编文件做肩动代码,用它实现向量表的定义、堆栈初始化、系统变量初始化、中断系统初始化、I/O初始化、外同初始化、地址重映射等操作。
系统的初始化流程如图所示。
图3.2系统的初始化流程
给智能主板供电(USB外接电源或2节干电池)。
将一个无线节点模块插入到带LCD的智能主板的相应位置。
将温湿度及光电传感器模块插入到智能主板的传感及控制扩展口位置。
将CC2530仿真器的一端通过USB线(A型转B型)连接到PC机,另一端通过10Pin下载线连接到智能主板的CC2530JTAG口(J203)。
将智能主板上电源开关拨至开位置。
按下仿真器上的按钮,仿真器上的指示灯为绿色时,表示连接成功。
使用IAR7.51打开“…\OURS_CC2530LIB\lib10(HumiTempLight)\IAR_files”下的HumiTempLight.eww文件,下载运行程序。
观察LCD上温度、湿度和光照强度的变化。
用一个物体挡住光照传感器的光线,观察LCD上光照强度数据的变化。
向温湿度传感器吹一口气体,观察LCD上温湿度数据的变化。
代码清单:
voidmain()
{
intT;//定义T为温度变量
intH;//定义H为湿度变量
chars[16];
UINT8adc0_value[2];
floatnum=0;
SET_MAIN_CLOCK_SOURCE(CRYSTAL);//设置系统时钟源为32MHz晶体振荡器
GUI_Init();//GUI初始化
GUI_SetColor(1,0);//显示色为亮点,背景色为暗点
GUI_PutString5_7(25,6,"OURS-CC2530");//显示OURS-CC2530
GUI_PutString5_7(10,22,"Temp:
");
GUI_PutString5_7(10,35,"Humi:
");
GUI_PutString5_7(10,48,"Light:
");
LCM_Refresh();
while
(1)
{
th_read(&T,&H);//读取温度和湿度
sprintf(s,(char*)"%d%dC",((INT16)((int)T/10)),
((INT16)((int)T%10)));//将温度结果转换为字符串
GUI_PutString5_7(48,22,(char*)s);//显示结果
LCM_Refresh();
sprintf(s,(char*)"%d%d%C",((INT16)((int)H/10)),
((INT16)((int)H%10)));//将湿度结果转换为字符串
GUI_PutString5_7(48,35,(char*)s);//显示结果
LCM_Refresh();
/*AIN0通道采样*/
ADC_ENABLE_CHANNEL(ADC_AIN0);//使能AIN0为ADC输入通道
/*配置ADCCON3寄存器以便在ADCCON1.STSEL=11(复位默认值)且ADCCON1.ST=1时进行单一转换*/
/*参考电压:
AVDD_SOC引脚上的电压*/
/*抽取率:
512*/
/*ADC输入通道:
AIN0*/
ADC_SINGLE_CONVERSION(ADC_REF_AVDD|ADC_14_BIT|ADC_AIN0);
ADC_SAMPLE_SINGLE();//启动一个单一转换
while(!
ADC_SAMPLE_READY());//等待转换完成
ADC_ENABLE_CHANNEL(ADC_AIN0);//禁止AIN0
adc0_value[0]=ADCL;//读取ADC值
adc0_value[1]=ADCH;//读取ADC值
adc0_value[0]=adc0_value[0]>>2;
num=(adc0_value[1]*256+adc0_value[0])*3.3/8192;//有一位符号位,取2^13;
num/=4;
num=num*913;//转换为Lx
sprintf(s,(char*)"%d%d%d%dlx",((INT16)((int)num/1000)),((INT16)((int)num%1000/100)),
((INT16)((int)num%100/10)),((INT16)((int)num%10)));//将光照结果转换为字符串
GUI_PutString5_7(48,48,(char*)s);//显示结果
LCM_Refresh();
}
}
四、实验结果及分析
4.1湿度采集
4.1.1湿度采集试验结果
图4.1温度采集实验结果
4.1.2结果分析
各模块连接完成之后,供电。
在网关上面操作,得到如上结果,当改变外界湿度(如在湿度传感模块上哈气)时,界面上显示的曲线会改变。
4.2温度采集
4.2.1湿度采集实验结果
图4.2湿度采集实验结果
4.2.2结果分析
各模块连接完成之后,供电。
在网关上面操作,得到如上结果,当改变外界温度(如在温度传感模块上用手捂)时,界面上显示的曲线会改变。
五、结论
为期两周的课设结束了,通过本次课设,使用CC2530读取温湿度传感器STH10的温度和湿度数据,并通过CC2530内部的ADC得到光照传感器数据,最后将采集到的数据转换然后再LCD上显示。
温湿度数据的采集、传输以及处理,广泛应用于森林火灾的防范,粮仓的温湿度控制以及家庭智能化控制等领域内。
本次介绍了一种基于CC2530和数字温湿度传感器的温湿度采集系统。
除用于温度监测外,在系统中的ARM外围可接人控制电路、其他性能的传感器甚至摄像头等,还可以实现多种其他特殊需要的远程监测及控制,如水位监测、视频监控等,具有十分广阔的应用前景。
同时通过本次课程设计统综合训练,加深了我对所学过的各种理论数据的认识和理解,并在一定程度上掌握并会运用。
我还学会了把学到的知识用于解决实际问题,培养、加强锻炼了我的动手实践能力。
更为难得的是,在这次训练过程中,屡屡碰见一些问题,在解决这些问题的过程中,不断加强了我对嵌入式系统的理解。
对于一些自己不清楚,不明白但平时又很难发现的知识点有了一次全面的巩固与复习。
六、参考文献
[1]物联网创新实验套件实验指导书
[2]韩华峰,杜克明,孙忠富,赵伟,陈冉,梁聚宝.基于ZigBee网络的温室环境远程监控系统设计与应用[J].农业工程学报,2009,07:
158-16
[3]王振玲.基于ZigBee无线传感器网络的监控系统的设计与实现[D].河南师范大学,2012.
[4]衣翠平,柏逢明.基于ZigBee技术的CC2530粮库温湿度检测系统研究[J].长春理工大学学报(自然科学版),2011,04:
53-57.
[5]董建怀.基于CC2530的电流及温度监测系统的设计与实现[J].厦门理工学院学报. 2011(03)
[6]李志方,钟洪声.CC2530的分布式无线数据采集系统设计[J]. 单片机与嵌入式系统应用.2011(09)
[7]徐健,杨姗姗.基于CC2530的ZigBee协调器节点设计[J].西安工程大学,2012,5
[8]刘慧,王鸣.基于CC2530的温度监控系统设计[M].工业控制计算机,2012,4
[9]刘毅力,焦尚彬.基于CC2530无线传感网络系统的设计[M].现代电子技术,2013,2
致谢
在本次《嵌入式系统开发技术》课程设计中,我们嵌入式系统的理论部分有了更客观、更直接的认识,将课堂所学与实际联系起来,对嵌入式系统的开发设计流程、设计思路和设计方法有了深刻的印象,培养了我们开发集成系统的初步思想,对今后进一步深入研究嵌入式系统开发有重要的指导意义。
在这次实践中,我们都学到了许多东西,体会到了从书本学习与实际应用中的不同,这种感同身受必将对我们今后的学习与生活带来很大的帮助。
最后,感谢课程设计指导老师方君丽对我们的指导,还要感谢和我们一起进行讨论和研究的各位同学,这次课程设计的顺利完成离不开你们的帮助。