数据采集系统并行存储的实现

关键词: 采集

在现代工业生产、控制和科学研究中, 对各种现场数据进行采集、传输、处理已是必不可少的组成部分。通常, 在数据采集的应用开发中, 为了便于进行事后的数据处理和分析, 以及为了存档, 需要实时地把采集到的数据存储到介质中, 当采样率不太高、路数较少时, 要做到这一点是没有问题的;但是当采样率较高、路数较多时, 进行高速数据采集与实时存储将会成为一个比较棘手的难题。在我们开发的数据采集系统中, 以硬盘作为存储介质, 利用FPGA对硬盘进行控制, 实现了数据采集并进行高速存储。系统整体框图如图1所示。

该系统以F A T 3 2分区格式存储数据, 在12路A/D以在192kHz的采样频率条件下实现数据采集存储, 它具有以下特点: (1) 以采用P I O模式对两块硬盘进行块操作来进行写盘, 可以有较高的存盘速度; (2) 以F A T 3 2分区格式存储数据, 存储的数据可以直接由计算机读出, 便于后续的数据处理; (3) 多数模块由F P G A来实现, 具有较强的扩展性; (4) 大多数采用低功耗器件, 使系统具有较低的功耗。

1 IDE接口

平常所说的I D E接口, 也称之为A T A接口。A T A的英文拼写为“A d v a n c e d Technology Attachment”, 含义是“高级技术附加装置”。ATA接口最早是在1986年由康柏、西部数据等几家公司共同开发的, 在9 0年代初开始应用于台式机系统。它使用一个4 0芯电缆与主板进行连接, 一般来说, 这条带状电缆的长度不会超过46cm (18英寸) 。电缆连接器通常被安装在带状电缆的两端用来连接主机和硬盘驱动器。几乎所有的信号都采用T T L电平, 只有少数信号例外, 如D A S P、P D I A G和IOCS16。

通过I D E接口的数据传输方式有P I O和DMA两种, PIO即Programmable I/O, 可编程的输入输出。这种模式必须由C P U来控制整个数据的传输过程, 所以C P U资源占用率相当高、对整体性能有很大的负面影响。另一种则是D M A模式, 这种模式不需要C P U来控制数据传输, 而是由主板芯片组中的D M A控制器来管理, 这样硬盘与内存可以直接进行数据交换无需动用CPU的计算能力, 因此DMA模式可以节省大量的资源、使C P U能够专注于程序执行与各类数据计算, 当然系统性能也就得以有效提高。

PIO共有0~4五种模式, 数据传输速率从3.3MB/s到16.6MB/s, 在ATA-1、ATA-2规格中得到大量采用;D M A则有S i n g l e Word 0/1/2与Multi Word 0/1/2共六种模式, 传输速率从2.1MB/s到16.6MB/s不等, 而UltraDMA 0~UltraDMA 6的传输速率从16.6MB/s到133MB/s。本系统是基于A T A-4标准设计的, 使用I/O 2数据传输方式[1]。

2 硬盘分区及FAT32文件结构

当硬盘被格式化时, 硬盘空间被分为4个部分:硬盘分区表 (MBR) 、硬盘BIOS表 (BPB) 、文件分配表 (FAT) 、数据空间。这四个部分在硬盘上依次排列, 分区表包含硬盘的分区内容, B P B表则含有硬盘的一些基本信息。

操作系统或者应用程序欲将数据写入一个磁盘文件时, 必须在磁盘上找到可以使用的未用扇区, 反过来要将数据从磁盘文件中读出来, 也要在磁盘上找到已经存储了相应数据的有关扇区。要查找扇区必须知道扇区的地址, 文件分配表F A T就是记录扇区地址的。硬盘采用了将扇区分组管理的方法, 分组的过程称作扇区分簇。当需要在磁盘上建立一个新文件时, 首先顺序检索F A T表, 找到第一个可用簇, 可用簇登记项为00000000H (FAT32格式) 。将该簇作为起始簇, 写入文件目录表F D T的相关登记项的起始簇字段中。然后继续检索后面的可用簇, 找到后将其簇号写入第一个可用簇项内。按照以上过程进行下去麻将满足文件长度所需的簇数全部找到。使每一个簇项的值指向下一个所需簇项在最后的簇登记项内写入结束标志FFFFFF0Fh。于是一条能够检索整个文件的簇链就形成了[2]。

3 数据采集存储系统硬件设计

整个数据采集系统由三大部分:数据采集及其控制部分、数据采集的数据缓冲部分、硬盘存储及其控制部分。

数据采集使用了AD转换器CS5351是一种高精度的ADC。CS5351是一种用于数字音频系统的完善的模拟至数字转换器。它具有采样、A/D转换和抗混叠滤波功能, 并可同时为左右输入端口产生至多192千赫/声道的串行24位数值。CS5351使用一个具有数字滤波和简化功能的5阶多位Delta-Sigma调制器, 无需增加外置抗混叠滤波器[3]。

数据采集部分得到的并行数据需采用F I F O作数据缓存, 将采集的数据存满一定的容量, 再对其进行块存储操作, 然后在DSP的控制之下, 将F I F O中的数据直接存入硬盘, 可以提高存储的速度。F I F O采用FPGA内部的IP核生成的, 宽度16bit, 深度4K。

及控制部分由DSP芯片、FPGA和接口电路组成。D S P是本系统的核心, 它在系统中的主要任务是:硬盘复位自检、控制数据存储、填写文件分配表和文件目录、向硬盘发送各种指令。这里用的是T I的TMS320VC5509A。FPGA除了实现了作为数据缓存的F I F O, 还主要实现了与I D E硬盘的接口和其它一些信号控制, 给出了硬盘读写时序 (PIO) 。在设计中FPGA选用了X i l i n x公司V i r t e x-4系列的X C 4 V L X 1 5, 它有1万多个逻辑单元, 最大块RAM 864bit, 可调用DCMs核最多4个, 用户可用I/O是340个。PIO2写硬盘时序如图2所示。

为了提高系统的存储速度, 在本系统中同时使用了2块硬盘进行存储。为了便于以后的扩展, 在主电路板上只留出了一个I D E接口, 我使用了T I公司多路复用开关芯片SN74CBT16232, 将一个IDE接口扩展为两个, 如果以后的系统有更高要求, 只需要更换一块小小的接口板, 同时F P G A逻辑仅做一点小小的变动, 就可以将将I D E接口扩展为多个。数据要想存入硬盘必须先经过硬盘的缓存, 再由缓存存入硬盘的盘片。对于由缓存到硬盘盘片的这段时间我们可以利用起来, 在写满缓存后, 利用接口芯片切换到另一块硬盘, 写满另一块硬盘的缓存后, 再切换回来。如此反复, 就可以使存盘速率接近I D E接口的传输速率。

4 数据存储的汇编语言程序设计

数据存储的流程如图3、图4所示。

5 结语

本系统已经能够完成1 2路模拟信号的采集, 并完成数据的存储, 在使用一块硬盘的情况下能够达到将近6 M B的存储速率, 两块硬盘同时使用可以达到将近8 M B存储速率, 完全满足数据采集实时存储要求, 而且系统选用低功耗的笔记本电脑专用硬盘, 可以在电池供电下长时间连续记录数据, 使其大容量的优点得到充分发挥。整个系统的接口都通过F P G A实现, 赋予了系统极大的灵活性和扩展性, 存储系统很容易得到扩展和升级而不用付出任何硬件的代价。

摘要:本文讨论了基于IDE硬盘的高速数据存储技术, 该数据采集系统能够同时对12路模拟信号进行采集, 并能够以较高的速率进行并行存储, 具有存储量大、存储速率快、数据格式便于后续处理等优点。

关键词:高速数据并行存储,IDE硬盘,FAT32格式

参考文献

[1] Information Technology-AT Attach-ment with Packet Interface Extension, August, 1998.

[2] Microsoft Extensible Firmware Initia-tive FAT32File System Specification, December, 2000.

[3] CS5351108dB, 192kHz, Multi-bit Audio A/D Converter, February, 2005.

[4] Virtex-4User Guide, September, 2005.

注:本文为网友上传,旨在传播知识,不代表本站观点,与本站立场无关。若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:66553826@qq.com

上一篇:观看2019《开学第一课》心得感想_开学第一课观后感 下一篇:基于嵌入式的水文水情数据采集系统