Autosar 诊断 —— 诊断模块设计

原创 汽车电子与软件 2021-07-28 21:05




01


诊断服务设计概述


诊断被设计在开发、制造 及维修过程中用来实现特定的功能,如用于软件更新、售后检修、产线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、0x35、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相关信息服务包含较多服务(此处不详细介绍),可以读取冻结帧等详细信息用于更好的故障判断;



02


诊断数据服务DID设计


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

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


2.1 据服务(0x22)

通过数据读取服务,可以读取模拟输入和输出信号,数字输入和输出信号,内部数据以及系统状态信息等,具体设计由OEM设计或者认可。

基本格式:

Request: 22 + XXXX(DID)

Positive Response: 62 + XXXX(DID) + 响应参数

Negative Response: 7F+ XXXX(DID) + NRC(否定响应码)


2.1.1 ECU软硬件信息

软件版本信息、硬件版本信息、生产日期、诊断版本信息、标定参数版本信息等内容。

此处可通过DID读取相关信息,用于ECU产线EOL校验信息(这些信息通过产线注入的方式写入特定地址)、OEM的总装产线对于控制器的软件及硬件版本信息验证等。


2.1.2 输出及反馈状态

采集数据输入:

1)、开关输入信号: 模拟开关的状态信息、数字开关状态信息,(推荐使用处理后的信息,不推荐使用AD返回值,换算对于售后并不方便)

2)、输入电流电压信息: 传感器采集信息(位置传感器、温度传感器等),电流采集值,电压采集值等(推荐使用处理后的信息,不推荐使用AD返回值,换算对于售后并不方便)

功能输出状态:

1)、电机输出状态: 电机输出的方向,至于输出的电压信息(有软件内部给定)

2)、灯负载输出状态: 灯负载的输出状态(可以为功能状态——ON/OFF,或者是输出占空比——针对存在调光要求负载)


2.1.3 私有ECU节点请求信息

ECU可能存在一些私有节点(主要指LIN节点,只与一个ECU存在通信),因此对于它的输出状态及请求状态均通过信号形式传输。为了确定该节点的输出信息,需要将该节点的请求信息通过DID直观反映,以便检修。

1) 、输出状态信息: 如开关的背光、状态指示灯等的输出状态

2)、输入的请求信息:开关的请求信息等


2.1.4 错误log信息

车窗丢位置原因、车窗防夹事件、车窗的学习状态等


2.1.5 ECU的运行基础信息

车速,时间,供电电压等等


2.2 写数据服务(0x2E)

数据写入服务可以将数据写入RAM、EEPROM、FLASH内存之中,可以达到临时或者永久改写。

基本格式:

Request: 2E + XXXX(DID) + 写入参数

Positive Response: 6E + XXXX(DID) + 响应参数

Negative Response: 7F+ XXXX(DID) + NRC(否定响应码


2.2.1 功能的使能变量

推荐将功能的使能或禁用变量存储在EEPROM中(并且关联安全访问),这样可以通过0x2E服务进行功能的调整。

1)、用于功能的使能及调整,永久禁用或使能功能(如一键升窗);

2)、参数的永久调整,永久改变某功能的配置(如转向灯的闪烁次数);


2.2.2 参数的临时修改

改写软件某些临时变量的改写,如标定的参数(初始化从FLASH拷贝值RAM),改写RAM中的值。

1)、临时改变参数的值,可用于标定某些参数


2.2.3 将软件等信息写入FLASH

用于改写一些常数,OEM需要通过自己产线将数据进行写入,避免信息泄露。如安全访问虽然存在算法,但转换算法供应商也知道,如果设置一组常数进行转换,这组常数改变,那么安全访问将对供应上不再透明。同理下载的加密算法都一样。

1)、用于软件更新过程中的改写,只有在软件更新时才会存在FLASH DRIVER;

2)、用于算法一些常数改写,将整车控制器的加密信息对外保密(供应商);


2.3 输入输出控制(0x2F)

IO控制服务强制在扩展会话下进行,并且推荐关联安全访问,避免非法使用;

在退出扩展会话时需要退出IO控制服务,避免造成正常功能异常。

IO控制服务包括四个子服务,常用的两个子服务为:0x03(短期调整)、0x00(返回控制权)

基本格式:

Request: 2F + XXXX(DID) + 子服务(03/00) + 控制参数

Positive Response: 6F + XXXX(DID) + 子服务(03/00) + 当前控制状态

Negative Response: 7F+ XXXX(DID) + NRC(否定响应码)


2.3.1 高边输出(HSD)控制

高边输出可以通过调整占空比直接控制负载的输出,存在两种控制方式:

1)、直接使用百分比(换算成占空比)进行输出;

2)、两个状态来进行控制输出,输出值由软件内部给定;


2.3.2 桥驱电机输出控制

桥驱多用于电机输出控制,对于电机输出堵转须小心处理,可以通过控制正反传进行输出。最重要的是避免持续输出造成电机损坏,采用两种实现方式:

1)、标定堵转阈值,通过电流回采确定堵转,堵转后停止输出;

2)、给出运行时间限制,超时停止输出;


2.3.3 负载位置控制

某些输出存在位置反馈(如车窗输出),定义运动至指定位置的DID控制:

1)、直接给定位置,电机运动速度由软件内部给定;

2)、给定输出的占空比以及运动的目标位置;

“需要判断参数范围,配置工具不能配置两个参数的范围”



03


诊断例程设计(0x31)


客户机使用例程服务执行定义的步骤序列并获得任何相关结果。此服务具有很大的灵活性,但典型的用法可能包括以下功能:擦除内存、重置或学习自适应数据、运行自检、覆盖正常的服务器控制策略以及控制服务器值随时间变化,包括预定义的序列(例如,关闭敞篷车顶)。

例程控制存在三个子服务:开始例程(0x01)、结束例程(0x2)、请求例程结果(0x03)

例程控制可分为三种类型:短例程、长例程、持续例程

短例程:可只支持**开始例程(0x01)**子服务,直接返回例程结果

长例程:需支持开始例程(0x01)、结束例程(0x2)、**请求例程结果(0x03)**三个子服务,可定义例程时间并在定时结束时自动结束,例程运行中可以通过结束例程(0x02)子服务打断例程运行,例程运行中可以通过请求例程结果(0x03)子服务请求例程状态及结果

持续型例程:需支持开始例程(0x01)、结束例程(0x2)、**请求例程结果(0x03)**三个子服务,例程运行须通过结束例程(0x02)子服务打断并结束例程运行,例程运行中可以通过请求例程结果(0x03)子服务请求例程状态及结果


3.1 前编程条件检查

在进行更新软件之前需要检查车辆的运行状态,如车速、车辆使用模式等信息,检查结果通过例程返回。

此例程可以设置为短例程类型,该例程只需要支持0x01子服务即可,历程结果通过响应结果进行返回。


3.2 供应商EOL产线

在ECU控制器的生产产线上需要除了必要的校验生产信息之外,还需要对ECU控制器的内部电路进行检测,保证控制器的正常电路功能。

产品的EOL检测为了简化实现逻辑可以复用产品的IO控制进行,DTC可以将某些DTC设置进行禁用以避免在此模式下不必要DTC设置干扰此过程。

对于现在车企为节省成本而推出平台架构,因此对于控制器存在很多配置信息,产线的通用性需要最大的功能配置避免检测到所有的功能。无法避免的可通过定义EOL模式来进行区分,以达到最大的功能检测。


3.2.1 EOL模式定义

EOL模式设定是为了区分正常产品模式,在产品模式下无法覆盖所有的产品配置,定义EOL模式为了避免此类情况(即在EOL模式下可以直接IO控制)。除此之外,内部电路的一些上拉源的控制在产品模式下不应该在产品模式下支持此类功能,通过EOL模式来规避此类问题。

例程定义:

例程类型:推荐使用持续型例程类型,此例程需要手动开始与结束例程

例程检验:开始例程时需要进行数据校验,避免OEM误触发此类模式

推荐将此类型的模式标志存储EEPROM,退出EOL模式下时进行擦除(用于休眠唤醒检测时使用)


3.2.2 快速休眠

EOL还需要进行休眠电流的检测、唤醒电流检测等内容。对于正常休眠流程,耗时过长、检测项太多不利于产线使用。

例程定义:

例程类型:推荐使用短例程类型,此例程只需开始例程子服务(0x01)

例程检验:开始例程时需要进行数据校验,避免OEM误触发此类模式


3.2.3 重置EEPROM(保证初始状态)

此例程用于重置EEPROM数据,同时可用于产品软件(用于OEM的售后维修或者是产线),将EEPROM中数值重置为默认值

例程定义:

例程类型:推荐使用长例程类型,此例程手动开始例程子服务(0x01)、并请求例程结果(0x03)


3.3 OEM的EOL产线

对于OEM产线车型配置信息极为重要,在进行产线检测及产线的学习时需要首先下发产品的配置信息,后续步骤均需要通过产品的配置信息完成检测或者学习。


3.3.1 负载自检(EOL)

该例程主要用于负载的电路连接检测,当检测出电路错误时需要记DTC或者通过DID进行反馈,OEM的产线通过此类信息对相应的负载安装信息进行重新检测以避免产品出现电路质量问题。

例程定义:

例程类型:推荐使用长例程类型,此例程手动开始例程子服务(0x01)、并请求例程结果(0x03)

请求例程状态,当例程状态为完成后,再次检测自建的结果


3.3.2 学习自适应数据

该例程用于产线的数据自动学习,由软件内部定义好学习序列,在满足学习的条件时,运行例程进行数据学习。

例程定义:

例程类型:推荐使用长例程类型,此例程手动开始例程子服务(0x01)、并请求例程结果(0x03)

可以将学习结果定义在请求例程结果子服务(0x03)中,在请求例程达到例程完成后,校验例程学习的结果


3.3.3 立即保存状态数据

该例程用于数据的立刻存储,避免由于操作失误直接断电等异常情况造成学习数据丢失,因此对于产线使用此例程可避免此类情况。

例程定义:

例程类型:推荐使用长例程类型,此例程手动开始例程子服务(0x01)、并请求例程结果(0x03)

可以将学习结果定义在请求例程结果子服务(0x03)中,在请求例程达到例程完成后,校验例程执行的结果



04


诊断故障码DTC设计


诊断故障码涉及车辆的错误状态记录,是售后车辆进行检修的重要部分,好的DTC设计能够为售后节省大量的时间。


4.1 电路故障

常见的电路故障如开路、断电源、短地等,

高边输出:高边输出检测断电源与开路在输出时不能区分,因此可以使用短地、短电源或开路两种故障类型。对于需要检测出短电源的负载,可以设计在无输出时对高边进行电压回采,并定义短电源故障

桥驱输出:对于桥驱输出,低边短电源与高边短地都造成过流(在短电源时,总会存在一个边回过流),建议设计两种类型:过流、开路


4.2 逻辑或信号错误故障

预期信号与实际信号的不一致,举一个简单例子:锁命令输出了但无法检测到锁的状态反馈信号,进行了两次Retry均无法达到预期状态。

此类错误详细设计可以与OEM进行协商或者根据标准进行设置。


4.3 通信故障

通信故障包括电路的错误及通信错误,

CAN通信:CAN的物理电路错误、CAN节点离线(Bus Off)

LIN通信:LIN电路错误(短电源、短地)、发送错误、接收错误、报文丢失等


4.4 配置参数错误

OEM趋势时多个车型及硬件都是用一版软件,配置信息对于车辆的正常运行极为重要(配置参数可以通过写死在ECU或者由某个节点下发(OEM产线下发))

没有配置错误:从接收过配置文件,在接收到配置文件后立即清除DTC(Age)

配置错误/无效:接收到的配置信息超出范围或者为无效值,在接收到配置文件后立即清除DTC(Age)

配置与硬件不匹配:配置信息与硬件的版本/变种不匹配,在接收到配置文件后立即清除DTC(Age)


4.5 内存参数错误

写内存校验错误、读内存校验错误等


4.6 开关粘滞错误

对于触发式的开关,常开或者常闭开关,长时间处于错误状态需要设计粘滞故障。



05


快照DID


这类信息,会在DTC设置过程中一同存储在EEPROM(冻结帧),此类信息可用于故障原因的分析(设计的主要目的)。


5.1 ECU供电电压

在电压过高或过低,会造成DTC的误报等。


5.2 ECU运行时间

记录DTC产生的时间节点等


5.3 与DTC功能相关的信息

这部分内容需要仔细设计,考虑所有可能导致错误的原因



06


组合DID


通过单DID可以读出所需要信息(预先设计),


6.1 产品信息

产品硬件版本号、软件版本号等内容DID组合成组合DID,通过此组合DID可以读出所需信息


6.2 任意组合

任意想一起读出来的信息,具体依据产品及个人设计



07


安全访问服务


安全访问过程如下图,算法设计应该由OEM提供,对于安全访问应设计常数方便OEM进行修改,避免产品安全对于供应商透明。


阅读原文,关注作者CSDN

————————————————

版权声明:本文为CSDN博主「摸鱼的攻城狮」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:

汽车电子与软件 主要介绍汽车电子软件设计相关内容,每天分享一篇技术文章!
评论
  • DeepSeek自成立之初就散发着大胆创新的气息。明明核心开发团队只有一百多人,却能以惊人的效率实现许多大厂望尘莫及的技术成果,原因不仅在于资金或硬件,而是在于扁平架构携手塑造的蜂窝创新生态。创办人梁文锋多次强调,与其与大厂竞争一时的人才风潮,不如全力培养自家的优质员工,形成不可替代的内部生态。正因这样,他对DeepSeek内部人才体系有着一套别具一格的见解。他十分重视中式教育价值,因而DeepSeek团队几乎清一色都是中国式学霸。许多人来自北大清华,或者在各种数据比赛中多次获奖,可谓百里挑一。
    优思学院 2025-03-13 12:15 47浏览
  •        随着人工智能算力集群的爆发式增长,以及5.5G/6G通信技术的演进,网络数据传输速率的需求正以每年30%的速度递增。万兆以太网(10G Base-T)作为支撑下一代数据中心、高端交换机的核心组件,其性能直接决定了网络设备的稳定性与效率。然而,万兆网络变压器的技术门槛极高:回波损耗需低于-20dB(比千兆产品严格30%),耐压值需突破1500V(传统产品仅为1000V),且需在高频信号下抑制电磁干扰。全球仅有6家企业具备规模化量产能力,而美信科
    中科领创 2025-03-13 11:24 40浏览
  • 文/杜杰编辑/cc孙聪颖‍主打影像功能的小米15 Ultra手机,成为2025开年的第一款旗舰机型。从发布节奏上来看,小米历代Ultra机型,几乎都选择在开年发布,远远早于其他厂商秋季主力机型的发布时间。这毫无疑问会掀起“Ultra旗舰大战”,今年影像手机将再次被卷上新高度。无意臆断小米是否有意“领跑”一场“军备竞赛”,但各种复杂的情绪难以掩盖。岁岁年年机不同,但将2-3年内记忆中那些关于旗舰机的发布会拼凑起来,会发现,包括小米在内,旗舰机的革新点,除了摄影参数的不同,似乎没什么明显变化。贵为旗
    华尔街科技眼 2025-03-13 12:30 60浏览
  • 一、行业背景与需求痛点智能电子指纹锁作为智能家居的核心入口,近年来市场规模持续增长,用户对产品的功能性、安全性和设计紧凑性提出更高要求:极致空间利用率:锁体内部PCB空间有限,需高度集成化设计。语音交互需求:操作引导(如指纹识别状态、低电量提醒)、安全告警(防撬、试错报警)等语音反馈。智能化扩展能力:集成传感器以增强安全性(如温度监测、防撬检测)和用户体验。成本与可靠性平衡:在复杂环境下确保低功耗、高稳定性,同时控制硬件成本。WTV380-P(QFN32)语音芯片凭借4mm×4mm超小封装、多传
    广州唯创电子 2025-03-13 09:24 41浏览
  • 在追求更快、更稳的无线通信路上,传统射频架构深陷带宽-功耗-成本的“不可能三角”:带宽每翻倍,系统复杂度与功耗增幅远超线性增长。传统方案通过“分立式功放+多级变频链路+JESD204B 接口”的组合试图平衡性能与成本,却难以满足实时性严苛的超大规模 MIMO 通信等场景需求。在此背景下,AXW49 射频开发板以“直采+异构”重构射频范式:基于 AMD Zynq UltraScale+™ RFSoC Gen3XCZU49DR 芯片的 16 通道 14 位 2.5GSPS ADC 与 16
    ALINX 2025-03-13 09:27 32浏览
  • 北京时间3月11日,国内领先的二手消费电子产品交易和服务平台万物新生(爱回收)集团(纽交所股票代码:RERE)发布2024财年第四季度和全年业绩报告。财报显示,2024年第四季度万物新生集团总收入48.5亿元,超出业绩指引,同比增长25.2%。单季non-GAAP经营利润1.3亿元(non-GAAP口径,即经调整口径,均不含员工股权激励费用、无形资产摊销及因收购产生的递延成本,下同),并汇报创历史新高的GAAP净利润7742万元,同比增长近27倍。总览全年,万物新生总收入同比增长25.9%达到1
    华尔街科技眼 2025-03-13 12:23 47浏览
  • 在海洋监测领域,基于无人艇能够实现高效、实时、自动化的海洋数据采集,从而为海洋环境保护、资源开发等提供有力支持。其中,无人艇的控制算法训练往往需要大量高质量的数据支持。然而,海洋数据采集也面临数据噪声和误差、数据融合与协同和复杂海洋环境适应等诸多挑战,制约着无人艇技术的发展。针对这些挑战,我们探索并推出一套基于多传感器融合的海洋数据采集系统,能够高效地采集和处理海洋环境中的多维度数据,为无人艇的自主航行和控制算法训练提供高质量的数据支持。一、方案架构无人艇要在复杂海上环境中实现自主导航,尤其是完
    康谋 2025-03-13 09:53 44浏览
  • 曾经听过一个“隐形经理”的故事:有家公司,新人进来后,会惊讶地发现老板几乎从不在办公室。可大家依旧各司其职,还能在关键时刻自发协作,把项目完成得滴水不漏。新员工起初以为老板是“放羊式”管理,结果去茶水间和老员工聊过才发现,这位看似“隐形”的管理者其实“无处不在”,他提前铺好了企业文化、制度和激励机制,让一切运行自如。我的观点很简单:管理者的最高境界就是——“无为而治”。也就是说,你的存在感不需要每天都凸显,但你的思路、愿景、机制早已渗透到组织血液里。为什么呢?因为真正高明的管理,不在于事必躬亲,
    优思学院 2025-03-12 18:24 81浏览
  • 一、行业背景与用户需求随着健康消费升级,智能眼部按摩仪逐渐成为缓解眼疲劳、改善睡眠的热门产品。用户对这类设备的需求不再局限于基础按摩功能,而是追求更智能化、人性化的体验,例如:语音交互:实时反馈按摩模式、操作提示、安全提醒。环境感知:通过传感器检测佩戴状态、温度、压力等,提升安全性与舒适度。低功耗长续航:适应便携场景,延长设备使用时间。高性价比方案:在控制成本的同时实现功能多样化。针对这些需求,WTV380-8S语音芯片凭借其高性能、多传感器扩展能力及超高性价比,成为眼部按摩仪智能化升级的理想选
    广州唯创电子 2025-03-13 09:26 33浏览
  • 前言在快速迭代的科技浪潮中,汽车电子技术的飞速发展不仅重塑了行业的面貌,也对测试工具提出了更高的挑战与要求。作为汽车电子测试领域的先锋,TPT软件始终致力于为用户提供高效、精准、可靠的测试解决方案。新思科技出品的TPT软件迎来了又一次重大更新,最新版本TPT 2024.12将进一步满足汽车行业日益增长的测试需求,推动汽车电子技术的持续革新。基于当前汽车客户的实际需求与痛点,结合最新的技术趋势,对TPT软件进行了全面的优化与升级。从模型故障注入测试到服务器函数替代C代码函数,从更准确的需求链接到P
    北汇信息 2025-03-13 14:43 40浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦