无线汽车轮胎防爆系统
2017-09-27陈子建戴庆达王文博陈宇朱红李伙全曾祥华
陈子建++戴庆达++王文博++陈宇++朱红++李伙全++曾祥华
摘 要:文中实现了一种基于AT89C51单片机和DS18B20温度传感器的汽车轮胎防爆系统,无线收发数传模块PTR8000用于无线通信。系统分为发送端和接收端两部分,发送端通过DS18B20传感器采集汽车轮胎温度并将温度值传送给发送端单片机,发送端单片机经PTR8000模块将温度值通过无线方式传送给接收端单片机,接收端单片机将温度值在1602液晶上实时显示,当汽车轮胎温度高于预警温度时,蜂鸣器发出报警声音,此外,接收端通过RS-232接口与计算机通信,将汽车轮胎温度值传输到驾驶室的PC机。系统基于Keil 2编程,采用C语言编写程序。
关键词:无线传输;AT89C51;DS18B20;PTR8000;轮胎防爆
中图分类号:TP393 文献标识码:A 文章编号:2095-1302(2017)09-00-05
0 引 言
随着经济社会的飞速发展,汽车已成为生活中不可或缺的一种交通工具,已和人們的生活融为一体。随着汽车数量的不断增加,各种交通事故也层出不穷。据美国汽车工程师协会的调查统计表明,70%的交通事故是由轮胎故障引发的,尤其在高速行驶的情况下。当汽车行驶时,如果轮胎爆炸或自燃,必定会造成严重的车祸,后果不堪设想。汽车轮胎的温度过高,会导致轮胎内气体压强增大,引发胎爆的危险。
随着计算机技术、电子技术和通信技术在生活中的不断发展和应用,人类社会已进入了信息时代,自动化、智能化处理信息的能力不断提高,并在生产、生活的各个领域中得到了广泛应用。物联网是在互联网、移动通信网等通信网络的基础上,利用具有感知、通信与计算能力的智能物体自动获取物理世界的各种信息,将所有独立寻址的物理对象联接起来,实现全面感知、可靠传输、智能处理,构建人与物、物与物相连的智能信息系统。物联网的主要特征包括全面感知、可靠传输、智能处理。本文设计了一种无线汽车轮胎防爆系统,该系统利用温度传感器实时采集汽车轮胎温度,并通过无线传输方式将实时采集到的温度值发送到驾驶室终端,当汽车温度较高时,向驾驶人员发出预警信息,从而有效避免胎爆事故的发生。
1 系统方案
1.1 系统设计
本设计分为发送端和接收端两部分。发送端包括温度采集模块和无线发射模块,接收端包括无线接收模块和显示模块。发送端和接收端的通信依靠低功耗近距离无线收发模块进行。系统硬件由温度传感器、单片机、无线收发模块、蜂鸣器、液晶显示屏、电源及电阻、电容等分立器件组成,焊接在两块小型印刷电路板上。
系统软件设计和硬件设计相对应,也分为发送部分和接收部分。其中,发送部分包括温度采集程序和无线发射程序,接收部分包括无线接收程序和显示驱动程序。系统整体框图如图1所示。
1.2 工作原理
将发送端的电路板固定在汽车轮毂上,使发送端温度传感器成功采集轮胎温度数据,通过1-Wire线传送给单片机,单片机通过模拟SPI口将温度值传送给无线发送模块,然后无线发送模块将温度值通过433 MHz电磁波的形式发送给接收端的无线接收模块。接收端的无线接收模块接收到数据后同样通过模拟的SPI口送给接收端的单片机,然后单片机根据采集到的温度值驱动液晶显示屏显示温度值,并根据设定的车胎预警温度值驱动蜂鸣器工作,蜂鸣器和液晶显示器放置在汽车驾驶室内,实现对轮胎温度的实时预警。
2 系统的硬件部分
2.1 硬件原理
2.1.1 AT89C51单片机
AT89C51是美国ATMEL公司生产的一种带4KB Flash存储器的低电压、高性能CMOS 8位51内核单片机,性价比高,适用于各种控制领域。AT89C51单片机与MCS-51内核兼容;采用三级程序存储器锁定;拥有128 B内部RAM;32个可编程I/O口;两个16位可编程定时器/计数器;5个中断源;1个可编程串行口。
AT89C51单片机的存储器采用“哈佛结构”,物理结构上分为4个存储空间,即片内程序存储器、片外程序存储器、片内数据存储器和片外数据存储器。逻辑结构上,AT89C51有3个存储空间,即片内外统一编址的64 KB程序存储器地址空间(用16位地址)、片内数据存储器地址空间(寻址范围00H~FFH)、64 KB片外数据存储器地址空间。
2.1.2 DS18B20温度传感器
DS18B20是美国Dallas半导体公司推出的集成数字化温度传感器,它可直接将被测温度转换为串行数字信号,供微处理器处理,同时还具有微型化、功耗低、高性能、抗干扰能力强等优点。
DS18B20温度传感器采用单总线技术,与AT89C51通信只需一根引脚,节省了单片机的硬件资源;直接输出温度值(二进制补码),无需外部电路处理;每个器件片内ROM都存有一个唯一的64位序列号;测量温度范围为-55~125℃,测量精度为±0.5℃,非常适合于汽车轮胎的温度测量;温度测量分辨率为9~12位,默认为12位,用户可自行选择;由数据线提供电源,支持3~5 V的电源电压,使设计更为灵活方便。
DS18B20采用单总线技术(1-Wire),即只用单根信号线既可传输时钟信号,又可传输数据,且数据传输是双向的,故须遵循严格的协议。单线协议由复位脉冲、应答脉冲、写0、写1、读0和读1这几种信号类型组成。在这些信号中,除应答脉冲外,其他均由主机发起,并且所有的命令和数据都是字节的低位在前。
需要注意的是,所有的读/写时序都必须在60 μs以上,且每两个独立的时序之间至少需要1 μs的恢复时间。
DS18B20输出的温度值以16位带符号位扩展的二进制补码形式表示,存放在暂存器的第1、2字节。9位的温度分辨率为0.5℃,10位为0.25℃,11位为0.125℃,12位为0.062 5℃。温度转换时间与位数有关,9位为93.75 ms,12位为750 ms。endprint
DS18B20的所有操作均從初始化开始。另外有5条ROM指令和6条存储器指令。我们主要用到以下三条指令:
(1)跳过ROM命令(CCH):允许单片机跳过ROM序列号检测而直接对寄存器进行操作,以节省时间。但该指令不能用于多片DS18B20的系统。
(2)温度转换命令(44H):启动温度转换。如果在此命令后主机产生读时隙,那么只要温度转换正在进行,主机就会收到‘0;如果温度转换完成,主机就会收到‘1。
(3)读暂存器命令(BEH):此命令用于读取暂存器内容,从第1字节开始,直到读完第9字节。
2.1.3 无线收发数传模块PTR8000
无线收发模块PTR8000(nRF905无线收发模块)是在Nordic VLSI公司最新封装改版的nRF905无线通信芯片的基础上,经优化设计的近距离无线模块。其专为点对多点无线通信设计,内置数据协议和CRC校验,无乱码输出,工作于免许可证使用的全球开放ISM频段(433 MHz),具有高性能、低功耗,接收灵敏度高,抗干扰性强,集成度高,通信稳定等优点,是目前主流的无线收发应用。PTR8000模块包括430/868/915 MHz高性能嵌入式无线模块,多频道多频段;采用1.9~3.6 V低电压工作,待机功耗仅为2 μA;超小体积,内置环行天线,性能稳定且不受外界影响,对电源不敏感;最大发射功率为+10 dBm,高抗干扰GFSK调制,可跳频,数据速率为50 Kb/s ,拥有独特的载波监测输出、地址匹配输出、数据就绪输出;内置完整的通信协议和CRC,只需通过SPI 接口即可完成所有的无线收发传输,无线通信如同SPI 通信一样方便。
图2所示为PTR8000的用户接口,该接口由10个数字输入/输出(I/O口) 组成,按照工作分工可分为三组。
(1)模式控制
该接口由TRX_CE、TX_EN、PWR组成,控制PTR8000的四种工作模式分别为掉电和SPI编程模式、待机和SPI编程模式、发射模式、接收模式。各种模式的控制模式见表1所列。
掉电模式下的功耗约为2.5 μA,此时所有电路关闭,进入最省电状态;待机模式下的功耗约为40 μA,此时发射/接收电路关闭,只有SPI接口工作;在掉电和待机模式下PTR8000均不能接收发射数据,但可以进行配置。
(2)SPI接口
PTR8000模块内置一个SPI接口,通过其与主设备通信。SPI接口由SCK、MISO、MOSI以及CSN信号线组成。在配置模式下,单片机通过SPI接口配置PTR8000 的工作参数;在发射/接收模式下,单片机通过SPI接口发送和接收数据。
(3)状态输出接口
该接口提供载波检测输出CD、地址匹配输出AM、数据就绪输出DR。
PTR8000模块的SPI配置方法如下:
当CSN为低时,SPI接口开始等待一条指令,任何一条新指令均由CSN由高到低转换开始。
SPI串行接口指令包括写配置寄存器指令W_CONFIG(WC)、读配置寄存器指令R_CONFIG(RC)、写TX有效数据指令W_TX_PAYLOAD(WTP)、读TX有效数据R_TX_PAYLOAD(RTP)、写TX地址指令W_TX_ADDRESS(WTA)、读TX地址指令R_TX_ADDRESS(RTA)、读RX有效数据指令R_RX_PAYLOAD(RRP)。
2.1.4 LCD1602液晶模块
LCD1602是一种工业字符型液晶,是显示字母、数字、符号等的点阵型液晶模块,具有体积小、使用方便、价格低廉、耗功低、稳定性高等特点。
2.2 硬件电路模块设计
2.2.1 温度采集模块硬件电路设计
因为DS18B20是单总线器件,只有一根信号线,外加一根电源线和一根地线,所以接线比较简单,如图3所示。
2.2.2 无线收发模块硬件电路设计
无线收发模块包括发送和接收两部分。
PTR8000有14根引脚,除去1根电源线和2根地线,TX_EN、TRX_EN、PWR三根引脚用于模式控制,CSN、SCK、MOSI、MISO四根引脚属于SPI接口,CD、AM、DR用于状态输出。
图4所示为发送端PTR8000和单片机的连接图,图中P1接头的1~14引脚分别对应PTR8000模块的1~14引脚,其中,Pin1是电源引脚,接一个简单的分压电路,输入1.9~3.6V电压,如图5所示。
2.2.3 RS-232接口模块
添加RS-232接口的目的在于将接收端获取的汽车轮胎温度信息传送到汽车驾驶室的PC机终端。RS-232接口模块主要包括一块MAX232芯片和一个RS-232插口。MAX232芯片是美国半导体公司美信(MAXIM)专门为计算机RS-232标准串口设计的单电源电平转换芯片,使用+5 V单电源供电。RS-232C标准电平采用了负逻辑,其中,+3~+15 V为逻辑 ‘0,-3~-15 V为逻辑‘1。这种较大的输入输出摆幅及差分信号的通信方式有助于提高接口模块的抗干扰能力。
AT89C51与PC机通过串口通信时,尽管单片机有串行通信功能,但单片机提供的信号电平和RS-232C的标准电平不一致,因此需要通过MAX232接口芯片进行电平转换。
2.3 电路原理框图
系统原理图如图7所示,包括发送和接收两部分。发送部分包括温度采集模块和无线发送模块。接收部分包括无线接收模块、显示模块和RS-232接口模块。
3 系统的软件部分
系统的软件部分用于轮胎防爆的温度采集系统程序设计,主要包括温度采集、PTR8000无线通信和主程序三部分。无线通信部分又分为发送和接收两部分。系统接收部分原理图如图8所示。endprint
3.1 温度采集模块部分的程序设计
鱼和熊掌不可兼得,硬件电路简单也意味着软件设计比较复杂。因为采用单总线技术,所以DS18B20对通信时序的要求非常严格,温度采集模块的状态转换图如图9所示。
DS18B20的程序由三个基本的小程序模块组成,它们是3个自定义函数,分别为复位函数void ow_reset(void);向单总线写1个字节函数void write_byte(uchar val);从单总线上读一个字节函数uchar read_byte(void) 。自定义read_temp()函数调用复位、读字节、写字节3个函数,按照图9的流程读出温度。
write_byte函数经单总线向DS18B20写一个字节命令或数据,一个写周期只写1位,8个周期写1个字节。写时序严格按照DS18B20的初始化时序和读/写时序来写0和1的时序,每个写周期先输出15 μs的低电平。若要写1,则输出60 μs的高电平;若要写0,则输出60 μs的低电平。
read_byte函数经单总线从DS18B20读1个字节数据。一个读周期只读1位,8个周期读1个字节。同样,读1位的时序也严格按照DS18B20的初始化时序和读/写时序进行。先拉低信号线15 μs,然后释放。若信号线为高,则读出1;若信号线为低,则读出0。
借助read_temp函数完成整个读温度流程。先初始化DS18B20,然后写跳过ROM命令(CCH),写温度转换命令(44H),然后等待温度转换完成。写跳过ROM命令(CCH)和读暂存器命令后,读出温度值。由于DS18B20输出的温度值是以二进制补码的形式存放,因此需要对其进行转换。
此外,温度采集部分的程序中还包括端口定义和一个延时函数。
3.2 无线发送模块编程
PTR8000和单片机通信需借助一个SPI接口,由于AT89C51没有内置SPI接口,所以需要用软件模拟。在发送模式中,PTR8000自动产生前导码和CRC校验码,数据准备就绪(DR),信号通知AT89C51数据传输已完成。此举不仅降低了单片机存储器的要求,同时也缩短了软件开发时间。
PTR8000的数据发送可以分为确定数据和地址、确定发送模式、数据发送和发送完成四个步骤。
上电后,单片机首先配置PTR8000模塊,然后进入发射模式,进行温度数据的发送。
配置模式和发射模式的设置通过TRX_CE、TX_EN、PWR信号线完成。
发射模式的工作流程如下:
(1)接收节点的地址 (TX-address)和有效数据(TX-payload) 通过SPI 接口传送给PTR8000;
(2)AT89C51设置TRX_CE和TX_EN为高来启动传输;
(3)PTR8000发送数据(无需单片机干预);
(4)如果AUTO_RETRAN被设置成高,PTR8000将连续发送数据包,直到TRX_CE被设置成低电平;
(5)当TRX_CE被设置成低时,PTR8000结束数据传输,并将自己设置成待机模式。
因此,发送模块的PTR8000 C语言文件包含4个基本的函数:
(1)void ini_system(void):进入配置模式,初始化PTR8000;
(2)void setmode():设置发送模式,使PTR8000进入发送模式;
(3)void Spiwrite(uchar dat):通过SPI写一个字节;
(4)void Txpacket(void):将接收节点的地址和数据传给PTR8000,并发送。此外,还包括管脚配置和一个延时函数。
void Spiwrite(uchar dat) 函数严格按照PTR8000模块的SPI写时序编写,每个写周期写1位数据,8个周期写一个字节。
void Txpacket(void) 函数中先写4个字节的接收地址,然后写3个字节的发送数据。
3.3 无线接收模块编程
在接收模式中,AT89C51单片机与PTR8000的通信同样要借助一个软件模拟的SPI接口。由于PTR8000自动去掉数据或地址的前导码和CRC校验码,所以当地址匹配(AM)信号和数据准备就绪(DR)信号通知AT89C51一个有效的地址和数据包已经各自接收完成时,单片机即可通过模拟的SPI接口读取接收的温度数据。同样,此举不仅降低了单片机存储器的要求,也缩短了软件开发时间。
上电后,接收端的单片机首先配置PTR8000模块,然后进入接收模式,等待发送端的PTR8000模块将温度数据传送过来。
PTR8000的接收模式工作流程如下:
(1)设置TRX_CE为高、TX_EN为低,进入接收模式;
(2)650 μs后,PTR8000开始监测空中的信息;
(3)当PTR8000发现和接收频率相同的载波时,载波检测(CD)被置高;
(4)当PTR8000接收到有效的地址时,地址匹配(AM)被置高;
(5)当PTR8000接收到有效的数据包时,数据准备就绪(DR)被置高;
(6)89C51可以以合适的速率通过模拟的SPI接口读出有效数据;
(7)当所有的有效数据被读出后,PTR8000将AM和DR置低。
接收模式的PTR8000程序由延时函数delay、初始化函数ini_system、模式设置函数setmode、读1字节函数Spiread、写1字节函数Spiwrite以及接收数据包函数Rxpacket组成。
延时函数void delay(uint x) 用以实现读写时序;写1个字节函数void Spiwrite(uchar dat) 和读1个字节函数uchar Spiread (void) 应严格遵守PTR8000 SPI接口的读写时序,每个读写周期读写1位数据,8个周期读写一个字节;初始化函数void ini_system(void) 完成PTR8000的写配置,并进入接收模式;接收数据包函数void Rxpacket(void) 需要调用Spiwrite和Spiread函数,完成数据包的读入,数据包为4 B,保存在Rxbuf数组中。此外,程序还包括管脚配置和常用指令的声明。endprint
3.4 主函数
主函数同样分为发送部分主函数和接收部分主函数。发送部分主函数的工作流程如下:
(1)配置温度传感器DS18B20;
(2)配置无线模块PTR8000;
(3)从DS18B20中读取温度,并转换;
(4)将温度值用PTR8000发送出去;
(5)回到(3)。
接收部分主函数的工作流程:
(1)配置液晶模块LCD1602;
(2)配置无线模塊PTR8000;
(3)等待发送端发送温度数据;
(4)从PTR8000读取温度值;
(5)将温度值显示在LCD1602上,并驱动蜂鸣器;
(6)回到(3)。
4 结 语
本文提出了一种基于PTR8000的轮胎防爆系统设计方案。先对方案中用于轮胎防爆的温度采集预警系统的总体设计进行了介绍,同时对系统中所要用到的主要器件进行了介绍,然后对系统的硬件设计分模块进行了分析,并重点设计了轮胎防爆系统的软件部分。编程基于Keil 2,采用C语言,主要分为主程序、温度采集和PTR8000无线通信三部分。
本文研究的重点在于汽车驾驶的安全性,目前70%左右的交通事故的原因是轮胎故障,本设计通过传感器检测轮胎行驶时的温度,当轮胎的温度数值超出警戒值时,紧急报警,使得驾驶员实时正确的了解轮胎情况,避免由于轮胎爆炸引发的交通事故,保证驾驶员及乘客的安全。该技术的推行能有效避免由于轮胎爆炸而引发的交通事故,提高行车安全系数,具有良好的社会效益。
参考文献
[1]王宏伟.32位和8位单片机的无线传感器网络系统[J].单片机与嵌入式系统应用,2014(7):32-34.
[2]曾小宝,宋锐.基于单片机无线智能防火报警器的设计[J].中国电子商务,2012(8):109.
[3]刘灿,王文炜,龙祖强,等.汽车轮胎压力监测系统的实现[J].电子测试,2011(5):10-13.
[4]李敏,赵继印,陈兴文,等.汽车轮胎爆胎预警系统综述[J].大连民族学院学报,2011,13(5):454-457.
[5]蒋强,张小英.基于PTR8000射频模块的火警探测器的实现[J].自动化仪表,2008,29(4):26-28.
[6]李瑶,王保帅.基于MSP430F449单片机的数据通信与显示系统设计[J].物联网技术,2017,7(1):39-41.
[7]张锋.基于DS18B20的温度测控系统设计[J].物联网技术,2014,4(6):19-21.
[8]熊阳.汽车轮胎自动供电高温防爆无线监测系统[J].技术与市场,2011,18(8):110.endprint