基于FPGA和CPCI的数据采集系统硬件电路设计

时间:2022-10-18 08:53:35

【前言】基于FPGA和CPCI的数据采集系统硬件电路设计由文秘帮小编整理而成,但愿对你的学习工作带来帮助。1 系统硬件框图 高速数据采集系统的硬件原理框图1所示。 由上图可知,高速数据采集系统主要由以下电路组成:多路开关控制电路、模拟信号调理电路、FPGA控制电路、存储电路、CPCI转换接口。 2 具体的硬件电路设计 2.1 多路通道选择电路设计 集成多路模拟开关芯片是程控...

基于FPGA和CPCI的数据采集系统硬件电路设计

摘要:本文设计了基于fpgacpci总线的数据采集系统硬件电路。

关键词:FPGA CPCI 高速通信 电路设计

中图分类号:TP274.2 文献标识码:A 文章编号:1007-9416(2013)04-0091-03

在工业现场信号采集处理领域里,随着数据量和对环境要求苛刻性的不断增加,对于数据采集处理平台的要求也不断提高。将CPCI架构应用到数据采集处理平台,其本身所具有的通用性、热插拔、可扩展性、高可靠性等特性非常适合数据采集处理系统。为了提高数据采集和处理效率,数据采集系统以FPGA为处理核心,加上高性能的数据转换芯片,实现各种信号的实时采集处理。这种采用FPGA+CPCI总线混用的硬件系统把几个方面的优点结合到一起,既兼顾了速度和灵活性,又满足了底层数据实时同步采集和高层数据狭速运算的要求。

本文重点介绍基于FPGA和CPCI的数据采集系统的硬件电路设计与功能实现。

1 系统硬件框图

高速数据采集系统的硬件原理框图1所示。

由上图可知,高速数据采集系统主要由以下电路组成:多路开关控制电路、模拟信号调理电路、FPGA控制电路、存储电路、CPCI转换接口。

2 具体的硬件电路设计

2.1 多路通道选择电路设计

集成多路模拟开关芯片是程控增益放大等常用器件,其性能的好坏对系统的设计指标有着重要的影响。

在这里我们从经济和性能角度出发,选择ADI公司的ADG508。ADG508为单芯片CMOS模拟多路复用器。ADG508根据3位二进制地址线A0、A1和A2所确定的地址,将8路差分输入之一切换至公共差分输出。所有器件均提供EN输入,用来使能或禁用器件。禁用时,所有通道均关断[1]。

ADG508均采用增强型LC2MOS 工艺设计,适合高速数据采集系统和音频信号开关应用。接通时,各通道在两个方向的导电性能相同,输入信号范围可扩展至电源电压范围。在断开条件下,达到电源电压的信号电平被阻止。所有通道均采用先开后合式开关,防止开关通道时发生瞬时短路。设计本身具有低电荷注入特性,当切换数字输入时,可实现最小的瞬变。

本设计中实现8路差分工作模式,多路开关电路设计如图2所示[2]。

如上图所示,八路通道号与外部模拟量相接,通道选择A0~A2和使能端EN与FPGA连接,通过FPGA可以实现对多路复用器进行开关控制和通道选择。

2.2 A/D电路设计

AD转化主要分为两个步骤:先实现连续时间信号离散化,这需要对连续时间信号进行采样,随后完成量化。

通常模拟信号通过50欧电阻传输,为了避免阻抗不匹配,在这里引入一个50欧匹配电阻,减少信号反射、振铃等问题,尽量保证信号无损失无失真地进入系统。

为了提高AD芯片的接收性能,抑制由电源和地引入的共模寄生噪声。这里采用单端转差分电路,较少轨道塌陷和电磁干扰。具体电路设计如图3所示[3]。

为了得到芯片最有性能,AD采样需要提供高质量低相位噪声的时钟信号,这里采用时钟芯片来直接产生。

2.3 存储部分

数据存储器读写模块用来对 AD6645采集后的数据进行存储及读取。为了保证FPGA 控制核心与工控机通信一次性读取大量数据,本系统中用到了两片外部 SRAM(KM681000BLP),其中一片用来对采集过来的数据进行存储,另一片用来读取存储在SRAM中的采集数据,以便与工控机进行通信[4]。系统运行过程中,两片SRAM轮流进行读写操作,这将大大提高并口通信速度及数据吞吐量。FPGA控制核心与KM681000BLP接口原理图如图4所示。图中Data0-Data7为双向数据总线;We为存储器写信号,低有效,高无效;Oe为存储器读信号,低有效,高无效;Cs为片选,低有效,高无效。

本系统对两片SRAM(SRAM1、SRAM2)轮流进行读写是通过乒乓传输结构来实现的,该结构可以保证该系统通道采样和数据传输连续进行。乒乓传输控制原理如图5所示[5]。

乒乓传输控制原理:输入数据流通过“输入数据流选择单元”,等时地将数据流分配到SRAM1、SRAM2中。在第1个缓冲周期,将输入的数据流缓存到SRAM1[6]。在第2个缓冲周期,通过“输入数据流选择单元”的切换,将输入的数据流缓存到SRAM2,与此同时,将SRAM1缓存的第1个周期的数据通过“输出数据流选择单元”的选择,送到“数据流运算处理模块”被运算处理。在第3个缓冲周期,通过“输入数据流选择单元”的再次切换,将输入的数据流缓存到SRAM1,与此同时,将SRAM2缓存的第2个周期的数据通过“输出数据流选择单元”的切换,送到“数据流运算处理模块”被运算处理。如此循环,周而复始。

2.4 CPCI接口部分

本设计主控FPGA芯片是采用CPCI总线接口形式,我们采用PLX公司的PC工9045芯片实现FPGA与CPCI总线接口的无缝连接[7]。

2.4.1 基于FPGA的PCI总线设计分析

整个CPCI接口设计的思路为:FPGA通过协议转换芯片PCI9054,跟CPCI总线进行连接。FPGA内部采取异步双口RAM来进行高速数据缓冲。通过verilog HDL控制FPGA异步双口RAM,从而实现嵌入式CPU与CPCI板卡之间的高速传输。

PCI9054协议转换芯片的Local总线模式有三种,分别为M,J和C模式,本设计选用C模式工作方式 。

在这种工作模式下,9054芯片通过片间逻辑控制,将PCI的地址线和数据线分开,很方便地为本地工作时序提供各种高难工作方式,一般较为广泛的应用于系统设计中。对于这种工作方式,设计者只要严格的把握时序的控制,把local端和PCI端的各种时序控制线的时序过程严格控制,就可以很好的应用9054芯片。

在C模式下,PCI9054协议转换芯片通过片内的逻辑控制单元将CPCI数据总线和局部地址进行分开。这种方式可以灵活为FPGA,CPU等处理单元提供各种独立的工作方式,从而有效地降低系统开发的难度。

2.4.2 基于FPGA的PCI总线设计实现

PCI9054协议转换芯片支持DMA传输方式,主方式和从方式。DMA传输方式的数据要快很多,对于FPGA控制来说从模式方式,更利于FPGA控制。从模式传输方式的设置可以使CPCI总线上的其它主设备方便地访问PCI9054局部总线上的配置芯片和内存。具体的传输示意图如图6所示。

2.5 电源设计

在本次设计中,基于PCI的数据采集卡上的所有芯片都采用3.3V电源供电。但考虑到目前大部分PC机系统中只有SV的PCI插槽的现状,我们将PCI适配卡引脚组合设计为SV型,并利用电压转换电路将主机板提供的5V电源换为3.3V电源(本次设计中我们使用的LT1587),这样既达到了低功耗的目的,又实现了SV信号环境兼容。而在设计基于CPCI的数据采集卡时,也采用了同样的处理方法。电压转换电路如图7所示。

2.6 时钟设计

时钟电路框图如图8所示。时钟网络中,MC100LVEP完成了主要的时钟产生功能,它的特点就是能同时接收两路差分时钟的输入,通过CLKSEL的高低电平信号控制来选择使用哪一路时钟;同时还在于它的多路差分时钟输出,共计10路,低抖动,低时钟偏差,完全符合本文设计的需要。

参考文献

[1]夏成海.基于Linux的嵌入式无线监测数据采集系统的设计:[硕士学位论文].北京邮电大学,2011.

[2]张宏壮,王建民.基于Linux的嵌入式数据采集系统.微计算机信息,2008:20.

[3]陈立新,梁明.基于ARM和Linux的数据采集系统以其在电能质量监测中的应用.环境技术,2010:03.

[4]吴健.基于FPGA的PCI数据采集卡的研究与开发:[硕士学位论文].中南大学,2008:5.

[5]刘剑.基于PCI Express 和 DDRⅡ SDRAM 的高速数据传输系统的研制:[硕士学位论文].南京信息工程大学,2009:5-1.

[6]TooShanley、Don Anderson,PCI系统结构(第四版).电子工业出版社,2000.

[7]刘书明,苏涛,罗军辉.《TigerSHARC DSP应用系统设计》.电子工业出版社,2004.

上一篇:嵌入式软硬件协同设计与验证流程详解 下一篇:无线数传电台在水情遥测中的应用