基于FPGA的高速大容量固态存储设备设计

最新更新时间:2007-06-08来源: 国外电子元器件关键字:采样  模数  通道  控制 手机看文章 扫描二维码
随时随地手机看文章

1 引言

高速数据采集系统目前已在雷达、声纳、图像处理、语音识别、通信、瞬态信号测试等领域得到广泛应用。它的关键技术是高速ADC技术、数据存储与传输技术和抗干扰技术。当大量的高速实时数据经过模数转换后,必须高速存储,多通道高采样率的数据采集系统会产生巨大的数据流。这样就需要高速大容量的存储板将数据存储起来,然后再读回计算机进行处理。基于以上原因,本文设计了可以同时存储两通道采样数据的大容量存储板,板中采用了64片Samsung公司的高速大容量存储器K9F2G08UOM,使整块板卡的存储容量达到128Gbit。采用FPGA作为控制器,通过标准的CPCI工控机箱操作存储板,并通过CPCI总线将存储板上的数据高速读回计算机,提高了读取数据的速度。

2 K9F2G08UOM简介

NOR Flash和NAND Flash是目前市场上的两种主要的非易失性闪存技术,本设计的目的是为了高速存储大容量的数据,因此,选择NAND型K9F2G08U0M存储器。它的存储容量是2 Gbit,8位位宽,页大小为2 048×8 bit,每块由64页组成,共有2 048块。每页带有64×8 bit的空闲存储区,共有8 192 K×8 bit的空闲存储区。页编程的典型时间为300μs,最大页编程时间为700μ8。页内连续最小访问时间为30 ns/Byte,即数据写入Flash数据寄存器的速度可达33 MB/s。但是单页数据的典型编程速度为2 048/300μs=6.8 MB/s,最慢的编程速度为2 048/700μs=2.9 MB/s。块擦除的典型时间为2 ms。K9F2G08U0M具有硬件数据保护功能,即在电源上电、掉电期间关闭编程/擦除操作。K9F2G08U0M内部写控制器使得所有的编程和擦除操作自动进行,片内包含一个页(2 048+64字节)的数据寄存器,读写过程中始终是将存储单元数据或外部数据先缓存到数据寄存器,然后再读出数据或写入存储单元。因此,它是基于页读写,基于块擦除的。当然,它也支持随机读写。但本设计目的是高速存储数据,因此对它的读写操作完全是基于页的。K9F2G08U0M的主要引脚有CLE(命令锁存允许)、ALE(地址锁存允许)、CE(片选)、WE(写允许)、RE(读允许)、WP(写保护)、R/B(准备好/忙)、PRE(上电读使能)、I/O0~I/O7(输入,输出)。其中I/O0~I/O7既可作为数据输入输出引脚,又可作为命令地址的输入引脚,命令、地址、数据分时复用,根据不同的命令区分地址和数据。一般的操作流程为:

1) 写入命令,通知器件所要完成的操作(读、写、擦除等);

2) 写入地址,即写入要读写数据的起始地址,包括列地址和页地址;

3) 如果是读或者擦除,写入一个确认命令。如果是写操作,输人待编程的数据,完成后输入编程确认命令。

因为K9F2G08U0M共有128 K页,每页的大小为(2 048+64)×8 bit,所以在写入地址时列地址需要12根地址线,页地址需要17根地址线。这样就需要5个时钟周期来写入地址。前两个时钟写入列地址,后三个时钟写人页地址。

3 系统设计

3.1 总体硬件设计

外部数据采集系统是2个40 MHz采样的16位A/D通道,所以设计时分成两个通道独立设计。虽然K9F2G08U0M的数据寄存器写入速度可达33MB/s,但在FPGA设计时,为了在时序上更加可靠,选择使用25 MHz的时钟设计,则K9F2G08U0M的写入速度为50 MB/s(把两个K9F2G08U0M并成16bit,写入速度即为25 M×l6 b/s)。这样,在FPGA内部开辟3个页大小的双口RAM作为缓存区就能满足40 M×16 b/s的写入速度,即在写第2、3个RAM的时间(25 ns×2 048×2=102.4μs)内,启动第1个RAM把数据写入Flash的数据寄存器,所需时间为40 ns×2 048=81.92μs,小于102.4μs。

在读回数据时,如以20 MHz读取Flash,以40MHz读出缓冲区中的数据,3个双口RAM就能刚好满足要求,如图1。读取K9F2G08U0M一页数据能达到33 MHz的速度,为了让读写Flash使用同一时钟,读Flash也采用25 MHz的速度。同时为了增加系统设计的冗余,采用4页的双口RAM作为缓冲区。所以每片FPGA内部至少需要4×2 048×16 bit=131 072 bit的存储空间。

由于数据在写入Flash后还有较长的编程时间,一页的编程时间典型值为300μs,最大值为700μs。数据在存储上不能有任何的停顿,否则就会丢失数据,所以不能使用R/B信号进行设计。为了系统更加可靠,选择最大编程时间700μs。两次对同一组Flash进行写操作的时间间隔为700μs+81.92μs=781.92μs,一页的数据写到双口RAM要用25ns×2 048=51.2μs。总时间除以写一页数据的时间:781.92/51.2=15.3μs,说明一个循环内至少需要16组Flash才能满足要求。所以在设计中,对于每路A/D采样通道都用一片FPGA作为缓冲和控制系统,在每片FPGA内部都采用4个缓冲区,每个缓冲区对应一条外部总线,每条总线上挂有4组K9F2G08U0M×2(将两片Flash并成16位操作,即把I/O并成16位,共用控制信号线)。系统整体框图如图2所示。

图2中2个外部接口连接2个A/D通道,采用两片FPGA作为控制和缓冲区,每片控制16组Flash。存储板通过PCI9054与CPCI总线相连,通过CPCI总线可以将存储板数据高速读回计算机。

3.2 系统设计思想

为了解决高速的数据采集和低速的Flash访问速度之间的矛盾,采取将数据流串并转换,复制多个操作模块并行处理的设计方法。通过利用FPGA内部的存储区实现4个双口RAM作为缓冲区。每条外部Flash总线用一个双口RAM,采集到的数据分时加载到4个RAM中,然后再写入Flash。写入Flash的操作以流水方式进行,具体方式如图3所示。首先,外部A/D采样通道写数据到RAM1。当RAM1写满时,加载数据到第一组Flash数据寄存器,加载完成后第一组Flash进入自动编程阶段;当RAM2写满时,第2组Flash加载开始,数据加载完成后,进入自动编程阶段。依次加载RAM3,当RAM4写满,第4组Flash开始加载后,FPGA内部控制重新写RAM1,开始对第5组Flash操作,然后依此循环方式对第6~16组Flash进行操作;当第16组数据加载完成后,第1组Flash已经编程结束,接着从第1组Flash开始加载和编程。可看出向16组Flash写入数据是并行的,通过并行写操作,可存储高速采集的数据。

FPGA内部设计大体可划分为PCI9054操控部分和数据录放部分。PCI9054操控部分一方面跟PCI9054接口,一方面要完成对Flash的操作。数据录放部分主要完成外部数据写入、读出以及擦除、建立无产块信息列表等功能。由于对4组Flash的操作都是一样的,所以数据录放部分可以分为数据流控制部分和Flash操控部分。数据流控制部分控制数据写入或读取哪组Flash;Flash操控部分用于对Flash的具体操作。图4为数据录放部分FPGA功能结构。为了节省内部存储单元的数量,写入和读取数据要使用同样的缓存区。

3.3 无效块的建立和操作

当一个块中有一位或更多位不能正确操作时,就定义此块为无效块。无效块并不影响其他块的正常工作,各个块之间是相互独立的。所选的K9F2G08U0M在出厂时可能存在无效块,在使用中也可能产生新的无效块,但是器件的第一个块一定不是无效块。NAND Flash在出厂时就标记本身的无效块,每个块的第一页或第二页的空闲区的第一个数据不是FFh,则表示此块为无效块。为了保证Flash的正确操作,必须在操作之前建立无效块信息表。在每片FPGA中设计了4个2 048×1 bit的RAM用于存储无效块的信息。RAM的每一个存储单元存储相应总线上的4组Flash的无效块信息。其中某一块的无效块信息是4组Flash的无效块信息相“与”后的结果(1表示正常,0表示无效块)。在对Flash进行读、写或擦除操作之前,应先从RAM中读取无效块信息,然后根据无效块信息决定是否对当前块操作。

3.4 读写Flash操作

对Flash的读写操作都是基于页的,读写操作的时序分别如图5和图6所示。计算机通过CPCI总线发送出读或写命令后,FPGA内部根据接收到的命令执行相应操作。写Flash时,外部采集的数据输入RAM1,RAM1满后,开始向RAM2写入数据,同时选通第一条总线上第一组Flash的写模块,在写模块中通过计数器产生ALE、CLE、WE、RE等控制写Flash的相应时序,将数据从RAM中编程到Flash内存,并令页地址加1,依次循环(循环流程见图3)。当总线上的第4组Flash的页地址为64时,块地址加1,并读取无效块信息,如果为无效块,则屏蔽此块,重新读取下一块信息,直至读取到正常块为止。如果是正常块,则向此块中写入数据,同时将页地址清零。读操作与写操作类似,只不过是将Flash中的数据读出先送到RAM,然后依循环次序读取RAM即可。

3.5 PCI9054操控部分的设计

通过编写PCI9054专用的驱动和应用软件,实现由计算机通过CPCI总线操控存储板卡。在应用软件中,对Flash读写或者擦除等命令自定义为对CPCI总线发送特定的数据。而在FPGA内部根据PCI9054发送的局部端数据线上的特定数据判断是何种操作,并执行相应操作。FPGA和PCI9054通信的主要信号线有LHOLD、LHOLDA、READY、ADS、ADDR、DATA,利用这些信号线可以实现PCI9054局部端和FPGA握手。将数据写到计算机中。在PCI9054专用的驱动和应用软件中,利用DMA方式读取Flash,读取速度可提高至1.3 MHz×16 bit。

4 结束语

本设计采用流水、并行处理技术,利用FPGA内部嵌入的存储块设计一组高速数据缓冲区,使得多个慢速的存储器件并行工作,令系统内外部数据的速率匹配,避免了外置高速缓存,简化了硬件电路,且极大地提高了存储数据的速率。大容量高密度闪存器件可使单片存储板容量高达128 Gbit。在FP-GA内部设计中,建立Flash无效块信息列表,并在此基础上对Flash进行读、写、擦除及重建无效块信息等操作。使系统具有集成度高、灵活性好、可移植性强、速度快等特点。通过CPCI总线采取DMA方式读取,极大地提高了读取速度。当接收到的数据带宽很大,速度很高时,可将存储板并联起来,多个存储板级联可满足更大的存储容量需求,也可将级联并联二者结合起来以满足不同系统的要求。整个系统基于CPCI工控机箱,更适合于野外的工作环境,并能及时保存、分析数据。

关键字:采样  模数  通道  控制 编辑: 引用地址:基于FPGA的高速大容量固态存储设备设计

上一篇:存储器卡接口电平转换与信号保护
下一篇:一种NAND FLASH自启动的新方法

推荐阅读最新更新时间:2023-10-13 10:44

C8051F020触摸屏驱动控制
C8051F020触摸屏驱动控制 目前触摸屏和液晶屏已成为嵌入式计算机系统常用的输入输出设备。触摸屏分为电阻、电容、表面声波、红外线扫描和矢量压力传感式触摸屏,其中使用最多的是四线或五线电阻式触摸屏。TSC2046为四线电阻式触摸屏控制器,以其低功耗和高速率等特性广泛应用于电池供电的小型手持设备。 C8G051Fxxx系列单片机是完全集成的混合信号系统级器件,峰值速率达25 MI/s。片内集成ADC和DAC;SMBus/I2C、UART、SPI接口:可编程计数器/定时器阵列;64个I/O端口(P0~P7);内部具有JTAG和调试电路,支持在系统调试。本文介绍了利用该系列单片机C8051F020、TSC2046和液晶屏实现人
[单片机]
C8051F020触摸屏驱动<font color='red'>控制</font>
基于PLC的四轴联动简易机械手控制系统
一四轴联动简易机械手的结构及动作过程    机械手结构如下图1所示,有气控机械手(1)、XY轴丝杠组(2)、转盘机构(3)、旋转基座(4)等组成。 其运动控制方式为:(1)由伺服电机驱动可旋转角度为360°的气控机械手(有光电传感器确定起始0点);(2)由步进电机驱动丝杠组件使机械手沿X、Y轴移动(有x、y轴限位开关);(3)可回旋360°的转盘机构能带动机械手及丝杠组自由旋转(其电气拖动部分由直流电动机、光电编码器、接近开关等组成);(4)旋转基座主要支撑以上3部分;(5)气控机械手的张合由气压控制(充气时机械手抓紧,放气时机械手松开)。    其工作过程为:当货物到达时,机械手系统开始动作;步进电机控制
[工业控制]
基于PLC的四轴联动简易机械手<font color='red'>控制</font>系统
基于单片机控制的数字温度计的设计
    温度是人们日常生活中常常需要测量和控制的一个物理量。传统的温度计有反应速度慢、读数麻烦、测量精度不高、误差大等缺点,而在某些特定的场合,器材设备对温度的要求极高,设计一种高精度的温度计就显得十分有意义。设计的高精度温度计有着线性优良、性能稳定、灵敏度高、使用方便、软硬件结构实现了模块化、电路简单等优点。 1 设计方案     热敏电阻是对温度变化非常敏感的电阻元件,它在测温技术、无线电技术、自动化和遥控等方面都得到广泛的应用。热敏电阻能够将环境温度的变化转化为电阻自身阻值的变化,它将温度的变化转换为连续的电信号的变化,再由外电路把该电信号转化成单片机可处理的脉冲(频率)信号,由单片机来直接处理。热敏电阻构成的555振荡电路能
[单片机]
基于单片机<font color='red'>控制</font>的数字温度计的设计
CAN总线模块在机场跑道灯光控制中的应用
 系统介绍:   民航机场跑道灯,边线灯等是飞机安全着陆的重要条件,每当日光不足或者夜间,跑道灯一定要点亮以给准备着陆的飞机指示跑道的方向和轮廓,引导飞机安全着陆。当这些灯光部分损坏,会给飞机安全带来严重的后果。如何自动巡回检测这些灯光的工作状态是一个机场安全的重要课题。   具有专利技术的机场跑道单灯监控装置是可以同时监视从同一个供电的调光器控制的近百盏灯的装置。若干调光器联合工作构成了机场的跑道照明系统,而配套的若干监控装置也可以同时构成一套完整的监控系统。   设计要求:   1.将若干监控装置传来的灯状态信息集中并采集到数据库中(其中每个监控装置传送近百个灯状态)并通过软件动态显示在计算机屏幕上。每
[工业控制]
CAN总线模块在机场跑道灯光<font color='red'>控制</font>中的应用
无线控制授时技术(RCT)及其应用
摘要:介绍了无线控制授时技术RCT的背景、RCT发射机及接收机技术原理、RCT编码技术以及RCT技术目前在各国的应用情况。给出了RCT接收机的硬件功能框图及软件流程图展望了RCT技术在我国的应用前景。 关键词:无线控制授时 BPC WWCB MSF DFC JJY RCT 1 无线控制授时RCTRadio Controlled Technology技术的应用背景及目前各国的技术标准和应用情况 正确的时间在人们日常生活中是不可或缺的。随着微处理器在家用电器、工业产品中的日益普及,许多产品中嵌入了时间处理、显示模块。目前多数产品中的时钟源由晶体振荡产生比较精确的时间。但是在许多场合,由于晶体振荡需要电源供给,在掉电
[网络通信]
基于ATMEGA16的智能控制器的开发研制
1 、引言 随着科学技术的飞速发展和人们生活水平的提高,普通仪表已显过时,不能满足现代生活的需求。现代仪表已日趋数字化、网络化和智能化。微电子技术的发展和工业过程对测控方面要求的加强,使智能仪表的应用更广、成本更低。AVR单片机具有低成本、低功耗、高速度的特点。本控制器主要针对浙大中控的 AE2000B过程控制实验装置设计的,对其水箱的液位、电热锅炉的温度进行控制、显示。 2 、智能仪表的研制开发 智能仪表是以单片机为核心的仪表,其设计要点大致有两点,即模块化设计和模块的连接。 2 、1 模块化设计 依据仪表的功能、精度要求等,自上而下按仪表功能层次把硬件和软件分成若干个模块,分别进行设计与调试
[单片机]
基于ATMEGA16的智能<font color='red'>控制</font>器的开发研制
arm驱动linux并发与竞态并发控制
《 linux并发与竞态---并发控制》涉及内核驱动函数五个,内核结构体一个,分析了内核驱动函数六个;可参考的相关应用程序模板或内核驱动模板五个,可参考的相关应用程序模板或内核驱动零个 一、并发与竞态 1、并发:多个执行单元同时被执行。例如:同一个test.out可执行程序被n次同时运行 2、竞态:并发的执行单元对共享资源(硬件资源和软件上的全局变量,静态变量等)的访问导致的竞争。 a)静态的列子: char *p;//全局变量 // 读取函数 module_drv_read(struct file *file, constchar __user *buf, size_t count, loff_t
[单片机]
国产控制芯片应用情况
控制类芯片介绍 控制类芯片主要就是指MCU(Microcontroller Unit),即微控制器,又叫单片机,是把CPU的主频与规格做适当缩减,并将存储器、定时器、A/D转换、时钟、I/O端口及串行通讯等多种功能模块和接口集成在单个芯片上,实现终端控制的功能,具有性能高、功耗低、可编程、灵活度高等优点。 车规级MCU示意图 ※资料来源:公开资料、编写单位提供 汽车是MCU的一个非常重要的应用领域,据IC Insights数据,2019年全球MCU应用于汽车电子的占比约为33%。高端车型中每辆车用到的MCU数量接近100个,从行车电脑、液晶仪表,到发动机、底盘,汽车中大大小小的组件都需要MCU进行把控。 早期,汽车
[嵌入式]
国产<font color='red'>控制</font>芯片应用情况
小广播
最新缓冲存储文章

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 综合资讯

词云: 1 2 3 4 5 6 7 8 9 10

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved