CAN诊断基础面试常见问答

发布时间:2026/10/10 7:16:41
CAN诊断基础面试常见问答
CAN诊断速通笔记按面试追问概率排序。一、CAN总线基础铺垫层5分钟一句话定义CAN是差分串行总线CAN_H / CAN_L两根线多主仲裁靠报文ID决定优先级ID越小优先级越高。面试必知的4个数字项目关键值标准帧ID11位0x000~0x7FF扩展帧ID29位车厂诊断一般用它单帧数据段最多8字节CAN FD才有64字节常见诊断波特率500K / 250K诊断刷写常用1M帧类型数据帧、远程帧、错误帧、过载帧——问到了答诊断主要用数据帧即可。二、诊断寻址重点UDS over CAN的核心车载诊断消息用CAN ID来区分说给谁听1. 物理寻址Physical Addressing—— 一对一测试仪 → ECUID如0x7E0发给具体某个ECUECU → 测试仪ID如0x7E8该ECU的应答地址特点有问必答诊断仪刷写、读DID、安全解锁都用这个2. 功能寻址Functional Addressing—— 一对多广播测试仪 → 所有ECUID如0x7DF特点通常只有会话控制0x10、部分ECU复位类服务用广播且不支持多帧传输广播没人做流控这是常考点记忆口诀物理寻址私聊0x7E0/0x7E8功能寻址群发0x7DF群发不能发长消息。三、单帧 / 多帧传输ISO-TP层重点CAN一帧只能装8字节但UDS请求经常超8字节比如WriteDataByIdentifier写VIN码所以传输层用ISO 15765-2ISO-TP拆包PCI字节每帧第一个字节的高4位区分帧类型帧类型PCI首字节说明单帧 SF0x0XX数据长度≤7字节直接发首帧 FF1X XX表示我要发多帧了X XX总数据长度连续帧 CF2X后续数据帧X序号1,2,3…F循环流控帧 FC3X接收方应答BS块大小、STmin间隔时间经典流程能复述这个就过关诊断仪 → ECU10 14 首帧我要发20字节 ECU → 诊断仪30 00 00 流控继续发无限制 诊断仪 → ECU21 xx xx... 连续帧序号从1开始 诊断仪 → ECU22 xx xx...关键细节连续帧序号到0x2F后回绕到0x20流控帧里的STmin是两帧之间的最小发送间隔。四、UDS请求/响应规则和寻址联动重点正常肯定响应 服务ID 0x40请求 22 F1 90 ReadDataByIdentifier读VIN 肯定响应62 F1 90 xx xx... 0x220x400x62否定响应 7F 原服务ID NRC请求 22 F1 90 否定响应7F 22 31 NRC0x31requestOutOfRange必背的6个NRC面试最高频NRC名称触发场景0x11serviceNotSupported服务不支持0x12subFunctionNotSupported子功能不支持如10 050x13incorrectMessageLengthOrInvalidFormat长度/格式错误0x22conditionsNotCorrect条件不满足如车速不为0时刷写0x31requestOutOfRangeDID/DTC不存在或越界0x33securityAccessDenied没解锁就访问受保护数据响应抑制位suppressPosRspMsgIndicationBit请求服务带子功能时子功能字节的最高位bit71表示成功就不要回肯定响应了减少总线负载。例如10 82 进入默认会话且不回响应。五、CANoe实操口径工具层面兜底被问CANoe里怎么做诊断按这个答用Diagnostic Console手动发诊断请求或写CAPL脚本自动化需要加载诊断描述文件CDD/PDX里面有DID、安全算法、会话配置用Panel做交互界面用Test Module跑诊断测试序列最后出HTML报告Log分析看Trace窗口正常/异常响应、NRC、多帧流控时序一目了然自测清单能答出这8题就安全物理寻址和功能寻址的区别功能寻址为什么不能有肯定响应和多帧22服务读到数据的肯定响应SID是多少否定响应7F 22 78是什么意思0x78 responsePending请求已收到正在处理——刷写时常见首帧PCI是10 14表示什么连续帧序号超了0x2F怎么办NRC 0x33 什么时候出现为什么刷写前要做安全访问27服务防盗/防误刷写种子-密钥机制CANoe诊断需要加载什么文件把第二、三、四节背熟约30分钟第一、五节理解即可。有答不上来的具体题随时来问。