3 系统软件流程设计
3. 1通信协议
为了实现4个轮胎模块与中央接收模块进行无线通信的目的,发射机和接收机都需要按要求支持一个简单的通信协议。数据以9600bps的速率传送,采用FSK调制时,其发射方必须采用曼彻斯特编码方式,只有这样的码型接收机才能够接收。曼彻斯特编码就是一个数字信号值在每一个比特位周期内作高、低电平之间切换。前半周期低电平后半周期高电平表示数字O,而先高后低表示数字1。轮胎模块以数据包(帧)的形式发送数据,当轮胎模块中的MCU决定要发送数据(由传感器采集到的温度、压力数据)时,通过发送数据帧的前导位唤醒接收模块,随后发送数据帧,其数据帧格式如下:
①前导位。前同步码的长度为16位位且总设置为0xFB86。这样处理有三个目的:
◇0xF(1111)——Romeo2至少需要4位的前同步码来唤醒它,并让它的内部电路稳定。
◇0xB8(1100 1000)——Rome02中的寄存器2被编程为0xB8,这样使前同步码中的0xB8数据被验证并接通数据管理器。
◇0x6(0110)——Romeo2中报头被使能,它指示有实际的数据跟随(以设备ID开始)。
②设备ID。设备ID长度为32位。当每一个TPM轮胎模块MCU(RF2)被刷新,设备ID被编程地址为0x7800~0x7803。这个lD在实际中有很多用处,比如制造商的信息等;但是在这个演示模块中,它仅被用来专门表示辨认轮胎的信息,所以ID的4个字节在每一个数据帧接收后都要被检测。如果ID不匹配,数据帧就会被忽略。当接收机发现某个ID匹配,它就修改状态字节来指示轮胎的位置。
③压力值。压力数据占8位,代表测量的轮胎压力值。
④温度值。温度数据占8位,代表被测量的轮胎温度值。
⑤状态位。状态位长度为8位,用以表示轮胎模块的电源电压的变化及对应轮胎ID匹配的位,目的是不需要接收机的MCU重复检查轮胎ID。
⑥校验和。校验和长度为8位,它的内容取决于传输数据,主要是为了提高传输数据的可靠性。
⑦停止位。停止位的长度为2位,用来指示数据帧的结束。
3. 2轮胎模块传输程序流程
因为轮胎模块要适应长期工作,考虑到轮胎运转的平衡等因素又不能选择大的电池,因此轮胎模块传输程序的算法选择不但要保证数据的可靠传输,同时还要保证最低的电能消耗。
(1)发射模块发射程序流程
关闭中断后,进行电源检测。若压力差值△1大于存储在ROM里设定的最大压差值△2,则说明轮胎的压力超限,需要报警。此时为增加接收机接收数据的可靠性,连续发送255帧。若其△1<△2,只发送1次数据帧。发射程序流程如图4所示。