基于MATLAB的温度检测系统设计.docx
- 文档编号:10071591
- 上传时间:2023-02-08
- 格式:DOCX
- 页数:21
- 大小:101.13KB
基于MATLAB的温度检测系统设计.docx
《基于MATLAB的温度检测系统设计.docx》由会员分享,可在线阅读,更多相关《基于MATLAB的温度检测系统设计.docx(21页珍藏版)》请在冰豆网上搜索。
基于MATLAB的温度检测系统设计
基于MATLAB的温度检测系统设计
成人教育学院
毕业设计论文
2012年6月
前言…………………………………………………………………………………3
1系统总体结构…………………………………………………………………4
2系统硬件…………………………………………………………………………4
2.1系统的硬件设计……………………………………………………………4
2.2AT89S52单片机实验开发板………………………………………………5
2.2.1AT89S52单片机介绍…………………………………………………6
2.2.2串行接口介绍…………………………………………………………8
2.3DS18B20传感器简介…………………………………………………………10
2.3.1DS18B20内部结构………………………………………………………10
2.3.2DS18B20的工作原理………………………………………………11
2.3.3DS18B20的指令系统…………………………………………………12
2.3.4DS18B20的通信协议…………………………………………………13
2.3.5DS18B20使用中注意事项……………………………………………14
2.3.6DS18B20与单片机的典型接口设计…………………………………15
3系统的软件设计……………………………………………………………16
3.1下位机程序设计……………………………………………………………16
3.2MATLAB程序设计…………………………………………………………17
3.2.1MATLAB串口通信技术…………………………………………………18
3.2.2MATLABGUI介绍………………………………………………………20
3.2.3GUI界面设计…………………………………………………………21
4系统调试………………………………………………………………………23
4.1下位机调试………………………………………………………………23
4.2串口调试………………………………………………………………23
4.3系统联调………………………………………………………………24
基于MATLAB的温度检测系统设计
前言
温度是工业控制中主要的被控参数之一,特别是在冶金、化工、建材、食品、机械、石油等工业中,具有举足重轻的作用。
传统靠人工控制的温度、湿度、液位等信号的测压力控系统,外围电路比较复杂,测量精度较低,分辨率不高,需进行温度校准非线性校准、温度补偿、传感器标定等;且它们的体积较大、使用不够方便,更重要的是参数的设定需要有其它仪表的参与,外界设备多,成本高,因而越来越适应不了社会的要求。
在对多类型、多通道信号同时进行检测和控制中,传统的测控系统能力有限。
如何将计算机与各种设施、设备结合,简化人工操作并实现自动控制,满足社会的需求,成为一个很迫切的问题。
温度检测是现代检测技术的重要组成部分,在保证产品质量、节约能源和安全生产等方面起着关键的作用。
随着电子技术和微型计算机的迅速发展,微机测量和控制技术得到了迅速的发展和广泛的应用。
单片机具有处理能力强、运行速度快、功耗低等优点,应用在温度测量与控制方面,控制简单方便,测量范围广,精度较高。
由单片集成电路构成的温度传感器的种类越来越多,测量的精度越来越高,响应时间越来越短,因其使用方便、无需变换电路等特点已经得到了广泛的应用,例如:
以前常用的AD590和LM35等,以及现在得到广泛应用的DSl820、DS1821和DS1620等。
本次毕业设计正是为了完成温度采集而设计的,而且采用了美国DALLAS公司生产的可组网数字式温度传感器DS18B20。
由于物体的性质与稳定有着非常密切的关系,因此在工农业生产中,经常会遇到温度的测量和控制问题,它对保证生产质量、提高生产效率、节约能源及促进国民经济的发展起着非常重要的作用。
新型数字化、网络化传感器在工程中的应用具有极其重要的意义。
这类传感器是各种参量送入计算机系统,进行智能监测、控制的最前端。
随着科技的发展,数字化、网络化传感器应用日益广泛,以其传统方式不可比拟的优势渐渐成为技术的趋势和主流。
近年来,利用智能化数字式温度传感器以实现温度信息的在线检测已成为温度检测技术的一种发展趋势。
数字化技术推动了信息化的革命,在传感器的器件结构上采用数字化技术,使信息的采集更加方便。
例如,对于温度信号采集系统,传统的模拟温度传感器多为铂电阻、铜电阻等。
每一个传输线至少有两根导线,带补偿接法需要三根导线。
如果对50路温度信号进行检测,就需要100根导线接到采集端口,然后还要经过电桥电路、信号放大、通道选择、AD转换等,才能将温度信号供计算机处理。
而DS18B20新型单总线数字温度传感器,采用3脚或8脚封装,从DS18B20读出或
图1总设计框图
写入数据仅需要一根I/O口线。
使得硬件电路结构简单,广泛使用于距离远,节点分布多的场合。
具有较强的推广应用价值。
1系统总体结构
本次设计的目的就是以数字传感器DS18B20作为前端,采集温度经过单片机处理后,再采用串口通信,在MATLAB环境下对数据进行分析与处理,将结果用图形显示并储存,完成人机交互过程。
系统总体设计如图1所示。
本系统的设计包括硬件和软件两大部分。
系统的硬件部分大致可分为四部分:
DS18B20温度采集部分、单片机处理部分、显示部分、与计算机串口通信部分。
系统的软件部分分为五大部分:
读取DS18B20的内部数据部分、单片机对温度的处理部分、数码显示部分、串口通信部分、MATLAB界面部分。
2系统硬件
2.1系统的硬件设计
在本设计提出在上位机MATLAB环境下,使用RS232串行接口实时接收。
该方法较之使用VC、VB高级语言编程,极大地缩减了开发时间,提高了开发效率。
系统主要由上位机PC机和下位机AT89S52部分。
上位机和下位机通过RS232进行通讯。
上位机负责数据处理和图形化显示,它是在MATLAB环境下进行的,应用了仪器控制工具箱中关于串行通信的函数,通过程序控制整个系统的工作并进行数据处理。
下位机负责数据采集和响应主机的控制处理信号。
本设计中,由DS18B20构成的单片机温度测量装置主要由四部成:
DS18B20温度传感器、AT89S52、显示模块和电源模块图2所示。
产品的主要技术指标:
①测量范围:
-55.0℃~+125.0℃,②测量精度:
0.1℃,③反应时间≤1.5s。
图2温度检测系统结构图
2.2AT89S52单片机实验开发板
该开发板可对ATMEL公司的89S5x系列ISP单片机AT89S51、AT89S52、AT89S53、AT89LS53、AT89S8252、AT89LS8252的DIP40封装的器件进行直接编程操作。
单片机开发板结构如图3。
图3AT89S5x单片机实验开发板整体结构
开发板的结构:
1CPU系统:
包括复位、时钟、在线编程电路及I/O引线插孔;
2串行接口:
采用232构成;
3显示模块:
采用串行显示,由六片74HC164和六个七段共阴数码管组成;
4模数转换模块:
采用ADC0809及外围器件,能实现8路八位的模数采集;
5数模转换模块:
采用串行D/A转换TLC5616,能实现10位的数模转换;
6LED显示模块:
由8个LED灯构成,其中3个红灯、2个黄灯、3个绿灯;
7单脉冲发生电路:
产生单个正或负脉冲;
8用户外接元件区:
方便用户外加少量外接元件进行实验。
本设计只用到CPU系统,串行接口,显示模块。
CPU系统由AT89S52单片机组成。
串行接口是RS232串口。
下面对各个部分作一简单介绍。
2.2.1AT89S52单片机介绍
2.2.1.1单片机简介
Atmel公司的AT89S52芯片是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
AT89S52具有以下标准功能:
8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
2.2.1.2单片机引脚功能
AT89S52芯片采用40脚双列直插封装方式。
当然,不同芯片之间引脚功能也略有差异。
AT89S52单片机是高性能单片机,因为受到引脚数目的限制,有部分引脚具有第二功能。
引脚分配如图4所示。
图4AT89S52双列直插式封装和引脚分配
下面以双列直插式为例,介绍AT89S52单片机的引脚。
引脚可分为三个部分:
I/O口引脚、控制引脚和电源时钟引脚。
P0口:
P0口是一个8位漏极开路的双向I/O口。
作为输出口,每位能驱动8个TTL逻辑电平。
对P0端口写“1”时,引脚用作高阻抗输入。
当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。
在这种模式下,P0具有内部上拉电阻。
在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。
程序校验时,需要外部上拉电阻。
P1口:
P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。
对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如表1所示。
表1P1口的第二功能
P2口:
P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。
对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。
在这种应用中,P2口使用很强的内部上拉发送1。
在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。
在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。
P3口:
P3口是一个具有内部上拉电阻的8位双向I/O口,p2输出缓冲器能驱动4个TTL逻辑电平。
对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
P3口亦作为AT89S52特殊功能(第二功能)使用,如表2所示。
在flash编程和校验时,P3口也接收一些控制信号。
2.2.2串行接口介绍
2.2.2.1RS232C简介
计算机与计算机或计算机与终端之间的数据传送可以采用串行通讯和并行通讯二种方式。
由于串行通讯方式具有使用线路少、成本低,特别是在远程传输时,避免了多条线路特性的不一致而被广泛采用。
在串行通讯时,要求通讯双方都采用一个标准接口,使不同的设备可以方便地连接起来进行通讯。
RS-232-C接口又称EIARS-232-C是目前最常用的一种串行通讯接口。
它是在1970年由美国电子工业协会EIA联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。
它的全名是《数据终端设备DTE和数据通讯设备DCE之间串行二进制数据交换接口技术标准》该标准规定采用一个25个脚的DB25连接器,对连接器的每个引脚的信号内容加以规定,还对各种信号的电平加以规定。
1接口的信号内容:
实际上RS-232-C的25条引线中有许多是很少使用的,在计算机与终端通讯中一般只使用3~9条引线。
2接口的电气特性:
在RS-232-C中任何一条信号线的电压均为负逻辑关系。
即逻辑“1”,-5~-15V:
逻辑“0”,+5~+15V。
噪声容限为:
2V。
即要求接收器能识别低至+3V的信号作为逻辑“0”,高到-3V的信号作为逻辑“1。
3接口的物理结构RS-232-C接口连接器一般使用型号为DB-25的25芯插头座,通常插头在DCE端,插座在DTE端,一些设备与PC机连接的RS-232-C接口,因为不使用对方的传送控制信号,只需三条接口线,即“发送数据”、“接收数据”和“信号地”。
所以采用DB-9的9芯插头座,传输线采用屏蔽双绞线。
由于RS-232-C接口标准出现较早,难免有不足之处,主要有以下四点:
1)接口的信号电平值较高,易损坏接口电路的芯片,又因为与TTL电平不兼容故需使用电平转换电路方能与TTL电路连接。
2)传输速率较低,在异步传输时,波特率为20Kbps。
3)接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种其地传输容易产生共模干扰,所以抗噪声干扰性弱。
4)传输距离有限,最大传输距离标准值为50英尺,实际上也只能用在50米左右。
2.2.2.2232芯片介绍
232是由德州仪器公司(TI)推出的一款兼容RS232标准的芯片。
由于电脑串口rs232电平是-10v+10v,而一般的单片机应用系统的信号电压是ttl电平0+5v,232就是用来进行电平转换的,该器件包含2驱动器、2接收器和一个电压发生器电路提供TIA/EIA-232-F电平。
该器件符合TIA/EIA-232-F标准,每一个接收器将TIA/EIA-232-F电平转换成5-VTTL/CMOS电平。
每一个发送器将TTL/CMOS电平转换成TIA/EIA-232-F电平。
主要特点:
1)单5V电源工作
2)LinBiCMOSTM工艺技术
3)两个驱动器及两个接收器
4)±30V输入电平
5)低电源电流:
典型值是8mA
6)符合甚至优于ANSI标准EIA/TIA-232-E及ITU推荐标准V.28
7)ESD保护大于MIL-STD-883(方法3015)标准的2000V
2.3DS18B20传感器简介
由DALLAS半导体公司生产的DS18B20型单线智能温度传感器,属于新一代适配微处理器的智能温度传感器。
与传统的热敏电阻相比,它能够直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。
其可以分别在93.75ms和750ms内完成9位和12位的数字量,最大分辨率为0.0625℃而且从DS18B20读出或写入DS18B20的信息仅需要一根口线(单线接口)写。
2.3.1DS18B20内部结构
DS18B20的外形及引脚功能说明:
图5为DS18B20引脚。
图5DS18B20底视图
1GND:
地。
2DQ:
单线运用的数据输入输出。
3VDD:
可选的电源引脚。
DS18B20利用Dallas的单总线控制协议,实现了利用单线控制信号在总线上进行通信。
由于所有的设备通过漏极开路端即DS18B20的DQ脚连在总线上,控制线需要一个上拉电阻大约5kΩ。
在这一总线系统中,微控制器控设备通过唯一的64位序列码识别和访问总线上的器件。
采用3脚PR35封装或8脚SOIC封装,其内部结构框图如图6所示。
64位ROM的结构开始8位是产品类型的
图6DS18B20内部结构
编号,接着是接着的48位是唯一的系列号,最后的8位是开始56位CRC。
64位ROM和ROM操作控制部分允许DS18B20作为一个单线器件工作并遵循单线协议。
直到ROM操作协议被满足DS18B20控制部分的功能是不可访问的。
单线总线主机必须首先操作五种ROM操作命令之一:
1)ReadROM读ROM,2MatchROM匹配ROM,3SearchROM搜索ROM,4SkipROM跳过ROM,或5AlarmSearch(告警搜索)。
在成功地执行了ROM操作序列之后,DS18B20特定的功能便可访问,然后总线上主机可提供六个存贮器和控制功能命令之一。
DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的EEP2ROM。
高速暂存RAM的为9字节的存储器,结构如表2所示。
表2DS18B20字节定义
其中1、2字节用来存放当前温度,1为低8位,2为高8位。
字节3、4用来预置报警温度的上下限,字节5用于配置寄存器,用于确定温度数据位数,字节6、7、8均为保留字节,字节9存放前8个字节循环冗余校验码。
2.3.2DS18B20的工作原理
DS18B20的测温原理如图7所示,图中低温度系数晶振的振荡频率受温度的影响很小用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数,进而完成温度测量。
计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55℃所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在-55℃所对应的一个基数值减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当
图7DS18B20的内部测温电路框图
减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。
图中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就是DS18B20的测温原理。
在DS18B20完成温度变换之后,温度值与贮存在TH和TL内的触发值相比较。
因为这些寄存器仅仅是8位,所以0.5℃位在比较时被忽略。
TH或TL的最高有效位直接对应于16位温度寄存器的符号位。
如果温度测量的结果高于TH或低于TL,那么器件内告警标志将置位。
每次温度测量更新此标志。
只要告警标志置位,DS18B20将对告警搜索命令作出响应。
这允许并联多个DS18B20,同时进行温度测量。
如果某处温度超过极限,那么可以识别出正在告警的器件并立即将其读出而不必读出非告警的器件。
2.3.3DS18B20的指令系统
读暂存存储器指令代码[BEh]
此命令读暂存存储器的内容。
读开始于字节0,并继续经过暂存存储器,直至第九个字节(字节8,CRC)被读出为止。
如果不是所有位置均可读,那么主机可以在任何时候发出一复位以中止读操作。
复制暂存存储器指令代码[48h]
此命令把暂存存储器复制入DS18B20的E2存储器,把温度触发器字节存贮入非易失性存储器,如果总线主机在此命令之后发出读时间片,那么只要DS18B20正忙于把暂存存储器复制入E2,它就会在总线上输出“0”当复制过程完成之后,它将返回“1”。
如果由寄生电源供电,总线主机在发出此命令之后必须能立即强制上拉至少10ms。
温度变换指令代码[44h]
此命令开始温度变换。
不需要另外的数据温度变换将被执行,接着DS18B20便保持在空闲状态。
如果总线主机在此命令之后发出读时间片,那么只要DS18B20正忙于进行温度变换,它将在总线上输出“0”;当温度变换完成时它便返回“1”。
如果由寄生电源供电,那么总线主机在发出此命令之后必须立即强制上拉至少2秒。
重新调出E2指令代码[B8h]
此命令把贮存在E2中温度触发器的值重新调至暂存存储器。
这种重新调出的操作在对DS18B20上电时也自动发生,因此,只要器件一接电,暂存存储器内就有有效的数据可供使用。
在此命令发出之后,对于所发出的第一个读数据时间片,器件都将输出其忙的标志“0”忙,“1”准备就绪。
读电源指令代码[B4h]
对于在此命令送至DS18B20之后所发出的第一读出数据的时间片,器件都会给出其电源方式的信号“0”寄生电源供电,“1”外部电源供电。
2.3.4DS18B20的通信协议
DS18B20器件要求采用严格的通信协议,以保证数据的完整性。
该协议定义了几种信号类型:
复位脉冲,应答脉冲时隙;写0,写1时隙;读0,读1时隙。
与DS18B20的通信,是通过操作时隙完成单总线上的数据传输。
发送所有的命令和数据时,都是字节的低位在前,高位在后。
1)复位和应答脉冲时隙
每个通信周期起始于微控制器发出的复位脉冲,其后紧跟DS18B20发出的应答脉冲,在写时隙期间,主机向DS18B20器件写入数据,而在读时隙期间,主机读入来自DS18B20的数据。
在每一个时隙,总线只能传输一位数据。
时序图见图8。
2)写时隙
当主机将单总线DQ从逻辑高拉到逻辑低时,即启动一个写时隙,所有的写时隙必须在60--120us完成,且在每个循环之间至少需要1us的恢复时间。
写0和写1时隙如图所示。
在写0时隙期间,微控制器在整个时隙中将总线拉低;而写1时隙期间,微控制器将总线拉低,然后在时隙起始后15us之释放总线。
时序图见图9。
3)读时隙
?
?
DS18B20器件仅在主机发出读时隙时,才向主机传输数据。
所以在主机发出读数据命令后,必须马上产生读时隙,以便DS18B20能够传输数据。
所有的读时隙至少需要60us,且在两次独立的读时隙之间,至少需要1us的恢复时间。
每个读时隙都由主机发起,至
少拉低总线1us。
在主机发起读时隙之后,DS18B20器件才开始在总线上发送0或1,若DS18B20发送1,则保持总线为高电平。
若发送为0,则拉低总线当发送0时,DS18B20在该时隙结束后,释放总线,由上拉电阻将总线拉回至高电平状态。
DS18B20发出的数据,在起始时隙之后保持有效时间为15us。
因而主机在读时隙期间,必须释放总线。
并且在时隙起始后的15us之内采样总线的状态。
时序图见图9。
图8复位和应答脉冲时隙
图9读写时序
2.3.5DS18B20使用中注意事项
DS18B20虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际应用中也应注意以下几方面的问题:
1)较小的硬件开销需要相对复杂的软件进行补偿,由于DS18B20与微处理器间采用串行数据传送,因此,在对DS18B20进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。
在使用PL/M、C等高级语言进行系统程序设计时,对DS18B20操作部分最好采用汇编语言实现。
2)在DS18B20的有关资料中均未提及单总线上所挂DS182B0数量问题,容易使人误认为可以挂任意多个DS18B20,在实际应用中并非如此。
当单总线上所挂DS18B20超过8个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 MATLAB 温度 检测 系统 设计