上周末和好友小陈继续探讨VGA的真彩色硬件电路时,他给我提供了一个很新颖的想法(至少我个人这么是这么认为的)。
一般的VGA做8色的设计其实硬件电路无非下图所示:
虽然严格来说五个信号接口的逻辑高电平是0.7V,但是接3.3V加个电阻其实也是可以工作的。对于这个电路,因为颜色信号接口VGA_R,VGA_G,VGA_B都是模拟电平输入(0-0.7V),理论上来说每个信号是可以有256(就是把0-0.7V电压256等分)个电平值,那么RGB三个信号接口一共最多就会有256的3次方就是1400多万种色彩,在需要做真彩色的设计中一般都是需要AD模块的。但是如果仅仅用VGA来显示诸如工业上的一些简单的菜单,就不需要那么丰富的色彩,也许8色,也许64色或者256色就足够了。
一种64色VGA的设计思路
上面的电路就是基于8色的设计,同样的硬件电路,我们就提出了一种64色的设计方案。如何实现呢?且听我慢慢道来,如果我用50MHz的时钟做一副800*600的图片显示,刷新频率是75Hz,上面的电路的确只能显示8色。而如果我把时钟频率提高到100MHz时,还是显示一副800*600的图像,那么刷新频率就会达到150Hz,现在就要提出我们的构想了。我们知道,一般人眼对于75Hz的频率其实是比较好的一种视觉效果,而如果我把现在的150Hz的一幅图片显示变成两幅图片交替显示,那会是怎样一种效果呢?很显然,由于在原来75Hz显示时的理想视觉时间里,RGB每个信号会出现2bit的数据,而6种不同颜色灰度叠加在一起又会是怎样一个效果呢?先看看下面这个图吧:
左边和中间分别是在RGB送红色数据和绿色数据的效果(手机拍的,可能绿色效果不好),而右边却是前后两次交叉送红色和绿色数据的效果,由于绿色和红色的叠加其实出现的颜色是第三色了(应该是有点深绿色了),那么同样道理,原先的3bit图像数据,在我们提高频率交叉送数据的情况下就会变成了6bit的图像数据,那么也就能够达到64色了。
由于手头不方便接100MHz的晶振,上面这幅图是我用50MHz的时钟做的,红色和绿色是75Hz的刷新率。而深绿色严格说应该是75/2Hz的刷新率,肉眼看其实还是会有闪动的。这个实验说明了这个思路有一定的可行性,但是如果时钟上到100MHz(甚至150MHz,理论可以达到512色)以后情况如何呢?VGA接口能接受如此快的传输速率吗?等我手头有器件了我会着手实践一下的!
|