双缓冲实现图形液晶的快速显示

最新更新时间:2012-07-31来源: 21ic关键字:双缓冲  图形液晶  快速显示 手机看文章 扫描二维码
随时随地手机看文章

1. 引言

在嵌入式设备中,液晶已经成为显示器件的首选。液晶类型有字符和图形之分,字符液晶便宜且显示速度较快。在中文显示或者复杂图表显示的场合,需要使用图形液晶。

在液晶接口电路设计时,需要正确使用液晶控制器。典型应用时,特别是在嵌入式系统中,常常采用端口寻址的液晶控制器,如SED1335、T6963C等。这种寻址方式的好处是只占用很少的几个地址空间,并且控制方便。液晶控制器一方面通过外部总线和微处理器相连;一方面通过内部总线与显示缓冲RAM相连;还有一些驱动的控制线和数据线与液晶相连。微处理器通过液晶控制器,采用地址译码方式来执行液晶控制、显示、绘制,以及存贮操作等指令。常用指令有:初始化,显示方式,移动光标,光标处的数据读和写等等。更改显示RAM中的数据,也就更改了液晶屏的相应内容。

作为现在流行的显示器件,液晶有其固有的优越性,但也有严重不足之处。相对CRT等显示器件而言,最主要缺陷是视觉效果差,亮度不足,视角偏小,响应速度慢(“拖尾”现象)。同时,根据前面的叙述,我们可以看到:由于硬件系统的局限性,显示RAM通过内部总线与控制器相连,微处理器对液晶显示RAM 的寻址采用了间接的端口译码方式,而不是速度更快的直接内存寻址。译码的延时会进一步减缓显示速度。表现在用户界面上,很可能出现刷新的延迟,屏幕的闪烁,以及余辉现象,都会引起视觉的不舒适。一方面降低了产品的档次,另外用户长时间操作时会导致眼睛的疲劳,产生厌倦情绪。

2. 基本介绍

无论是LCD还是CRT,进行绘图,都是在“画布”上做清除旧位置的图和重新画新位置的图的操作。当程序执行速度不够快时,我们会看到清除的操作与重画的操作,这就造成了闪烁现象。解决这个问题的方法之一,就是把清除与重画的操作放在另一张“画布”上完成,等到画完后再复制到最后要显示的“画布”上。这种绘图方式就是双缓冲。

实际上,图形的双缓冲显示方式,对于Windows程序设计员来说,一点也不陌生。以MFC绘图机制来说,CPaintDC就是要显示的画布,如果我们使用另外一个兼容的DC来做清除与重画的操作,再把整个DC的图像复制到CPaintDC,就可以避免屏幕闪烁的问题。对于多数嵌入式设备来说,由于MCU的处理速度要慢许多,因此在软件设计中,更需借鉴这种方法,以期提高显示速度,最大限度地降低液晶的显示缺陷。

3. 实现方法

双缓冲方式不仅可以提高液晶显示速度,还可以改善软件模块的封装性和可移植性。实现时,就是在系统存贮器中开辟一块显示RAM 的镜像缓冲区域,此区域保存了预备显示图像的“快照”。当更改屏幕内容时,先更改镜像区域的内容;需要显示时,才把“快照”数据刷新到显示RAM。这样对于用户界面而言,显示速度只取决于“快照”的送入速度。

下面,我们以两种常用的液晶控制器(T6963C和SED1335)为例,说明如何使用双缓冲的方式进行液晶的快速显示。为了简单起见,我们直接选用内藏驱动和控制器的典型图形液晶显示模块。

1) 基于T963C的液晶显示模块SMG24064B

SMG24064B是显示点阵为240*64、控制器为T6963C的液晶显示模块,工作环境是5V/10mA,生产厂家为长沙太阳人。许多液晶生产厂家都有和这款相兼容的产品,如大连东显、深圳拓普微、台湾晶采等。其接口信号说明如下:

表1 SMG24064B信号线说明

 

 

SMG24064B应用时,可以采用总线方式或者模拟口线方式。双缓冲方式只能采用总线方式,通过端口译码来实现。下图是一种典型的接口电路。图中的GAL实现地址译码,当然也可以采用74138等完成译码。译码输出信号连接到T6963C控制器的片选使能端CE,而数据命令选择端C/D可以接地址线A0。

 

 

图1 SMG24064B与8031的总线连接

这样,就得到了两个译码端口,一个端口作为控制口,向T6963C送入命令;一个端口作为数据口,向T6963C送入数据。采用地址译码方式来执行液晶控制、显示、绘制,以及存贮操作等指令。

显而易见,240×64液晶的显示RAM 空间为240/8×64=1920字节。而T6963C控制器内部自带8KB的RAM缓冲区,其中显示缓冲区首地址寄存器对应的后续1920字节的内容就映射到LCD屏幕的相应位置。这样,我们从嵌入式系统MCU扩充的外部RAM中分配1920字节作为镜像显示缓冲(软件编程也就是从外部RAM中分配1920字节的数组),来实现双缓冲显示。对于应用系统而言,如果扩展的外部RAM较大(如32KB)时,分配不到2KB的镜像显示缓冲,开销不算大;但却可以大大改善显示的速度。

这样,LCD的绘图程序,比如画点、画线、填充、字符串显示等,都是在镜像缓冲RAM中操作的;只有两个程序,LCD的初始化程序InitLCD(初始化液晶,设置液晶的显示模式等)和显示程序DisplayLCD(把镜像缓冲数据刷新到T6963C内的显示RAM缓冲),与底层硬件相关。下面是显示程序DisplayLCD的实现流程:

1、 设置液晶显示的起始0地址(数据口写入数据0x00和0x00,命令口写入数据0x24);

2、 设置液晶连续写模式(命令口写入数据0xb0);

3、 把镜像缓冲中的1920个数据连续送入数据口(数据口写入显示数据);

4、 中止液晶连续写模式(命令口写入数据0xb2)。

上述命令指令含义请参见液晶模块或者控制器相关资料。显示程序只在要最终显示的时候才调用,它决定了显示速度,我们可以专门对它进行优化,或者用汇编代码完成,实现最快的显示速度。

当然,如果系统扩展的RAM空间足够时,我们还可以采用三缓冲的方式,也就是在系统RAM中分配两块镜像区域。一块缓冲保存当前显示图形数据,另一块保存下一个图形数据,然后交替地把缓冲区的数据送入显示RAM,完成显示。这种方式适用于以下情况:用户界面的更新多数只是局部更新,因此通过比较两块缓冲数据的不同,显示时只需要送入当前缓冲中不相同的部分数据,可以进一步提高显示速度。

2) 基于SED1335的液晶显示模块EDM320240-2

EDM320240-2是显示点阵为320*240、控制器为SED1335的液晶显示模块,RAM的显示容量为32KB,生产厂家为大连东显。许多320*240的液晶,如DMF50081、LM32019P/T等,都可采用SED1335控制器。 实际上,对于较大的图形液晶,通常采用SED1330/1335系列控制器。此控制器功能强大,具有丰富指令集,与MPU接口有较强的I/O缓冲器,可以管理64K显示缓冲区。具备文本/图形显示特性。可以显示文本区和三个图形显示区的内容(通过软件初始化实现),其中三个图形显示区L1、L2、L3可以单独显示,也可以合成显示。如下图所示:

 

 

图2 EDM320240-2的图形显示区

显而易见,320×240的图形液晶显示缓存至少需要320/8×240=9600字节。而利用三区显示特性时,通过内部总线需要扩充显示RAM为9600×3=28800字节。因此,对于液晶模块厂家来说,硬件设计时通常扩充了32K的显示RAM,如62256。实际上,多数时候我们只用单区来显示就足够了。

在嵌入式应用中,如果需要液晶显示程序有较好的移植性,并且系统RAM足够大,足够分配9600字节的镜像缓冲的话,那么,最好就象上面的T6963C应用示例一样处理吧。分配9600字节的镜像缓冲后,所有的画点、画线、位图等操作,都是在镜像缓冲RAM中完成,你只需要在显示的时候,把镜像缓冲RAM中数据送到显示区。

如果应用系统没有足够的RAM,也不要紧。我们可以巧妙地应用SED1335提供的特性,把显示区L1,L2当成双缓冲,同样实现双缓冲的显示,一样可以使得屏幕画面变化时没有延时和闪烁现象。不过,此时的画点画线操作都与硬件相关,软件模块的移植性不够好。

具体叙述如下:首先关闭显示区L1,L2,L3;在显示区L1上完成“快照”(即画点画线操作),然后打开L1,即单独显示L1;画面变化时,就把变化后的画面“快照”到L2。当需要刷新显示时,关闭L1,打开L2即可。下次再关闭L2,打开L1。如此交替反复。

当然,SED1335具备3个显示区,有效利用可以完成更加有趣的应用,在此不多谈。下图为定时刷新显示的示意图:

 

 

图3 EDM320240-2的图形显示

4. 结束语

采用这种方法,具有很多好处:

1. 显示内容更改快。表现在用户界面上,几乎感觉不到刷新和闪烁。

2. 软件模块封装好。菜单编程模块和刷新显示模块分开。菜单编程模块与具体硬件无关,只对镜像RAM操作。刷新模块才和硬件相关。软件的更改和移植方便。

3. 可以轻松完成许多特技效果,如画面的滚动,平移推拉,交错,百叶窗等。

4. 由于用户界面保存于镜像RAM中,还方便实现远程诊断等功能。

综上所述,双缓冲方式不仅可以实现液晶的快速显示,尽可能地避免屏幕闪烁,延迟,余辉等现象,还可以实现许多有趣和特殊的显示。这种思想也适用于文本型液晶的快速显示,同样也适用于CRT等其他有较大显示容量的显示器件。运用之妙,在乎各人了。

关键字:双缓冲  图形液晶  快速显示 编辑:探路者 引用地址:双缓冲实现图形液晶的快速显示

上一篇:40V高压液晶显示驱动芯片工艺的开发
下一篇:如何使单个LED同时具备光发射和检测功能

推荐阅读最新更新时间:2023-10-17 15:00

新型图形液晶显示驱动控制器CS0108的原理及应用
摘要:CS0108是一种新型图形液晶显示驱动控制器,该器件具有64路列驱动输出,并内含显示存储器,可与行驱动器CS0107配合使用以对液晶屏进行行、列驱动,同时可直接和单片机连接来完成图形及文字的显示。 关键词:液晶显示;驱动控制 1 CS0108的主要特点 近几年来,液晶显示技术以惊人的速度飞速发展,并以其良好的性能和广泛的应用范围日益为人们所重视并接受。本文介绍的CS0108就是一个内带显示存储器的列驱动和控制电路。 CS0108内置64%26;#215;64位显示存储器,显示屏上各像素点的显示状态与显示存储器的各位数据一一对应,显示存储器的数据可直接作为图形显示的驱动信号当显示数据为“1”时,相应的像素点显示;显
[应用]
PIC16F877单片机的图形液晶显示模块接口技术
  引言   由于液晶显示器(LCD)具有功耗低、体积小、质量轻、超薄等其他显示器无法比拟的优点,它广泛用于各种智能型仪器和低功耗电子产品中。点阵式(或图形式) LCD不仅可以显示字符、数字,还可以显示各种图形、曲线及汉字,并且可以实现屏幕上下左右滚动、动画、闪烁、文本特征显示等功能,用途十分广泛。本文在简介液晶显示器MG-12232的驱动器SED1520F0A的结构、功能的基础上,介绍了PIC16F877单片机的LCD硬件接口电路和软件编程特点。   一、PIC16F877与MG-12232的硬件接口电路   1.SED1520F0A的接口信号   SED1520F0A属行列驱动及控制合一的小规模液晶显示驱动芯片,电路简单,
[单片机]
PIC16F877单片机的<font color='red'>图形</font><font color='red'>液晶</font><font color='red'>显示</font>模块接口技术
STM32F4-DISCO 学习之DMA缓冲机制
DMA具备双缓冲机制,可以让数据在传输时候不断流,也就是我们所谓的PING-PONG-BUFFER,也就是说有AB两个BUFFER,DMA访问A时候,CPU访问B,DMA访问B时候,CPU访问A.这种实现导致总线矩阵相对复杂,所以,一般低端MCU也不会有这个机制.但是在做这个机制的试验时候,虽然可以做到PING-PONG BUFFER的传输,但是..却有点小意外.其实双缓冲,在配置过程并不难,比如提供一个配置参考: DMA_DeInit(DMA1_Stream4); DMA_StructInit(&DMA_InitStructure); DMA_InitStructure.DMA_Channel = DMA_Chann
[单片机]
半导体技术快速进步 推动平板显示新变革
“半导体技术自身持续的快速进步,极大地推动了整个电子信息产业生态进步和发展。TFT-LCD为代表的显示器件,是半导体技术替代真空技术这一历史大背景的产物,同时它未来的发展也受半导体领域基本规律影响,并与电子信息产业生态进步发展相适应、相促进。”在9月10日召开的2013国际平板显示产业高峰论坛上,中国光学光电子行业协会液晶分会理事长、京东方集团董事长王东升将《显示行业生存定律》的理论进一步深化,引起了国内外众多专家和学者共鸣。 10年间,我国平板显示技术在取得突破性进展的同时,也伴随着争论和困惑。无论是此前CRT、PDP与LCD之争,还是现在新型显示技术OLED与液晶技术之争,事实证明,平板显示产业正在遵循着王东升提出的
[半导体设计/制造]
快速掌握MAX6954驱动16段单色LED显示器的使用方法
文旨在帮助工程师快速掌握MAX6954驱动16段单色LED显示器的使用方法。 MAX6954是一个通用显示驱动器,能够通过一个串口控制多个分立、7段、14段或16段LED显示器。本篇应用笔记介绍驱动8位单色、16段LED显示器的典型应用与配置。 有关MAX6954的详细信息请参考MAX6954的数据资料。 应用笔记 快速入门: 使用MAX6954驱动7段LED显示器 和 快速入门: 使用MAX6954驱动14段LED显示器 与本文类似,分别介绍了如何配置MAX6954驱动7段和14段显示器。 MAX6954的一个常见应用是驱动多达8位的16段单色LED。本篇应用笔记指导用户如何连接MAX6954与16段显示器,以及如何配置其内部寄
[嵌入式]
<font color='red'>快速</font>掌握MAX6954驱动16段单色LED<font color='red'>显示</font>器的使用方法
MSP430与图形液晶显示模块接口应用(转载)
概述   MSP430F149是德州仪器公司最近推出的MSP430系列超低功耗控制器中的一种,电源电压范围为1.8V至3.6V,可以用电池工作,而且使用时间长,适用于电池供电的手持设备使用。另外,液晶显示器具有功耗低、体积小、重量轻等特点,图形LCD除了显示字符、数字外,还可以显示汉字、图形、曲线等LED无法显示的功能,用途广泛。因此以MSP430为核心的LCD在智能仪器仪表和低功耗电子产品行业有广泛的发展前途。   本文在简单介绍液晶显示器LM12864FBC的驱动器KS0108B和KS0107B的结构和功能基础上,介绍了MSP430F149的LCD硬件接口和软件编程特点。 图1 MSP430F149
[单片机]
点阵式液晶字符反白和图形显示研究
引 言   实验动物独立通气笼盒(Individual Ventilated Cages,IVC)(闭环)监控系统,由微控制器实现对笼盒风扇的通气量、笼盒内部的氨含量等参数采集,并根据这些参数来调整通气风扇转速,以调整笼盒的换气率,从而确保笼盒内部的空气质量。同时,根据相关参数指标发出警报以提醒更换过滤膜等,实现对小动物生长环境的过程控制。   在整个监控系统中,人机交互界面部分用于显示整个实验动物生长环境过程中的控制历史数据、实时控制参数和环境温度参数等。   本文采用以ST7920为控制器的YMl2864R点阵式液晶显示模块(LCD Module,LCM)构成了整个IVC监控系统的人机界面部分。YM12
[单片机]
点阵式<font color='red'>液晶</font>字符反白和<font color='red'>图形</font><font color='red'>显示</font>研究
基于FPGA的缓冲模式PCI Express总线设计方案
引言     近年来软件无线电(SDR)得到了飞速的发展,在很多领域已显示出其优越性。本文的项目背景是通过软件无线电方式实现数字音频广播(DAB)的基带信号处理,这要求软件无线电平台具有高速实时数字信号处理与传输能力。高速可编程逻辑器件(FPGA)和丰富的IP核提供了能高效实现软件无线电技术的理想平台。   1  PCIE总线方案论证     PCIE是第3代I/O总线互联技术,如今已成为个人电脑和工业设备中主要的标准互联总线。与传统的并行PCI总线相比,PCIE采用串行总线点对点连 接,具有更高的传输速率和可扩展性。例如本文采用的8通道1代PCIE 2.0硬核的理论传输速率是4 GB/s ,其总线位宽亦可根据需求选择×1
[嵌入式]
小广播
最新电源管理文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved