引言
TPMS是一个通过监测轮胎内部气压和温度来防止爆胎事故,从而保证汽车安全行驶的安全方案与工具。在国内TPMS仍属于刚兴起的高新汽车电子产品,尚处于开发阶段,形成批量仍需要一个过程,而市场上现有的能见度较高的TPMS方案主要由3家芯片供货商主导: 飞思卡尔公司、英飞凌公司和通用传感与测量公司。
本文是针对现有卡尔方案进行升级,从而解决现行方案存在的很多问题,如发射模块与接收模块相距较远、射频通信可靠性不高等。由此,本文提出了基于ARM和μC/OSII的TPMS方案,并引入CAN(Controller Area Network,控制器局域网络)总线进行通信,降低了射频信号功率要求,系统运行更加可靠、稳定,并且更易于与现有汽车电子系统相整合及升级;同时,对MC68HC908RF2软件设计进行优化,降低了发射模块的功耗,提高了射频通信的可靠性。
1系统总体介绍
如图1所示,轮胎压力监测系统由3部分组成:发射模块、中转接收模块和与其他汽车电子设备共享的仪表显示模块。
图1系统总体结构框图
系统的工作流程:发射模块的MCU定时采集当前压力、温度值,同时对电源电压进行监测,并生成CRC校验码完成组帧,然后软件实现曼彻斯特编码,并通过射频电路将轮胎内部压力值、温度值、发射模块的电源信息以及校验信息发送给中转接收模块;中转接收模块正确接收到射频信号后,将其转化为数字信息,并封装为CAN总线数据帧,发送至显示模块;由显示模块实现轮胎压力、温度值、发送模块电源状况以及报警等显示。
2系统硬件设计
2.1发射模块硬件设计
发射模块包括传感器单元MPXY8020A、微处理器及射频发射单元MC68HC908RF2两个部分,如图2所示。
图2发射模块硬件结构框图
传感器单元采用的是Motorola公司专门为TPMS研制的胎压传感器芯片MPXY8020A(也称“Daytona”)。该芯片内部集成了压力和温度传感器,压力测量范围是0~637 kPa,温度的测量范围是-40~125 ℃[1]。S0、S1引脚用于待机、测压力、测温度和读数据4个状态之间的切换;OUT引脚是采样电容采样值与其内部的D/A寄存器值比较的输出引脚;CPU可以通过CLK和DATA两个引脚使用SPI协议串行写入D/A寄存器。本设计采用I/O口模拟SPI时序逐次逼近写入D/A寄存器并判断OUT引脚的方法来获取当前胎压和温度的逼近值。
微处理器及射频发射单元采用Motorola公司8位单片机MC68HC908RF2简称“RF2”作为核心处理器,外加自制小型PCB天线。MC68HC908RF2是MCU芯片MC68HC908RK2(简称“RK2”)和RF发送器MC33493(又称“Tango3”)两款芯片的集成[2]。RK2是整个发射模块的控制核心,主要实现传感器的配置、胎压和温度数据的读取以及发送、电源管理、数据编码等功能。Tango3的配置工作完全由RK2完成,包括射频通信模式、频带选择、调制方式、射频信号使能等。Tango3的外部晶振频率为13.56 MHz。该晶振的作用即在DATACLK引脚为RK2提供参考时钟,本设计中参考时钟频率为212 kHz,RK2利用该时钟完成射频数据的曼彻斯特编码,并将数据以特定波特率(9 600 b/s)输出在PTB2引脚。
2.2中转接收模块硬件设计
中转接收模块的硬件部分主要由射频接收单元、核心单元、通信接口单元、状态显示单元构成,如图3所示。
图3中转接收模块硬件结构框图
射频接收单元采用与Tango3兼容的接收器MC33594(又称“Remeo2”)作为射频接收芯片,外加鞭状天线,完成射频信号的接收和解码,并通过SPI接口将数据传给核心模块。
核心单元采用Atmel公司为超低功耗应用而设计的一种ARM核微控制器AT91M55800A作为主控制器。该芯片将带有片内SRAM的ARM7TDMI处理器核、各种外围功能模块、模拟接口和低功耗振荡器集成于单一硅片,从而为各种超低功耗应用提供了一个高度灵活和高性价比的解决方案。AT91M55800A丰富的内部外设为系统的升级提供了很大空间[3]。该单元采用两层板设计,外扩32 KB RAM和512 KB Flash实现了最小系统,从而满足μC/OS内核和应用程序的存储及运行的基本要求。核心单元通过四方向60插针的插槽将片上资源引出,为扩展板提供了良好的接口。
通信接口单元中包括与PC机通信的RS232串口和CAN通信接口。RS232串口用于调试和将应用程序烧写至Flash。CAN通信接口用来完成中转接收模块与显示模块的通信,采用自带SPI接口的CAN控制器MCP2510外加CAN驱动芯片PCA82C250来实现,由于汽车环境下的干扰信号较为复杂,所以在CAN控制器和驱动器间使用光耦6N137进行信号隔离来降低干扰。
状态显示单元用于显示监测到的胎压、温度值是否超限,并作出报警指示。
模块设计过程中,Remeo2与AT91M55800A的通信已占用SPI接口,而在接收射频数据状态中,Remeo2要求设为主模式,处理器设为从模式,这又与CAN控制器MCP2510的通信要求矛盾,从而造成SPI资源不足;另外,频繁的主从切换也会导致Remeo2丢帧或工作异常。为此采用I/O口模拟SPI时序的方法扩充了一个SPI接口,用于AT91M55800A与MCP2510之间的通信,从而解决了上述问题。
3系统软件实现
3.1发射模块的软件开发
3.1.1软件功能及工作流程
发射模块的软件设计采取前后台的方式,采用C语言和汇编语言混合编程方法,汇编语言用于RF2工作模式的切换。其具体过程为:上电后首先进行包括I/O口、键盘中断、内部时钟、定时器等的初始化,然后系统进入STOP模式,等待由Daytona产生键盘中断唤醒MCU。在键盘中断处理函数中首先读取胎压和温度值,然后利用RF2的LVI模块(Lowlevel Voltage Inhibit,低压抑制模块)进行电压监测,最终生成由32位ID标识、胎压值、温度值、电压状态、校验码组成的数据帧。在轮胎运转状态下,发射模块和中转接收模块的方向和角度是不断变化的,有时会出现通信的盲点。为了降低接收端接收不到数据的概率,发射模块增加发射次数,一般连续发送4~5次,并且两次发送之间增加随机延时,从而降低多个轮胎同时发射数据产生冲突的概率。
3.1.2低功耗设计
发射模块不易更换,要求用一节锂电池能工作3年以上,所以发射模块的低功耗设计非常重要。有如下相关措施:
① 让发射模块的RF2始终处于待机模式,由Daytona产生键盘唤醒信号来实现数据的采集和射频信号的发送。
② 射频发射也是耗电的主要因素,所以应尽量减少不必要的发射,比如在此次采样值较前一次采样值变化在5%范围内则不发送。
③ 射频发送的数据帧长度应尽量缩短。
④ 在测量或待机状态下应保证RF2的射频使能引脚为低,即禁止UHF模块,只有在发射数据时才使能UHF,这也是降低功耗的一个方面。
3.2中转接收模块的软件开发
3.2.1μC/OSII操作系统的移植
因为对于轮胎压力和温度的准确监测涉及生命和财产安全,故TPMS系统对于实时性的要求较高。μC/OSII是一种基于优先级的抢占式多任务实时操作系统,其实时性能以及内核的健壮性和紧凑性早已在大量的实际应用中得到了证实,故本系统采取μC/OSII来进行软件架构的搭建。中转接收模块的μC/OS系统移植示意图如图4所示。
图4μC/OS系统移植示意图
μC/OSII绝大部分代码用与处理器无关的C语言写成,只有与处理器相关的很少代码由汇编编写。要实现μC/OSII向硬件平台的移植,需要做两方面的工作:一是重新定义内核的大小和功能;二是为内核编写与硬件相关的代码。
OS_CFG.H文件用于配置内核的属性,根据应用修改。
与硬件相关的代码只涉及3个文件,核心代码的9个文件完全不需改动,2个配置文件在编写应用程序时按需要改动。与CPU类型有关的代码文件主要有3个:OS_CPU.H、OS_CPU_A.ASM和OS_CPU_C.C。OS_CPU_A.ASM和OS_CPU_C.C文件是硬件相关的汇编代码和C代码[4]。
3.2.2应用程序开发
中转接收模块的应用程序中一共划分了5个任务和2个中断。5个任务包括初始化任务、MC33594配置任务、MC33594接收任务、CAN总线发送任务、指示任务,优先级分别为5、6、7、10、9;2个中断为SPI接收中断和CAN接收中断。在该软件方案中,使用了1个信号量、2个消息队列用于任务间的通信。SPI是MC33594和AT91M55800A的通信接口,使用消息队列1传递接收到的射频数据;CAN接收中断没有与其他任务的通信,暂时留出与上位机的通信接口。各个任务的工作流程如图5所示。
图5各任务工作流程
4测试结果
在客车车身总线平台上配合其他汽车电子设备对轮胎内部温度及压力参数进行测试,系统持续运行时间最长达50小时,运行状态正常,仪表系统的胎压及胎温仪表能够实时准确更新。
5结论
本轮胎压力监测系统实现了轮胎内部压力及温度的实时监测以及报警显示等功能。ARM微控制器的应用以及μC/OSII操作系统的移植,提高了处理能力,系统的可靠性、实时性和开放性均得到很大改善。本系统已通过相关车身测试,效果良好,具有较高的推广价值。