Autosar诊断——诊断模块基础设计

Autosar诊断基础——诊断模块基础设计

  • 1 诊断服务设计概述
  • 2 诊断数据服务DID设计
    • 2.1 据服务(0x22)
      • 2.1.1 ECU软硬件信息
      • 2.1.2 输出及反馈状态
      • 2.1.3 私有ECU节点请求信息
      • 2.1.4 错误log信息
      • 2.1.5 ECU的运行基础信息
    • 2.2 写数据服务(0x2E)
      • 2.2.1 功能的使能变量
      • 2.2.2 参数的临时修改
      • 2.2.3 将软件等信息写入FLASH
    • 2.3 输入输出控制(0x2F)
      • 2.3.1 高边输出(HSD)控制
      • 2.3.2 桥驱电机输出控制
      • 2.3.3 负载位置控制
  • 3 诊断例程设计(0x31)
    • 3.1 前编程条件检查
    • 3.2 供应商EOL产线
      • 3.2.1 EOL模式定义
      • 3.2.2 快速休眠
      • 3.2.3 重置EEPROM(保证初始状态)
    • 3.3 OEM的EOL产线
      • 3.3.1 负载自检(EOL)
      • 3.3.2 学习自适应数据
      • 3.3.3 立即保存状态数据
  • 4 诊断故障码DTC设计
    • 4.1 电路故障
    • 4.2 逻辑或信号错误故障
    • 4.3 通信故障
    • 4.4 配置参数错误
    • 4.5 内存参数错误
    • 4.6 开关粘滞错误
  • 5 快照DID
    • 5.1 ECU供电电压
    • 5.2 ECU运行时间
    • 5.3 与DTC功能相关的信息
  • 6 组合DID
    • 6.1 产品信息
    • 6.2 任意组合
  • 7 安全访问服务

1 诊断服务设计概述

诊断被设计在开发、制造 及维修过程中用来实现特定的功能,如用于软件更新、售后检修、产线EOL等方面。当然,BootLoader及App的侧重点也会略有不同,BootLoader主要的功能为软件的更新,而App功能的目的则是侧重于具体功能模块的诊断、数据保护及IO输入输出等。

BootLoader及App的需要支持的基本服务
BootLoader常用服务:
1)、诊断会话控制服务(0x10): 实现在三种会话模式(默认会话、扩展会话及编程会话)下进行切换;
对于三种会话模式的功能及管里,请参考ISO14229-1
2)、诊断会话保持服务(0x3E): 当控制器切换到扩展会话后,当断开控制器会切换回默认会话,此服务目的就是让其保持在当前会话模式(如扩展会话的某些服务在默认会话下不支持,退回是自然退出);
3)、控制器复位服务(0x11): 通过诊断服务使ECU进行复位操作,服务之后会切换值默认会话;
4)、安全访问服务(0x27): 对其它服务或者功能进行保护,避免非法读取、非法改写及非法操作。与安全访问服务进行关联的诊断服务须通过安全访问服务后才能及进行相应的操作;
与Application的安全访问的Level不一样,相应子服务及算法区别
5)、数据读取服务(0x22): 在BootLoader中,数据读取服务主要读取如诊断数据版本、硬件版本等内容,还须读取当前诊断会话(在软件更新中极为重要);
6)、数据改写服务(0x2E): 通过DID进行数据写入服务,主要写入一些常数等内容,如安全访问常数(OEM用于避免其他非法软件更新)、校验常数等内容;
7)、例程控制服务(0x31): 如字面意思,它由一些列定义好的软件操作,在BootLoader中主要用于数据的擦除、数据的写入及数据校验等;
8)、下载相关服务(0x34、0x36、0x37): 此三服务对应下载过程——请求下载、数据传输、下载完成退出

Application常用服务:
1)、诊断会话控制服务(0x10): 实现在三种会话模式(默认会话、扩展会话及编程会话)下进行切换;
2)、诊断会话保持服务(0x3E): 当控制器切换到扩展会话后,当断开控制器会切换回默认会话,此服务目的就是让其保持在当前会话模式(如扩展会话的某些服务在默认会话下不支持,退回是自然退出);
3)、控制器复位服务(0x11): 通过诊断服务使ECU进行复位操作,服务之后会切换值默认会话;
4)、安全访问服务(0x27): 对其它服务或者功能进行保护,避免非法读取、非法改写及非法操作。与安全访问服务进行关联的诊断服务须通过安全访问服务后才能及进行相应的操作;
与BootLoader的安全访问的Level不一样,相应子服务及算法区别
5)、数据读取服务(0x22): 数据读取服务主要读取如诊断数据版本、硬件版本等内容,还须读取当前诊断会话(在软件更新中极为重要),以及输出的状态、输入的状态及错误Log等内容;
6)、数据改写服务(0x2E): 写入参数可以选择永久写入及短时参数调整。短时调整如用于标定等可将参数写入RAM,永久写入可以写入EEPROM(断电重启仍保持数据有效性,可以用于功能的使能与禁止等)
7)、IO控制服务(0x2F): 直接控制IO口的输入输出,此功能必须经过安全访问;
8)、例程控制服务(0x31): 如字面意思,它由一些列定义好的软件操作,如检查编程条件、参数学习、位置擦除及EOL模式进入等(三种例程类型,详细见ISO14229-1);
9)、按地址读取服务(0x23): 此服务读取地址中的数据,建议关联安全访问;
10)、通信控制服务(0x28): 通信控制服务主要用于禁止一些应用报文的发送与接收,用于软件的更新(更新过程中停止所有控制器的应用报文,使得控制器软件更新时总线负载降低);
11)、DTC控制服务(0x85): 主要用于软件更新过程中,禁止DTC的设置,在禁用应用报文时会造成DTC误报(相关DTC如果存在定义的话);
12)、诊断信息清除服务(0x14): 清除DTC相关信息,用于检修完成后清除DTC及EOL检测结束时,避免后续检修造成错误判断;
13)、诊断信息读取服务(0x19): 读取DTC相关信息服务包含较多服务(此处不详细介绍),可以读取冻结帧等详细信息用于更好的故障判断;

2 诊断数据服务DID设计

DID全称为Data Identifier,即数据ID,详细定义定义见14229规范。简单来说,就是给一个编号赋予了特殊含义(如0x4328代表电机状态),然后服务通过操作这个编号来实现功能(如读取状态、控制电机的动作等)。对于DID的编号具体定义须遵循ISO14229-1,规范中会存在为车辆制造商保留的范围、特殊DID的具体定义。

此处截取了部分表格,详细定义见规范文档。

Autosar诊断——诊断模块基础设计

来源:摸鱼的攻城狮

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年5月15日
下一篇 2022年5月15日

相关推荐