导言
在丈量技能中,高速数字摄像机所拍摄到的很多数字图画需求高速、大容量的图画存储设备来实时快速地存储。用传统的磁带办法来记载数据,其功率和安全性不高;静态存储器读写便利,可是存储的数据会因断电而丢掉,所以不利于数据的长期保存。而近几年面世的闪存以其存储容量大、体积小、可靠性高级长处,逐渐向存储体系进军。
1、规划原理
规划中相机输出LVDS串行数据通过接纳电平转化和串并转化后得到10路×8 bit的并行数据流,其数据流速率最大为66 MHz。之后依据相机MC1311的性能指标可计算出Camera Link高速接口与数据存储体系的存储容量要求与存储速度要求,即:单帧数据量为1280×1024×8 bit;每秒最大数据量为500×1280×1024×8 bit;Camera Link高速接口单路数据速率为65.536 MByte,假如需求接连存储60秒的视频数据,则需求40 G Byte存储器容量。100 GByte的存储容量最多大约可存储2.5分钟视频数据。图1为体系结构图。
2、中心器材挑选
规划中的存储芯片选用SAMSUNG公司的 NAND FLASH芯片K9 K8G08UOI,它的外部接口最高速度为40 MHz,接口宽度8位。每个芯片有8192块,每块有64页,每页巨细为(2K+64)Bytes,其间64 Bytes为闲暇区,存储容量为8Gbit。它以页为单位进行读写,以块为单位进行擦除。操控中心FPGA选用ALTERA公司STRATIXⅡ系列的 EP2S30F672I4,它有着丰厚的触发器和LUT,十分合适杂乱时序逻辑的规划,具有1.3Mbit的内置存储RAM,能够缓存一定量的数据。
3、体系规划
NAND Flash的数据存储选用页编程办法写入,K9K8G08UOI的页写入时序如图2所示。
依据图2的时序能够估算出单片K9K8G08UOI的数据存储速率,其间tWC最小为25 ns,tADL为75ns,tWB为100 ns,tPROG为 200μs。因而,写入一页所需时刻大约为:200μs+100 ns+(2048+64) ×25ns+75 ns=252.975μs,因为一页数据为(2K+64)B,所以单片K9K8G08UOI每Byte的数据存储速率为:1/(252.975μs/(2048+64)B)=8.4152 MHz。可见单片K9K8G08UOI的写入速度不能满意Camera,Link的接口要求,故需用多片进行数据位扩展。为了处理NAND Hash存取数据速度较慢向题,可将相邻10个8 bit视频数据在FPGA内展宽为80 bit进行存取。而NAND Flash每Byte的存储速率要求可降为6.6 MHz,故可满意单片K9K8G08UOI的存储速度要求。体系中每10片K9K8G08UOI组成一个1 G×80 bit的Flash模块,共10个Flash模块。每个Hash模块共用一套操控线,数据线别离与FPGA相连。单Flash模块的组成原理如图3所示。
电路中Flash1~10的衔接共同,即数据总线独立衔接到FPGA共用操控总线 (带驱动)。由图3可见,若需求进一步下降单片Flash存储速率,可进一步扩展Flash存储器芯片数量。因为单片FPGA的I/O数有限,可将10个 Flash模块安排到5块扩展存储器板上,别离对应Camera Link串并转化得到的一路数据(66 MHz×8 bit)。每个存储器板与1片FPGA和2个Flash模块相连后再别离与操控电路板上的FPGA相连来进行数据传输。其间的5块扩展存储器板选用相同结构。
4、 FPGA逻辑规划
FLASH的根本操作分为两个阶段:加载时刻和编程时刻,写入的时刻瓶颈并不在加载时刻,而是 FLASH的编程时刻。为了处理高速数据与低速FLASH之间的对立,可选用数据流串并转化、多个模块并行处理的办法。可在FPGA内部构建10个双口 RAM用来缓存数据,每个双口RAM对应一个FLASH,相机过来的数据先缓存到RAM里,然后再写到FLASH。数据写到RAM可选用流水操作,数据写满第一个双口RAM,接着写第二个RAM,顺次进行,当写满第十个RAM时,将十个RAM缓存的数据写到对应的FLASH里。FLASH操作按最高速度 40MB进行,加载时刻为51.2μs,之后进入编程时刻,再来的数据持续缓存在第一个RAM里。相机的时钟是66 MHz,每个RAM的深度为2048 Bytes,那么写10个RAM的时刻是310μs,即FALSH编程时刻能够到达310-51.2=258.8μs,能够满意FLASH的典型编程时刻 200μs。其FLASH流水操作见图4。
5、 FLASH坏区办理
对FLASH的坏区实施动态办理,在每个存储电路板的FPGA内拓荒1 K×8 bit的坏区地址存储。一切存储电路板的坏区地址共同。在FLASH进行写操作前比对当时区是否为坏区,假如是坏区则越过此区进入下一区。
可选用写入特定数后读出校验的办法来检测坏区。存储电路板依据指令全区写入8 bit数据。写入时序按体系规划的最高速率进行。然后将它们次序读出并进行校验,假如呈现数据过错则挂号该压为坏区。图5为坏区检测办理的作业流程。
6 、结束语
本文选用多级流水线与并行处理相结合的办法,一起使用FPGA内部的缓存来使多个FLASH存储器并行作业,然后极大地提高了存储速率。100片FLASH存储器一起作业可满意660 MB/S的速度要求。通过测验,本体系能够可靠地存储数字图画,并可屏蔽坏区。
责任编辑:gt