APP下载

基于CPLD的TFT-LCD控制器的设计

2011-10-09李辉祥黄光明

电子设计工程 2011年23期
关键词:坐标值微控制器寄存器

李辉祥,黄光明

(华中师范大学 物理科学与技术学院,湖北 武汉 430079)

1972年,美国人 (西屋公司)首次提出一个全新的构思——薄膜晶体管液晶显示器 (Thin Film Transistor-Liquid Crystal Display),英文缩写 TFT-LCD[1]。 此后,TFT-LCD 便经历了飞速发展。发展至今,TFT-LCD占LCD市场的比例超过90%,成为液晶乃至整个平板显示技术领域的主导技术,其产品应用包括便携式移动产品、桌面显示器、电视机、特殊工业、航空、医辽用途以及公共显示等领域[2]。TFT-LCD之所以能取得如此惊人的成绩,与它的出色品质是分不开的——TFT-LCD是目前唯一在亮度、对比度、功耗、寿命、体积和重量等综合性能上全面赶上和超过CRT的显示器件[3]。

使用彩色TFT-LCD需要为其提供较复杂的时序信号,并配备高速大容量显存。因此,TFT-LCD控制器显得十分重要。目前对TFT-LCD的控制方式主要有3种:1)使用专用TFT-LCD控制芯片,如台湾瑞佑科技股份有限公司的RA8875;2)使用内置TFT-LCD控制器的 MCU,如三星公司的S3C2440;3)基于FPGA或CPLD设计的 TFT-LCD控制器。然而,使用专用显示芯片进行产品开发易受器件断档影响,不利于长期量产。另一方面,并不是所有的嵌入式处理器都内置TFT-LCD处理器,尤其是在中低端领域。因此,基于FPGA或CPLD设计的TFT-LCD控制器显得灵活性更强,并且性价比较高[4]。

基于FPGA或CPLD设计TFT-LCD控制器时,系统的难点在于如何解决MCU或TFT-LCD同时访问SRAM所造成的冲突。常见的做法有两种:1)基于“乒乓操作”的思想,使用双倍的存储容量,MCU和LCD按照时间片轮转的方式轮流访问SRAM;2)设计合理的总线仲裁逻辑,结合FIFO的特点优先响应MCU对SRAM的写操作。在方式1)中,存储容量的加倍很显然会带来成本和体积的增加。对于方式2),如果MCU长时间对SRAM发送数据,LCD将得不到显示数据而出现花点[5]。

针对上述弊端,本文提出一种基于CPLD的TFT-LCD控制器的设计方案。以CPLD为核心器件,外加相应容量的SRAM作为显示缓存,为TFT-LCD提供完整的时序信号及数据。同时仿照单片机响应外部中断的工作方式,成功实现MCU和TFT-LCD对SRAM的共享访问。

1 总体结构及工作原理

系统整体框图如图1所示,LCD控制器主要包含CPLD和SRAM两款芯片。SRAM可根据所用TFT-LCD分辨率的大小和设定RGB数据的位宽合理选择容量,例如LCD的分辨率为320×240,RGB数据位宽为16,则SRAM的容量最小为76 800个字,选取128 k字的容量比较合适。CPLD相对于FPGA,固件掉电不丢失,一旦编程完毕便可作为一个相对独立的模块在系统中使用。

图1 系统整体框图Fig.1 Overall block diagram of the system

CPLD作为系统的控制核心,需要完成诸多功能:接收外部MCU的数据和命令;生成TFT-LCD所需的时序信号;实现MCU和TFT-LCD对SRAM的共享访问。因此,CPLD固件的设计是系统的关键,其质量直接影响最终的显示效果。

2 CPLD固件设计

CPLD的功能框图如图2所示,可以看出CPLD要实现的功能模块主要包括MCU接口模块、SRAM读写模块和LCD时序发生模块。这部分将对各个模块逐一作简单说明。

2.1 MCU接口模块

MCU接口模块负责接收微控制器的数据,并转换成相应的地址和数据以对SRAM进行写操作。除了常规的总线操作信号,如地址、数据、地址锁存信号和写信号,该模块还要求微控制器发送一个握手信号,用“1”和“0”表示。

在具体应用过程中,微控制器需要完成的工作很简单,那就是告诉LCD控制器把哪一个像素点点亮成哪一种颜色。像素点的区分可以根据行列坐标值来指示,颜色的区分可以根据LCD的参考手册给出的RGB值来进行,于是微控制器需要发送的数据有3种:行坐标值、列坐标值和RGB值。MCU接口模块使用3个寄存器分别接收这3种数据,然后将行列坐标值映射成SRAM中对应的地址,并使用寄存器暂时存起来,RGB值直接存入该地址单元即可。例如,LCD屏的分辨率为320×240,行坐标值为H_Value,列坐标值为V_Value,则映射到SRAM的地址为H_Value×320+V_Value。

为了保证上述通信的正确性,握手信号是必不可少的。握手信号的‘1’和‘0’分别指示“发送”状态和“空闲”状态,其意义在于告诉MCU接口模块何时进行地址映射。如果在“发送”状态进行地址映射,则可能将新接收的行坐标值与还没来得及更新的旧的列坐标值进行映射操作,这显然会计算出一个错误的地址,最终导致LCD上出现不应该存在的花点。因而地址映射操作只能在“空闲”状态进行,这样才能显示出正确的图像。

图2 CPLD的功能框图Fig.2 Functional block diagram of CPLD

2.2 SRAM读写模块

SRAM读写模块是整个固件设计的关键部分,既要完成MCU接口模块对SRAM的写操作,又要满足LCD对SRAM的数据需求。LCD需要的数据是一段段的数据流,而微控制器发送数据的动作却是随机的。因此SRAM读写模块必须在不破坏正常数据流的前提下,达到一定的实时性要求,做到不丢失微控制器发送的有效数据。

为了达到上述目的,本方案借鉴单片机响应外部中断的思想——在每个机器周期都检测一次外部中断。按照这种思路,SRAM读写模块将微控制器发送数据的动作看成外部中断,每间隔一定数量的读SRAM操作便插入一个写SRAM的操作。只要SRAM读写模块的工作频率足够高,便可以及时响应微控制器发送数据的请求。

LCD的工作频率一般都有标称值,或是在某一个比较小的范围内波动。假设LCD的工作时钟为DCLK,其频率为fD;SRAM读写模块的工作时钟为SCLK,其频率为fS。本方案设置fS=3fD,且图2中数据缓冲单元由四个寄存器组成,分别是m0、m1、m2和m3。现分以下两种情况加以详细说明。

第一种情况,当LCD的数据请求信号有效时。数据缓冲单元会按照DCLK的节拍依次从m0、m1、m2和m3中取出数据送到RGB数据线,而且取出m3中的数据后返回到m0取数,即让m0、m1、m2和m3组成一个循环队列。与此同时,SRAM读写模块按照SCLK的节拍,以12个SCLK为一个动作周期。在该动作周期的前9个SCLK顺次累加地址从SRAM中读取数据,并更新到m0、m1、m2和m3中;在后3个SCLK插入一个写SRAM操作,而写SRAM的地址和数据来自MCU接口模块中等待的地址寄存器和数据寄存器。如此一来,m0、m1、m2和m3中各个寄存器的更新一定发生在读取本寄存器之前,保证了数据的正确性。同时可以及时响应微控制器的写数据请求,做到不丢失数据。该部分状态转移图如图3所示。

图3 读写SRAM状态转移图Fig.3 State transition diagram when reading or writing SRAM

第二种情况,当LCD的数据请求信号无效时。因不需要从SRAM中读取数据,这段时间便全部被用来执行写SRAM的操作。只要微控制器不发送数据,MCU接口模块中的地址寄存器和数据寄存器便不会改变,此时即使重复向SRAM中某个单元写入相同的数据也不会影响显示效果。

2.3 LCD时序发生模块

该模块的主要功能是生成LCD要求的时序信号[6],并向SRAM读写模块发送正确的数据请求信号。

LCD的时序信号可分为两类:一是在HV模式下的行同步信号 (HSYNC)、场同步信号 (VSYNC)和数据使能信号(DEN),二是在DE模式下的同步信号DE。这两类LCD时序信号的产生过程很相似,只要多个计数器协调工作,很容易产生这些信号。为便于观察,现以DE模式为例,其仿真图如图4所示,从图4中的Hsync和den信号可以看出DE信号的生成过程[7]。

图4 DE信号仿真波形图Fig.4 Simulation diagram of DE signal

本模块的数据请求信号ramread_bit实际就是HV模式下的数据使能信号DEN或DE模式下的DE信号左移一个DCLK产生的,它的目的是指示SRAM读写模块何时需要更新数据缓冲器,并在每一行的扫描前一个DCLK准备好数据。仍以DE模式为例,其仿真图如图5所示。

图5 数据请求信号ramread_bit仿真图Fig.5 Simulation diagram of data requesting signal ramread_bit

3 功能实现及验证

本测试平台采用altera公司MAXⅡ系列产品EPM240T100C5N和ISSI公司的SRAM产品IS63LV1024,而液晶屏选用台湾奇美电子的产品LO035NC111。LO035NC111是一款3.5寸的TFT-LCD,显示数据位宽最大支持24位,本方案使用R5G6B5格式。显示效果如图6所示,测试表明本控制器达到了预期设计指标。

4 结束语

本TFT-LCD控制器以低成本的MAXⅡ系列CPLD为基础,外加一片适当容量的SRAM为显示缓存,适用于驱动小尺寸TFT-LCD。经测试,工作稳定可靠,性价比高。

图6 显示效果图Fig.6 The result of display

[1]毛学军.液晶显示技术[M].北京:电子工业出版社,2008.

[2]李维提,郭强.液晶显示应用技术[M].北京:电子工业出版社,2000.

[3]王大巍,王刚,李俊峰,等.薄膜晶体管显示器件的制造、测试、与技术发展[M].北京:机械工业出版社,2007.

[4]胡健生,罗卫兵,钱渊.嵌入式TFT-LCD控制器的设计 [J].计算机工程,2010,36(5):237-239.

HU Jian-sheng,LUO Wei-bing,QIAN Yuan.Design of embedded TFT-LCD controller[J].Computer Engineering, 2010,36(5):237-239.

[5]余春蕾,张长明.基于FPGA的TFT-LCD控制器的设计[J].应用设计,2008,45(5):1-2.

YU Chun-lei,ZHANG Chang-ming.Design of TFT-LCD controller based on FPGA[J].Application Design,2008,45(5):1-2.

[6]李兵兵,黄子强.用于LCD测试系统的程控驱动器设计[J].现代电子技术,2010(22):184-186,190.

LI Bing-bing,HUANG Zi-qiang.Design of program-controlled driver used for LCD test system[J].Modern Electronics Technique,2010(22):184-186,190.

[7]夏宇闻.Verilog数字系统设计教程[M].2版北京:北京航空航天大学出版社,2008.

猜你喜欢

坐标值微控制器寄存器
STM32和51单片机寄存器映射原理异同分析
Lite寄存器模型的设计与实现
基于二分法迭代的凸模数控铣削加工编程*
物联网技术在微控制器实验教学中的应用
基于宏程序的数控车削加工应用
Atmel针对新一代物联网应用发布全新32位微控制器
最新STM32设计工具增加对混合信号微控制器的支持
意法半导体(ST)推出世界首款基于ARM Cortex-M7的STM32 F7系列微控制器
高速数模转换器AD9779/AD9788的应用
一种可重构线性反馈移位寄存器设计