CN107491267B - 一种基于lvds接口的高速图像数据存储装置 - Google Patents
一种基于lvds接口的高速图像数据存储装置 Download PDFInfo
- Publication number
- CN107491267B CN107491267B CN201710580625.3A CN201710580625A CN107491267B CN 107491267 B CN107491267 B CN 107491267B CN 201710580625 A CN201710580625 A CN 201710580625A CN 107491267 B CN107491267 B CN 107491267B
- Authority
- CN
- China
- Prior art keywords
- chip
- flash memory
- address
- data
- programming
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明涉及一种基于LVDS接口的高速图像数据存储装置,包括数据采集接收模块、开关量接收模块、存储模块、主控模块、以太网通信模块和供电模块;本发明可同时记录3路LVDS图像,系统选用6片flash芯片,每个flash芯片的存储容量为4GB,因此系统总的存储容量为24GB。具备双路独立存储功能,能够根据外部指令擦除、提取数据。采用双平面二级流水线编程思想,并利用FIFO乒乓操作,可对最高传输速率为35.6MB/s的图像源数据进行记录。
Description
技术领域
本发明涉及一种基于LVDS接口的高速图像数据存储装置,属于图像存储技术领域。
背景技术
现如今,科技水平飞速发展,信息技术和信息产业在经济和社会发展中的作用日益增强,生活、生产对于各类信息的依赖和需求与日俱增。图像信息作为现代信息社会中最常见、最基本的一种数据信息,应用的领域逐渐增加,需求的信息量也越来越庞大。目前,各种图像采集、处理与存储设备已经在雷达监测、遥测遥感、航空航天、卫生医疗等领域得到了十分广泛的应用,发挥着极其重要且不可替代的作用。随着现代信息处理技术的不断进步,对图像处理的要求越来越高,同时对大量高速图像数据的准确、可靠传输与快速存储的要求也更加迫切。
由于CCD传感器、CMOS传感器、红外探测器的快速发展,刷新周期的减小与分辨率的提高导致产生的数据量也在不断增大。因此需要图像采集、传输与处理设备必须具有高速传输大量数据的能力,而影响其传输效率的一个重要因素就是数据的传输接口。图像卡与相机、计算机之间的接口标准对图像处理、传输与存储的发展有着至关重要的影响。随着IEEE 1394、RS-644、LVDS等数字传输接口协议的应用,大大促进了图像采集与传输系统性能的提升。而与PC通信的PCI、USB、以太网等总线技术的完善,使图像数据在各种设备之间进行传输时能够满足高速率的要求。数字接口协议与各种总线技术的联合使用不但可以满足传输速率要求,同时也能够提高系统的通用性,降低开发成本。
伴随着传输速率的提高与数据量的急剧增大,传统的存储系统逐渐成为了实现高速存储的主要瓶颈。得益于大规模集成电路及其制造工艺的迅猛发展,高速、高密度、高可靠性的固态存储器件与先进的记录技术开辟了新的数据记录领域。Flash存储器发展至今已经具有非常可观的读写速度和存储容量,并且芯片体积很小,十分适用于空间有限的电路系统。其中NAND型Flash芯片更是Flash存储器应用于大容量数据存储技术设计中的最佳选择。所以,这些良好的技术环境为高速图像传输与存储系统提供了新的发展机遇。
现有的图像数据存储装置适用于单路、低速图像数据存储,如何利用LVDS技术和FLASH实现对高速多路大容量图像数据进行存储是本领域亟待解决的技术问题。
发明内容
本发明的目的在于克服现有技术的不足,提供一种基于LVDS的高速图像数据存储的装置,可移植性行强,拥有6片flash芯片,可实现每路图像数据以及备份数据最高35.6MB/s传输速率的图像存储,完成与上级设备之间的速率匹配。
本发明目的通过如下技术方案予以实现:
提供一种基于LVDS接口的高速图像数据存储装置,包括数据采集接收模块、开关量接收模块、存储模块、主控模块、以太网通信模块和供电模块;
数据采集接收模块利用解串器将接收的串行LVDS图像数据转化为并行数据,待解串器锁定后,将并行数据送入主控模块,数据采集接收模块包括三路完全相同的解串器,能够同时采集三路图像;
开关量接收模块采用光耦接收开关量,进行隔离后发送给主控模块;主控模块具有空闲状态、记录状态、擦除状态以及停止记录状态,根据开关量进行状态切换;
存储模块用于存储图像数据,包括flash存储芯片和fram芯片;
主控模块,控制flash存储芯片和fram芯片的进行自检操作以及flash芯片的初始化坏块检测操作;根据开关量进行状态切换;控制完成记录图像数据;
以太网通信模块用于主控模块与上位机之间的通讯;
电源模块为整个存储和转发装置提供电源。
优选的,存储模块包括6片flash存储芯片和一片fram芯片,flash芯片的坏块信息存储在fram中。
优选的,对flash存储芯片的操作,包括自检、初始化坏块检测、擦除、编程写、回读以及坏块管理;flash存储芯片的坏块信息存储在fram中。
优选的,主控模块的控制流程如下:
(1)控制flash存储芯片进行自检操作;
(2)控制fram芯片进行自检操作;
(3)进行flash初始坏块检测;
(4)扫描开关量,进行状态切换,若为空闲状态,则继续等待,如果接收到上位机发送的回读命令,则将flash存储芯片中存储的数据依次上传到上位机;若为擦除状态,则执行擦除操作,将6片flash存储芯片顺序进行擦除;若为记录状态,则开始执行记录指令,同时对6片flash存储芯片进行编程写操作;若写操作过程中出现开关量要求切换为停止记录状态,则停止三路图像源的记录。
优选的,6片flash存储芯片中第一flash存储芯片用于记录图像1,第三flash存储芯片用于记录图像3,第五flash存储芯片用于记录图像2,而第二flash、第四flash4、第六flash存储芯片用于记录第一flash、第三flash、第五flash存储芯片对应数据的备份数据。
优选的,多个flash存储芯片同时访问fram芯片时,则需要判断优先级,第三flash存储芯片的优先级>第四flash存储芯片的优先级>第一flash存储芯片的优先级>第二flash存储芯片的优先级>第五flash存储芯片的优先级>第六flash存储芯片的优先级。
优选的,主控模块采用FPGA,形成12个FIFO,每个flash存储芯片对应两个FIFO,第一FIFO和第二FIFO。
优选的,编程写操作的具体方法为:
(1)第一FIFO中的数据写满后,将数据写入对应flash存储芯片的第一LUN中,完成数据加载后,第一LUN进入编程;
(2)等待第二FIFO中的数据写满后,将数据写入对应flash存储芯片的第二LUN中,完成数据加载后,第二LUN进入编程,判断第一LUN编程是否成功,如果编程成功则将写成功的块和页的地址按访问优先级写入fram芯片的特定地址中;如果编程失败,则将写失败的页地址按访问优先级写入fram芯片的对应地址中;
(3)第一FIFO中的数据写满后,将数据写入对应flash存储芯片的第一LUN中,完成数据加载后,第一LUN进入编程;判断第二LUN编程是否成功,如果编程成功则将写成功的块和页的地址按访问优先级写入fram芯片特定地址中;如果编程失败,则将写失败的块和页的地址按访问优先级写入fram芯片对应地址中;返回步骤(2)直至flash存储芯片存满。
一种利用所述的基于LVDS接口的高速图像数据存储装置进行图像数据存储的方法,其特征在于,包括如下步骤:
(1)图像数据存储装置上电后复位,发送自检开始命令,存储模块中6个flash存储芯片进行自检;主控模块分别读取6个flash存储芯片的ID,判断ID是否与出厂一致,如果一致表明flash存储芯片均正常,进入步骤(2),否则,输出flash存储芯片自检失败,进入步骤(2);
(2)进行fram芯片自检,主控模块向fram芯片中的某一固定地址写入数据,然后读取该固定地址中的数据,判断读取数据与写入数据是否一致,如果一致则表明fram芯片正常,输出自检正常,并进入步骤(3),否则,输出fram芯片自检失败,进入步骤(3);
(3)进行flash存储芯片初始坏块检测,主控模块读取flash存储芯片中的每块第一页空余区的首字节,如果为00h,判断该块为坏块,将该块对应fram中的地址内容写为FFh,主控模块遍历所有flash芯片的所有块,将所有flash芯片的坏块信息写入fram中,完成初始化坏块检测,便于在访问时避开这些坏块;如果不是00h,判断该块不是坏块;
(4)开始扫描开关量,若开关量为000,则继续等待,如果接收到上位机发送的回读命令,则将flash存储芯片中存储的数据依次上传到上位机;若开关量为111,则执行擦除操作,将6片flash芯片顺序进行擦除;当扫描开关量为001,则开始执行记录指令,同时对6片flash进行编程写操作。
优选的,对6片flash存储芯片进行编程写操作的具体方法为:
(1)数据采集接收模块采集3路图像源的图像数据,每路图像源对应四个FIFO,原始数据存储和备份数据存储分别需要2个FIFO,共12个FIFO,存入该图像源对应的主控模块的FIFO中;
(2)对于单个存储芯片当第一FIFO存满数据时,使能第一LUN记录开始信号;判断第一LUN中当前存储地址与存储容量空间对应地址关系,如果小于存储容量空间对应地址,按优先级访问fram芯片判断编程对应的两块是否为坏块,若为坏块,块地址加2,继续进行坏块判断,若为好块,进行双平面编程写,进入步骤(3);如果当前存储地址大于等于存储容量空间对应地址,则表明该flash存储芯片已经存满,输出该flash存储芯片存储满标志,不再记录;当所有flash存储芯片存储满,将该装置不再执行记录操作;如果包括多个flash芯片同时访问fram,则需要根据优先级确定访问顺序;
(3)将第一FIFO中的数据,写入对应flash的第一LUN中,完成数据的加载后,第一LUN进入编程,等待第二FIFO中的数据写满后,使能第二LUN记录开始信号,判断第二LUN中当前存储地址与存储容量空间对应地址关系,如果小于存储容量空间对应地址,按优先级访问fram判断编程对应的两块是否为坏块,若为坏块,块地址加2,继续进行坏块判断,若为不是坏块,将FIFO2中的数据写入对应flash的第二LUN中;如果当前存储地址大于等于存储容量空间对应地址,则表明该flash已经存满,输出该flash芯片存储满标志,不再记录;当所有flash芯片存储满,将该装置不再执行记录操作;
(4)完成第二LUN数据的加载后,第二LUN进入编程,判断第一LUN编程是否成功,如果编程成功则将写成功的块和页的地址按访问优先级写入fram特定地址中,若第一LUN和第二LUN页地址小于叶内地址阈值,应将第一LUN和第二LUN页地址加1,若第一LUN和第二LUN页地址等于127,则将第一LUN和第二LUN页地址归零,第一LUN和第二LUN块地址加2;如果编程失败,则将写失败的页地址按访问优先级写入fram对应地址中;当第一FIFO1存满数据时,使能第一LUN记录开始信号;判断第一LUN中当前存储地址与存储容量空间对应地址关系,如果小于存储容量空间对应地址,按优先级访问fram判断编程对应的两块是否为坏块,若为坏块,块地址加2,继续进行坏块判断,若为好块,进行双平面编程写,进入步骤(5);如果当前存储地址大于等于存储容量空间对应地址,则表明该flash存储芯片已经存满,输出该flash存储芯片存储满标志,不再记录;当所有flash存储芯片存储满,将该装置不再执行记录操作。
(5)完成第一LUN数据的加载后,第一LUN进入编程,判断第二LUN编程是否成功,如果编程成功则将写成功的块和页的地址按访问优先级写入fram特定地址中;如果编程失败,则将写失败的块和页的地址按访问优先级写入fram对应地址中;当第二FIFO存满数据时,使能第二LUN记录开始信号;判断第二LUN中当前存储地址与存储容量空间对应地址关系,如果小于存储容量空间对应地址,按优先级访问fram芯片判断编程对应的两块是否为坏块,若为坏块,块地址加2,继续进行坏块判断,若不是坏块,进行双平面编程写,返回步骤(4);如果当前存储地址大于等于存储容量空间对应地址,则表明该flash存储芯片已经存满,输出该flash存储芯片存储满标志,不再记录;当所有flash存储芯片存储满,将该装置不再执行记录操作。
本发明与现有技术相比具有如下优点:
(1)本发明可同时记录3路LVDS图像,系统选用6片flash芯片,每个flash芯片的存储容量为4GB,因此系统总的存储容量为24GB。具备双路独立存储功能,能够根据外部指令擦除、提取数据。
(2)本发明采用双平面二级流水线编程思想,并利用FIFO乒乓操作,可对最高传输速率为35.6MB/s的图像源数据进行记录。
(3)本发明建立了高效的坏块管理方式,记录器上电后就开始建立坏块块列表,并且在记录器工作的过程当中根据新出现的无效块不断对无效块列表进行更新。这样FLASH就可以在进行擦、写、读操作前将当前块地址与无效块列表中的地址进行顺序比较,避免因误操作无效块而导致数据记录错误,通过这样的方式极大地提高了系统的可靠性。
(4)本发明可满足不同个体的差异性需求,用户数据类型、数据速率(小于35.6MB/s)变换,只需要更改下位机软件即可满足应用需求,可移植性高。
附图说明
图1为本发明图像数据存储装置框图;
图2为本发明的图像源1和图像源2发送图像数据的周期示意图;
图3为本发明的图像源3发送图像数据的周期示意图;
图4为本发明的单片LUN内部阵列图和芯片的寻址周期列表;
图5为本发明的内部并行访问加二级流水线访问过程;
图6为本发明的存储装置记录图像的基本流程图。
具体实施方式
如图1所示,本发明基于LVDS接口的高速图像数据存储装置,包括数据采集接收模块、开关量接收模块、存储模块、主控模块(FPGA)、以太网通信模块和供电模块。
数据采集接收模块利用解串器将串行LVDS图像数据转化为16位的并行数据,待解串器锁定后,将并行数据送入主控模块,数据采集接收模块包括三路完全相同的解串器,可以同时采集三路图像。
开关量接收模块采用光耦接收开关量,进行隔离后发送给主控模块,开关量由外部输入,在主控模块对开关量进行扫描操作时,需要进行防抖操作。当开关量为3路,主控模块根据开关量进行相应操作,当开关量为000时,主控模块为空闲状态,当开关量为001时主控模块为记录状态,当开关量为111时主控模块为擦除状态,当开关量为110时主控模块为停止记录状态。
主控模块,作为整个存储装置的控制核心,负责完成flash芯片和fram芯片的自检操作以及flash芯片的初始化坏块检测操作,扫描开关量进行指令控制,能够根据外部指令擦除、提取数据;完成同时记录3路图像数据;完成接收处理后数据的TIC标记及与上级设备之间的速率匹配;能够完成设备自检,并输出自检结果;控制网口进行数据回读操作。
存储模块包括6片flash存储芯片和一片非易失性RAM(fram)芯片,flash芯片的坏块信息存储在fram中。需要控制存储模块同时记录3路图像且需要双路独立存储操作,因此需要6片flash存储芯片。对flash芯片的操作,包括自检、初始化坏块检测、擦除、编程写、回读以及坏块管理。而flash芯片的坏块信息存储在fram中,由于空间的限制,只选用一片fram芯片,将6片flash的坏块信息存储与fram的不同地址空间,在同时对6个flash芯片进行操作时,将分时调用fram操作程序。
以太网通信模块用于主控模块与上位机之间的通讯,选用了LAN9812I芯片作为网络控制芯片,其具有10M/100M自适应功能。在以太网信号输入输出口通过增加网络变压器实现了信号的隔离,增强了数据通信的抗干扰能力和传输距离,可满足5MB/S的通信速率要求。主控模块控制网络控制芯片的读写操作,实现数据的可靠通信。
电源模块为整个存储和转发装置提供电源;DC18V~34V输入电源经电源板电压转换电路得到非隔离的DC+5V电压,隔离的DC+5V。非隔离的DC+5V电压为光耦的输入端供电;隔离输出的DC+5V经降压变换输出相互隔离的DC+3.3V、DC+2.5V、DC+1.8V、DC+1.2V电压,为存储和转发装置其他部分供电。
如图2所示,为图像源1和图像源2发送图像数据的周期示意图。数据接收模块采用LVDS接口接收16位数字图像信号,数据同步时钟为15MHz;数据有效信号(VS)为高电平有效,即在VS为高电平时传输图像信号。图像大小为320*257*16bits,帧头12字节,帧尾2字节,输入帧频为100帧/s。因此图像1和图像2的瞬时速率为(320*257*2+14)Byte/5.458ms=28.74MB/s,图像1和图像2的平均速率为(320*257*2+14)Byte/10ms=15.687MB/s。
3个图像源可以采用相同的图像数据发送周期,也可采用不同的图像数据发送周期。在一个实施例中,图像源3采用与图像源1、2不同的发送周期,如图3所示,为图像源3发送图像数据的周期示意图。数据接收模块采用LVDS接口接收16位数字图像信号,数据同步时钟为15MHz;数据有效信号(VS)为高电平有效。图像大小为320*257*16bits,各包间隔时间不小于1us,帧头12字节,帧尾2字节,输入帧频为100帧/s,这里以VS低电平1us进行计算,图像3的瞬时速率为28.74MB/s,平均速率为(320*257*2+14)Byte/5.486ms=28.60MB/s。
本发明选用了Micron公司的一款NAND型FLASH芯片MT29F32G08AFABA作为存储介质。该芯片容量为4GB,内部由两个逻辑单元(LUN)构成,每个LUN容量为2GB,两个LUN可通过片选信号CE1、CE2进行选通控制。如图4所示,为单片LUN内部阵列图和芯片的寻址周期列表。每个LUN共有4096个块(block),由2个平面(plane)组成,每个平面有2048个块。每个块又由128页(page)组成,每页有4K+224个字节(byte),其中每页的224个字节为空闲区,常用于存放检验纠错码。MT29F32G08AFABA外部仅有8个I/O引脚,既是数据输入输出口,也是地址和命令的输入口。对其进行操作时,命令、地址和数据是通过分时复用的方式进行的,以命令锁存(CLE)和地址锁存(ALE)来区分命令和地址。寻址方式是通过8位复用I/O总线分5个周期输入实现的,三个行地址定位FLASH芯片中的某一页,再由两个列地址定位每一页的某一个字节。前两个周期(CAx)为列地址,后3个周期(页地址PAx、块地址BAx、逻辑单元地址LAx)为行地址。
如图5所示,为内部并行访问+二级流水线访问过程。存储模块对NAND Flash的控制主要体现在三方面的内容上:擦除、写入和读数,在FPGA设计时,采用状态机实现时序控制最为简便。
(1)擦除数据
NAND Flash是以“块”为基本单位进行擦除处理的,也就是说寻址时只需完成包含BA7~BA18的三个地址循环。由NAND Flash的工作机理可知,在写数据之前应确保当前块内可操作页全部置为FFh,必须在擦除之后才可能达到这种效果,也就是在写数据之前应当进行擦除操作。
(2)写入数据
对于连续的数据,NAND Flash是以“页”为基本单位进行编程的。页编程时间TPROG典型值为230us,最大值为500us。一般情况下,对于连续的数据流,采用顺序存储的编程方式,即按照页地址和块地址递增的方式写入,连续写满128页后写下一块,直到所有块写满为止。但通过时序图可知,在页编程时,I/O不能再接收数据,且编程时间较长,连续的图像数据流速度较高,即使使用了大容量的FIFO,也无法满足条件,势必会造成数据大片丢失。
为解决这些问题,我们采用使用“片内并行访问+二级流水线”的控制方法。由于同一NAND Flash包括两个逻辑单元(LUN),每个LUN中有两个平面(plane),每个平面都存在一个4224字节的页寄存器(4224byte Page Registers),因此可以将连续两页数据依次灌入同一NAND Flash芯片中的两个页寄存器,然后同时执行页编程操作。这种操作方式叫做“内部并行访问”,仅仅在页寄存器切换时存在约500ns的切换时间,达到了两页同时编程的目的。考虑到方案所选用的存储芯片由两个LUN组成,两个LUN的加载时间可以相互填补自动编程的时间,如此循环,就可以实现访问效率最优化,具体存储方法如下:
NAND Flash的写时钟时间TWC最小值为20ns,我们取写时钟周期为2/75us。NANDFlash的编程时间典型值为230us,那么采用片内并行访问写双平面需要的时间为8*TWC+8192*TWC+TDBSY+2*TWB+Tprog+TWHR=219.3us+Tprog=449.3us。而数据采集模块采集8KB图像信号数据需要的时间为4K/15MHz=273us,图像数据每采集4个字节存储到一个容量为8KB的FIFO1中,当FIFO1存储满8KB时,使能FLASH存储信号,将8KB数据双平面写入LUN1中,写入FLASH后需要对LUN1进行编程。在双平面写LUN1的过程中,图像数据存入另一个容量为8KB的FIFO2中,当FIFO2存储满时,使能FLASH存储信号,将8KB数据双平面写入LUN2中,写入FLASH后需要对LUN2进行编程。接下来重复以上步骤,将图像数据存储到FIFO1中,存满以后,此时,从上一次写入LUN1数据到目前已经经过了546us,大于片内并行访问写双平面的时间449.3us(已经完成编程),此时LUN1的数据总线和地址总线已经释放,可以进行下一次的存储。这就是对图像数据进行内部并行访问+(LUN1和LUN2)二级流水线访问方式。根据以上分析,可以记录图像的最大速率为8KB/230us=35.6MB/s。
(3)读数据和坏块扫描
读取存储于NAND Flash的连续数据,通常也“页”为单位操作。任何NAND Flash在出厂时都存在一定数量的坏块,并且在使用过程中会产生新的坏块。由于坏块产生和分布的不确定性,使存储单元变得更复杂,有必要对这些坏块进行适当的管理,在访问时避开这些坏块。坏块管理的首要步骤是坏块扫描与识别,其本质就是读取,只不过读取的数据不是连续的一页,而是块中第一页空余区内的第一个字节。
编程时使用“片内并行访问+二级流水线”的访问方式,这就决定了读取操作和管理坏块时应用与之对应的操作方式。具体来说,读取数据时要保证对页的访问次序与编程时的次序一一对应,才能保证数据的连续性;若扫描到一个坏块,与之对应的一行共计2个块均视为无效,将2个块对应的fram地址内容写为FFh,虽然造成一定的空间浪费,但逻辑简单、时序易于控制,适用于存储速度高,存储量不大的情况。检测到坏块后,建立坏块的行地址列表;访问时,跳过地址在列表中的块即可。
图6是存储装置记录图像的基本流程图,工作流程如下:
(1)图像数据存储装置上电后复位,然后等待10s发送自检开始命令,存储模块中flash进行自检。主控模块分别读取6个flash的ID,判断ID是否与出厂一致,如果一致表明flash均正常,进入步骤(2),否则,输出flash自检失败,进入步骤(2);
(2)进行fram自检,主控模块向fram中的某一固定地址写入数据,然后读取该固定地址中的数据,判断读取数据与写入数据是否一致,如果一致则表明fram正常,输出自检正常,并进入步骤(3),否则,输出fram自检失败,进入步骤(3);
(3)进行flash初始坏块检测,主控模块读取flash芯片中的每块第一页空余区的首字节,如果为00h,判断该块为坏块,将该块对应fram中的地址内容写为FFh,主控模块遍历所有flash芯片的所有块,将所有flash芯片的坏块信息写入fram中,完成初始化坏块检测,便于在访问时避开这些坏块。
(4)完成初始化坏块检测后,开始扫描开关量,若开关量为000,则继续等待,如果接收到上位机发送的回读命令,则将flash芯片中存储的数据依次上传到上位机;若开关量为111,则执行擦除操作,将6片flash芯片顺序进行擦除。当扫描开关量为001,则开始执行记录指令,同时对6片flash进行编程写操作。flash1用于记录图像1,flash3用于记录图像3,flash5用于记录图像2,而flash2、flash4、flash6用于记录flash1、flash3、flash5对应数据的备份数据。根据上文分析,3路图像的瞬时传输速率为28.74MB/s,图像1和图像2的平均速率为15.687MB/s,图像3的平均传输速率为28.6MB/s,因此编程时使用“片内并行访问+二级流水线”的访问方式,可以满足图像速率要求。若写操作过程中出现开关量为110,则停止三路图像源的记录。
对6片flash进行编程写操作的具体方法为:
1、数据采集接收模块采集3路图像源的图像数据,每路图像源对应四个FIFO(原始数据存储和备份数据存储分别需要2个FIFO),共12个FIFO,存入该图像源对应的主控模块的FIFO中;
2、当FIFO1存满8K数据(需要273us)时,使能LUN1记录开始信号;判断LUN1中当前存储地址与存储容量空间对应地址关系,如果小于存储容量空间对应地址,按优先级访问fram判断编程对应的两块是否为坏块,若为坏块,块地址加2,继续进行坏块判断,若为好块,进行双平面编程写(需要219.3us),进入步骤3。如果当前存储地址大于等于存储容量空间对应地址,则表明该flash已经存满,输出该flash芯片存储满标志,不再记录;当所有flash芯片存储满,将该装置不再执行记录操作。
如果包括多个flash芯片同时访问fram,则需要判断优先级,根据图像数据速率来设置优先级,在本实施例中优先级如下:flash3(存储图像源3原始数据)>flash4(存储图像源3备份数据)>flash1(存储图像源1原始数据)>flash2(存储图像源1备份数据)>flash5(存储图像源2原始数据)>flash6(存储图像源2备份数据)。
3、将FIFO1中的数据,写入对应flash的LUN1中,完成8k数据的加载后,LUN1进入编程,等待FIFO2中的数据写满后,使能LUN2记录开始信号,判断LUN2中当前存储地址与存储容量空间对应地址关系,如果小于存储容量空间对应地址,按优先级访问fram判断编程对应的两块是否为坏块,若为坏块,块地址加2,继续进行坏块判断,若为好块,将FIFO2中的数据写入对应flash的LUN2中;如果当前存储地址大于等于存储容量空间对应地址,则表明该flash已经存满,输出该flash芯片存储满标志,不再记录;当所有flash芯片存储满,将该装置不再执行记录操作。
4、完成LUN2 8K数据的加载后,LUN2进入编程,判断LUN1编程是否成功,如果编程成功则将写成功的块和页的地址按访问优先级写入fram特定地址中,若LUN1和LUN2页地址小于127,应将LUN1和LUN2页地址加1,若LUN1和LUN2页地址等于127,则将LUN1和LUN2页地址归零,LUN1和LUN2块地址加2;如果编程失败,则将写失败的页地址按访问优先级写入fram对应地址中。当FIFO1存满8K数据时,使能LUN1记录开始信号;判断LUN1中当前存储地址与存储容量空间对应地址关系,如果小于存储容量空间对应地址,按优先级访问fram判断编程对应的两块是否为坏块,若为坏块,块地址加2,继续进行坏块判断,若为好块,进行双平面编程写(需要219.3us),进入步骤5。如果当前存储地址大于等于存储容量空间对应地址,则表明该flash已经存满,输出该flash芯片存储满标志,不再记录;当所有flash芯片存储满,将该装置不再执行记录操作。
5、完成LUN1 8K数据的加载后,LUN1进入编程,判断LUN2编程是否成功,如果编程成功则将写成功的块和页的地址按访问优先级写入fram特定地址中;如果编程失败,则将写失败的块和页的地址按访问优先级写入fram对应地址中。当FIFO2存满8K数据时,使能LUN2记录开始信号;判断LUN2中当前存储地址与存储容量空间对应地址关系,如果小于存储容量空间对应地址,按优先级访问fram判断编程对应的两块是否为坏块,若为坏块,块地址加2,继续进行坏块判断,若为好块,进行双平面编程写(需要219.3us),返回步骤4。如果当前存储地址大于等于存储容量空间对应地址,则表明该flash已经存满,输出该flash芯片存储满标志,不再记录;当所有flash芯片存储满,将该装置不再执行记录操作。
以上所述,仅为本发明最佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
本发明说明书中未作详细描述的内容属于本领域专业技术人员的公知技术。
Claims (6)
1.一种基于LVDS接口的高速图像数据存储装置,其特征在于,包括数据采集接收模块、开关量接收模块、存储模块、主控模块、以太网通信模块和电源模块;
数据采集接收模块利用解串器将接收的串行LVDS图像数据转化为并行数据,待解串器锁定后,将并行数据送入主控模块,数据采集接收模块包括三路完全相同的解串器,能够同时采集三路图像;
开关量接收模块采用光耦接收开关量,进行隔离后发送给主控模块;主控模块具有空闲状态、记录状态、擦除状态以及停止记录状态,根据开关量进行状态切换;
存储模块用于存储图像数据,包括flash存储芯片和fram芯片;
主控模块,控制flash存储芯片和fram芯片的进行自检操作以及flash存储芯片的初始化坏块检测操作;根据开关量进行状态切换;控制完成记录图像数据;主控模块采用FPGA,形成12个FIFO,每片flash存储芯片对应两个FIFO,第一FIFO和第二FIFO;
对flash存储芯片的操作,包括自检、初始化坏块检测、擦除、编程写、回读以及坏块管理;flash存储芯片的坏块信息存储在fram芯片中;
编程写操作的具体方法为:
(1)第一FIFO中的数据写满后,将数据写入对应flash存储芯片的第一LUN中,完成数据加载后,第一LUN进入编程;
(2)等待第二FIFO中的数据写满后,将数据写入对应flash存储芯片的第二LUN中,完成数据加载后,第二LUN进入编程,判断第一LUN编程是否成功,如果编程成功则将写成功的块和页的地址按访问优先级写入fram芯片的特定地址中;如果编程失败,则将写失败的块和页的地址按访问优先级写入fram芯片的对应地址中;
(3)第一FIFO中的数据写满后,将数据写入对应flash存储芯片的第一LUN中,完成数据加载后,第一LUN进入编程;判断第二LUN编程是否成功,如果编程成功则将写成功的块和页的地址按访问优先级写入fram芯片特定地址中;如果编程失败,则将写失败的块和页的地址按访问优先级写入fram芯片对应地址中;返回步骤(2)直至flash存储芯片存满;
以太网通信模块用于主控模块与上位机之间的通讯;
电源模块为整个存储和转发装置提供电源。
2.根据权利要求1所述的基于LVDS接口的高速图像数据存储装置,其特征在于,存储模块包括6片flash存储芯片和一片fram芯片,flash存储芯片的坏块信息存储在fram芯片中。
3.根据权利要求2所述的基于LVDS接口的高速图像数据存储装置,其特征在于,主控模块的控制流程如下:
(1)控制flash存储芯片进行自检操作;
(2)控制fram芯片进行自检操作;
(3)进行flash存储芯片初始坏块检测;
(4)扫描开关量,进行状态切换,若为空闲状态,则继续等待,如果接收到上位机发送的回读命令,则将flash存储芯片中存储的数据依次上传到上位机;若为擦除状态,则执行擦除操作,将6片flash存储芯片顺序进行擦除;若为记录状态,则开始执行记录指令,同时对6片flash存储芯片进行编程写操作;若写操作过程中出现开关量要求切换为停止记录状态,则停止三路图像源的记录。
4.根据权利要求2所述的基于LVDS接口的高速图像数据存储装置,其特征在于,6片flash存储芯片中第一flash存储芯片用于记录图像1,第三flash存储芯片用于记录图像3,第五flash存储芯片用于记录图像2,而第二flash存储芯片、第四flash存储芯片、第六flash存储芯片用于记录第一flash存储芯片、第三flash存储芯片、第五flash存储芯片对应数据的备份数据。
5.根据权利要求4所述的基于LVDS接口的高速图像数据存储装置,其特征在于,多片flash存储芯片同时访问fram芯片时,则需要判断优先级,第三flash存储芯片的优先级>第四flash存储芯片的优先级>第一flash存储芯片的优先级>第二flash存储芯片的优先级>第五flash存储芯片的优先级>第六flash存储芯片的优先级。
6.一种利用权利要求2所述的基于LVDS接口的高速图像数据存储装置进行图像数据存储的方法,其特征在于,包括如下步骤:
(91)图像数据存储装置上电后复位,发送自检开始命令,存储模块中6片flash存储芯片进行自检;主控模块分别读取6片flash存储芯片的ID,判断ID是否与出厂一致,如果一致表明flash存储芯片均正常,进入步骤(92),否则,输出flash存储芯片自检失败,进入步骤(92);
(92)进行fram芯片自检,主控模块向fram芯片中的某一固定地址写入数据,然后读取该固定地址中的数据,判断读取数据与写入数据是否一致,如果一致则表明fram芯片正常,输出自检正常,并进入步骤(93),否则,输出fram芯片自检失败,进入步骤(93);
(93)进行flash存储芯片初始坏块检测,主控模块读取flash存储芯片中的每块第一页空余区的首字节,如果为00h,判断该块为坏块,将该块对应fram芯片中的地址内容写为FFh,主控模块遍历所有flash存储芯片的所有块,将所有flash存储芯片的坏块信息写入fram芯片中,完成初始化坏块检测,便于在访问时避开这些坏块;如果不是00h,判断该块不是坏块;
(94)开始扫描开关量,若开关量为000,则继续等待,如果接收到上位机发送的回读命令,则将flash存储芯片中存储的数据依次上传到上位机;若开关量为111,则执行擦除操作,将6片flash存储芯片顺序进行擦除;当扫描开关量为001,则开始执行记录指令,同时对6片flash存储芯片进行编程写操作;
对6片flash存储芯片进行编程写操作的具体方法为:
(101)数据采集接收模块采集3路图像源的图像数据存入该图像源对应的FIFO中,每路图像源对应四个FIFO,原始数据存储和备份数据存储分别需要2个FIFO,共12个FIFO;
(102)对于单片flash存储芯片当第一FIFO存满数据时,使能第一LUN记录开始信号;判断第一LUN中当前存储地址与存储容量空间对应地址关系,如果小于存储容量空间对应地址,按优先级访问fram芯片判断编程对应的块是否为坏块,若为坏块,块地址加2,继续进行坏块判断,若为好块,进行双平面编程写,进入步骤(103);如果当前存储地址大于等于存储容量空间对应地址,则表明该flash存储芯片已经存满,输出该flash存储芯片存储满标志,不再记录;当所有flash存储芯片存储满,将该装置不再执行记录操作;如果包括多片flash存储芯片同时访问fram芯片,则需要根据优先级确定访问顺序;
(103)将第一FIFO中的数据,写入对应flash存储芯片的第一LUN中,完成数据的加载后,第一LUN进入编程,等待第二FIFO中的数据写满后,使能第二LUN记录开始信号,判断第二LUN中当前存储地址与存储容量空间对应地址关系,如果小于存储容量空间对应地址,按优先级访问fram芯片判断编程对应的块是否为坏块,若为坏块,块地址加2,继续进行坏块判断,若为不是坏块,将第二FIFO中的数据写入对应flash存储芯片的第二LUN中;如果当前存储地址大于等于存储容量空间对应地址,则表明该flash存储芯片已经存满,输出该flash存储芯片存储满标志,不再记录;当所有flash存储芯片存储满,将该装置不再执行记录操作;
(104)完成第二LUN数据的加载后,第二LUN进入编程,判断第一LUN编程是否成功,如果编程成功则将写成功的块和页的地址按访问优先级写入fram芯片特定地址中,若第一LUN和第二LUN页地址小于页内地址阈值,应将第一LUN和第二LUN页地址加1,若第一LUN和第二LUN页地址等于127,则将第一LUN和第二LUN页地址归零,第一LUN和第二LUN块地址加2;如果编程失败,则将写失败的页地址按访问优先级写入fram芯片对应地址中;当第一FIFO存满数据时,使能第一LUN记录开始信号;判断第一LUN中当前存储地址与存储容量空间对应地址关系,如果小于存储容量空间对应地址,按优先级访问fram芯片判断编程对应的块是否为坏块,若为坏块,块地址加2,继续进行坏块判断,若为好块,进行双平面编程写,进入步骤(105);如果当前存储地址大于等于存储容量空间对应地址,则表明该flash存储芯片已经存满,输出该flash存储芯片存储满标志,不再记录;当所有flash存储芯片存储满,将该装置不再执行记录操作;
(105)完成第一LUN数据的加载后,第一LUN进入编程,判断第二LUN编程是否成功,如果编程成功则将写成功的块和页的地址按访问优先级写入fram芯片特定地址中;如果编程失败,则将写失败的块和页的地址按访问优先级写入fram芯片对应地址中;当第二FIFO存满数据时,使能第二LUN记录开始信号;判断第二LUN中当前存储地址与存储容量空间对应地址关系,如果小于存储容量空间对应地址,按优先级访问fram芯片判断编程对应的块是否为坏块,若为坏块,块地址加2,继续进行坏块判断,若不是坏块,进行双平面编程写,返回步骤(104);如果当前存储地址大于等于存储容量空间对应地址,则表明该flash存储芯片已经存满,输出该flash存储芯片存储满标志,不再记录;当所有flash存储芯片存储满,将该装置不再执行记录操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710580625.3A CN107491267B (zh) | 2017-07-17 | 2017-07-17 | 一种基于lvds接口的高速图像数据存储装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710580625.3A CN107491267B (zh) | 2017-07-17 | 2017-07-17 | 一种基于lvds接口的高速图像数据存储装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107491267A CN107491267A (zh) | 2017-12-19 |
CN107491267B true CN107491267B (zh) | 2020-07-14 |
Family
ID=60644527
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710580625.3A Active CN107491267B (zh) | 2017-07-17 | 2017-07-17 | 一种基于lvds接口的高速图像数据存储装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107491267B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112346646B (zh) * | 2019-08-06 | 2023-05-23 | 天津光电通信技术有限公司 | 高速大容量存储器及写入、读取和擦除方法 |
CN111124276B (zh) * | 2019-11-15 | 2023-09-29 | 中国运载火箭技术研究院 | 一种可多模态工作的数据存储系统及方法 |
CN111914498A (zh) * | 2020-05-07 | 2020-11-10 | 电子科技大学 | 一种mcu外接芯片的时分复用adio硬件实现方法 |
CN113296708A (zh) * | 2021-06-03 | 2021-08-24 | 中北大学 | 一种具有双flash混合数据并行存储和纠错功能的存储装置 |
CN113421606A (zh) * | 2021-07-08 | 2021-09-21 | 成都盛芯微科技有限公司 | flash检测方法及其检测系统 |
-
2017
- 2017-07-17 CN CN201710580625.3A patent/CN107491267B/zh active Active
Non-Patent Citations (3)
Title |
---|
一种高速大容量图像存储装置的关键技术研究;赵俊江等;《现代电子技术》;20170615;第40卷(第12期);第144-147,151页 * |
基于LVDS接口的高速图像数据记录器的设计与实现;李勇;《中国优秀硕士学位论文全文数据库(电子期刊)<信息科技辑>》;20131015;I140-213 * |
基于LVDS接口的高速数据记录器的设计;储成群;《中国优秀硕士学位论文全文数据库(电子期刊)<信息科技辑>》;20111015;I140-134 * |
Also Published As
Publication number | Publication date |
---|---|
CN107491267A (zh) | 2017-12-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107491267B (zh) | 一种基于lvds接口的高速图像数据存储装置 | |
US10552047B2 (en) | Memory system | |
JP5193045B2 (ja) | 出力制御部を備えたメモリ | |
KR101154148B1 (ko) | 복수 개의 독립적인 직렬 링크 메모리 | |
CN112035381B (zh) | 一种存储系统及存储数据处理方法 | |
JP5226722B2 (ja) | 記憶装置 | |
CN115687228B (zh) | 一种基于PCIe总线的星载固态存储系统及方法 | |
US8145858B2 (en) | Interleave control device, interleave control method, and memory system | |
US20070067598A1 (en) | Storage device and host apparatus | |
US8266371B2 (en) | Non-volatile storage device, host device, non-volatile storage system, data recording method, and program | |
TWI495998B (zh) | 資料管理方法、記憶體控制器與記憶體儲存裝置 | |
US10698851B1 (en) | Data bit width converter and system on chip thereof | |
CN114625678B (zh) | 存储器系统 | |
US7197590B2 (en) | Method and apparatus for connecting LPC bus and serial flash memory | |
CN102520892A (zh) | 多功能固态数据存储回放仪 | |
CN103903651A (zh) | 双线串行端口内建自测电路及其通讯方法 | |
KR100844988B1 (ko) | 메모리 고속복사 장치 및 방법 | |
CN112256203B (zh) | Flash存储器的写入方法、装置、设备、介质及系统 | |
US9971522B2 (en) | Memory system and method | |
CN113742282A (zh) | 一种基于fpga的sata ip核及数据存储方法 | |
TWI570557B (zh) | 內部資料搬移方法以及使用該方法的裝置 | |
CN103150129B (zh) | PXIe接口Nand Flash数据流盘存取加速方法 | |
CN110633226A (zh) | 融合存储器、存储系统及深度学习计算方法 | |
CN109726149B (zh) | 一种axi总线访问nand flash的方法及装置 | |
CN114860158A (zh) | 一种高速数据采集记录方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |