UDS(ISO 14229)是汽车诊断的事实标准。一个 ECU 的诊断功能通常包含十几个服务、上百个 DID 与 DTC,再加上会话管理、安全访问、时序参数,完整测一遍手工需要数天,而且极易漏项。诊断是自动化测试投入产出比最高的领域之一。
一、UDS 测试的用例结构
诊断用例看似繁杂,其实可以归纳为四类,每一类都天然适合脚本生成:
- 正常流程:每个服务在支持的会话下的标准请求-响应验证。
- 否定响应:NRC 码验证——错误的会话、错误的序列、超长的数据、安全未解锁,每个服务都有固定的否定场景矩阵。
- 时序测试:P2/P2* 超时、S3 会话保持、刷写过程中的擦除与编程时序。
- 状态依赖:编程会话下禁止读 DTC、扩展会话下某些服务受限等跨服务组合。
用例矩阵一旦建成,后续项目只需替换诊断调查表(CDD/PDX 导出的服务与 DID 清单),脚本框架完全复用。
二、安全访问与刷写是两个硬骨头
**安全访问(0x27)**的测试难点在于 Seed&Key 算法的模拟与错误注入:错误的 Key、连续失败锁定、延时惩罚,都需要脚本精确控制。自动化方案里要把安全算法做成可配置组件,不同项目换算法库即可。
**程序刷写(0x34/0x36/0x37)**的测试要覆盖:正常刷写流程、断电/断通讯恢复、校验失败处理、刷写次数与寿命。这类用例一次执行几十分钟到几小时,必须无人值守自动化,而且要配合程控电源做上下电时序。
三、判定自动化是关键
诊断测试的判定不能停留在"响应了没有",而要比对:响应数据的每个字节、NRC 码的精确值、响应时间是否在 P2 窗口内。我们的做法是直接从诊断规范生成判定基线,执行后自动输出"通过/失败/偏差"三态报告,附原始报文时间戳。
四、与 OBD、DoIP 的协同
新能源车型往往同时有 UDS on CAN、UDS on CAN FD 与 DoIP 多条诊断链路。自动化框架应当把"服务逻辑"与"传输层"解耦:同一套用例,换传输层配置就能在三条链路上分别跑一遍,快速发现链路特有问题(如 DoIP 的路由激活时序)。
乾力智能在诊断自动化方向交付过从零部件到整车的多个项目,熟悉 ISO 14229、ISO 15765、ISO 13400 全栈。如果你的诊断测试还在手工点点点,欢迎联系我们评估自动化改造的空间。