新闻中心

EEPW首页 > 消费电子 > 设计应用 > 基于NAND FLASH的大容量视频存储系统的设计

基于NAND FLASH的大容量视频存储系统的设计

作者:时间:2012-05-30来源:网络收藏


3 软件
上电复位加载完程序之后,程序对寄存器初始化完成后就进入循环等待状态,准备接收中心控制发送的命令。当通过PPI接收到命令后,就对命令进行分析,判断中心控制板要板完成什么操作,如文件、下载、剪切、复制或删除等等。文件流程图如图4所示。

本文引用地址:http://www.eepw.com.cn/article/165555.htm

d.jpg


当上位机通过网络给中心控制板发送开始命令后,中心控制板首先发送开始拍摄命令和拍摄参数给前端压缩,建立TCP链接,然后发送开始命令给存储板。存储板接收到中心控制分系统发送过来的命令后,首先读取文件列表到DSP的SDRAM当中,DSP检索出其中的文件个数和最后一个文件的存储地址,在SDRAM中添加新文件表项到当前的文件列表,然后擦除先前存储在中的文件列表后重新写入修改过后的文件列表。根据系统压缩的要求,如果前端压缩后的码流速度为2 Mb/s,为了使得DSP集中处理数据,我们拟定中心控制板和存储板之间每4 s传输一次数据。由于每次压缩后的数据长度不是一个既定数,因此只能按照最大数据长度来传输,即每次传输1 MB。由于PPI接口寄存器位宽的限制,每次传输数据长度不能超过(128K-1)B,我们设定每次传输长度为100 KB,财DSP通过PPI接收的数据需要通过11次才能接收完毕。中心控制分系统把有效数据长度作为一个参数放置在数据的末尾,存储板按照这个参数对缓存到SDRAM中的数据进行处理,剩余无效数据抛掉。

4 坏块的检测处理
由于制作工艺等原因, 在出厂时会存在随机分布的坏块,另外在使用过程中也会造成坏块。如果冒然对坏块进行操作,会造成数据的丢失,影响数据的完整性。另外,在检测编程和擦除结束标志时,FLASH的I/O返回的状态不稳定,会导致程序进入无限等待状态,这样会大大影响整个系统的性能。因此,有必要对FLASH进行坏块检测和处理。
检测坏块的方法有两种:一种方法是利用芯片出厂时厂家给的坏块信息,它被厂家标记在坏块的第一页和第二页的备用空间的首字节中,即页内地址(列地址)为4 096的字节中。如果这两个字节都是0xFF,则表明当前块不是坏块,否则为坏块。另一种方法是将当前块先擦除,然后读出当前块的数据,如果读出的数据不全是0xFF,则表明此块为坏块(考虑到不使用备用空间)。
由于坏块与有效块相互独立,互不影响,所以对FLASH进行操作时只要将坏块跳过即可。考虑到本系统的视频数据采用文件的形式存储,也就是说在读写操作之前DSP需要准确知道文件的存储地址,包括文件的开始地址和结束地址,所以必须要将检测出来的坏块表存储在DSP的存储器中。如果将坏块列表存放在 FLASH中,会存在一个问题:存 放坏块列表的地方本身就在坏块区该如何处理,如果做特殊处理的话会影响程序的一致性。另外,每次搜索之前都得把坏块列表从 FLASH中读出来,这样的话程序会进入好几次中断,从而影响整个程序的流程。考虑到程序烧写FLASH有16 Mb,而DSP程序不超过20 KB,于是可以将坏块列表放在程序烧写FLASH中,也就是说程序烧写FLASH既存放程序,又存放坏块列表。这样,DSP可以对坏块列表进行直接访问。

5 结语
在整个系统的测试过程中,本部分工作正常,对NAND FLASH的访问能跳过坏块,保证数据的正确性和完整性。另外,如何采用流水线方式提高存储速率是今后研究的重点。


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭