具有PCI和并行接口的数据采集系统设计
扫描二维码
随时随地手机看文章
1 引言
随着计算机技术的飞速发展和普及,数据采集系统也迅速地得到应用。在生产过程中,应用这一系统可对生产现场的工艺参数进行采集、监视和记录,为提高产品质量、降低成本提供信息和手段。典型数据采集系统的构成是由A/D+DSP+FPGA(CPLD)+D/A。本文通过利用模数转换芯片AD6644,以及FPGA实现了可用于两种接口(PCI、并行接口)传输模式下的高精度数据采集系统。
2 硬件电路设计
2.1 系统设计方案
本数据采集系统主要由模拟部分,数字部分和接口部分三大板块组成,如下图1所示。其中模拟部分主要包含模拟中频信号预处理模块和模数转换模块;数字部分除时钟产生电路外,其余部分完全在FPGA中设计完成;接口部分包含PCI总线接口、DB25并行接口以及SignalTapII逻辑分析仪调试接口。
本系统的设计思路就是:首先通过模拟中频信号预处理模块,将调整后的模拟信号输入给A/D转换器,然后经模数转换之后将16bit数字信号(AD6644输出14bit,再加上2个校验位)直接输出给FPGA进行存储。在FPGA中设计了高速缓冲器DCFIFO和高速存储器DPRAM以及一系列时序控制逻辑,以保证在预定容量下能够实时的存储由ADC发送过来的数据。同时,在FPGA中还设计了2种数据传输接口,从而使得系统可以在我们选择的模式下进行数据传输,或通过并行接口,或通过PCI总线接口。
图1 系统总体框图
2.2 模拟中频信号预处理模块
首先,将该输入信号通过两级放大器,目的是为了使模拟输入信号幅度达到AD6644输入幅度的要求和对模拟输入信号进行很好的隔离。这里选用AD9618来实现对模拟信号的放大功能。AD9618的单位增益带宽和压摆率的指标均较高,能起到对模拟输入信号放大和改善性能的作用。电路图如图2所示。
图2 两级AD9618放大器原理图
其次,将经过放大处理后的单端信号通过AD8138,转换为差分信号后输出给AD6644。这么做是因为作为新型的高转换速度、大动态范围的ADC,为保证其性能,AD6644的模拟输入信号要求差分形式。在模拟信号阶段使用差分形式,可以有效地滤除偶次谐波分量,同时对其它共模杂散信号(如由电源和地引入的噪声)及对晶振的反馈信号也有很好的抑制作用。如下图3,使用AD8138对模拟信号进行调整。单端模拟信号(AD9618_out)由AD8138转换为差分模拟信号(AIN、nAIN),增益为1,然后送AD6644实现模数转换。AD8138的直流偏压VREF由AD6644的精密参考源提供。采用差分输入比单端输入大约可以提高信噪比3dB。
2.3 FPGA配置与模数转换模块
FPGA部分是本系统的核心模块,承载了所有的数字电路部分。在设计过程中,强调SOC(片上系统)的概念,在FPGA平台上实现了系统中所需要的所有数字逻辑,包括触发器、存储器,缓冲器,PLL(锁相环),计数器,译码器,多路选择器,DB25接口逻辑,PCI接口逻辑等。从而使得系统中的数字部分处于完全可编程可调状态,只需根据需求更新FPGA程序即可,具有较强的适应性和灵活性。基于上述思路,我们选择了Altera公司的Cyclone系列FPGA——EP1C6Q240C8。
图3 AD8138+AD6644连接原理图
在本系统中,使用了2种配置方式,即AS方式和JTAG方式。这2种配置方式可以共同使用,只需在板子上放置2套接线柱即可,下载电缆采用ByteBlaster II。首先使用JTAG方式配合Quartus II工具中自带的在线逻辑分析仪SignalTap II对FPGA功能及时序进行调试,成功后再使用AS+EPCS4方式将程序下载到配置芯片EPCS4中,使得每次系统上电后,都能对FPGA自动加载程序。另外要注意,使用这种配置方式时,如果让JTAG和AS模式同时开始加载,则JTAG模式会自动取得优先权进行程序加载,而AS模式则会自动终止。
A/D转换芯片使用的是ADI公司的AD6644。AD6644是高速、高性能的14-bit65MSPS单片模数转换器,内部自带采样保持器和参考电压电路,可以提供完整的转换应用解决方案。AD6644是ADI公司Softcell接收器芯片组中的一个代表芯片,它是专门为第三代移动通信系统设计的ADC芯片,特别适用于多通道、多模式接收机应用。同其它芯片相比,由于在奈奎斯特频率范围内,AD6644的无杂散动态范围指标超过了100dB,大大增强了从输入端杂散分量中检测有用小信号的能力,使它更加适用于多模式的数字接收机。同时,AD6644的信噪比的典型值也达到了74dB。AD6644还可以应用于单通道数字接收机中,如宽通道带宽系统中,能够精确变换宽带模拟信号(200MHz输入带宽)。通过欠采样,可以将谐波成分分配到有用频带之外,配合使用数字下变频芯片可降低有用信号带宽内的噪声平台。
2.4 时钟产生模块
图4 双模前置分频器MC12013工作原理图
本采集系统的时钟是通过外部晶体振荡器或者时钟信号发生器产生,然后经过前置分频后加到FPGA的专用时钟引脚输入端,并使用FPGA中的全局时钟网络布线。我们采用双模前置分频器MC12013进行前置分频。MC12013是超高速双模前置分频器,双极型发射极耦合晶体管逻辑。模数比为10/11,由模式控制电平的高低决定分频比。MC12013是ECL集成电路,最高工作频率可达550MHz,并带有一个内部的ECL到TTL的转换电路。当变模控制端输出高电平“1”时,双模前置分频器按低模分频比M工作;当输出低电平“0”时,按高模分频比M+1工作。这里只使用除10分频功能,工作原理图如图4。
2.5 接口部分设计
本系统中使用了2种接口方式,即DB25并行接口和PCI总线接口。虽然2种接口的作用都是将经过模数转换模块采集后并存储到FPGA中的数据传输至PC机中,但是2者的工作过程却是不同的。
当使用DB25并行接口传输数据时,由于并行接口传输率的限制(EPP工作模式下只能达到1MBps左右),因此当A/D转换器进行高速采样时(如AD6644工作在50MHZ下),并行接口没有能力在相同的时间里把ADC存放到FPGA中的数据完全读取出来。所以此时不能实现实时传输,只能让系统工作于存储转发的状态下,即当ADC中的采集数据将FPGA中RAM存储器写满时,停止数据采集工作,进而转向数据读取过程,待DB25将FPGA存储器中的数据完全传输至PC机之后,再重新启动ADC的数据采集过程,如此反复直到全部数据采集、存储并转发完毕。
当使用PCI总线接口传输数据时,由于PCI接口的传输率很高(本系统中使用33MHZ*32bit的传输模式),因此即使当A/D转换器进行高速采样时,PCI接口仍然有能力在相同的时间内将ADC存放到FPGA中的数据读入到PC机中。所以此时可以在一定程度上实现实时数据采集和存储。
3 FPGA与PC端控制软件设计
Altera公司的FPGA产品与其它公司产品的最大区别是它采用连续式的互连结构,即采用同样长度的一些金属线实现逻辑单元间的互连。连续式互连结构消除了FPGA分段式互连结构在传输延时上的差异,在逻辑单元间提供快速、具有固定延时的通路。这种结构的优点是布线速度快且易于仿真,在实现复杂大型设计时,可以缩短开发周期。开发Altera公司的可编程逻辑器件有两种软件,QuartusII和MAX+PLUSII。本设计采用QuartusII开发软件,其提供了一种与结构无关的全集成化设计环境,使设计者能对Altera的各种产品系列方便地进行设计输入、快速处理和器件编程。QuartusII开发系统具有强大的处理能力和高度的灵活性。
在本系统中,FPGA起到的是一个控制桥梁和传输桥梁的作用,通过来自于PC主机的控制信号和传输信号,来有序的控制ADC的采样,数据的存储和传输过程。而如何决定整个系统开始工作的时间,采用何种接口的传输模式,数据在PC机中的存储方式以及如何利用采集后的数据来显示原始波形,这些任务都是由安装在PC端的控制软件所完成的。
我们通过VB程序实现了这个控制软件。在Windows环境下,数据采集系统作为外部设备,我们将通过调用动态链接库(TVicHW32.DLL)来完成对其的读写操作。TVicHW32.DLL可以对内存、I/O端口、中断等进行直接控制和读写,这里我们使用其部分功能和函数。
本文作者创新点:
本文所设计的方案,就是将FPGA作为整个数据采集系统的控制核心和传输桥梁。一方面可以根据上位机的指令来完成对整个系统工作模式和状态的精确时序控制,另一方面可以通过FPGA中丰富的宏功能块资源和可嵌入的IP核资源来实现高速缓存和高速数据传输接口。