首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于FPGA多通道同步数据采集系统(2)

基于FPGA多通道同步数据采集系统(2)

ADS7864有三种读出模式,设计中通过CPU设置FPGA中的寄存器来确定采取何种模式,这样CPU可以根据实际需要单独地对某一路信号进行采样。在此设置为循环模式,在第一个读信号RD到来时读取通道A0的数据,第二个读信号RD到来时读取通道A1的数据,随后是B0、Bl、C0和C1, A/D转换时序图如图3所示,每个读操作将使ADS7864输出16位信息,其中D15用于表明读出数据是否有效(“1”有效),D14、D13、D12 用于表示所读出数据的通道,D0~D11为该通道采样结果数据。


  根据系统要求,采用3片6通道的ADS7864构成A/D转换电路,FPGA和A/D的硬件接口如图4所示。通过FPGA进行同步控制,实现对18路输入信号的同步快速采样。本系统将被测的三相电压分别接至A0、B0、C0;三相电流分别接至A1、B1、C1;通过对HOLDA、HOLDB、HOLDC三个信号同时置低电平,实现三相电压、电流的同步采样,采样转换后的值被保存在6个寄存器中。



  根据ADS7864的时序图,在FPGA芯片EP2C20Q240中采用状态机来设计A/D转换控制模块,在Quartus II 7.2中进行了仿真,数据读取方式为循环模式,仿真结果如图5所示。



  2.3 频率测量模块

  在频率测量模块中,首先对电压信号进行滤波和整形,经过比较器后得到一个方波信号,输出的方波信号作为频率测量模块的输入信号。常用的频率测量方法有直接测频法、测周期法和等精度测频法。直接测频法的基本原理是在单位时间T内对被测脉冲信号进行计数,若脉冲数为N,被测信号的频率为f=N/T;测周法是用被测信号作为测量时间闸门,在被测脉冲的一个周期内,对周期为T的标准信号进行计数,得到的计数值为N,则所测信号的频率为f=1/(T×N)。但是这两种方法都会产生±1的误差,直接测频法侧重于高频应用,而测周法侧重于低频应用。本文采用等精度测频法,等精度频率测量方法是在直接测频方法基础上发展而来的,它的实际闸门时间是不固定的,而是被测信号周期的整数倍,故与被测信号同步,因此又称为多周期同步法。此方法消除了对被测信号计数时产生的±1个数字误差,测量精度大大提高,而且实现了在整个测量期间的等精度测量,具有精度高及在测量过程中精度保持恒定的特点,且不随被测号变化而变化。等精度测频法的基本原理如图6所示。



  2.4 双口RAM控制模块


  在本设计中,应用FPGA采集多路数据,还需要把采集到的部分数据上传到CPU,同时CPU也会和FPGA交换数据,因此FPGA和CPU之间首先要解决两者之间的通信方式。常用的数据交换主要有串行通信、并行通信、直接存储器存取、共享存储器等方式。串行通信方式是利用处理器本身提供的串行口或者在芯片的基础上用软件或硬件开发一个串行口实现处理器之间的通信。这种方式相对来说比较简单,适合处理器之间通信量不是很大或者较远距离传输的场合。并行数据传输技术是提高数据传输率的重要手段,但是,由于并行传送方式的前提是用同一时序传输信号和接收信号,而过分提升时钟频率将难以让数据传送的时序与时钟合拍,布线长度稍有差异,数据就会以与时钟不同的时序送达,导致传输错误,同时提升时钟频率还容易引起信号线间的相互干扰,因此,并行方式难以实现高速化。直接存储器存取是一种完全由硬件执行数据交换的工作方式,在这种方式中,DMA控制器从CPU完全接管对总线的控制,数据交换不经过CPU,而直接在内存与设备之间进行;DMA方式一般用于高速地传送成组的数据,但是两个处理器不能同时访问存储器。共享存储器的方式通常采用双口RAM来实现,双口RAM是一种性能优越的快速通信器件,它提供两套完全独立的端口,每个端口都有完整的地址、数据和控制线,此时两个处理器可以同时访问双口RAM,具有很快的存取速度,可以实现高速的数据交换。

  本设计中采用共享存储器的方式,选用一片CY7C026,是一个16 KB×16的双口静态RAM,硬件接口结构框图如图7所示,使用FPGA分配片选、读/写和BUSY信号,防止FPGA和DSP同时对同一地址空间存取造成的冲突。


  2.5 双端口RAM的应用    

 利用传统方法设计的高速数据采集系统由于集成度低、电路复杂,高速运行电路干扰大,电路可靠性低,难以满足高速数据采集工作的要求。应用FPGA可以把数据采集电路中的数据缓存、控制时序逻辑、地址译码、总线接口等电路全部集成进一片芯片中,高集成性增强了系统的稳定性,为高速数据采集提供了理想的解决方案。

  2.6 逻辑控制模块

  DSP通过逻辑控制模块向FPGA发一些指令,同时读取FPGA的状态;系统中把FPGA看做DSP的一个外设,使用DSP的XZCS0AND1作为FPGA的片选信号,这样,CPU既可以向FPGA发送命令,也可以从FPGA中读一些状态。

  在Quartus II 7.2软件平台中包括一个专用模块库,称之为IP Core,其中的各种硬件功能模块都是经过EDA厂商周密设计并且通过验证的。设计中FFT运算模块采用Altera公司自带的FFT IP Core来实现,在FPGA中以硬件逻辑实现FFT运算的功能,简化设计并提高了系统的可靠性。
  本文设计了一种多路数据同步实时采集系统,应用FPGA控制采集系统的各个模块,其最大的特点是结构灵活,有较强的通用性,适于模块化设计,适合于实时信号处理,从而能够提高整个系统的采集和处理效率。分析了各个子模块的硬件结构框图和控制实现方法。实际应用表明,采用该方法设计的系统能有效地完成多路同步实时数据采集任务。
继承事业,薪火相传
返回列表