基于SATA-IDE接口的高速数据采集系统设计

时间:2022-06-20 06:03:27

基于SATA-IDE接口的高速数据采集系统设计

摘要:高速和海量是数据采集系统的发展方向,制约系统性能的瓶颈是存储。针对SATA硬盘成为市场主流的现状,提出了一种基于FPGA和ARC-772协议转换芯片的高速数据采集系统,并对IDE协议的实现进行了详细研究。实验证明系统达到了技术需求。

关键词:数据采集;SATA;UDMA;ARC-772

中图分类号:TP311文献标识码:A文章编号:1009-3044(2010)16-4354-02

Design of High-speed Data Acquisition System Based on SATA-IDE Interface

YUAN Jian-guo

(Troops 61938, Beijing 100089, China)

Abstract: High-speed and massive data is the direction of the data acquisition system development. Storage is the bottleneck of system performance. Due to SATA hard drives becoming the mainstream, a design based on FPGA and ARC-772 is proposed. ARC-772 is a single chip for SATA 3G-to-IDE Bridge. By using it, system performance is greatly improved. The IDE protocol implement is designed in detail.

Key words: data acquisition; SATA; UDMA; ARC-772

高速和海量是目前数据采集系统的发展方向。随着技术的进步,数据采样器件的性能已经有了很大的提高,并逐渐得到广泛应用。大到空间科学实验,小至区域视频监控,都能够实现对数据的高速采集和AD转换。在数据传输方面,理论速度达5Gb/s的PCI-E 2.0总线规范已于2006年,因此制约系统性能的唯一瓶颈是存储。

经济性是存储介质选择时的主要指标。在早期,通常采用磁带作为海量存储的载体。IDE硬盘因其容量大,控制方便等优点,是目前数据采集系统普遍采用的存储介质。近年来,随着SATA硬盘的普及,其成本逐渐下降,容量上TB的硬盘已经很少采用IDE接口。因此,如何充分发挥SATA硬盘的性能和成本优势,设计容量更大、速度更快、性能更稳定的数据采集系统,既具有技术价值,也具有实际意义。本文介绍了采用ARC-772芯片控制协议转换,将SATA2.0硬盘转为UDMA 200的IDE高速存储方案。

1 系统结构

以高清图像采集系统为例,本系统由数据采集模块、FPGA主控模块、协议转换模块、SATA硬盘四部分组成。系统框图如图1所示。

数据采集模块负责采样要检测的模拟信号,AD转换后发送到主控模块进行处理;主控模块将数据接收模块送来的数据进行缓存,向协议转换模块发送ATA命令后将数据输出。协议转换模块将SATA硬盘与主控模块隔离,它与SATA硬盘整体对主控模块来说相当于一个IDE硬盘。硬盘负责存储采集到的数据,并在工作时将工作状态告知协议转换模块。

由于高清图像的数据量极大,系统可以采用两块SATA硬盘组成RAID-0阵列。

2 主要功能模块

2.1 数据采集模块

数据采集模块主要分三部分:1) 图像采集子模块。即光电转换传感器,一般为CMOS或CCD。CMOS在高像素方面有一定优势,而CCD对监控场景的适应性更好一些。2) 图形压缩编码。一般采用具有较高运算能力专用编码芯片。编码芯片本身就是一个基于DSP的SOC片上系统,以满足实时海量数据的采集需求。3) 通信控制。用于与主控间的交互。工作时向主控发出通知,主控要求改变采样精度时它也能够正确作出响应。

2.2 FPGA主控模块

FPGA主控模块是系统功能的核心部分,它分为数据缓存、功能交互、IDE协议三个子模块。

数据缓存模块采用常见的乒乓存储方式,即简单的将数据分成两份进行存储,读取时同时读出并合并,这样就可以实现2倍的存取速度。具体原理如图2所示。FIFO0的时钟频率为动态RAM时钟频率的2倍。当flag=0时,FIFO0的数据写入动态RAM1,当flag=1时,FIFO0的数据写入动态RAM2,如此交替写入。

功能交互模块根据前端数据采集模块与后端硬盘的工作状态决定存储命令的发送。当系统发生拥塞时,该模块还应具有减小采样频率、降低图像精度等控制策略与数据采集模块进行交互。

IDE协议模块是数据采样模块的重中之重。从物理层、传输层、命令层、应用层四个层次进行设计。

2.2.1 物理层

由于系统不是直接面向IDE接口硬盘,所以host端物理层通过在FPGA上定义所需的I/O引脚即可。具体信号定义见表1。

DMA读写时引入的两组握手信号(Hstrobe和DDMARDYn,Dstrobe和HDMARDY)分别与IORDY、DIORn信号引脚复用,STOP信号与DIOWn引脚复用。

2.2.2 传输层

分为两大部分:PIO时序产生模块,UDMA时序产生模块。

PIO模式是硬盘数据传输的基本模式,通过对数据寄存器的读写实现数据的传输。通过查询状态寄存器,设置硬盘寻址相关寄存器,发送命令给命令寄存器,之后通过读写数据寄存器的数据,实现PIO的数据传输。在进行DMA传输时,读取状态、查看出错信息、参数设定、写入命令等仍须通过PIO模式进行。PIO传输的时序实现最为简单。

要实现数据的高速传输,必须采用UDMA模式。建立一次UDMA传输需要按照一系列规定进行:初始化UDMA、UDMA 持续传输、暂停UDMA 传输和终止UDMA 传输。对于UDMA读与UDMA写,这四个过程也各自不同。因此UDMA时序产生模块需要对8个过程分别实现。

2.2.3 命令层

ATA/ATAPI标准不仅支持硬盘,还支持光驱、移动存储设备等,因此它的命令集非常庞大。表2为支持数据采集系统操作硬盘的最小命令集。命令层就实现了这几个基本命令的具体操作逻辑。

2.2.4 应用层

应用层是面向用户的功能实现,例如开始工作、清理数据、查看数据等应用层命令。每个应用层命令实际上是一系列基本命令的组合。

2.3 协议转换模块

ARC-772是台湾信亿科技出品的一款SATA 3G to IDE桥接芯片,主要功能在于接通IDE存储设备到SATA控制芯片,或是SATA存储设备到IDE控制芯片,既可应用于Host端,也可用于Device端。符合SATA 2.0版本规范,支持ATA/ATAPI PIO模式 0到4以及UDMA 16.7MB/s到UDMA 200MB/s,它强化了性能、兼容性及稳定性,并且具有热插拔功能,具有TQFP及LQFP两种封装格式,是实现SATA to IDE的一项经济选择。

该芯片在使用时配置也相当简单,提供了主从盘配置、速度模式等配置选项。

4 系统工作流程

当系统上电时时检测复位信号RST的变化,复位完成后,进入空闲idle状态,在这个状态下,过程判断主控模块有没有向寄存器中写命令的操作,如果有基本的硬盘操作命令,则进入执行操作的状态。在这个状态中,如果命令是UDMA,则执行UDMA操作;如果是PIO命令,则检测硬盘状态寄存器BSY位,检测到该位为0时,硬盘进入PIO操作状态。如图3。

UDMA传输过程大致如下:

1) 首先用PIO方式进行命令参数的传递,并向硬盘发DMA写命令;

2) 硬盘准备好进行数据传输时,向主控模块发数据请求信号,并等待主控响应。

3) 主控模块检测到请求信号后,如果条件成立则发出响应信号,开始数据传输。

4) 如果指定扇区的数据传输完后,还有数据要传输,则继续请求并重复 2)到 4)步,否则进入步骤 5)。

5) 在数据传输完成或者出现错误时,硬盘设置状态寄存器或错误寄存器,并发出中断信号。

6) 主控模块读设备寄存器或错误寄存器,判断命令执行情况,传输终止。

4 小结

本系统采用ARC-772桥接芯片,将串行ATA协议转换为并行ATA协议,对于3.0Gb/s的SATA硬盘理论存取速度可达200MB/s.通过模拟压力测试(不使用数据接收模块采集实际数据,而是直接以FPGA工作频率持续输入相同数据,若超出系统接收能力则直接将溢出数据丢弃),测得硬盘的有效数据存储速率达5.7G/min。此速率已经接近机械硬盘的性能极限,故达到了我们的技术需求。

固态硬盘是未来提高数据采集系统速度的必然选择,目前固态硬盘的价格还比较高,容量也比机械硬盘小得多,因此本系统采用SATA/IDE桥接芯片即可满足需求。当固态硬盘对于海量存储足够经济时,系统就应该采用SATA/PCI-e桥接芯片,而此时FPGA内部就需要实现PCI-e协议的IP核了。

参考文献:

[1] 杨晓飞. 基于NiosⅡ的硬盘存储系统的研究与设计[D].南京理工大学,2007.

[2] Working Draft. Information TechnologyCAT Attachment with Packet Interface-7 Volume 1[S], 2004.

[3] 沈兰荪.高速数据采集系统的原理与应用[M].北京:人民邮电出版社,1995.

上一篇:基于Petri网的复合Web Service构造与分析 下一篇:基于虚拟现实的军用后勤装备维修训练系统模型...