APP下载

基于嵌入式Qt的新能源汽车电池监控系统

2016-04-29陈尧杰李璋

物联网技术 2016年4期
关键词:嵌入式

陈尧杰 李璋

摘 要:随着新能源技术的发展,节能环保型汽车对于社会的需求显得尤为重要,为满足社会需求,提高人们对于新能源的追求,文中提出了一种基于ARM平台的嵌入式Qt应用程序的汽车电池监控系统的解决方案。该方案以Linux操作系统为软件平台,以ARM9及其外围电路为硬件基础,在Linux系统上利用Qt Creator软件开发的图形界面系统来实时监控汽车的电池状态,用以帮助人们更好的管理电池。该方案的优点在于利用嵌入式Qt开发软件系统,从而摆脱了PC机体积大、成本高等方面的束缚,便于系统移植和携带。

关键词:嵌入式;Qt;ARM;Linux系统;电池监控系统

中图分类号:TP368 文献标识码:A 文章编号:2095-1302(2016)04-00-03

0 引 言

嵌入式系统以计算机技术为基础,软硬件可裁剪,具有体积小,功耗低,成本低,便于携带等优点并符合高要求的专用计算机系统,它主要以应用为中心。在现代科技日新月异的情况下,社会朝着高度智能化,信息化的方向前进已是必然。在这种情况下,新能源汽车的发展与开发有着巨大的潜力,针对新能源汽车的开发,我们提出了基于嵌入式Qt的新能源汽车电池监控系统的开发。

1 电池监控系统整体设计

目前,嵌入式系统在智能生活领域已成为人们不可分割的一部分。电池与新能源汽车密不可分,对于电池的监控和控制有助于我们更好的延长汽车寿命。该系统以ARM-Linux平台为方案,分为底层硬件部分,Bootloader引导内核,Linux-kernel内核及根文件系统,Qt/Embedded及数据库五部分,系统整体框图如图1所示。其中,图1中的Qt/Embeded在图形界面的设计中采用Qt Creator软件开发应用界面,完成对电池电流,电压容量,温度,充放电时间等重要参数的展示并使用MySQL数据库储存这些数据。

2 系统硬件的设计

电池监控系统的硬件是以ARM平台为基础,选用ARM920T和samsung的mini2440为CPU处理器。其内部晶振输入频率为12 MHz时,其处理器最高输出频率可达532 MHz。开发板带有内存为64 M的SDRAM和128 M的NAND Flash以及NOR Flash。LCD采用STN显示带有触目屏为电阻式类型的3.5英寸的液晶屏。系统支持NAND Flash启动和NOR Flash启动两种启动方式。为了方便,我们一般采用NAND方式启动。对于数据的收集与通信一般采用I2C总线接口进行。其系统硬件设计如图2所示。

3 软件平台的搭建

在PC机下安装VMware 10虚拟机。系统的开发环境需在虚拟机中安装Linux 14.04版本的操作系统。所搭载的交叉编译环境为arm-linux-gcc 4.4.3版本。该编译器可针对ARM平台进行特定的编译。配置tftp方便开发板与Linux系统间的通讯,用来下载和上传开发板与系统之间的资源。软件开发平台为 Qt Creator软件。系统所需的软件和资源包如表1所列。

在实际应用中可以根据自己的需求进行配置。在ubuntu软件中心可以在线下载Qt Creator软件并进行安装,非常方便。至此,系统所需的开发环境基本构建完成,图4所示是整个系统的开发流程。

4 应用程序的开发

应用程序开发分为初始化硬件及电池信息收集,应用层图形界面的设计与数据库的使用两部分。

对于电池信息状态的采集,用C语言开发控制ARM相关寄存器和I2C总线接口,初始化时钟,设置相关中断等,具体的软件流程图如图5所示。开发板上系统后,程序进行一些硬件初始化,配置振荡器,设置时钟源;清中断,使能中断优先级;初始化UART与GPIO端口。当然对于I2C主机初始化是必须的。I2C有硬件I2C和模拟I2C两种选择。我们选用的是硬件I2C,对I2C相关寄存器进行初始化设置。必要的硬件设置完成后开始参数初始化,将电池状态保存到E2PROM中。主程序中的while循环主要用来进行UART数据传输,根据LED灯指示的工作状态对电池进行保护控制,并根据获取的电池状态信息是否满足循环体条件来判断是否进行下一次循环。

硬件系统每隔500 ms完成一次数据采集,数据包括23串电压,4个温度节点,每1 s更新一次SOC值,在点火信号丢失2分钟后,系统自动关机,节省能耗。对于电池信息,I2C通信状态,温度及容量状态都有很好的监视作用,其中系统只带有欠压保护,高温保护等。应用层图形界面的设计主要用到基于C++的Qt库的开发。包括界面布局,接口设置,MySQL数据库的使用。相关函数通过信号与槽机制建立联系等。比如语句QOBJECT::connect(btnButton1,SIGNAL(clicked()),this,SLOT(maxBateryValueslot()));建立了btnButton1按钮与函数maxBateryValueslot()的联系。应用界面通过存储在E2PROM上的当前地址建立联系。这是底层开发完成后预留的与应用层进行通信的接口。应用程序开发完成后还需要移植到开发板上。在Qt Creator软件上使用MySQL数据库时需要用户自己编译数据库驱动。对于数据库驱动编译,首先应下载并安装MySQL数据库,注意安装时选择Custom Install定制安装,然后编译,在编译时注意数据库的lib文件和include头文件。最后再将生成的qsqlmysql4.dll,libqsqlmysql4.a,qsqlmysqld4.dll,libqsqlmysqld4.a这四个文件都复制到数据库驱动插件放置的目录。项目在编译链接通过后会在项目相应的一个release文件夹(如:chen-build-desktop-Qt_5_5_0_Qt-5_5_0_Release文件夹)中,比如.exe文件就在此。然后将此.exe文件通过tftp方法传到开发板的相应目录中。注意在提取应用程序时可能需要将Qt5.5.0的.lib文件(如imports, lib, plugins, qtc-qmldbg, qtc-qmlobserver, translations等文件)存放在开发板的相关目录下。最后在开发板的Linux终端输入相关命令:

#可执行文件名 –qws 即可运行。

这时,系统已基本开发完成。从结果中可以看到,当图6中的Charge State为0时表示此时电池正在充电,图中的各个参数代表当时电池的电池容量,当前温度,充电时间等。图7表示此时电池正在放电,这时Charge State为1。

5 结 语

本文基于嵌入式Qt实现了对能源汽车的电池监控,使其在使用寿命上有了非常大的提高,符合节能减排的原则。应用嵌入式Qt开发操作界面使其更加简洁,这在控制成本方面也起到了一定的作用,非常符合设计需求。

参考文献

[1](英)Neil Matthew,Richard Stones.Linux程序设计[M].北京:人民邮电出版社,2010.

[2]贝尔.深入理解MySQL[M].杨涛,等,译.北京:人民邮电出版社,2010.

[3]韦东山.嵌入式Linux应用开发完全手册[M].北京:人民邮电出版社,2008.

[4] 俞辉,李永,何旭莉,等.嵌入式linux程序设计案例与实验教程[M].北京:机械工业出版社,2011.

[5]蔡志明.精通Qt4编程[M].北京:电子工业出版社,2011.

[6]华清远见嵌入式培训中心.嵌入式Linux应用程序开发(第2版)[M].北京:人民邮电出版社,2009.

[7]谭浩强.C语言程序设计(第2版)[M].北京:清华大学出版社,2009.

[8]杜春雷.ARM体系结构与编程[M].北京:清华大学出版社,2003.

[9](德)Michael Kerrisk.Linux/UNIX系统编程手册(上册) [M].孙剑,许从年,董健,等,译.北京:人民邮电出版社,2014.

[10](德)Michael Kerrisk.Linux/UNIX系统编程手册(下册) [M].孙剑,许从年,董健,等,译.北京:人民邮电出版社,2014.

猜你喜欢

嵌入式
TS系列红外传感器在嵌入式控制系统中的应用
嵌入式系统通信技术的应用
搭建基于Qt的嵌入式开发平台
嵌入式软PLC在电镀生产流程控制系统中的应用
Altera加入嵌入式视觉联盟
倍福 CX8091嵌入式控制器