车载网络测试 - UDS诊断篇 - 故障码($14/$19)

3e5aa1423ce699f518fe7850a643a298.png

        在前面的文章已经对故障码和各个诊断服务进行了介绍,今天就是对诊断服务和故障码的进一步完善,对14服务和19服务展开跟大家介绍一下。了解了故障码的作用,那我们如何对故障码进行处理呢?以及如何获取故障码?故障码如何测试?带着这些疑问我们往下看。

介绍风格还是跟上一篇的一样方便已经阅读过之前文章的朋友一起学习,依然是从功能和命令格式两方面对$14/$19进行介绍。

14服务:

功能:对故障码进行擦除;这个功能主要用在车辆维修之后,已存在的故障修复后,但是故障码依然存在,这时候14服务就可以使用了,进行立即清除命令格式(请求&应答):

诊断请求:

7da51ce89cad3736a5c98c8c0549d46b.png

#1:14服务

#2 - 4:groupOfDTC,一般使用默认值FF FF FF;代表清除所有故障码;此参数包含一个3字节的值,指示DTC组(例如动力传动系、车身、底盘)或要清除的特定DTC。参考Table D.1

#5:MemorySelection 当检索DTC时,该参数应用于寻址相应的用户定义DTC存储器,一般各个主机厂都不使用。

8aac66923e112714dbd47ea138501e7e.png

肯定应答:

9d361e73983ecf391910f35a51c85c1e.png

#1:对34服务肯定应答74

否定应答:

96a232815abc3018ad53b54c08698a9c.png

19服务:

功能:读取故障码;如果更详细点的话,那就是获取故障码相关的所有信息,比如发生故障的时间、车速、转速、电压等等,又或者获取车辆支持故障码的数量等信息,都在19服务中;如果后续有时间可以详细地聊,今天只是简单介绍下19服务。

命令格式(请求&应答):

诊断请求:

c2e2f4c5c44dfb56600f6f24f35cdc30.png

fb932aaad7b805487f713c3a15a23015.png

注:由于19服务服务支持的子服务实在太多,这里我仅列出常用的四个服务,基本能够满足大部分主机厂规范。

肯定应答:

1902/0A肯定应答

45ddcfc29599b223e92002ff7f5c11d7.png

1903肯定应答

50697c891a7fc97593648f7ba6a1bacc.png

1904肯定应答

5fdd60baf768f87e95f67b5377f91da5.png

肯定应答:

8d6091bbb9aceca84c5abdb98c11cf26.png

上面描述的主要是19服务下的子服务02/03/04/0A几个子服务,这也是大部分主机厂都要支持的子服务:

1、02子服务主要用于故障码的上报、恢复、老化等功能测试通过19 02 + maskstudio,被测对象就会将存储在存储器中的故障码状态位与maskstudio进行与运算,任何一个bit位与为1,就会上报该故障码。

2、0A子服务比较简单,直接使用19 0A命令读取,被测件就会直接返回它所支持的所有故障码+maskstudio给tester,无其他特殊功能

3、03子服务主要是获取某个故障码的存储记录数量,其实就是在我们通过19 0A或者19 0A识别到被测件支持的故障码及状态位后,然后通过19 03 + DTC获取该DTC触发过多少次以及记录的位置,为后续04子服务做准备

4、04子服务就是读取某个故障码的记录信息,包括但不限于发生故障时的车速、转速、电压等信息。

 

下图是故障码状态位(MASKstudio),通常我们使用的位是bit0、bit3这两个状态位,即当前故障码是当前故障还是历史故障码,一般来说,是当前故障码,一定是历史故障,但是历史故障不一定是当前故障;至于其他的故障码状态位看各个供应商或主机厂是否需要以及应用场景,一般来说对于测试人员来说只需要加上即可,不对其进行特殊关注。

4d215d8c8cbcc7f5d1ee377446dc0a88.png

 

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
回答: CAPL(Communication Access Programming Language)是一种用于编写通信测试脚本的语言,常用于CANoe中进行自动化测试。CAPL脚本的代结构可以根据需求进行灵活编写,但通常包括以下几个部分:引用\[2\] 1. 前言:在脚本的开头部分,可以进行一些初始化设置和声明变量等操作。 2. 主要逻辑:在主要逻辑部分,可以编写测试用例的执行流程和相应的功能实现。可以使用条件语句、循环语句、函数调用等来实现不同的测试场景。 3. 函数定义:CAPL脚本中可以定义自己的函数,用于封装一些常用的操作或功能。这些函数可以在主要逻辑中被调用,提高代的复用性和可性。 4. 结束语:在脚本的结尾部分,可以进行一些清理操作或输出测试结果等。 对于UDS(Unified Diagnostic Services)的自动化测试,可以根据具体需求编写相应的CAPL脚本。在脚本中,可以使用UDS相关的函数和命令来实现对诊断功能的测试,包括发送诊断请求、接收诊断响应、解析响应数据等。同时,根据引用\[1\]中提到的半自动化脚本的需求,可以在脚本中添加手动确认功能的步骤,以确保功能配置的正确性。 总之,CAPL脚本可以根据具体的测试需求进行编写,通过调用相关函数和命令来实现对UDS功能的自动化测试。 #### 引用[.reference_title] - *1* *2* [UDS-基于CAPL的半自动化脚本编写流程](https://blog.csdn.net/wjz110201/article/details/124704882)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [搭配Panel界面及使用Capl识别配置文件TXT编写基于14229的UDS自动化测试流程)](https://blog.csdn.net/qq_36407982/article/details/109131802)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

车载网络测试

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值