基于PCI总线的高速数据采集板的设计
- 格式:pdf
- 大小:385.30 KB
- 文档页数:5
第13卷,第3期 中国传媒大学学报自然科学版 Vol.13,No.32006年9月 JOURNALOFCOMMUNICATIONUNIVERSITYOFCHINASCIENCEANDTECHNOLOGY Sept.2006
基于PCI总线的高速数据采集板的设计
熊伟信,杨隆鑫
(中国传媒大学广播电视数字化工程中心,北京100024)
摘 要:本文介绍了一种基于PCI总线的高速数据采集系统,该系统基于PCI总线技术,充分利用SDRAM的海量存储能力和FPGA的编程灵活性的特点,实现了数据的高速采集、SDRAM的海量存储和PCI的桥接传输三者的结合。关键词:PCI;高速;FPGA;SDRAM;数据采集中图分类号:TN73 文献标识码:A 文章编号:1673-4793(2006)03-0077-05
HighSpeedDataAcquisitionSystemBasedonPCIBus
XIONGWei2xin,YANGLong2xin
(ECDAV,CommunicationUniversityofChina,Beijing100024,China)
Abstract:ThispaperintroducesahighspeeddataacquisitionsystembasedonPCIbus.Itisbasedon
thePCIbus;ittakestheadvantageofmassmemoryofSDRAMandflexibleprogrammingofFPGA.
Achievehighspeeddataacquisition,massmemoryofSDRAMandPCIbridgetransmission.
Keywords:PCI;highspeed;FPGA;SDRAM;dataacquisition
1 引言
现代工业生产和科学研究对数据采集的要求日
益提高,在瞬态信号测量、图像处理等一些高速、高
精度的测量中,需要进行高速数据采集。计算机技
术、DSP技术以及近几年兴起的软件无线电(Soft-
Radio)技术的日益成熟使得对这类信号作数字化处理成为可能。但是如何对前端的信号进行快速的模
数转化仍是个难题,为此,本文阐述了一套采样率为
100MSPS,分辨率为8位的双通道数据采集卡结构、性能及其实现。设计本数据卡的优点在于它的通用
性、适应面广泛,适应任何满足输入的模拟信号的
要求。2 数据采集卡整体结构
如图1所示,本采集卡以FPGA为中心,主要包
括信号耦合、A/D采集、SDRAM存储、PCI传输、
FPGA逻辑控制和电源管理等几个部分。信号耦合部分主要负责对刚进来的I、Q两路信号进行前期处
理;AD采集部分主要是对信号进行100MSPS的采
样;SDRAM主要负责数据的存储;PCI接口部分主要
负责将采集的数据通过PCI总线传输到PC机上去。
本卡的设计指标如下:采样速率:100MSPS通道数:双通道(可同步采集)
采样精度:8bit触发方式:边沿触发
收稿日期:2005-04-25作者简介:熊伟信(1980-),男(汉族),河北保定人,中国传媒大学硕士研究生.E-mail:xiongwx@gmail.com. 中国传媒大学学报自然科学版 第13卷
图1 数据采集卡整体结构框图
板上存储:128Mbit输入信号:±0.5V(模拟)
3 数据采集卡各硬件模块简介
以下按照卡上的I、Q两路信号经过各处理单元
的先后顺序逐一介绍。
3.1 输入信号耦合:
为了达到后面A/D的输入要求,需要对进来的
模拟信号进行耦合。AD9054的输入要求是差分输
入,我们设计的是AD9054的内部参考电压源(2.
5V)直接接到模拟输入的反向端,所以我们选用
AD9631作为前端的耦合芯片,此芯片能将进来的模拟信号进行直流电平移到2.5V,将输入信号的直
流电平钳位到AD9054输入电平的最佳范围,同时
还可以实现信号的阻抗匹配。AD9631芯片的核心
实质是一个集成运放,能实现双端信号输入到单端
信号输出。
3.2 A/D采集
本系统的要求达到100MSPS的采样速度,因为
数字AM广播的最大频率达到30MHz,根据奈奎斯
特准则,采样率要在60MHz以上。本卡的指标要达
到100MSPS的采样速度,为此我选用了美国Analog公司的AD9054ABST-135M(以下简称AD9054),
AD9054的内部结构原理框图如图2所示。
AD9054是由美国Analog
公司生产并与快闪技图2 AD9054的内部结构原理框图
术相结合生产出的高性能、低功耗的ADC芯片。其
内部包括基准源、跟踪保持放大器、定时器、编码逻
辑多路分配器等。同时AD9054在芯片内部集成了
采样/保持电路,可有效的降低孔径晃动(Aperture
Jitter)带来的误差,同时减少了外围电路设计,降低了系统功耗。AD9054的模拟信号为双端差分输
入,要求各端的输入幅度在1.8V~3.2V之间,差分
信号范围为±512mV。为简便起见,我们利用芯片
本身提供的精确的2.5V参考电平,直接将其接到
模拟输入的反向端,同时在输入模拟信号通道上也
加上这个电平,输入到模拟输入的正向端,将输入信
号调整到AD9054要求的电压范围。
3.3 SDRAM存储:
高速数据采集具有系统数据吞吐率高的特点,要求系统在短时间能够传输并存储结果。因此,采
集数据的快速存储能力和容量是制约加快系统速度
和容许采集时间的主要因素之一。通常用于数据采
集系统的存储器有先进先出存储器(FIFO)、双端口87第3期 熊伟信等:基于PCI总线的高速数据采集板的设计
RAM以及静态RAM等,但是容量小,已经不能满足高速数据采集系统的要求。目前市场上的SDRAM和DDRSDRAM具有工作频率高、容量大、功耗低的
特点,数据线位宽可达64bit,完全适用于高速采集
系统的要求。但是SDRAM控制相对复杂,而且需
要定时刷新,是系统设计的技术难点。为了满足存
储量的要求,板卡的存储量设计为128Mbit,考虑到
成本的要求,我们选用SDRAM作为我们的存储器。
在本采集卡的设计中,选用了SAMSUNG公司的
K4S281632d-TC75(最大允许时钟频率133MHz)。
3.4 PCI总线接口
本卡实现PCI接口采用的是PLX公司的专用
总线接口器件PCI9054。
PCI9054是美国PLX公司推出的一款低成本
PCI总线接口芯片,低功耗,PQFP172pins封装,它采用了先进的PLX数据管道结构技术,可以使局部
总线快速转换到PCI总线上。PCI9054还提供了一
个串行EEPROM配置接口,容量2K字节。在配置
存储器中存放了厂家标示、设备标示以及本地总线
的基地址空间、I/O空间、中断控制信号等信息。当
初始化时,系统自动将串行EEPROM中的配置参数
装入PCI配置寄存器,并根据本地总线对内存、I/O端口和中断的需求统一划分,自动配置。
PCI9054有3种工作方式,分别为C、M和J模式。M模式主要是针对Motorola公司高性能
MPC850/860的应用而设计的,主要应用在电信领域,J模式的接口设计相对比较麻烦,比较常用的是
C模式。
C模式下PCI9054分为PCIInitiator操作和PCI
Target操作。在PCIInitiator操作过程中,本地处理器或本地总线主控设备能够直接通过PCI9054访问
PCI总线,发起Local-to-PCI的数据传输。而在
PCITarget操作过程中,PCI总线主控设备可以以可编程的等待状态、总线宽度和突发传输功能访问
PCI9054的三个本地空间(空间0,空间1和扩充
ROM空间)。本卡工作在PCI9054的C模式下,PC端作为
PCI总线的主控设备,我们将本地空间0直接映射到本地端的FPGA里的DPRAM面,在EEPROM里
面可以设置里面的LAS0RR、LAS0BA,这两个寄存
器可以设置应设空间的位置和大小。本地时钟LCLK是由FPGA的IO端口直接提供的,FPGA直接向PCI9054提供33MHz的时钟(PCI9054最大可
支持到50MHz的时钟)。
4 数据采集卡的软件设计
SDRAM控制器的设计有多种方案,一种是采用专用SDRAM接口芯片,这种控制器接口固定,访问
容量有限,与A/D接口电路连接时,需要设计一个
接口转换电路,满足专用芯片的接口时序;另一种是
采用带有SDRAM接口的DSP,但是容量有限,不易
扩展,而这种方式要求对采集数据进行预处理;还有
一种基于FPGA的SDRAM控制器,目前FPGA的技
术比较成熟,编程方便,设计灵活,便于构造大容量
的SDRAM存储器,但是控制器需要根据系统技术
要求进行设计。
本设计采用基于FPGA的SDRAM控制器工作
原理如前面总图所示。从AD9054采集的数据先送
入FPGA内部生成的FIFO缓存器,由SDRAM控制
器读出并写入大容量SDRAM存储器。A/D转换结
束后,板卡修改状态标志位,SDRAM控制器修改工
作状态,把数据从SDRAM中取出,写入PCI9054在
LOCAL端映射的RAM当中去。其中,SDRAM控制器负责对SDRAM的定时刷新。SDRAM控制器根
据设计,可以对SDRAM执行多种命令。控制
SDRAM的基本操作包括:初始化、自动刷新、预充电、行激活、列激活、读写访问等。
基于FPGA的控制器的设计,在本卡中,选用的
是Altera公司的EP1C6Q240-C8,内部存储器容量
高达90kbit。FPGA内部集成SDRAM控制器、ADC接口、FIFO(16kbit)、DPRAM(32kbit)。其中FIFO作为AD9054的输出缓存器,DPRAM作为PCI9054在LOCAL端映射的存储器,SDRAM本来有多种命
令组合,在本卡的设计中,根据需求对SDRAM的控
制操作进行了简化,设计出了初始化(包括时钟稳
定期、8个刷新周期、模式设置)、自动刷新、块激活、
猝发读写、预充电、自动刷新等多种操作。
本控制器的设计完全采用Verilog语言,利用同
步状态机的设计进行编写。仿真结果表明通过该方
法设计实现的控制器可以在FPGA内部组成
SDRAM接口。其原理图如图3所示,共包含七个状态。其中Prechargeallbanks、Refresh和模式设置为97