OBD 车联网产品是如何实现车辆的控制?

1.什么是OBD?

根据国际标准ISO 15031:Road vehicles — Communication between vehicle and external equipment for emissions要求现代汽车配备OBD接口,该接口由16针接口组成,其中2,4,5,6,7,10,14,15,16针脚具体对应功能ISO 15031已经做了明确定义;1,3,8,9,11,12,13针脚由各个汽车厂家自定义。

如图依据ISO 15031PIN 6,14分别为CAN high,CAN low该路CAN通道通常为动力CAN,发动机管理系统EMS便是该CAN通道上的节点,借助该CAN便可实现排放相关的监测监控。

2.整车网络上的OBD接口

除去规范中定义的OBD针脚,ISO 15031中未作明确定义的PIN针脚才是整车厂发挥空间。为了方便实现通过OBD对车辆网络中各路CAN通道上节点的诊断、CAN报文采集测试。整车厂通常会将更多的CAN通道引到OBD接口(当然这样似乎存在一定信息安全风险),如:PIN 1,3与车身控制CAN相连;PIN 8,9与辅助驾驶CAN通道相连。OBD在整车网络中的可能位置如图(不同厂家存在一定差异)。

由于CAN通讯为总线式通讯,连接在某CAN通道上的控制器可以采集到总线上所有CAN报文,也可以向总线发送符合CAN规范的报文。

3.OBD盒子

为实现与车辆的信号交互,通常OBD盒子通常由CAN收发器(若干),单片机,蓝牙/WIFI通讯芯片,通讯模块,加速度传感器,GNSS定位芯片等,如图为OBD盒子组成概要图及各个部件的功能介绍。

4.OBD盒子功能实现

在某东和某宝上可以轻易的搜索到N多OBD盒子产品,以XX牌OBD盒子为例,主要有以下功能:

  • 故障检测
  • 驾驶分析
  • 启动提醒
  • 电压提醒
  • 油耗分析
  • 震动报警

通过分析发现OBD盒子主要实现的功能为数据分析,监控提醒类被动型功能,很少能实现车辆控制类(如车窗控制、发动机点火控制等)主动型功能。这是为什么呢?

数据分析、监控类功能实现原理:如上图,车辆工作时各个节点会不断的向总线发送各类CAN报文,OBD盒子可以读取总线上的CAN报文,完成车辆信息的采集,如通过监控EngineRun,BatteryVotage信号值便可分别实现对汽车启动状态和电瓶电压值的监控;通过对VehicleSpeed信号监控,便可统计汽车运行实时速度。当然这一过程涉及各个厂家具体CAN协议解析与破解。

车辆的控制如何实现?

那么相同的原理如图手机APP通过LTE(4G)、蓝牙、wifi与OBD盒子相连,用户可以通过手机下发各类控制指令给OBD盒子,OBD盒子通过CAN报文经由OBD接口发送至车辆,实现车辆的控制,如:打开车窗、启动发动机、启动空调。然鹅,然鹅,然鹅。。。这些控制几乎都涉及到车辆的安全,要实现这些控制功能通常需要先完成身份校验。

校验过程大概如下:

  1. 请求身份校验随机数种子;
  2. 被控制单元回复校验种子seed;
  3. 控制发起者依据seed按加密算法计算出身份请求信息;
  4. 被控制ECU核对请求信息;
  5. 身份校验通过。

因此,如需完成控制功能需要知道被控制单元的身份校验加密算法,只有通过了身份校验才是进一步实现车辆控制。但实际上,由于大部分OBD盒子为后装产品,且产品面对的是市面上大部分车型,要实现各个厂家车辆的控制功能就得破解各个厂家的加密算法,存在一定技术难度。

当然,嘿嘿嘿。。。

总结:OBD车联网产品主要战场为后装领域,更多的功能为车辆状态监控、提醒等被动型功能;车辆控制类主动型功能由于涉及到身份校验过程开展难度相对较高,也会涉及到一定的安全风险,普及度较低。

来源:知乎 www.zhihu.com

作者:柏拉凃

【知乎日报】千万用户的选择,做朋友圈里的新鲜事分享大牛。
点击下载

此问题还有 20 个回答,查看全部。
延伸阅读:
OBD 车联网产品是如何实现车辆的控制?
谁知道现在的汽车OBD盒子 哪家比较好点?