多点温度测量系统Word下载.docx
《多点温度测量系统Word下载.docx》由会员分享,可在线阅读,更多相关《多点温度测量系统Word下载.docx(12页珍藏版)》请在冰点文库上搜索。
![多点温度测量系统Word下载.docx](https://file1.bingdoc.com/fileroot1/2023-5/9/70a17788-b11c-4e9b-ab43-3451f1ddbdaf/70a17788-b11c-4e9b-ab43-3451f1ddbdaf1.gif)
(1)、基本要求
温度范围室温—90度以上,精度0.5度以上,地点能分辨。
(2)、发挥部分
测量处与显示端能实现无线通信,某点处温度有变化时有报警。
地点多、显示内容多,精度高、通信远。
1.2设计分析
根据题意,系统可分为五个部分:
外部温度检测,并能将数据通过无线发送出来;
主控制台;
外部显示与报警;
外部设置数据手动输入;
通过上位机实现数据在PC机上的显示。
得到系统的结构框图如图1.2.1:
外部检测点C
图1.2.1
1.3各模块的选择和论证
1.3.1主控制器的选择
方案一:
采用51系列单片机。
如STC89S52,它能用I/O口模拟SPI控制无线模块、普通液晶显示、以及温度传感器等,但该芯片运行速度较慢,并且Flash及RAM容量较小。
方案二:
采用ATmega16L作为主控制器,它具有丰富的外设,能很好的控制我们所需用到的模块,自带可工作于主机/从机模式的SPI串行接口能很好地控制无线模块,并且运行速度是STC89C52系列单片机的10倍,具有16K字节的系统内可编程Flash,512字节的EEPROM,方便处理终端显示界面,ATmega16L工作电压2.7-5.5V;
正常模式1.1mA,空闲模式0.35mA功耗等特性。
综上:
我们选择ATmega16L作为主控制芯片,它能提供给我们更为方便、灵活的编程空间及实时温度无线传输速度的要求。
1.3.2外部温度采集控制器的选择
采用STC89C52来控制,它完全能实现温度检测控制和无线数据发送的功能,但它体积较大,速度较慢。
使用STC12C2052AD来控制,共20个管脚,它不但能实现我们所需实现的温度采集,无线传输数据的功能,并且体积较小,运行速度是STC89C52的10倍,自带硬件SPI及AD,价格也比较便宜。
我们选择STC12C2052AD作为外部地点温度采集控制器它体积小、价格便。
1.3.3温度传感器的选择
热电阻测温。
热电阻测温是基于金属导体的电阻值随温度的增加而增加这一特性来进行温度测量的。
热电阻体的引出线等各种导线电阻的变化会给温度测量带来影响。
为消除引线电阻的影响同般采用三线制或四线制。
它的主要特点是测量精度高,性能稳定。
它的缺点是金属导体材料易受环境影响而改变其并改变电阻与温度之间的关系。
热电偶传感器测温。
将两种不同材料的导体或半导体A和B焊接起来,构成一个闭合回路。
当导体A和B的两个执着点1和2之间存在温差时,两者之间便产生电动势,因而在回路中形成一个大小的电流,这种现象称为热电效应。
热电偶就是利用这一效应来工作的。
热电偶是工业上最常用的温度检测元件之一。
其优点是:
①测量精度高。
因热电偶直接与被测对象接触,不受中间介质的影响。
②测量范围广。
常用的热电偶从-50~+1600℃均可边续测量,某些特殊热电偶最低可测到-269℃(如金铁镍铬),最高可达+2800℃(如钨-铼)。
③构造简单,使用方便。
热电偶通常是由两种不同的金属丝组成,而且不受大小和开头的限制,外有保护套管,用起来非常方便。
由热电偶测温原理知道,只今当热电偶冷端温度保持不变时,热电动势才是被测温度的单位函数。
在实际应用时,由于热电偶的冷端离热端很近,冷瑞又暴露在空间,容易受到周围环境温变化的影响,因而冲端温度难以保持恒定。
为此必须进行冷端温度补偿处理
方案三:
采用集成温度传感器DS18B20,测量温度范围为-55°
C~+125°
C,在-10~+85°
C范围内,精度为±
0.5°
C。
现场温度直接以“一线总线”的数字方式传输,连接方便,占用口线少,大大提高了系统的抗干扰性。
适合于恶劣环境的现场温度测量,如:
环境控制、设备或过程控制、测温类消费电子产品等。
DS18B20可以程序设定9~12位的分辨率,精度为±
可选更小的封装方式,更宽的电压适用范围。
分辨率设定,及用户设定的报警温度存储在EEPROM中,掉电后依然保存。
采用集成温度传感器DS18B20,具有硬件连接的简单性和软件编程的灵活性,且温度测量准确,抗环境干扰性强等诸多优点,因此选用集成温度传感器DS18B20作为系统的温度测量工具。
1.3.4终端显示模块的选择
使用普通12864液晶显示,它控制简单,但液晶分辨率很低,只有两种颜色,而且功耗很大。
使用北京迪文公司生产的迪文液晶,它的主要特点有:
简单的串行接口,最小系统与用户的连线只需要4根线(VCC\GND\RXD\TXD),使用异步、全双工串口与控制器通信,不需额外电路;
统一的指令集和硬件接口的兼容设计非常容易;
具有65k真彩色显示,内部存储空间,海量的用户界面,极大简化了用户界面开发,提高了开发效能;
此外,它还具有低功耗、可靠性高等特点。
考虑到以上所说的迪文液晶的优势,我们选择迪文液晶作为我们的终端界面显示屏。
1.3.5无线模块的选择
nRF905可以自动完成处理字头和CRC(循环冗余码校验)的工作,可由片内硬件自动完成曼彻斯特编码/解码,使用SPI接口与微控制器通信,配置非常方便,其功耗非常低,以-10dBm的输出功率发射时电流只有11mA,在接收模式时电流为12.5mA。
nRF905单片无线收发器工作由一个完全集成的频率调制器,一个带解调器的接收器,一个功率放大器,一个晶体震荡器和一个调节器组成。
ShockBurst工作模式的特点是自动产生前导码和CRC,可以很容易通过SPI接口进行编程配置。
nRF24.L01是一款新型单片射频收发器件,工作于2.4GHz~2.5GHzISM频段。
内置频率合成器、功率放大器、晶体振荡器、调制器等功能模块,并融合了增强型ShockBurst技术,其中输出功率和通信频道可通过程序进行配置。
nRF24L01功耗低,在以-6dBm的功率发射时,工作电流也只有9mA;
接收时,工作电流只有12.3mA,多种低功率工作模式(掉电模式和空闲模式)使节能设计更方便。
考虑我们当时的实际情况,由于我们拥有nRF24L01模块,所以我们选择nRF24L01。
1.3.6按键输入部分的选择
使用4*4矩阵键盘,它控制简单,键盘扫描比较复杂,扩展性不强并且占用资源较多。
使用小巧的红外遥控遥控器,使用SM1838集成红外接收头,只需占用一个外部中断口即可,能方便用户在不同的范围内对系统进行输入控制,使用灵活、方便。
控制距离10米内有效,方便用户近距离基本输入控制。
为更加人性化设计,我们选择红外遥控器作为输入控制部分。
1.3.7时钟芯片的选择
使用DS12C887作为时钟芯片,内部自带电池及晶振,能很好实现全日历显示功能,该芯片能在掉电的情况下继续运行10年,具有精度高等特点。
但它的体积却大,价格较贵,并且占用I/O口13个。
使用DS1302作为时钟芯片,该芯片在掉电的情况下不能继续运行。
它可以对年、月、日、周、日、时、分、秒进行计时,且具有闰年补偿等多种功能。
它也具有较高的精度,体积小,价格非常便宜,并且硬件结构非常简单,可工作于SPI接口方式,也可用普通3个I/O口控制即可,但为了掉电显示,需要外加电池及晶振。
考虑到精简的硬件结构及价格等我们选择DS1302时钟芯片。
1.3.8PC上位机通信硬件实现方式选择
使用PDIUSBD12芯片实现与PC通信;
最高传输率可达12Mb/s
提供低速方式速率为1.5Mb/s,可工作于usb1.1协议规范,但应用相当复杂
必须对usb通信协议有较好的掌握,难度较大。
使用CH341T芯片方便usb转串口与PC机通信,硬件电路简单,波特率可达115200pb/s,用此波特率时完全可满足此温度采集系统速度要求,软件编程简单。
我们选择方案二CH341T芯片作为usb转串口芯片与PC机串口通信。
2.系统的硬件实现
根据题意,我们需要制作一个具有检测和监测功能的智能温度测量系统。
在设计中运用了检测技术、自动控制技术和电子技术。
系统分为外部检测、主控制台、上位机与PC机显示三大部分。
2.1外部检测部分
2.1.1温度测量电路
温度检测传感器我们采用DS18B20,DS18B20应用电路具体电路图如图2.1.1。
由于采用单总线器件,DS18B20的硬件电路连接很简单,1脚为接地端,2脚DQ为数据输入/输出脚,它与TTL电平兼容,与单片机的I/O口线相接,同时要接4.7KΩ左右的上拉电阻;
3脚VDD,可接电源,也可接地。
因为每只DS18B20都可以选择两种供电方式,即数据总线供电方式和外部总线供电方式。
采用数据总线供电方式时VDD接地,可以节省一根传输线,但完成温度测量的时间较长;
采用外部供电方式则把VDD接+5V,虽然多用一根导线,但测量速度较快。
图2.1.1DS1820应用电路
2.1.2外部控制与数据发送电路
外部我们使用STC12C2052AD单片机作为辅助控制,它体积小,仅有20个引脚,STC12C2052AD的引脚图如图2.1.2。
结合nRF24L01无线模块的应用电路如图2.1.3。
图2.1.2
图2.1.3
2.2主控制台电路
我们使用ATmega16作为主控芯片,ATmega16有如下特点:
16K字节的系统内可编程Flash(具有同时读写的能力,即RWW),512字节EEPROM,1K字节SRAM,32个通用I/O口线,32个通用工作寄存器,用于边界扫描的JTAG接口,支持片内调试与编程,三个具有比较模式的灵活的定时器/计数器(T/C),片内/外中断,可编程串行USART,有起始条件检测器的通用串行接口,8路10位具有可选差分输入级可编程增益(TQFP封装)的ADC,具有片内振荡器的可编程看门狗定时器,一个SPI串行端口,以及六个可以通过软件进行选择的省电模式。
主控制部分的电路图如图2.2.1。
使用红外遥控器作为键盘输入,红外接收头使用的SM1838,红外接收部分的电路如图2.2.2。
图2.2.1
图2.2.2
2.3上位机与PC机显示电路
各地温度采集点通过nRF24L01传至usb转串口转接板与PC机通信,采用CH341T芯片可实现usb转串口,电路图如图2.3.1。
PC端用vc++语言采用MFC编写。
图2.3.1
2.4DS1302时间显示电路
DS1302是DALLAS公司推出的涓流充电时钟芯片内含有一个实时时钟/日历和31字节静态RAM通过简单的串行接口与单片机进行通信实时时钟/日历电路提供秒分时日日期月年的信息每月的天数和闰年的天数可自动调整时钟操作可通过AM/PM指示决定采用24或12小时格式DS1302与单片机之间能简单地采用同步串行的方式进行通信仅需用到三个口线1RES复位2I/O数据线3SCLK串行时钟时钟/RAM的读/写数据以一个字节或多达31个字节的字符组方式通信DS1302工作时功耗很低保持数据和时钟信息时功率小于1mW。
在此时间显示中,由于此Ds1302芯片不带星期及农历显示功能,为了更好地实现人性化人机交互界面,我们采用特殊算法,实现了农历显示及星期自动随日期改变而改变。
与ATmega16L电路图如图2.4.1所示。
图2.4.1
3系统的软件设计
在整个系统的设计中,仔细分析整体思路框架后,然后采用分模块调试逐一实现功能,再综合测试。
具体软件实现如下:
N
Y
(b)主程序流程图
4系统测试
4.1主要性能测试
为了确定系统的性能是否能满足设计要求,我们对系统的关键模块进行了测试和分析:
(1)我们对时间日期进行了测试,当年月日,时分秒改变后,星期数,农历日期随着我们设计的算法自动改变,经与万年历对照,完全准确无误。
有效时间年份为2000年至2099年。
当断开电源,测试断电3天后在系统自带电池下仍精确运行。
(2)对外部3个地点温度及本地温度进行实时监控测试,并设置温度报警上下限值,当3个地点温度任一地点温度达到上限或下限时,在PC上位机以及Dwin液晶显示终端能自动报警、提示所在地点情况,能实时分辨出各地点温度,可与显示终端本地温度比较差异。
当所在地点超出监控范围或出现异常情况时,在PC上位机以及Dwin液晶显示终端能实时显示各地失去监控提示。
在迪文显示终端上能很好地实时显示各地温度变化曲线。
温度精确度在0.5’C以内,测试范围为10—90’C。
(3)红外遥控操作整个系统有效范围为5米。
此系统运行稳定,经测试一直带电运行3天,仍然稳定工作。
4.2测试结果分析
(1)系统掉电运行3天后,实际测量时间与标准时间相差7s,误差原因为32.768M晶振有误差。
(2)由于无线模块是旧的,本身传输距离限制,实际3个地点无线通信空旷地测量距离为周围100米左右范围内有效。
(3)测量精度实际为0.5’C内,由于DS18B20本身存在一定误差及标准测量工具有误差等。
5自由发挥点
除了完成系统基本要求和发挥部分外,为了达到更加人性化系统设计:
(1)我们增加了时间日期显示,采用特殊算法使星期及农历显示随日期自动变化。
(2)我们使用65k真彩色终端迪文液晶设计了一个人性化的终端菜单显示界面,如显示各地温度实时变化曲线等。
(3)我们采用红外遥控作为输入控制方式操作整个系统。
(4)在迪文终端显示界面基础上并编写了PC上位机实时监测界面,通过自制usb转串口转接板与其通信。
6结论
通过各项测试及结果分析可知,此系统达到设计要求,在此过程中,我们发现并总结了以下一些注意的问题:
(1)无线模块nRF24L01传输距离受障碍物及电池电量的影响。
电量充足及空旷地传输效果更好。
(2)红外遥控操作整个系统时需对准红外接收头,近距离操作效果比较好。
(3)由于我们加入了迪文液晶人性化界面显示,要求芯片RAM及ROM有足够空间,ATmega16内部可编程Flash还是不够大,导致Flash已用完,更多扩展的部分和优化部分不能再加入系统。
另外优化速度,代码会超出Flash,我们最终选择优化代码,对于本系统,ATmega16速度很快,完全满足设计要求。
参考文献
[1]马潮.AVR单片机嵌入式系统原理与应用实践.北京:
北京航空航天大学出版社,2006.
[2](美)巴雷特,古尔.嵌入式C编程与AtmelAVR.北京:
清华大学出版社,2003.
[3]迪文HMI开发指南[EB/OL].,2008.
[4]nRF24L01开发文档[EB/OL].
[5]ATmega16DataSheet[EB/OL].