【AUTOSAR】UDS协议的代码分析与解读(五)----ECU诊断服务

这篇具有很好参考价值的文章主要介绍了【AUTOSAR】UDS协议的代码分析与解读(五)----ECU诊断服务。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

8   诊断服务

8.1 总览

此章节定义了本规范中可使用的诊断服务及其执行规则

下表列出h事业部定义的所有UDS诊断服务。ECU最终实现与下述定义不符之处必须得到h事业部 的认可。服务实现内容需在零部件诊断规范中详细说明。

 9 诊断服务支持列表

断服务列表

APP

Bootloader

全访 问

寻址限制

SID  (HEX)

服务名称

扩展

扩展

物理

10

断会话控制

M

11

电控单元复位

M

14

清除诊断信息

M

19

读取诊断故障代 码信

M

22

据标识符读取 

M

23

取内存

U

27

安全访问

M

28

通讯控制

M

2A

取数据(周期标 符)

U

2C

态定义数据标 

U

2E

据标识符写入 

 1

√FBL

M

2F

据标识符输入 出控制

 1

U

31

例程控制

 1

√FBL

U

34

求下载

√FBL

U

36

输数据

√FBL

U

37

请求退出传

√FBL

U

38

请求文件传

√FBL

U

3D

入内存

 1

U

3E

试工具保持连 接

M

85

控制诊断故障代 码设

M

1) √ 1:需要通过安全访问等级1,扩展安全级

2) FBL:需要通过安全访问等级FBL,刷新安全级

下表列出了需要支持禁止肯定响应位的诊断服务。其他服务是否支持取决于ECU供应商的具体需 求,但需得到h事业部诊断工程师的认可。

L 禁止肯定响应位支持列表

诊断服务列表

禁止肯定响应

SID  (HEX)

服务名称

10

断会话控制

Y

11

电控单元复位

Y

14

清除诊断信息

Y

19

读取诊断故障代码信息

Y

22

根据标识符读取数据

N

23

取内存

N

27

安全访问

N

28

通讯控制

Y

2A

取数据(周期标识符)

N

2C

动态定义数据标识符

N

2E

根据标识符写入数据

N

2F

根据标识符输入输出控制

N

31

例程控制

N

34

求下载

N

36

输数据

N

37

请求退出传

N

38

请求文件传输

N

3D

入内存

N

3E

测试工具保持连

Y

85

控制诊断故障代码设置

Y

8.2 诊断会话说明

8.2.1 默认会话

此诊断会话模式使能ECU的默认诊断会话,该会话模式不需要任何诊断应用程序的超时处理(例如: 无需3E服务保持此会话模式激活)。

如果任何其它非默认式的会话模式被激活, 而默认模式再一次被启动,则须遵守以下执行规则:

a)当ECU发送默认会话模式肯定响应报文后, ECU应终止当前诊断会话模式并进入默认诊断会 模式;

b)当ECU发送默认会话模式肯定响应报文后,如果在之前的诊断会话模式下解锁了ECU,则ECU 将被重新锁定;

c)当ECU送默认会话模式肯定响应报文后,将复位之前诊断模会话模式下激活的状态和控制 服务。例如:28服务、85服务、 2F服务;

d)如果ECU发送该服务否定响应报文,激活的会话模式保持不变

e)在ECU初始化后,诊断会话模式为默认会话模式。

8.2.2 编程会话

此诊断会话模式允许支持ECU内存编程所有需要的诊断服务。

在此会话模式下, ECU只能通过诊断工具发起的电控单元复位(11服务)、会话类型为默认会话的 断会话控制(10服务) 或ECU会话(S3_server) 超时退出此会话。

8.2.3 扩展会话

此诊断会话模式可用来支持对ECU变量进行调整所需的所有诊断服务,也可用来使能一些服务。

8.2.4 下线检测会话

诊断会话模式可用来支持下线检测操作所需的所有诊断服务,也可用来使能一些服务。

8.3 诊断会话控制 DiagnosticSessionControl (10h)

诊断话控制服务用于在ECU所支持的诊断会话中转换会话模式。一个诊断会话使能ECU的一个特 定诊断服务集以及相关诊断功能。某些诊断服务在特定的会话下会限制使用。

8.3.1 报文格式

 11 诊断会话控制服务的请求报文

Byte

Name

Cvt

Value  (Hex)

#1

Request Service Identifier

M

10

#2

Sub-Function=[sessionType]

M

00--FF

 12 诊断会话控制服务的肯定响应

Byte

Name

Cvt

Value  (Hex)

#1

Positive Response Service ID

M

50

#2

Session Type

M

00--FF

#3

#6

Session Parameter Record[]=[

P2_server_max  (Highbyte)

P2_server_max  (Lowbyte)

P2*_server_max  (Highbyte)

P2*_server_max  (Lowbyte) ]

M

00--FF

 13 会话参数记录定义

Parameter

No.ofBytes

Resolution

(ms/bit)

MinValue

(ms)

MaxValue

(ms)

P2_server

2

1

0

65535

P2*_server

2

10

0

655350

8.3.2 支持的否定响应码

 14 诊断会话控制服务的否定响应码

Hex

Cvt

ErrorText

12

M

功能不支持

如果子功能参数不支持,发送此否定响应码。

13

M

报文长度错

如果报文长度错误,发送此否定响应码

22

C

条件未满足

如果ECU不满足切换会话模式的条件,发送此否定响应码。

:开始执行编程模式是, NRC 22将被使用

8.3.3 参数定义

15义了我司要求的诊断会话类型, 如有其它诊断会话需求, 需向h事业部申请并通过诊断工程 同意。

15 诊断会话控制服务类型定义

Hex

Description

Cvt

1

DefaultSession认会话

M

2

ProgrammingSession刷写会话

U

3

Extendeddiagnosticsession扩展会

M

40

EOL diagnosticsession下线检测会话

U

8.3.4 执行规定

a)诊断工具通过此服务使ECU进入不同的诊断会话模式。要执行一个诊断服务,必须在适合的 会话模式下;

b)一时刻只能有一个诊断会话模式被激活;

c)电后如果没有诊断会话请求,ECU需自动进入默认会话模式(01h);

d)如果ECU需要满足一定的条件才能启动一个新的诊断会话, 需在零部件诊断规范中说明。

e)图7述了模式切换的过程, 默认会话模式可以直接切换到扩展会话模式,但是不能直接切换编程会话模式, 如果想进入编程会话模式,则必须先进入扩展会话模式。同样, 编程会话模式不能直 接进入扩展会话模式,只能进入默认会话模式。ECU复位以及S3_server超时将导致ECU进入默认会话 式。

【AUTOSAR】UDS协议的代码分析与解读(五)----ECU诊断服务

 7 诊断会话模式的转换

8.4 电控单元复位 Ecu Reset (11h)

此服务要求电控单元根据重置类型参数的内容执行有效的ECU复位功能操作。

8.4.1 报文格式

表 16 复位服务的请求报文

Byte

Name

Cvt

Value  (Hex)

#1

Request Service Identifier

M

11

#2

Sub-Function=[resetType]

M

00--FF

表 17 复位服务的肯定响应

Byte

Name

Cvt

Value  (Hex)

#1

Positive Response ServiceID

M

51

#2

Reset Type

M

00--7F

8.4.2 支持的否定响应码

 18 复位服务的否定响应码

Hex

Cvt

Error Text

12

M

功能不支持

如果子功能参数不支持,发送此否定响应码。

13

M

报文长度错

如果报文长度错误,发送此否定响应码

22

M

条件未满足

如果ECU不满足复位的条件,发送此否定响应码。

8.4.3 参数定义

 19 复位服务类型定义

Hex

Description

Cvt

01

Hard Reset

硬件复位

M

02

Key OffOn Reset

钥匙复位

U

03

Soft Reset

软件复

M

8.4.4 执行规定

ECU位的肯定响应应在复位操作执行之前发送, 并在肯定响应发送成功后100ms内执行。 ECU执行复位后,会话模式应处于默认会话模式。文章来源地址https://www.toymoban.com/news/detail-485807.html

到了这里,关于【AUTOSAR】UDS协议的代码分析与解读(五)----ECU诊断服务的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 车载诊断协议UDS——诊断刷写(Software Update)

    刷写,顾名思义就是两个动作:刷和写: 刷是擦除ECU芯片内存上原有的数据; 写是重新在ECU芯片内存上写入新的数据(Application or Calibration Data……);         在控制器量产之初,会将valid application data烧录到控制器芯片内存上。但随着时间推移,控制器中运行代码出现

    2024年02月08日
    浏览(65)
  • AUTOSAR规范与ECU软件开发(实践篇)10.1、密码协议栈

    目录 1、前言 (1) Cry模块 (2) CryIf模块 (3) Csm模块         AUTOSAR密码协议栈功能主要包括哈希值计算、 非对称签名验证和对称数据加密等, 其架构如图10.3所示。 在AUTOSAR BSW中从上到下它主要包括以下三个模块:

    2024年02月09日
    浏览(64)
  • Autosar诊断系列介绍20 - UDS应用层P2Server/P2Client等时间参数解析

    本系列Autosar 诊断入门介绍,会详细介绍诊断相关基础知识,如您对诊断实战有更高需求,可参见诊断实战系列专栏,快速链接:Autosar诊断实战系列导读 如您MCAL配置,通信,诊断,OS等Autosar全栈实战有更高需求,可以参见AutoSar 实战进阶系列专栏,快速链接:AutoSar实战进阶

    2024年02月14日
    浏览(60)
  • UDS统一诊断服务【一】诊断会话控制0X10服务

    最近在做诊断相关的开发工作,将自己接触到的知识点记录下来。前面的文章已经介绍过UDS的一些基础知识,和基本的一些概念,不清楚的可以查看之前的文章:UDS基础知识介绍 诊断会话控制服务 DiagnosticSessionControl ,SID是0X10,主要功能是控制服务端的会话模式切换。一般默

    2024年02月03日
    浏览(182)
  • 【车载开发系列】UDS诊断---安全访问服务($0x27)

    该服务提供了一种保护机制,该机制用来保护访问限制的诊断服务。 加密策略采用种子和密钥相关联的方法。采用随机产生的种子,通过安全算法得到唯一的秘钥。 若秘钥匹配正确则可以调用受到保护的诊断服务。这个服务解锁的是处在某个安全等级下的服务。 诊断工具请

    2024年02月03日
    浏览(75)
  • UDS统一诊断服务【三】安全访问0X27服务

    今天分享的是UDS的安全访问服务,希望能对你有所帮助 SecurityAccess 安全访问,27服务,用来保护某些诊断服务的,提供一种保护机制。例如对于重要数据的上传或者下载过程不做任何限制,可能会对整车的安全造成极大的威胁,尤其是针对底盘域的控制器更是要在这方面做好

    2024年02月16日
    浏览(54)
  • UDS诊断系列之七 安全访问(27)服务(番外)附录I

    附录I的主要内容是通过一个状态图来描述ECU在安全访问的各状态之间的切换条件,以及如何进行状态切换即切换过程中都需要执行哪些操作。 下面直接先上图。 图看起来流程很多,但实际上很简单,先说图中的四个状态: A - ECU没有接收过任何安全访问的请求,或者刚刚接

    2024年02月10日
    浏览(53)
  • 【ISO14229_UDS刷写】-3-$36诊断服务TransferData理论部分

    总目录:(单击下方链接皆可跳转至专栏总目录) 《UDS/OBD诊断需求编辑工具》总目录 https://blog.csdn.net/qfmzhu/article/details/123697014 目录 1 $0x36 TransferData诊断服务描述 2 0x36服务请求消息 2.1 0x36服务请求消息定义 2.2 0x36服务请求消息子功能参数$ Level(LEV_)定义 2.3 0x36服务请求消息

    2024年02月06日
    浏览(56)
  • Autosar诊断实战系列01-手把手教你增加一路31Routine服务

    在本系列笔者将结合工作中对诊断实战部分的应用经验进一步介绍常用UDS服务的进一步探讨及开发中注意事项, Dem/Dcm/CanTp/Fim模块配置开发及注意事项,诊断与BswM/NvM关联模块的应用开发及诊断capl测试脚本开发等诊断相关实战内容。 Autosar诊断实战导读快速链接:Autosar诊断实

    2024年02月08日
    浏览(45)
  • 使用python执行uds诊断

            主要是通过python-can模块与pcan等支持的硬件通讯,uds协议层使用udsoncan模块和can-isotp模块实现uds诊断。         python-can模块         pip install python-can         相关文档链接:Installation - python-can 4.1.0 documentation                  udsoncan模块         pip ins

    2024年02月09日
    浏览(80)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包