车辆 (ECU)模拟器的液晶显示研究
2016-10-21付俊坤许勇
付俊坤 许勇
摘 要 伴随着信息技术的不断大展,汽车电子在汽车研发所占的比重日益增加。整车车载ECU数量在逐年增加;本文介绍基于STM32微控制器关于车辆ECU模拟器对液晶显示系统的研究。在分析STM32微控制器的基础上,详细介绍了液晶显示系统的硬件设计、emWin图形库和μc-OS-II系统在STM32平台的移植过程。最终对液晶显示系统进行试验验证,显示出稳定的人机交互界面。
【关键词】STM32微控制器 emWin图形库 μc-OS-II系统 移植
现阶段,伴随着液晶器件制造工艺的不断完善和生产成本的不断降低,液晶器件在各类电子产品中应用越来越广泛。同时,液晶器件具有体积小、功耗低、显示信息大、寿命长、不产生电磁辐射污染、可以显示复杂的文字和图片等优点。在未来的显示终端领域将有广阔的发展前景。汽车电子在车辆研发所占的比例也在逐年增加,车载ECU个数也在增加,本文模拟车辆ECU发送数据,并在液晶显示屏上面显示出数据。介绍了STM32微控制器、emWin图形库与μc-OS-II的内容以及移植步骤,STM32微控制器与液晶显示屏的硬件连接、底层驱动,最终达到自己所需要的数据输出并显示在液晶显示屏上面。
1 处理器与显示器的选择
STM32微控制器是意法半导体(ST)公司生产的32位ARM处理器。emWin图形库是一款用于嵌入式开发的通用图形软件包,其所有软件模块均为C语言源代码设计,可以支持任何CPU和几乎所有显示器。处理器主芯片采用的是STM32F103ZET6,主频72MHZ, CPU操作电压范围2.0-3.6V。此外,该款微控制器内部还集成了FSMC(灵活的静态存储控制器),能够直接支持8080总线接口的LCD控制器。
本文中选用的是TFT—LCD(薄膜晶体管型)显示屏,由驱动电路,4线模拟电阻式触摸屏组成。显示屏尺寸为3.2英寸,具有240*320的分辨率。应用ILI9341芯片控制液晶屏,通过TSC2046芯片控制触摸屏。如图1所示显示器与处理器的硬件连接图。
2 emWin与UC/osIII的移植和实现
2.1 emWin的移植
emWin作为一种复杂高效的图形用户界面,可以一直到众多显示控制器和操作系统中,具有模块化的特点,并才用分层结构。主要包括应用层、图形库层、驱动层和硬件4个层次。
改头文件LCDConf.h来配置emWin。LCDConf.h中的宏定义介绍了LCD显示部分的硬件特性,据自己所需修改比如显示屏的长、宽、高、每像素点用几位表示、LCD控制器的类型等参数。函数包括对LCD[2](控制器)的初始化函数,LCD显示缓冲区的操作函数等,完成对LCD显示硬件的直接操作
#define XSIZE_PHYS 240
#define YSIZE_PHYS 320
#define COLOR_CONVERSION GUICC_565
#define LCD_CONTROLLER 9320
#define DISPLAY_DRIVER GUIDRV_FLECOLOR
#define GUI_SWAP_XY(1)
2.2 μc-OS-II的移植
μc/OS-II是一种免费公开源代码、为嵌入式应用而设计的完全可剥夺型的实时内核,代码大部分是用ANSI C 编写的,可在绝大多数微处理器上运行。uC/OS-II管理64个任务,提供邮件、队列、信号量机制。
μc-OS-II绝大部分代码是用标准的ANSI C编写的,但是μc-OS-II在读/写处理器寄存器时,仍需要通过汇编语言来实现,主要工作在于对os_cpu.h,os_cpu_a.asm,os_cpu_c.c的移植。os_cpu.h包括了用户#define语句定义的、与处理器相关的类型常数、宏,是为了增加代码的可移植性
typedef unsigned char INT8U; /*无符号8位整数*/
typedef unsigned int INT16U; /*无符号16位整数*/
Stk =ptos;/*Load stack pointer*/
*(stk) =(INT32U)0x01000000L;/*xPSR*/
*(--stk) =(INT32U)task; /*Entry Point*/
*(--stk) =(INT32U)0xFFFFFFFE; /*LR*/
通过调用OSStartHighRdy使系统启动函数OSStart()運行。调用OSSched()实现OSCtxSw()任务级切换,调用OSTimeTick()和OSIntExit()用于维持执行中断服务和系统内部定时。最后恢复CPU寄存器,执行中断返回指令。
3 实验结果
首先初始化STM32F103[4]微控制器,主要对其内部的系统时钟、通用I/O口、中断控制器、CAN控制器和定时器等资源进行设置;接着对emWin图形库、μc/OSII运行系统主要程序初始化。系统根据实际的显示要求,对主要程序中的任务设置了不同的优先级,保证了系统中不同任务的有序运行。为验证该液晶显示系统的显示效果,在自己收集的不同型号的ECU数据,按照一定的频率和报文格式发送至液晶显示。将文中的液晶显示系统应用到车辆ECU模拟器中,以玉柴型仪表从CAN总线接受报文为例,将报文显示到液晶显示屏上面。显示结果可从图2看出。
4 结论
本文以STM32微控制器和2.8in的TFT-LCD液晶屏作为硬件基础,软件方面采用了emWin图形库和μc-OS-II系统,通过俩者的结合,完成了一种液晶显示系统。满足不同场合的显示要求,有很强的使用价值。
参考文献
[1]彭志红,袁野,林韵莹等.国内液晶显示技术的发展概括[J],电视技术,2013,37(S2):425-426.
[2]陈新,蒲庆文.基于emWin图形库的电动汽车液晶仪表设计[J].仪表技术与传感器,2013(7):105-107.
[3]Joseph Yiu.The Definitive Guide to the ARM Cortex-M3[M].北京:北京航空航天大学出版社,2009.
[4]孙书鹰,陈志佳,寇超.新一代嵌入式微控制器STM32F103开发与应用[J].微型计算机应用,2010,31(12):59-63.
[5]李玉刚.嵌入式操作系统μc-OS-II在ARM上的移植研究[J].微计算机信息.2010,8(2):97-99.
作者简介
付俊坤(1987-),男,河南鹤壁浚县人。现就读桂林电子科技大学。研究方向汽车电子嵌入式。
作者单位
桂林电子科技大学 广西壮族自治区桂林市 541004