新闻中心

EEPW首页 > EDA/PCB > 设计应用 > 基于FPGA和FLASH ROM的图像信号发生器设计

基于FPGA和FLASH ROM的图像信号发生器设计

作者: 时间:2012-07-03 来源:网络 收藏

2.2 无效块管理
选取 SAMSUNG 公司的 NAND 型的K9F1G16UOM-作为存储芯片,单片容量为1 Gb、数据宽度为16 b。大容量的器件一般都是按块(block)管理其存储空间。FLASH芯片可能有包含一个或多个无效位的无效块,这在NAND型FLASH中是不可避免的。无效块出现的几率很小,但影响很大。如果对FLASH中的无效块进行操作,无效块会在数据记录的过程中造成数据的丢失和误码,影响数据的有效性和完整性。由于无效块和有效块相互隔离,无效块并不会影响有效块的操作,因此只要在数据存储前将FLASH中的无效块剔除,就可有效避免数据的丢失和误码。
FLASH在出厂时会对无效块进行检查,并将信息标注在FLASH每一块的第一页和第二页的第1 024个字,0xFFFF表示块有效。非0xFFFF则表示无效块。为避免破坏这些标注信息,在对FLASH进行任何擦除或写入操作前,要首先建立无效块信息表。SAMSUNG公司保证其FLASH的第一块一定是有效块,并且在对其擦写1 000次以内不会出任何错。所以本文使用该块来保存整片FLASH的无效块信息。遍历访问FLASH中的每个块的第一页和第二页,判断该块是否满足有效块的要求,若不满足则将其块地址缓存到的RAM中;接下来,将FLASH的无效块数量和无效块地址存入该片FLASH的第一块的第一页内。在FLASH的使用过程中,仍然有可能产生新的无效块,当出现这种情况时,则需要更新无效块信息表。无效块信息表用来供读写地址产生器查询时使用,这样就可以避开坏块的影响。
2.3 数据写入管理
图像数据写入时,接收来自USB控制器的数据,并产生控制时序将数据写入FLASH。由于高帧频相机一般是多通道输出,所以在模拟这类相机的时候要注意这个因素。对于某一幅目标图像,图像数据写入首先是应用程序获取图像数据;然后将各个通道对应位置的像素数据按次序调整在一起;接着通过USB将数据传输至FPGA,FPGA将数据截断成2 KB大小并依次将各分段数据块写入8片FLASH中,数据分流如图4所示。图像数据按通道进行调整可以使得系统轻松地实现多通道输出。对数据的分流处理,使得系统的8片FLASH在读出时可以真正实现并行读取数据。

本文引用地址://www.cghlg.com/article/190175.htm

e.JPG


FLASH的一页(page)的大小为2 KB,也是它的基本渎写单元。要想连续写入2 KB的数据,需要将访问FLASH的页地址都设为00H。当FPGA需要向某一片FLASH写入数据时,首先要查看该片FLASH的FPGA写入管理模块是否处于ready状态;若处于busy状态,则应用程序进入传输等待,当写入管理进入ready状态后,则应用程序发送数据,一共2 KB数据缓冲到FLASH在FPGA中对应的RAM;数据缓冲完成之后,该FLASH的写入管理模块进入busy状态并开始将RAM中的数据写入FLASH 的某一页(page),同时FPGA转向对下一片FLASH进行传输访问。
2.4 数据读出管理
数据读取输出是指FPGA模拟CCD相机输出时序,将FLASH中的数据通过Camera Link接口进行循环输出。所选的FLASH的单片最大读出速率可达25 MB/s,由于8片FLASH可以并行读出,所以整个系统的数据读出率可以达到200 MB/s。这样有利于模拟出较高帧频的CCD相机输出。当系统进行图像数据渎取输出时,FPGA中设置了FIFO来缓冲数据。Camera Link输出管理模块产生相机时序,将FIFO中的数据按要求送到Cam era Link接口。对于从FLASH向FIFO转移数据,首先将各FLASH中的2 KB数据被读入其在FPGA中对应的RAM中;然后控制各RAM中的数据被按顺序转移至FIFO中,控制器通过FIFO的数据深度来判断是否需要继续读入数据,当判断FIFO中的数据快满时暂停读取,这时由于数据继续被读出,随着FIFO中的数据减少到一定程度时,启动将RAM中的数据继续读入FIFO;一旦一个RAM中的数据被转移,则FLASH读取管理模块继续将该FLASH中的后续数据写入该RAM。

c1.jpg


在加载某种8位数据宽度、双通道输出的目标图像时,使用Chipscope得到的Camera Link信号如图5所示。其中,strobe为时钟信号,dval,lval,fval分别是数据有效、行有效、帧有效信号。观测结果说明输出的数据与加载的数据保持一致,输出控制时序也符合要求。
为了模拟出不同类型的CCD相机,只需要修改FPGA程序中设定的strobe时钟频率、Line blanking时间、Frame blanking时间等必要参数即可。



评论


相关推荐

技术专区

关闭