(完整版)基于stm32的温度测量系统

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

德州学院物理与电子信息学院2016届物联网方向毕业设计1基于STM32的温度测量系统梁栋(德州学院物理与电子信息学院,山东德州253023)摘要:温度是日常生活和农业生产中的一个重要参数,传统的温度计有反应缓慢,测量精度不高的和读数不方便等缺点,此外,通常需要人工去观测温度,比较繁琐,因而采用电子技术的温度测量就显得很有意义了。面对电子信息技术的进步,生成了各种形式的温度测量系统。本文设计了一个基于以STM32为核心的温度测量与无线传送的系统,温度信息采集使用数字化温度传感器DS18B20,无线传输使用ATK-HC05蓝牙模块的智能测温系统。关键词STM32;DS18B20;TFTLCD;智能测温系统1绪论在现代社会的生产生活中,人们对于产品的精度要求越来越高,而温度是人们在生产生活中十分关注的参数,因此,对温度的测量以及监控就显得十分重要。在某些行业中对温度的要求较高,由于工作环境温度的偏差进而引发事故。如化工业中做酶的发酵,必须时刻了解所发酵酶的温度才可以得到所需酶;文物的保护同样也离不开温度的采集,不仅在考古文物的出土时间上,还是在档案馆和纪念馆中,温度的控制也是藏品保存关键,所以温度的检测对其也是具有重要意义的;另外大型机房的温度的采集,超出此范围会影响服务器或系统的正常工作等等。传统方式监控温度往往很耗费人力,而且实时性差。本文就设计了一个基于STM32的温度测量系统,在测量温度的同时能实现无线传输与控制。STM32RBT6具有较低的价格、较高的测量精度、便捷的操作,同时在编程方面STM32也具有和其他单片机的优势之处,如51要求从基层编程,而STM32所有的初始化和一些驱动的程序都是以模板的形式提供给开发者,在此开发者只需要了些其他的模块功能和工作方式和少量的语法知识便可以进行编程,此优势不但节约了时间,也为STM32的发展做出了强有力的铺垫,而且STM32目前是刚刚被作为主流开发的单片机,所以其前景是无可估量的,这次毕业设计也是看好了其优越的发展趋势来选择的。无线传输采用蓝牙技术,将采集的温度传输至终端,以此实现远程监控。利用“蓝牙”技术,能够在10米的半径范围内实现单点对多点的无线数据传输,其数据传输带宽可达1Mbps。综合考虑,在设计硬件时选择的软件是AltiumDesigner,该软件集成了电路仿真、原理图设计、信号完整性设计、分析等诸多功能,使用起来很方便。通过原理图的绘制,德州学院物理与电子信息学院2016届物联网方向毕业设计2对整体的结构有了更深一步的了解。借助RealViewMDK完成软件部分的设计,它包括RealView编译器、KeilμVision3开发环境,可以使用Cortex-M3核处理器,代码实现自动配置、自动启动,配有Flash烧写模块,Simulation设备模拟功能极其强大,可以针对软件实现仿真。在仿真过程中,能够对和硬件有关的寄存器进行查看,通过观察这些寄存器,就能很容易的检查代码的功能是否符合设计要求,出现错误时也方便找出原因。通过Jlink连接处理器后,还能进行在线调试,就能实时跟踪程序在硬件上的执行状况,可以进行复位、执行到断点处、挂起、执行进去、执行过去、执行出去等丰富的操作,例如,单步执行程序,就可以看到每一行代码在硬件的所起的效果,这样更直观,更方便对程序进行改进。这个功能在软件设计的过程中给予我极大的帮助,STM32的寄存器比较繁杂,使用时很容易遗漏某些部分,而在线调试就容易找出问题所在,从而进行纠正。最后的成品较好的完成了预定的设计要求,能准确的显示温度数据,能与移动终端实现异步双工通信,达到传输温度和远程控制的目的。通过本次设计,更加深入的理解了stm32的相关寄存器,并掌握其工作原理。更加深入的学习和应用一些工具软件,如AltiumDesigner、RealViewMDK,通过对这些软件的使用,也加深了对相关知识的理解。本次的毕业设计题目相关的知识包括:电路原理、数电、模电、单片机原理、c语言、通信原理等,有效的培养分析和解决实际问题的综合能力,得到更加全面的培养和锻炼,是对大学期间所学知识的一次综合性应用。2系统分析本系统是基于STM32微控制器所设计的温度测量系统,通过温度芯片传感器DS18B20测量温度,微控制器驱动液晶模块显示当前测得的温度,然后由蓝牙将温度信息发送至手机终端,同时接收终端反馈的控制信息。整个系统模块分为四个模块:主芯片模块、DS18B20温度模块、液晶显示、蓝牙模块。MCU是STM32主芯片的最小板,上面有芯片工作需要的最少资源:时钟控制电路、JTAG接口、复位电路以及与外围电路相连的接口。DS18B20和液晶分别是温度测量、控制显示部分。而蓝牙模块负责完成与移动终端的异步双工通信。2.1STM32芯片作为一种ARMCortex-M3内核,STM32系列是以嵌入式应用为设计基础,具有功耗低、成本低、性能高的特点和优势。根据性能的不同,STM32分为STM32F103“增强型”、STM32F101“基本型”两个主要的系列。前者使用频率为72MHz的时钟,在同类产品中,德州学院物理与电子信息学院2016届物联网方向毕业设计3该产品具有最高的性能;后者使用频率为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-M3CPU(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.6V,具有保持、双采样的功能,同时还配置了温度传感器(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位。德州学院物理与电子信息学院2016届物联网方向毕业设计4通信接口最多不能超过13个,IIC接口共有两个,分别是PMBus、SMBus;USART接口共有5个,分别是调试控制、IrDA兼容、ISO7816接口、LIN;SPI接口共有3个,速度为18Mbit/s,其中与IIS复用的共有两个;2.0B的CAN、SDIO和USB2.0全速接口。STM32F103xx系列微控制器所使用的封装形式是ECOPACK封装。ARMCortex-M3内核集成了SRAM、Flash存储器。不同于8/16位设备,ARMCortex-M3使用的RISC处理器是32位的,处理代码的效率更高。STM32F103xx微控制器配置相应的嵌入式ARM核,为此,对于一切ARM工具、软件都可以实现兼容。内置的嵌入式Flash大小最高为512KB,可以对数据、程序进行存储,SRAM存储器大小最高至63KB,在实施读写操作时可以按照CPU的时钟速度。STM32F103xC/D/E中都嵌入了FSMC,实现的片选共有4个,支持NAND、PSRAM、NOR、RAM、Flash模式。通过OR后,3个FSMC中断线可以和NVIC相连。它不具有FIFO的读写功能,只有PCCARD是在内部执行,其余代码的执行都是依靠外部存储器,并且不支持Boot功能,目标频率可以高达SYSCLK/2,为此,如果系统使用72MHz时钟,那么读写时的频率为36MHz。配备矢量中断控制器(NVIC),除Cortex-M3中16根中断线外,可以对其余最多43个可屏蔽中断通道进行处理,在实施中断处理时具有更小的延迟,将中断入口向量表地址直接传送至内核,它所提供的内核结构可以实现中断提前处理,对于后到的中断,优先处理优先级更高的,可以实现尾链,对处理时的具体状态进行自动保存,在退出中断后,可以自动恢复中断入口,而无需任何指令。它的外部中断/事件控制器主要组成部分是边沿探测器线,主要产生中断/事件请求,共计19条。对于每一条线,可以对其实施单独屏蔽,在下降沿、上升沿等触发事件的选择方面可以实现单独配置。为了使中断请求的状态得到维护,可以使用挂起的寄存器,相比内部APB2所对应的时钟周期,如果外部线上的脉冲周期更长,那么这种情况可以通过EXTI进行探测,GPIO的数量最多112个,和外部中断线(共计16个)相连。启动时需要选择系统时钟,在执行复位操作时,CPU时钟使用内部晶振,频率为8MHz。通过监视4-16MHz的外部时钟判断成功与否,此过程中,在禁止控制器后,接着禁止软件中断管理。如果间接利用晶振未能获得成功,那么可以使用PLL时钟具有的中断管理。在对低速和高速APB,即APB1、PB2等AHB频率进行配置时可以借助多个预比较器,前者的频率最高不能超过36MHz,后者的频率最高可以达到72MHz。德州学院物理与电子信息学院2016届物联网方向毕业设计5启动时可以借助Boot引脚选择3种Boot选项中的任意一种,可以通过系统存储器、SRAM、用户Flash实现导入。Boot将相应的程序导入到系统的存储器内,借助USART1,重新编程Flash存储器。所使用的VDD范围是2.0V-3.6V,借助VDD引脚为其提供相应的外部电源,主要用在内部调压器、IO接口。对应的VDDA、VSSA电压范围是2.0-3.6V,可以通过外部输入相应的模拟电压,主要用在PLL、RC、复位和ADC等模块,限制ADC的电压为2.4V,VDDA、VSSA处在VDD范围时需要和VDD、VSS相连接。VBAT具有的电压范围是1.8-3.6V,在VDD无效时变为RTC,借助电源的切换对备份寄存器、32KHz晶振供电。在此设备上具有较为完整的上电、掉电复位电路,即POR、PDR,此电路时钟有效,保证电压2V的情况下可以正常启动,在电压降至2V时进行相应的操作。如果VDD比下限VPOR/PDR要低,那么该设备可以工作在复位模式,而无需外部复位。在设备中有可编程电压探测器(PVD),它可以对VDD进行检测,相比于VPVD,如果VDD高或者低,那么便会产生中断。中断服务程序可以把MCU处于安全状态,或者产生相应的警告信息,PVD主要使软件处于使能状态。它配有低功耗(LPR)、主(MR)、掉电三种模式的调压器,传统调节模式使用MR,

1 / 16
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功