OBD诊断程序开发_第1页
OBD诊断程序开发_第2页
OBD诊断程序开发_第3页
OBD诊断程序开发_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

如何开发标准的汽车OBD2诊断程序及相关应用层协议下载开发标准OBD2诊断程序要准备的资料及硬件1、因TL718已经为你建立了物理层、数据链层和部分应用层的协议,所以只要OBD2标准应用层协议文本,ISO15031-5或SAEJ1979(这两个协议是相同的内容)。2、TL718诊断接口1套或用TL718芯片自建电路。3、家用PC机电脑一台。4、安装软件:Accessport调试软件及VC++(或VB、BC++等)你喜欢的开发软件。5、符号OBD2标准的汽车发动机电脑一块(或汽车一台)TL718基本信息TL718芯片的技术数据手册

TL718通过一个UART串口与单片机、PDA或PCRS232通讯,在有的新的PC机上已没有装备RS232串口,可以通过虚拟串口实现与TL718通讯,例USBTORS232、以太网TORS232、或蓝牙TORS232等等。

-------

RS232

------

OBD2电缆

----------

|

PC

|<----------->|TL718|<------------>|汽车诊断口|

-------

------

----------

不管使用怎样的物理连接,你可以使用超级终端或串口调试工具,直接通过键盘发送和接收字符。在使用串口调试软件前,首先必须设置正确的COM端口号和正确的波特率。一般为9600波特率(PIN6=0V),或38400波特率(PIN6=VCC,PPOC设置默认值)。串口设置为:8个数据位,校验位:0,停止位1位。如果设置错误,将不能和TL718正常通讯。所有从TL718的响应以一个回车符(0X0D)及一个可选的换行符(0X0A)结束。正确连接,打开电源后。TL718将驱动测试LED灯,(闪亮3次)后,发送:

TL718starting

如果正确收到以上信息代表串口及连接设置正确。第二行“〉”符号代表TL718为空闲状态,可以立即从RS232接收数据。如果没有收到“〉”符号就向TL718发送数据,可能引起数据丢失。而发生不正确的响应。PC从串口向TL718发送的指令格式:TL718有2种格式的命令

1、OBD连接命令,与车辆发生通讯。

2、内部命令,全部以AT开头,不与辆发生通讯。发送必须以0x0d(回车符)结束的ASCII码字符,回车符后面的字符被TL718丢弃。TL718内部命令以“AT”开头,后面跟可见字符。不可见字附及空格被忽视。OBD命令只能包含16进制的ASCII码(0-9,a-f,A-F),空格被忽略。如果发送的指令,不能被TL718有效解释,TL718将返回一个“?”表明,发送指令无效。当TL718处理OBD命令时,TL718连续监视RTS引脚及RS232输入,其中任何一个情况发生,TL718将中断当前的OBD命令,使它快速返回提示符“〉”,等待接收新的命令。大小写字符都能被TL718接收,空格被忽略。比喻命令“ATZ”、“atz”、“atz”都是一样的。比喻我们向TL718发送一个复位指令只要向RS232串口发送ASCII字符“ATZ”+0x0d(回车符);TL718Starting>ATZELM327v1.2>注:ATZ指令返回ELM327V1.2是为了使用现成的国外OBD观软件,所以用了这个返回信息。返回本芯片信息用“ATI”指令。>ATITL718v1.0>返回芯片编号用"AT@S"指令(这个编号升级硬件和提供保修服务时需要)>AT@SCodeNumb:98764323>TL718的OBD命令如果你向TL718发送的指令以16进制数的ASCII开头,则TL718认为是OBD命令,TL718接收后,把成对的ASCII码16进制数转换成单个字节的16进制数据发送到车辆电脑数据总线。OBD命令实际是被嵌入到数据消息包内后发送到数据总线上的,大多数标准要求:在每个数据消息包内包含三字节的头及最后一个数据校验字节。TL718自动添加了这些附加的字节,这些默认的值对OBD2诊断模式请求指令都不需要更改,但如果你想要更改这些头字节值,可以用内部命令“ATSHXXXXXX”更改。

大部分OBD指令长度只有一个字节或2个字节,TL718充许发送的最长度是对应标准规定的字节,超出部分将被丢弃。发出的OBD指令,不能出现单个的数字,16进制数必须成对发送,比喻0不可能发送单个的“0”,必须发送“00”,如果出现单个数字,TL718认为指令格式错误,将返回一个“?”。由于OBD(汽车诊断标准)都使用16进制,所以TL718接收发送的数据也是16进制的。例15的代表的十进制值是21;

当发送完OBD2命令后,TL718等待从总线接收OBD消息,如果接收到地址的消息并且地址匹配,则TL718就把数据从RS232发送给PC,如果TL718接收到的消息和发送的地址不匹配,则忽略该消息。但也可以通过ATBD内部命令查看该接收到的消息包。如果直到等待时间(P2MAXATST命令的设置值,默认值100ms)结束,没有接收到匹配地址的数据,则TL718返回“NODATA”,如果接收到数据并且地址匹配则复位计时间,继续等待,直到等待时间溢出。OBD2标准诊断模式开发OBD2诊断程序,必须掌握ISO15031-5(SAEJ1979)定义的九种诊断模式,对于英文不是很好的朋友,本站有个中文的说明:可以参考:OBD2的九种诊断模式

更详细的内容,还是要看ISO15031-5标准文本,15031–5给出了可供选择的所有参数的标准定义,包括存储格式、单位和文字描述等信息。每个参数都有一个参数标识(PID)与之相对应。OBD系统输出信息的模式/服务Mode1:请求动力系当前数据Mode2:请求冻结祯数据Mode3:请求排放相关的动力系诊断故障码Mode4:清除/复位排放相关的诊断信息Mode5:请求氧传感器监测测试结果Mode6:请求非连续监测系统OBD测试结果经Mode鲁7:请求脑连续监测系溜统OBD测六试结果邻Mode次8:请求扰控制车载系煌统,测试或馆者部件剧狸Mode肆9:读车凯辆和标定识己别号兽每个模式后乞面紧跟一个铸参数标识(远PID)表追示后面是什柏么参数,优每个模式的喇PID0笋0是IS垮O1503票1定义专用创的参数,每衔个符合标准臣的电脑必须佛支持这个参修数标识。代基表该模式对己其他PID当是否支持。矩巡抗管用Acce币sspor夹t进行O铲BD2诊断疾

与车城辆数据通讯薯OBD2命蛮令的格式榆1、额笼塌

上图是O悉BD2的诊指断指令的消谁息包的完整推格式(极大牙部分厂商专票用的功能也云是这种格式糟),TL7辫18能自动作设定了He防ader/归ID/PC陪I/CHE设CKSUM幸这部分数据蚁,对于标准咳的OBD2帐诊断程序你春都几乎不用圣关心修改它鹿。想了解有异关内容,它阻们分别定义盲在ISO1榨4230-含2、J18屠50、I做S9141斩-2和I致SO157拜65-2数陆据链层定义拐的文本内。雹珠

TL7慎18自动检拿测数据总线猪的物理连接巧,能在协议膊1-9间自帮动搜寻当前玻车辆的协议烦,搜寻到后瞧自动返回数钓据。当然也喝可手工设定找到某个特定阶的协议。T汇L718不较搜寻A-F膊协议,因为拾A-F协议估它们没有象中OBD2一得样有一个统怀一的ISO顷15031证应用层协议泽,那样的话册自动搜索变拿得毫无意义树。孟2、ISO准15031围(SAE珠J1979罪)是应用层催的协议,同忽样它也不用线关心使用什厉么样的物理泽层协议(T救L718营自动连接)回,你编程时栋只要发送数罚据,和接收涉及处理接收菊回来的数据择(计算或显图示)。所以斧这么多种物冲理连接,以搅统一标准规杠定的数据包鹿来发送接收零,我們编程防处理变得相敢对简单。下踏面我们来讨范论OBD2聋指令。至3、这里我绿们只要关心臭数据消息包样的7字节数廉据(dat有abyt症e)部分就引可以了朽恭

ISO1荷5031-这5定义:垂延刘

字节场李贵旷意义堵镰险

1蒙困

M从ODE

代表请博求数据的类矮型躬巾牵

2薪崖垮PID

参数标跳识街念辣

3猫-7

苗授锣

根据不却同的MOD胳E及PID抖ISO1仙5031-霸5有详细的倚定义饶寻群采

如屯上图所示,浙连接好线路唯及打开车匙匙到ON,不谈要起动车辆因。不用做任嘱何设定,只撤要你向TL搏718发送抱指令,TL它718自动凯返回车辆响树应的数据。料例1:

图所示:演“哲0100”上代表ISO辰15031搅-5定义M司ODE0孟1PID贼00指民令。咐闻曲>010挺0傅铜低4100扫BF壮9F酸B99况0栽吊

第嫂1个字节倍41

代傅表Mod义e01

(01+显40,标准驴定义)

找字发

第疲2个字节打00

代霜表

PI籍D00欺担

3叶-6字节是局车辆发送回纲来关于M抢ODE0蒜1PID昼00请怀求返回来的艘数据融牛拦表示模式0座0所支持坦其他(PI姨D01--哲-PID3灿2)标识的缝按位定义的蜘数据1代埋表支持0棒代表不支持架。

塌例2:请波求(读取)庸发动机水温鲁MODE潮01P墙ID05筐记

我怪们只要简单鼓的向车辆发午送0105满指令括猫秒>0105绞昨古

410诞57B券侍碗侵麦41代表M灰ODE0产1鸟管惜05代表虽PID0愉5中陶绳7B是水温剩值10进掌制数值是(鄙7*16+械11)12僚3水温是慰123-4萝0=80度枝割恨例3:读测取发动机转搁速rpm

MODE海01P俘ID切0C胀骑

同样只要钳向TL71故8发送:抹010C案纤钱>01度0C韵置鬼41拾0C帐饱1A赶F8剥翠

1AF爸8是2字节镰的16进制毙值,转换为想10进制数曾是6904五,每格1/搬4rpm职烂

转速是啦6904/筛4=172涂6rpm平雕姑注:以上数论据的转换,麻及格式在I杆SO150峰31-5内卖有详细定义晨读OBD2论故障码(D惠TCsD鸦iagno怒stic随Troub颤leCo袄des)夫

读物故障码是诊旷断仪最常用欧的功能,这孤里只是简单损的说明一下胶,详细内容魄请查阅IS把O1503式1-5文本覆

一般坛情况下可直遇接用MOD马E03读携取当前故障糠码,但这里石我们左先用MOD涝E01暖PID0今1读取现在残有多少个故倍障码存在E病CU内榴甩弯么

>01愿01御澡

41释018医107浙6504跃乳

>梢催

410彩1前面已彩说明是对M魂ODE0哑1PID悄01的响肾应代码,雾疤

81

代表当前扮的故障码数级,这个10眯进制数值是沃129,不洋是代表有1恭29个故障杠码,尽猎寇

81它慢的最高位M村SB代表回是否点亮故君障指灯,低骂7位代表了郑故障码的数锯量是蓄馆

16进制李算法应是辰0x81巴&0x营7F呼=0x铃01所以劳是一个故障头码。也可是盯10进制数尽值直接减1供28恐吃围

即:1筛29-12秋8=1;拐雀荒捷

所以8潜1代表了,愁故障灯点亮撒,有一个故赵障码,81朋后面的数据吨请参考标准茄文本,和读影故障码没有影关系。大在这个例子活中,TL7碌18只返回年了一行数据均,但是如果喜有另外的控沈制模块也附香合响应条件仅,有可能返雾回多行信息象。饲比喻常见的影:发动机电卷脑和自动波涌箱控制电脑塌同时返回信籍息,就会有罚2行信息,雹要确认是哪蓄一个电脑返滴回的是哪一刃行等信息,必须柱设置返回O留BD消息保脚的三字节头违(ATH删1内部命令透打开),查恭看消息头字盯节中的第三澡个字节(源仓地址)确定距是那个电脑立模块返回的曾消息包。这逐里先不讨论种,在另外章徒节来详细讨企论,多消息沙包数据。妹现在已经读薄了有多少个巩故障码,下约一步读实际课的故障码是虑什么。巷容得用OBD2蛛诊断模式M播ODE0嫩3读取:只扒要简单地向委TL718废发送03供利价答直

>0颗3衬以

可指能的返回信辣息数据如下中:厕梨

4屿301碍3300阻000呼000芝悄甲临

注:想如果故障码歌数量多于3零或多个电脑惹模块,会返黑回多行消息警包,巨滨芬跑始43是对M堤ODE0慎3请求的忆响应(03拖+40),之另外的6个库字节是故障原代码,2个蚂字节代表一胆个故障码。城霜这里有3个考代表故障码济的数据:0版1330财0000浪000,“寄0000”辅是ISO1负5031在粗这个模式下段返回的填充夹数据尾限不是实际的挽故障码。色他

故锻障码含义:育ISO定义舞:二字节故信障码(例0艰133)的忆第一个数如赶下表所示

现在来分毅析上面的故铺障码01倚33:晨凉第一个数字逆“技0”索按上表用“匠P弦0”怒代替。01顶33就代表朱是故障码P叮0133。盾同样如果收匙到的是D0袄16则,“缠D”用U1闷代替,则故屋障代码就时或U1016说;创如果收到是肚1131则便代换后,故晋障代码是P磨1131。侦

故障久码的定义,绢详细请看:凡SAE穴J2023软-20骆02裁

注:醉ISO15倡765C班AN故障码剖消息包和J疤11850冻、ISO9害141I乱SO142会30返回的玩信息有稍不震同,见铃

编写程排序时要注意眼,ISO捞15765迫返回的信笑息第二个数贴据代表的是麦电脑模块有匙多少个故障寨码(DTC烤s),含忘

详细看乏ISO15钩031-5呀内定义。兔清除故障代破码雾

O岛BD2诊断字模式MOD勒E04是灯复位ECU油的一个功能奶,同时也清灶触故障代码滤;执行后E冈CU将:误吩司

1、复位酷故障代码的款数量为0楼艺想

2、删除秃所有的故障扒代码哭器息

3、删除寇存储的冻结威桢数据列支验

4、删除管所有O2传视感器听测试纺数据驰叙亩

5、删除杆模式MOD敏E06和滔MODE皱07的数客据信息稼衰复位后你的辨汽车由于复配位了一些

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论