好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

OBD2诊断程序开发.docx

8页
  • 卖家[上传人]:学***
  • 文档编号:298808485
  • 上传时间:2022-05-26
  • 文档格式:DOCX
  • 文档大小:19.56KB
  • / 8 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 本文格式为Word版,下载可任意编辑OBD2诊断程序开发 如何开发标准的汽车OBD2诊断程序及相关应用层协议下载 开发标准OBD2诊断程序要打定的资料及硬件 1、因TL718已经为你建立了物理层、数据链层和片面应用层的协议,所以只要OBD2标准应用层协议文本,ISO15031-5 或 SAE J1979(这两个协议是一致的内容) 2、TL718诊断接口 1 套或用TL718芯片自建电路 3、家用PC机电脑一台 4、安装软件:Accessport调试软件及VC++(或VB、BC++等)你热爱的开发软件 5、符号OBD2标准的汽车发动机电脑一块(或汽车一台) TL718根本信息 TL718芯片的技术数据手册 TL718通过一个UART串口与单片机、PDA或PC RS232通讯,在有的新的PC机上已没有装备RS232串口,可以通过虚拟串口实现与TL718通讯,例USB TO RS232、以太网TO RS232、或蓝牙 TO RS232等等。

      ---RS232----OBD2电缆-----|PC|| TL718||汽车诊断口|---- 不管使用怎样的物理连接,你可以使用超级终端或串口调试工具,直接通过键盘发送和接收字符在使用串口调试软件前,首先务必设置正确的COM端口号和正确的波特率一般为9600波特率(PIN6=0V),或38400波特率(PIN6=VCC,PP OC设置默认值)串口设置为:8个数据位,校验位:0, 中断位 1位假设设置错误,将不能和TL718正常通讯全体从TL718的响应以一个回车符(0X0D)及一个可选的换行符(0X0A)终止正确连接,开启电源后TL718将驱动测试LED灯,(闪亮3次)后,发送: TL718 starting 〉 假设正确收到以上信息代表串口及连接设置正确其次行“〉”符号代表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”、“at z”都是一样的 比喻我们向TL718发送一个复位指令只要向RS232串口发送ASCII字符“ATZ”+0x0d(回车符); TL718 Starting >ATZ ELM327 v1.2 > 注:ATZ指令返回 ELM327 V1.2是为了使用现成的国外OBD观软件,所以用了这个返回信息。

      返回本芯片信息用“ATI”指令 >ATI TL718 v1.0 > 返回芯片编号用 \指令(这个编号升级硬件和供给保修服务时需要) >AT@S CodeNumb:98764323 > TL718的OBD命令 假设你向TL718发送的指令以16进制数的ASCII开头,那么TL718认为是OBD命令,TL718 接收后,把成对的ASCII码16进制数转换成单个字节的16进制数据发送到车辆电脑数据总线OBD命令实际是被嵌入到数据消息包内后发送到数据总线上的,大多数标准要求:在每个数据消息包内包含三字节的头及结果一个数据校验字节TL718自动添加了这些附加的字节,这些默认的值对OBD2诊断模式苦求指令都不需要更改,但假设你想要更改这些头字节值,可以用内部命令“ATSH XXXXXX”更改 大片面OBD指令长度只有一个字节或2个字节,TL718充许发送的最长度是对应标准规定的字节,超出片面将被丢弃发出的OBD指令,不能展现单个的数字,16进制数务必成对发送,比喻0不成能发送单个的“0”,务必发送“00”,假设展现单个数字,TL718认为指令格式错误,将返回一个“?”。

      由于OBD(汽车诊断标准)都使用16进制,所以TL718接收发送的数据也是16进制的例15的代表的十进制值是21; 当发送完OBD2命令后,TL718等待从总线接收OBD消息,假设接收到地址的消息并且地址匹配,那么TL718就把数据从RS232发送给PC,假设TL718接收到的消息和发送的地址不匹配,那么疏忽该消息但也可以通过ATBD内部命令查看该接收到的消息包假设直到等待时间(P2MAX ATST命令的设置值,默认值100ms)终止,没有接收到匹配地址的数据,那么TL718返回“NO DATA”,假设接收到数据并且地址匹配那么复位计时间,持续等待,直到等待时间溢出 OBD2标准诊断模式 开发OBD2诊断程序,务必掌管ISO 15031-5( SAE J1979)定义的九种诊断模式,对于英文不是很好的挚友,本站有个中文的说明: 可以参考: 更细致的内容,还是要看 ISO15031-5标准文本,15031–5 给出了可供选择的全体参数的标准定义,包括存储格式、单位和文字描述等信息。

      每个参数都有一个参数标识(PID)与之相对应 OBD系统输出信息的模式/服务 OBD2 的九种诊断模式 ? ? ? ? ? Mode 1: 苦求动力系当前数据 Mode 2: 苦求冻结祯数据 Mode 3: 苦求排放相关的动力系诊断故障码 Mode 4: 除掉/复位排放相关的诊断信息 Mode 5: 苦求氧传感器监测测试结果 ? ? ? ? Mode 6: 苦求非连续监测系统OBD测试结果 Mode 7: 苦求连续监测系统OBD测试结果 Mode 8: 苦求操纵车载系统,测试或者部件 Mode 9: 读车辆和标定识别名 每个模式后面紧跟一个参数标识(PID)表示后面是什么参数,每个模式的PID 00 是ISO15031定义专用的参数,每个符合标准的电脑务必支持这个参数标识代表该模式对其他PID是否支持 用Accessport串口调试 举行OBD2诊断 与车辆数据通讯 OBD2命令的格式 1、 上图是OBD2的诊断指令的消息包的完整格式(极大片面厂商专用的功能也是这种格式),TL718能自动设定了Header/ID/PCI/CHECKSUM这片面数据,对于标准的OBD2诊断程序你都几乎不用关切修改它。

      想了解有关内容,它们分别定义在ISO14230-2、J1850 、IS9141-2 和ISO15765-2数据链层定义的文本内 TL718自动检测数据总线的物理连接,能在协议1-9间自动搜寻当前车辆的协议,搜寻到后自动返回数据当然也可手工设定到某个特定的协议TL718不搜寻A-F协议,由于A-F协议它们没有象OBD2一样有一个统一的ISO15031应用层协议,那样的话自动探寻变得毫无意义 2、ISO15031(SAE J1979)是应用层的协议,同样它也不用关切使用什么样的物理层协议(TL718自动连 接),你编程时只要发送数据,和接收及处理接收回来的数据(计算或显示)所以这么多种物理连接,以统一标准规定的数据包来发送接收,我們编程处理变得相对简朴下面我们来议论OBD2指令 3、这里我们只要关切数据消息包的7字节数据(data byte)片面就可以了 ISO15031-5定义: 字节 意义 1 MODE 代表苦求数据的类型 2 PID 参数标识 3-7 根据不同的MODE及PID ISO15031-5有细致的定义 如上图所示,连接好线路及开启车匙到ON,不要起动车辆。

      不用做任何设定,只要你向TL718发送指令,TL718自动返回车辆响应的数据 例 1: 图所示:“0100”代表ISO15031-5定义MODE 01 PID 00 指令 — 8 —。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.