诊断服务-10服务

一.什么是10服务?

--诊断会话控制(DiagnosticSessionControl),用于启用服务器中的不同诊断会话模式。

10服务一般有3个服务子功能,01 default默认指令,02 Programming编程会话,03 Extended扩展会话。

二.诊断服务的格式:SID+Subfunction

字节

字节值

#1

SID

0x10

#2

Sub-function

0x00-0xFF

三.会话之前的跳转:

诊断10服务中,SID=10,Subfunction=01(进入默认会话)、02(进入编程会话)、03(进入扩展会话)。会话之间的跳转如下图所示:

1.在默认会话下收到默认会话模式请求:服务器应当重新初始化默认会话,即之前被临时激活或者改变的数据应该恢复到刚上电初始化的状态,写入到非易失存储器(断电不会消失的存储器)的数据不会重新初始化。

2.在默认会话下收到任何非默认会话模式请求:服务器应当切换到被请求的会话模式。

3.在非默认会话下收到非默认会话模式请求:服务器完成会话模式切换的同时需要完成以下操作: 停止通过86服务(事件响应)设置的事件; 重新锁定安全访问状态,并且重置依赖于安全访问的服务; 不依赖安全访问的服务,如果在被请求的会话模式也支持,保持不变;

4.在非默认会话下收到默认会话模式请求:服务器完成会话模式切换的同时需要完成以下操作: 服务器恢复之前被暂停的通过86服务(事件响应)设置的事件; 停止默认会话不支持的服务; 其余与1一样

注:在非默认会话下,如果没有发送3E服务(会话保持), 则S3service(一般是5s)time超时后,会话将回到默认会话模式。

四.关于测试

1、请求和响应的测试:在物理寻址和功能寻址(相当于周期性报文的ID)下,发送会话请求:10 01(相当于周期性报文的data).

诊断仪,如电脑,向控制器发送诊断请求,控制器收到诊断请求后会根据实际情况做相应的回复:肯定响应或否定响应,肯定响应则是SID+40,否定响应则是7F+SID+NRC。

2、实例--肯定响应

请求:10 01 

肯定响应:50 01 00 32 01 F4

--50:   肯定响应的SID=请求的SID+40;

--01:sub-function;

--00 32:P2server_max(50ms  转换成十六进制:00 32);

--01 F4:P2*server_max(5000ms*0.1=500,500转换成十六进制:01 F4)

00 32 01 F4--根据具体需求而定,

其中:

P2server_max:从ECU接收完一帧完整的请求后,开启该定时器,且ECU应在该定时器定时时间内发送响应报文。如果在该定时器timeout前ECU就开始发送响应报文,那么该定时器在ECU开始发送响应报文的时候停止计时,否则超时;

P2*server_max:若在ECU中支持了78NRC的机制,那么当ECU忙于处理其他的事情的时候,诊断仪发送了一条请求到ECU,此时ECU是没空对该请求做出响应的(并不意味着否定响应),因此由于78这个机制的存在,ECU会回一个78NRC的响应报文,告知诊断仪ECU现在处于忙碌状态,稍后回复你,这个回复的时间就由P2*时间决定。

3、实例--否定响应

请求:10 01

否定响应:7F 10 12;12则是NRC码;诊断10服务的NRC主要包括表格中几个;

0x12

不受支持的子功能

10 0510 0610 FF

0x13

消息长度不正确或格式无效

1010 01 1110 01 10 14

0x22

执行条件不满足时

速度大于3km/h

0x21

服务器忙

0x11

诊断服务不支持

0x7E

诊断服务在当前会话下不支持

0x78

收到诊断请求,等待响应

在回复准确响应前,回复的

补充一下: NRC12:子功能不支持,多数出现在子功能未被定义;10 05 、10 06、10  07 … NRC7E:该子功能在当前会话下不支持;如:1001会话下,不支持1002跳转,则会回复7F 10 7E 一般情况下:12/7E功能二选一,目前我们这边普遍统一为NRC12。

3、肯定响应抑制位---无响应

请求:10 01  转译成二进制:0001 0000 0000 0001

请求:10 81  转译成二进制:0001 0000 1000 0001

第7位置1,则表示肯定响应抑制,肯定响应则不反馈;

请求:10 01  响应:50 01 00 32 01 F4

请求:10 81   响应:无

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值