2. EDR硬件系统总体架构:五层架构概览

EDR系统说白了就是汽车上的黑匣子。它的硬件架构,我习惯把它拆成五层来看:传感器层、处理层、存储层、通信层、电源层。这五层各司其职,缺一不可。

你想想看,一辆车发生碰撞时,EDR要在毫秒级内把数据完整记录下来。这背后靠的就是这五层架构的协同工作。我在项目中遇到过不少因为某一层设计不到位,导致整个系统翻车的案例。嗯,咱们一层一层来看。

核心观点:EDR硬件架构的核心是「可靠记录」。每一层设计都要围绕这个目标展开。

EDR硬件系统五层架构 电源层 | 电源管理IC · 备用电池 · 电压监控 · 上电时序 通信层 | CAN/CAN-FD · 车载以太网 · SPI · UART 存储层 | NOR Flash · NAND Flash · FRAM · 磨损均衡 处理层 | MCU · 信号调理 · 数据融合 · 触发逻辑 传感器层 | 加速度计 · 陀螺仪 · 碰撞传感器 · 安全气囊传感器 数据流向 ↑ 控制流向 ↓ 五层架构自上而下:电源保障 → 通信交互 → 数据存储 → 核心处理 → 信号采集

2.1 传感器层:数据的源头

传感器层是整个EDR系统的「眼睛」和「耳朵」。它负责采集车辆在碰撞过程中的各种物理量信号。

我个人习惯把传感器分为两类:

  • 惯性传感器:三轴加速度计、三轴陀螺仪。用来测量车辆的纵向、横向、垂向加速度,以及横摆角速度。
  • 碰撞传感器:安装在车身前部、侧面的压力传感器或加速度开关。它们直接触发安全气囊,同时也给EDR提供碰撞发生的时刻标记。

这里有个坑。我曾经在一个项目中,选了一款高精度的加速度计,但没注意它的输出带宽。结果碰撞信号的高频分量全被滤掉了,记录下来的数据根本没法用。后来我学乖了,传感器选型时一定要看它的带宽能不能覆盖到1kHz以上。

我的建议:传感器层设计时,优先考虑「动态范围」和「带宽」。EDR需要记录的是±200g以上的加速度,带宽至少500Hz。别只看精度,那是静态指标。

2.2 处理层:EDR的大脑

处理层是EDR的核心。它接收传感器数据,进行信号调理、数据融合,然后判断是否触发记录事件。

处理层的核心器件是MCU。我一般推荐选用带硬件浮点运算单元的ARM Cortex-M4或M7内核MCU。为什么?因为碰撞算法里有很多矩阵运算和滤波计算,纯软件模拟浮点太慢了。

处理层要干这几件事:

  1. 信号调理:对传感器原始信号进行放大、滤波、去噪。我习惯用二阶巴特沃斯低通滤波器,截止频率设在400Hz左右。
  2. 触发判断:实时计算加速度的变化率(jerk),当超过阈值时触发记录。阈值不能设得太灵敏,否则正常刹车也会触发。
  3. 数据封装:将原始数据加上时间戳、校验码,打包成标准格式,准备写入存储层。

注意:处理层的实时性要求极高。从传感器采样到触发判断,整个延迟不能超过2ms。我曾经见过一个方案,因为MCU的ADC采样用了轮询方式,导致触发延迟到了5ms,直接被客户打回重做。

2.3 存储层:数据的安全屋

存储层负责把处理层送来的数据可靠地保存下来。EDR对存储的要求很特殊:写入快、掉电不丢、寿命长。

我常用的存储介质有三种:

存储介质 优点 缺点 我的推荐场景
NOR Flash 读取快、可靠性高、支持XIP 容量小、写入慢 存储固件和关键配置参数
NAND Flash 容量大、成本低 有坏块、需要ECC 存储大量事件数据
FRAM 写入极快、几乎无限擦写 容量小、价格高 存储事件触发时的临时缓存

嗯,这里要特别说一下。EDR记录的数据在碰撞后必须保持完整。我曾经遇到过一个问题:NAND Flash在写入过程中突然掉电,导致数据损坏。后来我加了一个超级电容,保证掉电后还能维持50ms的写入时间,问题就解决了。

关键设计:存储层必须实现「掉电保护」和「磨损均衡」。掉电保护靠备用电源或大电容,磨损均衡靠软件算法。这两条缺一不可。

2.4 通信层:数据的高速公路

通信层负责EDR与车辆其他ECU之间的数据交换。EDR需要从CAN总线上获取车速、制动踏板状态、转向角度等信息。

目前主流方案是:

  • CAN/CAN-FD:用于实时数据采集。CAN-FD的带宽更高,我建议新项目直接上CAN-FD。
  • 车载以太网:用于事件数据的上传和诊断。100BASE-T1就够用了。
  • SPI/UART:用于板级通信,比如MCU和存储芯片之间的数据交换。

通信层最容易出问题的是「总线负载率」。我记得有个项目,CAN总线上挂了十几个节点,负载率到了70%。EDR在碰撞瞬间要发送大量数据,结果总线拥堵,数据丢包了。后来我把EDR的CAN消息优先级提到最高,才解决了这个问题。

避坑指南:通信层设计时,一定要做总线负载率分析。EDR的关键消息优先级要设为最高,并且使用CAN-FD的Payload分段传输,避免长消息占用总线太久。

2.5 电源层:系统的生命线

电源层是EDR的「心脏」。它要保证在车辆碰撞、掉电、电压波动等各种恶劣情况下,EDR依然能正常工作。

电源层包含三个部分:

  1. 主电源路径:从车辆12V/24V电瓶取电,经过DC-DC转换到5V和3.3V。我习惯用宽输入范围的DC-DC,支持6V到36V输入。
  2. 备用电源:碰撞发生时,车辆电瓶可能断开。所以EDR必须自带备用电源。我常用的是超级电容或小容量锂电池。
  3. 电压监控:实时监控各路电压,一旦发现异常,立即触发数据保存流程。

电源层设计有个经典问题:上电时序。MCU、传感器、存储芯片的上电顺序不能乱。我曾经因为没注意上电时序,导致存储芯片在MCU还没初始化完成时就被写入了数据,结果数据全乱了。后来我加了一个电源管理IC,专门控制上电时序。

警告:备用电源的容量计算一定要留余量。EDR在碰撞后需要至少能工作100ms,完成数据写入和状态保存。我一般按200ms来设计,多出来的100ms是安全裕量。

2.6 五层架构的协同工作

这五层不是孤立的。它们之间通过硬件接口和软件协议紧密配合。

举个例子,当碰撞发生时:

  1. 传感器层检测到加速度突变,产生中断信号。
  2. 处理层收到中断,立即启动数据采集,同时通知电源层切换到备用电源。
  3. 处理层对传感器数据进行滤波和融合,判断触发条件是否满足。
  4. 满足条件后,处理层将数据打包,通过SPI写入存储层。
  5. 通信层通过CAN总线向其他ECU发送碰撞事件通知。
  6. 电源层保证整个过程中电压稳定,不掉电。

你看,每个环节都环环相扣。任何一个层出问题,整个EDR系统就可能失效。

总结一下:五层架构的设计核心是「可靠性」和「实时性」。传感器层要准,处理层要快,存储层要稳,通信层要通,电源层要扛。把这五层做好了,EDR系统就成功了一大半。


专注资料整理