
施鸣鸣
河海大学计算机及信息工程学院,江苏常州 (213022)
E-mail :smglacier@sina.com
摘 要:设计了以FPGA 为核心逻辑控制模块的高速数据采集系统。设计中采用了自顶向下的方法,将FPGA 依据功能划分为几个模块,详细论述了各模块的设计方法和控制流程。FPGA 模块设计使用Verilog HDL 语言,在Quartus Ⅱ4.0 中实现软件设计和完成仿真。本论文给出了一些模块的仿真图形。整个采集系统可实现输出16位最大工作频率为200 kHz 的模拟信号采集。
关键词:FPGA ;A/D ;数据采集;Verilog HDL 语言
1. 引言
数字系统最初的设计是固定功能的大规模集成电路,用户只能根据需要选择合适的器件,并按照器件推荐的电路搭成系统。在设计时没有灵活性可言,搭成的系统需要的芯片种类多且数目大。
随着半导体技术和EDA 技术的发展,传统的系统设计方法有了飞跃性的进步。可编程技术被广泛应用到器件设计上,给数字系统设计带来很大的灵活性。现在构成数字系统仅需要微处理器、存储器和可编程逻辑器件。由于器件可以进行编程,则硬件的设计便可以像设计软件那样方便。
图1 传统电子系统设计方法和基于芯片的设计方法
高速数据采集系统[1],[2]是多种测量与控制系统的前端单元,
其采集速度、精度、稳定性、数据处理能力等直接影响整个系统的性能。本课题就是利用FPGA 作为数据采集控制器,控制高速、高精度的A/D 转换器实现高速采集并完成预定的数据处理工作。数据采集的应用十分广泛。比如水文、地震、火灾等方面的监测,生产的自动控制,雷达、声纳信号处理等。
2. 硬件系统的总体结构
典型的数据采集系统[3]的构成是由AD+DSP+FPGA(CPLD)+D/A 。其中AD 完成把模拟信
传统电子系统设计方法 固定功能元件电路板设计 电子系统 基于芯片的设计方法 可编程元件
电路板设计
芯片设计
电子系统
现在的A/D的采样频率可达GHz的量级,有效位可达10位。对于采样频率较低的A/D,其有效位可达16位以上。数字信号处理器DSP的时钟频率可达600MHz以上,每秒钟能够进行千万此以上的乘加运算。FPGA的时钟频率也可达到100MHz以上,内部逻辑门数可达500万以上。
如图2所示,是整个设计的原理框图[4],[5],首先从外面接入一个5V电压信号,给A/D 芯片供电,然后再通过电压转换芯片,分别将其转换成1.5V的电压信号和3.3V的电压信号。其中1.5V电压只供给FPGA使用,而3.3V电源同时为FPGA和EPROM提供电压。
其次,将一个模拟信号在A/D芯片的一端输入,经过A/D芯片将其转换成数字信号输入到FPGA中,通过对FPGA编程,使其对输入的数字信号进行采集及其存储,并输出一些控制信号对A/D芯片的模数转换进行控制,最后再将处理完的数据对外设进行输出。程序通过插件以PS或JTAG的方式下载到FPGA芯片中, FPGA掉电数据会丢失,所以用一个EPROM来存储数据,这就是系统的基本原理。
图2 原理框图
3. 系统主要器件的选型
3.1 FPGA芯片选型及依据
本电路设计时采用的FPGA芯片是Altera公司的Cyclone 系列。第一代Cyclone FPGA 是在2002年12月份推出的,从那以后已经生产了数百万片,成为Altera公司历史上采用最快的产品。Cyclone系列FPGA是基于成本优化的,全铜工艺的1.5V SRAM工艺,容量从2910至20060个逻辑单元,具有多达294912bit的嵌入RAM。除此之外,Cyclone系列的FPGA还集成了许多复杂的功能。Cyclone FPGA支持各种单端I/O标准如LVTTL、LVCMOS、PCI和SSTL-2/3,通过LVDS和RSDS标准提供多达129个通道的差分I/O支持。每个LVDS 通道高达0Mbps。Cyclone器件具有双数据速率(DDR)SDRAM和FCRAM接口的专用电路。Cyclone FPGA中有两个锁相环(PLLs)提供六个输出和层次时钟结构,以及复杂设计的时钟管理电路。这些业界最高效架构特性的组合使得FPGA系列成为ASIC(专用集成电路)最灵活和最合算的替代方案。Altera Cyclone FPGA是目前市场上性价比最优且价格最低的FPGA。
3.2 AD芯片选型及依据
本电路采用的A/D芯片是ANALOG公司的产品,是高速低功耗的16位模数转换器,采集率为200KSPS。采用单一5伏电压供给,最大功率为100mW。可供选择的外部参考电压和内部2.5伏参考电压,高速的并行接口。
4. FPGA内部程序设计
4.1 程序的流程图
图3 程序流程图
在FPGA芯片内部设计程序是根据AD芯片的转换时序,来控制AD芯片的转换,以及从AD芯片中读取数据并将其存储在FPGA内部的双口RAM中,再对外部设备引出地址线和读使能线,使后面的DSP芯片对数据进行读取或处理,图3是该程序设计的整体流程图[6]。
有系统设计的电路可知START按键一开始为高电平,因此如图3所示,一开始便对START按键进行判断并对程序中的所有参数赋值为初始状态,如果START按键为低电平即表示可以开始采集数据,但是为了防止一些干扰电平,程序在设计时对START按键进行了10us的延时,再次对START键进行判断,如果仍然为低电平,说明按键确实已经被按下而不是干扰电平所产生的低电平。接着就开始采集数据,当一个采集周期结束以后,再判断START键,如果仍为低继续下一个周期的采集数据,如果为高,结束采集。
4.2 程序模块连接图
图4是在Quartus Ⅱ4.0软件中设计时,由各个程序生成模块的连接图,整个的连接图实现了系统要实现的功能[7]。
图4 程序模块的连接图
左边的第一个模块用来控制AD转换和存储数据用的,它有四个输入接口,分别为start、busy、data[15:0]和clk,同时向外设输出rc(AD内部的输出信号线)、zd(中断)和a(用来切换RAM1和RAM2的)信号线,start为开始按键,busy是AD芯片内部的输出信号线,data[15:0]是AD芯片转换完成后的数据,clk为时钟信号。
中间两个模块就是双口RAM用来存储数据,有16位数据线、8位写地址线、8位的读地址线、写使能线、读使能线和时钟信号clk,当写使能线和8位写地址线同时有效时,开始往RAM里写数据,8位的读地址线和写使能线是为后面的DSP留出的,以便DSP进行读出数据。
因为RAM输出的数据线是I/O口的模式,不能将两个I/O输出直接相连,因此要编写一个模块将这两条的输出数据线综合成一条输出信号线,向外设提供数据。同时,因为输出是寄存器的模式,如果把输出数据线直接和外设DSP相连,这样就会一直占住DSP的数据线,使其它和DSP相连的数据线不能使用,因此在最后一个模块设计的时候,给出了rd输入信号,这个rd信号也就是DSP的读使能信号,当它为低电平的时候我们把输入数据和输出数据相连,而其它状态时,输出数据线将一直保持为高阻态。其中的a信号是用来切换RAM1和RAM2 的。这就是最后一个模块要实现的功能。
4.3 实验和仿真
在这个实验中,根据AD的时序图,给了9个busy信号高电平,并且给了9个数据,分别为01、10、11、100、101、110、111、1000、1001,其它都为高阻状态。因为在实验过程中不可能做8位的数据线仿真,因此在做仿真之前将程序地址线改为2位,即4种状态,这样才能看到数据在RAM1和RAM2之间的切换。见图6和7可知已经实现了切换,表明程序已经正确,然后再将地址线改为8位。
图5 仿真波形图
由图6和7可知,10、11、100、101四个数存入了RAM1中,110、111、1000、1001四个数存入了RAM2中,实现了该有的功能。因为第一个busy信号是初始状态,所以不能锁数,因此01没有存入到RAM1中。
图6 RAM1的MIF文件
图7 RAM2的MIF文件
通过以上的仿真实验,说明系统整个程序的设计已经完成了对AD芯片的控制,并实现了对两个双口RAM的切换和对双口RAM的写数据。完成了在程序设计初的框架,实现了预期的功能。
5. 结语
本文完成了高速、多通道的数据采集系统的设计,利用Protel设计了系统的原理图和PCB板图,并在Quartus Ⅱ 4.0软件环境下用Verilog HDL语言编写了整个系统的程序,并做了仿真,实现了预期功能。
对系统的改进主要是在AD转换芯片上,可以通过选择更高速和更多位的AD来提高整个数据采集器的采集速率和采集精度,也可以通过设计多路采集来提高速度。
参考文献
[1]崔俊杰郭宏,基于FPGA的实时数据采集与远程传输系统设计,数据采集与处理,2005,20(3).366-370
[2]林长青孙胜利,基于FPGA的多路高速数据采集系统,电测与仪表,2005,42(5).52-54
[3]周维何健鹰聂菊根,CPLD和FPGA编程与配置的实现,计算机与数字工程,2006年1期
[4]叶卫东曹照连,基于FPGA的数据采集系统设计,现代电子技术,2005年24期。
[5]张东黄宇恒,基于FPGA的多路模拟数据采集接口设计,仪表技术,2005年6期。
[6]黄新财佃松宜汪道辉,基于FPGA的高速连续数据采集系统的设计,微计算机信息,2005年2期。
[7]李雪梅,用Quartus Ⅱ4.0设计数字电路过程的介绍,现代电子技术,2005年第6期总第197期。
http://www.paper.edu.cn
Design of Data Acquisition System Based on FPGA
Shi Mingming
School of Computer Science and Information Engineering,Hohai University,changzhou,Jiangsu
(213022)
Abstract
The high speed data acquisition system based on FPGA,which is the core logic control module of the system is designed. According the method of top—down,FPGA is divided into some functional modules.The designing method and controlling flow of each module are discussed in detail.The Verilog HDL language is adopted in the FPGA module.Software design and system simulation are completed in the integration circumstance of Quartus Ⅱ 4.0.The paper provides the simulation figures of some FPGA modules.The system can acquire 16 bit analog signals with 200 kHz of maximal frequency signals.
Keywords:FPGA;A/D;data acquisition;Verilog language
- 7 -
