Motorola HCXX系列闪速微控制器(MCU)单元和一种新型的电容压力传感器。这种系统适合于集成到现成的RKE系统中,其直接压力测试法(与防抱死系统(ABS)的间接法相反)对于测试轮胎内的压力和温度是一种最可行的方式。
本文详细说明了一个实际系统的装配严密的轮胎压力和温度数据的采集实现方法。它使用了一种非常有效的测试轮胎内数据的算法,理论上这种方法和实际投产产品设计非常相似。参考设计中的许多功能可以在实际的产品系统中使用。但是,除了明显的用户定义的软件和节能算法外,这种方法和一个实际的市场解决方案之间的主要不同在于其涉及的法律和检测RF辐射规定。发射机的天线和发射输出有效匹配,然而这种匹配网络是一种高通滤波器,所以存在有用信号的高次谐波辐射。为了在批量生产实际产品中使用这种芯片,天线应该重新设计以符合相关规定,这可能会影响发射功率。
Motorola TPM 芯片
TPM 系列包括下面4种芯片: 
1. MPXY80x0,称为Daytona,这是一种表面微机械加工的电容性微机电系统(micro electromechanical system MEMS)压力传感器。Daytona包括压力变换器、正温度系数扩散电阻温度传感器及其他所有必需的电路。使之能输出经过校准的8位数字压力和温度数据。所有这些都在一个芯片上。
2. MC68HC908RF2,也称RF2,它包括两个部分,第一个是2KB的闪速 HC08 微控制单元(与MC68HC908RK2相同),第二部分是一个可以发射UHF频段数字数据的RF发射器,其发射距离在一个自由空间中可达数百米(与MC33493相同,又称Tango 3)。
3. MC33594称Romeo2,接收 RF2发射信号的接收器。Romeo2可以接收和解调曼彻斯特编码的数据并通过普通串行外设接口(SPI)输出。
4. MC68HC908KX8,简称KX8,此微控制器在这个的演示方案中是随便选用的。
Motorola为用于汽车场合的微控制器提供大的选择余地。在产品系统中,可以使用MC9S12DP256替代KX8,MC9S12DP256提供五种控制局域网(controller area network CAN)接口,完成如TPM那样不算复杂的任务速度足够快。
硬件配置

轮胎压力检测系统参考设计包括5个模块:4个轮胎模块和1个接收模块。轮胎模块包括Daytona、 RF2、电池、分立元件和印制天线。接收模块有Romeo2、KX8、5个指示状态的LED、电池、电源接插件和RS-232串行接口。轮胎模块电路图见图2。
显然,Daytona和RF2的外围元件很少。因为RF2包括一个内在的时钟产生器,所以MCU不需要外配晶体(21和22脚开路)。发射器用晶振作为锁相环(PLL)基准振荡器。该演示装置使用13.56MHZ的晶振提供433.92MHZ的发射载波频率。图2对RF2用于RKE1应用示例电路图技术规格作了简化。图中的开路 I/O引出脚连接到了Daytona,同时也增加一个天线匹配网络。
对于TPM应用来说,调制方法采用频移键控(frequency shift keying FSK)比开关键(on-off keying OOK)更加可靠。该图对OOK或者FSK都适合,且MCU实际上还可以在这两种调制方式之间进行快速切换。轮胎模块的布线图如图3所示。
所有的元件都焊接在板子的一面。另一面上深蓝色部分(见图3)是地线和印制天线,当安装到钢圈轮缘上后,除了压力传感器外(将其倒装,从印制板中间开的方孔中露出)印制板暴露的一面没有其他元件。这样可以使整个下层印制板上的焊点和元件一起涂以保护介质以免压力变送器露在空气中。上层也可以进行同样的保护,但要给Daytona留个口。
发射板由三个螺丝固定在基座内,左边的两个可用高强度的金属螺钉,但是由于金属可能会使天线失调,所以中间孔右边的那个使用的是塑料螺钉。天线周围的其他大孔可以用陶土混合物来代替conformal涂料填充。
轮胎模块演示使用的基座是用一块GE公司型号为ULTEM 1000 聚醚铣亚胺(Polyetherimide)塑料经机械加工而成。其底面要加工成与16英寸轮缘凹槽非常吻合,但只要稍许用一点环氧也可以使之用于15或17英寸的轮缘。基座可以使用坚固的环氧来粘到轮缘,如再用尼龙带扎紧就更加安全。

接收模块
为了模拟实际产品应用,用五个LED提供基本的轮胎压力告警功能。模块所需的电源可用标准9V电池或其他两极电源。二极管保护允许两个电源同时连接。
Romeo2的正确接法如图2实例所示。我们这个演示中不使用Romeo2的闸门strobe振荡器,所以在这个电路图中R1由一个0Ω的电阻器代替。在通过LED传递信息的同时,精确的压力、温度值及轮胎模块的状态通过9针的RS-232串行接口发送。该接口还可以把组态信息从PC发送到KX8。

为使使用者能够易于辨认哪个轮胎有问题,在PCB板上一个画了一辆汽车。虽然KX8有一个如RF2一样的内部时钟产生器,但是串行通信接口(SCI)要求有一个非常精确的定时,故又用了一个外部晶振。Romeo2有其自己的PLL,这个PLL要求它使用另一个晶振(这里,载波为434MHz时采用13.580625 MHz的晶体)。
硬件显示
为了模仿一个实际的应用,设置了一个可以提供压力警告功能的轻便显示器,它包括5个LED,读取方法如下:
● 1~4LED分别表示左前、右前、右后和左后轮胎。每一个灯在电源接通后都有同样的功能:
1. LED不亮表示压力信息正常。
2. LED闪烁表示轮胎模块需要维修,两种情况下可能出现这种状态:
a. 在状态位中设置两种比特:LVIOUT 和 LOWV,它表示轮胎内的电池电压低;
b. 在大于7.5分钟的时间接收不到从轮胎内传来的数据。
3. LED常亮表示从某个轮胎接收到的压力数据低于或正处于阈值。这个极限值在缺省状况下为105kPa(15.23PSI),需要时也可以方便的通过串行口来改变。
● LED5用于指示系统总体情况:
1. LED闪烁表示一帧数据处于正常(不是快速)接收模式;
2. LED常亮表示至少一个轮胎模块被置到快速传播模式,它指示一个测量的压力在最近27秒内至少改变了12kPa。这通常指示一个意外的漏气,在轮胎膨胀时此灯也会亮。
停车/开车模式
在实际的应用中,接收模块可从其他状态(例如:点火状态)接收到汽车是否处在停车或开车模式的信息。其他算法也可以用作系统接收端的滚动检测。演示模块中,用一个转换开关或跳线作停车或开车模式间的切换。
当开关从一个模式转换到另一模式时,需加软件防抖动例行程序,然后接收机MCU对Romeo2的调制和数据速率进行重新配置。当前的这个轮胎模块版本不包含惯性开关,在开车模式下一直发送数据。为此,我们推荐把开关设置在开车或FSK位置。
RS232接口
双向串行RS232接口主要用在对数据的采集。然而,一些用户自定义的数据也可以覆盖缺省配置而输入接收机。发送的数据是原始16进制数据。
每次当接收MCU决定4个轮胎模块中的一个发送一个没有遭受破坏的数据帧时,完整的数据帧(轮胎识别符通过校验和)被送到串行接口。用户可编程信息包括低压阈值(用来决定是否点亮轮胎的LED)和每一个轮胎的识别符(32位)也可通过串行口发送。
数据格式
发射机和接收机都需要按要求支持一个简单的通信协议。数据以9600bps的速率传送,采用FSK调制作曼彻斯特编码。曼彻斯特编码就是一个数字信号值在每一个比特位周期内作高、低电平之间切换。前半周期低电平后半周期高电平表示数字0,而先高后低表示数字1。
FSK定义为一个信号的两个不同的频移值分别表示数字高、低两种电平。在这个系统中,低频移表示数字高电平,高频移表示数字低电平。也就是说,如果载波频率是433.92MHz而且总的频偏是±fdev,则数字高电平就是433.92-fdevMHz,数字低就是在433.92+fdevMHz。

Romeo2接收机使用数据管理器解调和解码这种数据格式。当特定的唤醒信号被发送后,数据管理器使能,它所接收到的数据通过一个串行外围接口被发送到MCU。
轮胎模块发送的打包数据叫做数据帧。当轮胎模块MCU判决到发送数据帧时,它唤醒接收机发送数据,然后再返回到睡眠状态。数据帧的格式如表2所示。
前同步码
前同步码的长度为16比特位且总设置为0xFB86。这样处理有三个目的:
● 0xF(1111):Romeo2 至少需要四比特的前同步码来唤醒它,并让它的内部电路稳定。
● 0xB8(1100 1000):Romeo2中的寄存器2被编程为0xB8,这样使前同步码中的0xB8数据被验证并接通数据管理器。
● 0x6(0110):Romeo2中报头被使能,它指示有实际的数据跟随(以设备ID开始)
因为报头数据(0x6)是前同步码中最后一部分数据,所以被传输的数据(前同步码)的这部分不发送到Romeo2 SPI上的接收模块的其余部分。接收机MCU检测的第一个数据是设备的ID。
设备ID
设备ID长度为32比特。当每一个TPM轮胎模块MCU(RF2)被刷新,设备ID被编程地址为0x7800-0x7803。这个ID在实际中有很多用处,比如制造商的信息等。但是在这个演示模块中,它仅被用来专门表示辨认轮胎的信息。所以ID的四个字节在每一个数据帧接收后都要被检测,如果ID不匹配,数据帧就会被忽略。
当接收机发现某个ID匹配,它就修改状态字节来指示轮胎的位置。这使软件从串行口接收数据得来决定哪个轮胎是当前发送数据帧的变得简单了许多。欲进一步了解信息可以参见下面的状态一节。
压力:压力数据是8比特位,它表示被Daytona测量的压力值。当使用Daytona 元件 MPXY8020A时,其关系是2.5kPa/计数。这个数据被接收机MCU(KX8)监控,然后来决定轮胎的压力是否低于程序设定的阈值,如果低的话就发出低压警告。
温度:温度数据是8比特位,它表示被Daytona测量到的温度值。接收MCU忽略这个数据并通过SCI口输出。
状态:状态数据也是8位,如表3所示。表3:状态比特的内容
校验和
校验和是一个由前面已发送数据决定的8比特位数值。其目的是为了降低由于轮胎模块MCU、RF噪声以及接收MCU的原因造成把错误数据当作有用数据的可能性。
校验和是通过对每一个前面已发送数据求和但不包含要发送到Romeo2的SPI口的进位比特的数据得到。这些包括ID、压力、温度和状态。这个求和的结果被二的补码取非运算,然后把这个值存储到校验和中。这样,在正常情况下把从ID到校验和所有字节相加结果为零。
停止比特位:两个停止比特位起到终止TPM系统数据帧的作用,两个停止比特位是被非归零编码(non return-to-zero NRZ)的。这个数据不在Romeo2 SPI的输出端出现,但是,这两个停止比特位可以作为数据帧结束指示。
软件
发射机:TPM轮胎模块内的整个算法是基于电池电压恒定为条件的。模块被要求持续一个很长的时间正常工作,且其重量也很关键,所以不可能选择大容量电池。为此,轮胎模块内的Motorola元件被设计成功耗非常少,完全能满足需要。传感器要求对压力和温度值的采集反应迅速,电容压力传感器由于其最低限度的电流需求而使其引导业界。
用运行在(2MHz)ICGMR=0x1A的内部时钟发生器来计算完成8位的连续近似值例行程序所需时间。
1.很明显,对Daytona来说压力测量是一个关键的能耗参数,所以在只要能给驾驶员提供足够的胎压告警信息时应尽量减少压力测量的频次是很必要的。Daytona在它的寿命周期内大部分时间处于空闲模式。
实际上RF2的性能也很好。它是为RKE设计的,也要求长寿命电池。在停止模式下电流消耗显然很低。


关于RF2的发射,实际上依然是能量效率问题,与电池寿命关系极大。为了满足无忧(worry-free)TPM需要,一个聪明的算法应最大限度减少发射次数。MCU的停止模式也很关键,应尽量使用。
对于这个演示选择的算法如下,先从图10开始。当处于空闲模式时,Daytona每三秒发送一个唤醒(wake-up)脉冲(由置低频晶振LFO定时)。该唤醒脉冲和RF2上的一个键盘中断脚相连,使其脱离停止模式。每次一醒过来就测量胎压。如果接收的值是一个新的最大或最小值(当它处于发送周期内时),它就把此值存入RAM。否则,它就把计数器加一然后再返回停止模式。在连续十次唤醒后(30秒),模块把它的状态发送给接收机。图11展示了一个发送的算法。
在检查了RF2内的低压检测电路后,模块分析存储的胎压最大值和最小值间的差异。如果这个差值超过了存储在ROM中的最大差值(△max)时,模块就进入快速发送模式。在快速发送模式下,它每间隔800到900ms发送255个数据帧。这大大增加了接收机收到数据的可能性,如果大的压力值变化指示是轮胎快速漏气,则发出告警让驾驶员在一个足够的时间内安全停车。
接收机
接收机的程序流程图如图12。接通电源后,接收机先后自行初始化和配置。一旦确认接收机配置完成,所有的LED就闪烁一次告知使用者模块准备就绪。当MCU等待接收机发送数据帧的时候,大部分的处理时间花费在虚线框内的部分。更加详细的关于数据帧的接收参见图12。在收到一个数据帧后,就要重新计算校验并与已经接收到的数据帧进行比较。数据帧经过确认后,某个轮胎和ID则要与存储在KX8存储器中的4个ID值比较。如果发现一个相配的ID,则数据就被处理并点亮相应的LED。最后,数据帧通过串行口发送出去以供外部数据接收和存储。因为KX8没有硬件串行外设接口(Serial Peripheral Interface SPI),所以从Romeo2来的数据接收在软件中执行。从图13可看出软件SPI的工作原理。

因为TPM必须在非常苛刻的环境中运行,所以某些RF干扰就可能打断数据帧的传送。从而导致Romeo2 SPI 在一个数据帧的中间关闭。为了避免微控制器把部分数据帧搞乱使用一个定时器来核实数据的输入速度是否是大约为9600bps左右。
定时器在第一个时钟脉冲上升边缘启动,定时器的计数寄存器在每个时钟下降时清零。如果一个完整的数据帧在接收完成前被截断,则定时器溢出且中断开启。这使得部分数据帧被忽略。程序就仅仅是等待下一个数据帧到来。
开车模式下的数据速率是9600bps。即时钟周期为1/9600=104微秒。该演示中,定时器的溢出被设置为1毫秒以保证中断不会过早地被启动。
实时中断
HC908KX8时基模块被用来产生每32768个时钟周期的(6.67毫秒)周期中断。时基中断服务例行程序决定在“没有数据接收”条件下(轮胎LED闪烁)单个轮胎数据接收和询问SCI来决定是否新的阈值/ID信息已经从串行口被接收之间的时间是多长。如果新的数据(低压阈值和轮胎ID)已经被发送,则被存储并写进闪速存储器。
LED也具有用来确认接收模块内的某些变化的功能。如果新设置的阈值和轮胎ID被发送,LED就可用来确认这个设置是否已完成。如果开车/停车模式开关被启动,LED也可用来确认接收机是否已经正确完成。
用户界面
一个为这个程序设计的用户界面已由National Iinstruments Labview创建。这个程序使用串行接口来对所接收数据和显示进行通信,如图16所示。它也允许进行接收机低压阈值和所有四个轮胎ID字节的重新配置。
数据被写进一个ASCII文本文件中,并在每一个数据帧的末尾添加单词“运动Moving”或“停止Stopped”。这是为了测试的目的,当用户每次起动或停车时,它可以通过数据来核实发生的变化(在起动时温度和压力会引人注目地发生变化)。
这样做可以最终使一个算法在不使用惯性切换或加速度计的情况下在驱动和停机模式之间切换,从而进一步减少了系统的成本。
参考文献
1 MC68HC908RF2/D MC68HC908RF2 Advance Information,
Rev 1: Figure 16-5,Page 230.
2 MC33594/D PLL Tuned UHF Receiver for Data Transfer
Applications,Rev 1.1: Figure 17,Page 25.
3 MC33594/D PLL Tuned UHF Receiver for Data Transfer
Applications,Rev 1.1: Note 5, Page 21.
4 MC68HC908RF2/D MC68HC908RF2 Advance Information,
Rev 1: Chapter 12: Low-Voltage Inhibit(LVI)Functional Description



