陕西理工学院毕业设计
绪论
在人类的生活环境中,温度扮演着极其重要的角色。特别是在冶金、医药、食品制造和化学制造业等行业尤其显得重要。在适当的温度下生产的产品质量、产量和合格率会大大的提高。有些药品的生产和存储要在很低的温度下进行;石油分馏的过程中在不同的温度下才能分离出汽油、柴油、煤油、硫化物;食品的制造和存储也要在特定的温度下才能保证质量。在农业大棚蔬菜和室内圈养牲畜对于环境温度的要求也很高,大棚蔬菜的温度基本上要保证在20~30℃。鸡舍的育雏期温度要控制在36℃左右。随着社会生产力和科学技术的发展,工农业生产和生活中对于温度的要求会越来越高,因此能够检测温度变化的温度检测设备出现在人们的视线中。它能使人们能及时看到温度变化的第一手资料,提示温度变化情况,协助人们及时调整,让温度控制更好的服务于整个社会和人们的生活。
近年来随着电子信息技术的飞速发展,人类的生活发生了很大的变化,尤其是随着大规模集成电路的出现,微型计算机应运而生,让人类社会进入了一个崭新的时代。但是因为微型计算机成本较高,在很多工业控制中并不是最好的选择。所以单片机因为价格低廉、可靠性高,性能稳定以及独特的定时、计数功能而被广泛的应用在工业控制,工业生产,家用电器制造等方面,单片机的应用在不断的走向深处,在实时检测与自动控制的单片机应用系统中,单片机一般是用来做核心部件
[9]
的,由具体的硬件结构与控制对象的特点,和软件相结合来加以完善。
温度是表示物体冷热程度的物理量,工农业生产过程中温度是一个非常重要的参数。温度测量在产品生产,工业设计,能源节约中发挥到了关键性的作用。随着科学技术的进步和生产的需要,温度传感器不断更新和丰富起来。温度作为一个模拟量,如果采用合适的技术和元件,把模拟的温度量转化为数字量虽然说不难,但电路比较复杂,成本也太高。温度测量中测量温度是重点,本设
[11]
计中单片机温度测量同样如此。
温度控制系统常用来保持温度恒定或者使温度按照某种规定的程序变化。由于温度自身的一些特点,如惯性大、滞后现象严重、难以建立精确的数学模型等,传统的控制方式由于其控制精度不高、不能及时的跟踪对象特性变化等原因造成控制系统性能不佳。本设计基于这一点,选用具有高性能而又经济的STM32单片机作为控制器,所用算法为位置型PID控制算法,完成了对系统的设计[8]
。本课题的设计方案具有可行性和一定的推广性,若能够应用于实际生产生活中,将会对提高企业自动化水平、降低生产成本、减轻工人劳动强度、提高生活质量等方面起到积极的促进作用。
第 1 页 共67页
陕西理工学院毕业设计
1 系统总体设计
1.1系统功能要求
该设计主要由单片机最小系统模块,温湿度采集模块、显示模块和键盘模块,报警模块等构成,以STM32单片机作为核心处理器。
主要完成的功能有以下几点:对室内温度进行实时检测、可按照指令改变控制参数、将检测的 温度显示出来。 1.2系统方案论证
电路总体可以分为温度采集模块、单片机STM32最小系统模块、电机驱动模块、按键模块以及显示模块等。以STM32单片机最小系统作为核心控制电路,传感器采集温湿度作为STM32 的输入,电机驱动模块、TFTLCD2.8寸液晶屏,以及按键模块作为STM32 的输出。采集温度方面由DS18B20温度传感器来完成,它是一个数字温度传感器、内置模数转换,可直接与单片机相连接。而TFTLCD2.8寸液晶显示屏是插针式,也可以直接与单片机相连接。通过DS18B20传感器采集当前的温湿度值、经单片机将其处理后的数据送到TFTLCD液晶显示屏来进行显示,主要显示测得的实时温度与设定的温度上下限。利用键盘设置温度阈值,如果当前采集的实时温度不在设定的温度阈值范围之内,则由STM32单片机发出指令来控制电机驱动模块,使电机正常工作来实现室内温度控制。 1.3系统设计框图
功按照系统能的具体要求,在保证实现其功能的基础上,尽可能降低系统成本。总体设计方案围绕上述思想,初步确定系统的方案如图1.1所示
晶振电路 LCD显示
复位电路 STMF103RCT6 电机驱动 控制器
按键电路
LED指示 DS18B20
图1.1 功能模块框图 1.4 具体控制选择 1.4.1 控制器选择
方案一:选用STM32F103ZET6单片机
该单片机有144个引脚,为32微处理器M3内核,最大时钟频率可达到72MZhz,处理速度快,效率高。其内部有8个定时器,内个能输出4路PWM波,且有六个能能配置4个通道的捕获。同时内部还有多路AD、DA等,配置有SPI、I2C接口等,内部资源极为丰富,用该处理器为设计带来很
[5]
大方便。
方案二:选用STM32F103RCT6单片机
第 2 页 共67页
陕西理工学院毕业设计
该单片机有64个引脚,跟上述的STM32ZET6功能极为相似,同样也有多路PWM、输入捕获、AD、DA,配有SPI、I2C等接口,内部资源较为丰富。但是相比STM32ZET6,该单片机体积小,引脚少。
[5]
内部只有四个定时器(定时器1到定时器4),不过都具有计数、产生PWM波及输入捕获功能。
方案一中STM32F103ZET6管脚太多且体积较大,虽然内部资源丰富,但是好多没用到。而STM32F103RCT6内部不仅集成了设计所需要的功能而且体积小、引脚少,同时相比STM32F103ZET6价格更便宜。所以选用STM32F103RCT6作为主控器。 1.4.2 温度传感器
方案一:数字温度传感器如DS18B20 该传感器主要特性如下:数据线供电方式是在寄生电源方式下的供电,电压适应的范围比较宽,电压范围为:3.0~5.5V;DS18B20在和单片机连接时仅仅需一条总线就可以实现DS18B20和单片机双向的通信,它的单线接口方式十分特殊,但也十分方便;多个DS18B20可以并联的在唯一的三线上,能够实现组网的多点测温功能;全部传感器元件和转换电路就像一只三极管集成在集成电路内,DS18B20在使用的时候不需要任何的外围元件;测温范围-55℃~+125℃,在-10~+85℃时精度在±0.5℃范围内;有9~12位的可编程的分辨率,相对应的可分辨温度依次为0.5℃、0.25℃、0.125℃和0.0625℃,因此可以实现高精度测温;9位分辨率时最大可在 93.75毫秒内把温度转换为数字,12位分辨率时最多能在750毫秒内把模拟温度值转换为数字量,速度更快;直接把测量出的数字温度信号的结果输出,可传送CRC校验码,同时用\单总线\串行方式传递给CPU,抗干扰和纠错能力
[10]
都较强;负压特性:把电源极性接反的时候,芯片不会因为发热而烧毁,但是也不能正常工作。 方案二:热电阻温度传感器
热电阻的测量精度高,性能稳定,使用方便,测量范围比较宽,在高精度、低温测量中占有重要的地位。热电阻传感器主要用于中低温度(-200℃~+650℃或850℃)范围的温度测量。常用的工业标准化热电阻有铂热电阻和铜热电阻。铂电阻传感器是利用金属铂(Pt)的电阻值随温度变化而变化的
[3]
物理特性而制成的温度传感器。以铂电阻作为测温元件进行温度测量的关键是要能准确地测量出铂电阻传感器的电阻值。铂电阻具有适用范围广、测量范围大、稳定性高、重复性好、价格低廉、使用方便等优点,成为目前工业和实验室中温度测量应用最广泛普遍的传感元件之一,工业中应用较多的热电阻传感器如Pt100。
通过比较,虽然方案二测量温度范围比较大,但是由于它的测温原理是电阻值随着温度的改变而不断变化,因此需要设计出非常优良的温度采集电路,其中应包括测温部分,线性化部分,放大部分,A/D转换部分,这就会使外围电路复杂性大大增加。方案一数字式的温度传感器,用一根数据总线就可以和单片机进行通信,使其外围的电路大大简化,测量的精度更加准确。因此在本设计中选择方案一作为温度采集传感器。
第 3 页 共67页
陕西理工学院毕业设计
2 硬件设计
2.1硬件构成
硬件主要包括:温度采集模块、单片机STM32最小系统模块、电机驱动模块、按键模块以及显示模块。 2.2 控制模块
该模块的主要任务是完成单片机所发出的升温或降温操作。单片机STM32F103RCT6做CPU,DS18B20采集温度直接输出数字信号,单片机进行处理与执行。当温度高于设定的温度上限值时,单片机向温度控制执行电路发送降温命令,同时发光二极管绿灯亮,提醒使用者温度过高正在进行降温,启动风机等操作。当温度低于设定的温度的下限时,单片机向温度控制执行电路发送升温命令,同时发光二极管红灯亮,提醒使用者温度过低正在进行升温操作。控制模块如图2.1所示。
图2.1 控制模块
2.2.1 STM32简介
STM32系列是为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M3内核。按性能分成两个不同的系列:“增强型”STM32F103系列和“基本型”STM32F101系列。增强型系列的时钟频率能达到72MHz,是同类产品中频率最高的;基本型的时钟频率为36MHz,用16位产品一样的价格得到比16位产品更大的性能,是16位产品的最好选择。两个系列都有内置的32K到128K的闪存,不同的是SRAM的最大容量和外设接口的组合。时钟频率为72MHz时,从闪存执行代码来看,
[6]
STM32功耗36mA,是32位市场上功耗最低的产品,相当于0.5mA/MHz。
以STM32103RCT6单片机为处理器,该单片机为32位处理器。内核为Cortex-M3,其并行总线结构,嵌套中断向量控制单元,调试系统和它标准的存储映射。嵌套中断向量控制器(Nested Vector Interrupt Controller,简称NVIC)是Cortex-M3处理器中一个比较关键的组件,它为基于Cortex-M3的微控制器提供了标准的中断架构和优秀的中断响应能力,为超过240个中断源提供专门的中断入口,而且可以为每个中断源赋予单独的优先级。采用NVIC可以达到非常快的中断响应速度,从收到中断请求到执行中断服务的第一条指令仅需12个周期。这种极快的响应速度一方面得益于
第 4 页 共67页
陕西理工学院毕业设计
Cortex-M3内核对堆栈的自动处理机制,这种机制是通过固化在CPU内部的微代码实现的。另一方面,在中断请求连续出现的情况下,NVIC使用一种称为“尾链”的技术,使连续而来的中断可以在6个时钟周期内得到服务。在中断的压栈阶段,更高优先级的中断可以不耗费任何额外的CPU周期就能完成嵌入低优先级中断的动作。具体的细节后面我会继续总结的。用户可以通过设置CPU自动
[7]
进入低功耗状态,而使用中断来将其唤醒,CPU在中断时间来临之前会一直保持睡眠状态。
Cortex-M3的CPU支持两种运行模式:线程模式(Thread Mode)与处理模式(Handler Mode)并且需要注意的是,这两种模式都拥有各自独立的堆栈。这种设计使得开发人员可以进行更为精密的程序设计,对实时操作系统的支持也就更好了。Cortex-M3处理器还包含了一个24位可自动重装载定的定时器,可以为内核(RTOS)提供一个周期中断。
在指令集方面,ARM7和ARM9都有两种指令集(32位指令集和16位指令集),而Cortex-M3系列处理器支持Thumb-2指令集。由于Thumb-2指令集融合了Thumb指令集和ARM指令集,使得32
[5]
位指令集的性能和16位指令集的代码密度之间取得了平衡。 专业嵌入式、单片机技术实训。而且,ARM Thumb-2 专门为C/C++编译器设计,这就意味着Cortex-M3系列处理器的开发应用可以全部在C语言环境中完成。
STM32微控制器的推出标志着ST公司在两条产品主线(低价位主线和高性能主线)上迈出了重大一步。STM32最初发布时有14个不同型号,分为两个版本:最高CPU时钟为72MHZ的“增强型”和最高CPU时钟为36MHZ的“基本型”。这些不同STM32型号里内置的Flash最大可达128KB,SRAM最大为20KB,在STM32发布之初,配置更大Flash,RAM和更复杂外设的版本就已经在规划之中了。不管是什么版本,什么型号的STM32器件,它们在引脚功能和应用软件上是兼容的。这就使得开发人员在使用STM32系列微控制器时,不必改动PCB就可以根据需要随意更换器件型号。乍一看STM32的设备配备,与往日熟悉的51单片机倒有几分相似。一般,STM32都会配备常见外设,诸如多通道ADC,通用定时器,I2C总线接口,SPI总线接口,CAN总线接口,USB控制器,实时时钟RTC等。但是,它的每一个外部设备都具有独特之处。例如,12位精度的ADC具备多种转换模式,并带有一个内部温度传感器,带有双ADC的STM32器件,还可以使两个ADC同时工作,从而衍生出了更为高级的9种转换模式;STM32的每一个定时器都具备4个捕获比较单元,而且每个定时器都可以和另外的定时器联合工作以生成更为精密的时序;STM32有专门为电机控制而设的高级定时器,带有6个死区时间可编程的PWM输出通道,同时其带有的紧急制动通道可以在异常情况出现时,强迫PWM信号输出保持在一个预订好的安全状态;SPI接口含有一个硬件CRC单元,支持8位字节和16位半字数据的CRC计算。在对SD或MMC等存储介质进行数据存取时相当有用。而且,STM32还包含了7个DMA通道。没恶搞通道都可以用来在设备与内存之间进行8位,16位,32位数据的传输。每个设备都可以向DMA控制器请求发送或者接收数据。STM32内部总线仲裁器和总线矩阵将CPU数据接口和DMA通道之间的连接大大的简化了,这就意味着DMA通道单元是很灵活的其使用方法简单,足以应付微控制器应用中常见的数据传输要求。 2.2.2 STM32的主要优点
? 使用ARM最新、先进的构架Cortex-M3内核 ? 出色的实时性能 ? 出色的功率控制 ? 出众和创新的外设 ? 最大程度的集成整合 ? 易于开发,可使产品 ? 快速进入市场
STM32硬件的特色接口: ? I/O:输入/输出口
? 低功耗模式、定时器/计数器、输入捕获 ? PWM:脉宽调变
第 5 页 共67页