4. ADAS域控CAN/CAN FD通信工程
ADAS域控的通信工程不是“把信号塞进CAN帧”这么简单。域控同时连接雷达、摄像头、超声波、底盘、车身网关,既要保证感知数据低延迟,又要保证控制指令高可靠。本节围绕报文设计、信号矩阵、网关路由、总线负载分析四条主线展开,并用Bosch典型报文案例说明工程落地方式。
一、报文设计:从信号到帧的映射
报文设计的核心是“信号—帧—周期—发送节点”四要素。以ADAS域控为例,典型输入包括前向雷达目标列表、摄像头车道线、超声波泊车距离;典型输出包括纵向加速度请求、转向扭矩请求、制动减速度请求。设计时先确定信号属性:位宽、精度、偏移、取值范围、更新周期、超时策略。
例如纵向加速度请求信号ACC_AxReq,取值范围-5.0~5.0 m/s²,精度0.01 m/s²,则位宽需覆盖1000个量化级,取12位(0~4095),偏移量设为500,物理值=原始值×0.01-5.0。该信号放入ADAS_AccelReq报文,周期20 ms,发送节点为ADAS域控,接收节点为ESP。若信号更新周期为10 ms,则报文周期必须≤10 ms,否则会出现“信号等帧”的延迟。
CAN FD报文设计还需考虑DLC与数据场长度。经典CAN最大8字节,CAN FD支持12/16/20/24/32/48/64字节。ADAS域控中,雷达目标列表通常超过8字节,应使用CAN FD。例如Radar_ObjectList报文,DLC=64,周期50 ms,包含最多10个目标,每个目标6字节(ID、距离、速度、角度、RCS、状态),共60字节,剩余4字节用于校验和与滚动计数器。
二、信号矩阵:整车通信的“字典”
信号矩阵是通信工程的唯一数据源,通常以DBC/ARXML形式维护。矩阵中每个信号必须明确:信号名、所属报文、起始位、位宽、字节序、精度、偏移、单位、最小值、最大值、发送节点、接收节点、超时值、初始值。ADAS域控的信号矩阵还需增加“功能安全等级”和“端到端保护”字段。
以Bosch典型ADAS报文为例,ADAS_Status报文周期100 ms,包含ADAS_Available(1位)、ADAS_Active(1位)、ADAS_Degraded(1位)、ADAS_Fault(1位)、ADAS_Mode(4位)。这四个状态位构成域控可用性判断链:Available=1且Fault=0才允许激活;Active=1表示功能正在输出;Degraded=1表示性能降级但仍可工作。接收节点(如仪表、网关)据此决定是否显示图标或触发降级策略。
三、网关路由:跨总线数据搬运
ADAS域控通常挂在CAN FD主干网,而底盘、车身仍使用经典CAN。网关负责将域控的ADAS_AccelReq从CAN FD路由到经典CAN,同时将底盘ESP_Status从经典CAN路由到CAN FD。路由设计需关注三点:路由延迟、信号映射、超时处理。
路由延迟包括网关接收、解析、重打包、发送四段。若网关处理时间为2 ms,CAN FD 20 ms周期与经典CAN 20 ms周期叠加,最坏延迟可达22 ms。对于AEB等安全功能,该延迟必须纳入时序预算。信号映射时,若源信号与目标信号精度不同,需做量化转换;若目标报文DLC不足,需拆分或压缩。超时处理则要求网关在源报文丢失时,按矩阵定义填充默认值或置无效,避免下游节点误用旧值。
四、总线负载分析:从理论到实测
总线负载率=单位时间内实际传输位数/总线带宽。经典CAN 500 kbps,CAN FD数据段可到2 Mbps或5 Mbps。以ADAS域控CAN FD主干网为例,假设报文清单如下:
| 报文 | DLC | 周期/ms | 帧类型 | 单帧位数(含填充) |
|---|---|---|---|---|
| ADAS_AccelReq | 8 | 20 | CAN FD | 约130 |
| ADAS_SteerReq | 8 | 20 | CAN FD | 约130 |
| Radar_ObjectList | 64 | 50 | CAN FD | 约620 |
| Camera_LaneInfo | 32 | 50 | CAN FD | 约340 |
| ADAS_Status | 8 | 100 | CAN FD | 约130 |
计算每秒位数:AccelReq 50帧×130=6500;SteerReq 50×130=6500;Radar 20×620=12400;Camera 20×340=6800;Status 10×130=1300。合计33500 bit/s。若数据段速率2 Mbps、仲裁段500 kbps,平均帧时间约0.15 ms,则负载率约33500/2000000=1.7%(仅数据段近似)。实际需用CANoe/CANalyzer测量总线负载峰值,并预留30%余量。若负载超过70%,需优化周期、合并报文或升级速率。
五、Bosch典型报文案例:ADAS_Status与ADAS_AccelReq
Bosch在ADAS域控通信中常采用“状态+请求”双报文模式。ADAS_Status周期100 ms,用于广播域控健康状态;ADAS_AccelReq周期20 ms,用于实时控制请求。两者均带滚动计数器与CRC校验,接收节点在连续3帧丢失或计数器跳变时置功能降级。
以ADAS_AccelReq为例,其数据场布局如下:Byte0~1为ACC_AxReq(12位)与ACC_ReqValid(1位);Byte2为ACC_ReqCounter(4位滚动);Byte3为ACC_ReqCRC(8位);Byte4~7预留。接收节点ESP在收到报文后,先校验CRC与计数器,再判断ACC_ReqValid,最后将ACC_AxReq解析为物理值。若CRC错误或计数器不连续,ESP丢弃该帧并保持上一有效值,同时通过ESP_Status反馈降级。
综上,ADAS域控CAN/CAN FD通信工程的核心是:用信号矩阵统一数据定义,用报文设计保证实时性与可靠性,用网关路由打通跨总线链路,用总线负载分析验证带宽余量,最终以Bosch典型报文案例为参照,形成可落地、可验证、可复现的通信工程方案。