嵌入式温度监测与报警系统设计正文大学学位论文.docx

上传人:b****6 文档编号:6953954 上传时间:2023-01-13 格式:DOCX 页数:47 大小:539.98KB
下载 相关 举报
嵌入式温度监测与报警系统设计正文大学学位论文.docx_第1页
第1页 / 共47页
嵌入式温度监测与报警系统设计正文大学学位论文.docx_第2页
第2页 / 共47页
嵌入式温度监测与报警系统设计正文大学学位论文.docx_第3页
第3页 / 共47页
嵌入式温度监测与报警系统设计正文大学学位论文.docx_第4页
第4页 / 共47页
嵌入式温度监测与报警系统设计正文大学学位论文.docx_第5页
第5页 / 共47页
点击查看更多>>
下载资源
资源描述

嵌入式温度监测与报警系统设计正文大学学位论文.docx

《嵌入式温度监测与报警系统设计正文大学学位论文.docx》由会员分享,可在线阅读,更多相关《嵌入式温度监测与报警系统设计正文大学学位论文.docx(47页珍藏版)》请在冰豆网上搜索。

嵌入式温度监测与报警系统设计正文大学学位论文.docx

嵌入式温度监测与报警系统设计正文大学学位论文

学号14112200224

 

毕业设计(论文)

 

题目:

嵌入式温度监测与报警系统设计

 

作者易康乐届别2015届

院别信息与通信工程学院专业电子信息

指导教师万忠民职称教授

完成时间2015年5月10日

摘要

本设计采用了ARMCOTEX—M3系列芯片STM32F103RCT6为主控芯片,对DS18B20温度传感器进行控制,实现温度采集功能,并在TFTLCD液晶显示屏上显示实时温度。

软件采用μC/OS-Ⅱ嵌入式实时内核与μC/GUI图形界面库来实现多任务管理和UI界面的功能。

利用μC/GUI设计一个具有显示实时温度折线图和控制窗口的UI界面,从而减少按键数量。

同时调用μC/OS-Ⅱ嵌入式实时内核实现多任务管理和利用μC/GUI实现对触摸按键的设置,通过TFTLCD触摸屏上设置的按键进行温度采集的控制。

通过利用软件模拟按键从而简化了系统的软硬件设计,更便于使用人员进行控制操作,同时提高了系统的可维护性和可操作性,达到了节约成本和具有更高效率的目的。

关键词:

微控制器;TFTLCD,DS18B20;温度监测;嵌入式

 

Abstract

SystemusesARMCOTEX-M3chipsSTM32F103RCT6asmaincontrollerthatcontrolsthetemperaturesensorDS18B20toachievetemperatureacquisitionfunction,anddisplaysreal-timetemperatureontheTFTLCDscreen. ThesoftwareusestheμC/OS-Ⅱembeddedreal-timekernelandμC/GUIgraphicalinterfacelibrarytoimplementthemultipletaskmanagementandUIinterfacefunctions.UsingtheμC/GUIdesignainterfacewhichdisplayareal-timelinegraphoftemperatureandcontrolwindow’sUItoreducethenumberofbuttons.Atthesametime,callingtheμC/OS-ⅡsystemmanagethemultipletaskandusingμC/GUIimplementsettingsoftouch-key.UsingtheTFTLCDtouchscreenbuttonscontrolthetemperatureacquisition.Byusingsimulationkeystosimplifythedesignofsystemhardwareandsoftware,moreeasiertooperatortocontroltheoperation.Meanwhileitcanimprovethemaintainabilityofthesystemandoperability,andachievethepurposeofsavingcostandhigherefficiency.

Keywords:

Microcontroller;TFTLCD,DS18B20;Temperaturemonitoring;Embedded

 

 

 

第1章绪论

1.1课题设计背景及意义

当今现代化建设和国民经济发展迅速。

社会对生产环境和生活环境意识的要求也越来越高。

人们的日常生活和周围环境的温湿度息息相关,石油、化工、航天、制药、档案保管、粮食存储等领域对温度也有着较高的要求。

现在智能手机,可穿戴设备,轻型医疗产品广泛的进入了人们的生活。

其中尤其以苹果公司的产品广为人们喜爱,其产品的主要优点是其用户体验和美观的UI界面更甚于其它品牌。

随着单片机价格的降低与普及,可见现在的电子产品朝着系统集成方向快速发展。

嵌入式温度产品在家庭安全、农业大棚、工业监控等方面越来越广泛。

基于单片机的温度监控系统较传统温度控制系统具有更大的灵活性以及易于扩展功能,是一种低成本、可操作的产品。

本次设计采用STM32系列ARM产品与各种外围电路构成嵌入式温度监测与报警系统,实现对温度的实时监测、温度曲线图显示、温度报警。

通过本次设计掌握温度检测系统的硬件设计,学习了解STM32芯片使用、触摸屏驱等软件编写方法。

熟悉基于μC/OS-Ⅱ嵌入式内核编程,以及μC/GUI图形库编程。

熟练使用AltiumDesigner6.9软件进行PCB布局与布线,熟悉PCB板的制作。

通过课题深入学习相关知识,并巩固所学知识,并熟练综合运用所学知识解决问题,锻炼动手能力与实际工作能力,将所学的理论与实践结合起来。

1.2行业技术发展概况

1600年,伽利略研制出气体温度计,一百年后,出现了酒精温度计和水银温度计。

随着现代工业发展的需要,相继研制出金属丝电阻、温差电动式元件、双金属式温度传感器。

1950年以后,研制了半导体热敏电阻器。

最近随着原材料、加工技术的飞速发展,又相继研制出各种温度传感器。

常规的热电偶、热电阻、半导体温度传感器等测温方式,需要金属导线传输信号,绝缘性能不能保证。

但随着技术发展测温技术日趋多元化,温度检测单元朝着集成与数字化方向发展。

国外行业发展比国内早,技术更成熟。

国外对温湿度控制技术研究较早,始于20世纪70年代。

先是采用模拟式的组合仪器,采集现场信息并进行指示、记录和控制。

80年代末出现了分布式控制系统。

目前正开发和研制计算机数据采集控制系统的多因子综合控制系统。

现在世界各国的温湿度测控技术发展很快,一些国家在实现自动化的基础上正向着完全自动化、无人化的方向发展。

几种温度测量技术分类如下:

(1)薄膜温度传感器

薄膜温度传感器是一种新型的测温传感器,工作原理与普通热电阻,热电偶相同,但它的热接点厚度一般只有几微米。

薄膜温度传感器由于具有体积小、响应时间短、灵敏度高、便于集成等特点,适于测量物体随时间快速变化的温度。

(2)光纤测温技术 

光纤测温技术是在近十多年才发展起来的新技术,目前,这一技术仍处于研 究发展和逐步推广实用的阶段。

在某些传统方法难以解决的测温场合,已逐渐 显露出它的某些优异特性。

但是,正像其他许多新技术一样,光纤测温技术并不 能用来全面代替传统方法,它仅是对传统测温方法的补充。

(3)辐射测温技术

辐射温度计具有无测量上限,响应速度快,以及不接触被测对象因而不影响被测温场等特点。

近年来,随着电子技术的飞速发展、半导体材料的进步及计算机技术的发展与应用,辐射测温技术得到长足的进步和发展。

辐射测温仪器的制造水平、性能指标也有了显著提高,在工业生产、制造行业和科学研究中应用也越来越广泛。

(4)电量式测温

电量式测温方法主要利用材料的电势、电阻或其它电性能与温度的单值关系进行温度测量,包括热电偶温度测量、热电阻和热敏电阻温度测量、集成芯片温度测量等。

以上测量技术是当前应用较为广泛的技术。

在过去的几年里传统的温度监测方式正在被智能化、自动化、无纸化、网络化的温度监测系统所取代,在可以预见,在未来几年里,我国大部分企业将转变温湿度监测方式,统一装配智能化的温度监测系统。

采用当代传感器技术、自动化测控技术、数字通信技术、计算机应用技术等多学科地综合应用,将需要监测的若干个区域内的环境温度进行自动测量、并将其数据24小时不间断地通讯无线的方式传输给监控计算机,实现对各区数据的分区管理,如查看实时数据、软件报警、现场声光报警、数据记录、存储及数据导出及永久保存等,并结合现场的相关温湿度调控设备实现对现场温湿度的监测与自动控制,从而实现了温湿度监测的智能化、自动化、系统化和网络化,为各行业温度监测提供全面、实用的系统解决方案。

1.3课题设计的主要内容

本课题以温度监控与报警为主要研究对象,使用意法半导体公司的STM32F103RCT6处理器为主控制器芯片,基于由Micrium公司提供的μC/OS-II嵌入式内核设计管理多个任务,利用SEGGER提供的μC/GUI图形界面库开发人机交互界面,并整合软硬件形成整体解决方案。

主要工作如下:

(1)对系统功能进行了简单介绍,并详细介绍了意法半导体公司的以Cortex-M3为内核的STM32F103RCT6处理器芯片。

(2)对DS18B20芯片功能和使用方法进行了详细的介绍,并介绍了LCD集成触摸显示屏的基本特性和使用流程。

(3)硬件设计方面制定了以STM32F103RCT6为核心处理器并以DS18b20和LCD为外围电路的整体方案。

整体方案包括电源模块、调试模块、显示模块、报警模块等部分。

(4)软件方面介绍了μC/OS-II操作系统特性和μC/GUI库的主要API函数以及设计的三个主要核心函数功能和原理。

并编写了DS18b20的驱动函数和设计了LCD人机界面。

第2章温度监测与报警系统总体设计

2.1系统基本框图

硬件系统框图如下图2.1所示,该系统主要由单片机STM32F103RCT6及外围电路,LCD显示电路,DS18B20传感器电路,蜂鸣器报警电路以及按键电路四部分构成。

DS18B20传感器是一个数字集成器件,不需要再添加AD转换电路,该传感器用来检测环境温度,LCD电路部分具有检测触摸输入和显示功能,蜂鸣器是由处理器驱动的报警装置,对超出范围的温度值进行报警提示,按键电路是防止系统死机而设计的快速复位按键,而处理器是将采集的温度值送到LCD显示部分进行显示,并判断当前温度是否需要报警,还需要监控触摸输入的坐标以响应对应的操作。

图2.1系统结构框图

2.2硬系统工作原理图及工作原理

2.2.1系统工作原理图

系统原理图包括单片机控制电路,TFTLCD各个模块原理图见附录1。

2.2.2系统工作原理

系统在开机后,需要通过触摸屏设置报警值,初始报警最大值是123.7℃,最小值是-52.8℃,使用者需要根据具体情况设置报警范围。

系统上电后每隔两秒便会读取一次DS18B20传感器的值,DS18B20返回两个字节的数据,然后单片机对返回的数据进行调整,得到正确的值并保存到全局数组中,全局数组设计成了一个循环数组,当超过数据范围后新的值便会覆盖旧的值。

当检测到触摸屏star按钮按下后,单片机便会将全局数组中十个数据以折线图的形式显示到显示屏上,同时还将当前温度值显示在右上角,每两秒更新一次,保持与读取温度频率相同。

同时还需要判断当前温度值是否超出设定的温度范围。

如果超过温度范围,控制器便打开蜂鸣器报警。

2.3硬件元件介绍

2.3.1STM32F103RCT6介绍

STM32F103RCT6是意法半导体公司推出的一款32位单片机,最高72MHz工作频率,1.25DMips/MHz,单周期乘法运算和硬件除法,通用增强型。

其他功能还包括:

256KB的Flash,最多20KBSRAM,以CPU时钟速度存取(读/写),零等待状态;工作温度范围:

-40-85℃;4件选择可变静态存储控制器,支持Flash,SRAM,PSRAM,NOR和NAND存储器;LCD并行接口,支持英特尔8080和摩托罗拉6800模式;支持三种低功耗模式:

睡眠模式,停止模式,待机模式。

多达11个定时器,四个16位定时器,2个16位的电机控制PWM定时器,2个看门狗定时器(两个独立窗口型);系统时间定时器,24位的递减计数器,两个用来驱动DAC的16位基本定时器。

STM32F103RCT6引脚排列如图2.2所示。

图2.2STM32F103RCT6A部分与B部分封装引脚图

2.3.2DS18B20介绍

DS18B20的核心功能是它的直接读取数字的温度传感器检测的值存储到温度寄存器中,温度寄存器格式如表2.2所示。

温度传感器的精度为用户可编程的9,10,11或12位,每一位对应的的精度分别是0.5℃,0.25℃,0.125℃和0.0625℃。

在上电状态下默认的精度为12位。

DS18B20引脚功能如表2.1所示。

表2.1已经给出了引脚说明。

表2.1DS18B20引脚说明

T0-9封装

符号

说明

1

GND

接地

2

DQ

数据输入/输出引脚。

对于单线操作:

漏极开路。

当工作在寄生电源模式时

用来提供电源

3

VDD

可选的VDD引脚。

工作与寄生电源模

式时VDD必须接地。

2.3.3TFT-LCD介绍

TFT-LCD模块自带一个触摸检测芯片和一个显示驱动芯片,引脚排列图如图2.3所示。

开发板模块的触摸屏触摸检测控制芯片为XPT2046。

XPT2046是一款4导线制触摸屏控制器,内含12位分辨率125KHz转换速率逐次逼近型A/D转换器。

XPT2046支持从1.5V到5.25V的低电压I/O接口。

XPT2046通过连续执行两次A/D转换,一次X方向一次Y方向触摸检测查出被按的屏幕坐标值。

图2.3TFT_LCD引脚图

ILI9341液晶控制器自带显存,其显存总大小为172800(240*320*18/8),即18位模式(26万色)下的显存量。

在16位模式下,ILI9341采用RGB565格式存储颜色数据,此时ILI9341的18位数据线与MCU的16位数据线以及LCDGRAM的对应关系如表2.2所示。

 

表2.216位数据与显存对应关系表

9341总线

D17

D16

D15

D14

D13

D12

D11

D10

D9

D8

D7

D6

D5

D4

D3

D2

D1

D0

MCU数据

D15

D14

D13

D12

D11

N

C

D10

D9

D8

D7

D6

D5

D4

D3

D2

D1

D0

NC

LCDGRAM

R4

R3

R2

R1

R0

NC

G5

G4

G3

G2

G1

G0

B4

B3

B2

B1

B0

NC

2.3.4蜂鸣器介绍

蜂鸣器俗称喇叭,是广泛应用于各种电子产品的一种元器件,它用于提示、报警、音乐等许多应用场合。

 蜂鸣器与家用电器上面的喇叭在用法上也有相似的地方,通常工作电流比较大,电路上的TTL电平基本上驱动不了蜂鸣器,需要增加一个电流放大的电路才可以,这一点与家用电器中的功放有相似之处。

蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。

此次设计使用的蜂鸣器是电磁式的有源蜂鸣器,这里的有源不是指电源的源,而是指有没有自带震荡电路,有源蜂鸣器自带了震荡电路,一通电就会发声;无源蜂鸣器则没有自带震荡电路,必须外部提供2~5Khz左右的方波驱动,才能发声。

 

第3章温度监测与报警系统硬件设计

3.1硬件接口框图

整个系统硬件接口图如图3.1所示。

STM32F103RCT6的PC6与LCD的读数据线相连,PC7与LCD写数据线相连,PC8与LCD数据与命令控制位相连,PC9与LCD片选信号相连,16位PB口与LCD双向数据接口相连。

控制器PA2接口驱动蜂鸣器,PA0接口与温度传感器芯片DQ口相连。

JTAG接口引出作为程序下载和调试接口。

图3.1系统硬件接口

3.2MCU设计

控制器原理图如图3.2所示。

PA0连接DS18B20的单信号线上,由PA0模拟产生DS18B20的复位脉冲、应答脉冲、写时序以及读时序。

PA2与蜂鸣器相连,由于蜂鸣器是有源蜂鸣器,自带震荡电路。

所以PA2并不需要再产生一个周期脉冲来驱动蜂鸣器,只需要输出高电平将打开蜂鸣器否则关闭。

Y1是一个32.768KHZ的晶振,给RTC(实时时钟)提供精确定时。

STM32的实时时钟(RTC)是一个独立的定时器。

STM32的RTC模块拥有一组连续计数的计数器,在相应软件配置下,可提供时钟日历的功能。

修改计数器的值可以重新设置系统当前的时间和日期。

Y2是一个8MHZ晶振,经过芯片内部PLL后输出系统时钟达到72M最大频率。

PB口和PC6-PC10用作集成显示触摸屏的控制口。

图3.2mcu原理图

3.3JTAG设计

JTAG因为只有一条数据线,通信协议有必要像其他串行设备接口,如SPI一样为串行传输。

时钟由TCK引脚输入。

配置是通过TMS引脚采用一次操作一位来实现的。

通过TMS引脚的数据在TCK时钟控制下TDI和TDO引脚分别输入或者输出数据。

可以通过使用不同同的命令模式来读取芯片的序列号,对输入引脚的采样,驱动(或悬空)输出引脚,或者将TDI与TDO连通以在逻辑上短接多个芯片的链路。

TCK的时钟频率随芯片的不同而不同,但是其通常频率范围为10-100MHz。

当在集成电路中进行边界扫描时,被处理的信号是在同一块IC的不同功能模块间的,而不是不同IC之间的。

TRST引脚是一个可选则性的,相对于待测电平低电平有效的复位开关。

如果该引脚没有定义,则待测逻辑被同步时钟输入复位指令复位。

JTAG引脚如表3.1所示。

表3.1JTAG接口说明

引脚

端口名

功能

1

TDI

测试数据输入

2

TDO

测试数据输出

3

TCK

测试时钟

4

TMS

测试模式选择

5

TRST

测试复位

JTAG原理图如图3.3所示。

图3.3JTAG原理图

3.4TFTLCD电路设计

本设计中我采用开发板附带的TFTLCD显示屏,该模块电路图如图3.4所示。

它内部有ILI9325控制器来驱动TFT,TFT采用四线制电阻屏,显示分辨率为320×240,接口为16位的80并口,刷屏速度快,自带触摸屏功能,可以省去部分按键电路的制作。

TFTLCD可以直接接在控制器的IO口上,TFTLCD模块采用16位的并方式与外部连接,之所以不采用8位的方式,是因为彩屏的数据量比较大,尤其在显示图片的时候,如果用8位数据线,就会比16位方式慢一倍以上,我们当然希望速度越快越好,所以我们选择16位的接口。

该模块的8080并口信号线如表3.2所示。

表3.2引脚功能

端口

功能

CS

TFTLCD片选信号

WR

向TFTLCD写入数据

RD

从TFTLCD读取数据

D[15:

0]

16位双向数据线

RST

硬复位TFTLCD

RS

命令/数据标志(0,读写命令;1,读写数据)

图3.4TFT_LCD原理图

3.5蜂鸣器电路设计

该模块电路图如图3.5所示。

我们不能直接用STM32的IO口驱动,因为STM32的单个IO最大可以提供25mA电,而蜂鸣器的驱动电流是30mA左右,两者十分相近,但是全盘考虑,STM32整个芯片的电流,最大也就150mA,如果用IO口直接驱动蜂鸣器,其他地方电流将过小。

所以,我们不用STM32的IO直接驱动蜂鸣器,而是通过三极管Q1扩流后再驱动蜂鸣器,这样STM32的IO只需要提供不到1mA的电流就足够了。

图3.5蜂鸣器原理图

 

3.6DS18B20设计

DS18B20电路图如图3.6所示。

单总线系统只有一条定义的信号线。

每一个总线上的器件必须是漏极开路或三态输出。

这样的系统允许每一个挂在总线上的区间都能在适当的时间驱动它。

DS18B20的单总线端口(DQ引脚)是漏极开路式的,单总线需要一个约5KΩ的外部上拉电阻;单总线的空闲状态是高电平。

无论任何理由需要暂停某一执行过程时,如果还想恢复执行的话,总线必须停留在空闲状态。

在恢复期间,如果单总线处于非活动(高电平)状态,位与位间的恢复时间可以无限长。

如果总线停留在低电平超过480us,总线上的所有器件都将被复位。

图3.6DS18B20原理图

 

第4章软件设计

4.1软件简介

本设计嵌入式系统采用了μC/OS-Ⅱ图形界面采用了μC/GUI,从而实现多任务、人机友好的嵌入式产品。

嵌入式多任务操作系统μC/OS-Ⅱ是一个“实时内核”,也称为实时操作系统或RTOS。

在μC/OS-Ⅱ开发程序比在裸机上更方便,而且后期只需要对各个独立的任务进行修改维护,对整个代码改动量小。

在使用可剥夺性的内核时,所有要求快速反应的事件都得到了尽可能快速、有效的处理。

通过系统的服务,如信号量、邮箱、队列、延时、超时等,RTOS使得系统资源得到尽可能的最大化利用。

μC/OS-Ⅱ与其他大型操作系统不同,它仅仅是一个实时内核,并不具有像GUI,TCP/IP协议栈等功能部件。

这使得μC/OS-Ⅱ显得非常简洁。

操作系统具有管理多个任务的功能,开发者只需要编写每个任务函数即可。

在进行应用功能的增加或修改时,开发者只需要理解每个任务的代码结构,从而显著的减少了工作强度。

弊端是,由于操作系统比专用代码提供更通用的功能,而很多功能在开发中便不会用到,所以这也使得它占用了更多资源,系统工作效率也因此有所降低。

于是,通用嵌入式操作系统的选用需要由各个因素决定,例如实时性、Flash容量、RAM容量等等。

GUI时英文GraphicsUserInterface的缩写,即图形用户界面。

在计算机的发展历史中,GUI的出现是一次革命。

它提供了更友好的UI,使得计算机变得更人性化也使得大多数人都能够学会使用和接受的工具。

现在被广泛使用的Windows系统就是在个人电脑领域种占据主主要市场的GUI系统。

与PC不同的是由于嵌入式系统对实时性的要求更高,对GUI界面的响应速度的要求也更高。

嵌入式系统一般不建立在结构复杂功能冗余以及对硬件性能要求高的系统之上,因此,嵌入式系统如μC/OS-Ⅱ更适合轻型、占用资源少、高性能、高可靠性的GUI库。

在一些界面功能要求简单的嵌入式系统中,大家可以自行编写一些函数集,来进行图形、文字的显示;但是,对于界面功能要求强大的系统,包括PDA、机顶盒、DVD、WAP手机等系统均要求提供全功能的web浏览器。

而这一切均要求有一个功能强大、高性能、高可靠性的GUI系统的支持。

μC/GUI的设计目标是提供一个适合大部分实时操作系统并支持大部分LCD控制器的图形函数库。

该系统具有图形窗口管理功能,以及各种图形绘制功能。

它适用于单任务操作及多任务操作环境,也适用于不论是免费的操作系统还是是商业的实时操作系统。

μC/GUI全部由C源码组成,以及可以选择的功能部件,并适用于任意LCD控制器和CPU何尺寸大小的真实显示或虚拟显示。

 

4.2主函数分析

图4.1main函数流程图

在多任务开始之前,需要先设置系统时钟频率为72M,初始化触摸屏控制器,初始化μC/GUI以及校准触摸屏。

流程图如图4.1所示。

完成硬件初始化后,还需要调用OSInit()初始化操作系统。

然后依次创建Task_DS18B20温度测量任务,Task_wave绘制温度折线图任务,TASK_beep温度报警任务和Task_TOUCH触摸屏监测任务。

之后调用OSStart()函数执行最高优先级任务Task_DS18B20。

Task_DS18B20每隔2秒执行一次温度读取操作,在读取DS18B20温度值之前,需要调用OS_ENTER_CRITICAL()宏关闭中断,因为DS18B20驱动函数中读数据和写命令时序都是微妙级的延时,而操作系统最小计时是50毫秒,所以此时需要停止任务调度,以避免操作失败。

在延时2秒的时间里,任务调度器会检查次级优先级的任务延时时间是否已经等于零,或者任务是否已经

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1