jssd 发表于 2011-6-7 16:15:23

板上只有一片51216的SRAM能不能用VGA动态显示摄像头拍摄的画面?

摄像头:640*480 ,30帧/秒,VGA:640*480,60Hz,问题在于一个是30每秒一个是60每秒,只有一片SRAM,能不能用CPLD或FPGA动态显示到液晶显示器上(16位VGA)?不漏画面。

caizijian 发表于 2011-6-7 16:54:39

假设你的是RGB565,
你的SRAM是16Bit*512K的吧,一次就可以存下一个像素点的数据,
640*480=307200=300K,你的图像缓存就需要300K*16bit,你的51216大小上是够了

640*480*60Hz=17.578125M;每秒你由于读数据会占用SRAM 17.578125M的带宽;
640*480*30Hz=8.8790625M;每秒你由于写数据会占用SRAM 8.8790625M的带宽;

8.8790625M + 17.578125M = 26.3671875M 只要你的SRAM工作频率高于这个频率就可以动态显示到液晶显示器上(16位VGA)!不漏画面

显然SRAM可以轻松上100M

你的想法是可以成功的

可以改进
可以用RGB888
图像大小就是原来的1.5倍,就是450K*16bit,你的51216大小上也够了

数据带宽可以是2倍,也可以是1.5倍,看你怎么写外边的东西

即使是2倍也就是53M左右 你的SRAM还是可以胜任的

jssd 发表于 2011-6-7 17:45:41

回复【1楼】caizijian
假设你的是rgb565,
你的sram是16bit*512k的吧,一次就可以存下一个像素点的数据,
640*480=307200=300k,你的图像缓存就需要300k*16bit,你的51216大小上是够了
640*480*60hz=17.578125m;每秒你由于读数据会占用sram 17.578125m的带宽;
640*480*30hz=8.8790625m;每秒你由于写数据会占用sram 8.8790625m的带宽;
8.8790625m + 17.578125m = 26.3671875m 只要你的sram工作频率高于这个频率就可以动态显示到液晶显示器上(16位vga)!不漏画面
显然sram可以轻松上100m
你的想法是可以成功的
可以改进
可以用rgb888
图像大小就是原来的1.5倍,就是450k*16bit,你的51216大小上也够了
数据带宽可以是2......
-----------------------------------------------------------------------

这位大侠,谢谢你的回答。你算的貌相很有道理,可是我看不明白,我想知道,如果能实现,那什么时候写数据,什么时候读数据显示,因为显示和采集摄像头数据可以说是两个完全独立的,V信号不会刚好重叠,也就是说,我摄像头数据的要存的地址是0,而显示是读的数据地址是1,或其他的,那地址会打架,这个问题该怎么解决?

caizijian 发表于 2011-6-7 20:27:49

加上两个FIFO
一个加在写上边
一个加在读上边
在写一点逻辑来控制

当VGA没有读数据的时候
就从写的FIFO里把数据写进SRAM
当VGA在读数据的时候 CMOS来的数据写入FIFO中

当然这个的优先级和FIFO的深度你可以自己定义

necho 发表于 2011-6-8 00:27:45

回复【3楼】caizijian
-----------------------------------------------------------------------

回复【3楼】caizijian
加上两个fifo
一个加在写上边
一个加在读上边
在写一点逻辑来控制
当vga没有读数据的时候
就从写的fifo里把数据写进sram
当vga在读数据的时候 cmos来的数据写入fifo中
当然这个的优先级和fifo的深度你可以自己定义

-----------------------------------------------------------------------

我最近有在做VGA的题目,单单显示一个字符很简单,网上资料有的是,但是如果是动态的大数据量,如何是好我一直没做好 各位都是经验丰富了 希望能知道小弟一下 非常感谢 ……没有见到你的联系方式,可否告知
?我的QQ:502327976,向您请教

TigerRay 发表于 2011-6-14 22:35:46

好好,我也想知道啊!

conan9001 发表于 2011-8-7 14:47:09

回复【1楼】caizijian 菜子建
-----------------------------------------------------------------------

回复【1楼】caizijian 菜子建
-----------------------------------------------------------------------

不知道您试过没有,我试了一下,保持这么高的读写速度,sram直接就发热了。。。

zhanshenguilai 发表于 2011-8-7 19:36:02

收藏

tlong_1919 发表于 2011-8-13 22:42:20

mark

skycomm 发表于 2011-8-23 18:22:07

回复【3楼】caizijian菜子建
加上两个fifo
一个加在写上边
一个加在读上边
在写一点逻辑来控制
当vga没有读数据的时候
就从写的fifo里把数据写进sram
当vga在读数据的时候 cmos来的数据写入fifo中
当然这个的优先级和fifo的深度你可以自己定义

-----------------------------------------------------------------------

这个是正解,读写分开,可以用时钟的高低电平控制读写的时序,
另外我有个疑问 一般的sram能跑到100m吗 ??

skycomm 发表于 2011-8-23 18:42:46

回复【6楼】conan9001
回复【1楼】caizijian 菜子建
-----------------------------------------------------------------------
回复【1楼】caizijian 菜子建
-----------------------------------------------------------------------
不知道您试过没有,我试了一下,保持这么高的读写速度,sram直接就发热了。。。
-----------------------------------------------------------------------

在这种情况下 sram发烫是正常的因为是一直处于工作状态
页: [1]
查看完整版本: 板上只有一片51216的SRAM能不能用VGA动态显示摄像头拍摄的画面?