TPMS方案 传感器 infineon篇 (SP35 SP37)

TPMS方案(SP35 SP37) 传感器 infineon篇
关于sp37无压力芯片目前已有方案
关于sp35传感器已经稳定出货,欢迎咨询

硬件原理图
原理图

软件说明
协议
调制方式:FSK
频率: 433.920 MHz
频偏: 20.0 kHz
编码: Manchester
曼彻斯特类型: 10=One, 01=Zero
传输速率: 9.6 kbps

负载字节位起始: msb
前导码长度: 12(可根据需求调整长度,减少功耗)
前导码数据:0x00
同步码长度:1-byte
同步码: 0x01
数据长度:8
调整脉冲图:
Manchester码

数据字节:
Byte0 芯片识别号
Byte1 芯片识别号
Byte2 芯片识别号
Byte3 芯片识别号
Byte4 状态字节
Byte5 压力字节 y = 2x 单位kpa
Byte6 温度字节 y = x-50 单位C
Byte7 校验 前7个字节异或校验

状态机转换图
状态机

状态机转换代码

	switch(g_status)
	{
		case STATUS_INIT:
			wake_time = 0x10;
			if(pressure > 15) 															
			{ 
				g_status = STATUS_CHANGE; 
				g_tx_cnt = 0;
				g_stable_cnt = 0;
				
				send_flag = 1;
				wake_time = 0x01;
			}
			break;
		case STATUS_STABLE:
			wake_time = 0x0a;
			if(g_max_pressure - g_min_pressure >= 0x05)		//10Kpa
			{
				reset_comprare(pressure);
				g_status = STATUS_CHANGE;
				
				g_tx_cnt = 0;
				g_stable_cnt = 0;
				
				send_flag = 1;
				wake_time = 0x01;
			}

			if(acceleration_convert() > 0x2F)
			{
				g_status = STATUS_ROLL;			
				g_tx_cnt = 0;
				g_stable_cnt = 0; 

				send_flag = 1;
				wake_time = 0x05;
			}
			break;
		case STATUS_CHANGE:																
			wake_time = 0x01;
			if(g_max_pressure - g_min_pressure >= 0x05)	   		//10Kpa
			{
				reset_comprare(pressure);
				g_stable_cnt = 0;
				send_flag = 1;
			}
			else
			{
				g_stable_cnt ++;
				if(g_stable_cnt >= 0x05)
				{                                  
					g_status = STATUS_STABLE;
					g_stable_cnt = 0;
				}
			}
			break;
		case STATUS_ROLL:																	
			wake_time = 0x06;
			if(g_max_pressure - g_min_pressure >= 0x05)			
      {
				reset_comprare(pressure);
				g_status = 0x04;
				g_tx_cnt = 0;
				g_stable_cnt = 0;
				
				send_flag = 1;
				wake_time = 0x01;
      }
			
			g_tx_cnt++;
			if(g_tx_cnt > 0x09)
			{
				g_tx_cnt = 0;
				if(acceleration_convert() < 0x2F)
				{
					g_stable_cnt++;
					if(g_stable_cnt > 0x04)
					{
						g_status = STATUS_STABLE;
					}
				}
				send_flag = 1;
			}	
			break;
		case STATUS_ROLL_LEAK:
			wake_time = 0x01;
			if(g_max_pressure - g_min_pressure >= 0x05)
			{
				reset_comprare(pressure);
				g_stable_cnt = 0;
				send_flag = 1;
			}
			else
			{
				g_tx_cnt++;
				if(g_tx_cnt >= 0x05)
				{	
					g_tx_cnt = 0;
					g_stable_cnt++;
					if(g_stable_cnt > 0x02)
					{
						g_status = STATUS_ROLL;
						g_tx_cnt = 0;
						g_stable_cnt = 0;
					}
					send_flag = 1;
				}
			}
			break;
		default:
			break;
	}

数据发送:
调试方式:
采用的fsk调制方式发送数据,频率为433.92M.
调整RF发射时首先确定中心频率在误差范围之内,sp370通过调整电容来校正频率。
设定合理的频偏能让产品更稳定。
频偏设置越大信号带宽越大,对于晶振的要求不需要那么严格,反之设置越小带宽越小,带内干扰减少,信噪比提高,可以提高接收灵敏度。设置合理的频宽能够兼顾稳定和灵敏。
对于sp370可以通过调整外部电容来校正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 微信:virtaul_wealth

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值