FSAE赛车轮胎温度监测系统:从MLX90620传感器到CAN总线数据采集实战
2026/6/1 17:25:08 网站建设 项目流程

1. 项目概述与核心价值

在FSAE(大学生方程式赛车)这类追求极致性能的竞技领域,轮胎是车辆与地面唯一的接触点,其工作状态直接决定了赛车的加速、制动和过弯极限。而轮胎温度,是衡量其工作状态、优化胎压和悬架设定的黄金指标。传统的接触式测温(如热电偶)不仅安装复杂、影响轮胎平衡,更无法在高速行驶中提供实时的、全断面的温度分布。因此,一套可靠、非接触、能实时反馈的轮胎温度监测系统,就成了顶尖车队必备的“数据武器”。

我这次分享的,正是我们车队从零搭建这样一套系统的完整过程。核心是利用了MLX90620这款16x4像素的红外热成像传感器,它能捕捉一小片区域的温度矩阵,再通过我们编写的算法,从中提取出轮胎内侧、中心和外侧这三个最关键位置的温度值。整个系统以经典的Atmega328P微控制器为大脑,通过I2C读取传感器,再通过CAN总线将处理后的数据发送到车上的中央数据采集器。这听起来像是一个标准的嵌入式数据采集项目,但在赛车的严苛环境下——剧烈的振动、电磁干扰、宽温范围以及有限的安装空间——每一个细节都充满了挑战。接下来,我会拆解从电路设计、PCB布局、固件编程到实车标定的全过程,并重点分享那些在实验室里遇不到、只有在赛道上才会暴露出来的“坑”。

2. 系统整体架构与设计思路拆解

2.1 需求定义与方案选型

设计之初,我们明确了几个硬性指标:非接触测量多点温度获取CAN总线输出12V车载电源供电、以及极小的体积。这直接引导了我们的核心器件选型。

传感器选型:MLX90620为何是首选?市面上非接触红外测温方案很多,从单点测温的MLX90614到高端的热成像仪。选择MLX90620,是基于一个精妙的权衡。单点传感器(如MLX90614)虽然简单便宜,但一次只能测一个点,要覆盖轮胎断面就需要多个传感器,体积和成本激增。而真正的热成像仪成本过高,数据量大,处理复杂。MLX90620的16x4(64像素)矩阵是一个“折中神器”:它提供了足够的分辨率来区分轮胎的内、中、外区域,数据量(64个温度值)又恰好是Atmega328P能够轻松处理的级别。其I2C接口更是简化了硬件连接。它的视场角(FOV)大约在60° x 15°,我们需要通过结构设计,确保这个视场能完整覆盖从轮辋到胎面的目标区域。

主控选择:为什么还是Atmega328P?在STM32等32位MCU大行其道的今天,选择8位的Atmega328P似乎有些“复古”。但我们的理由很充分:1.可靠性验证:它在汽车电子、工控领域有极长的应用历史,抗干扰能力经过充分验证。2.资源恰好够用:处理64个float类型的温度计算、运行均值滤波等简单算法、通过SPI与MCP2515通信,其Flash和RAM资源绰绰有余。3.开发效率:团队对Arduino生态(基于AVR)非常熟悉,能快速搭建原型并调试,在争分夺秒的赛季中,时间就是一切。4.成本与采购:它依然是市面上最容易获取、性价比最高的MCU之一。

通信总线:坚定不移的CAN在赛车上,CAN总线是神经系统。所有关键传感器(轮速、方向盘转角、油门刹车位置、发动机数据)都挂载在CAN上。我们的温度模块也必须融入这个体系。选择MCP2515(CAN控制器)+ MCP2551(CAN收发器)的组合,是经过验证的经典方案。MCP2515通过SPI与MCU通信,减轻了MCU处理CAN协议栈的负担;MCP2551则负责将逻辑电平转换为符合ISO 11898标准的差分信号,抗干扰能力强,适合恶劣的电气环境。

2.2 电源架构设计:稳定是数据的基石

赛车的电气环境异常恶劣,电池电压在引擎启动、大负载用电时会有大幅波动(可能从9V到14V)。我们的模块需要为数字电路(5V)和传感器(3.3V)提供极其干净的电源。

两级稳压策略: 我们采用了两级独立的线性稳压方案。第一级,从车载12V直接降压到5V,为MCU和两个CAN芯片供电。这里选择了MCP1755-5.0,它最大能提供300mA电流,远超我们实际消耗(约50mA),留足了余量。更重要的是,它的低压差(LDO)特性很好,即使输入电压跌到5.5V,也能稳定输出5V,确保了引擎启动瞬间低压情况下的正常工作。

第二级,专门为MLX90620生成一个3.3V电源。这里有一个关键细节:绝对不能从5V再用一个LDO降压得到3.3V!为什么?因为MLX90620对电源噪声非常敏感,而数字电路(MCU、CAN控制器)在开关瞬间会在电源线上产生高频噪声。如果共用一路电源,这些噪声会直接耦合进传感器,导致温度读数跳动甚至错误。因此,我们使用了另一颗MCP1755-3.3,同样从12V输入,独立产生一个“安静”的3.3V给传感器。虽然效率不如开关电源,但线性稳压的无噪声优势在此处无可替代。

PCB布局上的电源隔离: 在画PCB时,这两组电源的走线从输入电容后就完全分开,直到各自芯片的电源引脚。地线(GND)虽然在底层最终相连,但在顶层也尽量保持分离,最后在一点进行“星型”连接,避免形成地环路引入噪声。

3. 硬件设计与PCB实现要点

3.1 原理图设计关键细节

除了核心器件,原理图上的一些“小元件”决定了系统的可靠性。

I2C总线上的上拉电阻:MLX90620的I2C接口是开漏输出,必须外加上拉电阻。阻值的选择有讲究。阻值太小(如1kΩ),电流大,功耗高,上升沿陡峭但可能过冲;阻值太大(如10kΩ),上升沿缓慢,在高速模式下可能无法满足时序要求。我们折中选择了4.7kΩ的电阻,并放置在离MCU和传感器引脚最近的位置,以确保信号完整性。

CAN总线的终端电阻:CAN总线两端(通常位于整车网络的物理两端)必须各有一个120Ω的终端电阻,以消除信号反射。我们的模块是挂在总线中间的节点,自身不能焊接120Ω电阻。但在PCB上,我们预留了一个0603封装的120Ω电阻位,并默认不焊接(贴0Ω电阻或空着)。这个预留位极其重要,在实验室单独测试模块时,我们需要在模块的CAN_H和CAN_L之间临时焊上一个120Ω电阻,才能构成一个完整的、可通信的最小网络,方便调试。

电源滤波网络:每个芯片的电源引脚附近,都必须有去耦电容。我们的规则是:一个10uF的钽电容或电解电容处理低频噪声,搭配一个0.1uF的陶瓷贴片电容处理高频噪声。对于MLX90620,我们在其3.3V引脚处额外增加了一个1uF的陶瓷电容,进一步滤除特定频段的噪声。所有电容的摆放位置,必须尽可能靠近芯片的电源引脚,回流路径要短。

3.2 高密度PCB布局与挑战

“尺寸48mm x 12mm”,这是我们必须实现的硬指标,因为要安装在悬架摆臂或轮毂附近极其狭窄的空间。

层叠与布线策略:我们使用了双层板以控制成本。顶层(Top Layer)主要放置所有元器件,底层(Bottom Layer)作为完整的地平面和少量走线。完整的地平面是抑制噪声的基石,它为所有高频信号提供了最短的回流路径。

元件布局的“功能区”划分:板子从左到右大致划分为三个区域:电源输入区(12V接线端子、稳压芯片、滤波电容)、数字逻辑区(MCU、晶振、CAN芯片)、传感器区(MLX90620及其滤波电路)。区域之间用GND铜皮进行一定程度的隔离,尤其是模拟的传感器区和数字区。

走线宽度与间距:由于板子极窄,我们使用了6mil(约0.15mm)的线宽和线距。这是许多PCB制造商的标准工艺极限。对于12V和5V的电源线,我们加粗到15-20mil,以减少阻抗和压降。晶振走线是重中之重:XTAL1和XTAL2的走线必须尽可能短,且并行走线,周围用接地铜皮包围,下方禁止任何其他信号线穿过,防止时钟信号干扰其他电路或自身受干扰导致MCU工作不稳定。

传感器视窗的处理:MLX90620需要“看见”目标。我们在PCB对应传感器感光区域的位置,开了一个矩形窗口。窗口上方需要安装一个红外透射滤镜(通常由硅或锗制成),它只允许特定波长的红外光通过,同时保护传感器免受灰尘和物理损伤。在PCB设计时,这个窗口区域不能有任何走线、铜皮或丝印,必须完全净空。

4. 固件开发:数据处理与通信逻辑

4.1 MLX90620的驱动与温度读取

MLX90620并非上电即用,它内部有大量的校准系数存储在EEPROM中,每次读取原始数据后,都需要通过一个复杂的公式进行补偿计算,才能得到准确的温度值。厂家(Melexis)提供了官方的算法库,但那是为通用微控制器准备的,代码冗长且包含浮点运算。

优化计算流程: 在资源有限的Atmega328P上,全盘照搬官方库进行64点浮点运算会非常慢。我们的策略是:只计算我们关心的三个点。首先,我们需要读取完整的64像素原始数据(RAM)和所有必要的校准参数(EEPROM)。然后,根据传感器的几何位置,确定哪几个像素点对应轮胎的内侧、中心和外侧。例如,假设第1-4列像素看到的是内侧,第5-12列是中心,第13-16列是外侧。我们只对这三组像素分别计算平均温度。

定点数与查表法: 为了进一步提升速度,我们将关键的校准系数(如a_common,b_common,alpha_cp等)乘以一个大的缩放因子(如2^16),转换为定点数进行计算。同时,将一些复杂的三角函数(如传感器视角补偿)预先计算成查找表(LUT)存储在程序存储器中。这样,将大量的浮点乘除法和三角函数运算,转换为了整数的乘加和查表操作,速度提升了5倍以上,保证了我们能以至少10Hz的频率稳定输出三个点的温度。

I2C通信的稳定性: 在振动环境下,I2C通信容易受到干扰。我们在驱动中加入了重试机制。每次发起读/写操作后,都检查ACK信号。如果失败,不是立即报错,而是先执行一个I2C_Stop,稍作延时(几微秒),再发送一个I2C_Start进行重试,最多重试3次。如果连续失败,则重置I2C总线(模拟一个停止-开始条件),并将此错误计数,超过阈值后通过CAN总线发送一个错误帧,通知主系统。

4.2 数据滤波与帧格式定义

传感器读出的原始温度值即使经过计算,也可能存在噪声和偶尔的跳变。

滑动平均滤波: 我们采用了一个长度为5的滑动平均窗口。即,存储最近5次的有效采样值,每次输出的是这5个值的算术平均。这能有效平滑随机噪声。注意,当检测到通信错误或计算出的温度值明显超出合理范围(如低于-40°C或高于150°C)时,这次采样被视为无效,不加入平均窗口,窗口沿用旧数据。

CAN报文设计: 我们定义了一个专用的CAN报文ID,例如0x5A0(具体ID需根据车队整体的CAN矩阵规划来定)。数据场(8字节)定义如下:

  • 字节0-1:轮胎内侧温度(uint16_t,实际值 = 传输值 / 10.0,单位°C)。采用整数放大10倍传输,避免浮点数解析的麻烦。
  • 字节2-3:轮胎中心温度。
  • 字节4-5:轮胎外侧温度。
  • 字节6:状态字。Bit0:传感器通信状态(0=正常,1=故障);Bit1:电源状态(0=正常,1=欠压);其他位预留。
  • 字节7:校验和(前面7字节的简单累加和,用于接收方快速校验数据完整性)。

发送周期设置为100ms(10Hz),这个频率既能及时反映轮胎温度的变化趋势,又不会给CAN总线带来过重的负载。

4.3 系统状态监控与看门狗

赛车系统必须足够健壮。我们启用了Atmega328P的内部看门狗定时器(WDT),设置超时时间为2秒。在程序的主循环中,定期“喂狗”。如果程序因为某种干扰跑飞,无法按时喂狗,2秒后MCU会自动复位,让系统恢复到一个已知的初始状态。

此外,我们持续监测输入电压(通过MCU的ADC分压采样)。如果检测到电压低于10V(意味着电池可能亏电或线路故障),状态字中的电源状态位会置1,并通过CAN报文发出警报。

5. 系统标定、安装与赛道实测

5.1 实验室标定:建立信任基准

在装车之前,必须对每个模块进行严格的实验室标定。

温度基准源:我们使用了一个高精度的恒温黑体辐射源作为标准。将MLX90620传感器正对黑体表面,黑体温度设定在从0°C到100°C之间的若干个点(例如每10°C一个点)。

标定过程

  1. 让黑体源和传感器在设定温度下充分稳定(至少15分钟)。
  2. 记录传感器输出的三个区域(内、中、外)的原始计算温度值。
  3. 同时,用经过计量校准的接触式热电偶测温仪测量黑体表面实际温度作为真值。
  4. 将整个数据系列(传感器读数 vs. 真实温度)进行线性拟合,得到每个通道的标定系数(斜率和截距)

关键发现与修正: 标定后我们发现,传感器三个区域的输出并非完全一致,存在微小的增益和偏移差异。这是因为传感器内部64个像素的响应特性本身就有微小偏差。因此,我们必须为每个模块的每个区域(内、中、外)单独计算并存储一组标定系数。这些系数被写入到Atmega328P的EEPROM中,上电时加载。经过标定后,我们的系统在20-120°C范围内的测量误差可以控制在±1.5°C以内,完全满足赛车调校的需求。

5.2 实车安装与环境挑战

安装位置的选择是艺术也是科学。最初我们设想安装在悬架的下摆臂上,指向轮胎侧面。但实际测试发现,这个位置容易溅上泥水,且距离轮胎滚动面较远,视角不理想。

最终方案:我们设计了一个小型的、带保护罩的铝合金支架,直接固定在轮毂的螺栓上,随车轮一起旋转。传感器通过一个狭缝,垂直指向轮胎的胎面(滚动面)。这个位置的优点是距离被测面近且固定,视角好。但挑战也随之而来:

  1. 高速旋转的离心力:所有元器件和焊点必须能承受巨大的G值。我们选用了0603及以上尺寸的贴片元件,并在PCB安装孔周围进行了额外的加固。
  2. 动态数据的传输:模块随轮子旋转,无法通过有线方式传输数据。我们采用了滑环无线遥测方案。本项目基于有线CAN总线描述,因此假设通过高质量滑环将电源和CAN信号引入旋转的轮毂。这对滑环的可靠性和抗干扰能力提出了极高要求。
  3. 热管理:刹车时,刹车盘会产生巨量热量,辐射会影响传感器读数。我们在传感器和刹车盘之间加装了简单的隔热铝板,并通过对传感器本体在高温环境下的额外标定,来补偿环境热辐射的影响。

5.3 赛道实测数据解读与调校应用

在第一次赛道测试日,系统传回的数据让我们大开眼界。

典型数据模式

  • 冷胎阶段:内侧温度通常最先上升,因为轮毂和刹车热量传导。
  • 工作温度区间:在激烈驾驶中,外侧温度往往最高,这是因为过弯时轮胎外侧承受更大载荷和滑移,产生更多热量。中心温度其次,内侧最低。一个理想的温度分布是内、中、外温差(ΔT)在5-10°C以内。
  • 胎压影响:胎压过低时,轮胎变形大,整体温度偏高,且中心温度可能高于两侧。胎压过高时,接地面积小,中心温度可能低于两侧。

一次具体的调校案例: 某次测试,我们发现左前轮的外侧温度比内侧高了近15°C,且整体温度偏低。这表明轮胎外侧负荷过大,可能意味着外倾角(Camber)过负(即轮胎上沿向外倾斜过多)。工程师根据这个数据,将左前轮的外倾角向正方向调整了0.2度。下一圈回来,数据显示内外温差缩小到了8°C,且整体温度进入了更优的工作窗口,车手反馈过弯的抓地力感觉更均衡、更可预测。

这套系统最大的价值,就是将轮胎的“状态”从车手的模糊感觉,变成了工程师电脑屏幕上精确的数字,让悬架和胎压的调校从“经验猜测”变成了“数据驱动”的科学过程。

6. 故障排查与经验总结

6.1 常见问题与解决方案

下表汇总了我们在开发和测试阶段遇到的一些典型问题及解决方法:

问题现象可能原因排查步骤与解决方案
CAN总线无法通信,无数据1. 终端电阻缺失或错误。
2. CAN_H/CAN_L线序接反。
3. 模块供电异常。
4. MCP2515初始化失败。
1. 确认总线两端有120Ω终端电阻,测试时模块端需临时焊接120Ω。
2. 用万用表测量,CAN_H对地电压约2.5V,CAN_L对地电压约2.5V,静态时两者电压差接近0V。接反了则交换。
3. 测量模块5V和3.3V电源引脚电压是否稳定。
4. 检查MCU与MCP2515的SPI接线,用逻辑分析仪抓取SPI初始化时序。
温度读数固定不变或为01. MLX90620 I2C通信失败。
2. 传感器电源(3.3V)噪声过大。
3. 传感器初始化/计算程序错误。
1. 用示波器或逻辑分析仪检查I2C的SCL/SDA波形,确认地址正确(0x50),ACK正常。检查上拉电阻。
2. 用示波器AC耦合档观察3.3V电源纹波,应小于50mVpp。加强滤波电容。
3. 单步调试,确认校准参数是否正确从传感器EEPROM中读出。
温度读数周期性跳动或漂移1. 电源被周期性干扰(如来自MCU或CAN收发器)。
2. 传感器受到外部热源(刹车盘、排气管)辐射影响。
3. 机械振动导致连接间歇性不良。
1. 在传感器3.3V电源处并联一个大容量(如47uF)钽电容,并串联一个磁珠。
2. 增加隔热板,或在软件中针对特定安装位置加入环境温度补偿算法。
3. 检查所有接插件和焊点,对板载连接器进行打胶固定。
车辆行驶中数据偶发丢失1. 滑环接触不良(如果使用)。
2. CAN总线受到强电磁干扰(如点火线圈)。
3. 看门狗复位。
1. 选用高质量、低接触电阻的滑环,并定期维护。
2. 确保CAN双绞线绞距紧密,远离高压线束,必要时使用带屏蔽层的CAN线。
3. 检查程序主循环时间,确保能及时喂狗。在CAN发送等可能阻塞的操作中加入超时机制。

6.2 血泪教训与核心建议

  1. 电源隔离不是可选,是必须:最早的原型机,传感器和数字部分共用一路LDO,实验室测试一切正常。一上车,引擎一启动,温度数据就乱跳。用示波器一看,电源线上全是毛刺。给敏感模拟器件一个独立的、干净的电源,是车载电子设计的第一铁律。

  2. 振动是隐形的杀手:不要以为通过了通电测试就万事大吉。我们曾有一个批次模块,在振动台上测试几分钟后,晶振的贴片电容就开裂了。对于所有安装在运动部件上的PCB,关键元件(晶振、大容量电容、连接器)建议使用加固胶(如硅橡胶)进行点胶固定。

  3. 数据可信度高于数据密度:最初我们追求20Hz甚至50Hz的刷新率,后来发现高速下的噪声和干扰让高频数据变得不可信。将采样率稳定在10Hz,并辅以有效的数字滤波,得到的平滑、可靠的趋势线,远比一堆跳动的原始数据有价值。

  4. 标定决定精度上限:再好的传感器,没有严谨的标定,输出也只是相对值。必须为每一个出厂的模块建立独立的标定参数库。时间允许的话,最好能做温度循环标定(从低温到高温再回来),以检查传感器的重复性。

这个项目让我深刻体会到,一个成功的嵌入式系统,不仅仅是代码和电路的堆砌,更是对应用场景的深刻理解、对细节的偏执追求,以及将实验室原型转化为能在极端环境下稳定工作的工业产品的系统工程能力。从屏幕上的波形到赛道上实实在在的速度提升,中间每一步的扎实与否,都决定了最终数据的价值。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询