DTC故障码诊断定义

更新时间:2023-11-27 16:56:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

Cracking the Code Behind DTCs

破解DTC背后的代码

By Bernie Thompson | March 2010

伯尼 · 汤普森 | 三月 2010年 谷朝峰 译

If you want to understand how computer-controlled vehicles operate, a good place to start is to look at how they make decisions. It all comes down to 1s and 0s, on or off, high or low, yes or no. Simple, right?

如果您想了解车载计算机如何控制车辆操作,这儿将是一个开始的好地方-----了解一下他们是如何作出的决定。所有的一切都来自于 1 和 0,打开或关闭,高或低,是或否。 很简单,对吗?

The triode, invented by Lee De Forest in the early part of the last century, was the first electrical amplifier. Built on vacuum tube technology, the triode provided the ability to turn an electrical circuit on or off using current flow. No longer was a mechanical switch needed to control an electrical circuit; voltage could now be used to do it. This new control strategy would signal the start of modern electronics.

三极管,由Lee De Forest在上一世纪初期的早些时候发明,是第一个电气放大器。基于真空管技术,三极管提供了使用当前电流打开或关闭一个电路能力。从而不再需要一个机械开关来控制电路 ,现在电压可以用来完成这件事了,这种新的控制策略标志了现代电子发展的开始。

The use of a triode to switch voltage from a low potential to a high potential was instrumental in the construction of early electric telephones, radios and calculators. In the early 1950s, a new technology based on semiconductor construction would replace triodes with

transistors, in cases where low-power amplification was needed. The transistor, when fully saturated, could turn a circuit on or off, and then could be used to control an electrical circuit or store information in an electrical circuit.

对于三极管,将电压从低电位转换到高电位的应用曾经是早期电话、收音机和计算器发展的重要工具平台。在上个世纪五十年代初期,基于半导体结构的新技术,在需要低功率放大的情况下可用晶体管替换三极管实现这一功能。当该晶体管时完全饱和,能把一个电路打开或关闭,然后可用于控制一个电路的工作,或者将信息存储在一个电路。

By allowing the on/off states of these transistors to represent a low (0) usually near zero voltage and a high (1) at source voltage, information can be transmitted or stored in a circuit. This is accomplished using Boolean logic, the logic of the digital numbers 0 and 1. The electrical circuit can be set up so that one or more logic inputs can be processed to a single logic output. This electronic circuit is called a logic gate (Fig. 1, page 32). There are several logic gate configurations, among them the AND gate, NAND gate, OR gate, NOR gate, EXCLUSIVE OR gate and EXCLUSIVE NOR gate.

通过允许这些代表近零电压的低位(0)与电压源高电压的高位 (1) 的不同组合,或者说晶体管的开/关状态,可以在一个电路中传输或存储信息。这种使用的 0 和 1 的数字逻辑是采用布尔逻辑完成。 设置这种电路,可以进行一个或多个逻辑输入而处理单个逻辑输出。 (图 1 )这种电路称之为逻辑门。有几种逻辑门配置,其中包括:与门,非门,或门,或非门、与非门、 异或门和 同或门。

In order to process data, many logic circuits are used in conjunction with one another. These 0s and 1s can be used to set up a logical decision

circuit that can convey information in a digital format. All modern microprocessors use digital logic circuits to process data. Each 0 or 1 is called a bit, the maximum amount of information that can be used or stored by a device that has only two possible states. These two states may be defined as off or on, 0 or 1, no or yes, false or true. In computers, these two states are binary digits designated as 0 and 1. When four bits are combined to convey information, it’s called a nibble; if eight bits are used it’s called a byte.

为了处理数据,很多逻辑电路相互结合使用。 这些 0 和 1 组合可用于设置一个逻辑决定电路,可以传达信息的数字格式。所有现代微处理器可用于数字逻辑电路处理数据。 每个 0 或 1 叫一个位,最大信息量的调用和存储只运用了两种可能的状态。 这两个状态可能被定义为关或开,否或是,假或真。 在计算机中,这两个状态被指定为 0 和 1 的二进制数字。 使用四位组合以传达信息,称之为一个半字节 ;如果八位时,就叫一个字节。

It may be hard to understand how just two states of operation could be used for the transmission and/or storage of information. However, you’re already aware of such systems. One early use of digital binary bit encoding to send information in an electrical format was the telegraph, which used Morse code. Morse code uses a binary bit of dot (0) or dash (1) to convey data. With just two states of operation, Morse code allows very complex information to be transmitted or stored.

也许很难理解如何只使用两个状态的操作便可用于信息的传送及存储。但是,你的确你已经意识到这种系统。一个早期使用的数字二进制位编码的例子是以电子格式发送信息是电报,它用的是莫尔斯电码。莫尔斯代码使用点 (0) 或破折号 (1) 的二进制的位传达数据。依靠操作的两个状态,电码允许传输或存储的非常复杂的信息。

Computers use a binary code, or base-2 system, to convey information. The base-2 system makes for very long encoded messages or bit width, so programmers came up with a way to shorten this encoding based on the

hexadecimal system (Fig. 2). Instead of a count system based on 10—such as the decimal system—the hexadecimal system uses a count system of 16 to convey information. The hexadecimal system uses numbers 0 through 9 and letters A through F to encode information. You may have seen an example of this hexadecimal encoding when reading Mode 6 data from an engine control module.

计算机使用二进制的代码或基 2码系统来传达信息。 基2系统有时会使用很长的编码消息或位宽度,于是程序员想出了一个缩短此编码的方法,这种方法称之为基于十六进制系统 (图 2)。 它代替基于 10 计数系统的----如十进位制-----十六进制的系统使用计数系统的 16 来传达信息。 十六进制的系统使用数字 0-9 和字母 A 到 F 来对信息进行编码。您可以看到十六进制编码,从一个引擎控制模块读取模式 6 数据时的一个示例。

Whichever method of encoding or language is chosen to operate the computer, it’s based on a set of instructions that are executed by the central processing unit (CPU). The CPU contains thousands of transistors and logic circuits packaged in a very small design known as an integrated circuit (IC). This package of transistors allows for logical decision circuits to operate using the encoded messages known as a program. These logical decision circuits, when operating with the encoded messages, will have a predictable outcome.

无论是采用哪种方式的编码或语言方法用来选择操作计算机,它都是基于一组由中央处理单元 (CPU) 执行的指令。 CPU 包含成千上万个晶体管和逻辑电路,它们被封装在一个很小的设计空间模式,称为集成电路(IC)。 包装的晶体管允许使用编码的信息程序进行操作的称为决策逻辑电路。这些决策逻辑电路在操作使用该编码的消息时将会产生一个可预测的输出结果。

Since the outcome can be predicted, a logic path can be written to obtain a desired outcome. The CPU’s task is to execute a sequence of stored instructions, as indicated by the program. The program will run the

primary instruction set layer by layer, with many subroutines, loops, conditions and exceptions running layer by layer at the same time. The CPU gets the instructions, decodes them and carries them out, all based on the physical layer of the IC and the process scheduling from the program control flow. The computer’s IC and program instruction set are based on which system the controller is responsible for, such as the engine management system, wheel antilock control system, air conditioning control system, etc.

由于预测结果可以写入一个逻辑路径以获得期望的结果。 CPU 的任务是执行一系列存储的程序指令。该程序将一层层地运行主指令,同时还要运行多个子例程、 循环、 条件和其它转移指令,从一个图层到另一个图层,CPU 获得信息,对他们进行解码并执行,所有这一切都基于IC 的物理层及程序控制流的进程调度。计算机的集成电路和程序指令集基于对具体的系统控制器负责,例如发动机管理系统、 轮 antilock 控制系统、空调控制系统等。

Regardless of the type of control system used, the program will work with the CPU to help it carry out its tasks. The first task is to initiate the base program that will control and operate the device. In one of the subroutines, the CPU will do a self-test on its internal circuits. This self-test is based on what the programmer decided was necessary to verify the operation of the device. This is important because the programmer designed the circuit self-test based on an analysis of a good circuit and what might fail within that circuit.

无论何种控制系统类型的使用,程序将通过帮助CPU去执行其任务。第一项任务是启动控制和操作设备的基本程序。在其中一个子例程中,CPU 将对其内部电路执行自测。 自检根据程序员的决定----对有必要需要验证设备的运作。而且这也是非常重要的,因为程序员设计电路自检基于该电路中的分析----什么是好的电路和什么可能会导致失败。

To accomplish this, a set of instructions are written that allow set points or thresholds to be above or below a set value for a set time period. If

these predetermined set points are broken, the code in the program will show this is equal to “true,” and the instructions for this outcome will be to activate the warning lamp and set a diagnostic trouble code (DTC). If this test is to check the CPU, the DTC may read “internal failure,” and the diagnostic trouble tree would instruct you to replace the control unit. What needs to be understood here is that the instructions did not account for someone putting in an extra fuse or relay in a spare location, or possibly a short circuit. This additional circuit now allows power to be applied to the CPU that can change the internal voltage on the circuit the program is looking at, thus setting a false DTC.

要实现此目的,程度员使检测点高于或低于设定的值,并在设置的时间段内写入一组指令。如果这些预定义的检测点出现故障,程序中的代码将显示\,这就会输出指令激活警告灯,并设置一个诊断故障代码 (DTC)。如果测试用来检查 CPU, DTC 可能读取\内部的失败\,并且诊断故障树会指导您更换控制单元。这里需要理解的是,系统指令并不对以下类似问题负责:如有人将放在一个额外的保险丝或继电器放在备用的位置或者可能引起短路电流。这个额外的电路现在允许可以更改CPU内部电压电路,程序因此设置一个虚假的 DTC 。

Once the subroutine self-test for the internal circuit has run and passed, the program initiates the next subroutine to check the basic circuits of the system it controls. Each one of these subroutines is labeled with the circuit to be tested. One example of this is a P0122, a program label with an instruction set that will check the powertrain throttle position sensor (TPS) for a voltage that’s less than .2 volt for one second. If the voltage is below .2 volt for one second, the program equals “true” and the DTC label P0122 will be stored.

一旦该子例程内部电路自测已运行并通过,程序将启动下一个子例程检查它控制的系统基本电路下。每个子例程对所要测试电路要进行信息标记。这儿给出的一个例子是 P0122 ,P0122具有一个指令集,将检查动力传动系统节气门位置传感器 (TPS) 在一秒钟的小于0.2 伏的

电压作为程序标签。 如果电压低于一秒钟的0.2 伏,程序设置等于\,如此 DTC 标签P0122 将被存储。

The program instruction set is written to check each circuit the programmer deems important. The circuit tests have set points against time that are assigned to each of these individual circuits. These set points are programmed at values that are above and below the operational voltage range of the circuit. The purpose of these initial tests is to find a circuit that’s in a gross failure at system start. If a circuit breaks the set point over the prescribed time period, the program will be equal to “true” and will carry out the correct program instructions. These instructions may be to set this DTC in a pending column or to set a mature DTC and turn on the vehicle’s warning lamp.

基于检测电路需要,每个程序员对认为重要的电路编写程序指令集。电路测试根据时间设计检测点而且要分配给每个单独的电路。这些检测点被编程为电路操作电压上方和下方的范围值。这些初始测试的目的是找到在系统启动过程中产生故障的某种电路。如果一个电路在预定的时间段中与检测设置点值不符合,程序将设置等于\,并会进行适当的程序指令。 这些指令可能在挂起列中设置DTC 或设置一个成熟的 DTC 同进激活打开该车辆故障报警灯。

What’s important to understand here is that a circuit that’s within its operational range may not set a DTC. One example of this is if a TPS has unwanted resistance in the ground circuit that causes the sensed voltage to rise above the clear flood mode set point (Fig. 3). This is a mode to shut the injector pulse down during cranking so the spark plugs can dry. However, if the engine is not flooded, this unwanted condition will cause a no-start problem. The program instructions would be: If the crank signal equals “true,” and if TPS voltage greater than 4.0 volts equals “true,” disable fuel injector pulse. The CPU acts on the data that’s present.

It has no way to check driver intent; it checks only the actual TPS voltage, and that the TPS voltage is in range.

这儿需要了解的是,有的电路在其运营范围内可能不能设置 DTC。这样一个示例是:当TPS接地电阻产生了不想要的电阻是而导致传感的电压上升超过了溢出模式设置点(图 3) 。 系统控制在发动机起动时关闭喷油器的触发脉冲以使火花塞变干。但是,如果发动机不处在淹缸状态,这种有害的情况将导致无启动问题。程序指令控控制如下:如果曲轴位置信号为起动状态等于\和TPS电压大于 4.0 伏特等于\,系统程序将关闭燃料喷油器脉冲。 CPU 将直接管理当前的数据。在这儿,系统无法检查驱动程序意图,它只检查实际的TPS电压和 TPS 电压是否在范围内。

When writing the program, the programmer did not make the assumption that the TPS signal would fail. The program was written on the assumption that the system is working correctly. There will be no DTC set for a problem such as this because the CPU carried out its instruction set correctly. Once the subroutine self-test has run to completion, the tests may be suspended until the next key cycle, or they may be run in a continuous loop.

在编写程序时程序员并不能假设TPS信号将是无效的。程序是在假设系统正常工作的前提下编写的。因此 CPU 进行正确设置其指令时,对于类似的故障(问题)DTC将不设置,一旦该子例程自测已完整地运行,测试可能会暂停,直至在下一个的关键周期或连续循环,他们可能会运行。

The base program will continue running to control the device, taking inputs through logic circuits that have program instructions. These instructions are based on algorithms so the proper outputs can be obtained.

During the control of the device, DTC subroutines will run to check the operation of the circuits, sensors and actuators.

基本的程序将继续运行用来控制输出设备,以通过具有程序指令的逻辑电路接收输入信号。这些指令基于算法,因此可获得正确的输出。在设备的控制过程中,DTC 子例程将运行检查电路、 传感器和执行器的操作。

Enabling Criteria Arsenal 启用标准

To obtain the highest probability of a successful DTC subroutine test, enabling criteria will be used, which is a way of controlling the outcome of the test by controlling the variables. Just as in a laboratory, to obtain consistent results, the test must hold the variables to a minimum and use a set procedure.

若要获得成功的 DTC 子例程测试的可能性最高,启用标准将使用,这是一种通过控制变量来控制测试结果的方式。正如在实验室里,为获得一致的结果,测试必须控制变量到最低范围同时使用一套设定的程序。

The enabling criteria accomplish this by allowing the DTC subroutine to run only under certain conditions. Once all the conditions have been met, the DTC subroutine is allowed to run. One example of this would be a small leak detected an evap system when running a test for DTC P0442. The enabling criteria might read as: Fuel tank level greater than 15% and less than 85% equals “true,” ambient temperature greater than 30°F and less than 95°F equals “true,” BARO greater than 70kPa equals “true.”

启用条件通过允许 DTC 子例程运行仅在某些特定的条件下有效。一旦符合所有条件DTC 子例程将被允许运行。 这一示例会体现在监测 evap 系统时。如果一个小泄漏检测到。 DTC P0442 将运行,启用条件可能理解为:燃料箱液面大于 15%,低于 85%等于\状态,这大于 30 ° F 和小于 95 ° F 的环境温度等于\,\状态,压力值大于 70kPa 等于\。

Since the test is dealing with pressure in the fuel containment system, all criteria that can affect the pressure changes within the system must be controlled. If the fuel tank is full, the nonliquid area within the tank is very small and may show a pressure change that’s not an actual leak and thus set a false DTC. If the fuel tank is empty, the nonliquid area is very large and may not show the pressure change of an actual leak. In this case, a DTC will not set that should be set.

既然该测试是关于燃料控制系统中处理压力,可能会影响系统内的压力变化的所有条件必须得到都控制。当燃油箱满时,油箱内非液态区域变得很小,可能所感应的压力变化不是一个实际的泄漏,因此会设置一个虚假的 DTC。当油箱为空时,油箱内的非液态区域变得非常大,也许所显示压力变化并不是一个实际的泄漏。在这种情况下一个 DTC 将设置。

If the ambient temperature is lower than 30°F, the gaseous phase above the fuel could be contracting and show a pressure change that’s not an actual leak, thus setting a false DTC. If the ambient temperature is higher than 95°F, the gaseous phase above the fuel could be expanding and may cover up an actual leak. In this case a DTC will not set that should be set.

本文来源:https://www.bwwdw.com/article/bvet.html

Top