1.1 pci-e总线数据采集卡的结构
pci-e总线数据采集卡的主要技术指标如下:4个单端模拟通道,4通道同时采样,每个通道采样率为100sps-8msps可任意设定,分辨率为12bit。为了实现采集数据的实时存储,采用了pci总线与主机接口。
4个通道的输入模拟信号经过缓冲放大和抗混迭滤波器后分别送入4片adc中,由采样时钟发生器产生的采样时钟控制对模拟信号进行采样、保持和量化,输出的4路12bit数据复用为一路32bit数据送入fpga中缓存并打包成帧并加入帧号等信息。成帧后的数据受主机端程序控制,通过pci接口控制器经pci总线送入主存中,根据需要进行处理或存盘,从而完成数据采集过程。
1.2pci-e总线数据采集卡元器件的选用
adc采用了模拟器件公司(adi)的ad9220子区式高速adc,分辨率为12bit,采样率高为10msps,片内带有高速低噪声采样保持放大器和电压参考源,可以简化设计。采集卡中所有的控制和时序逻辑全部由一片fpga实现,综合考虑规模、速度、功耗等因素,选用了xilinx公司的xcs30。该器件为spartan系列fpga,成本低速度快,可用逻辑门数为30000门。采样时钟发生器中dds器件选用adi的ad9830单片dds集成电路,其高时钟频率为50mhz,内置10bit d/a变换器,频率控制字长32bit,频率分辨率可达0.005hz,*本设计的需要。pci总线控制器选用了cypress公司的cy7c09449(pci-dp),其特点是接口方式灵活,具备pci总线master能力,可以实现与主存或其他slave设备的dma传输,这对保证实时高速数据采集是十分必要的。
2、提高pci-e总线数据采集卡性能的措施
2.1采样时钟发生器中低通滤波器的设计
低通滤波器的性能对保证采样时钟具有较低的jitter非常关键,因此在本设计中采用了7阶椭圆低通滤波器。为了避免引入有源器件自身电噪声,滤波器全部采用无源器件构成,滤波器对带外噪声抑制比约为-60db。
滤波器的输入阻抗和输出阻抗均为100ω,高于ad9830典型应用场合的50ω,同时适当调整ad9830外接的电流设置电阻使得输出电流增大。这样可以增大输出信号电压范围,提高信号摆率(slew rate),有助于降低整形后时钟信号的jitter。此外,图5中以r17和r18的中点电平作为比较器的门限,这样可以保证整形后信号的占空比为50%。
2.2pci-e总线数据采集卡采样时钟设置范围的分段
为了能产生较高频率(8mhz)的采样时钟,在时钟发生电路中使用了高速比较器max9010,其传播延迟仅5ns。当dds输出信号频率较低的时候,信号在比较门限电平附近摆率过低,容易造成比较器多次翻转。虽然在后面的逻辑中采用了数字低通滤波器可以有效的去除这种干扰,但是仍然会引入jitter,使得采集系统性能劣化。
为此,在图三的结构中,比较器整形后的时钟信号又通过一个可编程分频器。根据需要的采样率分段设置dds输出频率,同时为分频器设置相应的分频比从而产生终的采样时钟。设需要的采样时钟频率为,dds输出频率为,分频比为n,则有:
上述方案在实践中被证明是非常有效的。经过分频器输出的时钟稳定可靠,实测jitter不超过3ns,满足数据采集系统的要求。
2.3pci-e总线数据采集卡的缓存和传输
当pci-e总线数据采集卡以高采样率8msps工作时,4个通道的数据打包成帧后加上帧号等其他信息,总的数据通过率约为50mbytes/s。
在采集卡上用pci-dp的16kb双口ram对数据帧进行缓存,同时通过pci总线将数据传送到主存中
数据先被存入bank a,待存满后继续存入bank b,同时向主机发出中断;主机端的中断服务程序启动dma传输,将bank a中的数据传输到主存中,待bank b存满后数据又存到bank a中,同时将bank b中的数据传到主存;这样轮流进行,直到采集任务完成。
2.4多种触发方式的实现
为了适应尽可能多的测量要求, 数据采集卡应当具灵活的可编程触发方式。在本设计中,除了可以通过主机端软件控制的定时触发等方式外,还可以方便的在程序中设定通过外部触发源的电平或上升/下降沿进行触发。通过采集卡控制逻辑中的定时器可以实现以20ns的步长设置的长达85秒的延时触发,以及每通道多2k采样点的超前触发。各种触发方式及相应的控制和时序逻辑均使用verilog语言设计并在fpga中实现。