UDS诊断-19服务&14服务

1. DTC的一些基础知识

1.1常用几种功能的数据格式

子服务02:根据statusMask读取DTC
req:19 02 01 (02:reportDTCByStatusMask 01:StatusMask,当前DTC)
res:59 02 FF (02:reportDTCByStatusMask FF:DTCStatusAvailabilityMask)
req:19 02 AF (AF: 当前DTC+历史DTC)
res:59 02 FF D0 14 99 28 (D01499:DTC number 28:status,历史DTC)
子服务04:读取DTC的快照信息
req: 19 04 D0 14 99 FF
res: 59 04 D0 14 99 28 01 0B D000 20 F5 D001 18 D003…(01:DTCSnapshotRecordNumber 0B:DID的数量;D000:后面具体的DID)
子服务06:读取DTC的扩展信息
req: 19 06 D0 14 99 FF
res: 59 06 D0 14 99 28 01 06 03 06 04 00 10 80 (01:OCC1;03:OCC3;04:OCC4;10:FDC10)
清DTC:
req: 14 FF FF FF (All Groups)
res: 54

1.2 名词解释

Operation Cycle 操作循环:操作循环定义的是故障监控开始和结束的一个周期。不同的控制器的操作循环定义略有差异,以主机厂定义为准。常见的定义有:1. ECU上电下电为一个循环;2. 电源管理模式切换为一个循环(如OFF和ACC状态跳变)3:发动机点火和熄火,也称一个点火周期或一个驾驶循环。4.高压激活和不激活,即电车的Ready 和 非Ready状态。
Pending状态位的解释:pending 状态位指示的是当前操作循环或者上一次操作循环检测到有TestFailed结果。只有上一个循环没有检测到故障即TestFailed 为0,pending 的状态才会被置0.如果说一个DTC是当前DTC,bit0=1 bit2=1;如果这个DTC是上一个操作循环产生的,当前循环没有,则bit0=0 bit2=1;如果这个故障是上上个操作循环产生的,近两个操作循环都没有,则bit0=0 bit2=0, 即此时的状态位应为0x28.
Confirmation Threshold故障确认的阈值: 一般非排放类DTC,这个值为1,即bit0的testFaild触发了一次即为confirmed DTC,也就是bit3会同步置位。排放类的DTC,会有一个trip counter 去记录testFaild 的次数,只有达到一定次数才会记为confirmed DTC(bit3置位)。
Aging Threshold 老化阈值: 这个实际上是给bit3 confirmed DTC 从1重置为0设置的一个条件。即定义了在多少个驾驶循环内没发生过故障,bit3 从1置为0,即认为故障消除。
Test Run Critieria(TRC):定义的是可以开始DTC监控的条件。例如定义名确的电源模式,车辆模式,电压状态,没有bus off 。即明确在什么条件下才能开始Test Sample, 方式条件不满足导致的一些误报。
Fault Detection Criteria故障判断标准:名确定义一个test Sample的结果是fail还是pass的标准。

2.先说说DTC状态位

关于DTC中的7个状态位,重点是要把ISO-14229-1 规范中的下面几张图理解透彻。
在这里插入图片描述

现按示例做如下假设(下面的标准都是可以自己定义的),ECU上电后,该DTC满足了TRC(Test Run Criteria),按如图示例每50ms做一次故障检测,如果本次检查通过则Fault Detection Counter(后简称FDC) -15,如果本次检测到了故障则Fualt Detection Counter在非负数的基础上 +25,如果当前Counter值为负数,要先清0后再累加。
如图所示,前3次检测结果都为pass,FDC在刚上电的0初始值的基础上递减,此时FDC值为-45。第4次检测失败,此时FDC的值跳变为+25.再接下来的检测中都没有检测到故障,FDC会在+25的基础上以-15的步长递减,只到减到-128;同样的,如果后续每次都会检测到故障,FDC的值会逐渐累加,直到加到最大值127.此时算是完成了第一轮的Fault Detection。
也就是说在Fault Detection Counter 第一次达到-128 或 +127时才算是完成了第一轮的Fault Detection,也就是在此时Bit 0 才会记录一次结果。与此同时,由于刚上电时bit4 和 bit6 是等于1的,完成第一轮检测后,bit4和bit6也会变为0.举例说明
1.上一个循环无故障情况下,理论上DTC刚上电时的状态位:0 1 0 1 0 0 0 0 = 0x50
2.第一轮检测后无故障:状态位信息为0,此时应无DTC
3.上一个循环无故障情况下,第一轮检测有故障:0 0 1 0 1 1 1 1 = 0x2F
7.当前循环(第一)内FDC再次变为-128:0 0 1 0 1 1 1 0 = 0x2E
9.下一个循环(第二)完成第一轮检测结果为pass后: 0 0 1 0 1 1 0 0 = 0x2C
10. 假设再下一个循环(第三)完成第一轮检测结果为pass后:0 0 1 0 1 0 0 0 = 0x28
在这里插入图片描述
再看几个规范上的示例加深一下理解。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3. 再谈谈DTC老化计数

DTCAgingCounter 简单来讲就是截止你查询这个信息的时间点之前,有几个点火周期是没有发生故障的。为了便于分析问题,点火周期的记录策略稍有不同。在这里插入图片描述
举例如下:
每一个DTC都支持06子服务查询扩展信息。扩展信息中包含两种重要信息,操作循环计数器Operation cycle counters(OCC) 和 故障检测计数器(FDC)。每一个OCC或者FDC都会有一个记录号Record Number,具体的理解如下:
OCC1:主要记录最近一次发生testFailed 到目前为止有几个操作循环是没有检测到故障的。(包含那些未完成故障测试的操作循环)
OCC2:主要记录最近一次发生testFailed 到目前为止有几个操作循环是没有检测到故障的。
OCC3:主要记录最早一次记录DTC后经过的操作循环数。(包含那些未完成故障测试额操作循环)
OCC4:主要记录最早一次记录DTC后到目前为止有几个操作循环检测到了故障。
图片来源于CSDN作者汽车小T

关于“19服务”或“19端口服务”,以下是相关信息的整合与解答: --- ### 关于19服务 在计算机网络领域,“19服务”通常指的是简单文件传输协议(TFTP,Trivial File Transfer Protocol)。 TFTP是一种轻量级的文件传输协议,主要用于在网络中传输小型文件。它运行在UDP协议之上,默认使用的是69端口进行数据交换,但在某些特殊场景下也可能涉及其他端口号,例如19号端口用于特定用途。 #### TFTP的特点: - 支持基本的文件上传和下载功能。 - 缺乏安全性机制,不支持加密或身份验证。 - 常见应用场景包括路由器固件更新、引导程序加载等。 --- ### 关于19端口服务 除了TFTP之外,19端口还可能与其他一些专用服务相关联。这些服务通常是私有的或者由特定厂商定义,因此其具体作用需要结合实际环境来判断。 #### 可能的应用场景: 1. **监控系统**:部分工业控制设备或视频监控系统会使用19端口作为内部通信的一部分。 2. **调试接口**:开发人员可能会利用非标准端口(如19)来进行远程调试或测试目的。 3. **自定义协议**:企业内部部署的一些专有软件可能绑定此端口以实现定制化功能。 需要注意的是,在公共互联网上直接开放低编号端口(尤其是像19这样较少使用的端口),可能存在安全隐患,建议仅限局域网内访问,并采取适当的安全措施加以保护。 --- ### 安全注意事项 无论是否启用上述提到的服务,都应当密切关注网络安全防护工作。对于不必要的端口保持关闭状态;定期检查服务器防火墙规则以及入侵检测系统的日志记录情况,确保没有未经授权的操作发生。 --- ### 技术扩展 如果希望进一步确认某个主机上的19端口正在运行什么类型的服务,可以借助命令行工具完成探测任务。例如Linux下的`nmap`扫描工具可以帮助快速获取目标机器开放的所有TCP/UDP端口信息及其对应的服务名称。 示例代码如下: ```bash nmap -p 19 <target_ip> ``` 此外还可以尝试连接该端口查看响应报文内容从而推测出确切的功能定位。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值