基于FPGA的多路模拟量、数字量采集与处理系统
关键词:FPGA A/D采集 数字量采集 VHDL语言设计
在电气测控系统中,常常需要采集各种模拟量信号、数字量信号,并对它们进行相应的处理。一般情况下,测控系统中用普通MCU(如51、196等单片机或控制型DSP)是可以完成系统任务的。但当系统中要采集的信号量特别多时(特别是各种信号量、状态量),仅仅靠用普通MCU的资源就往往难以完成任务。此时,一般只能采取多MCU联机处理模式,或者靠其它芯片扩展系统资源来完成系统的监测任务。这样做不仅增加了大量的外部电路和系统成本,而且大大增加了系统的复杂性,因而系统的可靠性就会受一定的影响,这显然不是设计者所愿意看到的。本文所提出的一种基于FPGA技术的模拟量、数字量采集与处理系统,利用FPGA的I/O端口多,且可以自由编程支配、定义其功能的特点,配以VHDL编写的FPGA内部执行软件,能很好地解决采集的信号路数多的问题。因为用VHDL编写的执行软件内部对各组数字量是按并行处理的,而且FPGA硬件的速度是ns级的,这是当前任何MCU都难以达到的速度,因此本系统比其它系统更能实时地、快速地监测信号量的变化。所以在状态量特别多的监测系统中,本系统将更能发挥出自身的优势。
本系统中的外围电路设计相对简单、可靠,且鉴于FPGA和VHDL语言自身的特点,系统具有较好的扩展性,在监测和控制系统中也具有一定的通用性。系统主要包括:FPGA芯片区、多路选择与A/D采样电路、交流信号调理电路、光耦隔离驱动电路、时钟电源区、PROM代码下载电路等几部分。结构示意如图1所示。
图1 基于FPGA技术的多路模拟量、数字量采集与处理系统框图
1 FPGA芯片特点分析及资源分配
本系统中的FPGA是采用Xilinx公司的Spantan-II系理XC2S100-5 PQ208。该系列的内核采用2.5V供电,工作频率最高可达200 MHz;I/O端口供电电压为3.3V,可以承受5V的输入高电平。
Spartan-II系列具有丰富的I/O口资源,I/O口输出缓冲器呆以接收高达24mA的拉电流和48mA的灌电流。缺省时,I/O输出口的驱动能力的12mA,也可以设置成2、4、6、8、16或24mA。
FPGA内部资源划分为四大部分,如图2所示。
①FPGA逻辑运算中心。用来接收其它各部分的数据,并按照程序中设定的方案对所收到的数据进行相应的分析和处理。包括:对从MCU接收来的数据指令进行分析,并按其指令要求进行相应操作;接收A/D采样来的数据,对数据进行各种处理,如求其有效值,进行FFT分析等;接收来自数字量的各种信息数据,按设定的模式对其进行判断处理,并负责按接收的CPU指令输出相应的数字量。
②A/D控制单元。主要负责控制外部A/D芯片和多路开关的选通时序,以及实现对A/D采要过程的合理控制。因为,在FPGA芯片内部,不像在MCU内部那样有丰富的外设控制资源供用户使用,要用FPGA来控制A/D采样过程的动作,必须用软件来模拟实现各种A/D控制资源。利用这些自设定的A/D控制管理资源,配以合理的软件控制时序,才能保证采样过程的顺利进行。
③数字量监测控制单元。负责所有要监视和控制的数字量的状态数据的采集和控制命令的输出。这一部分同样也需要用软件来模拟实现各种对数字量的管理控制,只有配备较完备的外设控制管理单元,整个数字量的管理控制才能正确合理地进行。
④FPGA接口逻辑控制单元。在FPGA内部设计了FPGA模块与外界MCU的接口单元,这虽然占去了一定的内部资源,但是考虑到在一般的工程系统中不仅仅包括对各种信息的采集控制,还往往包括通信、显示以及进行一些复杂算术运行等等。FPGA虽然有其显著的长处,但是在这些方面实现起来就往往不如普通MCU来得容易,因此考虑到本系统的通用性,在设计上增加了FPGA模块与外界MCU的接口单元。
图2 FPGA内部资源分配示意图
2 交流模拟量采集的控制与管理
在交流模拟量采集外围电路中,A/D芯片采用的是BB公司的ADS774。多路交流量是通过4051的多路开关后输入到ADS774芯片的。交流信号在进入ADS774之前要经过信号调量电路,调理成ADS774认可的模拟信号。
《基于FPGA的多路模拟量、数字量采集与处理系统》