基于STM32的温度测量系统毕业设计论文
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于STM32的温度测量系统
梁栋
(德州学院物理与电子信息学院,山东德州253023)
摘要:温度是日常生活和农业生产中的一个重要参数,传统的温度计有反应缓慢,测量精度不高的和读数不方便等缺点,此外,通常需要人工去观测温度,比较繁琐,因而采用电子技术的温度测量就显得很有意义了。
面对电子信息技术的进步,生成了各种形式的温度测量系统。本文设计了一个基于以STM32为核心的温度测量与无线传送的系统,温度信息采集使用数字化温度传感器DS18B20,无线传输使用ATK-HC05蓝牙模块的智能测温系统。
关键词 STM32; DS18B20; TFTLCD;智能测温系统
1 绪论
在现代社会的生产生活中,人们对于产品的精度要求越来越高,而温度是人们在生产生活中十分关注的参数,因此,对温度的测量以及监控就显得十分重要。在某些行业中对温度的要求较高,由于工作环境温度的偏差进而引发事故。如化工业中做酶的发酵,必须时刻了解所发酵酶的温度才可以得到所需酶;文物的保护同样也离不开温度的采集,不仅在考古文物的出土时间上,还是在档案馆和纪念馆中,温度的控制也是藏品保存关键,所以温度的检测对其也是具有重要意义的;另外大型机房的温度的采集,超出此范围会影响服务器或系统的正常工作等等。传统方式监控温度往往很耗费人力,而且实时性差。本文就设计了一个基于STM32的温度测量系统,在测量温度的同时能实现无线传输与控制。
STM32RBT6具有较低的价格、较高的测量精度、便捷的操作,同时在编程方面STM32也具有和其他单片机的优势之处,如51要求从基层编程,而STM32所有的初始化和一些驱动的程序都是以模板的形式提供给开发者,在此开发者只需要了些其他的模块功能和工作方式和少量的语法知识便可以进行编程,此优势不但节约了时间,也为STM32的发展做出了强有力的铺垫,而且STM32目前是刚刚被作为主流开发的单片机,所以其前景是无可估量的,这次毕业设计也是看好了其优越的发展趋势来选择的。
无线传输采用蓝牙技术,将采集的温度传输至终端,以此实现远程监控。利用“蓝牙”技术,能够在10米的半径范围内实现单点对多点的无线数据传输,其数据传输带宽可达1Mbps。综合考虑,在设计硬件时选择的软件是Altium Designer,该软件集成了电路仿真、原理图设计、信号完整性设计、分析等诸多功能,使用起来很方便。通过原理图的绘制,
对整体的结构有了更深一步的了解。借助RealView MDK完成软件部分的设计,它包括RealView编译器、Keil μVision3开发环境,可以使用Cortex-M3核处理器,代码实现自动配置、自动启动,配有Flash烧写模块,Simulation设备模拟功能极其强大,可以针对软件实现仿真。在仿真过程中,能够对和硬件有关的寄存器进行查看,通过观察这些寄存器,就能很容易的检查代码的功能是否符合设计要求,出现错误时也方便找出原因。通过Jlink 连接处理器后,还能进行在线调试,就能实时跟踪程序在硬件上的执行状况,可以进行复位、执行到断点处、挂起、执行进去、执行过去、执行出去等丰富的操作,例如,单步执行程序,就可以看到每一行代码在硬件的所起的效果,这样更直观,更方便对程序进行改进。这个功能在软件设计的过程中给予我极大的帮助,STM32的寄存器比较繁杂,使用时很容易遗漏某些部分,而在线调试就容易找出问题所在,从而进行纠正。
最后的成品较好的完成了预定的设计要求,能准确的显示温度数据,能与移动终端实现异步双工通信,达到传输温度和远程控制的目的。
通过本次设计,更加深入的理解了stm32的相关寄存器,并掌握其工作原理。更加深入的学习和应用一些工具软件,如Altium Designer、RealView MDK,通过对这些软件的使用,也加深了对相关知识的理解。本次的毕业设计题目相关的知识包括:电路原理、数电、模电、单片机原理、c语言、通信原理等,有效的培养分析和解决实际问题的综合能力,得到更加全面的培养和锻炼,是对大学期间所学知识的一次综合性应用。
2 系统分析
本系统是基于STM32 微控制器所设计的温度测量系统,通过温度芯片传感器
DS18B20测量温度,微控制器驱动液晶模块显示当前测得的温度,然后由蓝牙将温度信息发送至手机终端,同时接收终端反馈的控制信息。
整个系统模块分为四个模块:主芯片模块、DS18B20温度模块、液晶显示、蓝牙模块。MCU 是STM32 主芯片的最小板,上面有芯片工作需要的最少资源:时钟控制电路、JTAG 接口、复位电路以及与外围电路相连的接口。DS18B20和液晶分别是温度测量、控制显示部分。而蓝牙模块负责完成与移动终端的异步双工通信。
2.1 STM32芯片
作为一种ARM Cortex-M3内核,STM32系列是以嵌入式应用为设计基础,具有功耗低、成本低、性能高的特点和优势。根据性能的不同,STM32分为STM32F103“增强型”、STM32F101“基本型”两个主要的系列。前者使用频率为72MHz的时钟,在同类产品中,
该产品具有最高的性能;后者使用频率为36MHz的时钟,其价格与16位的产品相近,而其性能要比16位产品高的多,如果用户选择16位产品,此款产品是不二之选。在两个系列中配备的闪存大小由32-128K,只是在外设结构、SRAM最大容量方面存在不同的组合。对于频率为72MHz的时钟,代码均在闪存中执行,市场上32位的产品系列中,STM32具有最低的功耗,低至36mA,即0.5mA/MHz。
在STM32中,其内核Cortex-M3的性能非常高,为1.25DMips/MHz;其外设也是非常先进的:ADC(双12位、1us)、SPI(18兆位/秒)、较快的I/O翻转速度(18MHZ)、UART(4兆位/秒);工作在72MHz的时钟之下,其电流为36mA,待机时低至2uA。
内核:Cortex-M3 CPU(32位的ARM),工作频率最高可达72MHz、1.25DMIPS/MHz,支持硬件除法、单周期乘法。
存储器:集成的Flash存储器大小由32-512KB,SRAM存储器大小由6-64KB。
电源、复位、时钟管理:电源、接口驱动电压范围由2.0-3.6V;可编程PVD(电压探测器)、PDR、POR;晶振为4-16MHz;内置校正过的RC振荡电路,频率为8MHz;其内部RC振荡电路频率为40KHz;PLL(提供CPU所用的时钟);用于RTC的晶振,频率为32kHz,带校准功能。
低功耗:主要包括待机、停止、休眠等低功耗模式,VBAT用于备用寄存器、RTC的电源需要。
调试模式:JTAG接口、串行调试(SWD)。
DMA:DMA控制器共有通道12个,支持USART、DAC、ADC、IIC、定时器等诸多外设。2个16通道的A/D转换器,均为us级,位数为12位,A/D可测量范围是0-3.6 V,具有保持、双采样的功能,同时还配置了温度传感器(1个)。
只有STM32F103xC/D/E才拥有2通道的A/D转换器,位数为12位,快速I/O端口的数量最高为112个,按照不同的型号,I/O端口主要可分为26、37、51、80、112几种,任何一个端口映射到的外部中断向量共有16个,除模拟输入外,还支持低于5V的输入。
定时器的数量最多可以配置11个,其中16位定时器共有4个,一个定时器拥有的脉冲计数器、PWM/OC/IC共有4个;6通道高级控制定时器共有2个,位数为16位,用于PWM输出的通道不能超过6个;看门狗定时器共有2个,分别是窗口、独立型;Systick 定时器是一种倒计数器,位数是24位;对DAC进行驱动的基本定时器共有2个,位数是16位。