【CAN】诊断服务-31服务的格式,肯定相应,否定响应

一、31服务基础知识

31服务:例程控制,RoutineControl,执行指定的测试步骤顺序并获取相关结果,具有较大的灵活性。

例程请求格式:

SID + subfunction (1byte)+ routineIdentifier (2byte)+ OptionRecord(n bytes)

第一部分: SID =31

第二部分:subfunction(1byte)

-- 01 启动例程:规定服务器需启动第三部分routineIdentifier指定的例程;

-- 02 停止例程:规定服务器需停止第三部分routineIdentifier指定的例程;

-- 03 请求例程结果:规定服务器需返回第三部分routineIdentifier指定例程的结果值;

第三部分: routineIdentifier 例程标识符(2 byte);

第四部分: OptionRecord 例程控制选项记录,可以选择性的指定例程的启动条件或停止条件

如:擦除内存的例程
image
检查完整性例程:31 01 02 02
检查独立性例程:31 01 FF 01

二、肯定响应

响应格式:SID + subfunction (1byte)+ routineIdentifier (2byte)+ routinueInfo

第一部分:SID =31+40=71;

第二部分:subfunction(1byte),与请求的subfunction一致;

第三部分: routineIdentifier 例程标识符(2 byte),与请求的例程ID一致;

第四部分: routinueInfo :OEM定义该字节,提供了一种支持所有执行例程的通用外部设备处理的机制;

示例:
image

三、否定响应

格式:7F 31 NRC
image

参考链接

END

posted @ 2025-08-24 01:08  anliux  阅读(83)  评论(0)    收藏  举报