本文主要是介绍TPMS方案 传感器 freescale篇,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
TPMS方案 传感器 freescale篇
硬件原理图
使用f87xx11系列芯片参考,此原理图为433.92m fsk调制
软件说明:
协议
调制方式:FSK
频率: 433.920 MHz
频偏: 20.0 kHz
编码: Manchester
曼彻斯特类型: 10=One, 01=Zero
传输速率: 9.6 kbps
负载字节位起始: msb
前导码长度: 12(可根据需求调整长度,减少功耗)
前导码数据:0x00
同步码长度:1-byte
同步码: 0x01
数据长度:8
调制脉冲:
状态机转换图:
状态机转换代码
switch(guTPMSStatus){case OFF:vfnSetPWUSec(15);if(gu16CompPressure>10) //激活{gu16PressureMax = gu16CompPressure;gu16PressureMin = gu16CompPressure;guTPMSStatus = PRESSURE_CHANGE; //压力改变vfnSetPWUSec(1);}break;case STANDBY: //稳定静止状态vfnSetPWUSec(6);Translate_State();break;case RUN: //运动状态vfnSetPWUSec(5);Translate_State();guRunCnt++;if(guRunCnt>5){Measure_Voltage();Get_Voltage_State();Measure_Temperature();vfnRfSendFrame(2);guRunCnt = 0;}break;case PRESSURE_CHANGE: //压力变化vfnSetPWUSec(1);Translate_State();Measure_Voltage();Get_Voltage_State();Measure_Temperature();vfnRfSendFrame();break;case RUN_AND_CHANGE:vfnSetPWUSec(1);Translate_State();Measure_Voltage();Get_Voltage_State();Measure_Temperature();vfnRfSendFrame();break;}
数据发送:
数据包含前导码,同步码,和数据部分
前导码功能唤醒接收端接收数据:此部分可根据客户需求调整长度
同步码可自定义
数据部分用于将胎压信息传输给接收端用来显示报警
调制方式:
采用的fsk调制方式发送数据,频率为433.92M.
调整RF发射时首先确定中心频率在误差范围之内。
设定合理的频偏能让产品更稳定。
频偏设置越大信号带宽越大,对于晶振的要求不需要那么严格,反之设置越小带宽越小,带内干扰减少,信噪比提高,可以提高接收灵敏度。设置合理的频宽能够兼顾稳定和灵敏。
波特率:
波特率就是调制信号的频率,比如波特率是10000,实际上调制信号的频率就是5KHz,这里我们假设载波是100MHz。载波的周期是10ns,调制信号的周期是0.2ms。假如我们要发一个01信号,那么在0电平的时候信号频率就是100.005MHz,在0电平期间有0.2ms/10ns=2万个频率为100.005MHz 的周期信号,1电平的时候信号频率是99.995MHz,在1电平期间有0.2ms/10ns=2万个频率为99.995MHz 的周期信号。如果波特率是1000,那么在0电平的时候信号频率就是100.0005MHz,在0电平期间有0.2ms/10ns=20万个频率为100.005MHz 的周期信号,1电平的时候信号频率是99.9995MHz,在1电平期间有0.2ms/10ns=20万个频率为99.9995MHz 的周期信号。所以波特率越低,信号传输的时间越长。
传输过程中主要的误码率是在频谱切换的时候产生,波特率越低,频谱切换的越慢,单位时间的数据量越小,分辨率越高;而且波特率越低,信号带宽越窄,抗干扰杜越好。这些都可以提高接收灵敏度。
已实际应用于生产,完整方案文档正在整理持续更新。
技术沟通邮件:tpms_for_open@outlook.com 微信:virtual_wealth
这篇关于TPMS方案 传感器 freescale篇的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!