汽车TFT彩屏仪表开发技巧

  摘要:本文基于飞思卡尔的MPC5606S芯片,介绍了MPC5606S针对TFT彩屏控制的显示器控制模块(DCU),且对于TFT彩屏上的各种动画效果,进行逐一解析如何在MPC5606S上实现。简单易行的控制,展示出MPC5606S是一款针对TFT彩屏汽车仪表开发的专用芯片,能够迅速使得工程师从传统段码式/点阵式仪表的开发,过渡到TFT彩屏汽车仪表的开发,以满足汽车仪表市场对于TFT彩屏应用需求的日益增长。

  随着中国汽车市场的繁荣,消费者对于汽车的要求日益提高。汽车从被人们认为是传统的代步工具,逐渐转变为一个需要提供驾驶乐趣的移动平台。和驾驶员紧密联系的汽车仪表,也从简单的信息显示平台,逐步转变为一个综合的信息显示系统。

  传统的汽车仪表,由步进电机显示车速、转速、油量和水温,各种报警灯分布在整个仪表的外围。在仪表盘中心位置,由段码式或点阵式LCD,提供一些综合性信息,例如里程、环境温度、油耗等。这样一个系统可以满足基本信息提示的要求。但随着TFT彩屏成本的降低且它能够满足汽车工作环境的要求,TFT彩屏展示出的绚丽效果,逐步被广大OEM所接受,逐步要求供应商提供能够支持TFT彩屏的仪表。

  MPC5606S介绍

  在这样的趋势中,飞思卡尔开发出针对TFT彩屏仪表设计的MPC5606S。图1显示了MPC5606S的内部系统框图。它是基于Power架构的e200z0核的32位MCU,可以运行在64MHz的工作频率,芯片内部具有PLL,FlexCAN,LINFlex,ADC,I2C,DSPI,eMIOS200等模块。其中,LCD模块可实现驱动段码屏且对比度可以调节。DCU模块,即显示控制模块,可实现和TFT屏直接连接控制,支持WQVGA分辨率。MPC5606S具有6个步进电机驱动器,1MB片上闪存,独立的64KB数据闪存用于模拟EEPROM,48KB带ECC功能的SRAM,160KB的图形SRAM。另外,可以通过QSPI实现闪存存储空间的扩展。片内的Crossbar Switch结构,如图2,支持4个Crossbar主接口同时和4个Crossbar从接口通讯。其中,一个端口分离器使得3个从设备通过一个从端口与主设备通讯。Crossbar主接口包括e200z0h核的指令单元、e200z0h核的数据单元/Nexus、eDMA和显示器控制模块(DCU)。Crossbar从接口包括PFlash-CPU,PFlash-DCU,内部SRAM,图形SRAM,外设桥以及QSPI。

  DCU工作机制的介绍

  DCU模块是系统的主设备。根据Crossbar Switch结构,它可以独立地提取存储在片内或片外的图像数据并显示在TFT LCD上,即图像数据直接由DCU读取并实时进行图像混叠。另外,它高度灵活可配置TFT LCD控制时序的特点,决定了它具有支持TFT类型非常广泛的特点。通常TFT LCD的控制信号由像素时钟(PCLK),场同步(VSYNC),行同步(HSYNC)和数据使能(DE)组成,MPC5606S在芯片内部,也有相对应的寄存器与之一一对应,方便用户进行配置。DCU还具有停止模式、正常模式、测试模式以及颜色条模式。用户可以在没有任何图像源的情况下,采用颜色条模式进行检测TFT LCD的工作状况。

  DCU通过控制16个图层,实现图像信息最终显示在TFT LCD屏上。每个图层都包含了当前图层显示图形的高度和宽度、图形在TFT LCD显示的位置、图形存储的地址(包括在片内/片外的所有地址空间)、图形颜色编码方式及调色板(如果需要的话)、颜色混叠方式、透明度、Chroma和Tile尺寸。16个图层具有各自固定的优先级,图层优先级将决定不同图层的像素在TFT LCD屏上同一位置重叠时,那些图册可以显示出来。对于每个像素,最终显示出来的像素由优先级最高的4个图层的像素来混叠。这4个图层的像素可以是不透明、部分透明或完全透明。

  图3是MPC5606S的DCU框图,解释了DCU如何提取及混叠图形,最终图形输出到TFT LCD屏上。首先,DCU通过其自带的DMA通道,从存储空间(包括片内/片外的所有存储空间)提取相关的图形内容,根据设定的图像格式转换成24位(如果需要的话)图像格式,然后通过混叠方式的设置,计算出每个像素的值,再根据Gamma校正的设置进行校准后,最终像素值会通过TFT LCD屏的数据总线输出至屏上,并设置相应标志位提示帧结束、缓冲阈值和其它状态变化信息。

  DCU动画效果的实现

  TFT LCD上的动画效果,本质上是一帧帧图像连续切换的结果,切换速度决定了动画效果的平滑与否。帧与帧之间的时间间隙,就是MCU准备下一帧内容的所有时间。MCU能否在这个时间完成下一帧的准备工作,取决于MCU对图形的处理能力,也决定了动画效果是否平滑。

  基于MPC5606S的Crossbar Switch架构,DCU这个主设备具有独立的提取存储在片内或片外的图像数据并显示在TFT LCD上,即图像数据直接由DCU读取并实时进行图像混叠。e200z0h内核在DCU输出图像时无需干预,从而可以节省e200z0h核的运算负荷。但DCU无法自主得知16个图层应该输出何种图形,每个图层还是需要e200z0h核进行初始化配置。图层初始化配置完毕后,DCU即可自行输出图形到TFT LCD的数据总线上。若需重新配置某一图层,可由e200z0h核重新介入进行配置即可。每个图层可配置的信息,包括了当前图层显示图形的高度和宽度、图形在TFT LCD显示的位置、图形存储的地址(包括在片内/片外的所有地址空间)、图形颜色编码方式、透明度及调色板(如果需要的话)、颜色混叠方式、Chroma和Tile尺寸。这些信息的改变效果,能够在下一个TFT LCD场扫描周期开始时展示在屏上。

  例如,对于一张显示在TFT LCD屏幕上的图形,当e200z0h核改变这张图片显示的高度,例如从0到图形的正常高度顺序递增,则显示在TFT LCD屏幕上的效果,即是看到这张图片顺序打开。若e200z0h核改变这张图片显示的高度,从图形的正常高度到0顺序递减,则显示在TFT LCD屏幕上的效果,即是看到这张图片顺序被缩小,直至消失,类似于卷帘动画。若对于一张显示在TFT LCD屏幕上的图形,固定其显示区域(宽度和图片一致,但高度小于图片高度),当e200z0h核顺序改变显示图形存储的地址为紧临的下一行的地址,则显示在TFT LCD屏幕上的效果,即是看到这张图片在固定的显示区域内,顺序上浮显示,类似于滚屏效果。若一个动画被分解为若干帧,当e200z0h核顺序改变当前层显示图形存储的地址为下一帧的存储地址,则动画被显示在TFT LCD屏上,e200z0h核改变当前层显示图形存储的地址的速度,即是动画帧切换的速度。切换速度加快,即显示出动画快进的效果。若e200z0h核仅顺序改变当前层显示图形在屏幕中的横坐标,则当前图形在TFT LCD屏幕上匀速横移;若以“加速度-匀速-减速度”改变其横坐标,则当前图形在TFT LCD屏幕上会以“加速-匀速-减速”的效果显示出来。

  如果连续改变当前显示图层透明度寄存器的值,则当前图层图像的透明度就会连续变化。当透明度从完全透明到完全不透明,则显示出图像淡入的效果。若透明度从完全不透明到完全透明,则实现了图像淡出的效果。

  DCU不同的图层可以显示存储在同一地址的图形,利用这一特性,可以实现阴影效果。例如图层2和图层3均显示存储在闪存中的同一张图片,图层2正常显示图片,而图层3仅改变此图层的调色板,使图片的颜色均为黑色,当两个图层显示在TFT屏上时,使得两层显示的坐标有错位,则最终显示在TFT屏上的图像,是一副正常显示的图像后面有个错位显示的黑色阴影,达到伪3D效果。

  结论

  MPC5606S是一款针对TFT彩屏仪表应用开发的芯片。它具有传统的PowerPC系统稳定可靠的特点,并且充分利用Crossbar Switch结构,实现DCU自主输出图像,并且最高可达16个图层进行叠加。通过改变图层中对图像显示配置信息,可方便灵活地实现平移、卷帘、阴影等效果。现在,飞思卡尔可以免费提供基于MPC5606S的图形驱动软件,结合片内DMA功能,实现位移、旋转、卷帘、变色、淡入淡出等功能。飞思卡尔也免费提供图形、字库转换工具,可以实现绝大多数图像格式、字库的工程文件生成,方便地添加到用户的工程中,实现所设计的动画效果。高效的图形显示以及Crossbar Switch结构,使得MPC5606S能够在上电后20ms内,完成TFT屏幕显示内容的输出,足以满足OEM对汽车仪表开机显示速度的要求。

  参考文献:

  [1] MPC5606S Microcontroller Reference Manual[Z].Freescale Semiconductor

  [2] Configuring and Using the DCU2 on the MPC5606S[Z].Freescale Semiconductor,AN4187

  田茂昕 飞思卡尔半导体高级现场应用工程师

……
关注读览天下微信, 100万篇深度好文, 等你来看……
阅读完整内容请先登录:
帐户:
密码: