基于单片机AT89S52的汽车胎压监测系统TPMS.docx
《基于单片机AT89S52的汽车胎压监测系统TPMS.docx》由会员分享,可在线阅读,更多相关《基于单片机AT89S52的汽车胎压监测系统TPMS.docx(44页珍藏版)》请在冰豆网上搜索。
基于单片机AT89S52的汽车胎压监测系统TPMS
基于单片机AT89S52的汽车胎压监测系统TPMS
摘要:
轮胎的突然爆炸通常会引起严重的交通事故,威胁着驾驶员的安全。
面对这个问题有必要来研究轮胎的安全系统。
系统的软件组成与软件设计都是来监测轮胎压力。
整个系统由一个主机模块和一个无线传感模块组成。
这个无线传感器安装在轮胎上,实时监测压力和温度并把数据通过无线模块PT2262送到主机模块AT89S52.。
主要以PT2272来接收数据并处理,一旦轮胎压力出现异常的高或低,或者泄露,还有温度过于高,都会被监测到通过转换为可见的信号来提醒司机,来避免严重的交通事故。
关键词:
AT89S52;2262/2272;ADC0804
AT89S52microcontroller-basedautomotivetirepressuremonitoringsystemTPMS
Abstract:
Suddentireexplosionaccidentsoftencauseserious,threateningthesafetyofthedriver.Facedwiththisproblemitisnecessarytostudythetiresafetysystem.Systemsoftwarecomponentsandsoftwarearedesignedtomonitortirepressure.Thesystemconsistsofahostmoduleandawirelesssensormodule.Thewirelesssensorsinstalledinthetires,real-timemonitoringofpressureandtemperature,andthedatatothehostthroughthewirelessmodulePT2262modulesAT89S52..PT2272primarilytoreceivedataandprocess,oncethetirepressureabnormalhighorlow,ordisclose,aswellasthetemperatureistoohigh,willbemonitoredbyconvertingthesignaltobeseentoreminddriverstoavoidseriousaccidents.
Keywords:
AT89S52;2262/2272;ADC0804
第一章引言
1.1引言
根据美国国家交通安全管理局估计每年大约有23000交通事故与500起致事故都是由于轮胎的压力不足引起的。
保持适合的轮胎压力能降低油耗,如果压力高于标准的10%或低于标准的30%。
如果压力过高,摩擦力减小而油耗增加。
此外,轮胎状态与温度有直接联系,温度越高轮胎力量减弱,而且变化时很大的。
通常情况下,温度不能超过80,如果达到95是很危险的,而且每升高1轮胎损耗增加2%。
速度增加两倍轮胎寿命为原来的一半。
标准胎压状态的概率有利于减少事故威胁生命,车轮爆胎时,增进燃料效益、延长使用寿命,提高轮胎的驾驶执照及车辆的安全性能。
智能轮胎安全型设计了系统可以帮助司机掌握汽车轮胎的精确,也可以为泄漏,超压型或低压和异常温度条件,确保车辆驾驶稳定性,避免严重事故由于突然当车辆车轮爆胎时,高速运转。
1.2基本要求
1、温度测量控制范围:
0~100°C;误差不大于
1°C;
2、测试轮胎压力,压力误差在
10;
3、数码显示:
温度和压力。
4、无线通信。
1.3特色与创新
1、使用单片机为控制核心,大大简化了系统的组成构造,且单片机可拓展性强,可以很方便的对系统进行拓展和应用。
2、液晶显示压力,同时显示测量温度。
清晰明了
3、当温度和压力达到或超过设定时报警,
4:
当温度过高是通过喷水来降温,防止在长下坡时的温度升高造成的爆胎。
1.4基本内容及章节安排
本设计通过分析TPMS系统的现状和轮胎故障的情况,从而对汽车轮胎TPMS系统进行设计。
主要检测轮胎的压力和温度,无线传输到主控芯片并显示从而提示司机仿真爆胎事故的发生。
提高行车的安全性。
主要章节分为:
(1)绪论:
引言和基本要求,设计的基本内容和本文的章节安排。
(2)电路工作整体原理分析:
给出了汽车TPMS的总体方案设想,设计结构规划。
(3)芯片介绍:
分别对用到的芯片做介绍为设计电路打下基础,包括52单片机芯片,2262/2272,锁存器芯片,译码器芯片等作介绍。
(4)模块电路原理介绍:
选用89C52单片机为核心的各种电路设计,包括复位电路,电源电路,时钟电路,2262/2272等一系列相关电路。
(4)软件设计:
主要介绍了各项功能的设计流程。
(5)总结与展望
第二章电路整体工作原理分析
本设计由以下几个模块组成:
主从机单片机AT89C52模块、八段码共阴极数码管显示模块、2262/2272无线模块,电源模块等组成。
通过从机测量汽车轮胎的温度和压力传送到主机并显示,同时控制报警等动作。
系统原理框图如下:
图1系统原理框图
第三章:
芯片介绍
3.1MCS-52介绍
由于Intel公司的单片机问世早、产品系列齐全、兼容性强,得到了广泛的应用,目前我国主要使用MCS-52系列的产品,尤以8031为多。
这是因为8031无片内ROM、应用灵活、价格便宜。
MCS-52是Intel公司的8位系列单片机,包括52和 51两个子系列。
51子系列有8031、8051、8751;52子系列有8032、8052。
52子系列的不同在于它多具有定时/计数器2及具有256B的内部数据存储器。
MCS-52结构框图
1)主要性能[2]
内部程序存储器:
4KB
内部数据存储器:
128B
外部程序存储器:
可扩展到64KB。
外部数据存储器:
可扩展到64KB。
输入/输出口线:
32根(4个端口,每个端口8根)。
定时/计数器:
2个16位可编程的定时计数器。
串行口:
全双工,二根。
寄存器区:
在内部数据存储器的128B中划出一部分作为寄存器区,分为四个区,每个区8个通用寄存器。
中断源:
5个中断源,2个优先级别。
堆栈:
最深128B。
布尔处理机:
即位处理机,对某些单元的某位做单独处理。
指令系统(系统时钟为12MHZ时):
大部分指令执行时间为1us;少部分指令,执行时间为2us;只有乘、除指令的执行时间为4us。
2)引脚功能说明
图2-2是MCS-52的引脚结构图,有双列直插封装(DIP)方式和方形封装方式。
下面分别叙述这些引脚的功能。
(1)主电源引脚
1VCC:
电源端。
2GND:
接地端。
(2)外接晶体引脚XTAL1和XTAL2
①XTAL1:
晶体振荡器接入的一个引脚。
当采用外部振荡器时,此引脚接地。
②XTAL2:
晶体振荡器接入的另一个引脚。
采用外部振荡器时,此引脚作为外部振荡信号的输入端。
(3)控制或与其他电源复用引脚RST,ALE/
,
/Vpp
1RST:
复2位输H入端。
当振荡器运行时,3在该引脚上出现两个机器周期的高电平将使单片机复4位。
5ALE/
:
当访问外部存储器时,6ALE(地址锁存允许)的输出用于锁存地址的低位字节。
即使不7访问外部存储器,8ALE端仍以不9变的频率(此频率为振荡器频率的1/6)周期性地出现正脉冲信号。
因此,10它可用作对外输出的时钟,11或用于定时目的。
然而12注意的是:
每当访问外部数据存储器时,13将跳过一个ALE脉冲。
在对Flash存储器编程期间,14该引脚还用于输入编程脉冲(
)。
如果需要的话,通过对专用寄存器(SFR)区中8EH单元的D0位置数,可禁止ALE操作。
该位置数后,只有在执行一条MOVX或MOVC指令期间,ALE才会被激活。
另外,该引脚会被微弱拉高,单片机执行外部程序时,该设定禁止ALE位无效。
③
:
程序存储允许(
)输出是外部程序存储器的读选通信号。
当80C52由外部程序存储器取指令(或常数)时,每个机器周期两次
有效(即输出2个脉冲)。
但在此期间内,每当访问外部数据存储器时,这两次有效的
信号将不出现。
④
/Vpp:
外部访问允许端。
要使CPU只访问外部程序存储器(地址为0000H~FFFFH),则
端必须保持低电平(接到GND端)。
然而要注意的是,如果保密位LB1被编程,复位时在内部会锁存
端的状态。
当
端保持高电平(接Vcc端)时,CPU则执行内部程序存储器中的程序。
在Flash存储器编程期间,该引脚也用于施加12V的编程允许电源Vpp(如果选用12V编程)。
(4)输入/输出引脚P0.0~P0.7,P1.0~P1.7,P2.0~P2.7和P3.0~P3.7。
①P0端口(P0.0~P0.7):
P0是一个8位漏极开路型双向I/O端口。
作为输出口用时,每位能以吸收电流的方式驱动8个TTL输入,对端口写1时,又可作高阻抗输入端用。
在访问外部程序和数据存储器时,它是分时多路转换的地址(低8位)/数据总线,在访问期间激活了内部的上拉电阻。
在Flash编程时,P0端口接收指令字节;而在校验程序时,则输出指令字节。
验证时,要求外接上拉电阻
②P1端口(P1.0~P1.7):
P1是一个带有内部上拉电阻的8位双向I/O端口。
P2的输出缓冲器可驱动(吸收或输出电流方式)4个输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流(IIL)。
在对Flash编程和程序校验时,P1接收低8位地址。
③P2端口(P2.0~P2.7):
P2是一个带有内部上拉电阻的8位双向I/O端口。
P2的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。
对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。
P2作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流(IIL)。
在访问外部程序存储器和16位地址的外部数据存储器(如执行MOVX@DPTR指令)时,P2送出高8位地址。
在访问8位地址的外部数据存储器(如执行MOVX@RI指令)时,P2口引脚上的内容(就是专用寄存器(SFR)区中P2寄存器的内容),在整个访问期间不会改变。
在对Flash编程和程序校难期间,P2也接收高位地址和一些控制信号。
④P3端口(P3.0~P3.7):
P3是一个带内部上拉电阻的8位双向I/O端口。
P3的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。
对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。
P3作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流(IIL)。
在AT89C52中,P3端口还用于一些复用功能。
复用功能如表2-1所列。
在对Flash编程或程序校验地,P3还接收一些控制信号。
表2-1P3各端口引脚与复用功能表
端口引脚
复用功能
P3.0
RXD(串行输入口)
P3.1
TXD(串行输出口)
P3.2
(外部中断0)
P3.3
(外部中断1)
P3.4
T0(定时器0的外部输入)
P3.5
T1(定时器1的外部输入)
P3.6
(外部数据存储器写选通)
P3.7
(外部数据存储器读选通)
MCS-52的引脚结构
3.2LED数码管显示
在单片机应用系统中,如果需要显示的内容只有数码和某些字母,使用LED数码管是一种较好的选择。
LED数码管显示清晰、成本低廉、配置灵活,与单片机接口简单易行。
3.2.1LED数码管介绍
LED数码管是由发光二极管作为显示字段的数码型显示器件。
图4-3a为0.5inLED数码管的外形和引脚图,其中七只发光二极管分别对应a~g笔段构成“
”字形另一只发光二极管Dp作为小数点。
因此这种LED显示器称为七段数码管或八段数码管。
LED数码管按电路中的连接方式可以分为共阴型和共阳型两大类,如图4-3示b、c所示。
共阳型是将各段发光二极管的正极连在一起,作为公共端COM,公共端COM接高电平,a~g、Dp各笔段通过限流电阻接控制端。
某笔段控制端低电平时,该笔段发光,高电平时不发光。
控制这几段笔段发光,就能显示出某个数码或字符。
共阴型是将各数码发光二极管的负极连在一起,作为公共端COM接地,某笔段通过限流电阻接高电平时发光。
LED数码管按其外形尺寸有多种形式,使用较多的是0.5in和0.8in;按显示颜色也有多种形式,主要有红色和绿色;按亮度强弱可分为高亮和普亮,指通过同样的电流显示亮度不一样,这是因发光二极管的材料不一样而引起的。
LED数码管的使用与发光二极管相同,根据其材料不同正向压降一般为1.5~2V额定电流为10mA,最大电流为40mA。
静态显示时取10mA为宜,动态扫描显示可加大,加大脉冲电流,但一般不超过40mA。
3.2.2LED数码管编码方式
当LED数码管与单片机相连时,一般将LED数码管的各笔段引脚a、b、…、g、Dp按某一顺序接到MCS-52型单片机某一个并行I/O口D0、D1、…、D7,当该I/O口输出某一特定数据时,就能使LED数码管显示出某个字符。
例如要使共阳极LED数码管显示“0”,则a、b、c、d、e、f各笔段引脚为低电平,g和Dp为高电平,。
表4-2共阳极LED数码管显示数字“0”时各管段编码
D7
D6
D5
D4
D3
D2
D1
D0
字段码
显示数
Dp
g
f
e
d
c
b
a
1
1
0
0
0
0
0
0
C0H
0
C0H称为共阳极LED数码管显示“0”的字段码,不计小数点的字段码称为七段码,包括小数点的字段称为八段码。
LED数码管编码方式有多种,按小数点计否可分为七段码和八段码;按共阴共阳可分为共阴字段码和共阳字段码,不计小数点的共阴字段码与共阳字段码互为反码;按a、b、…、g、Dp编码顺序是高位在前,还是低位在前,又可分为顺序字段码和逆序字段码。
甚至在某些特殊情况下将a、b、…、g、Dp顺序打乱编码。
表4-2为共阴和共阳LED数码管几种八段编码表。
[15]
表4-3共阴和共阳LED数码管几种八段编码
共阴顺序小数点暗
共阴逆序小数点暗
共阳顺序
小数点亮
共阳顺序
小数点暗
Dpgfedcba
16进制
abcdefgdp
16进制
0
00111111
3FH
11111100
FCH
40H
C0H
1
00000110
06H
01100000
60H
79H
F9H
2
01011011
5BH
11011010
DAH
24H
A4H
3
01001111
4FH
11110010
F2H
30H
B0H
4
01100110
66H
01100110
66H
19H
99H
5
01101101
6DH
10110110
B6H
12H
92H
6
01111101
7DH
10111110
BEH
02H
82H
7
00000111
07H
11100000
E0H
78H
F8H
8
01111111
7FH
11111110
FEH
00H
80H
9
01101111
6FH
11110110
F6H
10H
90H
3.2.3LED数码管显示方式和典型应用电路
LED数码管显示电路在单片机应用系统中可分为静态显示方式和动态显示方式。
①静态显示方式
在静态显示方式下,每一位显示器的字段需要一个8位I/O口控制,而且该I/O口须有锁存功能,N位显示器就需要N个8位I/O口,公共端可直接接+5V(共阳)或接地(共阴)。
显示时,每一位字段码分别从I/O控制口输出,保持不变直至CPU刷新显示为止。
也就是各字段的亮灭状态不变。
静态显示方式编程较简单,但占用I/O口线多,即软件简单、硬件成本高,一般适用显示位数较少的场合。
②动态扫描显示方式
当要求显示位数较多时,为简化电路、降低硬件成本,常采用动态扫描显示电路。
所谓动态扫描显示电路是将显示各位的所有相同字段线连在一起,每一位的a段连在一起,b段连在一起…g段连在一起,共8段,由一个8位I/O口控制,而每一位的公共端(共阳或共阴COM)由另一个I/O口控制,如图4-4所示。
这种连接方式由于将多位字段线连在一起,当输出字段码时,由于多门同时选通,每一位将显示相同的内容。
因此要显示不同的内容,必须采取轮流显示的方式。
即在某一瞬间时,只让某一位的字位线处于选通状态(共阴极LED数码管为低电平,共阳极为高电平),其他各位的字位线处于开断状态,同时字段线上输出这一位相应要显示字符的字段码。
在这一瞬时,只有这一位在显示,其他几位暗。
同样在下一瞬时,单独显示下一位,这样依次轮流显示,循环扫描。
由于人的视觉滞留效应,人们看到的是多位同时稳定显示。
、
图4-4动态显示LED数码管连接方式
3.3:
DS18B20数字温度传感器介绍
3.3.1DS18B20的主要特性.
1.、适应电压范围更宽,电压范围:
3.0~5.5V,在寄生电源方式下可由数据线供电
2、独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯
3、DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温
4、DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内
5、温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃
6、可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温
7、在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快
8、测量结果直接输出数字温度信号,以"一线总线"串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力
9、负压特性:
电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。
2、DS12.2.2DS18B20的外形和内部结构DS18B20内部结构主要由四部分组成:
64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。
DS18B20的外形及管脚排列如下图1:
3.3.2DS18B20引脚定义:
(1)DQ为数字信号输入/输出端;
(2)GND为电源地;
(3)VDD为外接供电电源输入端(在寄生电源接线方式时接地)。
DS18B20内部结构图
3.3.3:
DS18B20工作原理
DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s减为750ms。
DS18B20测温原理如图3所示。
图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。
高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。
计数器1和温度寄存器被预置在-55℃所对应的一个基数值。
计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。
图3中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。
图3:
DS18B20测温原理框图
3.3.4:
DS18B20有4个主要的数据部件:
(1)光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。
64位光刻ROM的排列是:
开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。
光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。
(2)DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:
用16位符号扩展的二进制补码读数形式提供,以0.0625℃/LSB形式表达,其中S为符号位。
表1:
DS18B20温度值格式表
这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。
例如+125℃的数字输出为07D0H,+25.0625℃的数字输出为0191H,-25.0625℃的数字输出为FF6FH,-55℃的数字输出为FC90H。
表2:
DS18B20温度数据表
(3)DS18B20温度传感器的存储器DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EEPRAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。
(4)配置寄存器该字节各位的意义如下:
表3:
配置寄存器结构
TM
R1
R0
1
1
1
1
1
低五位一直都是"1",TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。
在DS18B20出厂时该位被设置为0,用户不要去改动。
R1和R0用来设置分辨率,如下表所示:
(DS18B20出厂时被设置为12位)
表4:
温度分辨率设置表
R1
R0
分辨率
温度最大转换时间
0
0
9位
93.75ms
0
1
10位
187.5ms
1
0
11位
375ms
1
1
12位
750ms
4、高速暂存存储器高速暂存存储器由9个字节组成,其分配如表5所示。
当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节。
单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式如表1所示。
对应的温度计算:
当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变为原码,再计算十进制值。
表2是对