TPMS胎压传感器烧录器

     在汽车车轮内安装的胎压监测传感器,能够准确测量轮胎内部的压力和温度,传感器通过433或315无线形式把轮胎的压力值和温度值发送到ECU(汽车电脑),驾驶员通过仪表盘显示屏获得每一个轮胎的压力值和温度值,当温度或压力过高或过低时均会发出报警信号,让驾驶员提前知道并进行相应处理。

    需要把初始程序下载到传感器,使传感器能实现相应的功能,这就需要专门的TPMS传感器烧录器。把需要烧录下载的bin文件放到单片机的固定的flash内存里面(可用stm32系列的单片机),然后单片机和TPMS芯片通过BDM进行通信,通过相应指令把MCU固定flash里面的bin文件传送到TPMS中去,实现烧录功能,其中BDM为单线通信协议,其为双向的串行通信方式,所有的通信都是由MCU主机发起,且在传送每一位数据时,都由一个由高到低的跳变信号标识开始。通过BDM接口可以完成基本的调试功能,例如:设置断点、读写内存、读写寄存器、下载程序、单步执行程序、运行程序、停止程序运行等。BDM和MCU只需接四跟线,分别是VCC、GND、RESET和BDM通信信号线。VCC和RESET先拉低然后一直拉高,然后开始操作BDM进行通信。

    具体实现如下:由于此处MCU和传感器的通信时钟使用的是传感器的时钟,故通信前要先进行SYNC时钟同步,即MCU将BDM引脚拉低至少128个时钟周期来请求目标机(传感器)同步信号,再发送一个瞬时的高电平脉冲,MCU开始撤销对BDM引脚的驱动,监听传感器的回复信号,通过SYNC回复信号即可得到传感器准确的时钟频率。接下来初始化传感器,如使能BDM通信模式,通过$1801地址写入1来软件复位传感器,读取复位后的程序计数器PC值,堆栈SP复位值、累加器A的值等;初始化完成了可开始往传感器内存写入真正的数据,一般从$C000地址开始写入,可每次写入256字节后进行校验,确认写入完成后接着往下写入,每次用0x08指令跳转去执行用户应用程序写入指令,然后一直用0xE4指令读取状态,等待写入完成后可以执行接下来的操作。把Flash里面的数据写入完成到传感器里面后就宣告数据下载成功啦,下载成功后可再软件复位传感器以获取SP、PC指针等的复位值,通过循环可进行连续的下载。通过相关的检测工具检测到压力和温度值即表明程序已经烧录进去啦。

    扩展:以上实现了单个传感器的下载功能,由于MCU和传感器通信仅需一个IO口,所以后期可通过连续控制多个IO实现多路传感器同时烧录的功能,如要更新下载的bin文件,可通过串口把新的bin文件通过串口传送到MCU的flash里面,实现更新功能。


猜你喜欢

转载自blog.csdn.net/qq_41633543/article/details/80719500