基于嵌入式Linux与QT的汽车虚拟仪表设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2012年3月15日第35卷第6期
现代电子技术
Modern Electronics Techniq
ueMar.2012
Vol.35No.6
基于嵌入式Linux与QT的汽车虚拟仪表设计
王润民,赵祥模,惠 飞,杨 澜,史 昕
(长安大学信息工程学院,陕西西安 710064
)摘 要:为了简化汽车内部控制系统,降低汽车制造成本,提高人车交互界面的友好度,设计并实现了一种新型的汽车虚拟仪表。

采用以ARM处理器S3C6410为核心的硬件平台和以嵌入式Linux系统为核心的软件平台,并在此基础上采用开放源代码的图形界面库QT开发仪表终端应用程序。

经试验验证,虚拟仪表系统具有成本较低、界面友好、反应灵敏等特点,
并在跨平台性、可扩展性等方面得到了显著改善。

关键词:汽车;虚拟仪表;嵌入式Linux;QT;ARM
中图分类号:TN919-34 文献标识码:A 文章编号:1004-373X(2012)06-0001-
04Desig
n of automotive vitual instrument based on embedded Linux and QTWANG Run-min,ZHAO Xiang
-mo,HUI Fei,YANG Lan,SHI Xin(School of Information Engineering,Chang’an University
,Xi’an 710064,China)Abstract:In order to simplify the internal control system of car,reduce vehicle manufacturing cost and improve thefriendliness degrees of man-vehicle interaction interface,a new type of vehicle virtual instrument is designed and implemented.The hardware platform taking ARM processor S3C6410as core and the software platform taking embedded Linux operatingsystem as a core are adopted.Additionally,the open source graphical user interface library QT is used to develop the terminalapplication program.The results of experimental verification show that the virtual instrument system has some advantagessuch as low cost,friendly man-vehicle interaction interface and sensitive response,and has a significant improvement in cross-platform and scalability
.Key
words:car;virtual instrument;embedded Linux;QT;ARM收稿日期:2011-10-
26基金项目:国家“863”基金资助项目(2009AA11Z203
);中央高校基本科研业务费专项资金资助项目(CHD2010JC046);陕西省道路交通智能检测与装备工程技术研究中心开放基金资助项目;长安大学基础研究支持技术专项基金资助项目
0 引 言
仪表作为汽车整个系统中十分重要的部分,是提高汽车综合性能的重要方面之一。

随着计算机软硬件技术、总线技术、电子技术等的快速发展,控制系统臃肿、接线布线复杂、占用空间大的传统电磁机械仪表渐渐被淘汰,虚拟仪表正以传统机械仪表无法比拟的速度迅猛
发展[
1]。

目前虚拟仪表通常包括纯数字仪表和虚拟仪表盘仪表2种:纯数字仪表成本较低,但功能和界面比较简单,满足不了一般驾驶员的需求;而现有的虚拟仪表盘仪表虽然功能和界面比较丰富,但又存在着开发成本高、
可移植性和可重绘性差、可扩展性不足等缺点,不利于大范围的推广与应用[
2-
3]。

针对传统仪表和现有仪表存在的不足,本文提出了
一种新型的车载虚拟仪表设计方案,
采用ARM处理器S3C6410为核心的硬件平台和以嵌入式Linux系统为
核心的软件平台,
并在此基础上采用开放源代码的图形界面库QT开发仪表终端应用程序。

该虚拟仪表可读性好,读数精度高,在可移植性、可维护性和成本方面都得到了良好的改善,具有较大的科研价值和商业使用价值。

1 系统总体设计
本文所介绍的车载虚拟仪表的基本设计思想是将汽车上安装的各种传感器采集到的数据进行智能化的处理,然后在运行于嵌入式Linux系统的使用QT设计的虚拟仪表盘上进行显示,以便于监测汽车各系统的工作状况,如剩余油量、当前车速、行驶里程等,并在某状态出现异常或存在危险时向驾驶员提示报警。

如图1所示,本车载虚拟仪表系统的设计总体由3个部分组成:
(1)信号采集:对汽车上安装的的各种传感器采集的速度、剩余油量等汽车状态信息,经过处理转换后,将其转换为计算机可以识别的数字量;
(2
)数据处理:将“信号采集”过程传输来的数据进
行必要的处理,将有用的数据保存,以便于显示和报警,本过程主要由嵌入式处理器完成;
(3)人机交互:将“数据处理”过程处理完成的数据,在使用QT设计的虚拟仪表盘上动态显示,主要显示内容有:当前速度、燃油箱的存油量、时间日期、行驶里程、报警灯等;在某项状态出现异常时,通过报警模块向驾驶员提示报警。

图1 虚拟仪表系统结构框图
2 虚拟仪表硬件设计
虚拟仪表的硬件结构图如图2所示。

虚拟仪表的核心处理器采用ARM1176JZF-S核的S3C6410芯片,其主频最高可达到667MHz,内部继承了强大的多媒体处理单元,带有3D图形硬件加速器,并支持2D图形图像的平滑缩放等操作,有利于为用户提供高灵敏度的汽车状态动态显示;外接256MB SDRAM和2GBNANDFLASH;串口连接信号转换处理模块,转换处理模块内部集成CAN-RS232转换器及24位的A/D转换器LTC2414,接收相关传感器采集的各种汽车状态信号,并经过处理后,将处理完成的数据上传至处理器;外接LCD模块采用8寸TFT液晶显示屏,处理器内部集成的LCD控制器信号线经过驱动电路后即可连接LCD模块,为虚拟仪表显示提供了硬件平台;外接由语音芯片组成的报警模块,在必要的时候可以由处理器驱动报警模块以语音的形式向驾驶员提示报警。

图2 虚拟仪表的硬件结构图
3 虚拟仪表软件设计
本系统采用嵌入式Linux作为操作系统,在Linux平台下编写虚拟仪表的驱动程序和应用程序,采用QT/embedded设计虚拟仪表软面板。

应用程序的主要功能有,当接收到各个经转换处理的传感器采集到的信号后,将其有用的数据提取并加以存储,然后调用仪表显示程序,将需要显示的内容显示到不同的虚拟仪表盘中,同时并行判断各项参数是否正常,若出现异常则调用语音报警程序和显示程序提示报警。

虚拟仪表软件结构图如图3所示。

虚拟仪表软件开发主要有2个内容:开发环境的搭建、虚拟仪表应用程序的设计[4]。

图3 虚拟仪表的软件结构图
3.1 开发环境的搭建
为了开发满足功能的应用程序,本文采用的软件开发环境是Vmware WorkStation 7虚拟机和Fedora 13操作系统,在此环境中安装交叉编译器ARM-linux-gcc 4.5.1,用来完成包含相关驱动程序的虚拟仪表系统内核、QT库和应用程序的编译;编译安装QT/Embedded库,用来支持虚拟仪表人机交互界面程序的开发并生成虚拟仪表系统中需要的QT库文件;编译Tslib触摸屏库,为虚拟仪表系统添加触摸屏支持;在Fedora13系统中安装QT Creator软件,用于完成虚拟仪表系统应用程序的开发;移植嵌入式设备的系统引导程序U-boot;编写硬件平台相关驱动[5],然后裁剪编译Linux2.6.10内核并在其中加载已编译的相关驱动[6];制作硬件平台需要的根文件系统,在其中移植已配置、编译过的tslib库和QT/Embedded库[7]。

3.2 应用程序开发
本虚拟仪表系统的的应用程序基于QT/Embed-ded平台,使用QT的轻量级集成开发环境QT Creator完成开发,最后在已搭建的开发环境中编译生成可执行二进制文件,并将其移植到硬件平台中的文件系统中进行测试。

虚拟仪表系统应用程序的主要工作流程如图4所示,在系统上电后,应用程序开始运行,要实现汽车虚拟仪表系统的功能,应用程序需要完成虚拟仪表面板和后台处理程序的开发:
3.2.1 虚拟仪表面板的绘制
虚拟仪表面板主要将汽车的一些基本状态在LCD上通过表盘和数字直观、动态的显示出来,本设计中采用速度、油量、电池电量、时间日期、安全带、安全气囊、
2现代电子技术2012年第35卷
行驶里程等状态。

为了提高本虚拟仪表的可扩展性和可维护性,在本设计中,为每种具体的虚拟仪表对象定义一个抽象类。

下面即以仪表盘类(QMeter)为例介绍本系统中虚拟仪器面板的绘制。

图4 系统软件工作流程图
在需要显示的各种状态中,速度和油量通常以仪表盘形式显示,虚拟仪表模块中的虚拟仪表盘采用QT的二维图形引擎的基础类QPainter开发。

QPainter具有丰富的图形图像绘制函数,并支持反走样、渐变填充、像素混合、线性变换等特性,利用这些函数完成仪表盘的绘制[8-9]。

QMeter类的定义如下:
Class QMeter:public QWidget
{Q_OBJECT
public:
QMeter(QWidget*parent=0);
double value()const{return m_value};
//调用此函数时,将返回仪表盘要显示的实际值m_value…
signals:
void errorSignal(int);//发出错误警告的信号public slots:
void setValue(double);
//设置仪表盘显示的数值,用此函数实现仪表盘的动态显示void setMinValue(double);
//设置仪表盘指示数值得最小值,定义这类槽函数,
实现在原有基本框架下对仪表盘的快速重绘protected:
void paintEvent(QPiantEvent*event);
//执行所有的绘制函数,实现仪表盘的绘制void drawCrown(QPiantEvent*event);//绘制表盘边界void drawTicks(QPiantEvent*event);//绘制指针


3.2.2 后台处理程序
后台处理程序主要将系统下层采集的数据进行分析处理,将有用的数据传送至虚拟仪表面板显示,实现虚拟仪表的动态显示,同时以多线程的方式不断检测汽车各项状态,当某项状态出现异常或存在危险时驱动LCD和语音芯片向驾驶员报警[10],其中异常状态有超速、存油量过低、电池电量过低等。

下面以报警子程序为例讲解后台处理子程序。

报警子程序在后台处理程序中新建一个线程,通过多线程的方式以轮询的方式查询各个传感器的状态,当发现某个状态存在危险时,驱动语音芯片发出相应的报警信息。

其定义如下:
class Alarm:public QThread

Q_OBJECT
public:
protected:
void run();//开机即开始以轮询的方式检测各个传感器的
状态signals:
void sendData();//若某状态存在危险,即发出相应形式的信号,以信号与槽机制通知主程序立即更新lcd显示,
并驱动语音芯片报警。

QT特有的信号与槽(signal/slots)机制实现方式如下:
connect(m_thread,SIGNAL(sendData()),this,SLOT(Deal()));
通过调用QObject对象的connect函数,将报警线程的sendData信号与主线程的槽函数Deal()关联,当报警侦听线程发射信号时,主线程槽函数及时被调用,驱动报警。

4 应用程序示例
将裁剪、编译过的内核与制作的带QT库的文件系统烧写到开发板。

在开发环境内交叉编译编写的应用程序,得到可执行二进制文件,将此文件移植到开发板,即可实现应用程序的发布。

重新开机,运行应用程序即显示虚拟仪表界面,如图5所示。

通过汽车上的各种传感器采集数据,通过控制器和高速CAN总线传送到S3C6410硬件平台解析,应用程序得到解析后的数据后,即可动态的显示当前车辆的各种状态及报警情况。

5 结 语
本文设计的汽车虚拟仪表,具有优良的跨平台性能;该设计方案使得仪表信息量增大,操作简单,易于维护,界面友好;采用开放源码设计,使得本系统开发成本降低;使用双缓冲技术消除了仪表显示页面的闪烁;采用多线程技术,使处理、显示与报警同时进行,提高了系

第6期王润民,等:基于嵌入式Linux与QT的汽车虚拟仪表设计
统的实时性与灵敏度;将具体的虚拟仪表对象定义为抽象类,增强了虚拟仪表的扩展性。

经实验测试,本虚拟仪表系统的所有功能模块均能正常运行,该系统的应用将对降低汽车的成本,缩短汽车仪表系统的研发周期,
提供高友好度的人机界面具有重要的意义
图5 基于嵌入式Linux与QT的汽车虚拟仪表主界面
参 考 文 献
[1]陈丽,陈焱焱.基于VC++6.0的虚拟汽车数字仪表盘的设
计[J].电脑开发与应用,2009,22(8):29-
31.[2
]涂天佳,王见,秦树人.跨平台的虚拟仪器开发研究与实现[J].中国测试,2010,36(5):55-
58.[3]程兴亚.基于嵌入式系统的虚拟仪器设计[J].
微计算机信息,2004,12(20):63-
65.[4]胡志文,张崎.基于嵌入式Linux的自助点菜终端设计[J].
现代电子技术,2011,34(4):14-
16.[5]CORBET J,RUBINI 
A,KROAH-HARTMAN G.Linux设备驱动程序[M].北京:中国电力出版社,2
005.[6]BOVET P D,CESATI 
M.深入理解Linux内核[M].北京:中国电力出版社,2007.
[7]韦东山.嵌入式Linux应用开发完全手册[M].
北京:人民邮电出版社,2008.
[8]BLANCHETTE 
Jasmin,SUMMERFIELD Mark.C++GUIQT4编程[M].北京:电子工业出版社,2
008.[9]蔡志明,卢传富,李立夏.精通QT4编程[M].
北京:电子工业出版社,2008.
[10]李青松,周晓光,周慧玲.基于QT的工程机械监控和诊断
系统的设计与实现[J].计算机与信息技术,2011,13(12):3-
5.[11]石春虎,曲红星,陈雷.直升机虚拟仪表DLL设计与实现
[J].电子科技,2011(5):104-
107.[12
]于海磊,陈锋,郑勤生,等.低温推进剂液位监测系统设计[J].火箭推进,2010,36(3):54-
57.作者简介:王润民 男,1
989年出生,硕士。

主要研究方向为嵌入式系统及其应用。

赵祥模 男,1966年出生,博士,教授,博士生导师。

主要研究方向为分布式计算机网络测控技术及应用。

惠 飞 男,1982年出生,博士,讲师。

主要研究方向为车辆信号的采集与处理、小波分析的理论及应用。

杨 澜 女,1
985年出生,博士。

主要研究方向为智能交通技术。

史 昕 男,1987年出生,
博士。

主要研究方向为无线传感器网络及其应用檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪殏


殏。

中国科技核心期刊《现代电子技术》征稿启事
主要栏目有:
军事通信,无线通信,通信设备,信息安全,测控技术,数控技术,自动化技术,工控技术,汽车电子,智能交通,新型显示技术,电子技术。

嵌入式技术,人工智能与仿真,软件技术,总线与网络,图形图像处理,科学计算及信息处理,航空航天技术,元器件与应用,光电子器件与测试,新型功率器件,电子测量与仪器,集成电路设计,新能源&电源,控制与驱动,电能质量。

刊登的领域:
《现代电子技术》
(半月刊)以电子技术为主体,探讨和报道信息产业及电子行业中新技术,新器件,新应用的学术论文及成果;提供国内外最新的电子技术发展动态及产品市场信息;为企业的新产
品,新技术,新成果在产业及行业内的推广架起一座金桥。

投稿要求:
来稿务必论点明确,文字精练,数据可靠,每篇论文(含图、表)一般不超过6 000字,必须包括(按顺序):题目、作者姓名、作者单位及邮政编码、中文摘要(目的、方法、结果、结论四要素齐全)
、关键词(4~8个)
、中国图书资料分类号(简称中图分类号)
、文献标识码、英文信息(题名、作者姓名、单位、摘要和关键词)、正文、参考文献(不少于6个)。

文中图、表只附最必要的(一般不超过6幅)。

插图务必清晰,请用计算机软件(Word或Visio)
绘图(矢量图或高点阵图)。


现代电子技术
2012年第35卷。

相关文档
最新文档