2. EDR硬件系统总体架构:五层架构概览
EDR系统说白了就是汽车上的黑匣子。它的硬件架构,我习惯把它拆成五层来看:传感器层、处理层、存储层、通信层、电源层。这五层各司其职,缺一不可。
你想想看,一辆车发生碰撞时,EDR要在毫秒级内把数据完整记录下来。这背后靠的就是这五层架构的协同工作。我在项目中遇到过不少因为某一层设计不到位,导致整个系统翻车的案例。嗯,咱们一层一层来看。
核心观点:EDR硬件架构的核心是「可靠记录」。每一层设计都要围绕这个目标展开。
2.1 传感器层:数据的源头
传感器层是整个EDR系统的「眼睛」和「耳朵」。它负责采集车辆在碰撞过程中的各种物理量信号。
我个人习惯把传感器分为两类:
- 惯性传感器:三轴加速度计、三轴陀螺仪。用来测量车辆的纵向、横向、垂向加速度,以及横摆角速度。
- 碰撞传感器:安装在车身前部、侧面的压力传感器或加速度开关。它们直接触发安全气囊,同时也给EDR提供碰撞发生的时刻标记。
这里有个坑。我曾经在一个项目中,选了一款高精度的加速度计,但没注意它的输出带宽。结果碰撞信号的高频分量全被滤掉了,记录下来的数据根本没法用。后来我学乖了,传感器选型时一定要看它的带宽能不能覆盖到1kHz以上。
我的建议:传感器层设计时,优先考虑「动态范围」和「带宽」。EDR需要记录的是±200g以上的加速度,带宽至少500Hz。别只看精度,那是静态指标。
2.2 处理层:EDR的大脑
处理层是EDR的核心。它接收传感器数据,进行信号调理、数据融合,然后判断是否触发记录事件。
处理层的核心器件是MCU。我一般推荐选用带硬件浮点运算单元的ARM Cortex-M4或M7内核MCU。为什么?因为碰撞算法里有很多矩阵运算和滤波计算,纯软件模拟浮点太慢了。
处理层要干这几件事:
- 信号调理:对传感器原始信号进行放大、滤波、去噪。我习惯用二阶巴特沃斯低通滤波器,截止频率设在400Hz左右。
- 触发判断:实时计算加速度的变化率(jerk),当超过阈值时触发记录。阈值不能设得太灵敏,否则正常刹车也会触发。
- 数据封装:将原始数据加上时间戳、校验码,打包成标准格式,准备写入存储层。
注意:处理层的实时性要求极高。从传感器采样到触发判断,整个延迟不能超过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依然能正常工作。
电源层包含三个部分:
- 主电源路径:从车辆12V/24V电瓶取电,经过DC-DC转换到5V和3.3V。我习惯用宽输入范围的DC-DC,支持6V到36V输入。
- 备用电源:碰撞发生时,车辆电瓶可能断开。所以EDR必须自带备用电源。我常用的是超级电容或小容量锂电池。
- 电压监控:实时监控各路电压,一旦发现异常,立即触发数据保存流程。
电源层设计有个经典问题:上电时序。MCU、传感器、存储芯片的上电顺序不能乱。我曾经因为没注意上电时序,导致存储芯片在MCU还没初始化完成时就被写入了数据,结果数据全乱了。后来我加了一个电源管理IC,专门控制上电时序。
警告:备用电源的容量计算一定要留余量。EDR在碰撞后需要至少能工作100ms,完成数据写入和状态保存。我一般按200ms来设计,多出来的100ms是安全裕量。
2.6 五层架构的协同工作
这五层不是孤立的。它们之间通过硬件接口和软件协议紧密配合。
举个例子,当碰撞发生时:
- 传感器层检测到加速度突变,产生中断信号。
- 处理层收到中断,立即启动数据采集,同时通知电源层切换到备用电源。
- 处理层对传感器数据进行滤波和融合,判断触发条件是否满足。
- 满足条件后,处理层将数据打包,通过SPI写入存储层。
- 通信层通过CAN总线向其他ECU发送碰撞事件通知。
- 电源层保证整个过程中电压稳定,不掉电。
你看,每个环节都环环相扣。任何一个层出问题,整个EDR系统就可能失效。
总结一下:五层架构的设计核心是「可靠性」和「实时性」。传感器层要准,处理层要快,存储层要稳,通信层要通,电源层要扛。把这五层做好了,EDR系统就成功了一大半。