旅游网站技术流程图,如何修改wordpress的登录,哪些网站可以做免费广告推广,wordpress搭建工单文章目录 简介诊断会话切换请求和响应1、请求2、子功能3、肯定响应4、否定响应5、特殊的NRC 为什么划分不同会话报文示例UDS中常用 NRC参考 简介
10服务#xff0c;即 Diagnostic Session Control#xff08;诊断会话控制#xff09;服务用于启用服务器中的不同诊断会话即 Diagnostic Session Control诊断会话控制服务用于启用服务器中的不同诊断会话可以通过会话模式赋予不同诊断服务 不同的执行权限。
诊断会话切换
诊断会话转换以及服务器转换到另一个会话时其应做出哪些反应。
流程序号会话切换前会话切换后描述1默认会话默认会话 服务器处于defaultSession默认会话状态时若客户端要求启动defaultSession默认会话则服务器应完全重新初始化defaultSession默认会话。激活的会话期间服务器应重置所有已激活的初始化的更改过的设置控制。这不包括已编程入非易失性存储器中的长期更改。2默认会话默认会话 服务器从defaultSession默认会话转换为defaultSession默认会话外的其他会话时服务器应仅停止已在defaultSession期间通过ResponseOnEvent基于事件响应Ox86服务在服务器中进行配置的事件类似于stopResponseOnEvent停止基于事件响应。3其他会话相同会话或其他会话 服务器从defaultSession默认会话外的诊断会话转换为非defaultSession默认会话的其他会话包括当前有效诊断会话时则服务器应重新初始化诊断会话这意味着 i) 应停止通过ResponseOnEvent基于事件响应Ox86服务在服务器中进行配置的所有事件。 ii) 应重新锁定安全性。注意锁定安全访问应重置依存于待解锁的安全访问的任何有效诊断功能例如DID的有效inputOutputControl输入输出控制。 iii) 应维护好新会话中支持的且不依存于安全访问的所有其他有效诊断功能。例如从一个non-defaultSession非默认会话转换为另一个或相同的non-defaultSession时任何已配置的周期性调度器应保持活动状态且不得影响CommunicationControl通信控制和ControIDTCSetting控制DTC设置的状态这意味着切换会话时若正常通信为禁用则其应保持禁用状态。4其他会话默认会话 服务器从非默认会话的任何诊断会话转换为defaultSession默认会话时服务器应停止通过ResponseOnEvent基于事件响应0x86服务在服务器中已配置的所有事件且应启用安全性。应终止defaultSession默认会话中不支持的任何其他活动的诊断功能。例如应禁用任何已配置的周期性调度器或输出控制且应重置CommunicationControl通信控制和ControIDTCSetting控制DTC设置服务的状态这意味着会话切换为defaultSession默许会话时若正常通信为禁用则应重新启用正常通信。激活的会话期间服务器应重置所有已激活的初始化的更改过的设置控制。这不包括已编程入非易失性存储器中的长期更改。 除了发送请求可以使Server 切换会话如果您进入了一个非默认会话的状态一个定时器会运转如果一段时间内没有请求那么到时间S3Server后诊断退回到默认会话01(最低权限)。当然我们有一个$3E的服务可以使诊断保持在非默认的状态。
请求和响应
1、请求
基本格式
归纳起来诊断的request格式无非以下两种
SID Sub-function Parameter
SID Parameter
即有无sub-function的区别。Parameter可以是DID可以是输入参数可以是自定义的值字节数视具体要求而定。
2、子功能
子功能参数定义1字节数据
Bit7抑制肯定响应消息指示位 suppressPosRspMsgIndicationBit 0False需要肯定响应1True禁止肯定响应 Bit6-0子功能参数值0x00~0x7F 3、肯定响应
基本格式
SID 0x40 Sub-function Parameter
SID 0x40 Parameter
要注意第一个字节是由SID和0x40的和构成。这里的Parameter项是optional的具体要看协议规定。
4、否定响应
基本格式:
0x7F SID NRC
看起来比较简单格式比较固定只要是Negative Response第一字节就是0x7F第二字节照抄原来的SID第三个字节是错误响应码指示具体错误响应的原因 5、特殊的NRC
这里提一下一个特殊的NRC——0x78requestCorrectlyReceived-ResponsePendingRCRRP请求已被正确接收-回复待定。
这个NRC表明请求消息被正确地接收请求消息中的所有参数都是有效的但是要执行的操作还没有完成Server端还没有准备好接收另一个请求。一旦请求的服务已经完成服务器应该发送一个积极的响应或消极的响应响应代码应与此不同。这个NRC的消极响应可以被Server端重复直到被请求的服务完成并且最终的响应消息被发送。 https://zhuanlan.zhihu.com/p/37310388?utm_sourcecom.alibaba.android.rimet
为什么划分不同会话
因为权限问题。默认会话权限最小可操作的服务少扩展模式通常用于解锁高权限诊断服务例如写入数据/参数、读写诊断码编程模式用于解锁bootloader相关的诊断服务即程序烧录。
题外话讲个故事。这三个会话模式好比普通项目成员默认会话、项目组长扩展会话和会计编程会话的关系小职员权限最小小职员有的权限项目组长全有项目组长还多了些其他的高端权限如写数据、例程控制。会计则不同它有些自己独有的权限刷写程序但项目组的很多权限它没有读/擦故障码因为它只干会计相关的事本身不参与项目。
下图仅供参数
报文示例
Tx / RxCan Data描述Byte 7 - Byte 0Tx02 10 02 XX XX XX XX XX 0单帧 22个有效字节长度 1010服务 02编程会话 请求切换到编程会话Rx06 50 02 00 32 01 F4 XX 0单帧 66个有效字节长度 50SID 0x40 00 32P2server_max 50ms 01 F4P2*Server_max 5000ms 回复肯定响应并且回复 P2server、P2*Server 时间参数
UDS中常用 NRC 参考
https://blog.csdn.net/wto9109/article/details/121345955https://zhuanlan.zhihu.com/p/37310388?utm_sourcecom.alibaba.android.rimethttp://www.360doc.com/content/12/0121/07/30375878_1052846532.shtml