基于stm32的温度测量系统.docx
《基于stm32的温度测量系统.docx》由会员分享,可在线阅读,更多相关《基于stm32的温度测量系统.docx(43页珍藏版)》请在冰豆网上搜索。
基于stm32的温度测量系统
基于stm32的温度测量系统
武汉理工大学
毕业设计(论文)
基于STM32的温度测量系统
学院(系):
信息工程学院
专业班级:
学生姓名:
指导老师:
摘要
温度是日常生活和农业生产中的一个重要参数,传统的温度计有反应缓慢,测量精度不高的和读数不方便等缺点,此外,通常需要人工去观测温度,比较繁琐,因而采用电子技术的温度测量就显得很有意义了。
随着电子技术的发展,出现各种基于芯片的温度测量系统。
本文设计了一个基于STM32的温度测量与无线传送的系统,温度采集使用数字化温度传感器DS18B20,无线传输使用ATK-HC05蓝牙模块。
STM32的内核基于cortex-m3,该内核拥有意法半导体独有的130nm专用低泄漏电流制造工艺和优化的节能架构,处于行业领先的节能性能,其高性能、低功耗、低成本的优势正符合本次设计的要求。
温度芯片DS18B20采用单总线协议,仅占一个I/O口就能将环境温度转化成数字信号,具有微型化、低功耗、高性能、抗干扰能力强、易配微处理器等优点。
无线的传输采用蓝牙技术,成本低,兼容的设备较多,可以降低传统工程的工程量,同时可以节省大量由排线、线路维修、检测上的一些不必要的障碍和消耗,同时,在实时运行阶段也可以明显体现它的便携性,高效性和节能性。
关键词:
STM32;蓝牙;DS18B20;温度;TFTLCD
Abstract
Temperatureisanimportantparameterinthedailylifeandagriculturalproduction,thetraditionalthermometerhasslowresponseandreadinginconvenientshortcomings,themeasurementaccuracyisnothigh,inaddition,usuallyrequiringlabortoobservethetemperature,morecumbersome,andthusthetemperatureoftheuseofelectronictechnologyitmakessensetomeasureit.
Withthedevelopmentofelectronictechnology,theemergenceofvariouschip-basedtemperaturemeasurementsystem.ThispaperpresentsanSTM32-basedtemperaturemeasurementandwirelesstransmissionsystems,thetemperatureacquisitionusingdigitaltemperaturesensorDS18B20,wirelesstransmissionusingATK-HC05Bluetoothmodule.
TheSTM32kernelisbasedoncortex-m3,thekernelhasaunique130nmSTMicroelectronicsspeciallowleakagecurrentmanufacturingprocessesandenergyoptimizedarchitecture,industry-leadingenergy-savingperformance,itshigh-performance,low-power,low-costadvantageiscomplywiththerequirementsofthisdesign.DS18B20temperaturechipsinglebusprotocol,onlyoneI/Oportwillbeabletoambienttemperatureintodigitalsignals,withminiaturization,lowpowerconsumption,highperformance,anti-interferenceability,easywithmicroprocessorsandotheradvantages.WirelesstransmissionusingBluetoothtechnology,lowcost,morecompatibledevices,youcanreducetheamountoftraditionalengineeringprojects,andcansavealotbyacable,linemaintenance,testingonsomeoftheunnecessarybarriersandconsumption,while,inreal-timeoperationalphasecanalsobeevidentinitsportability,efficiency,andenergyefficiency.
Keywords:
STM32;Bluetooth;DS18B20;temperature;TFTLCD
1绪论
随着现代工业的不断发展,生产技术的不断进步,对于产品的精度要求也不断提高,而温度是人们生产生活中十分关注的参数,对温度的测量以及监控就显得十分重要。
在某些行业中对温度的要求较高,由于工作环境温度的偏差进而引发事故。
如化工业中做酶的发酵,必须时刻了解所发酵酶的温度才可以得到所需酶;文物的保护同样也离不开温度的采集,不仅在文物出土的时刻,在博物馆和档案馆中,温度的控制也是藏品保存关键,所以温度的检测对其也是具有重要意义的;另外大型机房的温度的采集,超出此范围会影响服务器或系统的正常工作等等。
传统方式监控温度往往很耗费人力,而且实时性差。
本文就设计了一个基于STM32的温度测量系统,在测量温度的同时能实现无线传输与控制。
早期使用的是模拟温度传感器,如热敏电阻,随着环境温度的变化,它的阻值也发生线性变化,用处理器采集电阻两端的电压,然后根据某个公式就可计算出当前环境温度。
而现在的温度传感器已经走向数字化,本次设计选用美国DALLAS半导体公司推出的数字化温度传感器DS18B20,该芯片采用单总线协议,仅占用一个I/O口,直接将环境温度转化成数字信号,以数字码方式串行输出。
DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈刚封装式,型号多种多样,有LTM8877,LTM8874等等。
主要根据应用场合的不同而改变其外观。
封装后的DS18B20耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域,如电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合
MCU选用STM32RBT6,有测量精度高、操作简单、价格低廉等优点。
STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARMCortex-M3内核。
按性能分成两个不同的系列:
STM32F103“增强型”系列和STM32F101“基本型”系列。
增强型系列时钟频率达到72MHz,是同类产品中性能最高的产品;基本型时钟频率为36MHz,以16位产品的价格得到比16位产品大幅提升的性能,是16位产品用户的最佳选择。
两个系列都内置32K到128K的闪存,不同的是SRAM的最大容量和外设接口的组合。
时钟频率72MHz时,从闪存执行代码,STM32功耗36mA,是32位市场上功耗最低的产品。
同时在编程方面STM32也具有和其他单片机的优势之处,如51单片机必须从最底层开始编程,而STM32所有的初始化和一些驱动的程序都是以模板的形式提供给开发者,在此开发者只需要了些其他的模块功能和工作方式和少量的语法知识便可以进行编程,此优势不但节约了时间,也为STM32的发展做出了强有力的铺垫,而且STM32目前是刚刚被作为主流开发的单片机,所以其前景是无可估量的,这次毕业设计也是看好了其优越的发展趋势来选择的。
无线传输采用蓝牙技术,将采集的温度传输至终端,以此实现远程监控。
利用“蓝牙”技术,能够在10米的半径范围内实现单点对多点的无线数据传输,其数据传输带宽可达1Mbps。
通讯介质为频率在2.402GHz到2.480GHz之间的电磁波。
用跳频频谱扩展技术,把频带分成若干个跳频信道,在一次连接中,无线电收发器按伪随机码序列不断地从一个信道“跳”到另一个信道。
硬件设计使用的是AltiumDesigner软件,AltiumDesigner是原Protel软件开发商Altium公司推出的一体化的电子产品开发系统。
这套软件把原理图设计、电路仿真、PCB绘制编辑、拓扑逻辑自动布线、信号完整性分析和设计输出等技术进行了完美融合,使用起来很方便。
通过原理图的绘制,对整体的结构有了更深一步的了解。
软件部分则是通过RealViewMDK来设计的,它是ARM于2006年1月30日推出的针对各种嵌入式处理器的软件开发工具。
RealViewMDK集成了业内领先的技术,包括KeilμVision3集成开发环境与RealView编译器。
支持最新的Cortex-M3核处理器,自动配置启动代码,集成Flash烧写模块,强大的Simulation设备模拟,可进行软件仿真。
软件仿真时可以查看很多硬件相关的寄存器,通过观察这些寄存器,就能很容易的检查代码的功能是否符合设计要求,出现错误时也方便找出原因。
通过Jlink连接处理器后,还能进行在线调试,就能实时跟踪程序在硬件上的执行状况,可以进行复位、执行到断点处、挂起、执行进去、执行过去、执行出去等丰富的操作,例如,单步执行程序,就可以看到每一行代码在硬件的所起的效果,这样更直观,更方便对程序进行改进。
这个功能在软件设计的过程中给予我极大的帮助,STM32的寄存器比较繁杂,使用时很容易遗漏某些部分,而在线调试就容易找出问题所在,从而进行纠正。
最后的成品较好的完成了预定的设计要求,能准确的显示温度数据,能与移动终端实现异步双工通信,达到传输温度和远程控制的目的。
通过本次设计,更加深入的理解了stm32的相关寄存器,并掌握其工作原理。
更加深入的学习和应用一些工具软件,如AltiumDesigner、RealViewMDK,通过对这些软件的使用,也加深了对相关知识的理解。
本次的毕业设计题目相关的知识包括:
电路原理、模拟电路、数字电路、c语言、单片机原理、通信原理等,有效的培养分析和解决实际问题的综合能力,得到更加全面的培养和锻炼,使大学所学的基础和专业知识可以再解决实际问题中得到综合的应用。
2系统分析
本系统是基于STM32微控制器所设计的温度测量系统,通过温度芯片DS18B20测量温度,微控制器驱动液晶模块显示当前测得的温度,然后由蓝牙将温度信息发送至手机终端,同时接收终端反馈的控制信息。
整个系统模块分为四个模块:
主芯片模块、DS18B20温度模块、液晶显示、蓝牙模块。
MCU是STM32主芯片的最小板,上面有芯片工作需要的最少资源:
时钟控制电路、复位电路、JTAG控制口以及与外围电路相连的接口。
DS18B20和液晶分别是温度测量、控制显示部分。
而蓝牙模块负责完成与移动终端的异步双工通信。
2.1STM32芯片
STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARMCortex-M3内核。
按性能分成两个不同的系列:
STM32F103“增强型”系列和STM32F101“基本型”系列。
增强型系列时钟频率达到72MHz,是同类产品中性能最高的产品;基本型时钟频率为36MHz,以16位产品的价格得到比16位产品大幅提升的性能,是16位产品用户的最佳选择。
两个系列都内置32K到128K的闪存,不同的是SRAM的最大容量和外设接口的组合。
时钟频率72MHz时,从闪存执行代码,STM32功耗36mA,是32位市场上功耗最低的产品,相当于0.5mA/MHz。
STM32的高性能Cortex-M3内核为1.25DMips/MHz;含有一流的外设:
1us的双12位ADC,4兆位/秒的UART,18兆位/秒的SPI,18MHZ的I/O翻转速度;在72MHz时消耗36mA,待机时下降的2uA。
内核:
ARM32位Cortex-M3CPU,最高工作频率72MHz,1.25DMIPS/MHz。
单周期乘法和硬件除法。
存储器:
片上集成32-512KB的Flash存储器。
6-64KB的SRAM存储器。
时钟、复位和电源管理:
2.0-3.6V的电源供电和I/O接口的驱动电压。
POR、PDR和可编程的电压探测器(PVD)。
4-16MHz的晶振。
内嵌出厂前调校的8MHzRC振荡电路。
内部40kHz的RC振荡电路。
用于CPU时钟的PLL。
带校准用于RTC的32kHz的晶振。
低功耗:
3种低功耗模式:
休眠,停止,待机模式。
为RTC和备份寄存器供电的VBAT。
调试模式:
串行调试(SWD)和JTAG接口。
DMA:
12通道DMA控制器。
支持的外设:
定时器,ADC,DAC,SPI,IIC和USART。
2个12位的us级的A/D转换器(16通道):
A/D测量范围:
0-3.6V。
双采样和保持能力。
片上集成一个温度传感器。
2通道12位D/A转换器:
STM32F103xC,STM32F103xD,STM32F103xE独有。
最多高达112个的快速I/O端口:
根据型号的不同,有26,37,51,80,和112的I/O端口,所有的端口都可以映射到16个外部中断向量。
除了模拟输入,所有的都可以接受5V以内的输入。
最多多达11个定时器:
4个16位定时器,每个定时器有4个IC/OC/PWM或者脉冲计数器。
2个16位的6通道高级控制定时器:
最多6个通道可用于PWM输出。
2个看门狗定时器(独立看门狗和窗口看门狗)。
Systick定时器:
24位倒计数器。
2个16位基本定时器用于驱动DAC。
最多多达13个通信接口:
2个IIC接口(SMBus/PMBus)。
5个USART接口(ISO7816接口,LIN,IrDA兼容,调试控制)。
3个SPI接口(18Mbit/s),两个和IIS复用。
CAN接口(2.0B)。
USB2.0全速接口。
SDIO接口。
ECOPACK封装:
STM32F103xx系列微控制器采用ECOPACK封装形式。
集成嵌入式Flash和SRAM存储器的ARMCortex-M3内核。
和8/16位设备相比,ARMCortex-M332位RISC处理器提供了更高的代码效率。
STM32F103xx微控制器带有一个嵌入式的ARM核,所以可以兼容所有的ARM工具和软件。
嵌入式Flash存储器和RAM存储器:
内置多达512KB的嵌入式Flash,可用于存储程序和数据。
多达64KB的嵌入式SRAM可以以CPU的时钟速度进行读写(不待等待状态)。
可变静态存储器(FSMC):
FSMC嵌入在STM32F103xC,STM32F103xD,STM32F103xE中,带有4个片选,支持四种模式:
Flash,RAM,PSRAM,NOR和NAND。
3个FSMC中断线经过OR后连接到NVIC。
没有读/写FIFO,除PCCARD之外,代码都是从外部存储器执行,不支持Boot,目标频率等于SYSCLK/2,所以当系统时钟是72MHz时,外部访问按照36MHz进行。
嵌套矢量中断控制器(NVIC):
可以处理43个可屏蔽中断通道(不包括Cortex-M3的16根中断线),提供16个中断优先级。
紧密耦合的NVIC实现了更低的中断处理延迟,直接向内核传递中断入口向量表地址,紧密耦合的NVIC内核接口,允许中断提前处理,对后到的更高优先级的中断进行处理,支持尾链,自动保存处理器状态,中断入口在中断退出时自动恢复,不需要指令干预。
外部中断/事件控制器(EXTI):
外部中断/事件控制器由用于19条产生中断/事件请求的边沿探测器线组成。
每条线可以被单独配置用于选择触发事件(上升沿,下降沿,或者两者都可以),也可以被单独屏蔽。
有一个挂起寄存器来维护中断请求的状态。
当外部线上出现长度超过内部APB2时钟周期的脉冲时,EXTI能够探测到。
多达112个GPIO连接到16个外部中断线。
时钟和启动:
在启动的时候还是要进行系统时钟选择,但复位的时候内部8MHz的晶振被选用作CPU时钟。
可以选择一个外部的4-16MHz的时钟,并且会被监视来判定是否成功。
在这期间,控制器被禁止并且软件中断管理也随后被禁止。
同时,如果有需要(例如碰到一个间接使用的晶振失败),PLL时钟的中断管理完全可用。
多个预比较器可以用于配置AHB频率,包括高速APB(PB2)和低速APB(APB1),高速APB最高的频率为72MHz,低速APB最高的频率为36MHz。
Boot模式:
在启动的时候,Boot引脚被用来在3种Boot选项种选择一种:
从用户Flash导入,从系统存储器导入,从SRAM导入。
Boot导入程序位于系统存储器,用于通过USART1重新对Flash存储器编程。
电源供电方案:
VDD,电压范围为2.0V-3.6V,外部电源通过VDD引脚提供,用于I/O和内部调压器。
VSSA和VDDA,电压范围为2.0-3.6V,外部模拟电压输入,用于ADC,复位模块,RC和PLL,在VDD范围之内(ADC被限制在2.4V),VSSA和VDDA必须相应连接到VSS和VDD。
VBAT,电压范围为1.8-3.6V,当VDD无效时为RTC,外部32KHz晶振和备份寄存器供电(通过电源切换实现)。
电源管理:
设备有一个完整的上电复位(POR)和掉电复位(PDR)电路。
这条电路一直有效,用于确保从2V启动或者掉到2V的时候进行一些必要的操作。
当VDD低于一个特定的下限VPOR/PDR时,不需要外部复位电路,设备也可以保持在复位模式。
设备特有一个嵌入的可编程电压探测器(PVD),PVD用于检测VDD,并且和VPVD限值比较,当VDD低于VPVD或者VDD大于VPVD时会产生一个中断。
中断服务程序可以产生一个警告信息或者将MCU置为一个安全状态。
PVD由软件使能。
电压调节:
调压器有3种运行模式:
主(MR),低功耗(LPR)和掉电。
MR用在传统意义上的调节模式(运行模式),LPR用在停止模式,掉电用在待机模式:
调压器输出为高阻,核心电路掉电,包括零消耗(寄存器和SRAM的内容不会丢失)。
低功耗模式:
STM32F103xx支持3种低功耗模式,从而在低功耗,短启动时间和可用唤醒源之间达到一个最好的平衡点。
休眠模式:
只有CPU停止工作,所有外设继续运行,在中断/事件发生时唤醒CPU;停止模式:
允许以最小的功耗来保持SRAM和寄存器的内容。
1.8V区域的时钟都停止,PLL,HSI和HSERC振荡器被禁能,调压器也被置为正常或者低功耗模式。
设备可以通过外部中断线从停止模式唤醒。
外部中断源可以使16个外部中断线之一,PVD输出或者TRC警告。
待机模式:
追求最少的功耗,内部调压器被关闭,这样1.8V区域断电。
PLL,HSI和HSERC振荡器也被关闭。
在进入待机模式之后,除了备份寄存器和待机电路,SRAM和寄存器的内容也会丢失。
当外部复位(NRST引脚),IWDG复位,WKUP引脚出现上升沿或者TRC警告发生时,设备退出待机模式。
进入停止模式或者待机模式时,TRC,IWDG和相关的时钟源不会停止。
选型片的原则是:
看功耗,本次设计的温度系统需要在外场长时间工作,那么就需要功耗较低;看成本,在能满足性能要求的前提下,选择成本较低的。
从这两个方面来看,STM32功耗36mA,是32位市场上功耗最低的产品,相当于0.5mA/MHz,时钟频率为36MHz,以16位产品的价格得到比16位产品大幅提升的性能,综合考虑,本次设计选用的mcu为STM32RBT6。
2.2DS18B20
DS18B20是由DALLAS半导体公司推出的一种的“一线总线”接口的温度传感器。
与传统的热敏电阻等测温元件相比,它是一种新型的体积小、适用电压宽、与微处理器接口简单的数字化温度传感器。
一线总线结构具有简洁且经济的特点,可使用户轻松地组建传感器网络,从而为测量系统的构建引入全新概念。
现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。
它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~l2位的数字值读数方式。
它工作在3—5.5V的电压范围,采用多种封装形式,从而使系统设计灵活、方便,设定分辨率及用户设定的报警温度存储在EEPROM中,掉电后依然保存。
目前常用的单片机与外设之间进行数据传输的串行总线主要有I2C,SPI和SCI总线。
其中I2C总线以同步串行二线方式进行通信:
一条时钟线,一条数据线。
SPI总线则以同步串行三线方式进行通信:
一条时钟线,一条数据输入线,一条数据输出线。
SCI总线是以异步方式进行通信:
一条数据输入线,一条数据输出线。
而DS18B20的单总线采用单条信号线,既可传输时钟,又可传输数据,而且数据传输是双向的,因而具有线路简单,硬件开销少,成本低廉,便于总线扩展和维护等优点。
ROM中的64位序列号是出厂前被光记好的,它可以看作是该DS18B20的地址序列码,每DS18B20的64位序列号均不相同。
64位ROM的排列是:
前8位是产品家族码,接着48位是DS18B20的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。
ROM作用是使每一个DS18B20都各不相同,这样就可实现一根总线上挂接多个。
DS18B20适应电压范围宽,电压范围在3.0~5.5V,在寄生电源方式下可由数据线供电。
在使用中不需要任何外围元件,全部传感元件及转换电路继承在形如一只三极管的集成电路内。
可编程分辨率为9~12位,对应的可分辨温度分别为0.5度,0.25度,0.125度,0.0625度,可实现高精度测温。
2.3TFTLCD
TFT-LCD即薄膜晶体管液晶显示器。
其英文全称为:
ThinFilmTransistor-LiquidCrystalDisplay。
液晶先后避开了困难的发光问题,利用液晶作为光阀的优良特性把发光显示器件分解成两部分,即光源和对光源的控制。
作为光源,无论从发光效率、全彩色,还是寿命,都已取得了辉煌的成果,而且还在不断深化之中。
LCD发明以来,背光源在不断地进步,由单色到彩色,由厚到薄,由侧置荧光灯式到平板荧光灯式。
在发光光源方面取得的最新成果都会为LCD提供新的背光源。
随着光源科技的进步,会有更新的更好的光源出现并为LCD所应用。
余下的就是对光源的控制,把半导体大规模集成电路的技术和工艺移植过来,研制成功了薄膜晶体管(TFT)生产工艺,实现了对液晶光阀的矩阵寻址控制,解决了液晶显示器的光阀和控制器的配合,从而使液晶显示的优势得以实现。
TFT-LCD与无源TN-LCD、STN-LCD的简单矩阵不同,它在液晶显示屏的每一个象素上都设置有一个薄膜晶体管(TFT),可有效地克服非选通时的串扰,使显示液晶屏的静态特性与扫描线数无关,因此大大提高了图像质量。
TFT-LCD也被叫做真彩液晶显示器。
TFT实际上指的是薄膜晶体管,可以对屏幕上的各个独立的像素进行控制。
显示屏由许多可以发出任意颜色的光线的像素组成,只要控制各个像素显示相应的颜色就能达到目的了。
在TFTLCD中采用背光技术,为了能精确地控制每一个像素的颜色和亮度就