汽车文化 您当前所在的位置:和记娱乐主页 > 新闻动态 > 汽车文化 >

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

来自:未知   发布者:www.dingbang24.com   发表于:2019-05-04 15:32   点击:

  作为新型的交通工具,具有节能、污染小的特点,是目前最环保的新型交通工具,并被视为调整交通能源使用结构和改善城市大气质量的有效途径之一,是解决燃油车辆所带来的能源和问题的最有希望的方案之一。界范围内

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  本液晶屏设计时钟显示数据通过PCF8563实时时钟/日历芯片来产生。PCF8563是低功耗的CMOS实时时钟日历芯片,它提供一个可编程的实时时钟输出,一个中断输出和掉电检测器。所有的地址和数据通过I2C总线接口串行传递,最大总线.768KHZ的振荡器,一个分频器,一个可编程的时钟输出,一个定时器,一个报警器,一个掉电检测器和一个400KHZ的I2C总线所示:

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

  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所示:

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

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

  本设计为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坐标:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

新闻动态

手机:13708367866
联系人:何经理
传真:028-62871608
地址:四川省成都市天府新区孵化园科技大厦D栋