一,背景
随着家用轿车的越来越普及,汽车保有量也越来越大,随之而产生的车联网产品也越来 越多。所有的车联网产品几乎都需要获取原车的数据,简单到车速,转速,节气门开度,剩 余油量等等。专车专用的车联网产品也进一步获取到了车门,车灯,安全带,档位等信息。 这里面其实就包含了获取原车数据的 2 种办法,一种是通过 OBD 诊断接口发送请求命令获 取车辆信息,一种是通过监听 CAN 总线数据分析获取车辆信息。今天我们来介绍通过 OBD 诊断接口获取原车信息的办法。
二,方法简介
通过 OBD 诊断接口获取原车数据的办法,是一种最常用的办法。也是市面上很多车联 网产品的技术方案选择该办法。 如下图,这是汽车 OBD 接口的针脚定义图,6 针脚是 CANH,14 针脚是 CANL,4,5 针脚 是地线,16 针脚是 VCC,接电瓶电源的,常电,即使车辆熄火该针脚也有电压。就是通过该 接口,连接 6,14 号针脚,CAN 总线发送数据给行车电脑,然后行车电脑会返回车辆信息。

三,具体发送命令解析
外部终端发送、和行车电脑返回数据的通用格式如下:
终端发送: CANID 为:7DF 报文数据为: 02 01 PIDx 00 00 00 00 00
ECU 回复: CANID 为:7E8 报文数据为:07 41 PIDx A B C D 00
来直接的,如果想要从 OBD 口获取到发动机转速如何发送和接受解析命令?
发送 SID:0x07DF 数据字节(HEX):02 01 0C 00 00 00 00 00
接收 SID:0x07E8 数据字节(HEX):04 41 0C 0B 3E 00 00 00
以上发送命令解析为:7DF,为 CANID,这个 CANID 是所有具有诊断功能的行车电脑都会相 应的一个 CANID。发送的数据中,02 代表数据长度,后面有效字节长度为 2,即 010C。01 代表服务号,也叫 SID,其中 01 是动力有关的数据,01 服务为用的最多的一个服务。0C 代 表参数 ID,也叫 PID,这个 PID 具体定义在 IS015031-5 里面,此处 0C 这个是发动机转速的 PID。总结起来这条请求报文就是:外部设备要向行车电脑请求发动机转速!
接收到的数据为行车电脑返回的数据,其中 7E8 为行车电脑的物理 ID,也是 CANID。 CAN 报文数据为:04,代表后续有效字节有 4 个。41 为对 01 服务的一个应答,所有行车电 脑返回的数据,都会在请求数据的基础上加 0x40 返回(0X01+0X40 即 0x41)。0C 对应请求 命令中的 0C,代表发动机转速。0B 3E 代表转速值,为十六进制的转换为十进制为: 0x0B3E=2878,但是这个里面还有一个解析算法,这个值除以 4 为实际转速,也就是实际转速 为 2878/4=719 转。
四,PID 对应关系以及算法解析
通过第 3 部分我们知道,其实请求车子数据项,除了知道以上的数据格式之外,还需要
清除的知道各个 PID 的定义,以及行车电脑对应 PID 的解析算法。这个我们已经帮大家总结 好,见我另一篇文章<<乘用车汽车诊断总结>>。截图如下

五,对应硬件套件
外部请求设备,也叫 OBD 诊断板,提供硬件原理图和软件源码。

一种基于 ISO15765 协议的获取车辆信息的方法相关推荐

  1. 用udp实现可靠传输python_一种基于UDP协议实时可靠图像传输方案的制作方法

    本发明设计属于数据传输与通信技术领域,具体涉及一种基于UDP协议(User Datagram Protocol)实时可靠图像传输方案. 背景技术: 随着网络技术的高速发展,无线数据传输在通信.控制等领 ...

  2. 树莓派can总线_RPi 2B: CAN总线通信 - 通过OBD-II接口获取车辆信息

    CAN总线在汽车电子中用的最广,汽车中的(ECU (Electronic Control Unit, 电子控制单元)可以通过CAN总线进行通信,同时汽车上还存在OBD(On-Board Diagnos ...

  3. android 订餐系统,一种基于Android平台手机订餐系统的实现方法

    一种基于Android平台手机订餐系统的实现方法[ 技术领域: ][0001]本发明涉及一种手机订餐系统,能够通过手机上的Android软件实现订餐.[ 背景技术: ][0002]目前已有的网上订餐系 ...

  4. 一种基于三代PacBio测序数据的补洞方法

    一种基于三代PacBio测序数据的补洞方法 技术领域 本发明涉及生物信息技术领域,具体涉及DNA组装的补洞方法,它使用三代PacBio 测序数据来进行基因组数据的补洞. 背景技术 三代PacBio测序 ...

  5. linux文件中链接文件系统,一种基于Linux文件系统文件链接的缓存LRU方法

    一种基于Linux文件系统文件链接的缓存LRU方法 [技术领域] [0001]本发明涉及信息技术领域,特别是涉及一种基于Linux文件系统文件链接的缓存LRU方法. [背景技术] [0002]目前,随 ...

  6. 3种基于深度学习的有监督关系抽取方法

    摘要:本文对几种基于深度学习的有监督关系抽取方法进行了介绍,包括CNN关系抽取.BiLSTM关系抽取以及BERT关系抽取. 本文分享自华为云社区<基于深度学习的有监督关系抽取方法简介>,作 ...

  7. 一种基于说话人识别和数字语音识别的身份认证方法与流程

    本发明属于语音处理技术领域,具体涉及到对数字语音序列进行说话人识别和语音识别,确定说话人身份的身份认证方法. 背景技术: 说话人识别也称为声纹识别,可以从说话人发出的声音中提取其个性特征,从而识别出当 ...

  8. 一种基于敏感度可调的语音情感识别方法及系统

    一种基于敏感度可调的语音情感识别方法及系统 技术领域 本发明属于语音识别领域,尤其涉及一种基于敏感度可调的语音情感识别方法及系统. 背景技术 情感是人类交流手段的一种常见的表达方式,在人机交互中起着重 ...

  9. catia制作物料明细_一种基于CATIA的国标标准物料清单的生成方法与流程

    本发明涉及一种物料清单的生成方法,尤其涉及一种基于CATIA的国标标准物料清单的生成方法. 背景技术: 众所周知,CATIA是法国达索公司的产品开发旗舰解决方案.作为PLM协同解决方案的一个重要组成部 ...

最新文章

  1. 太厉害了!这应该是目前Redis可视化工具最全的横向评测
  2. 新生男婴自带新冠抗体,感染者母亲如今抗体消失,医生:抗体转移了
  3. python sqlite3加密_sqlite3加密 - kjpioo的个人空间 - OSCHINA - 中文开源技术交流社区...
  4. 移动端前端常见的触摸相关事件touch、tap、swipe等整理
  5. 基于jeesite的cms系统(一):开发环境搭建
  6. python访问注册表_Python 操作注册表
  7. 用面向对象思想设计奥赛罗游戏
  8. 上传图片至fastdfs显示连接超时
  9. 如何用matlab计算不确定度,Matlab计算“间接测量物理量的不确定度”
  10. 每天一点matlab——字符分割
  11. 怎么使用水经注万能地图下载器制作百度个性化道路地图
  12. pythonjam教程_colorama(pythonjam官网)
  13. python+ffmpeg视频转码转格式
  14. 南京计算机类事业单位,南京市属事业单位公开招聘579人 3月25日起报名
  15. 你对人工智能有什么看法?未来趋势与产品化将会如何发展?
  16. 燕十八 Mysql 笔记 68 课
  17. 【第5篇】人工智能(AI)语音测试原理和实践
  18. php特性之intval学习小记
  19. 百度地图api开发详解(android版).pdf,百度地图API开发指南原版.pdf
  20. python读取枚举_一文读懂Python 枚举

热门文章

  1. pycharm设置国内清华源
  2. 成长中必须知道的10个故事 也是做人,做营销必须知道的故事
  3. 【天光学术】审计研究生毕业论文最全攻略
  4. Linux系统vi编辑器
  5. eclipse项目导入到idea
  6. web图书管理系统(HTML+CSS+JS+PHP)
  7. 涉密外业计算机管理和使用情况,吉林省自然资源厅
  8. UObject反序列化--大象无形10.1.2笔记
  9. 用来代替本机IP的万能IP:127.0.0.1
  10. 金蝶EAS登陆客服端时报错