营销团队日益迫切地希望工程部门能够在下一代产品中采用提供更大且图像质量更优的显示器。对于咖啡机、烤箱、工厂自动化设备及家用热水器等诸多应用而言这一需求确实存在,当然对于工程团队来说也这会是一项有趣的新挑战。
如何在应用中配置显示器
让我们先来看一下选择显示器时会有哪些选项。这个产业通常会用到很多三个字母的缩写词(TLA),它们虽然很简单,但有时也容易引起混淆。
相信工程界的每位从业者都已经熟知液晶显示器这一概念;即使以后转到其他工作岗位,从事“销售”工作,他们仍会记得曾在实际工作中使用过带LCD显示屏的设备。
其实它的基本原理很简单。两个极化层中间有一个液晶层(夹角90度),如果没有液晶,就不会有光线穿过。
然而,晶体被置于一种螺旋模式中,它可以对两个极化层中间光的偏振进行调整,这意味着所有光线可以从中穿过。当把电荷引入液晶时,液晶会展开或得到调和,从而不再对光振进行调整,此时液晶会呈现黑色。
这种“扭曲”方向是液晶显示器常见的内部构造模式,这便是扭曲向列型液晶显示器(TN-LCD)的来源。“向列型”只是用来描述液晶物理状态的一种表达方式。
彩色显示器可以以这种模式进行配置,每个像素使用三个单独的LCD液晶单元,每个单元配置一个红色、绿色或蓝色的过滤器。然后像素会排成列和行,对列施加电压并且使行触底,一个特定的像素就可以被打开或关闭。
然而,这种方法的问题是,在大显示屏上,当同一列及同一行的几个像素同时被切换时,电荷通过矩阵传播会有很长的延迟,电荷分布到这个矩阵中也会导致对比度较差的情况发生。
通过使用STN-LCD模块,在一定程度上可以解决这个问题。在这种情况下,STN代表超扭曲向列型液晶屏。在STN屏中,90度旋转的液晶将由一个“超级扭曲”—或通常270度的扭曲液晶所取代。
然而,这仍是在建立一个具有带电列和触底行的矩阵,也称为被动模式,它仍带有前面所述及的固有限制。
主动控制提供了更好的对比度且响应时间更短。在主动式液晶显示系统中,每一个液晶单元都配置专用的晶体管,晶体管控制着电池或像素的切换。这时“薄膜晶体管液晶显示屏(TFT-LCD)”便应运而生,它是一种由薄膜晶体管控制的液晶屏,是当今图形显示应用中常见的显示屏。
OLED不是该市场中流行的显示技术,只是一种替代品。基本上它的每个像素都带有LED矩阵。与其他以液晶显示为基础的产品相比,它功率低,更轻便,可以放在柔性表面上。但是,代价昂贵的制造工艺和显示器中蓝色部件相对有限的寿命迟缓了他们被大规模引入市场的进程。
当然,还有一些其他的替代品没有得到广泛应用,但应该被了解,在这里将其介绍如下:
EPD:即电子纸,在电子阅读器和一些手表中得到应用,但不适用于嵌入式非消费品。
LCOS:硅基液晶,用于“近眼”设备或投影仪,但尚未在产业市场中得到应用。
PDP(或等离子):用于老式的大显示屏,但正在迅速被LCD或LED屏取代。
显示器驱动
现在,我们了解显示屏显示图片的原理以及各种显示技术的差异。接下来让我们看看如何实现驱动显示屏。对于较小的显示屏,往往采用被动控制系统,经常可以看到采用新的COG(玻璃上芯片)技术,其中液晶显示器的驱动芯片实际上是被集成到面板玻璃里面了。
这样能够有效降低较小显示屏的成本。大多数情况下,这些显示屏包括一个附加的印刷电路板,其中包含显示屏的控制装置,另外还可以包含一个触摸界面控制器。
在显示方面还有两个选项:显示模块和标准显示器。正如你想象的那样,该完整模块带有保存显示屏图像数据所需的内存,通常是一个简单的SPI接口。
我们此处对更多细节不作详细探讨,但可以肯定地说,虽然它们的价格比标准显示器略高,但却能为初级用户提供更简单的解决方案。
标准显示器有2个标准接口
RGB信号或LVDS信号。对于超过一定量级的(关于WVGA)情况将提供一个LVDS接口,较小量级的情况将提供一个RGB接口。当然,这并非是一成不变的规则,但显示屏越大,越有可能只有一个LVDS接口。
RGB是一个并行接口,每种颜色(红、绿、蓝)由并行总线代表。因此,对于一个24位的彩色显示器来说,将会有24个“数据”位。
这是简单的接口,因为每个像素数据都会以标准的一对一传输的方式被存储到RAM上。有几种不同的RGB标准符号,如RGB666、RGB565,这仅仅表明了每种颜色所拥有的位数。对于RGB666来说,每种颜色都拥有6个数位,因此它拥有18bpp的颜色。除了这些数据信号,还有在面板上同步传输的时钟信号。
面板时钟(或像素时钟)会对整个接口的传输速度进行设定并对随后发生的数据传输进行设置。还有一种Hsync时钟(或水平同步时钟),当跳到下一行时会在多个像素时钟之后显示。
然后以更慢的频率,以Vsync(垂直同步)信号的方式依次显示何时所有的行被写入,并且为显示下一张图片或下一个画面创造了条件。
当然,显示器越大,满足显示屏的刷新率所需的像素时钟速度会更高。因为当外部信号频率变高时,信号错乱的风险也会随之增大。
由于这个原因,更大的显示屏现在倾向于使用LVDS接口而不是标准的并行RGB模式。LVDS代表低电压差分信号。LVDS技术已得到广泛应用,对于这种技术来说,信号的完整性是非常重要的,尤其在高频率情况下。
LVDS信号传输采用双线接口模式(每通道),拥有一个常用电压(通常为1.2 V)。在此条件下,如果要创建“高频”信号,一条线上的电压需要升高100 mV,另一条线上支持信号的电压需要降低100 mV。从而为实现低功耗,高频率,高可靠性的信号传输创造了条件。
显示器通常有四个LVDS通道,分别用于传输红色、绿色、蓝色和时钟信号,这样数据便会以串行方式传输,而不是以并行方式传输。
管理内容
现在我们已经知道这些显示屏是如何设置的,接下来我们把视线转移到这一应用的另一层面,来看看图像内容是如何形成的。首先,让我们先来看一下这些图像是如何储存的。相信大家一定会对自家电脑中储存的JPEG格式度假照片非常熟悉。
但这并非图像所采用的格式,图像以光栅图像或位图的格式进行保存。当然,这比你度假照片的JPG格式要大得多,现在我们来探究一下这些图像是如何保存在内存中的,以及你对这些图像的实际需求程度。
正如我们所言,基本图片储存为位图,所有图片像素经由数据来实现储存和显示。和其他格式一样,不存在数据压缩。它可以是16位或24位色深;若为24位颜色,则每一像素由三个字节来表示。
此时你就能立即明白,这意味着很大一部分内存空间将被占用。例如,一个640x480像素的VGA显示屏会有307,000个像素,显示屏上的每个图像约有900KB的数据。但除此之外,内存的使用问题仍未完结。
一个典型的GUI(图形用户界面)应用程序由若干图层组成。这些图层会在另一层顶部显示。例如,某一层可能是整体的背景图像,而下一层则可能是图片外围的帧,这一图片上显示一些数据,如气温和时间。
第三层可能是一个图表,用以显示应用程序中实时测量的数据。将这些图片存储于不同的层,并因此分布在RAM的不同区域,正是因为你仅需要更改某一小图片,而不用重新计算整个图像。若每次图表更新或气温变化你都需要修改整个GUI的话,将会耗费太多CPU功率。
这些图层到时会通过硬件加速或软件、使用大量各种各样的机制来实现整合。
这里有两个关键概念,一个是阿尔法混合,另一个是色度键控。阿尔法混合定义已知的阿尔法通道。阿尔法通道是额外的8位值,用以加入每一像素的24位色彩信号。
这种阿尔法值定义每一像素的透明度,以使得图层能够在背景层的顶部设为半透明状态。色度键控在内存方面稍微不那么密集,但对图片整合非常有用。色度键控是一种为我们所有人都熟悉,它在电影中广泛应用,又被称作“绿光屏”。演员站在一副绿色帘幕的前方,然后绿色被一段播放着气急暴躁的恐龙追逐他的画面所代替。
在电影制作中,人类肤色通常采用绿色或蓝色,这两种色调没有变过。但实际上,也可以使用红色。这种效果对于创作不同形态的对象大有裨益,只需使用一个正方形,然后在需要去色的对象的周围区域进行着色。
在前面的例子中,我们使用了一个24位色深的VGA显示屏,并且需要900kB的图像数据。现在,让我们设想一下,这一图像仅仅是图像的背景,而且在它的顶部还显示有另外两张图片。
图表有一个,帧将会是其他的层。这些无须全屏,所以在这种情况下,我们只能使用较小尺寸的图像,大概为QVGA尺寸的,每张需要225KB,而且现在所需的总内存大概为1.3MB。 因此,你拥有1.3MB的数据内存来支撑你在展示于银幕之上的现有数据。然而,遗憾的是,你还需要比1.3MB更大一点的内存。这里的问题就易如反掌了。比如,如果一个显示屏中的背景与下一个显示屏中的背景不一致,因而你要更改某一张图片,在该图片仍然显示于显示屏上时,你就必须通过CPU来更改内存中的数据。
这会引起显示屏上的可见闪烁,并且会导致显示屏显示某个图像的一半和下一个图像的另一半。这看起来明显欠佳;尤其是当我们认为显示屏正用于促进为终端客户创造更高价值的命题时。
这个问题通过诸如双重缓冲等概念就可以非常容易地解决。在双重缓冲区,你实际上可以折叠系统中的所有内存以便于下一张图片可以设置在后缓冲区,然后在图片准备好时,你只需从内存中某个区域转换至下一个区域即可。内存的使用空间由此翻了一倍。现在,我们只需2.6MB的内存就能搞定了。
现在,我已为24位色深的VGA显示屏储存了2.6MB的图片数据。当然,也有方法将其扩大和缩小。
用个更小一点的显示屏也是可能的,这会降低内存需求。因为每一像素宽越小,你能在纵列中节省的其他像素就有480。但是,在其他方向也同样如此。XGA显示屏的像素为720x1024,其24位色深的背景图像所需内存为2.1MB,而不是VGA显示屏的900KB。
另一个可以更改的是每一像素的颜色需要使用多少位。在该例中,我们每像素使用了24位,因 为这是时下流行的选择。它的灵活性大,而且确保了显示器在实际操作中能够展示图形化团队意欲搬上银幕的作品。
当然,也能使用设置的8位色深,但这回带来一些其他问题。因为只有255种颜色,所以要遇到的问题也会很多。例如,像显示文本这样的功能都很难实现。
现代字体不单单是由白色背景和带有像素精确数宽度的黑色字母组成。甚至连简单字母都是由一连串的黑色和灰色组成,因此很容易为人的眼睛所识别。
使用小显示屏和8位色深来显示一些数据也是可能的。
考虑到这一点,就驱动显示屏的处理器或控制器而言,也有很多选择。一般的经验法则为,微控制器驱动色神较低、尺寸较小显示屏的好选择,其成本低廉;这对于背景图像只需占用大约150KB(使用16bpp)内存的QVGA尺寸的显示屏(320x240)仍然具有意义。
然而,MCU的带宽以及MCU中的内核性能常常不足以创造真正丰富的用户体验。因此,除了QVGA尺寸,标准选择更倾向于要么MPU,要么新的嵌入式MPU,各大供应商对此均有供货。实际上,选择内嵌好存储器的MPU更为普遍。
结论
总之,为诸多系统加装显示屏的消费潮流正横扫嵌入式电子产品界。这种简单的做法促使OEM走上了产品差异化之路并实现了其终端产品的增值,但同时也为刚刚迈入该领域的设计工程师们提出了新的挑战。就技术、色彩和尺寸而言,显示屏的选择多种多样,几乎每天都在发生新的变化。因为,移动和消费领域不断推动显示技术朝着日新月异、生动有趣的方向发展。
对于新迈入该领域的工程师而言,应在初期就确定下来的关键设计标准是显示屏的尺寸(单位:像素),然后根据这一标准,剩下的大多数决策就显得简单多了。如果采用大显示屏,那么就需要配备大量内存以及支持该内存和界面的控制器或处理器,同时还需要有足够的性能来驱动它。