3. AURIX Bootloader与量产刷写协议选型
在AURIX Bootloader量产刷写系统中,协议选型不是单纯比较“谁更快”,而是要在刷写节拍、线束成本、网关路径、诊断接口能力与整车EOL工位约束之间取得平衡。AURIX TC3xx通常通过CAN/CAN-FD、DoIP(以太网)或FlexRay与外部诊断设备通信,Bootloader需要根据所选协议实现对应的传输层、网络层与应用层。本节先建立协议栈视角,再给出可落地的选型判断。
一、三种协议在Bootloader中的角色差异
UDS(ISO 14229)是统一的应用层诊断协议,Bootloader的编程会话、安全访问、请求下载、传输数据、例程控制等均以UDS服务表达。差异主要发生在UDS之下的传输层与网络层:
- UDS over CAN/CAN-FD:基于ISO-TP(ISO 15765-2)做多帧分包与流控,CAN-FD单帧数据场最大64字节,经典CAN为8字节。AURIX的CAN节点通常支持CAN-FD,适合刷写数据量中等、线束沿用传统CAN的诊断口。
- DoIP:基于ISO 13400,UDS消息封装在DoIP报文中,通过以太网传输,单包可承载较大负载,适合大容量固件、并行刷写与高节拍EOL。
- FlexRay:时间触发、确定性通信,静态段与动态段并存,通常用于底盘/动力域高可靠通信,作为刷写通道时需额外实现UDS到FlexRay帧的映射,工程复杂度高。
因此,选型的第一步是确认AURIX目标ECU当前可用的物理接口与网关转发能力,而不是先决定协议。
二、量产线束、网关与诊断接口的约束
量产EOL工位通常从OBD诊断口接入。若整车网关只开放CAN诊断通道,则Bootloader必须支持UDS over CAN/CAN-FD;若网关具备以太网诊断路由(如DoIP边缘节点),则可走DoIP。需要重点确认三点:
- 物理层与引脚:OBD口CAN_H/CAN_L、以太网ACT/LINK引脚是否引出,AURIX所在网段是否与诊断口直连或经网关转发。
- 网关路由规则:诊断请求的源地址、目标地址、功能寻址与物理寻址是否被网关放行,DoIP需要确认逻辑地址与激活线。
- 刷写节拍:单ECU固件大小、工位允许刷写时间、是否多ECU并行,直接决定CAN-FD是否够用。
三、协议选型判断路径
下面用一张关系图表达从“接口可用性”到“协议确定”的判断逻辑,图中同时标出各协议对应的AURIX外设与典型约束。
四、AURIX侧协议栈落地要点
确定协议后,Bootloader需要把UDS服务映射到具体外设。以CAN-FD为例,AURIX TC3xx使用MCMCAN模块,配置要点包括:
- 波特率与采样点:仲裁段500 kbps、数据段2 Mbps是常见组合,采样点建议仲裁段80%、数据段75%~80%,需与诊断仪和网关一致。
- ISO-TP参数:BS(块大小)与STmin(最小间隔)影响流控效率。示例配置BS=0、STmin=0,可减少等待;但若网关缓冲有限,可设BS=8、STmin=2 ms。
- UDS服务实现:0x10进入编程会话、0x27安全访问、0x34请求下载、0x36传输数据、0x37退出传输、0x31例程控制(擦除/校验)。
- 看门狗与超时:P2/P2*超时需与刷写工位节奏匹配,避免长擦除期间误判超时。
若走DoIP,AURIX需启用GETH外设,实现ARP、UDP发现、TCP数据连接与DoIP报文头解析。DoIP的激活线(Activation Line)在EOL工位常由诊断仪拉高,Bootloader需检测该状态后再进入编程会话。FlexRay方案则需在静态段分配刷写时隙,并处理帧同步与冷启动,通常不作为首选。
五、选型决策表(示例)
下表给出一个可直接用于项目评审的选型对照,字段按量产刷写实际关注点设置,数值为教学示例,需按项目实测替换。
| 评估项 | UDS over CAN | UDS over CAN-FD | DoIP | FlexRay |
|---|---|---|---|---|
| AURIX外设 | MCMCAN | MCMCAN | GETH | E-Ray |
| 单帧有效载荷 | 8 B | 64 B | 较大(TCP流) | 固定时隙帧 |
| 1.5 MB固件估算刷写时间 | 25~40 s | 2~3 s | <1 s(千兆链路) | 取决于时隙分配 |
| 线束与网关改动 | 最小 | 小(需CAN-FD收发器) | 需以太网诊断口 | 大 |
| Bootloader实现复杂度 | 低 | 中 | 中高 | 高 |
| 适用场景 | 小固件、旧线束 | 主流EOL、中等固件 | 大固件、高节拍、并行刷写 | 特殊整车网络 |
六、拓扑确定与验证方法
协议确定后,拓扑上要明确刷写路径:诊断仪→OBD口→网关→目标网段→AURIX。若多ECU并行刷写,需确认网关是否支持多路路由与带宽分配。验证时建议分三步:
- 物理层验证:用示波器或CAN分析仪确认CAN-FD数据段波特率、采样点与终端电阻;DoIP则确认链路速率与ARP响应。
- 协议层验证:发送0x10 0x02进入编程会话,观察AURIX是否返回0x50 0x02;再发0x27安全访问,确认种子/密钥流程。
- 刷写节拍验证:用示例固件跑完整下载,记录从0x34到0x37的总时间,与工位节拍对比,留出20%余量。
最终选型应形成一份“协议—拓扑—参数”绑定表:协议类型、AURIX外设、波特率/链路速率、ISO-TP或DoIP参数、网关路由规则、目标ECU逻辑地址、刷写时间预算。该表既是Bootloader开发输入,也是EOL工位配置依据,避免开发与产线各自理解不一致。