纯电动车组合仪表的设计吴敦福1,陈剑2,吴玉松31武汉理工大学自动化学院,武汉(430070) 2长安大学信息学院,西安(710062) 3武汉理工大学自动化学院,武汉(430070)Emial :wudunfu@摘要摘要:设计了一种以AT89S52单片机为核心的纯电动车组合仪表,它可以显示汽车的总里程、行驶总时间、电池电压和剩余电量、电机电流、速度以及各种信号灯。
该系统由硬件和软件两大部分组成,其中硬件电路由电源模块、电压电流采样模块及相应的模拟信号处理模块、驱动模块和显示部分等部分组成。
本文介绍了硬件的工作原理和功能以及软件的设计思想和流程。
该系统构成简单,成本低,测量精度高。
关键字关键字:组合仪表;步进电机;硬件;软件 1、引言引言汽车作为当今社会最重要的交通运输工具之一,对国民经济的发展作出了重大的贡献。
但随着车辆的增加,公路上汽车行驶的速度不断提高,行车密度增大,道路交通安全形式不容乐观,道路交通事故居高不下,事故起数和伤亡人数逐年上升,给人们生命财产造成了相当巨大的损失,保障车辆的运行安全,就成为关注的热点。
汽车电子安全技术的出现为行车安全问题的解决带来了曙光。
随着计算机技术、计算机网络、电子技术、传感器技术的飞速发展,汽车电子技术日趋成熟完善,在汽车上已得到广泛的应用与发展。
汽车仪表盘作为汽车上最重要的信息终端,为驾驶员提供汽车行驶和汽车内各部分工作状态的信息。
随着汽车电子技术的发展,汽车仪表盘将成为汽车的电子控制信息中心,能提供的信息将越来越多,功能将越来越强大,是汽车电子技术的一个研究重点。
此仪表是结合导师的实际项目设计的,系统采用LCD和LED显示及第四代数字式步进电机指针式仪表的多种信息呈现方式。
步进电机式仪表在欧美应用已相当普及, 其指示精度远远高于国家标准,与传统模拟电路电子式仪表相比具有显著优点,如响应速度快、无抖动,指示范围分度均匀等。
此仪表具有可靠性高、通用性强等特点。
2、仪表仪表功能描述功能描述功能描述设计一个适用性强的纯电动车仪表,主要实现对车子的速度的实时显示,电池的充放电时的电压,电动机工作时的电流,电量和里程的显示及各种信号灯。
仪表上的各个量的显示方式为:10段LED发光条电量表;液晶小时计;步进电机指针电流表;步进电机指针电压表;步进电机指针表或液晶屏组合显示车速、里程;8路LED指示灯用于前进、后退、左转、右转、制动、大灯指示。
3、仪表的硬件架构设计仪表的硬件架构设计汽车仪表系统由各种信号采集模块、处理与控制模块、驱动电路、显示模块和电源模块组成。
其中采集模块负责采集电动车行驶时所关心的各工作状态信息参数,即仪表要显示的中国科技论文在线信息量(如:电池电压、电机电流、车速、各种信号灯的开关状态)。
处理与控制模块主要负责处理经过整形的脉冲信号(如:车速、LED指示灯信号)和各种模拟信号(如:电压、电流)。
利用A/D转换芯片TLC1549完成对模拟信号的转换,然后由主控芯片AT89S52把各量送入步进电机和10段LED的驱动模块。
驱动电路主要完成驱动步进电机分别显示电压、电流、车速及驱动驱动10段LED显示电量。
显示模块主要负责对各个采集的信号的显示。
电源模块负责提供电动车仪表的电能。
本文仪表以AT89S52为核心,通过各种传感器对车速、电压、电流参数进行了实时测量,并通过相应的脉冲信号,模拟信号,开关量信号处理电路后进入AT89S52,经过计算后,驱动LCD 和LED及步进电机,从而实现相关显示信息实时显示。
系统硬件总体结构如图1所示:图2 最小系统框图和电源模块图3.2 3.2 电压电流采样电路及其处理电压电流采样电路及其处理电压电流采样电路及其处理模块模块模块(1) 电路图的简要说明电压电流采样电路及其处理模块如图3所示。
由此电路就可得到相应大小的电压和电流信号,这两路信号从多路模拟开关芯片CD4052输入,通过对此芯片的控制在输出端可得到电压或电流的模拟值。
然后其中的一路信号就可以从A/D芯片TLC1549的A_IN端输入,再由软件控制把模拟值转成相对应大小数字信号[6]。
电模模模模模电电图3 电压电流采样电路及其处理电路(2) TLC1549的工作原理本文所用的A/D转换芯片TLC1549是美国德州仪器公司生产的10位模数转换器。
它采用CMOS工艺,具有内在的采样和保持,采用差分基准电压高阻输入,抗干扰,可按比例量程校准转换范围,总不可调整误差达到±1LSB Max(4.8mV)等特点。
在芯片选择(CS)无效情况下,I/O CLOCK 最初被禁止且DATA OUT 处于高阻状态。
当串行接口把CS拉至有效时,转换时序开始允许I/O CLOCK 工作并使DATA OUT 脱离高阻状态。
串行接口然后把I/O CLOCK 序列提供给I/O CLOCK 并从DATA OUT 接收前次转换结果。
I/O CLOCK 从主机串行接口接收长度在10和16个时钟之间的输入序列。
开始10个I/O 时钟提供采样模拟输入的控制时序。
图4 A/D转换的时序图在CS的下降沿,前次转换的MSB出现在DATA OUT端。
10位数据通过DATA OUT 被发送到主机串行接口。
为了开始转换,最少需要10个时钟脉冲。
如果I/O CLOCK 传送大于10个时钟长度,那么在的10个时钟的下降沿,内部逻辑把DATA OUT 拉至低电平以确保其余位的值为零。
在正常进行的转换周期内,规定时间内CS端高电平至低电平的跳变可终止该周期,器件返回初始状态(输出数据寄存器的内容保持为前次转换结果)。
由于可能破坏输出数据,所以在接近转换完成时要小心防止CS被拉至低电平。
时序图如图4。
3.3 3.3 各显示的驱动各显示的驱动各显示的驱动电路电路电路3.3.1 VID29--XXP 系列步进电机下面简单介绍一下本系统中用的步进电机。
系统中用的是VID29-05型号的步进电机,VID29系列步进电机是一种精密的微型步进电机,内置减速比180/1的齿轮系,主要应用于车辆的仪表指示盘,也可以用于其它仪器仪表装置中,将数字信号直接准确地转为模拟的显示输出。
(1)功能原理VID29-XX / VID29-XXP步进电机是两相步进电机经三级齿轮减速转动输出的。
电机的工作原理如图5所示[1]:图5 电机的工作原理图(2)驱动和控制此系列步进电机有两种控制方式一是分步驱动二是微步驱动,本设计采用了分布驱动模式而且两个线圈有一端是连在一起的。
因此,只要在三端加上不同时序的脉冲就可以控制电机了。
在分步模式下,每个脉冲可以驱动电机转子转动60。
(即输出轴转动1/3度)。
电机转动的方向取决于施加在电机左右线圈上的周期性脉冲序列的相位差。
如图5所示,左线圈电压UL相位超前于右线圈电压UR时(相位差为π/3),VID29-05P电机输出轴将顺时针旋转,反之就可以反转。
3.3.2 驱动电路本设计系统中各显示有不同的驱动电路如图6所示。
由于电压、电流、速度都是步进电机指针显示形式,都是一样的电路,在此只是画出了电流的驱动电路。
此驱动电路比较简单,采用的是乙类互补对称电路。
分别有上下NPN型管和PNP型管,两管的基极和发射极相互连接在一起,脉冲从基极输入,从射极输出。
驱动8个LED的发光二极管电路也很简单,信号进来通过光耦隔了来控制指示灯的亮灭。
图6中给出了刹车油的电路,其它七路灯的电路和次一样不再累赘了。
a b c d电电电电电电电电电电电74LS145电电10电LED刹刹刹模模刹电电图6 各显示的驱动电路图对电量显示的10段LED采用的是74LS145驱动芯片。
该芯片的主要特点:这是一个4-10译码器,输出驱动电流大,功耗低等。
表1是74LS145的功能逻辑图。
表1 74LS145逻辑图由表1知3、2、1、是单片机给74LS145芯片信号的输入引脚,0~9是芯片74LS145给10段LED信号的输出引脚。
由3P 2P 1P 0P 所组成的BCD码正好是需要显示电量的大小。
3.4 3.4 显示电路显示电路显示电路步进电机指针显示及LED显示在上节已经谈过了,在此就不在累赘了。
这节主要说明一下用LCD显示里程和小时计。
本系统采用基于SPI通信方式的12816带中文字库的串行液晶。
其主要特点是占用控制器端口资源较少,且能实现所需数据的显示。
其连接图如图7所示:图7 12816K液晶连接图4、 系统软件设计系统软件设计整个系统由AT89S52单片机控制完成,程序有主程序和子程序。
主程序显示整个系统的算法流程。
子程序有里程显示子程序、速度显示子程序、电压电流显示子程序、电量显示子程序、写Flash子程序程序等。
程序的设计是按照软件工程的规则和步骤实现的,采用结构化、模块化的程序设计方法,对整体功能进行逐步求精的划分,确定了主从程序的模块组成,以及这些模块之间的关系,明确了每个模块的功能、处理过程、数据流[5]。
4.1 4.1 系统总体软件设计系统总体软件设计系统总体软件设计单片机上电复位后要做一些初始化工作,如对定时/计数器进行设定和初始化,设置中断,液晶LCD的初始化等。
主程序以初始化部分开始,经判断一些标志位进行流程分支实现算法。
流程图见图8所示:本文是基于放电时间电压法计算剩余电量。
基本思想是:由于一个蓄电池的总电量是不变的,则在恒定电流放电的情况下,放电时间固定不变。
根据这一特性,把蓄电池的总电量分为10 段10%~100%,每一段的电量也是固定,在恒定电流的情况下放电时间也是固定不变的。
设计过程中,在电动车使用时在线测量实际情况,同时参照蓄电池的放电曲线,采用单片机对蓄电池端电压和放电时间同时进行测量,然后计算出蓄电池的剩余电量。
具体的实施方法是:将蓄电池充满电对其放电;用标准电量计记录放电过程中蓄电池剩余电量的大小,同时使用电压表和单片机的A/D采集模块记录相应的端电压值和A/D值;放电完毕后获得完整的放电曲线,即剩余电量与蓄电池端电压(也就是对应A/D值)之间的关系。
放电曲线可以由多次测量所得数据,通过工具软件用多项式拟和出来,设计电量计是将曲线信息存入单片机中,以后测量同类蓄电池时,单片机就可以根据在线测到的蓄电池端电压值,查表计算得出剩余电量值。
充电曲线也以相同的方法测得[3]。
4.3 4.3 车速显示车速显示车速显示因为的大小正比于外部输入脉冲的频率,因此本文采用了在一定的刷新时间内对外部脉冲进行计数,然后用现在的计数的冲个数减去上次的脉冲值得到一个差值,根据这个差值与零的关系来判断车速是增大还是减小,同时根据实际轮胎的直径算出步进电机应转的度数[2]。
图10 速度显示流程图4.4 4.4 数据的存储数据的存储数据的存储Flash Flash Flash块块和里程小时计的程小时计的LCD LCD LCD显示块显示块显示块为了保证单片机在掉电时总里程和小时数据不会丢失,所以应该把这些数据保存在AT89S52自身带有掉电时数据不会丢失的Flash存储器中。