目前很多SOC厂商的微处理器芯片都集成了LCD控制器,如三星公司的S3C2410.S3C2440,Intel的Xscale系列等。大多数嵌入式系统也采用流行的LCD显示技术。但是在需要大屏幕显示、对分辨率要求不高的场合,如车间、厂房,采用大屏幕LCD则成本过高。另一方面,VGA显示技术因为技术发展成熟,成本低廉,仍在被大量使用,直到今天它仍是所有显示终端最为成熟的标准接口。如果让嵌入式处理器直接支持VGA显示器,则能很大地利用现有资源,节约系统成本。
1 基于S3C2440的VGA显示技术分析
通过分析VGA显示技术的时序逻辑与S3C2440内部集成LCD控制器驱动TFT LCD的时序逻辑,找出它们的共同点,分析在S3C2440上应用VGA显示接口的可行性。
1.1 VGA显示原理
VGA(VideoGraphics Arrnay)是IBM公司提出的目前仍然广泛应用于PC的显示接口。该接口具有分辨率高、显示速率快、颜色丰富等优点,在彩色显示器领域得到了广泛的应用。VGA接口在物理上表现为DB15的插座,其中VGA适配器端使用的是阴性DB15标准的接口。其引脚定义如表1所示。
表1 VGA适配器引脚定义
VGA接口使用模拟RGB通道,逐点、逐行扫描。其时序如图1所示。VGA接口信号为模拟信号,其关键信号有5个,分别是Horizontal Sync水平同步信号(也叫行同步信号),垂直同步信号Vertical Sync(也叫场同步信号),红色模拟信号,绿色模拟信号和篮色模拟信号。电子枪从左至右,从上而下的进行扫描,每行结束时,用行同步信号进行同步。扫描完所有的行后用场同步信号进行场同步。因电子枪偏转需要时间,所以扫完回转中,要对电子枪进行消隐控制,在每行结束后的回转过程中进行行消隐,在每场结束后的回转过程中进行场消隐。消隐过程中不发送电子束。
图1 VGA的扫描时序
1. 2 TFT LCD显示屏扫描时序分析
基于ARM920T内核的S3C2440芯片外围集成了LCD控制器,LCD控制器被用来向LCD传输图像数据,并提供必要的控制信号,比如VFRAME、VLINE、VCLK、VM等。除此之外,LCD控制器还包括一组控制寄存器:LCDCON1寄存器、LCDCON2寄存器、LCDCON3寄存器、LCDCON4寄存器、LCD CON5寄存器。这些寄存器的设置与显示屏信息、控制时序和数据传输格式等密切相关,在设计中需要根据显示设备的具体信息正确设置这些寄存器才能使S3C2440正常控制驱动不同的显示屏。
典垂的TFT液晶显示屏的扫描对序如图2所示。
图2 典型TFT LCD扫描时序
其中主要包括:
1)帧(垂直)同步(VSYNC):用高电平(或低电平)表示扫描一帧的起始。
2)行(水平)同步(HSYNC):用高电平(或低电平)表示扫描一行的起始。
3)时钟(VCLK):通过上升沿(或下降沿)把数据写入液晶屏。
4)数据有效控制(VDEN):表示是否开启TFT输出。
5)数据信号(VD):表示每个点的颜色,通常有16位、18位、24位等模式。
通过对比VGA接口的时序和TFT LCD液晶显示屏的扫描时序,可以看出它们很相似。这就为用LCD控制器驱动VGA显示屏提供了内在的可能性。而且一旦实现了这种转接方案,由于是由硬件实现的两种接口的电气转换,不需要写任何驱动程序,是在嵌入式系统平台上扩展VGA接口的最方便的方案。比较两种接口的特性,要实现从TFT时序到VGA时序的转换,需要解决的向题有:
1)TFT液晶扫描同步信号和VGA同步信号的电平问题。
2)TFT液晶控制器的输出是RGB数字接口,而VGA的红绿蓝通道时模拟量,两者需要通过D/A转换。使用D/A要考虑转换精度、转换速度、转换通道数等问题。其中,为满足真彩色(24位)的要求,8位的转换精度就可以。基于VGA对帧频的要求,每个点的转换频率必须大于27 MHz,同时,必须至少有3个通道同时转换,以满足红绿蓝(RGB)3个通道的输出。
针对这种转换的D/A通常称为视频D/A,本设计采用ATI公司的视频D/A芯片ADV7120。
1.3 ADV7120简介
ADV7120是美国ADI公司生产的高速视频数模转换芯片,其像素扫描时钟频率有30、50、80 MHz 3个等级。ADV7120在单芯片上集成了3个独立的8位高速D/A转换器,可以分别处理红、绿、蓝视频数据,特别适用于高分辨率模拟接口的显示终端和要求高速D/A转换的应用系统。
ADV7120的输入及控制信号非常简单:3组8位的数字视频数据输入端,分别对应RGB视频数据,数据输入端采用标准TTL电平接口;4条视频控制信号线包括复合同步信号SYNC、消隐信号BLANK、白电平参考信号REFWHITE和像索时钟信号CLOCK;外接一个1.23 V数模转换参考电压源和1个输出满度调节。只有4条输出信号线:模拟RGB信号采用高阻电流源输出方式,可以直接驱动75 Ω同轴传输线;同步参考电流输出信号Isync用来在绿视频模拟信号中编码视频同步信息。
2 VGA接口电路设计
如前所述,VGA接口的时序和LCD扫描式接口的时序是一致的,利用ADV7120组成的TFT液晶时序到VGA接口的转换模块结构框图如图3所示。
图3 VGA接口电路组成框图
根据ADV7120的数据手册,ADV7120对参考电平的要求度很高,不能以电阻分压电路代替。本设计中采用了1.235 V电压基准芯片AD589来产生参考电压。
3 VGA显示模式的选择及S3C2440 LCD controller中相应控制寄存器的设置
最初VGA的显示包含几种模式,最初VGA的分辨率被定义为640x480,接着更高分辨率的SVGA、XVGA等标准在此基础上被提出,接口上都兼容VGA标准,所以,习惯上把所有这种接口都称为VGA接口。不同的显示模式对应的VGA时序中的时间参数不同,选定一种显示模式后,就要配置LCD控制器,使其产生的时序参数符合VGA模式的要求,这样才能成功驱动VGA接口,否则VGA显示端会闪烁、模糊甚至不显示。
在这里选择分辨率为640x480、刷新频率为60 Hz、16位彩色的VGA显示模式,并在此模式下完成对LCD控制器相关寄存器的配置。使LCD控制器输出的时序逻辑能符合该模式下VGA显示的要求。在该模式下VGA接口同步信号时序如图4所示。
图4 VGA接口同步信号时序
下面根据图4的VGA接口同步信号时序对主要的LCD控制器中的控制寄存器进行配置:
1)LCDCON1寄存器
CLKVAL:确定VCLK频率的参数。公式为VCLK-HCLK/[(CLKVAL+1)x2].在本设计中S3C2440的HCLK=100 MHz,显示屏需要VCLK=20MHz,故需设置CLKVAL=1.
BPPMODE:确定BPP(每像素位散)。选择BPPMODE=0xC,即选择TFT 16位模式。
2)LCDCON2寄存器
VBPD:确定帧同步信号和帧数据传输前的时延,是帧数据传输前延迟时间和行同步时钟间隔宽度的比值,参照图4中的时间数据可知,VBPD=t3/t6=1.02 ms/31.77 μs=32.
LINEVAL:确定显示的垂直方向大小。公式:LINEVAL=YSIZE-1=479.
VFPD:确定帧数据传输完成后到下一帧同步信号到来的一段延时,是帧数据传输后延迟时间和行同步时钟间隔宽度的比值,参照图4中的时间数据可知,VFPD=t5/t6=0.35 ms/31.77μs=11.
VSPW:确定帧同步时钟脉冲宽度,是帧同步信号时钟宽度和行同步时钟间隔宽度的比值。如图4,VSPW=t2/t6=0.06 ms/31.77 μs=2.
3)LCDCON3寄存器
HBPD:确定行同步信号和行数据传输前的一段延时,描述行数据传输前延迟时间内VCLK脉冲个数,如图4,VBPD=t7xVCLK=1.89 μsx25 MHz=47.
HOZAL:确定显示的水平方向尺寸。这里HOZAL=XSIZE-1=639.
HFPD:确定行数据传输完成后到下一行同步信号到来的一段延迟时间,描述行数据传输后延迟时间内VCLK脉冲个数,如图4,HFPD=t9xVC LK=0.94 μsx25 MHz=24.
4)LCDCON4寄存器
HSPW:确定行同步时钟脉冲宽度。描述行同步脉冲宽度时间内VCLK脉冲个数,如图4,HSPW=3.77 μsx25 MHz=94.
5)LCDCON5寄存器
BPP24BL:确定数据存储格式。此处设置BPP24BL=0x0,即选择小端模式存放。
FRM565:确定16位数据输出格式。设置FRM565=0x1,即选择5:6:5的输出格式。
通过如上的方式设计VGA接口电路并相应的设置LCD控制器寄存器,实现了LCD数字输出与D/A转换的无缝连接,不需要任何额外的驱动程序就可以将原来在LCD上输出的图像信息输出到VGA显示屏上。
4 测试与结论
本设计通过分析VGA接口时序与S3C2440TFT LCD接口时序的相同点,论证了用S3C2440自带的LCD controler来驱动VGA显示器的可行性,时序的匹配是本设计成功最关键的地方,在满足接口时序要求的前提下,用高速三路8位视频D/A芯片将LCD接口的数字RGB信号转换成VGA接口所需要的模拟信号。实验证明,图像信息通过VGA转换电路,在显示屏上显示良好,无明显抖动,满足普通的显示要求。由于主机采用ARM嵌入式微处理器,与传统X86主机相比,大大降低了整机系统的成本。这种廉价、简单的显示方案可以广泛应用到各种对显示效果要求不高但要求大尺寸屏幕的场合。