嵌入式系统的VGA接口设计

发布 2022-10-21 08:34:28 阅读 6016

嵌入式系统的vga接口设计(包含各种vga接口的设计)

作者:王瑛卢修文王超亮**:北京工业大学电子信息与控制工程学院2009-3-3012:14:27[收藏][评论]

嵌入式系统的vga接口设计(包含各种vga接口的设计)

发布时间:目前越来越多的嵌入式处理器上集成了lcd控制器。典型的如三星的s3c2410a,intel的xscale系列。

这样可方便地外接大屏幕的lcd,且分辨率也能达到640×480,甚至800×600;色深能从6.5万色(16位)到26万色(18位)。但是大屏幕lcd的**都比较昂贵。

另一方面,普通计算机的vga接口显示器,保有量巨大、技术成熟,如果能通过接口转换手段,让嵌入式处理器直接支持vga显示器,则能很大地利用现有资源,节约系统成本。

lcd接口转换为vga接口。

vga(videographicsarray)接口信号为模拟信号。其关键信号有5个,分别是horizontalsync水平同步信号(也叫行同步信号),垂直同步信号verticalsync(也叫场同步信号),red红色,green绿色和blue蓝色。电子枪从左至右,从上至下地进行扫描,每行结束时,用行同步信号进行同步;扫描完所有行后用场同步信号进行场同步。

因电子枪偏转需要时间,所以扫完回转中,要对电子枪进行消隐控制:在每行结束后的回转过程中进行行消隐;在每场结束后的回转过程中进行场消隐。消隐过程中不发送电子束。

扫描式lcd接口(以s3c2410a的lcd控制器为例图1),在每一场完毕后,也是用vsync来进行场同步;每一行完毕后,也是用hsync进行行同步;也有vclk像素时钟,用于锁存数据;

其场同步信号,宽度为(vspw+1),之前有场消隐前肩(vfpd+1),之后有场消隐后肩(vbpd+1);

其行同步信号,宽度为(hspw+1),之前有行消隐前肩(hfpd+1),之后有场消隐后肩(hbpd+1);

可以发现,扫描式lcd接口的同步信号时序和vga接口是一致的。原因是发明lcd后,尽管显示原理不同,但为了在时序上和crt兼容,也采用了这样的控制时序。基于此,完全能将lcd接口转换为vga接口。

图1三星s3c2410a的lcd信号时序图(来自s3c2410a数据手册)方案实现。

vga接口只需hsync和vsync两个同步信号和rgb三个色彩分量信号。而扫描式lcd接口的同步信号的时序和vga接口的完全一致,可直接把两个同步信号接入vga接口。s3c2410a的lcd控制器输出的是rgb数字信号。

因此若用一些dac芯片把rgb数字信号转换为模拟信号,即可实现vga接口的rgb信号输入。这类**专用dac芯片较多,例如adi公司的adv7120;chrontel公司的ch7004c。实验中选用的chrontel公司的ch7004c。

s3c2410a的lcd控制器与ch7004c的连接如表1。

表1s3c2410a的lcd控制器与ch7004c的连接。

在选择数据格式时,rgb565较合适,因为16位数据已经有6.5万色,完全足够;24位数据时每个像素实际占用32位,4个字节,传输时对s3c2410a的总线资源占用太大。

整个电路原理图如图2所示。其中一些需要注意的地方有:

ch7004c工作在从模式下,由s3c2410a的i2c控制。在实验中使用的是精度较好的日本村田(murata)的阻容元件,包括10k,360欧,75欧和10pf的电容。10k用于i2c总线的上拉,360欧用于rset引脚接地;75欧为r,g,b三个输出管脚和地之间的终端电阻,10pf电容用于晶振。

另外,ch7004c的iic地址,是通过把addr引脚拉高或拉低来设定;接地时,根据芯片手册,其7位的i2c地址为1110110,最后加一个读/写位。

图2ch7004c的电路原理图ch7004c的关键寄存器及设置。

ch7004c片内有25个寄存器。其中比较关键的是displaymode,inputdataformat,syncpolarity三个寄存器。displaymode显示模式寄存器,片内地址0x00,输入分辨率为640×480,由芯片手册,可选模式从mode13到mode17均可。

实验中选择的是默认的mode17,对应参数为0x6a。inputdataformat输入数据格式寄存器,片内地址是0x04,因为输入的数据格式为rgb565,且需打开pass-through模式,故对应参数为0x20。syncpolarity同步信号极性寄存器,片内地址0x0d,根据输入的hsync和vsync的极性来设定,如果是均为负脉冲,则把vsp位和hsp位都置0;如果均为正脉冲,则把vsp位和hsp位都设置为1。

实验中,把s3c2410a的lcd控制器的同步信号极性均设为低电平有效,故参数为0x00。

s3c2410a的lcd控制器设置。

作为输出源,s3c2410a的lcd控制器也需要进行相应设置。需要的输出分辨率是640×480,16位色(rgb565格式),刷新率60hz。一共有lcdcon1到lcdcon5共5个寄存器需要设置,具体参数要参考vga时序规范和lcd时序图(图1)。

所需设置的寄存器如表2。

表2s3c2410a的lcd控制器中需要设置的寄存器。

实验及数据。

实验中,选择的操作系统嵌入式linux,内核版本2.4.18,图形系统是qtopia1.

7.0。bootloader选用的韩国mizi公司的vivi。

上电后,vivi将进行初始化,其中包括设置ch7004,然后再引导进入linux。对ch7004的操作,完全可以看作对一个iic接口的eeprom来进行,可专门定义一个函数iic_write()来写数据。例如对idf寄存器的设置为i2c_write(0xec,0x04,0x20)。

设置好后,ch7004的所有寄存器数据如表3。

实验中还发现,设定spr同步信号极性寄存器时,如果都设同步信号为正脉冲有效,接显示器也能正常显示,但是有闪烁。负脉冲有效则无这种情况,故推荐均设置为负脉冲有效。

表3正常工作时,ch7004c的各个寄存器读出的数据。

结语。本文提供的lcd接口转换为vga接口的解决方案,经过实际验证,切实可行。在linux和windowsce4.

2两种嵌入式操作系统下均进行了测试,linux下vga显示器的画面非常稳定;在windowsce4.2下基本稳定,略有闪烁。该方案最大特点在于让嵌入式系统直接支持vga显示器,具备较大的实际应用意义。

嵌入式ARM嵌入式系统设计

摘要 本系统设计了基于arm系统的嵌入式硬件平台,其中主要介绍了系统母版的具体电路实现,其硬件电路已经通过了信号完整性分析。中国 网 关键词 arm 嵌入式系统 中图分类号 tp368.1 文献标识码 a 文章编号 1007 9416 2012 12 0104 01 1 序言 本系统是设计一款基于a...

嵌入式linux与嵌入式系统设计

ustc bbs embedded斑竹d j主讲。感谢hongtao chen以及networking斑竹jun zxjun的大量幕后工作!感谢james zhang以及网络中心提供聚会的场地和大力支持!欢迎访问我的主页。聚会详情如下 名称 嵌入式系统设计以及嵌入式linux展望 时间 本周星期天 ...

嵌入式嵌入式系统原理与设计

第六章 iic总线。一 iic总线介绍 i2c总线 1.结构。2.工作原理 a b 主机 主设备 负责生成scl时钟,同时负责发出其实信号s和终止信号p 从机 从设备 被主机寻址的器件。1 a检测i2c总线是否 空闲 如果空闲 高 a发出起始信号 scl高,sda 2 寻址选择目标器件b,发送7位地...