基于Labview汽车仪表面板Word文档下载推荐.docx
- 文档编号:18105611
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:25
- 大小:527.52KB
基于Labview汽车仪表面板Word文档下载推荐.docx
《基于Labview汽车仪表面板Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于Labview汽车仪表面板Word文档下载推荐.docx(25页珍藏版)》请在冰豆网上搜索。
3.6左右转向灯4
3.7时间4
4车辆虚拟仪表系统4
4.1虚拟仪表系统的优势4
4.2虚拟仪表系统的实现步骤5
4.2.1信号采集与处理5
4.2.2仪表盘输出5
5系统软件实现方法5
5.1LabVIEW软件简介5
5.2界面模块及各功能模块程序6
5.2.1界面模块6
5.2.2功能测试模块7
5.3LabVIEW串口通信11
5.3.1VISA串行通信基本功能模块介绍11
5.3.2VISA设计方法14
6单片机程序设计15
6.1单片机工作流程15
6.2数据采集程序的实现16
6.3单片机程序编写18
7结束语20
参考文献20
附录MC68HC08系列单片机系统结构图22
致谢23
基于Labview汽车仪表面板的研究
摘要:
针对汽车仪表发展的新趋势,本文对国内汽车仪表行业的现状和发展远景进行了概述,针对性的研究了基于LabVIEW技术和单片机技术而建立虚拟汽车仪表系统的构成,并且系统的给出了一种可行性方案,分别从LabVIEW软件实现方法、单片机程序实现方法和软、硬件的通信三方面进行了阐述。
本文设计出来的汽车虚拟仪表系统可以实现日期/时间、总里程、当前速度、转速、温度、油箱存油量等信息的显示。
关键词:
LabVIEW单片机汽车仪表盘虚拟仪器
Abstract:
Inviewofthenewdevelopmenttendencyofautomobileinstrument,thisarticlesummarizesthesituationandvistaofautodashboardindustryinourcountry.HaveastudyontheconstitutionofvirtualautomobileinstrumentinformationsystembasedonPCmachineandtheLabVIEWtechnologyandproposeafeasibilityplan.RespectivelyelaboratethemethodoftherealizationofLabVIEWdesign,singlechipprogramandthecommunicatesoftwareandhardware.Automobileinstrumentdesignedinthisarticlecandemonstratethecurrenttime,totalmiles,speed,oilconsumptionandtemperatureandsoon.
Keywords:
LabVIEW;
Singlechip;
Cardashboard;
virtualinstrument
1引言
汽车仪表是汽车与驾驶员进行信息交流的窗口,也是汽车高尖技术的主要部分,各国一直在努力开发汽车仪表技术,并不断取得新的进展。
汽车仪表正逐步向数字化和智能化方向发展,用数字化的虚拟仪表取代我国现阶段普遍采用的电器式或电子式仪表已成为实现车辆自动化的一个重要课题。
利用虚拟仪器技术模拟汽车仪表盘,设计综合数据采集、信号分析、仪器面板等多项内容的虚拟汽车仪表盘。
利用单片机自身产生转速、耗油、速度等模拟和数字信号源,然后再进行模拟和数字信号的采集和分析,通过建立转换函数模型在虚拟仪表盘上显示发动机转速、汽车车速、油耗、温度及转向灯等信息[1]。
利用虚拟仪器技术模拟汽车仪表盘,不仅可以完成先进汽车仪表盘的功能,而且免去汽车机械及电子器件,降低成本,提高可研性,在计算机测控技术、汽车电子技术等课程的教学及开放实验中具有广泛的实用价值。
2研究的目的、意义以及主要内容
2.1研究的目的和意义
我国汽车仪表也经历了第一代机械式仪表,第二代电气式仪表,第三代模拟电路电子式仪表,现在正在向第四代全数字汽车仪表迈进[2]。
然而随着电子控制系统单元(ECU)在汽车上广泛应用,汽车电子化程度越来越高。
电控系统的增加虽然提高了汽车的动力性、经济性和舒适性,但随之增加的复杂电路,必然导致车身布线庞大而且复杂,安装空间短缺。
为了提高电控单元信息利用率,要求大量的数据信息能在不同的电子单元间共享,汽车综合控制系统中大量的控制信号也需要实时交换,不同功能电子控制系统单元间的数据通信变得越来越重要。
因此对电子控制系统单元的设计提出了越来越高的要求,不仅要求通信网络应具有通信速率高、准确、可靠性高,在控制模块上也应具有控制实效性高、空间小等优点[2]。
目前国内汽车仪表行业在整体上仍滞后于整车的发展,“散、乱、差”的状况尚未改变,与国外相比有很大的差距,表现在产品技术水平低,造型单调,产品质量可靠性和耐久性差,制造工艺落后,产品检测不完善,数字化程度低等方面[3]。
当今世界由于汽车排放、节能、安全和舒适性等使用性能不断提高,使得汽车电子控制程度也越来越高。
汽车电子控制装置必须迅速、准确地处理各种信息,并通过电子仪表显示出来,使驾驶员及时了解并掌握汽车的运行状态,妥善处理各种情况。
现在,汽车的故障诊断、全球导航和定位系统等大量复杂的信息服务系统已开始大量装备到汽车上,汽车电子仪表作为信息显示终端能够完成这些任务。
汽车电子仪表显示装置不仅能提供大量复杂的信息服务,而且还有精度高和高可靠性、一表多用、外形设计美观、自由度大、满足小型轻量化要求等特点,因此电子仪表显示装置已成为现代汽车的发展新潮流,具有非常广阔的发展空
间[3]。
2.2研究的主要内容
本课题研究的主要内容分为三部分。
第一部分为软件设计,根据系统的整体要求,系统的软件设计主要由主界面模块和各功能模块所组成的。
第二部分为串口通信设计,以保证上位机和下位机的数据通信过程。
第三部分为单片机的程序设计,在单片机的设计中主要考虑到性能、工作效率以及价格等各个方面。
3汽车仪表盘系统功能分析
汽车仪表是用以监测汽车各系统工作状况的装置,如当前车速、里程显示、油量消耗、油耗警告等。
驾驶员能通过汽车仪表随时掌握汽车各部件的工作状态,为正确使用和维修发动机提供依据和指南。
汽车仪表盘主要有以下几大功能:
3.1车速表
车速表是用来指示汽车车速的装置。
其单位是公里/小时(表面上标km/h)。
表上的刻度线表示速度,指针指到不同的刻度线表示不同的速度。
3.2里程表
总里程表是记录汽车累计行驶里程数的装置,最小单位为米。
3.3燃油表
用来指示燃油箱内的存油量,其单位是升(L),表上的刻度线表示存油量,指针指到不同的刻度线表示不同的存油量并在表盘上显示相应的数据。
若启动引擎后,指针指向与库存油量相对应的位置,否则指针复零。
3.4转速表
转速表是用来指示发动机转速的装置,转速表单位是r/min,即显示发动机每分钟转多少转。
为选择正确的换挡时机提供参考,使发动机保持额定转速,以减少发动机的磨损并减少油耗。
3.5温度表
汽车冷却系统的功能是使发动机在所有工况下都保持在适当的温度范围内。
冷却系统既要防止发动机过热,也要防止冬季发动机过冷,温度表的作用就是为驾驶员及时的提供冷却液温度指标,反映发动机的工况信息。
3.6左右转向灯
它有前、后、侧转向信号灯之分,一般位于车辆的四角。
汽车转弯时,发出明暗交替的闪光信号,以表示汽车向左或向右转向行驶。
3.7时间
用来显示当前时间。
4车辆虚拟仪表系统
4.1虚拟仪表系统的优势
随着汽车需要显示的信息的增加,用传统仪表的显示方法显示,车载的仪表数目将会不断增多,使车辆仪表板显得很拥挤,也会加大驾驶员的操作难度,分散驾驶员的注意力。
用虚拟仪器技术构建的车载虚拟数字式仪表,将这些问题迎刃而解。
它将所有的信息显示集合在一个屏幕上,并以分界面的方法显示,这样将使驾驶员查看信息非常便利,取消众多的仪表,也使车内空间变得更加宽敞、舒适和美观[4]。
4.2虚拟仪表系统的实现步骤
在汽车智能数字仪表的开发过程中,数字仪表所需要采集的信息量比较多,各种车型的
信息参数又差别较大,这些问题的存在给仪表的实车测试和参数标定带来了困难。
为了在开发过程中能够快速有效的测试系统的各项功能,提高系统开发效率,我们设计利用单片机采集产生汽车上的各种参数信息,快速的对设计仪表进行全面的测试,节约时间和成本[4]。
对此设计了两个步骤,包括信号采集与处理、仪表盘输出。
4.2.1信号采集与处理
将单片机实际采集到的数据用不同通道经过A/D转换进入计算机,作为实验的源参量,并计算得汽车仪表盘上显示的相关参数[5]。
4.2.2仪表盘输出
将计算后的转速、速度、油耗、温度、里程等参数通过虚拟仪表盘输出。
5系统软件实现方法
5.1LabVIEW软件简介
本设计采用LabVIEW软件进行开发设计。
LabVIEW是美国NI公司的一种基于G语言的虚拟仪器软件开发工具。
它的显著特点是:
采用简单易学的图形化编程,提供众多的设备驱动程序和可供用户直接调用且功能强大的函数库和Windows动态链接库函数,实现多线程编程等高级功能。
并提供灵活的程序调试手段,既可以设置断点又可以设置探针,在程序运行中观察数据流的变化[6]。
LabvIEW编写的程序叫虚拟仪器程序,包括软面板设计和流程图设计2部分。
软面板代替常规仪器的控制面板,一般由开关、旋钮、表头、显示器和其他部件组成。
仪器流程图的设计,是根据仪器功能的要求,利用虚拟仪器开发平台提供的子模板,确定程序的流程图、主要处理算法和所实现的技术方法[5-6]。
流程图与每个仪器的前面板对应,用户能够通过前面板,用鼠标或控件操作仪器。
LabVIEW具有功能强大的函数模块库,特别适用于测试和控制系统的开发。
结合NI的硬件模块,能够方便的进行采集和分析相关测试数据。
考虑到仪表整体功能测试和模块功能测试的需要,整个系统主要包括界面模块和各个功能测试模块[7]。
根据信号类型将仪表功能测试分为:
车速表测试模块、发动机转速表测试模块、燃油表测试模块、水温表测试模块等主要功能模块。
5.2界面模块及各功能模块程序
5.2.1界面模块
通过该界面实现车速表、转速表、水温表、燃油表、里程指示以及各种报警信号等信息
显示。
经过初步设想之后,设计出以下三种界面(图5-1、5-2、5-3所示)。
图5-1
图5-2
图5-3
图5-1所示方案界面过于简单,并且各种显示模块过于集中,整体感觉单调,缺少美感。
图5-2所示方案布局又过于散乱,排列各种显示模块所需的空间较大,在实践中会大大增加成本。
经过综合考虑,只有图5-3所示的方案既兼顾到美观、易读的使用方便性又满足了降低实际生产成本的要求。
所以最终决定采用如图5-3所示的界面设计。
5.2.2功能测试模块
(1)车速表模块
车速表的测试需要预先了解设定目标车型的特征参数,如车辆特征系数、车速传感器的传感系数等,然后通过数据通信卡(CAN总线信号)将特征参数下载到被测仪表,按照测试要求产生脉冲信号。
信号的幅值、频率可以通过手动/自动进行调整,车速信号具备超速报警提示功能,根据设定的超速门限值,高于该门限值时,通过主界面前面板上的超速报警灯闪烁来提示。
测试过程也可以手动/自动进行,测试结果存档以备查询[7-9]。
根据实际采集到的数据,将车速表指示范围设定为0~300km/h,并设置当速度超过250km/h时发出超速报警,将由单片机传来的数据用函数公式转换成相应的数值显示在速度表中。
车速表前面板设计如图5-4所示,车速表程序框图如图5-5所示。
图5-4车速表前面板
图5-5车速表程序框图
(2)发动机转速表模块
发动机转速表测试模块类似于车速表测试模块,区别在于它的特征参数不同。
根据特定车型的情况,通过数据通信卡(CAN总线信号)将发动机转速比下载到被测仪表,然后对其进行测试[7]。
根据实际采集到的数据将转速表指示范围设定在0~8000r/min,并设置当速度超过6000r/min时发出转速过高报警,将由单片机传来的数据用函数公式转换成相应的数值显示在转速表中。
发动机转速表前面板设计如图5-6所示,发动机转速表部分程序框图如图5-7所示。
图5-6发动机转速表前面板
图5-7转速表部分程序框图
(3)燃油表的模块
燃油表的测试需要预先设定目标车型的燃油测试范围以及燃油门限报警值,通过数据通信卡(CAN总线信号)将参数值下载到被测仪表,然后按照测试要求开始测试[10]。
根据设定的燃油门限值,低于该门限值时,通过主界面前面板上的燃油报警灯闪烁提示。
测试过程可以手动/自动进行。
根据实际情况将燃油表表指示范围设定在0~1,表示不同的油位,并设置当油位低于0.2
是发出燃油不足报警,将由单片机传来的数据用函数公式转换成相应的数值显示在油表中。
燃油表前面板如图5-8所示,燃油表部分程序框图如图5-9所示。
图5-8燃油表前面板
图5-9燃油表部分程序框图
(4)温度表的模块
根据实际车型行驶过程中的温度变化采集需要的数据,通过单片机模拟该数据发送到测试仪表。
将温度表指示范围设定在50~130℃,并设置当温度超过120℃或小于50℃时发出温度异常报警,将由单片机传来的数据用函数公式转换成相应的数值显示在水温表中。
温度表前面板设计如图5-10所示,温度表部分程序框图如图5-11所示。
图5-10温度表前面板
图5-11温度表部分程序框图
(5)时间显示模块
时间显示模块用来显示当前时间,方便驾驶员读取。
直接采集PC机的系统时间并显示。
时间显示程序部分程序框图如图5-12所示。
图5-12时间显示程序部分程序框图
(6)左右转向灯模块
左右转向灯模块如图5-13所示。
图5-13左右转向灯模块
5.3LabVIEW串口通信
程序设计主要由两部分组成:
上位机程序设计和下位机程序设计,而在编写双方通信程序之前,必须先定义好双方的通信协议,采用相应的数据传输方法,这样才能保证数据的可靠性。
串行通信是一种常用的数据传输方法,虽然它的传输速度慢,但由于它占用的通信线路少、成本低、容易实现等优点,在数据通信方式上仍占有重要地位。
目前,串口通信程序的开发,在Windows操作系统下一般用VB、VC、VFDelphi等许多高级语言编写。
当用VB、VC、VF,开发串行通信程序时,开发人员不得不面对非常烦琐的API函数编程;
用文本语言编串口通信程序较为复杂,花费的时间较长[11]。
所以在主机通信程序设计中,我们采用LabVIEW图形化语言作为编程语言,它把高级语言中的函数封装为图形功能模块,图标间的连线表示各个功能模块之间的数据传递[12]。
编程方式简单、直观、便于使用。
串口通信功能模块包括串口初始化模块、串口读模块以及串口写模块,通过这些模块就可以实现对单片机的控制。
5.3.1VISA串行通信基本功能模块介绍
VISA的调用流程如图5-14所示。
通过对VISA节点的调用,可以方便、快速地实现系统上位机对下位机的实时监控。
打开仪器资源
对仪器进行写操作
对仪器缓存读操作
关闭仪器资源
图5-14VISA仪器控制简单流程
在LabVIEW功能模板的Function>
>
InstrumentI/O>
VISA程序库中包含进行串行通信操作的一些功能模块:
(1)VISAConfigureSerialPort节点
该节点主要用于串口的初始化,在利用计算机控制串口仪器设备时,会经常用到这个节点在进行串行通信前,首先要配置好串口,即先初始化串口,使计算串口的各种参数设计与仪器设备的串口保持一致,这样才能正确的通信。
它的主要参数意义如下:
VISAresourcename:
VISA资源名称,本文指串口号。
baudrate:
波特率,默认为9600。
databits:
一帧信息中的位数,LabVIEW中允许5-8位数据,默认值为8位。
stopbits:
一帧信息中的停止位的位数,可为1位、1位半或2位。
Parity:
奇偶校验设置。
可为无校验、奇校验或偶校验。
flowcontrol:
该参数数据类型为簇,用于串行通讯中的握手方式。
(2)VISARead节点(图5-15所示)
图5-15VISARead节点
V该节点为串口读子VI,为本文中的主要节点,将串口中的数据读出,然后利用LabVIEW的强大数据处理功能对其进行分析处理。
主要参数意义如下:
ISAresourcename:
bytecount:
用于设置所要读的字符数。
由于LabVIEW的串行通讯子V1只允许对字符串的
读写,因此本文中在进行数据处理时,必须要实现字符串与数字之间的正确转换[13]。
此外,若要读入当前串口中的所有字符,则要执行“VISASytesatSerialPort”子VI,用以确定将要读入的确切的字节数,然后将其输出作为VISARead节点的输入即可。
(3)VISAWrite节点(图5-16所示)
图5-16VISAWrite节点
VISAWrite节点的功能是向VISAresourcename所代表的仪器或接口写入信息。
输入参数VISAresourcename是VISAOpen函数所返回的,或者“流过”其他VISA函数的,包含了会话信息的VISA资源名;
writebuffer为字符串类型的写入数据,输出参数dupVISAresourcename为输入参数VISAresourcename的一个备份,可用于后继的VISA函数调用。
整型输出参数returncount返回实际写入数据的字节数[13]。
(4)VISAClose节点(图5-17所示)
图5-17VISAClose节点
主要参数:
本文所用LabVIEW串口通讯程序的波特率为96O0,无奇偶校验,8位数据位,1位停止位,禁止软、硬件握手。
该节点用于将打开的VISA资源关闭,VISAresourcename输入参数为包含会话信息的资源名。
该函数关闭VISA会话,并释放与之关联的所有资源[14]。
(5)VISAOpen节点(图5-18所示)
图5-18VISAOpen节点
该函数功能为打开一个与VISAresourcename所代表仪器资源的会话。
会话是VISAresourcename参数本身隐含携带的仪器访问逻辑标识,可以同时存在对一个VISA资源的多个访问会话。
在调用VISAOpen之前VISAresourcename参数仅仅是一个资源描述字符串,在函数调用之后,输出参数VISAresourcename已经携带了会话信息,可以用于后继的VISA操作。
输入参数为包含会话信息的资源名[15-16]。
当完成VISA资源的搜索后,对于搜索到的VISA资源,可以通过VISAOpen节点打开,建立计算机与这些VISA资源之间的通信管道。
5.3.2VISA设计方法
(1)LabVIEW串口开发过程
在LabVIEW环境中使用串口与在其它开发环境中开发过程类似,基本的流程框图如下:
图5-19
首先需要调用VISAConfigureSerialPort完成串口参数的设置,包括所用串口号、比特率、一帧信息中有效数据的位数、停止位、奇偶校验、数据流量控制等,如下图所示。
图5-20
如果初始化没有问题,就可以使用这个串口进行数据收发。
发送数据使用VISAWrite,接收数据使用VISARead。
如果VISARead要读取的字节数大于缓冲区中的数据字节数,VISARead操作将一直等待,直至Timeout或者缓冲区中的数据字节数达到要求的字节数[16]。
图5-21
图5-22
在某些特殊情况下,需要设置串口接收/发送缓冲区的大小,此时可以使用VISASetI/OBufferSize;
而使用VISAFlushI/OBuffer则可以清空接收与发送缓冲区。
在串口使用结束后,使用VISAClose结束与VISAResourceName指定的串口之间的会话。
(2)VISA属性设置及串口实现
首先完成串口的初始化,在此设置波特率为9600b/s,8位数据位,1位停止位,无奇偶校验;
其次设置Write/Read等相应模块的功能。
由于硬件在整个工作期间,以9600bit/s的速率连续向外发送数据,为了数据处理方便,可以采用LabVIEW8.6中的SerialReadWithTime-out.vi模块,以保证每次从串口缓存中读出等量偶数个数据。
6单片机程序设计
本文中所做的研究需要将实际采集到的汽车各种仪表信息存储到单片机中,由单片机提供数据给上位机进而实现数据的显示,再通过PC机的RS-232串行接口与外部设备进行通信,因此需要实现PC机和单片机之间的通信[17]。
本文将论述在LabVIEW环境下PC机与HC08GP32单片机之间实现串行通信的方案。
6.1单片机工作流程
下位机的程序包括数据采集模块和串口通信的数据传输模块,数据采集模块首先进行初始化,通过单片机控制A/D转换模块数据采集功能,A/D模块将模拟信号转换成数字信号后发出中断,单片机将传输AD模块采集的信号到缓冲区。
串口数据传输模块在串口通信之前,对串口进行初始化,主要包括串口波特率,数据格式,接收中断的设置[18]。
当上位机发送数据给下位机,会引起单片机接收中断,此时进入中断服务程序,单片机接收数据,比较校验和,如果相同,发指令给PC机确认,最后将采集到的数据通过RS-232串行接口传送到PC机[19]。
单片机工作流程图如下:
图6-1
6.2数据采集程序的实现
单片机程序用A/D模块进行采集传感器的值,然后用SCI口将采集的值发给PC机。
(1)A/D转换简介
在过程控制和仪器仪表中,多由计算机进行实时控制及实时数据处理,计算机所加工的信息总是数字量,而被检测的对象却往往是一些连续变化的模拟量(如温度、压力、速度和流量等),因此需要将模拟量转化成为数字量,以便在计算机中进行运算处理,此过程称为模数(A/D)转换[20]。
进行A/D转换,需要了解以下的基本问题:
采样精度
采样
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Labview 汽车 仪表 面板