TPMS方案 接收器 STM8L篇

TPMS方案 接收器 STM8L篇
使用stm8l052r8芯片 无线接收使用华普2219B
概要:
使用公模开发
低功耗太阳能方案,使用lcd液晶显示,太阳能充电,自动唤醒
主机提供设置功能:包含设置温度单位,压力单位,轮胎匹配,温度范围,压力范围,恢复出厂设置

接收主机可对压力异常,温度异常,电池电量进行报警
压力报警信息包含 超出范围和压力下降,压力范围默认是180-300kpa,如果超出此范围主机会响起蜂鸣器并且对应的数据会闪烁,压力下降时,蜂鸣器鸣叫两声,并闪烁对应的数据。
温度报警信息,包含高温报警,高温范围是75摄氏度,此时响起蜂鸣器并且对应的数据会闪烁
传感器电池电量报警:低于2.2v时此时会报警,蜂鸣器会响起,并且对应的轮胎闪烁
硬件原理图:
硬件原理图

软件执行流程:
while(1)
{
读取无线胎压数据;
处理读取的胎压数据;
显示报警信息;
处理按键功能;
检测震动状态;
检查休眠唤醒状态;
显示接收器电池信息;
}
协议:
调制方式:FSK
频率: 433.920 MHz
频偏: 20.0 kHz
编码: Manchester
曼彻斯特类型: 10=One, 01=Zero
传输速率: 9.6 kbps
负载字节位起始: msb
前导码长度: 12(可根据需求调整长度,减少功耗)
前导码数据:0x00
同步码长度:1-byte
同步码: 0x01
数据长度:8

功耗:
此产品为太阳供电产品,一般平时太阳能供电能满足日常需求
接收器总体工作电流大概6.8mA,接收器休眠电流<30uA.
stm8l052主控芯片工作电流3mA,待机电流为0.3uA。
无线接收芯片2219B工作模式包含低功耗模式,根据协议可控制工作电流为1.5mA。
根据2219B的数据手册可以配置相应的低功耗工作模式来满足功耗要求。

功能实现:
lcd部分:
使用外部4.5v电源驱动lcd部分,下面是初始化代码

  CLK_PeripheralClockConfig(CLK_Peripheral_RTC, ENABLE);

  CLK_PeripheralClockConfig(CLK_Peripheral_LCD, ENABLE);
  CLK_RTCClockConfig(CLK_RTCCLKSource_LSI, CLK_RTCCLKDiv_1);
  
  LCD_Init(LCD_Prescaler_2, LCD_Divider_22, LCD_Duty_1_8,LCD_Bias_1_4, LCD_VoltageSource_External);
  
  LCD_PortMaskConfig(LCD_PortMaskRegister_0, 0xFF);   
  LCD_PortMaskConfig(LCD_PortMaskRegister_1, 0xFF);   
  LCD_PortMaskConfig(LCD_PortMaskRegister_2, 0x03);   
  LCD_PortMaskConfig(LCD_PortMaskRegister_3, 0x00);
  
  LCD_ContrastConfig(LCD_Contrast_Level_7);
  LCD_DeadTimeConfig(LCD_DeadTime_0);
  LCD_PulseOnDurationConfig(LCD_PulseOnDuration_4);
  
  LCD_Cmd(ENABLE);

各个显示接口定义:

void lcd_show_pressure_unit(uint8_t u);
void lcd_show_temerature_unit(uint8_t u);
void lcd_show_tpms(uint8_t u);
void lcd_show_solar(uint8_t u);
void lcd_show_tmperature_warning(uint8_t u);
void lcd_show_battery_low_warning(uint8_t u);
//压力警告图标
void lcd_show_pressure_leak(uint8_t u);
void lcd_show_pressure_high(uint8_t u);
void lcd_show_pressure_low(uint8_t u);

void lcd_show_battery(uint8_t u);
void lcd_show_battery_empty(uint8_t u);

void lcd_show_pressure(uint8_t uNo,uint8_t type,uint8_t value,uint8_t uShow);
void lcd_show_temperature(uint8_t uNo,int16_t value,uint8_t uShow);

RF接收初始化:

  uint8_t tmp;

  CMT2300A_InitGpio();
  CMT2300A_Init();

  /* Config registers */
  CMT2300A_ConfigRegBank(CMT2300A_CMT_BANK_ADDR       , g_cmt2300aCmtBank       , CMT2300A_CMT_BANK_SIZE       );
  CMT2300A_ConfigRegBank(CMT2300A_SYSTEM_BANK_ADDR    , g_cmt2300aSystemBank    , CMT2300A_SYSTEM_BANK_SIZE    );
  CMT2300A_ConfigRegBank(CMT2300A_FREQUENCY_BANK_ADDR , g_cmt2300aFrequencyBank , CMT2300A_FREQUENCY_BANK_SIZE );
  CMT2300A_ConfigRegBank(CMT2300A_DATA_RATE_BANK_ADDR , g_cmt2300aDataRateBank  , CMT2300A_DATA_RATE_BANK_SIZE );
  CMT2300A_ConfigRegBank(CMT2300A_BASEBAND_BANK_ADDR  , g_cmt2300aBasebandBank  , CMT2300A_BASEBAND_BANK_SIZE  );
  CMT2300A_ConfigRegBank(CMT2300A_TX_BANK_ADDR        , g_cmt2300aTxBank        , CMT2300A_TX_BANK_SIZE        );

  // xosc_aac_code[2:0] = 2
  tmp = (~0x07) & CMT2300A_ReadReg(CMT2300A_CUS_CMT10);
  CMT2300A_WriteReg(CMT2300A_CUS_CMT10, tmp|0x02);

  RF_Config();

2219B低功耗设置说明:
2219B工作电流为8mA。
RF接收模块低功耗运行时需要调整工作模式,2219b提供12种低功耗运行模式,用户可根据需要自己选择,这里使用模式6来接收数据。
胎压数据一般是以固定长度发送,模式6适合接收固定长度的数据帧,以本协议为例:
前导码长度12个字节,发送的时间需要 104usX8X12 = 9984us。
低功耗运行原理是设置合适的休眠运行时间。
2219B配置接收前导码需要一个字节,此时运行时间至少设置为1个字节时间长度104X8=832us,整个运行唤醒周期应该小于前导码发送时间,休眠时间最大可设9984-832=9152us,理论上此时功耗应该为全速运行时的1/12。即8X1/12=0.67mA。
在实际应用过程中无线信号受到干扰可能性比较高,设置接收前导码字节应该加长,减少不必要的唤醒,在满足功耗需求的情况下实际应用应当调整休眠时间尽量减少,运行时间尽量增加。这样可减少漏收数据帧的情况

详细代码可见http://www.hoperf.cn/design_guides/640.html

设置功能:

switch(g_menu)
    {
    case setting_pressure_unit:
      set_pressure_unit(btn_type);		//压力单位设置
      break;
    case setting_temperature_unit:
      set_temperture_unit(btn_type);		//温度单位设置
      break;
    case setting_front_low_pressure:
      set_pressure_range(0,btn_type);	//低压范围设置
      break;
    case setting_front_high_pressure:
      set_pressure_range(1,btn_type);	//高压范围设置
      break;
    case setting_temperature:
      set_temperature(btn_type);		//温度范围设置
      break;
    case setting_all_pair:					//轮胎配对
      set_pair(wheel_all,btn_type);
      g_key_state = on_off_btn;
      break;
    case setting_defalut:				//恢复出厂设置
      set_default(btn_type);
      break;
    }

包含设置温度单位,压力单位,轮胎匹配,温度范围,压力范围,恢复出厂设置

文档未完结,持续更新

已实际应用于生产,完整方案文档正在整理持续更新。需要调整外设可邮件联系。
技术沟通邮件:tpms_for_open@outlook.com 微信:virtual_wealth

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
胎压侦测系统(Tire Pressure Monitor System)是一项提高汽车主动安全性的新技术。它运用了最新的汽车电子技术、传感器技术、无线发射和接收技术等。TPMS能实时监测所有轮胎的气压,对气压过低、气压过高以及快速漏气等异常状态及时发出报警。 一、实物位置图:二、胎压过高或过低的危害:三、TPMS分为直接式、间接式、复合式三种:1、直接式(Pressure-Sensor Based TPMS,简称PSB): 利用安装在每一个轮胎里的压力传感器来直接测量轮胎的气压,利用无线发射器将压力信息从轮胎内部发送到中央接收器模块上。当轮胎气压太低或漏气时,系统会自动报警。属于事前主动防御。 2、间接式(Wheel-Speed Based TPMS,简称WSB): 通过汽车ABS 系统的轮速传感器来比较轮胎之间的转速差别,以达到监测胎压的目的。当轮胎压力降低时,车辆的重量会使轮胎直径变小,这就会导致车速发生变化,这种变化即可用于触发警报系统来向司机发出警告。属于事后被动型。 3、复合式TPMS: 在两个互相成对角的轮胎内装备直接传感器,并装备一个4轮间接系统。与全部使用直接系统相比,这种复合式系统可以降低成本,克服间接系统不能检测岀多个轮胎同时岀现气压过低的缺点。但是,它不能像直接系统那样提供所有4个轮胎内实际压力的实时数据。 四、TPMS安装方式分为内置式、外置式:内置式安装方式比传统的外置式安装方式更加准确(外置式只能测量大概的轮胎温度),且内置式按装,充气方便,行驶中不因路坑的碾压损坏。 五、TPMS工作原理简介:直接式、内置发射模块: 将LF唤醒技术运用到发射块中,汽车开动后,驾驶室内的中央控制模块上电,发射低频信号,轮胎发射模块里的LF天线接收到低频信号后产生感应电压,转换为唤醒信号,唤醒MCU开始工作,这样起到节省电池的效果。 LF唤醒子系统: TPMS接收机-TPMS接收模块: 接收模块外接车载电源,接收天线负责接收无线信号,RF接收电路将高频信号解码后送给中央处理器。中央处理器从数据包中分析发射模块的ID号、压力温度数据及其他数据信息。如果ID号和码模块中的ID信息相匹配,则对其进行处理并送显示。如果不是本车轮胎的数据则丢弃,不予处理。 TPMS发射器-发射模块组成: 轮胎压力监测模块由五个部分组成: 1.具有压力、温度、加速度、电压检测和后信号处理ASIC芯片组合的智能传感器MCU。 2.锂亚电池。 3.天线。 所有器件、材料都要满足-40℃~+125℃的使用温度范围 转载自唯样电子资讯。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值