诊断服务_0x10和0x11服务
0x10和0x11服务功能
10和11服务都是都是跟会话切换有关的服务,以下主要针对常用的子功能进行说明。
10服务
10服务是针对会话切换的服务,常见的子服务有01,02,03。
01子服务是指默认会话,02子服务是指编程会话,03子服务是指扩展会话。各个会话之间可以进行切换。
最常用的会话切换有:
1.默认会话切扩展会话(01->03)
2.扩展会话切默认会话(03->01)
3.扩展会话切编程会话(03->02)
4.编程会话切默认会话(02->01)
需要注意的是,一般不支持默认会话跳转编程会话(01->02)和编程会话跳转扩展会话(02->03)。
10服务响应格式
10服务肯定响应格式:
Client send:02 10 01
Server response: 06 50 01 00 32 01 F4
10服务常用的否定响应有0x7E,0x12,0x13
10服务否定响应格式:
1.当发送的诊断请求中子服务不支持时,回复NRC=0x12
Client send:02 10 05
Server response: 03 7F 10 12
2.当发送的诊断请求长度不正确时,回复NRC=0x13
Client send:03 10 01 00
Server response: 03 7F 10 13
3.当不支持02会话切换到03会话,此时处于02会话下,发送02 10 03请求,回复NRC=0x7E
Session in programming:
Client send:02 10 03
Server response: 03 7F 10 7E
11服务
11服务主要功能是复位,常用的子功能有01、03。01子功能是指硬复位,03子功能是指软复位。
11服务肯定响应格式
Client send:02 11 01
Server response: 02 51 01
11服务否定响应格式
11服务常用的否定响应有0x12,0x13
1.当发送的诊断请求中子服务不支持时,回复NRC=0x12
Client send:02 11 05
Server response: 03 7F 11 12
2.当发送的诊断请求长度不正确时,回复NRC=0x13
Client send:03 11 01 00
Server response: 03 7F 11 13
10和11服务使用场景:
- 在10服务的默认会话下,收到02 11 01/02 11 03,由于收到11复位请求,还是会切换到默认会话。
- 在10服务的编程会话下,收到11 01/11 03,会发生复位;从BT下切换到APP。
- 在10服务的扩展会话下,收到11 01/11 03,会发生复位,切换至默认会话。
当然,10和11服务的使用场景也会和其他服务结合起来。
比如28服务如果只支持在03会话下,在03会话下使用28服务禁止应用报文的收发,但是之后又发送了10 01/11 01,会话状态就会切换至01会话,那么28服务禁止应用报文收发的功能就不会再起作用了。
