SAE J2534简介(通过)

介绍

J2534是一个概念,它使排放相关的ECU能够进行闪存编程,而与ECU使用的通信协议无关。目的是所有类型的ECU只需要一个工具(硬件设备),通常称为“通过”设备。 J2534设备与ECU之间的连接是SAE J1962连接器。 J2534硬件设备将连接到标准PC,该PC拥有车辆制造商的应用程序接口(API)(图1)。 PC和J2534硬件设备之间的连接取决于工具的制造商,但是USB可能是最常见的。硬件工具开发人员提供了一个J2534 API DLL,用于处理与PC的通信。 J2534文档保留了对J2534工具的硬件和软件的要求。支持的通信协议是; ISO9141,ISO14230(KWP2000),J1850,CAN(ISO11898),ISO15765和SAE J2610。在2005年,J1939也包括在内。

图1. J2534设置。

背景

车辆变得越来越复杂,几乎所有功能都由电子控制单元(ECU)控制。 ECU通常连接到通信总线上,以便能够彼此共享数据。最常见的协议是CAN,但还有其他协议。有许多汽车制造商,几乎有许多不同的通信协议。每个汽车制造商都有一个用于对其产品进行分析和重新编程的工具,该工具通常很昂贵。这使得汽车,公共汽车或卡车制造厂很难分析和维修所有类型的车辆。

美国环境保护署(EPA)和加利福尼亚州空气资源委员会(ARB)一直在努力让汽车制造商为售后市场提供与排放相关的通用服务。汽车工程师协会(SAE)于2002年创建了J2534标准,以促进EPA和ARB的工作。

硬件要求

J2534硬件的工作原理类似于车辆ECU与PC之间的网关。该直通设备将PC发送的消息转换为车辆ECU中正在使用的协议的消息。 J2534支持以下协议:

设备制造商可以自由选择PC和J2534硬件之间的连接,即RS-232,USB或无线接口。车辆制造商的编程应用程序不依赖于硬件连接。因此,与制造商无关,任何设备均可用于对任何车辆进行编程。

J2534硬件与车辆之间的连接应为SAE J1962连接器,也称为OBDII连接器。 J2534设备与车辆之间的电缆的最大长度为5米。如果车辆制造商不使用J1962连接器,则必须提供必要的连接信息。

J2534硬件接口应能够为J1962连接器提供5到20伏之间的电源电压。电源应使用连接器的引脚6、9、11、12、13或14之一,并且该选择应在软件中可选。最大源电流为200mA,建立时间应在1ms之内。

J2534硬件接口应具有足够的内存来缓冲4Kb的发送消息和4Kb的接收消息。而且,处理器自然必须足够快地处理所有消息,以使消息不会丢失。

软件需求

使用J2534对与排放有关的ECU的编程是通过PC(最好是笔记本电脑)和Win32操作系统(Windows 95或更高版本)完成的。

每个车辆制造商将拥有自己的API软件,用于对其车辆进行分析和编程。如果他们的车辆仅使用ISO 9141,则该应用程序无需支持其他协议。此应用程序必须符合J2534 API中的功能,这一点很重要。

该应用程序将具有该应用程序支持的ECU的完整信息。该应用程序还包括一个用户界面,可在其中根据ECU和​​执行的操作进行选择。

想要对来自不同制造商的车辆进行分析和重新编程的汽车维修车间,每个工厂都必须具有API。可以从Internet下载该API,也可以从CD或DVD安装该API。如何提供此API取决于制造商,但是他们确实向客户(维修车间)订购该API。制造商之间的价格差异很大,一年的订阅费用在75美元到2500美元之间。

每个J2534工具(硬件设备)制造商都必须有一个DLL文件,其中包含与PC进行通信的功能和例程。然后将DLL文件加载到车辆制造商的应用程序中。 J2534工具中的功能链接到应用程序中的相应功能。 DLL文件还包括J2534工具与PC之间的连接例程(RS-232,USB等)。

目的是使每个J2534工具都能够与J2534标准支持的所有协议进行通信。车辆制造商提供的应用程序使用J2534标准中描述的命令连接到(任何品牌的)硬件工具。连接和初始化为硬件工具提供了所使用协议的信息。之后,由硬件工具来管理具有所需协议的与车辆的连接。 PC应用程序将以较早确定的协议格式将消息发送到硬件工具,该工具将缓冲消息并按接收顺序发送消息。

J2534应用程序编程接口(API)

J2534 API由许多通讯功能组成,这些功能必须同时由硬件工具和车辆制造商应用程序支持。对于PC应用程序开发人员,这意味着所有命令和消息都必须使用API​​中定义的功能进行。请参阅下面的表1。

功能 描述
直通连接 与协议通道建立连接。
直通断开 终止与协议通道的连接。
PassThruReadMsgs 从协议通道读取消息。
PassThruWriteMsgs 将消息写入协议通道。
PassThruStartPeriodicMsg 在协议通道上以指定的时间间隔开始发送消息。
PassThruStopPeriodicMsg 停止定期发送消息。
PassThruStartMsgFilter 开始过滤协议通道上的传入消息。
PassThruStopMsgFilter 停止过滤协议通道上的传入消息。
PassThruSetProgrammingVoltage 在特定引脚上设置编程电压。
PassThruReadVersion 读取DLL和API的版本信息。
PassThruGetLastError 获取上一个错误的文本描述。
直通八路 通用I / O控制功能,用于读取和写入协议配置参数(例如,初始化,波特率,编程电压等)。

J2534功能描述。

发送的第一个命令是PassThruConnect,它建立PC应用程序与J2534硬件工具之间的连接。该命令包括有关使用哪种协议,标准或扩展CAN标识符或是否使用ISO15765的信息。该命令还包括一个通道标识,该标识将用于所有后续通信。如果连接成功,则返回STATUS_NOERROR值,表明该功能已成功执行。在发送任何消息之前,必须先进行初始化,PassThruIoctl,其中设置了诸如节点地址,波特率或协议特定参数之类的参数。

从PC应用程序发送的所有消息都遵循相同的结构,该结构包括:协议类型(即J1850,CAN,J9141),接收消息状态,发送消息标志,接收消息时间戳(微秒),以字节为单位的数据大小,额外的数据索引(接收到的消息中多余数据的起始位置,例如IFR,CRC,校验和,最后但并非最不重要的是数据字节数组(接收到的消息)。如果在连接时选择了此功能,则可以使用ISO15765命令发送超过8个字节的CAN消息。

一些ECU发送大量消息,每条消息之间的时间间隔很短。筛选器功能PassThruStartMsgFilter可以设置为阻止或传递消息。这将减少需要在硬件工具和PC之间发送的消息。该消息首先使用掩码进行“与”操作,该掩码使您有机会仅比较标识符的一些重要位。此后,将“与”消息与特定模式进行比较。

J2534 API DLL

J2534 API DLL提供了API函数和硬件工具之间的链接。由于PC应用程序不必关心PC与硬件工具之间使用的通信协议。每个硬件工具制造商都有一个具有唯一名称的DLL文件。这样,PC上的软件应用程序就有可能区分要连接的硬件工具。重要的是,硬件工具中的固件开发人员必须遵循API并准确命名功能,如J2534说明中所述。否则,执行链接时,PC应用程序将无法在DLL中找到功能。

资源: //www.kvaser.com/about-can/can-standards/j2534/

5 thoughts on “SAE J2534简介(通过)”

    1. 嗨,哈利,我想只要足够的知识,时间和金钱,一切皆有可能!但是,这将涉及对设备进行重新编程,这对于某些设备是不可能的,而对于其他设备则是商业秘密。我会告诉我是否有任何信息。
      汤姆

  1. I’一直想知道是什么使obd2电缆j2534兼容(以及为什么大多数电缆是制造商特定的)。我花了几个月的时间才找到这个网站,这似乎是互联网上唯一可以解释它的地方!一世’我曾认为它必须与固件有关,但由于我确实不知道’完全低估了固件的工作方式’确定这是否重要& wasn’甚至肯定电缆是否带有固件,或者是否所有固件都在PC和软件中处理过。我希望我’d是错的bc我有一条福特电缆,希望它能闪烁我的ECM(更换)’有我的阿库拉。猜猜我’因为我现在知道电缆将不会交换EEPROM芯片’t do the job.

发表评论

您的电子邮件地址不会被公开。 必需的地方已做标记 *

该网站使用Akismet减少垃圾邮件。 了解如何处理您的评论数据 .