目前很多
soc厂商的微处理器芯片都集成了lcd控制器,如三星公司的s3c2410.s3c2440,intel的xscale系列等。大多数
嵌入式系统也采用流行的lcd显示技术。但是在需要大屏幕显示、对分辨率要求不高的场合,如车间、厂房,采用大屏幕lcd则成本过高。另一方面,vga显示技术因为技术发展成熟,成本低廉,仍在被大量使用,直到今天它仍是所有显示终端最为成熟的标准接口。如果让嵌入式处理器直接支持vga显示器,则能很大地利用现有资源,节约系统成本。
1 基于s3c2440的vga显示技术分析
通过分析vga显示技术的时序逻辑与s3c2440内部集成lcd控制器驱动tft lcd的时序逻辑,找出它们的共同点,分析在s3c2440上应用vga显示接口的可行性。
1.1 vga显示原理
vga(video graphics 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:确定行数据