职贝云数AI新零售门户
标题:
汽车控制器(ECU)中DTC的形态位
[打印本页]
作者:
花落花
时间:
2023-2-25 09:13
标题:
汽车控制器(ECU)中DTC的形态位
从汽车ECU中读取储存的DTC(缺点码)时,除了缺点码本身,还可以读出很多其他的信息,包括优先级、发生次数计数器、发生时的里程和工夫,以及本文中所讲的形态位(DTC status )。
这个形态位包含1个byte,这外面的8个bit都有各自的含义,但是这8个 bit不一定都要运用,各个主机厂可以根据本人的需求运用其中的几个,当然也可以全部运用。下图是UDS对DTC status这8个bit的定义。
(, 下载次数: 4)
上传
点击文件名下载附件
DTC status中8个形态bit的定义
bit 0 : testFailed
通常来说,ECU外部以循环的方式不断地针对预先定义好的错误途径停止测试,假如在最近的一次测试中,在某个错误途径中发现了缺点,则相应DTC的这一个形态位就要被置1,表征出错。此时DTC的testFailed位被置1,但是它不一定被ECU存储到non-volatile memory中,只要当pendingDTC或confirmedDTC被置1时DTC才会被存储。而pendingDTC或confirmedDTC被置1的条件应该是检测到错误出现的次数或工夫满足某个预定义的门限。当错误消逝或者诊断仪执行了肃清DTC指令时,testFailed会再次被置为0。
bit 1 :testFailedThisOperationCycle
这个bit用于标识某个DTC在当前的operation cycle中能否出现过testFailed置1的状况,即能否出现过错误。operation cycle的起始点是ECU经过网络管理唤醒到ECU经过网络管理进入睡眠,对于没有网络管理的ECU,这个起始点就是KL15通断。经过bit 0我们无法判别某个DTC能否出现过,比如,当前testFailed = 0, 阐明当前这个DTC没有出错,假如testFailedThisOperationCycle = 1的话,就阐明这个DTC在当前这个operation cycle中出过错,但是当前错误又消逝了。
bit 2 : pendingDTC
根据规范的解释,pendingDTC = 1表示某个DTC在当前或者上一个operation cycle中能否出现过。pendingDTC位其实是位于testFailed和confirmedDTC之间的一个形态,有的DTC被确认的断定条件比较严苛,需求在多个operation cycle中出现才可以被断定为confirmed的形态,此时就需求借助于pendingDTC位了。pendingDTC = 1的时分,DTC就要被存储上去了,假如接上去的两个operation cycle中这个DTC都还存在,那么confirmedDTC就要置1了。假如当前operation cycle中,缺点发生,pendingDTC = 1,但是在下一个operation cycle中,缺点没有了,pendingDTC 照旧为 1,再下一个operation cycle中,缺点照旧不存在,那么pendingDTC 就可以置0了。
bit 3 : confirmedDTC
当confirmedDTC = 1时,则阐明某个DTC曾经被存储到ECU的non-volatile memory中,阐明这个DTC曾经满足了被confirmed的条件。但是请留意,confirmedDTC = 1时,并不意味着当前这个DTC照旧出错,假如confirmedDTC = 1,但testFailed = 0,则阐明这个DTC表示的缺点目前曾经消逝了。将confirmedDTC 重新置0的方法只要删除DTC,UDS用0x14服务,OBD用0x04服务。
bit 4 : testNotCompletedSinceLastClear
这个bit用于标识,自从上次调用了清算DTC的服务(UDS用0x14服务,OBD用0x04服务)之后,能否成功地执行了对某个DTC的测试(不管测试结果是什么,只关怀能否测了)。由于很多DTC的测试也是需求满足某些边界条件的,并不是ECU上电就一定会对DTC停止检测。
testNotCompletedSinceLastClear = 1 : 自从清算DTC之后还没有完成过针对该DTC的测试。
testNotCompletedSinceLastClear = 0 : 自从清算DTC之后曾经完成过针对该DTC的测试。
bit 5 : testFailedSinceLastClear
这个位与bit 1 :testFailedThisOperationCycle有些相似,后者标识某个DTC在当前的operation cycle中能否出现过testFailed置1的状况,而testFailedSinceLastClear标识的是在上次执行过清算DTC之后某个DTC能否出过错。
testFailedSinceLastClear = 0 , 自从清算DTC之后该DTC没有出过错。
testFailedSinceLastClear = 1, 自从清算DTC之后该DTC出过至少一次错。
bit 6 : testNotCompletedThisOperationCycle
这个位与bit 4 : testNotCompletedSinceLastClear相似,后者标识自从上次调用了清算DTC的服务之后,能否成功地执行了对某个DTC的测试。而testNotCompletedThisOperationCycle则标识在当前operation cycle中能否成功地执行了对某个DTC的测试。
testNotCompletedThisOperationCycle = 1 : 在当前operation cycle中还没在完成过针对该DTC的测试。
testNotCompletedThisOperationCycle = 0 : 在当前operation cycle中曾经完成过针对该DTC的测试。
bit 7 : warningIndicatorRequested
某些比较严重的DTC会与用户可见的正告指示相关联,比如仪表上的报警灯,或者是文字,或者是声响。这个warningIndicatorRequested就用于此类DTC。
warningIndicatorRequested = 1 : ECU央求激活正告指示。
warningIndicatorRequested = 0: ECU不央求激活正告指示。
留意,假如这个DTC不支持正告指示,则这个位永远置0。
总结来说,这8个形态位只用文字描画的话会略显笼统,假如在工作中看到这些形态位的变化,那么就很好了解它了。
作者:
rnlT
时间:
2023-2-25 09:14
写得很好👍
作者:
jAwq
时间:
2023-2-25 09:14
所以我去试车那时有时会在路上熄火再重新着车,有些dtc是second trip的,修dtc都是泪
作者:
hG31PMftg
时间:
2023-2-25 09:15
除了文中列举的条件,对于和排放相关的DTC,40个暖气循环没有出错也可以清除bit3的Conformed异常
作者:
ECCf2f
时间:
2023-2-25 09:15
👍
作者:
hG31PMftg
时间:
2023-2-25 09:16
楼主,您好!请问当诊断仪发送一帧数据给ECU时,ECU还没来得及回复(没有超时),诊断仪又发送了一帧数据,此时ECU还需要回复上一帧数据吗?
作者:
K4xCnwUt
时间:
2023-2-25 09:17
期待您的更新
作者:
l9Lox
时间:
2023-2-25 09:17
给老哥大大个赞,最近刚转行搞汽车电子这一块,好多东西不清楚,看了作者的文章每天都可以学习一点点,非常感谢,最后提一点小小的建议,不知道可不可以给文章的英文后边带上全称或者简单的中文解释。
作者:
YYGG9b6gv
时间:
2023-2-25 09:18
我已经尽量把英文全称写上了,因为工作中这些词汇基本都不用中文,我也不知道很多东西怎么准确用中文描述,每个公司都有自己的翻译习惯,然而我们不翻译,。。。你觉得哪里不清楚留言就行,有空我就解答了。
作者:
gf5WZV
时间:
2023-2-25 09:19
这个问题,我没有仔细注意过ISO标准是如何要求的。根据我们公司的定义,此时ECU终止对上一帧数据的处理,转而处理新收到的这一帧诊断数据。我不知道这个定义是否和ISO一致,也不知道ISO是否有关于这一点的定义。我觉得这就是一个人为规定的事情,不要纠结。从逻辑上来说,我认为这个做法比较合理,因为在诊断通信中,主动权是诊断仪的,ECU应该响应诊断仪最新的请求。
作者:
l9Lox
时间:
2023-2-25 09:19
有个问题想问一下,我目前接触的到UDS的ID都是标准帧,可以做成扩展帧ID吗?
作者:
D8LiO0t
时间:
2023-2-25 09:20
当然可以,根据各个公司自己的需求,如果你们公司把标准的CAN ID全都分配完了,就可以用扩展ID。这个东西对诊断来说没有区别,都一样。
作者:
BXVHG
时间:
2023-2-25 09:20
我正在写14229 好麻烦哟。。。正看DTC这部分。。。
作者:
VYil2A6wf4N
时间:
2023-2-25 09:21
欢迎关注,共同进步
作者:
lSV4itR
时间:
2023-2-25 09:21
请教,warningIndicatorRequested这个位的作用是什么?什么情况下会置位?置不置位跟一些显示或声音有什么关系?谢谢!
作者:
qJcMs5
时间:
2023-2-25 09:22
当这个dtc需要与某种提示相关联的时候,可以是声音,也可以是某个警示灯
作者:
B5tmA
时间:
2023-2-25 09:22
这个所谓的关联指的是什么?有具体的例子吗?
作者:
BXVHG
时间:
2023-2-25 09:23
这个文字已经很清楚了,赞!
作者:
l9Lox
时间:
2023-2-25 09:23
楼主你好,最近在学习做uds诊断这一块儿,对于这个DTC的状态有点搞不懂,想请教一下。这个operation cycle如果起始点为KL15的通断,那是否理解为钥匙on通断一次为一次operation cycle?
作者:
u6ji33
时间:
2023-2-25 09:24
还有就是这个bit2的pendingDTC的置位条件,如果当前发生故障,那么置1,而且bit0testFailed也是置1,那么如何才能存在bit0置1然而bit2没有置0的情况,由于对pendingDTC的理解不够到位,想不出来,希望楼主能指教一下。谢谢!
作者:
rnlT
时间:
2023-2-25 09:25
kl15通,打火成功,kl15断,这算是一个cycle。
kl15通,未打火,kl15断,则不算是一个cycle。
欢迎光临 职贝云数AI新零售门户 (https://www.taojin168.com/cloud/)
Powered by Discuz! X3.5