新闻中心

EEPW首页>测试测量>设计应用> 基于PCI Express接口的数据 采集存储系统设计

基于PCI Express接口的数据 采集存储系统设计

作者: 时间:2009-12-11 来源:网络 收藏

TTL引脚S_DATA为配置串行移位寄存器的输入端,串行寄存器可在每一个S_CLOCK信号的上升沿对S_DATA信号进行取值。另有一配置锁存器可在S_LOAD信号为高电平时锁存串行移位寄存器的内容。这样,通过设置S_DATA信号的值(即T2…T0,N1,N0,M8…M0的数值)以及三信号线的时序,便可控制SY89429AZC时钟芯片输出精确的采样时钟。
2.2 FPGA逻辑控制
逻辑控制模块要实现的主要功能是解析上位机控制信息并发送控制命令,同时要程控采样时钟频率,还要对数据流进行处理和传输。其中数据流逻辑控制模块中的功能组成直接关系到高速信号能否实时可靠的传输。图3所示为数据流的逻辑控制结构框图。

本设计选用Cyclone II系列芯片EP2C5Q208。此芯片为208脚PQFP封装,用户可用I/O资源高达158个,差分通道数为58个,其内部逻辑资源、M4K存储资源、内部PLL数量完全能够满足本系统设计的需要。
由于AD转换芯片AD94301的采样精度为12位,而PEX8311芯片可支持8位、16位、32位数据位。因此,为了更加有效的提高数据传输的效率,同时也为了使数据速率获得相对提升,设计中的PEX8311采用32位数据位模式进行数据传输。这样,在本方案的FPGA数据流逻辑控制中,不仅要进行数据的缓存以及数据传输逻辑的控制,还要进行数据位的变换扩展,即由12位数据扩展为32位数据。为了实现数据位由12位到32位的转换,应先把解串后的12位采样数据进行数据分流模块,以把12位数据交替存储到两个FIFO中缓存。图4所示是经数据分流模块交替产生12位数据的仿真示意图。
高速数据采集系统中的数据传输速率与A/D转换器的采集速度很难保持一致。为了协调数据采集与数据传输之间的速度差异,一般都在两者之间加入数据缓存器进行缓冲,使前端的数据采集与数据传输可以异步工作。通常的做法是在A/D转换后将数据送至外置的FIFO或双口RAM中进行缓存。但这样无疑会增加布线密度,同时降低数据传输的可靠性。EP2C5Q208 Cyclone II系列FPGA提供了多达26块的M4K RAM,而且Ex-press总线的传输速率也大于数据采集速率,所以,可在FPGA内部设置FIFO空间来实现对数据的缓存。这样,从FIFO读出的两组12位数据经过符号位扩展模块后,即可扩展变换为32位数据并由FPGA并行输出到模块。
2.3控制
由于数据采集速率随着芯片技术的进步而不断提高,而大量的数据必须传输至主机进行处理。这些传输都由那些将设备连接到主机内存的数据总线完成。因此,数据总线传输的速率常常成为整个数据采集系统的瓶颈,这也是许多仪器带有昂贵板载内存的主要原因之一。而PCI Ex-press的出现,可使测量设备至主机内存的数据传输速率达到一个前所未有的高度。
PCI又称3GIO,即第三代输入/输出接口的意思。串行数据传输可使数据传输速率达到惊人的2.5 Gbps (PCI Express 1.0规范),且采用全双工数据传输,并可扩展为×1、×4、×8、×16通道模式。
以PCI Express×1来计算,扣除数据校验冗余8 bit\10 bit,有效数据传输率可以达到200 Mbyte,理论上可以提供100 MHz采样速率和双字节以内的采样精度的传输带宽。
目前,实现PCI Express总线接口控制的方法有两种:一种是采用FPGA/CPLD来实现。目前,Altera等专业FPGA公司都提供了多种PCI Express总线接口实现方案,并提供了相应的MegaCore。但是这种方案设计难度大,调试困难;另一种是采用专用接口芯片,如利用PLX公司的PEX8311来实现局部总线与PCI Express总线的连接。目前,无论从技术还是成本来看,第二种方案都是比较理想的选择。
PEX8311芯片符合PCI Express 1.0基本规范,它支持主模式、从模式以及DMA三种数据传输方式。PEX8311芯片的主要特性如下:
◇集成有单通道、全双工2.5 Gbit/s传输的PCI Express端口;
◇可配置局部总线宽度,支持8位、16位和32位的总线方式;
◇支持数据总线、地址总线独立和复用总线操作模式;
◇双通道高性能的DMA数据传输可支持数据块模式、分散/集中模式、硬连线数据传输模式和命令模式;
◇支持PCI Express规范中的端点和根复合体模式;
◇芯片小型封装,适合紧凑的电路板设计。
本方案中主要使用DMA方式中的命令模式。在命令模式下,可以通过一对硬连线“DREQ”和“DACK”来控制传输,每一个DMA通道都有一对这样的信号。当FIFO在被写满或读空时,命令模式将暂停操作。而当FIFO状态改变以后,又可继续行进数据传输。



评论


相关推荐

技术专区

关闭