CN102306089B - 用于计算机硬件实验的远程vga显示的方法 - Google Patents
用于计算机硬件实验的远程vga显示的方法 Download PDFInfo
- Publication number
- CN102306089B CN102306089B CN 201110184762 CN201110184762A CN102306089B CN 102306089 B CN102306089 B CN 102306089B CN 201110184762 CN201110184762 CN 201110184762 CN 201110184762 A CN201110184762 A CN 201110184762A CN 102306089 B CN102306089 B CN 102306089B
- Authority
- CN
- China
- Prior art keywords
- data
- vga
- fpga
- experiment
- sram
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Controls And Circuits For Display Device (AREA)
Abstract
本发明涉及计算机教学实验技术领域,公开了一种用于计算机硬件实验的远程VGA显示的装置及方法,该装置包括:依次连接的:实验FPGA、共享SRAM、控制FPGA、服务器和客户端,其中,所述实验FPGA用于获取进行VGA显示所需要的信息;所述控制FPGA用于读取实验FPGA发送给所述共享SRAM的数据;所述共享SRAM用于供所述实验FPGA和控制FPGA存取数据。还公开了一种利用上述装置进行远程VGA显示的方法。本发明将VGA信号中的信息分为两部分输出,其中一部分输出到共享的SRAM中去,然后让控制FPGA从共享SRAM中读出数据,将数据传送到远程客户端上,从而使远程实验平台能够显示实验FPGA输出的VGA信号。
Description
技术领域
本发明涉及计算机教学实验技术领域,具体涉及一种用于计算机硬件实验的远程VGA显示的装置及方法。
背景技术
远程统一实验平台有个很大的问题在于,实验者编写的硬件描叙语言形成了自己的硬件,但是如果有需要VGA输出的情况,远程统一实验平台没有办法接受实验FPGA输出的VGA信号。这给远程调试带来了很大的麻烦。在这种情况下,远程没有办法看到自己的VGA输出是否正确,或者,在有图形交互的情况下,比如下棋,输入密码等情况,就没有办法看到远程VGA上的情况。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是:如何使得远程实验平台能够显示实验FPGA输出的VGA信号。
(二)技术方案
为解决上述技术问题,本发明提供了一种利用用于计算机硬件实验的远程VGA显示的装置进行远程VGA显示的方法,所述装置包括依次连接的:实验FPGA、共享SRAM、控制FPGA、服务器和客户端,其中,所述实验FPGA用于获取进行VGA显示所需要的信息;所述控制FPGA用于读取实验FPGA发送给所述共享SRAM的数据;所述共享SRAM用于供所述实验FPGA和控制FPGA存取数据,所述方法,所述方法包括以下步骤:
S1、实验FPGA从VGA信号中获取进行VGA显示所需要的信息;
S2、实验FPGA将所述信息发送给本地VGA显示终端,以便显示相应的图像;
S3、实验FPGA将RGB值发送给共享SRAM,控制FPGA采集共享SRAM上的RGB值并对RGB值进行编址;
S4、服务器读取编址后的RGB值,并对该数据进行压缩编码;
S5、客户端从服务器读取到压缩编码后的数据,对该数据进行解压缩和解码;
S6、客户端将解析出来的数据发送到远程VGA显示终端上进行显示。
优选地,所述进行VGA显示所需要的信息包括RGB值、行同步信号和场同步信号,
优选地,步骤S3中,编址的方式为:将RGB值按顺序组成一个9位的数据,然后将该9位的数据按位存入所述共享SRAM的一个32位空间中的最后9位。
优选地,所述装置还包括与所述实验FPGA连接的本地VGA显示终端,以及与所述客户端连接的远程VGA显示终端。
(三)有益效果
本发明将VGA信号中的信息分为两部分输出,其中一部分输出到共享的SRAM中去,然后让控制FPGA从共享SRAM中读出数据,将数据传送到远程客户端上,从而使远程实验平台能够显示实验FPGA输出的VGA信号。
附图说明
图1是本发明的装置结构图;
图2是本发明的方法流程图;
图3示出了行扫描信号与同步信号的关系;
图4示出了共享SRAM中的数据存储格式;
图5是解析结果图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
如图1所示,本发明用于计算机硬件实验的远程VGA显示的装置,包括依次连接的:实验FPGA1、共享SRAM2、控制FPGA3、服务器4和客户端5,其中,所述实验FPGA用于获取进行VGA显示所需要的信息;所述控制FPGA用于读取实验FPGA发送给所述共享SRAM的数据;所述共享SRAM用于供所述实验FPGA和控制FPGA存取数据。
如图2所示,本发明的方法包括以下步骤:
S1、实验FPGA获取进行VGA显示所需要的信息(包括RGB值,行同步信号,场同步信号)
要实现VGA的远程显示,有两方面的事情,一是获取VGA显示所需要的行、场同步信息以及RGB值;二是对获得的这些数据进行处理,然后在本地显示出图像。VGA在显示时会持续不断的刷屏,以此来支持动态图像的显示,但是这样造成的后果是只要不掉电,那么不断刷屏产生的数据几乎无穷大,就造成了获取数据的难度。每刷新一次,就表示一组新的大量数据的产生,如果要完全实现VGA的显示,就必须不断地获取刷新后的数据,但是网络的传输速率以及客户端的数据处理是有限制的,如果在两次刷新的间隔时间内不能将数据全部取走,那么必然会造成实验数据的丢失,这样就不能实现VGA的显示。
通过CPLD/FPGA或其他器件对RGB信号,行、场同步信号等信号的控制,产生所需要的信号值,按照VGA的工业标准,将这些信号传递给VGA接口,即可在显示器上显示出相应的图像,至于VGA接口内部是怎么样实现的,不用考虑。标准的VGA(640×480,60Hz)接口需要提供以下几组信号:3个RGB模拟信号,行同步信号,场同步信号。我们发现当VGA显示所需要的行同步信号上升之后至少0.94us,下一行的数据才可以开始发送。其中,像素数据占用一个周期31.77us中的25.17us,在剩余的6.6us中,像素信息保持为0。
在640×480的标准VGA接口中,每行的像素点不是640个,而是800个,其中多余的160个是行消隐区。如图3所示,行扫描信号每行有一个负脉冲,对应的就是消隐区。640个像素点在25.17us时间内被发送到显示器。在发送完像素信息之后,行同步信号至少经过0.94us后才能变低,然后保持低电平3.77us。
S2、实验FPGA将RGB值与行、场同步信号发送给本地VGA显示终端,以便显示相应的图像
为了测试远程显示的结果与本地显示是否相同,在硬件端,在将数据写入SRAM的同时将数据传给本地VGA显示终端,使得本地能够在显示器上显示出图像。要完成VGA的本地显示是很简单的,只须将行(hs)、场(vs)同步信息以及R、G、B输出值绑定到相应的管脚,即可保证本地的图像显示。在本地用显示器显示图像的时候,实验者按照VGA标准所要求的时序关系(如下表1所示),生成字符坐标点位置,然后针对不同坐标点给出相应的RGB值,将RGB信号与行、场同步信号传给VGA接口,就可以显示出相应的图像了。在远程显示的时候,情况比较复杂,需要考虑的因素众多,所以不能完全按照本地显示的情况来做。需要确定获取哪些数据,在本地显示时,需要获得RGB值,行、场同步信号,在远程显示的时候,要形成图像,RGB值是不可缺少的,因此RGB值是必须获取。行、场同步信号的作用是约定有效显示区的RGB值发送给显示器的时间,也就是将除了行消隐区外的RGB值传递给显示器,那么在远程显示的时候必须对行、场同步信号进行模拟,以此来消除消隐区的RGB值,很显然,这样做不仅增大了获取的数据量,还造成了客户端处理的难度。因此需要想办法在不获取行、场同步信号的情况下得到有效显示区的RGB值。所以只需要确定有效的RGB值就可以了,并把这些值传送给客户端就可以了。
表1
S3、实验FPGA将RGB值发送给共享SRAM,控制FPGA采集共享SRAM上的RGB值并对RGB值进行编址
通过检查现有的硬件连接软件发现,能够传递RGB值的函数就只有两个:读取寄存器函数和读取共享SRAM芯片函数。但是由于寄存器个数太少,存储的数据太少,因此唯一能用的就只有读取共享SRAM芯片,在硬件平台上有一个共享SRAM,拥有个地址,每个地址32位,即共享SRAM可以存储2MB的数据。因此,初步设想可以在硬件端将有效显示区的RGB值存在SRAM里面,客户端通过调用读取共享SRAM函数来获取这些数据,然后在本地进行处理,并显示出图像。因此,本步骤中选择将RGB值发送给共享SRAM。
在将数据写入共享SRAM时,必须约定好保存格式,当客户端调用读写共享SRAM函数获取到数据后,需要按照写入共享SRAM里面的格式对数据进行解析,然后才能获得真实有效的RGB值,解析之后就可以根据这些值画出相应的VGA图像。
将数据写入共享SRAM是本发明的关键。它的成败直接牵涉到后期客户端图像显示的成功与否。客户端需要获取的仅仅是有效显示区的RGB值,因此写入共享SRAM的就是这些数据。下面将对共享SRAM大小与RGB数据大小进行分析。
硬件平台的SRAM总共有个地址,每个地址32位(4个字节),因此,共享SRAM的大小为:219×4B=2097152B=2MB。而对于一个的标准VGA来说,每一个像素点的大小为一个字节(1B),所以每一帧的大小为:640×480B=307200B=300KB,但是根据VGA标准,它会不停的按照帧频率来刷新图像,帧频率是60Hz,也就是说每隔1/60s=0.0167s就会刷新一帧,产生300KB的数据,这也就意味着,刷新第7次的时候,产生的数据大小为:7×300KB=2100KB=2.05MB>2MB,造成SRAM溢出,所以不能正常显示VGA图像,而实际上,由于VGA是在不停歇的刷频,所以不管SRAM有多大,都不可能将所有的RGB值保存下来。
要传给VGA接口的R、G、B值都是3位的,总共9位,所以直接对RGB值进行编制时,将R、G、B按顺序组成一个9位的数据,按位存入一个所述共享SRAM地址的32位空间中的最后9位。例如,假设:R=101,G=110,B=011,则SRAM中对应地址的存储如图4所示。由于客户端在读取数据时,是读取一片连续的地址,而且为了解析数据方便,因此约定数据必须存放在一个接一个的连续地址中,不能间断的存储。当客户端读取数据后,可以按照这个约定来解析数据,最终得到R、G、B的原始值。
要往SRAM里写入数据,需要实现一个接口,通过这个接口来获取实验者的行、场同步信息和R、G、B值,在获取了RGB值之后,再实现将数据写入SRAM。
SRAM的写操作控制受多个信号共同控制,本实验平台中SRAM的OE、CE直接接地,直接由WE高与低来控制何时写入。初始状态,当时钟上升沿到来时,将WE拉低,赋给地址总线当前需写入的地址,并保持一定时间,然后给数据,并将拉高,将总线控制权交给SRAM,写入数据。此过程中需要控制好数据写入的时序。数据只能保持一个时钟周期,即当下一个时钟来临、状态转换时,数据就会丢失。因此数据只有在拉高的同时赋给数据线才能正常写入。
S4、服务器读取控制FPGA的数据(编址后的RGB值,也即VGA显示数据),对数据进行压缩编码
服务器读取到控制FPGA发送来的数据以后,对数据进行进一步的压缩编码以后供客户端读取。这里的压缩编码可以采用比较通用的现有方式。
S5、客户端从服务器读取到VGA显示数据以后,对数据进行解压缩,并且进行解码
数据的获取需要调用读写SRAM函数,该函数会将读取到的数据保存在一个byte数组中。只是在读取数据之前需要检查数据总线的状态,并设置数据总线状态为可读状态。在获取数据之后,下一步要做的就是对这个数组中的数据进行解析。由于获取的数据是保存在byte数组中,一个byte占1个字节,也就是8位,而SRAM中,一个地址的大小是32位,所以SRAM中一个地址的数据对应byte数组中的4个连续元素。根据前面的约定,R、G、B分别是三位,总共应该是9位。也就是说byte数组中保存一个SRAM地址数据的四个连续元素中表示低16位的两个元素才能完整的解析出R、G、B值。实验发现byte数组中连续四个元素中的前两个表示的是低16位,例如,设byte数组为data[length],其中data[k],data[k+1],data[k+2],data[k+3]表示的是一个SRAM地址中的数据,那么其中data[k]和data[k+1]的数据解析之后就是R、G、B的值,如图5所示。
由从图4可以看出,R、G、B值可以按照如下方式解析出来:
R=data[k+1]*27+((data[k]&0xc0)>>1)+31,可以看到R后面的数据是110(G)011(B),对应的10进制就是27。而data[k+1]本身是1。因此1*27得到了最高位的值,然后需要加上R的低两位的值01,那么就需要data[k]的值&去掉低位的,保留高位的,然后右移一位。就得到了R的低两位的数值。然后相加。
G=(data[k]<<2)&0xe0+31同样G的值需要左移两位然后去掉低位的值。
B=(data[k]<<5)&0xe0+31同样B的值需要左移5位然后去掉低位的值得到。
S6、将解析出来的数据直接发送到远程的VGA显示终端上进行显示,本实施例中,显示结果为数字3。
以上所述仅是本发明的实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变型,这些改进和变型也应视为本发明的保护范围。
Claims (4)
1.一种利用用于计算机硬件实验的远程VGA显示的装置进行远程VGA显示的方法,其特征在于,所述装置包括依次连接的:实验FPGA、共享SRAM、控制FPGA、服务器和客户端,其中,所述实验FPGA用于获取进行VGA显示所需要的信息;所述控制FPGA用于读取实验FPGA发送给所述共享SRAM的数据;所述共享SRAM用于供所述实验FPGA和控制FPGA存取数据,所述方法包括以下步骤:
S1、所述实验FPGA从VGA信号中获取进行VGA显示所需要的信息;
S2、所述实验FPGA将所述信息发送给本地VGA显示终端,以便显示相应的图像;
S3、所述实验FPGA将RGB值发送给所述共享SRAM,所述控制FPGA采集所述共享SRAM上的RGB值并对RGB值进行编址;
S4、所述服务器读取编址后的RGB值,并对该数据进行压缩编码;
S5、所述客户端从所述服务器读取到压缩编码后的数据,对该数据进行解压缩和解码;
S6、所述客户端将解析出来的数据发送到远程VGA显示终端上进行显示。
2.如权利要求1所述的方法,其特征在于,所述进行VGA显示所需要的信息包括RGB值、行同步信号和场同步信号。
3.如权利要求1所述的方法,其特征在于,步骤S3中,编址的方式为:将RGB值按顺序组成一个9位的数据,然后将该9位的数据按位存入一个所述共享SRAM地址的32位空间中的最后9位。
4.如权利要求1所述的方法,其特征在于,所述装置还包括与所述实验FPGA连接的本地VGA显示终端,以及与所述客户端连接的远程VGA显示终端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110184762 CN102306089B (zh) | 2011-07-04 | 2011-07-04 | 用于计算机硬件实验的远程vga显示的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110184762 CN102306089B (zh) | 2011-07-04 | 2011-07-04 | 用于计算机硬件实验的远程vga显示的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102306089A CN102306089A (zh) | 2012-01-04 |
CN102306089B true CN102306089B (zh) | 2013-09-04 |
Family
ID=45379955
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110184762 Expired - Fee Related CN102306089B (zh) | 2011-07-04 | 2011-07-04 | 用于计算机硬件实验的远程vga显示的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102306089B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103268282B (zh) * | 2013-05-10 | 2016-03-23 | 清华大学 | 基于远程计算机硬件实验系统的cpu设计方法及系统 |
CN106706134A (zh) * | 2017-01-05 | 2017-05-24 | 金陵科技学院 | Ram调色板伪彩色设计方法 |
CN106710512A (zh) * | 2017-02-28 | 2017-05-24 | 郑州云海信息技术有限公司 | 一种显示装置及显示方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN200996986Y (zh) * | 2007-01-15 | 2007-12-26 | 宁波大学 | 一种新型数字电路与系统实验平台 |
CN101290724A (zh) * | 2008-06-13 | 2008-10-22 | 清华大学 | 一种计算机硬件系列课程的实验装置 |
CN201402549Y (zh) * | 2009-04-10 | 2010-02-10 | 首都师范大学 | 计算机系统设计教学实验板 |
CN101814248A (zh) * | 2010-04-07 | 2010-08-25 | 清华大学 | 一种计算机硬件系列课程的远程实验系统 |
-
2011
- 2011-07-04 CN CN 201110184762 patent/CN102306089B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN200996986Y (zh) * | 2007-01-15 | 2007-12-26 | 宁波大学 | 一种新型数字电路与系统实验平台 |
CN101290724A (zh) * | 2008-06-13 | 2008-10-22 | 清华大学 | 一种计算机硬件系列课程的实验装置 |
CN201402549Y (zh) * | 2009-04-10 | 2010-02-10 | 首都师范大学 | 计算机系统设计教学实验板 |
CN101814248A (zh) * | 2010-04-07 | 2010-08-25 | 清华大学 | 一种计算机硬件系列课程的远程实验系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102306089A (zh) | 2012-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104917990B (zh) | 通过调整垂直消隐进行视频帧速率补偿 | |
US8248425B2 (en) | Optimization of memory bandwidth in a multi-display system | |
CN105426149B (zh) | 一种基于fpga的图形显示卡 | |
CN104268113B (zh) | Dpi接口的lcd控制器以及其自适应带宽的方法 | |
CN105094289B (zh) | 一种实现图形用户交互界面的方法、设备及系统 | |
US20130300769A1 (en) | Image rotation control method and device | |
CN104717485A (zh) | 一种基于fpga的vga接口裸眼3d显示系统 | |
WO2023116320A1 (zh) | 基于fpga的数据流处理方法、装置及pg设备 | |
CN102306089B (zh) | 用于计算机硬件实验的远程vga显示的方法 | |
CN111464757A (zh) | 视频处理方法、装置和系统 | |
CN103685977A (zh) | 一种实时显示合成孔径雷达图像的装置 | |
CN100378793C (zh) | 液晶显示器显示方法与系统 | |
CN105430303B (zh) | 一种军用机载座舱显示系统中基于fpga的图形加速器 | |
CN101127847A (zh) | 一种在屏显示的合成方法及合成装置 | |
CN102831872A (zh) | 基于fpga的lcd信号转vga信号的实现方法 | |
CN110570793B (zh) | 一种适配不同类型显示屏的测试方法、装置及终端设备 | |
CN109308862B (zh) | 信号控制方法、控制装置、处理装置及信号控制设备 | |
JP2000122030A (ja) | マトリクス型液晶表示パネル駆動方法およびこの方法を実施する装置 | |
JPH0229691A (ja) | 液晶表示装置 | |
CN103327269B (zh) | 采用滚动输出模式的高速雷达视频显示处理方法 | |
CN103474045B (zh) | 用于显示设备的数据存取装置 | |
RU188935U1 (ru) | Устройство отображения информации | |
JPH0361199B2 (zh) | ||
CN107454348B (zh) | 一种视频叠加装置及方法 | |
CN101714072B (zh) | 用于处理表示可视信息的像素平面的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130904 Termination date: 20210704 |
|
CF01 | Termination of patent right due to non-payment of annual fee |