汽车OBD2诊断程序开发 (原文转载,思路很清晰!)
1、因TL718已经为你建立了物理层、数据链层和部分应用层的协议,所以只要OBD2标准应用层协议文本,ISO15031-5 或 SAE J1979(这两个协议是相同的内容)。
2、TL718诊断接口 1 套或用TL718芯片自建电路。
3、家用PC机电脑一台。
4、安装软件:Accessport调试软件及VC++(或VB、BC++等)你喜欢的开发软件。
5、符号OBD2标准的汽车发动机电脑一块(或汽车一台)
准备好以上这些,你就可以开始你的OBD2标准程序开发了!!!
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开头,不与辆发生通讯。
l发送必须以0x0d(回车符)结束的ASCII码字符,回车符后面的字符被TL718丢弃。
lTL718内部命令以“AT”开头,后面跟可见字符。不可见字附及空格被忽视。
lOBD命令只能包含16进制的ASCII码(0-9,a-f,A-F),空格被忽略。
l如果发送的指令,不能被TL718有效解释,TL718将返回一个“?”表明,发送指令无效。
l当TL718处理OBD命令时,TL718连续监视RTS引脚及RS232输入,其中任何一个情况发生,TL718将中断当前的OBD命令,使它快速返回提示符“〉”,等待接收新的命令。
l大小写字符都能被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"指令(这个编号升级硬件和提供保修服务时需要)
>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诊断程序开发 (原文转载,思路很清晰!)的更多相关文章
- UML类建模(强烈推荐-思路很清晰)
UML类建模(强烈推荐-思路很清晰) 2016年10月23日 15:17:47 mbshqqb 阅读数:2315 标签: uml面向对象设计模式 更多 个人分类: 面向对象程序设计 UML的构造快 ...
- CSS属性总结——思路很清晰
CSS 属性总结 CSS的属性是用来改变文档元素的状态的,其中主要改变两方面的东西,即位置.样式,现在我们就将CSS的属性分为定位和样式两方面来总结,知识结构图如下: 用来定位的属性: 在同一 ...
- LeetCode()Minimum Window Substring 超时,但觉得很清晰。
我的超时思路,感觉自己上了一个新的台阶,虽然超时了,但起码是给出了一个方法. 遍历s 一遍即可,两个指针,当找到了一个合格的字串后,start 开始走,直到遇到s[start]在t中 如果不符合,en ...
- 初次接触ARM开发,理清这四个开发思路很重要!
初次接触ARM开发,理清这四个开发思路很重要! 由于涉及编程,学习ARM单片机系统对于从事电子电路的设计者来说是有些困难的,学习知识不难,难的是理清其中的开发思路,找到一个好的起点.本文就将从这一步入 ...
- 面向对象技术-原文转载自jingwhale
面向对象技术 --原文转载自jingwhale,文章底部附原文链接 对象是面向对象的程序设计的核心,它由描述状态的属性(变量)和用来实现对象行为的方法(函数)组成,完成了从数据模型到处理模型的结合与统 ...
- 蓝牙nrf52832的架构和开发(转载)
相比TI的CC254X.DIALOG的DA1458X,nordic推出的nrf51822和nrf52832在架构和开发商都有自己独特的地方.这几颗产品都是蓝牙低功耗芯片.DA1458X使用OTP硬件架 ...
- Unity iOS混合开发界面切换思路
Unity iOS混合开发界面切换思路 最近有很多博友QQ 私信 或则 留言联系我,请教iOS和Unity界面之前相互切换的问题,源代码就不私下发你们了,界面跳转功能的代码我直接贴到下面好了,顺带说i ...
- 浅谈 PHP 与手机 APP 开发(API 接口开发) -- 转载
转载自:http://www.thinkphp.cn/topic/5023.html 这个帖子写给不太了解PHP与API开发的人 一.先简单回答两个问题: 1.PHP 可以开发客户端? 答:不可以,因 ...
- GJM : Taurus.MVC 2.0 开源发布:WebAPI开发教程 [转载]
Taurus.MVC 2.0 开源发布:WebAPI开发教程 转载自http://www.cnblogs.com/cyq1162/p/6069020.html 因是新手 粘贴时有一个版权问题 本文原 ...
随机推荐
- NopCommerce架构分析之八------多语言
系统支持的语言是有类:Language表示: 多语言资源对应的类为:LocalizedProperty: 当先选择某种语言存储在类中:GenericAttribute: 多语言可以导出为XML文件,当 ...
- extjs分组查询
<script type="text/jscript"> var grid; Ext.onReady(function () { Ext.QuickTips.init( ...
- 设计模式_Visitor_访问者模式
形象例子: 情人节到了,要给每个MM送一束鲜花和一张卡片,可是每个MM送的花都要针 对她个人的特点,每张卡片也要根据个人的特点来挑,我一个人哪搞得清楚,还是找花店老板和礼品店老板做一下Visitor, ...
- O(1)时间删除链表的已知结点
这题并不需要从头结点遍历到已知结点,只需要知道已知结点,将改结点下一个结点赋值给它,再删除这个下一个结点就行,其中还需要考虑各种情况. 1)链表为空或者已知结点为空 2)链表只有一个结点,这个结点就是 ...
- 解决adb问题的方法
The connection to adb is down,and a server error has occured. 在网上找的那个高端方法根本不管用,来,试试我的方法.. 先装个360手机助手 ...
- 析构函数释放内存时出现_BLOCK_TYPE_IS_VALID错误
错误信息截图: 原因: 1.内存泄漏:所以当程序退出时,系统会收回分配的内存,于是调析构函数,由于内存已被错误地释放,于是就会出现"Debug Assertion Failed"的 ...
- InetAddress
InetAddress对域名进行解析是使用本地机器配置或者网络命名服务(如域名系统(Domain Name System,DNS)和网络信息服务(Network Information Service ...
- 异常(Exception)
1.Java中所有的异常类都会直接或间接地继承自Exception. 2.RuntimeException类也是直接继承自Exception类,它叫做运行时异常,Java中所有的运行时异常都会直接或间 ...
- 转载MSDN 在ASP.NET 中执行 URL 重写
转载文章原网址 http://msdn.microsoft.com/zh-cn/library/ms972974.aspx 摘要:介绍如何使用 Microsoft ASP.NET 执行动态 URL 重 ...
- _doPostBack用法总结
转载在以下两篇博客: http://www.cnblogs.com/yongtaiyu/archive/2011/05/13/2045746.html http://www.cnblogs.com/F ...