4. 通信协议集成

底盘域控(Chassis Domain Controller,CDC)通常同时挂接三类车载网络:用于制动、转向、悬架等实时控制回路的 CAN/CAN FD,用于线控底盘高可靠时间触发通信的 FlexRay,以及用于激光雷达、摄像头、OTA 与诊断大数据回传的车载以太网。通信协议集成的本质,是把“信号定义”变成“可被 ECU 收发、可被工具解析、可被测试验证”的工程数据。本节围绕配置、信号矩阵与 DBC/ARXML 导入展开。

一、三类网络在底盘域控中的分工

CAN 与 CAN FD 是底盘域控最常用的控制总线。经典 CAN 单帧最多 8 字节,仲裁段与数据段同为 500 kbit/s;CAN FD 在仲裁段保持 500 kbit/s,数据段可提升到 2 Mbit/s 甚至 5 Mbit/s,单帧最多 64 字节。底盘域控中,轮速、横摆角速度、方向盘转角、制动踏板行程等信号通常以 10 ms 或 20 ms 周期发送;而制动压力请求、驱动扭矩请求等安全相关信号往往要求 5 ms 甚至更快。

FlexRay 用于对确定性和容错要求更高的线控底盘。它采用 10 Mbit/s 双通道,通信周期由静态段、动态段、符号窗和网络空闲时间组成。静态段承载时间触发帧,适合转向角指令、制动力分配等强实时信号;动态段承载事件触发帧,适合故障码与诊断信息。FlexRay 的调度表在集成阶段必须与各 ECU 的冷启动、同步和时隙分配严格对齐,否则会出现帧丢失或同步失败。

车载以太网在底盘域控中主要承担高带宽数据通道,典型为 100BASE-T1 或 1000BASE-T1,配合 SOME/IP、DoIP、TSN 等协议。它承载诊断刷写、传感器原始数据、域控与中央计算平台之间的服务调用。以太网不替代 CAN/FlexRay 的实时控制角色,而是形成“控制总线 + 数据骨干”的分层结构。

底盘域控通信协议集成与信号矩阵导入链路 信号矩阵 / 通信矩阵 报文 ID / 周期 信号名 / 起始位 / 长度 字节序 / 缩放 / 偏移 物理范围 / 初值 发送节点 / 接收节点 超时 / 校验 / 计数器 E2E Profile 信号组 / 多路复用 枚举值 / 无效值 单位 / 注释 DBC / ARXML 导入配置 DBC → CAN / CAN FD ARXML → FlexRay / ETH 节点映射到 ECU 端口 PDU 到帧的打包 信号到 PDU 的映射 更新位 / 超时监控 FlexRay 调度表 时隙 / 通道 / 周期 生成代码 / 配置描述 CAN / CAN FD 500 kbit/s 仲裁段,数据段 2 Mbit/s 轮速、横摆角速度、踏板行程 10~20 ms 制动/扭矩请求 5 ms,E2E Profile 1/2 FlexRay 10 Mbit/s 双通道,静态段 + 动态段 转向角指令、制动力分配走静态段 故障码、诊断信息走动态段 车载以太网 100/1000BASE-T1,SOME/IP、DoIP 诊断刷写、传感器原始数据回传 TSN 时间同步,服务发现 信号矩阵是唯一数据源,DBC/ARXML 是载体,导入配置决定 ECU 实际收发行为

二、信号矩阵:集成的唯一数据源

信号矩阵(Communication Matrix)是通信集成的“单一数据源”。它至少应包含:报文名称与 ID、DLC、发送类型(周期/事件)、周期、发送节点、接收节点;每个信号的名称、起始位、位长度、字节序、数据类型、缩放因子、偏移量、物理最小值/最大值、单位、初始值、无效值;以及 E2E 保护配置、超时监控、信号组与多路复用关系。

以一条 CAN FD 报文为例:报文 CDC_BrakeReq,ID 0x1A0,DLC 16,周期 5 ms,发送节点 CDC,接收节点 ESP。其中信号 BrakePressureReq 起始位 0,长度 12 bit,字节序 Intel,缩放 0.1,偏移 0,物理范围 0~400 bar,单位 bar,初值 0,无效值 0xFFF。这意味着原始值 2500 对应物理量 250.0 bar。集成时必须确认发送端与接收端对缩放、偏移、字节序的理解完全一致,否则会出现“数值对但物理量错”的典型问题。

三、DBC 与 ARXML 导入的关键动作

DBC 是 CAN/CAN FD 的经典描述格式,导入时通常执行以下动作:选择目标 CAN 通道与波特率配置;将 DBC 中的节点映射到域控的 ECU 实例;把报文分配到对应的 CAN 控制器与硬件对象(Hardware Object);把信号映射到应用层 PDU 或信号结构体;配置发送周期、超时监控与 E2E 保护。导入后必须检查报文 ID 冲突、DLC 不匹配、信号越界和节点未映射四类问题。

ARXML 是 AUTOSAR 的交换格式,覆盖 FlexRay、以太网和 CAN。导入 FlexRay 时,重点是把 Cluster、Cycle、Static Slot、Dynamic Slot、Channel 与 ECU 的通信控制器配置对齐;导入以太网时,重点是 Service Interface、Method、Event、Field 与 SOME/IP 绑定,以及 VLAN、IP 地址、端口号。ARXML 导入后应检查引用完整性,避免出现“信号存在但未绑定到 PDU”的悬空引用。

导入完成后,建议用工具导出“报文—信号—节点”对照表,与信号矩阵逐条比对。差异项应记录为集成问题单,而不是在代码里临时打补丁。

四、配置示例与验证方法

下面是一段 CAN FD 报文配置的示例片段,用于说明导入后生成的配置应包含哪些字段。参数为教学示例,实际项目以信号矩阵为准。

Frame: CDC_BrakeReq
  CanId      = 0x1A0
  Dlc        = 16
  CanFd      = true
  BitRate    = 500 kbit/s (arb) / 2 Mbit/s (data)
  TxType     = cyclic
  CycleTime  = 5 ms
  TxNode     = CDC
  RxNodes    = ESP, VCU
  Signal: BrakePressureReq
    StartBit = 0
    Length   = 12
    ByteOrder= Intel
    Factor   = 0.1
    Offset   = 0
    Min      = 0 bar
    Max      = 400 bar
    InitValue= 0
    Invalid  = 0xFFF
  E2E: Profile 1, DataId 0x1234

验证时,先用 CANoe 或类似工具观察报文周期是否稳定在 5 ms,再用示波器或总线分析仪确认数据段波特率切换正常。随后注入边界值:发送原始值 0、2500、4095,检查接收端解析出的物理量是否为 0 bar、250.0 bar、409.5 bar(超出 400 bar 时应按无效或饱和处理)。最后断开发送节点,确认接收端在超时阈值内进入降级状态。

FlexRay 的验证重点是调度表:用 FlexRay 分析工具检查静态段时隙是否按配置发送,冷启动节点能否在预期周期内完成同步,双通道数据是否一致。以太网的验证重点是服务发现与端到端时延:确认 SOME/IP 服务可被订阅,DoIP 诊断连接可建立,TSN 时间同步偏差在允许范围内。

五、常见集成问题与判断依据

  • 信号值正确但物理量错误:优先检查缩放因子、偏移和字节序,尤其是 Intel 与 Motorola 混用。
  • 报文周期抖动:检查发送任务优先级、总线负载和 CAN FD 数据段波特率配置。
  • FlexRay 同步失败:检查冷启动节点配置、时隙分配和双通道一致性。
  • ARXML 导入后信号悬空:检查 PDU 到帧、信号到 PDU 的引用链是否完整。
  • E2E 校验失败:检查 DataId、计数器初值和 Profile 版本是否与接收端一致。

通信协议集成的交付物不是“导入成功”的提示,而是一份可追溯的配置基线:信号矩阵版本、DBC/ARXML 版本、导入工具版本、生成的配置描述文件、验证记录与遗留问题清单。只有这些内容对齐,底盘域控的通信才能在不同 ECU、不同工具链之间保持一致。