基于OBD协议的Android平台汽车虚拟仪表设计
扫描二维码
随时随地手机看文章
摘 要: 提出了一种基于OBD协议的Android平台汽车虚拟仪表设计方法。该装置以连接器硬件和解析OBD数据软件为核心,连接器硬件读取OBD接口实时数据,软件解析相关参数值,最后在Android平台设备上进行图形化虚拟仪表显示。在分析OBD协议关键技术后,具体阐述了Android SDK开发环境下软件的设计方案。按该方案设计的汽车虚拟仪表已经实现,工程实测证明:此种设计方案高效可靠,能够达到监测汽车运行参数的预期目的。
关键词: 车载诊断系统; 安卓; 汽车; 虚拟仪表
OBD(On Board Diagnostics)即“车载诊断系统”[1],装载OBD协议的汽车能够自动监测汽车各项运行参数,具有很高的安全性。但是受到OBD仪表高额制造成本的制约,绝大部分汽车只支持OBD协议并提供OBD接口,但是未设置OBD车载检测仪表,因此OBD的各项功能未得到有效发挥。
Android是一款基于Linux平台的开源移动通信终端操作系统,由Google公司研发,目前全球长期使用的Android平台设备约有1 300万台。
本文介绍一种能够应用在Android设备平台的OBD汽车虚拟仪表设计方案。
1 系统整体设计
1.1 需求分析
OBD系统能够输出汽车电子控制单元ECU(Electronic Control Unit)通过车载传感器获得的燃油系统、温度系统、点火系统、动力系统以及废气控制辅助装置系统运行状态数据,在发生故障的情况下则输出故障码。
基于OBD协议的Android平台汽车虚拟仪表需要实现的功能是扩展OBD接口功能,与OBD接口通信,解析相关报文数据流,将解析结果以图形化的方式显示,如动力监控界面能够显示发动机状态、发动机转速、当前时速、剩余油量、发动机温度等。
1.2 整体设计
用系统工程的方法划分虚拟仪表设计工作,参照模块化软件开发规范,按照以下步骤实现汽车虚拟仪表:
(1)分析OBD接口,设计硬件连接器,将电平转换到Android平台设备可接受的范围;
(2)虚拟仪表软件初始化连接器,读取输入信号,解析OBO信号报文并以图形化的方式显示。系统子模块图如图1所示。
2 OBD接口
根据ISO DIS 15031-3规范,OBD接口被定义为双排16针插座,有A、B两种外形规范,A用于小型乘用车,B用于载重汽车[2]。A型接口一般位于转向柱和汽车中线之间。16个引脚信号定义如下。
如图2,插座的02、06、07、10、14 和15号引脚用于传输不同的汽车通信协议,通常用其作为诊断通信接口。因为一个型号的汽车只使用一种协议,所以同一型号的汽车,只需要使用其中的一个接线柱。插座01、03、08、09、11、12 和13 未做分配,由车辆制造厂商自行定义。如第4节工程实测中使用的长城CC7130SM00 汽车,将11 脚定义为发动机防盗信号、12定义为ABS(Anti-locked Braking System)车轮防抱死信号、13脚定义为安全气囊信号。
3 硬件连接器设计
3.1 连接器设计
连接器的作用是将OBD接口输出信号转换为Android平台设备能够识别的信号并输入。此处选用ELM电子生产的OBD转RS232专用芯片ELM327作为连接器主控芯片,连接器一端连接OBD插座,OBD接口16号引脚为芯片供电,OBD信号通过芯片转换后从数据收发口RXD、TXD输出。基于ELM327的连接器组成框图如图3所示。
3.2 电平转换
Android平台设备一般采用无线蓝牙、WLAN或有线USB端口进行数据通信,这里选择USB端口作为信号输入端口。ELM327输出的信号范围是0 V~12 V,Android平台设备USB端口接收的信号范围为0 V~5 V,两者不匹配[3],设计以PL2303芯片为核心的转换电路完成转换,电路图如图4所示。
4 虚拟仪表软件设计