admin管理员组

文章数量:1596343

2024年3月20日发(作者:)

VGA 驱动及实现

HTTP://

基础教程

VGA驱动及实现 基础教程

版本 V 0.0.0 日 期 6/29/2009

开源硬件社区

将随时可能对本教程中的打印错误、与最新

资料不符之处、程序和设备改进做出必要改动。这些改动不再事先通知,但将会编入

新版手册中,并上传到我们的网站上。

本文部分内容来源于互联网,版权归原作者所

有。

版权所有

开源硬件社区

作者:小马哥,可以通过 与我联系!

Copyright 2009-2010

免责声明

开源硬件社区(Http://)

保留本教程的最终解释

权,并不对由于因阅读本文所带来的一切后果(包括商业目的)负责,请大家

慎重使用。

目 录

第一章

VGA简介 ............................................................................................................... 3

一、

VGA简介 ............................................................................................................................................. 5

二、

VGA接口 ............................................................................................................................................. 5

三、

VGA电气特性 ................................................................................................................................... 6

第二章

时序实现 ................................................................................................................. 7

一、

时序介绍 .............................................................................................................................................. 9

二、

时序实现 ............................................................................................................................................ 10

第三章

OVGA项目 .......................................................................................................... 13

一、

项目简介 ............................................................................................................................................ 15

二、

硬件介绍 ............................................................................................................................................ 15

三、

显存 ...................................................................................................................................................... 16

四、

DAC ...................................................................................................................................................... 17

五、

调试端口 ............................................................................................................................................ 18

VGA简介

第一章 VGA简介

3

VGA简介

VGA

简介

本章介绍了

VGA

接口的历史及电气、机械特性。

本章分为以下几个部分:

一、VGA简介

二、VGA接口形式

三、VGA 电气特性

4

VGA简介

一、 VGA简介

显卡所处理的信息最终都要输出到显示器上,显卡的输出接口就是电脑与显

示器之间的桥梁,它负责向显示器输出相应的图像信号。CRT显示器因为设计制

造上的原因,只能接受模拟信号输入,这就需要显卡能输入模拟信号。VGA接口

就是显卡上输出模拟信号的接口,VGA(Video Graphics Array)接口,也叫D-Sub

接口。虽然液晶显示器可以直接接收数字信号,但为了兼容性,大多数液晶显示

器也配备了VGA接口。

VGA是IBM在1987年随PS/2机一起推出的一种视频传输标准,具有分辨

率高、显示速率快、颜色丰富等优点,在彩色显示器领域得到了广泛的应用。目

前VGA技术的应用还主要基于VGA显示卡的计算机、笔记本等设备。 根据分辨

率不同,VGA分为VGA(640x480)、SVGA(800x600)、XGA(1024x768)、SXGA

(1280x1024)等。

虽然说VGA的标准对于现在的个人计算机市场十分过时,但是VGA仍然是

所有制造商所支持的最低标准,例如不管所有厂商的显卡,在不安装自己驱动的

情况下,都是支持 VGA 标准显示的。

二、 VGA接口

VGA接口是一种D型接口(D-SUB),上面共有15针空,分成三排,每排五

个。如图1-1所示。而与之配套的底座则为孔型接口。

图1 -1 VGA接口及底座

5

VGA简介

三、 VGA电气特性

VGA引脚定义如表1所示。

表1:

引脚

1

2

3

4

5

6

7

8

名称

RED

GREEN

BLUE

ID2

GND

RGND

GGND

BGND

描述

RED Video

Green Video

Blue Video

Monitor ID bit 2

Ground

Red Ground

Green Ground

Blue Ground

引脚

9

10

11

12

13

14

15

名称

KEY

SGND

ID0

ID1

HSYNC

VSYNC

ID3

描述

Key (No pin)

Sync Ground

Monitor ID bit 0

Monitor ID bit 1

Horizontal Sync

Vertical Sync

Monitor ID bit 3

引脚1、2、3分别为红绿蓝三基色模拟电压,为0~0.714V peak-peak(峰-峰

值),0V代表无色,0.714V代表满色。一些非标准显示器使用的是 1Vpp的满色

电平。

三基色源端及终端匹配电阻均为75欧姆,如图 1-2 所示。

源端

75

7

75

图1-2 VGA视频信号传输示意图

终端

HSYNC和VSYNC分别为行数据同步与帧数据同步,为TTL电平。

6

时序实现

第二章 时序实现

7

时序实现

时序实现

本章介绍

VGA

时序及实现方式。

本章分为以下几个部分:

一、时序介绍

二、时序实现

8

时序实现

一、 时序介绍

VGA的时序如图 2-1、图2-2 所示。它分为行数据时序和帧数据时序。

Back porch (b) Front porch (d)

Active video time ( c)

DATA

HSYNC

SYNC (a)

Scanline time(e)

Back porch (p) Front porch (r)

Active video time ( q)

DATA

VSYNC

SYNC (o)

Total frame time (s)

图2-1 VGA行数据时序

图2-2 VGA帧数据时序

行数据时序,顾名思义,也就是显示一行数据的时序。从图2-1可以看出,

显示一行数据需要处理两件事情。第一:产生行同步 HSYNC。不难看出,HSYNC

是一个脉冲信号,此信号的周期为: e=a+b+c+d,低电平时间为 a。其中 a、b、

c、d均为时间信号,这些信号根据需要显示的分辨率不同而不同。第二:产生显

示的数据(DATA)信号, 此信号为模拟信号,当在显示有效数据(Active video)

内,DATA信号为0~0.714Vpp的模拟电压(R、G、B),根据分辨率的不同,DATA

的采样率、点数也皆不相同。

帧数据时序与行时序类似,也就是显示一屏数据的时序。只是这里的基本单

位为每行数据,而行数据里面的最基本单位为每个点。

上面提过,不同的分辨率,时序上的时间是不一样的。表2、表3 列出常用

分辨率及时间参数。

9

时序实现

表2 常见刷新率时序表:

显示模式

640x480@60

640x480@75

800x600@60

800x600@75

1024x768@60

1024x768@75

1280x1024@60

1280x800@60

1440x900@60

时钟

(MHz)

25.175

31.5

40.0

49.5

65

78.8

108.0

83.46

106.47

a

96

64

128

80

136

176

112

136

152

行时序(像素数)

b c d e

48

120

88

160

160

176

248

200

232

640

640

800

800

1024

1024

1280

1280

1440

16

16

40

16

24

16

48

64

80

800

840

1056

1056

1344

1312

1688

1680

1904

o

2

3

4

3

6

3

3

3

3

帧时序(行数)

p q r s

33

16

23

21

29

28

38

24

28

480

480

600

600

768

768

1024

800

900

10

1

1

1

3

1

1

1

1

525

500

628

625

806

800

1066

828

932

表3常见刷新率时序表(时间):

显示模式

640x480@60

640x480@75

800x600@60

800x600@75

1024x768@60

1024x768@75

1280x1024@60

1280x800@60

1440x900@60

时钟

(MHz)

25.175

31.5

40.0

49.5

65

65

108

83.46

106.47

a

3.81

2.03

3.2

1.62

2.09

1.22

1.04

1.63

1.43

行时序时间(μs)

b c d

1.9

3.8

2.2

3.2

2.46

2.23

2.3

2.4

2.18

25.4

20.3

20

16.16

15.7

12.99

11.85

15.3

13.52

0.635

0.507

1

0.323

0.37

0.203

0.444

0.76

0.75

e

31.7

26.7

26.4

21.3

20.6

16.6

15.6

20.1

17.9

o

.006

0.08

0.1

0.06

0.12

0.05

0.05

0.06

0.05

帧时序时间(ms)

p q r

1.048

0.426

0.6

0.45

0.599

0.466

0.6

0.48

0.5

15.25

12.8

15.84

12.8

15.87

12.78

16.0

16.1

16.1

0.317

0.026

0.026

0.021

0.062

0.016

0.015

0.02

0.017

s

16.6

13.3

16.6

13.3

16.6

13.3

16.6

16.6

16.6

二、 时序实现

VGA时序的实现有很多方式,可以用专用芯片,可以用快速的CPU,也可用

可编程器件来实现。这里采用廉价的可编程器件,来产生VGA所需的时序。

由于目前液晶显示器的普及,而高于60Hz的刷新率对于液晶来说,没有任

何意义,所以我们以800x600在60Hz的刷新率下为例,解说VGA时序的产生。

从表2可以看出,800x600@60Hz,需要40.0MHz的驱动时钟,经过计算可知,

HSYNC 信号频率为 37.8787kHz,低电平脉冲时间为3.2μs。详细verilog代码如下:

10

时序实现

module VGA(dclk,db,r,g,b,hs,vs,addr);

input dclk; //40MHz 800x600

input db;

output addr;

output r,g,b,hs,vs;

reg hs,vs;

reg[10:0] count_v,count_h;

reg[18:0]addr;

wire[15:0]db;

reg flag;

wire[4:0] r;

wire[5:0] g;

wire[4:0] b;

assign {r,g,b}=(flag==1?db[15:0]:0);

//Hsync clock generator

always@(posedge dclk)begin

if (count_h == 1056)

count_h <= 0;

else

count_h <= count_h+1;

end

//Vsync clock generator

always@(posedge dclk)begin

if (count_v == 628) count_v <= 0;

else if (count_h == 1056) count_v <= count_v+1;

end

//Hsync and Vsync generator.

always@(posedge dclk)begin

if (count_h == 0) hs <= 0;

if (count_v == 4) vs <= 1;

if (count_h == 128) hs <= 1;

if (count_v == 0)vs <= 0;

if (count_v > 27 && count_v < 627)begin

if ((count_h > 216) && (count_h < 1017)) begin

flag <= 1;

addr <= addr+1;

end else flag < =0;

end else addr<=0;

end

endmodule

11

时序实现

12

OVGA项目

第三章 OVGA项目

13

OVGA项目

OVGA

项目

通过本章,可以了解、学习

OVGA

开源项目。

本章分为以下几个部分:

一、项目简介

二、硬件介绍

三、显存

四、DAC

五、调试端口

14

OVGA项目

一、 项目简介

OVGA是 【开源硬件社区 】推出的开源 VGA 驱动项目。项目包括

硬件实现、软件驱动等,所有资源开源。

当前显示器越来越廉价,如果用显示器作为嵌入式设备的显示终端,不管从

显示效果和成本上,都比常用的单色液晶、低分辨率彩色液晶等都有优势。本项

目利用廉价的可编程逻辑器件,实现了 800x600分辨率,60Hz刷新率的下的真彩

色(16bit色)显示。通过外部预留的总线接口,可以与单片机、ARM、DSP等嵌

入式处理器相连,作为人机界面。

二、 硬件介绍

1

2

3

4

5

6

7

8

14

13

12

11

9 10

15

OVGA项目

OVGA硬件分为两部分:OVGA模块和测试平台。两部分独立工作,虽然PCB

连在一起,但是可以掰开独立工作。两部分是通过24p连接线连接在一起的。

OVGA模块供电可以选择3.3V或者5V供电,通过板子上的跳线选择。

为了便于与其他系统连接,OVGA模块包含了两套接口,24脚底座和FPC

连接器。下面介绍下系统资源:

1. USB调试器接口;

2. 3.3V、5V供电选择;

3. OVGA模块上,24p连接器;

4. 显存芯片61LV25616;

5. 外接电源(可接独立外接电源);

6. 主逻辑芯片 EPM240T100C5;

7. 指示LED,分别为电源指示、下载指示;

8. 两个设定跳线,备用;

9. 系统时钟,80MHz有源晶振;

10. CPLD 调试接口;

11. VGA接口,工作时接到显示器上;

12. FPC 24脚接口;功能等同 3;

13. 测试平台 24p接口,用计算机下载图片时,连接于 3;

14. USB 转并口芯片 CH341A。

三、 显存

800x600分辨率16bit下,一屏幕的数据有 960k 字节。我们选用 61LV51216

作为显存,存储一屏幕的数据。由于61LV51216时钟最快可以到125MHz,而我

们实现的显示方式只需要40MHz的驱动时钟,所以我们可以用80MHz的时钟去

16

OVGA项目

驱动61LV51216,这样可以用时钟的偶数周期对RAM进行写,而用奇数周期对

RAM进行读。进而避免了刷屏幕时(读RAM)写屏幕数据的逻辑冲突问题。

四、 DAC

CPLD只能输出数字信号,而VGA需要的R、G、B是模拟信号,所以我们

需要进行 模拟-数字 转换即 DAC 功能。实现视频DAC我们可以选用专用的芯

片,但是那样价格昂贵,这里我们选用 R-2R电阻网络作为视频 DAC,从最终测

试结果上看,此方法的显示效果是理想的。没有雪花、抖动、颜色也正。当然如

果在要求较高的场合,是必须选用专用 DAC 芯片的。

16bit 真彩色显示,RGB分别占的位数为5:6:5模式,也就是红色用5位、

绿色用6位、蓝色用5位来表示。下面就用红色5位来说明R-2R的选取。

由于DAC是一个线性的模型,所以当红色5bit 输出都是高电平的时候,我

们需要得到 0.714V的电压,拓扑结构如图 3-1所示。

0.714V电压输出

3.3V

Rx

75

图3-1 R-2R 视频DAC模式拓扑结构

CPLD的输出电压为 3.3V,Rx为 5bit R-2R电阻网络并联而得,所以可以得

到如下方程:

Rx+75

3.3

=

75

0.714

(1)

设基准电阻为Ra,则:

Ra // 2Ra // 4Ra //8Ra //16Ra = Rx (2)

根据式(1) 、 (2),求解得到,Rx=271.6,Ra=526.2。所以我们选择 500,

1k,2k,4k,8k作为电阻网络,为了保证电阻的一致性,我们选用了1k、2k的排

阻并联、串联的形式。

17

OVGA项目

五、 调试端口

为了便于调试、测试,我们选用了USB转并口芯片CH341A,对模块进行数

据下载。CH341A为 易用的国产新片,其使用简单,价格低廉,我们可以通过简

单的API调用,来实现数据的下载。

CH341A支持的API为 open,close,write0,wirte1,read0,get_driver_ver、

get_device_name等。

OVGA PC测试平台软件为 ,可以通过这个软件下载图片到显存、

填充颜色到显存及做些简单的图像变换。其主要功能如下:

18

本文标签: 时序接口数据