SAE J2534介绍

摘要:
概要J2534是与RF相关的ECU闪存编程的概念,与ECU使用的通信协议无关。J2534APIDLL由硬件工具开发人员提供,用于处理与计算机的通信。SAE于2002年制定了J2534标准,以促进EPA和ARB的工作。硬件要求J2534硬件充当车辆ECU和个人计算机之间的网关。J2534设备与车辆之间的电缆最大长度为5m。其目的是每个J2534工具都应该能够与J2534标准支持的所有协议通信。

概要

J2534是一种针对与射频相关的ECU进行闪存编程的概念,而不用考虑ECU使用的通信协议。其目的是所有类型的ECU都应当只需一个工具(硬件设备),通常被称为通过式设备。J2534设备和ECU之间的连接是SAE J1962连接器。J2534硬件设备需要连接到一台装有来自车辆厂商的应用程序编程接口的标准电脑(图1)。电脑和J2534硬件设备之间的连接方式取决于接口工具制造商,但是USB可能是最常见的形式。J2534 API DLL由硬件工具开发人员提供,用来处理与电脑的通信。J2534文档对J2534工具的硬件和软件的需求描述有限。支持的通信协议包括:ISO9141、ISO14230 (KWP2000)、J1850、CAN (ISO11898)、ISO15765和SAE J2610。2005年开始支持J1939。

fig1-j2534-setup1

图1. J2534设置

背景

车辆变得越来越复杂,几乎每个功能都由电子控制单元(ECU)进行控制。ECU经常连接到通信总线,以便能够相互之间共享数据。最常见的协议是CAN,但是还存在其它协议。有多少家车辆厂商,几乎就有多少种不同的通信协议。每家车辆厂商都提供工具用于对其产品进行分析和二次编程,这种工具经常价格昂贵。这使得汽车、客车或卡车修理店很难分析和修理所有类型的车辆。

美国环境保护署(EPA)和加州空气资源管委会(ARB)一直在尝试让车辆厂商为配件市场支持共同的射频相关服务。美国汽车工程师协会(SAE)在2002年建立了J2534标准,以推动EPA和ARB的工作。

硬件需求

J2534硬件在车辆ECU和个人电脑之间充当网关的角色。这种通过式设备把电脑发送的报文转换为车辆ECU中所用协议的报文。J2534支持下列协议:

设备厂商可以自由选择电脑和J2534硬件之间的连接,例如RS-232、USB或者可能是无线接口。车辆厂商的应用编程不依赖于硬件连接。所以,可以使用任何设备对任何厂商的任何车辆进行编程。

J2534硬件和车辆之间的连接应当是SAE J1962连接器(图2),也称为OBDII连接器。J2534设备和车辆之间线缆的最大长度为5米。如果车辆厂商不使用J1962连接器,那么必须提供用于连接的必需信息。

fig2-obd21

图2. J1962公接头(左图)和J1962母接头(右图)

J2534硬件接口应当能够为J1962连接器提供5到20伏特之间的电压。电源应使用一款引脚为6、9、11、12、13或14的连接器,且应当可以在软件中进行选择。最大供电电流是200毫安,校正时间应在1毫秒内。

J2534硬件接口应当有足够内存来缓存4Kb的发送报文和4Kb的接收报文。处理器速度必须够快,以便处理所有报文,从而不会丢失任何报文。

软件需求

使用J2534为射频相关的ECU进行编程可以在装有Win32操作系统(Windows 95或更新的版本)的电脑上完成(笔记本电脑尤佳)。

每家车辆厂商都将有其自己的API软件用来对其车辆进行分析和编程。如果他们的车辆只使用一种协议(例如ISO 9141),那么应用程序无需支持任何其它协议。这个应用程序必须采用J2534 API中的函数,这一点非常重要。

这个应用程序将拥有应用程序所支持ECU的全部信息。这个应用程序还包含一个用户界面,在该界面中,可以根据ECU和要执行的操作进行选择。

想要对来自不同厂商车辆进行分析和重新编程的汽车维修店必须拥有每家厂商的API。这个API可以从因特网下载,或者从CD和DVD进行安装。这个API的提供方式取决于厂商,但是他们对购买API的客户(维修店)进行收费。每家厂商之间的价格相差很大,一年的订阅费用在75美元和2500美元之间。

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

目的是每种J2534工具都应能够与J2534标准支持的所有协议进行通信。车辆厂商提供的应用程序使用J2534标准中描述的命令来连接到硬件工具(任何品牌)。连接和初始化为硬件工具提供所用协议的信息。此后,硬件工具负责采用期望的协议来管理与车辆的连接。电脑应用程序将以早期确定的协议格式将报文发送到硬件工具,硬件工具缓存报文并按照接收到的次序发送报文。

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

J2534 API包含许多用于通信的函数,硬件工具和车辆厂商应用程序都必须支持这些函数。对于电脑应用程序开发人员来讲,这意味着所有命令和报文都必须使用API中定义的函数构成。请参见下方表1。

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

表1. J2534函数说明

发送的第一个命令是PassThruConnect,它在电脑应用程序和J2534硬件工具之间建立连接。这个命令包含的信息有:使用的协议、标准或扩展CAN标识符或者是否使用ISO15765。命令还包含一个通道标识,将用于所有后续的通信。如果连接成功,将返回STATUS_NOERROR值,这个值指示函数已经成功执行。在发送任何报文之前,都必须进行初始化。函数PassThruIoctl用于初始化,需要设置各种参数,例如节点地址、波特率或协议特定的参数。

从电脑应用程序发送的所有报文都具有相同的结构,其中包含:协议类型(例如J1850、CAN和J9141)、接收报文状态、发送报文标志、接收到的报文的时间戳(微秒)、数据大小(以字节为单位)、额外数据索引(接收到的报文中额外数据的起始位置,即IFR、CRC和检验和)和最后但不是最小的数据字节数组(接收到的报文)。如果在连接时选择了这项特性,可以使用ISO15765命令发送超过8字节的CAN报文。

一些ECU发送报文间隔时间很短的大量报文。可以设置过滤函数PassThruStartMsgFilter来阻止或传递报文。这将减少硬件工具和电脑之间需要发送的报文数。报文首先与一个掩码进行逻辑与操作,这样可以只比较标识符的一些重要位。然后,经过逻辑与操作的报文将与一个特定的模式进行比较。

J2534 API DLL

J2534 API DLL为API函数和硬件工具之间提供链接。因此电脑应用程序不必关注电脑和硬件工具之间使用哪种通信协议。每家硬件工具厂商都有名称唯一的DLL文件。这样,电脑上的软件程序可以区分连接到哪个硬件工具。重要的是,硬件工具的固件开发人员需要遵循API并使用与J2534描述中完全同名的函数。否则,在进行链接时,电脑应用程序将不可能在DLL中找到函数。

原文链接:https://www.kvaser.cn/about-can/can-standards/j2534/

免责声明:文章转载自《SAE J2534介绍》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇SqlServer数据库优化方案[转]使用Linux 文本工具简化数据的提取下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

在双系统( Win7 + Ubuntu )环境下正常删除Ubuntu

前言   首先切记一点:如果你和我一样使用ubuntu的目的是学习操作系统和Unix网络编程等,那么学习环境搭建好了以后切不要随意更新软件。否则系统崩溃,你又得重新配置各种环境,有多麻烦你懂的。   万一你像我之前一样手贱点了软件升级导致系统崩溃了,请不要花太多时间在网上搜索怎样挽回,直接重装吧。网上,尤其是百度知道上的解决方案大都不靠谱。   下面回到本...

mysql_Navicat数据库破解

Navicat Premium 12.1.16.0安装与激活 Navicat Premium 12是一套数据库开发管理工具,支持连接 MySQL、Oracle等多种数据库,可以快速轻松地创建、管理和维护数据库。 Navicat Premium 12简体中文官方下载: https://dev.mysql.com/downloads/mysql/ na...

常用 adb 命令总结

1. 显示当前运行的全部模拟器: adb devices2. 安装应用程序: adb install -r 应用程序.apk3. 获取模拟器中的文件: adb pull <remote> <local>4. 向模拟器中写文件: adb push <local> <remote>5. 进入模拟器的shell模式...

Mysql 简单问题汇总(持续更新)

主从架构相关问题 问题现象:从机连接主机时报错 [ERROR] Slave I/O: error connecting to master 'repl@192.168.0.50:3306' - retry-time: 60 retries: 1, Error_code: 2003 可能的原因有: a、网络不通(是否打开防火墙) b、复制用...

android黑科技系列——手机端破解神器MT的内购VIP功能破解教程

一、前言 在破解app的时候,我们现在几乎都是在PC端进行操作,但是之前bin神的MT管理器,可以在手机端直接破解,不过也有很大的局限性,但是对于一些简单的app破解没问题的。这个工具其实原理也很简单,就是解析apk中的dex,arsc等文件,然后支持修改其中的类方法信息和资源信息,然后在二次打包签名即可。其实把这部分功能移到了移动端做了,不过值得佩服的是...

内网穿透java版

内网穿透 1 借鉴 https://blog.csdn.net/today_08/article/details/99965189 https://github.com/Pluto-Whong/natcross.git 不再维护了,建议使用natcross2https://github.com/Pluto-Whong/natcross-boot.githt...