文档库 最新最全的文档下载
当前位置:文档库 › 基于WinCE的嵌入式虚拟仪表显示系统研制

基于WinCE的嵌入式虚拟仪表显示系统研制

22

科技资讯

科技资讯 SCIENCE & TECHNOLOGY INFORMATION

2012 NO.20

SCIENCE & TECHNOLOGY INFORMATION

信 息 技 术

OBD是英文On Board Diagnostics的缩

写,中文翻译为“车载诊断系统”[1]

,装载

OBD协议的汽车能够自动监测汽车各项运行参数,具有很高的安全性。WindowsCE是微软公司嵌入式、移动计算平台的基础,它是一个开放的、可升级的32位嵌入式操作系统,是基于掌上型电脑类的电子设备操作系统,它是精简的Windows 95,WindowsCE的图形用户界面相当出色。

本文介绍一种能够应用在WinCE设备平台的OBD汽车虚拟仪表设计方案。

1 需求分析与总体设计

OBD系统能够输出汽车ECU(ElectronicControl Unit)电子控制单元通过车载传感

器获得的燃油系统、温度系统、点火系统、动力系统以及废气控制辅助装置系统运行状态数据,在发生故障的情况下则输出故障码。

硬件设计方面,设计了以ELM327为主控芯片的硬件连接电路和以PL2303芯片为主控芯片的电平转换电路,扩展OBD接口的功能,与OBD接口通信,解析报文数据流,将OBD接口输出信号转换为WinCE平台设备能够识别的信号并输入。

软件设计方面,本文具体阐述了在WinCESDK环境下开发的设计方案。采用模块化的设计方法,将虚拟仪表软件分为通信初始化模块、OBD数据解析模块、计算与显示模块进行设计和研究,实现了将发动机状态、发动机

转速、当前时速、剩余油量、发动机温度等行车信息在WinCE平台上以汽车虚拟仪表图形显示。

2 硬件连接器设计

2.1连接器设计

连接器的作用时信号转换,因为系统终端与ECU的通信码均为串口信号,只是与RS-232标准串口信号的电压不同,标准串口信号的“1”用-12V表示,“0”用+12V表示,而K线的“0”用0~1.3V表示,“1”用12V表示,所以需要设计一块转换卡,把K线的串口信号转换为标准的串口信号,即可实现利用计算机串口来读取嵌入式系统终端与ECU的通信码。转换卡除了能完成电平转换功能外,工作频率要大于10kHz,且输入电阻要大,不至于影响嵌入式系统终端与ECU的通信。采用转换卡截码的效率很高,每次截码得到的文件也较小,约1Kbytes。基于ELM327的连接器组成框图如图1所示。2.2电平转换

USB作为一种新的PC机互连协议,使外设到计算机的连接更加高效、便利.这种接口适合于多种设备,不仅具有快速、即插即用、支持热插拔的特点,还能同时连接多达127个设备,解决了如资源冲突、中断请求(IRQs)和直接数据通道(DMAs)等问题。因

基于Win CE 的嵌入式虚拟仪表显示系统研制①

曹冬冬 秦红

(重庆三峡学院电子与信息工程学院 重庆 404000)

摘 要:本文研究和设计一种能够应用在WinCE 设备平台的OBD 汽车虚拟仪表方案,将OBD 的诊断结果以虚拟仪表图形的方式在WinCE 平台上显示。通过对OBD 系统所使用的通信协议、九种诊断模式,以及WinCE 平台的系统架构和应用程序结构的研究,为设计方案打下基础。关键词:车载诊断系统 WINCE 汽车 虚拟仪表中图分类号:TP274文献标识码:A 文章编号:1672-3791(2012)07(b)-0022-02

①课题来源:重庆三峡学院大学生创新项目资助。

RXD

TXD

工作晶振

RTSBUSY

Memory

MCLR复位状态LED01状态LED02

16针OBD插头

ELM327芯片

Rs232转USB电路Rs232接口图1 连接器原理框图

图2 RS232转USB 电路实物图

 

模式选择

发送询问码

读取信号数据

流信号解析

取得结果

存储输出

开关信号解析

图3 报文解析流程图

23

科技资讯

科技资讯 SCIENCE & TECHNOLOGY INFORMATION

2012 NO.20

SCIENCE & TECHNOLOGY INFORMATION

信 息 技 术

图4 实物照片和软件截图

此,越来越多的开发者欲在自己的产品中使用这种标准接口。而RS-232是单个设备接入计算机时,常采用的一种接入方式,其硬件实现简单,因此在设计的时候考虑将RS232信号转换成USB信号,电路实物图如图2所示。

如图2:ELM327内驻一个多路低导通电阻模拟开关组成的供电-测量电路网络、12bit逐次逼近A/D转换器和异步串行数据输入输出,ELM327根据微控制器发来的不同测量命令导通相应的模拟开关,以便向OBD电极对提供电压,并把相应电极上的触点坐标位置所对应的电压模拟量引入A/D转换器,X+、Y+、X-、Y-为OBD电压输入;CS为ADS7843的片选输入信号,低电平有效;DCLK接外部时钟输入,为芯片进行A/D转换和异步串行数据输入/输出提供时钟;DIN串行数据输入端,当CS低电平时,输入数据在时钟的上升沿将串行数据锁存;DOUT串行数据输出端,在时钟下降沿数据由此移位输出,当CS为高电平时,DOUT呈高阻态。BUSY为系统忙标志端,当CS为低电平,且BUSY为高电平时,表示ELM327正在进行数据转换;VREF参考电压输入端,电压值在+1V到+VCC之间变化;PENIRQ为笔触中断,低电平有效;IN3、IN4为辅助ADC转换输入通道;+VCC为电源输入。

按照图2示电路,ELM327完成一次数据转换需要与OBD进行3次通信,第一次微处理器通过异步数据传送向ELM327发送控制字,其中包括起始位、通道选择、8/12位模式、差分/单端选择和掉电模式选择,其后的两次数据传送则是微控制器从ELM327取出16bitA/D转换结果数据(最后四位自动补零),每次通信需要8个时钟周期,完成一次数据转换共需24个时钟周期。

3 虚拟仪表软件设计

软件设计平台选用Visual Studio20085构建的开发平台[4]。采用模块化的设计方法,主要核心模块是通信模块和OBD报文解析模块。3.1通信模块

通信初始化模块功能是通过连接器实现OBD插座与WinCE平台设备的互联,打开USB通用串行端口,代码如下:

HANDLE SerialPort=NULL;HANDLE Thread[2]={NULL};LPCWSTR SerialName=L"COM1";//设置1号串口

int baud=9600;//设置波特率为9600kbps

int parity=NOPARITY/*奇偶校验*/;int databits=8;//设置8位数据位int stopbits=1;//设置1位停止bool flag;

void Param(int argc,char* argv[]){

//if(argc==1)}

3.2OBD 报文解析模块

报文解析模块是虚拟仪表的核心,以OBD报文组成为基础定义其主要工作流程图如图3所示。

4 工程实测

选用相应设备,虚拟仪表成功读取汽车动力系统的发动机状态、转速、温度、行驶速度、存油量等参数信息并显示,显示结果和汽车仪表盘完全一致,达到设计的预期目的。(如图4)

5 结语

本论文设计的汽车虚拟仪表设计方案能够读取汽车动力系统的发动机状态、转

速、温度、行驶速度、存油量等参数信息并显示。在今后的工作中,还可以开发车载多功能信息系统,为驾驶员提供更多的行车服务。

参考文献

[1]Salvatore Cavalier. Meeting Real-Time

Constraints in CAN[C].IEEE Trans-actions On Industrial Informatics,2005,1(2).

[2]蔡黎.基于OBD协议的WinCE平台汽车

虚拟仪表设计[J].电子技术应用,2012(1).

相关文档