新闻中心

EEPW首页 > 汽车电子 > 设计应用 > 电动汽车车载智能显示系统设计,包括源代码、原理结构图

电动汽车车载智能显示系统设计,包括源代码、原理结构图

作者:时间:2017-06-07来源:网络收藏

本文引用地址:http://www.eepw.com.cn/article/201706/350540.htm

引言

作为新型的交通工具,具有节能、污染小的特点,是目前最环保的新型交通工具,并被视为调整交通能源使用结构和改善城市大气环境质量的有效途径之一,是解决燃油车辆所带来的能源和环境问题的最有希望的方案之一。在世界范围内的研究正在如火如荼进行;在国内,政府更是把的列为重点攻关的技术研究。因此电动汽车智能显示系统的研发就在这种大背景下应运而生。

电动汽车智能显示系统触摸屏作为一种新颖的交互式设备越来越展现出巨大的应用前景,电动汽车的智能显示屏应该具有良好的实时性和稳定性,以符合汽车级产品的要求。

1.总体方案设计

该仪表显示电动汽车特有的信息,主要包括电机,电机控制器,电池管理(BMS)和充电机等各个模块的信息和实时状态。用户可以通过仪表模块获取例如电机的转速、电机母线电压、电机母线电流、电机相电流、电机温度和电机转速等信息。电池管理系统(BMS)采用电池容量优化的估算方法,此方法能够对电池的剩余容量做出比较准确的估算,同时还能够对电池组的总电压进行监控,也可以对单节电池的电压、温度和电池容量等信息进行监控和实时报警。同时充电机的状态和信息也都可以在BMS中显示。

仪表显示和各功能模块之间的信息传递都是采用CAN总线的通讯方式,用户可以通过触摸屏方便快捷地实现与电动汽车各模块之间的信息共享和双向沟通。其主要功能如下:

①车辆的速度、里程、温度、电池核电状态(SOC)等信息实时显示:

  • 车辆行驶速度显示。

  • 电机转速实时显示。

  • 车辆行驶总里程表(掉电保存),最大里程数:999,999Km。

  • 单次行驶里程计,最大记数里程999.9Km

  • 档位指示,显示车辆当前的档位。

  • 控制器温度指示

  • 电池剩余容量(SOC)实时显示。

②电机控制器的信息和状态实时显示,参数设定:

  • 电机转速显示

  • 温度显示

  • 档位显示

  • 母线电压,母线电流

  • 过流报警

  • 油门,刹车开关指示

  • 油门,刹车给定

③电池管理的信息和状态实时显示,参数设定:

  • 实时核电状态显示

  • 实时电池组总电压显示

  • 单节电池电压实时显示,欠压、过压报警。

  • 单节电池温度实时显示,过温报警。

  • 单节电池容量实时显示,过放、过充报警。

  • 电池充放电循环次数显示。

④充电机状态显示:

  • 外接充电指示

  • 充电机输出电压、电流显示。

  • 充电机通讯状态指示

⑤车辆故障的实时和历史记录:

  • 车辆实时故障记录显示,最多可以记录163条信息。

  • 车辆历史故障记录显示,最多可以记录163条信息。

⑥参数设置

可以设置日历、时钟、语言、速比、轮径、电机最大转速。

可以设置充电机最高输出电压和最大输出电流。

可以设置控制器参数

可以设置管理的电池种类,数量,电池的ID号,可以设置电池SOC估算充放电数组数据和基准电压

⑦采样外部信号

可以采样8路外部模拟信号。

2.电路硬件原理

电动汽车智能显示仪表系统硬件框图如图1所示,其主要分为电源部分、通信部分、数据存储部分、实时时钟部分等。

图1 电动汽车智能显示仪表系统硬件框图

2.1 电源电路设计

本设计中电源由电动汽车车载电池提供,给液晶屏、CAN隔离芯片、处理芯片PIC32MX、时钟芯片PCF8563、转换芯片MCP2515、存储芯片AT24C256供电。

图2 电源电路设计

车载电池电压为48V,通过一个DC/DC电源模块,输出电压为12V。液晶屏由TPS65150供电,其允许输入电压范围为1.8V—6V;CAN供电电压为5V,所以选用一个LM1117I-5将12V转换为5V,给CAN与液晶屏供电芯片TPS65150供电。选用LM1117I-3.3将12V转换为3.3V,给处理芯片PIC32MX、时钟芯片PCF8563、转换芯片MCP2515、存储芯片AT24C256供电。本系统配备了电池,能防止掉电情况下,日历时钟数据丢失。时钟芯片PCF8563在系统正常的工作状态下由LM1117I-3.3供电,在系统掉电的工作状态下由电池供电。

2.2 A/D采样通道

PIC32MX A/D转换模块包含16个A/D转换通道,模拟输入通过两个多路开关(MUX)连接到一个SHA。可在CPU 休眠和空闲模式下工作。本系统数据采样电路将8路外部模拟信号ANx_input,经过滤波分压,输入到PIC32MX的A/D转换模块采样通道ANx(x=0-9,12-15)。如图3所示

图3 A/D采样输入电路设计

2.3 数据存储

本系统使用存储芯片AT24C256存储电池状态历史数据及车辆运行故障历史数据。AT24C256是ATMEL公司推出的256kB串行电可擦可编程只读存储器,结构紧凑,8引脚双排直插式封装;存储容量大,内部有512页,每一页为64字节,任一单元的地址为15位。能够满足本系统高容量数据储存的要求。

图4 数据存储及传输电路设计

图4为数据存储及传输硬件接口电路图。AT24C256存储芯片AT24C256通过I2C数据线SDA、时钟线SCL与PIC32MX相连接。可提供256K存储空间。在系统工作时,可记录电池状态历史数据及车辆运行故障历史数据。

2.4通信设计

本设计包含两种通信方式,方式与RS485通信方式,两种通信方式为液晶屏的通信兼容提供了可能。

2.4.1 设计

本液晶屏设计采用的主控芯片PIC32MX440F128L不带有CAN功能,因此本设计中的采用MCP2515+ PCA82C250T且外加一个磁偶隔离芯片来实现CAN通信功能,通信波特率125Kbps,采用11位标准标志符,CAN通信网络可连接节点最多112个,可满足对110节单体电池的监控。CAN通信原理框图如图5所示:

图5 CAN通信原理框图

从电池和电机控制器发出的信息通过CAN总线送到CAN收发器,再经过转换和隔离送入CAN控制器芯片,CAN信息经过CAN控制器处理信息数据最后以SPI通讯方式传送给主控芯片PIC32MX440F128L进行数据处理。电路原理如图6所示:

图6 CAN通行原理图

其中MCP2515是一款CAN协议控制器,完全支持CAN V2.0B技术规范,通信速率为1Mb/s。该器件主要由三个部分组成:① CAN模块,包括CAN协议引擎,验收滤波寄存器,发送和接受缓冲寄存器。②用于配置该器件及其运行的控制逻辑和寄存器。③SPI协议模块。MCP2515能发送和接收标准和扩展数据帧和远程帧。PCA82C250T是CAN收发器,支持“ISO 11898”标准,通信速率可达1Mb/s,具有很强的抗电磁干扰和抗无线干扰的能力,是双通道数字隔离器,采用了高速CMOS工艺和芯片级的变压器技术,工作电压为2.7V到5V,符合车用等级,工作温度可达到125°C。传输速率可达到25Mb/s。

2.4.2 RS485通信

液晶屏上配备有RS485通信接口,以方便液晶屏与外部进行通信。RS485是一种共模通信方式,具有较强的抗干扰能力。PIC32MX440F128L自带RS485通信接口,其输出信号送给MAX2M3425芯片,该芯片能发送、接收RS485信号,能进行半工和全双工的传输方式,具有最大1M/S的传输方式,RS485通信电路原理图如图7所示:

图7 RS485通信接口电路原理图

2.5 液晶屏实时时钟显示设计

本液晶屏设计时钟显示数据通过PCF8563实时时钟/日历芯片来产生。PCF8563是低功耗的CMOS实时时钟日历芯片,它提供一个可编程的实时时钟输出,一个中断输出和掉电检测器。所有的地址和数据通过I2C总线接口串行传递,最大总线速度可达到400Kbit/S。PCF8563有16个8位寄存器,一个内置32.768KHZ的振荡器,一个分频器,一个可编程的时钟输出,一个定时器,一个报警器,一个掉电检测器和一个400KHZ的I2C总线接口。电路原理图如图8所示:

图8 日历时钟电路原理图

图8中PCF8563芯片的5、6引脚为I2C总线用的两个引脚,两个引脚必须用一个上拉电阻与正电源连接,这两个引脚与PIC32MX440F128L的I2C引脚相连实现PIC32MX440F128L与日历时钟芯片间传递数据。液晶屏工作时,PIC32MX440F128L主控芯片先通过I2C对PCF8563芯片进行初始化,设定好当前显示的年月日以及时间信息,设定完成确认后,单片机将数据传送给图形处理器芯片,最后在液晶屏上显示。如果在使用过程中想调整显示的时间,可直接在液晶屏上通过按钮修改。PIC32MX440F128L主控芯片会不断地查询液晶屏按钮动态信息,并发送相应的指令信息到PCF8563芯片修改时间。

2.6 PIC32MX与SSD1926的接口电路

SSD1926是一款中小规模的显示控制芯片。采用128引脚LQFP封装,256 KB静态存储空间和2D图像引擎,可以支持单色和彩色LCD;32位内部数据通道,可以提供高带宽的显示内存,以实现快速的屏幕刷新;采用单电源供电和单时钟输入,具有很短的CPU访问延迟时间,可以支持无READY/WAIT信号的微处理器。这些特点能够极大地简化外围电路的设计。同时,SSD1926还具有强大的总线兼容性,可与多种类型的MCU连接,除了支持SRAM接口与ARM系列连接、ISA接口与NEC系列连接外,还支持8/16位8080时序间接寻址方式,能够方便地与各种具有并口的MCU连接。本设计采用PIC32MX460F512L的8位/16位并行控制接口模块与SSD1926接口。硬件接口框图如图9所示:

图9 PIC32MX440F128与SSD1926接口框图

CS为片选信号,RS为地址与数据选择信号,RESET为复位信号,都可以由通用I/O口进行控制,分别用RD10、RC2和RC1与其连接。数据总线DB[15:0]与并行控制接口模块中的PMD[15:0]引脚分别对接。WR和RD为读写信号,由并行控制接口模块中的PMWR和PMRD引脚分别控制。SSD1926对接收到的数据进行处理之后,再通过与LCD的接口驱动TFT彩色液晶屏进行显示。

2.7 触摸功能的硬件设计

电阻式触摸屏处于与外界完全隔离的工作环境,不怕灰尘和水汽,可以用任何物体来触摸,可以写字画图,广泛应用于工业控制领域中。触摸屏工作时,上下导体层可以看作电阻网络。当某一层电极加上电压时,会在该电阻网络上形成电压梯度。若施加外力使得上下两层电极在某一点相接触,则在电极未施加电压的另一层可以检测出接触点的电压,从而换算出接触点的坐标值。本作品选用4线电阻式触摸屏,其电阻网络工作原理如图10所示。

图10 电阻网络工作原理图

系统工作时,首先把AN11/RB11、AN4/RB4复用引脚设置为I/O引脚。RB11输出高电平(+3.3 V),RB4引脚输出低电平(0 V),在顶层的电极X+、X-上即产生了3.3 V的电压。当有外力使得上下两层在某一点接触时,在底层Y+、Y-引脚上就会输出接触点处的电压。此时,AN10/RB10、AN5/RB5设置为A/D输入通道。采样此引脚上的电压信号,即可得到Y+、Y-引脚上的电压值,根据式(1)可以计算出X坐标:

触点X坐标=X轴分辨率×X相电压采样值/1 024 (1)

本设计为10位的精度A/D采样,3.3 V输入时对应的采样值即为1 024。然后,改变4个引脚的输出定义,将A/D输入引脚RB10设置为I/O引脚输出高电平,RB5设置为I/O引脚输出低电平,将3.3 V电压切换到底层电极Y+、Y-上,设置AN11和AN4为A/D输入引脚。对X+、X-引脚进行A/D采样,测量得到接触点处的Y相电压,根据式(2)可以计算出Y坐标:

触点Y坐标=y轴分辨率×y相电压采样值/1 024 (2)

2.8 电气连接

液晶屏共有6个接线引脚,如图11所示。1,2脚是给仪表供电用DC48V输入,接到电池组正极和负极。3,4脚是CAN+5V和CAN GND,这一组+5V电源由仪表电路产生,给CAN总线供电。5,6脚是CAN_H和CAN_L,与其它模块的CAN通信线连接。电池检测模块如图12所示。

图11 CAN通信电气连接图

图12 电池监测模块

2.9 LED背光控制接口

本设计提供了对LED背光电路的调节控制接口,其硬件接口电路如图13所示。可以通过芯片PIC32MX输出3路PWM(OCS2-OCS4)对LCD的背光电路进行控制,可以进行明暗调节。在某些工作状态,可关掉背光电源,降低电源损耗。

PIC32440F128L

图13 LED背光控制硬件接口电路

3.软件设计

本设计中的软件主要包括两方面的内容:图形显示和数据通信。软件部分包括设备驱动程序层、图形元素层、图形对象层和应用层,设备驱动程序层为硬件提供必要的驱动程序,图形元素层直接与设备驱动程序对话,图形对象层提供控件驱动函数库,应用层通过控件绘制界面、开发应用程序。设备驱动程序层、图形原语层和图形对象层都属于系统层。

3.1图形显示原理

由于液晶屏在运行时需要显示电机控制器,电机,电池模块,以及充电机等的信息,这些信息量比较多,在一个界面里不能够完全显示。所以在本液晶屏中分别创建了电机控制器等显示页面用于检测电机控制器及电机的相关信息,电池监测页面用于监测电池的实时状态,充电机页面和主界面以及一些利于人机交互的页面,这些页面的创建使电动汽车用户能方便快捷的获得电动汽车的信息。页面创建的软件框图如图14所示:

图14 页面创建软件框图

汽车各部分实时信息通过CAN总线送入PIC32MX440F128L芯片,并通过图形处理芯片SSD1926芯片在液晶屏上生成图像,显示在液晶屏上。同时,通过液晶屏也可以对各个模块的参数进行设置,具有良好的人机界面。

图形显示是本设计的重点。本设计全部是用来开发的,系统层使用微芯(Microchip)公司图形对象层(Graphics Object Layer,GOL)图形驱动库来实现。Microchip 的图形库针对范围宽广的显示设备控制器,可与PIC 单片机配合使用;图形库提供应用编程接口(API),完成基本图形对象以及类似控件对象的绘制。 图形库也使得通过消息接口集成输入设备变得容易。图形库的分层结构设计使得所有这一切成为可能。Microchip 图形库的层次结构如图15所示。

图15 Microchip 图形库的层次结构图

应用层是使用图形库的程序。图形对象层(Graphics Object Layer, GOL)生成控件,例如按钮、滑动条和窗口等等。控件(widget)指GOL 对象或其他对象。 为了控制这些对象,GOL 层具有一个消息接口,接收从应用层来的消息。消息接口支持触摸屏。图形元素层实现基本绘图功能。这些基本功能完成图形对象的绘制,例如线、条和圆等。 液晶屏驱动程序是图形库结构的设备相关层。这一层直接与显示设备控制器对话。大量的API 允许应用程序访问图形库的任何一层。绘图和消息处理在内部进行,对应用程序保持透明。图形库提供了两种配置(阻塞式和非阻塞式),在编译时进行设置。对于阻塞式配置,绘图函数将延迟程序的执行,直到绘图完成。对于非阻塞式配置,绘图函数不等待绘图完成,就把控制权释放给程序。因为程序能执行其他任务,而不必等待绘图任务完成绘制,从而使得单片机时间的使用更为高效。

对象状态

GOL 对象有两种类型的状态:属性状态和绘图状态 。属性状态定义对象的行为和外观。而绘图状态指出在显示时对象是否需要被隐藏、部分重画或完全重画,一些常用的属性状态和绘图状态如表1 所示。

表1 常用的对象状态

状态

类型

说明

OBJ_FOCUSED

属性

对象处在聚焦状态。通常用于表示对象被选中。有的对象没有此属性。

OBJ_DISABLED

属性

对象被禁止,忽略全部的消息。

OBJ_DRAW_FOCUS

绘图

聚焦应被重画的对象。

OBJ_DRAW

绘图

对象应被完全重画。

OBJ_HIDE

绘图

使用共同的背景色填充对象所占有的区域,把对象隐藏起来。这种状态在所有绘图状态中,优先级最高。当对象被设置成隐藏时,所有其他绘图状态将不再产生作用。

式样方案:

所有对象都使用式样方案来定义所使用的字体和颜色。在创建对象时,对象可以使用用户定义的式样方案。如果不存在用户定义的方案,就将使用缺省的式样方案。表2 概括了式样方案的组成部分。

表2 式样方案的组成

式样的组成部分

说明

EmbossDkColor

暗浮雕颜色,用于对象的三维效果。

EmbossLtColor

亮浮雕颜色,用于对象的三维效果。

TextColor0

TextColor1

对象使用的一般文本颜色。随着对象的不同,在用法上可能有所变化。

TextColorDisabled

已经被禁止的对象所使用的文本颜色。

Color0

Color1

对象绘制时使用的一般颜色。随着对象的不同,在用法上可能有所变化。

ColorDisabled

已经被禁止的对象绘制时使用的颜色。

CommonBkColor

对象的共同背景色。通常用于从屏幕中隐藏对象。

pFont

指向对象所使用的字体的指针。有些对象不使用文本。

活动对象链表:

图形库把当前正在显示和接收消息的对象放入一个链表中。任何时候,GOL 消息和绘图函数针对的都是这张链表中的对象。

绘图

为了绘制对象,应用程序将调用绘图管理器,GOLDraw()。这个函数将解析活动链表,使用设置的绘图状态重画对象。当绘制完成后,对象的绘图状态自动清除。最先创建的对象将首先绘出。当前链表中的对象全部绘出后,GOLDraw() 调用GOLDrawCallback()函数。定制的绘图可以在GOLDrawCallback() 函数中实现。

消息的接收和发送:

可移植性是图形库的关键特性。图形库支持大量的输入设备。 图形库提供一个接口,用来接收来自输入设备的消息。所有的输入设备事件,都将采用GOL 消息结构体的方式发送到库里去。结构体定义如下:

typedef struct {

BYTE type;

BYTE event;

int param1;

int param2;

} GOL_MSG;

字段 type 定义输入设备的类型ID。字段 event 表明行为的类型。字段type 和event 一起决定如何解释 param1 和param2。某些情况下,仅使用param1,而另一些情况下可能两个参数字段都需要。

当屏幕被触摸时,应用程序必须先填充消息结构体,然后把它传送给库中的消息处理函数GOLMsg(GOL_MSG*pMsg)。对象(包括它的x、y 位置),将根据目前的状态和事件,改变其状态。针对输入事件而定制的行为,可以放在GOLMsgCallback() 函数中。一旦有对象收到有效的消息,这个函数就会被调用。

图形库用法:

图形库的设计,旨在使图形接口能够无缝地集成到应用程序中去。通常,对象行为是通过图形库来进行管理的。把收到的消息进行处理,根据消息的内容,改变受影响的对象状态。然后,图形库自动地重画对象,显示状态的改变。

在用户接口模块和显示驱动程序已被选择和加载的前提下,调用InitGraph(),复位显示设备控制器,把光标位置移动到(0,0) ,然后初始化显示器成全黑状态。然后,调用GOLCreateScheme(),定义用于对象的式样方案。

项目文件

图形库安装后,项目目录结构如图16所示:

图16 Microchip项目层次结构图

此目录作为项目目录,可以添加应用程序代码,也可以与图形库一道被编译。Graghics Lib 子目录下存放的是图形库。Source Files子目录存放C 文件、文档和实用程序。Headers子目录包含子目录Graphics Lib图形库的头文件和其他头文件。

3.2软件设计程序流程框图

本设计主程序流程图如图17所示:

图17 主程序流程图

当液晶屏启动时开始对系统进行配置,对变量、EEPROM、定时计数器等进行初始化,等待50ms后,系统进入稳定,并创建代替的样式方案。随后从EEPROM读取单次行驶里程和总行驶里程,并在对语言和时钟模式进行选择时初始化用户定义的式样方案(例如字体,颜色)。在此之后执行创建液晶屏页面,处理触摸信息,CAN接受处理等操作。最后是CAN信息的接收,处理和发送。

在此要特别强调的是触摸信息分为四种:①无触摸信息②接触触摸屏③离开触摸屏 ④触摸在液晶屏上移动。当无触摸信息时,液晶屏显示原有界面。当有物体接触触摸屏时,进入中段,当接触物体离开触摸屏时进入下一界面。本设计暂时还没有考虑第四种情况。这也是需要改进的地方。

液晶屏显示面积有限,不可能将所有的信息显示在同一界面下,因此采用界面分层的层次结构来满足不同信息的显示。每层下面对应相应的软件流程框图。显示的层次结构如图18所示:

图18 层次结构图

本设计中主要通信方式为CAN通信,也是电动汽车与液晶显示屏对话的语言,其程序设计流程框图如图19所示。

图19 CAN通信结构图

3.3 智能显示仪表界面

开机启动时,屏幕进入主界面,如图20所示:

图20 主界面

图20中显示了车速,车辆行驶的距离,时间,电池等信息,各模块具体信息通过点击功能建进入图21所示界面。

图21 液晶屏目录界面

这个界面包括:控制器矢量控制,控制器压频控制,控制器直接转矩控制,小计里程清零,能量清零,电池,充电机,系统设置,故障,锁定界面和返回。点击其中一个按键将进入相应的控制界面,进行更为详细的信息显示和设置。

当点击控制器矢量控制按钮,进入控制器矢量控制界面,该界面可以监视电机的相关信息,如图22所示:

图22 矢量控制界面

图22中电机转速,行驶速度,电机温度,控制器温度,电机电压,电流,频率等参数都由CAN总线传送给Microchip-PIC32芯片,再由Microchip-PIC32信息处理后,将实时的数据在液晶显示屏上进行显示。

当电池在充电或者放电时,电池电压,温度,SOC等信息都会发生变化。液晶屏程序对充放电都进行管理。当通信出现问题时,在液晶屏右上角将显示通信故障。如果发生过充,或者过放,液晶屏上将对过充过放电池电压显示为红色以引起司机注意。在必要的时候将自动关断充电机阻止充电机对电池进行过充电,过放电也是如此。如图23所示。

图24 电池状态监控界面

本设计由于要满足不同电池类型的需求,所以对铅酸电池,锰酸电池,磷酸铁锂电池以及不同节数电池组成的电池组都进行了考虑。并进行了程序设计。当使用不同电池类型时,需要在系统设置中对电池类型进行选择。在图24中,1号,4号,6号电池由于没接电池检测芯片,所以显示通讯故障。表3是不同电池类型的编号。

表3不同电池类型的编号

电池类型

电池电压(电池节数)

电池编号

铅酸

6V

0

8V

1

12V

2

磷酸铁锂

16节

3

24节

4

锰酸

3.3V

5

缺省

----

6

该选择必须进入系统设置,并输入密码才能进行修改。密码保护功能能阻止系统被随意设置,从而保证系统设置的正确性。



评论


相关推荐

技术专区

关闭