发射模块软件设计
因为受轮胎内空间和重量的限制,发射模块只能采用容量有限的微型电池供电,因此要保证单一发射模块2年以上的寿命必须考虑如何节能。此外,一辆轿车上不算备胎至少要配置四个发射模块,由于接收器不能同时接收多路无线信号,若有发射模块同时发射数据给接收器,则必然发生数据冲突,导致接收失败和功耗增加,所以如何避免发送冲突是软件算法要解决的又一关键问题。
本设计采用的数据帧格式如表1所示,前导码和停止位用于标识一帧数据的开始和结束。设备ID是轮胎发射模块的全球唯一标识,以区别不同的轮胎。状态信息包含了电池供电情况(SP30有低电压检测)和传感器测量故障情况,校验和用于检测数据发送的正确性。
② 如何避免发送冲突
设计中我们采用了一种基于素数的动态时延算法。当检测到有效加速度信号后,四个轮胎发射模块被唤醒并启动压力和温度检测程序。数据检测完成后分别按素数进行动态延时,延时时间一到再把数据发送出去,发送完毕自动关闭发送器,开始新一轮数据检测。各轮胎延时参数配置如下:左前轮胎发射模块延时按250ms×N1(N1=2,19)周期变化,右前轮胎发射模块延时按250ms×N2(N2=3,17)周期变化,左后轮胎发射模块延时按250ms×N3(N3=5,13)周期变化,右后轮胎发射模块延时按250ms×N4(N4=7,11)周期变化,N1、N2、N3、N4分别取不同的素数[5]。这种基于素数动态延时的算法既能有效避免各发射模块发送冲突,又能降低能耗,延长电池寿命。
③ 如何节能
由于发射模块采集数据和发射数据帧时耗电最大,因此在保证数据传输正确的前提下应尽可能减少发射频率和每次发射的数据帧数,发射模块软件流程如图4所示。SP30内部集成有加速度传感器,当检测到车子静止时间超过1小时就自动进入低功耗休眠模式(电流为微安级),此时不再进行数据检测和发射。当车子运动后加速度信号将发射模块唤醒,数据采集完成后启动基于素数的动态时延算法,即按250ms×N(N为小于20的随机素数)延时后再将数据发送出去。实际测试表明,通过工作模式的灵活转换和减小发射频率能够有效控制发射模块的使用寿命。