DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 91|回复: 0
打印 上一主题 下一主题

基于FPGA的高速数据采集存储系统的设计

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-17 14:57:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
0 引言??? 信息技术的发展,特别是各种数字处理器件处理速度的提高,实时处理大量的数据已经成为现实。但是,在一些恶劣环境和数据无法进行实时传输的情况下,还必须用到存储测试的方法。存储测试是指在对被测对象无影响或影响在允许的范围条件下,在被测体内置入微型存储测试系统,现场实时完成信息快速采集与存储,事后对存储器进行回收,由计算机处理和再现被测信息的一种动态测试技术。针对具体的情况,我们研制开发了一种用蓄电池就可工作的、能在各种恶劣环境下应用的、可回收的小体积低功耗的大容量数据采集存储系统。1 系统总体设计??? 整个系统以FPGA为核心控制器来组织工作,它控制着整个系统的读、写、擦除等操作。系统主要解决的问题是采集、存储和数据事后读取。系统整体框图如下图1所示。

1.1 数据采集??? 由于要同时对多路信号进行采集,我们采取了FPGA对模拟开关进行均等时间推进以实现通道的转换。当转换到某一通道时,FPGA同时要启动A/D进行模数转换。为了达到高精度采集的目的,采用16位的AD转换器AD762l,模拟开关选用ADG706。以下是AD转换器的硬件电路连接图2。

1.2 AD采集时序??? AD采集时序图如下图3所示。AD采集过程从/CNVST信号下降沿开始,BUSY信号下降沿完成,BYTE信号控制数据类型,低电平为低8位数据,高电平为高8位数据。延迟0.9us给出第一个WRFIFO信号,WRFIF0高电平有效,在此期间数据线上的数据为低8位数据,经过1.8us的低电平后,给出第二个WRCLK信号,此时数据为高8位数据,一个数据的转换完成。图3 AD采集时序图

1.3 数据存储??? 对数据的存储,我们采用闪存(FLASH Memory)作为存储器.它具有体积小、功耗低和数据不易丢失的特点。对FLASH的写操作过程有其固定的操作模式,如图3所示。由于FLASH是按页存储的,当一页写完之后要进行下一页的控制字和地址的重新写入,为了使采集回来的数据能及时准确的写/kFLASH,而不至于在页与页的交替时间内使数据丢失.所以不可能将采集回的数据直接存入FLASH,我们利用FPGA内部集成FIF0来缓存FLASH MEMORY编程期间A/D控制器上传的数据,A/D转换器总的采样率为12KSPS,精度为12位,加上通道号和帧计数,每秒钟A/D控制器上传到FIF0的数据为34KB。FLASH MEMORY最大编程时间为300us。在FLASH MEMORY编程期间A/D转换器上传到FIF0的数据为:34KB×300us=10.2B。因此FPGA内部集成FIF0设计成宽度为一个字节,深度为1024的异步FIFO,即总容量为1KB,完全能够缓存FLASH MEMORY编程期间A/D控制器上传的数据。
                          
                       
                          
                                ??? FPGA内部集成FIFO是由存储器、地址比较器、写地址控制器和读地址控制器构成,原理框图如4所示。

其中存储器是由两个宽度为4位、深度为1024的双口RAM采用并联的方式构成的。连接方法如图5所示。

通过DIA端口将数据写入双口RAM,通过DOB端口将数据读出,WEA和JENA接VCC,即接高电平,使双口RAM的A部分工作在写入状态,在CLKA的上升沿通过DIA将数据写入双口RAM;WEB接GND,即接低电平;ENB接VCC,即接高电平,使双口RAM的B部分工作在输出状态,在CLKB的上升沿通过DOB将数据输出双口RAM。1.4 数据的分区存储??? 本系统采用一片FLASH存储器,该芯片有128M Byte的容量,根据计算32M Byte的容量就可以把需要采集的数据全部记录下来,所以把存储器按其块地址顺序分为4个区,每个区均为32M Byte。测试系统上电复位后首先进入的是自检状态,每次顺序检测第1区中是否有数据,如果没有则把该次启动的采集的数据顺序写入第l区中,直到第1区存储完成,则停止记录并且系统断电。断电后再一次启动采集也一样首先检测第一块中是否有数据,有数据则检测下一块是否有数据,若没有数据,则顺序把从FIFO中上传的导弹飞行数据写入存储器,如果有数据,则依次地址跳到下下一块,采集满则停止,依次类推,直到把4个区都写入了数据,则不论怎么启动采集也不会把数据覆盖再写入,除非执行擦除操作把存储器中的数据清空。

?这种多次启动系统,存储器分区记录的技术使系统具有一定的冗余设计,虽然不能从根本上消除误启动而造成整个试验的失败,但是该技术在实际试验中具有十分重大的意义。2 系统的灌封技术??? 采集存储系统需工作在高温高压等恶劣环境下,因此最重要的是它的防护结构的设计。在结构设计上采用了抗高冲击的结构设计技术,主要包括:缓冲保护技术、灌封保护技术,力求能够最好的保护好存储模块。图7是采集存储器的可靠性结构示意图。图7采集存储器可靠性结构示意图

3 创新性说明??? 本文介绍了一种基于FPGA的多路数据采集存储系统的设计方法及其可靠性结构设计,该系统存储容量大,体积小,可工作在高温、高压、强冲击、强振动、高过载等恶劣环境下。采用了存储器分区存储技术,可以避免误操作将有用数据覆盖。该系统已投入使用,性能优,值得推广。
                          
                       
                          
                               
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-11-16 05:36 , 耗时 0.093811 秒, 18 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表