您的位置 首页 新品

根据FPGA操控的IDE磁盘阵列规划

设计了一种基于FPGA控制的高速数据存储系统。该系统采用FPGA实现了对四个符合ATA-6规范的、RAID 0配置的IDE磁盘阵列的管理,并配合四个SDRAM实现对数据的高速稳定存储。该磁盘阵列同时挂

跟着雷达技能的不断发展,怎么高速安稳地存储回波数据现已成为一个亟待处理的问题。当时高速存储设备首要应用在服务器上,不只价格昂扬,而且功用可扩展性不强。因而,本文运用FPGA完结契合ATA-6标准的IDE接口,合作SDRAM组成了高速数据存储体系。通过FPGA把四块IDE硬盘装备成RAID 0阵列,完结对数据的高速存储。实测时整个体系运转安稳,均匀存储速率200MB/s,合作板载的128MB内存,突发存储速率能够到达800MB/s。收集进程中,能够通过软件实时观测回波数据的IQ分化和脉冲紧缩。

作为收集数据体系首要考虑的是存储容量、存储速率和可操作性。由于现在比较通用的FAT32或NTFS格局的收集数据体系用FPGA完结较困难,因而,在自行界说的存储格局及其传输协议的基础上规划了一种有用的IDE硬盘阵列及其收集数据体系,而且通过运用PCI传输卡就能够把磁盘阵列中的数据导入核算机,完结格局上的转化。

1 体系规划

为使体系的存储速率最大化,硬盘装备成RAID 0形式。作业时,AD采样后得到的信号首要分流成四路,然后流向四个硬盘,每一路磁盘的作业形式都相同。图1给出其间某一路的存储流程图。


由图1可知,分流后的AD数据首要暂存到FPGA内部的FIFO 0中,由于磁盘存储数据时作业在Ultra DMA形式下,所以每传输一帧数据,FPGA都需求给磁盘一个CRC校验成果,磁盘会对FPGA给出的CRC校验成果进行核对。假如正确,磁盘就会存储本帧数据;若呈现过错,磁盘会扔掉本帧数据,并向FPGA报错。因而从FIFO 0读取的数据不能直接流向硬盘,而有必要流向一个大容量的高速缓存器材,以便在CRC校验成果犯错的状况下从头传输犯错帧数据。在本体系中高速缓存器材选用HY57V561620C(L)T(P),其数据吞吐率能够到达200MB/s,容量为32MB。

数据存储完结后,需求通过PCI卡导入到核算机中进行核算和剖析。导出数据的流程图和存储数据类似,如图2所示。

2 IDE协议的FPGA完结

2.1 IDE协议简介

IDE(Integrated Drive Electronics)是集成磁盘电路设备, 其正式名称是AT-Attachment。它是Compaq公司为处理旧式的ST506/412接口速度慢、开发本钱高而开宣布的硬盘标准。由于IDE接口的硬盘具有价格低廉、安稳性好、标准化程度高级长处,敏捷得到遍及[1]。

IDE接口硬盘的几种传输形式有很明显的差异,其阅历了三个不同的技能改变,由PIO(Programmed I/O)形式,DMA(Direct Memory Access)形式,直到现在的Ultra DMA 形式。其间PIO形式的传输速率最慢,最老的PIO mode 0传输速率为3.3MB/s,最新的PIO mode 4传输速率为16.7MB/s。本文存储数据时选用了Ultra DMA形式,最高速率100MB/s。在核算机上运用时,PIO传输形式会很多占用中央处理器的资源;然后IDE接口及设备开端有了DMA的支撑,DMA形式有Single-DMA和Multi-DMA两种,与PIO形式比较到达了节约处理器资源的作用,但随后被功能更好的Ultra DMA所替代。

2.2 IDE协议的软件完结

FPGA对IDE硬盘的操控通过指令寄存器和操控寄存器完结,如表1所示[2]。其间带“-”的信号(如“”)标明低电平有用。对磁盘进行任何操作之前首要需求读取特征寄存器,此寄存器指示磁盘是否处于闲暇状况。假如磁盘闲暇,能够向指令寄存器写入需求履行的指令代码。假如对磁盘进行无数据操作,只需求写入指令字然后等候磁盘履行任务完毕即可。假如履行的是读(写)操作,就需求通过扇区数寄存器确认读(写)扇区总数,通过扇区号寄存器和柱面寄存器确认读(写)地址。指令履行完毕后,FPGA需求读状况寄存器。假如ERR位有用,标明履行上一个指令的进程中产生了过错,具体过错类型能够通过读过错寄存器得到。

体系上电后要对硬盘进行复位操作,检测到BSY位和DRQ位都为低电平时硬盘复位完毕。然后通过Set Feature和Set Multiple Mode等指令完结对硬盘的装备。如图3,对硬盘的装备以及读(写)指令的发送都是用PIO形式完结的。图4给出PIO形式的时序图,表2给出其时序要求[2]。下面以写磁盘为例介绍磁盘作业在48位寻址时PIO指令的履行:FPGA首要接连写两次磁盘的特征寄存器,由于在PIO形式下此寄存器现已抛弃,所以值能够恣意。然后接连写两次扇区数寄存器,第一次写入写扇区总数的高8位,第2次写入写扇区总数的低8位。再顺次写两次扇区号寄存器、柱面寄存器0、柱面寄存器1,次序写入开始扇区地址的第24~31位、0~7位、32~39位、8~15位、40~47位、16~23位。至此,硬盘就能够确认写数据的开始地址以及写数据总量。然后FPGA需求写驱动器/磁头寄存器以确认磁盘的寻址方法。一般选用逻辑寻址。最后向指令寄存器中写入指令码34H。参数发送完毕后,FPGA至少等候400ns,然后读可选状况寄存器,一旦检测到BSY为低电平、DRQ为高电平,就阐明磁盘现已安排妥当能够接纳数据,此刻只需依照PIO时序的要求向数据寄存器写入数据即可。数据写入完结后,FPGA需等候磁盘给出的中止信号INTRQ,此信号有用后FPGA读状况寄存器,整个写扇区的指令履行完毕,磁盘能够持续接纳其他指令。




  完结硬盘的复位和装备今后,FPGA循环检测有无读写指令。以写硬盘为例介绍,FPGA完结对硬盘的复位和装备后就进入到指令检测状况。一旦检测到写硬盘指令,程序进入到写状况。FPGA首要向硬盘指令寄存器和状况寄存器写入必要的信息,然后等候DMARQ信号有用,进而对DMA通道进行初始化。悉数准备作业完结后,FPGA内部FIFO中的数据就能够存储到硬盘中。数据在传输进程中,硬盘随时或许暂停传输,一旦暂停,FPGA就只能等候硬盘再次安排妥当。前一帧的DMA数据传输完毕后,FPGA需求向硬盘发送CRC成果,假如CRC成果正确硬盘就会接纳当时数据;假如过错,硬盘就会向FPGA报错,此刻数据就需求从头传输。图5为写硬盘流程图。读硬盘的进程和写进程类似,本文不再具体介绍。

3 上位机软件规划

整个磁盘体系通过VC界面进行办理,操作界面如图6。软件供给了最多四个收集通道,用户能够依据自己的需求进行恣意装备。收集数据前,能够设置收集时钟为外时钟或内时钟。触发方法分:主动触发、上升沿触发、下降沿触发、低电平收集、高电平收集。针对雷达的特别作业方法,体系也能够作业在连续收集形式下。

数据收集进程中,磁盘体系合作PCI 9054卡能够得到当时回波的IQ数据以及脉冲紧缩成果。收集完毕后,能够依据需求导出任何一部分数据。

本文选用FPGA完结了契合ATA-6标准的IDE协议,将硬盘组成磁盘阵列完结了对数据的高速安稳存储, 均匀数据流到达200MB/s,峰值传输速率到达800MB/s。在实验阶段先后运用了希捷、迈拓、西数等厂家的硬盘进行实验。通过测验整个体系的运转比较安稳,长期收集不会呈现数据丢掉的状况。假如期望增强体系的抗震性,能够在板卡上挂IDE接口的固态盘,整个体系的功能不会受到影响。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/xinpin/196490.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部