搜索
您的当前位置:首页正文

基于FPGA的多路数据采集器设计

来源:好走旅游网
 西南科技大学城市学院本科生毕业论文 I

基于FPGA的多路数据采集器设计

摘要:随着计算机技术的突飞猛进以及移动通讯技术在日常生活中的不断深入,数据采集不断地向多路、高速、智能化的方向发展。本文针对此需求,实现了一种应用FPGA和ADS8344的多路、高速的数据采集系统,从而为测量仪器提供良好的采集数据。

在生产过程中,应用数据采集系统可以对生产现场的工艺参数进行采集、监视和记录,为提高产品质量、降低成本提供了技术手段。随着计算机技术和电子信息技术的飞速发展和日益普及,数据采集系统也得到了广泛应用。尤其在航空航天、地质勘探、电力、雷达、通信等领域中,对数据采集系统的精度要求、速度要求日益增高。在某些特殊场合下,对数据采集系统的便携性也提出了很高的要求。因此,设计出一个合适的数据采集系统就显得尤为必要和迫切。论文在研究FPGA的基础上,建立了一个基于FPGA的多路数据采集系统。

在本文一开始介绍了FPGA的相关基础知识和FPGA的软件开发平台,下文中FPGA的设计开发都是建立在这些基础之上的。本文设计了一种基于FPGA 和ADS8344的多路数据采集处理系统,针对此系统设计了基于ADS8344的模数转换采集板,再将模数转换采集板的数据传送至基于FPGA的采集控制模块进行数据的压缩以及缓冲存储,最后调入数据进行数据的处理。

经设计与调试,模数转换模块可为系统提供稳定可靠的数据,能稳定工作在百兆的频率下;采集控制模块能实时地完成数据压缩与数据缓冲,并能通过时钟管理模块来控制前端ADS8344的采样,该模块也能稳定工作在百兆的频率下。该系统为多路、高速的数据采集系统,并能稳定工作,从而能满足电子测量仪器的要求。

关键词:数据采集;FPGA;ADS8344

西南科技大学城市学院本科生毕业论文 II

Compression System Design Based on FPGA

Abstract: With the rapid development of computer science and mobile communication, data-acquisition system is developing towards multi-channel、 high-speed and intelligent.In order to meet this tendency,this paper has devised a data-acquisition system which is based on FPGA with multi-channel and high-speed,and this system canprovide the right data for special measurement instrument.

In the production process,the application of data acquisition system can gather,monitor and record the technological parameter in the production field.It provide means of improve the product quality and reduce the cost.With the computer technology and the electronic information technology's rapid development,the data acquisition system also obtained the widespread application.Especially in the domains of aerospace,geological prospecting, electric power, radar, communication and so on.Under some special occasions,we also set the very high request to data acquisition system's portability.Therefore,designs an appropriate data acquisition system appears especially essential and urgent.This paper has established a data acquisition system based on FPGA technologies.

In the first part of the article,we introduced the relative basic knowledge of FPGA, FPGA platform and the corresponding software development environment.On the basis of that we made the paper on FPGA design development.

This paper mainly discuss the multi-channel data-acquisition system which is based on FPGA + ADS8344;in this system,an analog-to-digital converting board which is based on ADS8344 is designed to generate digital signals,then the signals will be transferred to the control unit which is based on FPGA,so that the signals will be compressed and cached in time,at last,the compressed dates will be for further process.

By designing and debugging carefully,the analog-to-digital converting board can supply reliable dates in high frequency;the control unit of the system not only can compress and cache the dates in time but also can work in high frequency,also,this unitcan control the sample of the AD9446 by the sample-clock.The system discussed in thispaper is multi-channel、high-speed and stable so that it can meet the requirement of the electronic

西南科技大学城市学院本科生毕业论文 III

measurement instrument.

Key words: data-acquisition, FPGA, ADS8344

西南科技大学城市学院本科生毕业论文 IV

目 录

第1章 绪论 ......................................................................................................................... 1

1.1 研究目的及意义 ..................................................................................................... 1 1.2 国内外发展趋势及研究现状 ................................................................................. 2 第2章 多路数据采集器系统的架构 ................................................................................. 4

2.1. 数据采集器系统概述 ............................................................................................ 4 2.2 数据采集的基本流程 ............................................................................................. 5 第3章 数据采集系统的硬件设计 ..................................................................................... 7

3.1 数据采集器的芯片工作原理 ................................................................................. 7

3.1.1 ADS8344芯片的介绍 ................................................................................ 7 3.1.2 ADS8344的内部结构 ................................................................................... 9 3.1.3 ADS8344的工作时序 ................................................................................ 9 3.1.4 ADS8344的主要工作特点 ...................................................................... 10 3.1.5 A/D芯片周边部分电路 ........................................................................... 11 3.2 FPGA芯片的基本工作原理与基本架构 ............................................................. 12

3.2.2 FPGA芯片的基本架构 ............................................................................... 14 3.2.3 FPGA芯片的I/O口 .................................................................................... 16 3.2.4 FPGA的时钟源及锁相环接口电路 ........................................................... 17 3.2.5 FPGA的配置电路 ....................................................................................... 18

第4章 数据采集系统的软件设计 ................................................................................... 20

4.1 FPGA芯片的Verilog HDL程序设计 .................................................................. 20 4.2 数据采集系统软件设计方案 ............................................................................... 21 4.3 控制模块的FPGA实现 ....................................................................................... 22 4.4 FPGA的编程 ......................................................................................................... 24 4.5 PC机编程 .............................................................................................................. 27 结论 ..................................................................................................................................... 28 致谢 ..................................................................................................................................... 29 参考文献 ............................................................................................................................. 30

西南科技大学城市学院本科生毕业论文

第1章 绪 论

1.1 研究目的及意义

随着社会的发展和科学技术的进步,信号处理技术已经越来越广泛的应用于人类活动的各个领域。从20世纪60年代以来,数字信号处理技术已逐渐成为信号处理领域的主力,它已经渗透到各个应用领域之中。与此同时作为数字信号处理的前提——数据采集也不断得到长足的发展,数据采集是指将温度、压力、流量、位移等模拟量采集、转换成数字量后,再由计算机进行存储、处理、显示或者打印的过程,相应的系统称为数据采集系统。在生产过程中,应用数据采集。系统可对生产现场的工艺参数进行采集、监视和记录,为提高产品质量、降低成本提供信息和手段。在科学研究中,应用数据采集系统可获得大量的动态信息,是研究瞬间物理过程的有力工具,也是获得科学奥秘的重要手段之一。

对于微弱信号的采集和处理,多数是以单片机或CPU为控制核心,虽然编程简单控制灵活,但由单片机串行工作的特点所决定的,即使是高速度单片机也只能工作在us级;可靠性低,在某些情况下瞬间的复位会造成严重后果;不支持地址空间的扩展,只能用I/O端口来扩展外围器件;专为超低功耗设计,工作电压为3.3V,不适宜工作在+5V工作电压;因此,单片机的指令周期以及处理速度的影响,对于多通道、多个A/D组成的阵列进行控制以及数据处理,普通单片机达不到要求,因此多路数据采集系统里往往不采用单片机直接控制。

本课题就是为了在一些微体积、低功耗的测试系统中实现高速数据采集的功能的同时而不增加系统的体积和功耗的情况下应运而生的,即用FPGA实现数据采集和数据实时压缩的功能。本课题主要研究数据采集和数据压缩两大方向,这两大方向的主要功能都是通过FPGA来实现。数据采集模块主要是通过FPGA对外部的A/D芯片进行控制。

作为数据采集的典型应用——电子测量仪器,它的应用范围也越来越广,向着多功能、多方位、多领域扩展,许多新的测试项目、新的仪器不断涌现,广大用户对电子测量的要求也由仅仅的稳定性提升为综合性要求,进一步上升为专业化、手持化、微机化、通讯化、监控化等等,本文正是应用电子测量仪器的数据采集端进行设计。

在目前我们所应用的电子测量仪器中,其数据采集所采用的方法在实际的应用领域差异较大,一般均为定制的数据采集卡,有的通道较多但速度不够快,有的采集速

1

西南科技大学城市学院本科生毕业论文

度较快但通道较少。基于此,本文结合实际的项目,设计一种应用FPGA的高速多通道的仪器用数据采集系统,希望能为实际的产品提供有用的参考。

1.2 国内外发展趋势及研究现状

数据采集系统出现于20世纪50年代,1956年美国首先研发了用在军事上的数据采集测试系统。在20世纪60年代后期,国外就有成套的数据采集测试设备进入市场,此阶段的数据采集设备和系统多属于专用的系统。

进入20世纪70年代,随着计算机的普及应用,数据采集系统得到了极大的发展,开始出现了通用数据采集与自动测试系统。该阶段的数据采集系统主要由两类:一类由仪器仪表和采集器、通用接口总线和计算机构成。第二类由数据采集卡、标准总线和计算机构成。20世纪80年代后期,数据采集系统发生了巨大变化,由工业计算机、单片机和大规模集成电路组合,并用软件管理,使系统的成本降低,体积减小,功能成倍增加,数据处理能力大大增强。

20世纪90年代至今,由于微电子技术和集成电路制造技术的不断进步,出现了高性能、高可靠性的单片数据采集系统。目前有的产品精度已达16位,采集速度每秒可达几十万次。数据采集技术已经成为一种专门的技术,在工业领域得到广泛的应用,数据采集系统采用更先进的模块式结构,根据不同的应用要求,通过简单的增加和更改模块,并结合系统编程,就可以扩展和修改,迅速组成一个新的系统。

微电子技术的一系列成就以及微型计算机的广泛应用,不仅为高性能数据采集系统的应用开拓了广阔的前景,也对高性能数据采集技术的发展产生了深刻的影响。高性能数据采集系统的发展趋势主要表现在以下几个方面:

(1)数据采集片上系统,它集数据采集、处理、运算、分析等为一身的数据采集芯片应运而生。

(2)采用新型信息处理方法,近几年的数据融合技术、模糊信息处理技术和神经网络技术等,在数据采集和现代测试系统中得到了广泛的应用。

(3)采用高智能化软件,它可以在一些场合下代替复杂的硬件电路去对信号做分析和处理。

(4)网络化,以Internet为代表的网络技术的出现为测量仪器技术带来了前所未有的发展空间和机遇,网络化测量技术与具备网络功能的新型仪器应运而生。 (5)通用化与标准化,它为系统更改、升级与大范围连接带来了便利条件,现代数据采集系统的通用化与标准化设计十分重要。

2

西南科技大学城市学院本科生毕业论文

目前,国外企业已经推出了很多能适应不同条件,不同精度要求的数据采集系列产品。国内对数据采集设备的研制与国外的情况相比,在开发应用的广度和深度方面,还有一段距离,现场数据采集要求比较高的场合多是采用国外产品。

由Altera公司推出的新一代专用集成电路是专门针对某一数字系统设计、生产的集成电路。ASIC皆有保密性,由ASIC构成的数字系统体积小、功耗低、成本低。随着工艺和技术的进步,极大地缩短了ASIC的研制周期,有效地降低了ASIC的设计成本。可编程ASIC缩小体积、减轻重量、降低功耗,提高可靠性,易于获得高性能,可增强保密性,在大批量应用时,可显著降低系统成本。

现场可编程ASIC就是指现场可编程门阵列FPGA。FPGA的时钟频率可高达100MHz以上和I/O端口多,可以自定义端口功能等特点设计,并且可以将其模块化为A/D控制及并串转换、乒乓传输控制、RAM读写控制3部分。FPGA与单片机相比,FPGA具有着很多的优势。

FPGA产品的应用领域已经从原来的通信扩展到消费电子、汽车电子、工业控制、测试测量等广泛的领域。FPGA企业都在大力降低产品的功耗,满足业界越来越苛刻的低功耗需求。2001年之后,FPGA从150nm、130nm跃进到90nm,在2006年,65nm工艺又在第一时间被引入。采用65nm工艺技术,使FPGA产品的性能再次获得了飞跃,成本和功耗也大幅降低。 工艺技术推动的创新还在不断延续。Altera向业界发布了全球首款采用40nm工艺的FPGA和ASIC, FPGA产品已经进入45nm时代,32nm产品的研发也在紧锣密鼓地进行着。而每一代新工艺技术都像是FPGA业的重磅武器,让FPGA在与ASIC和ASSP的竞争中获得更大的空间。

FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。

基于FPGA的I/O端口多、频率高,低功耗等优点,对于有严格时序要求的多路数据采集系统,采用FPGA构建多路数据采集系统核心控制电路,主要完成A/D转换及数据的采集、传输。

3

西南科技大学城市学院本科生毕业论文

第2章 多路数据采集器系统的架构

2.1. 数据采集器系统概述

数据采集电路是测试系统中的重要组成部分,其主要包括模拟电路部分和数字电路部分两个部分。其中的模拟部分主要是将前端的传感器所提供的电参量信号进行转换、放大、滤波、调零等处理,使之成为适合AD或者显示记录仪器所需要的电压信号。数字部分主要是根据不同的需要按照不同的采样策略来对AD转换器进行控制,实现对模拟信号的采样和量化。同时数字部分的电路还要将所采集的数据进行处理、存储和向上位机传输,以便进行更进一步的数据分析。本文主要是实现数字部分的设计。

将模拟信号转换为数字信号、并进行存储和计算机处理显示的过程称为数据采集,而相应的系统称为数据采集系统(Data Acquisition System)。数据采集是信息科学的一个重要分支,它研究信息数据的采集、存储、处理及控制等工作,它与传感器技术、信号处理技术、计算机技术一起构成了现代检测技术的基础。

A/D转换的基本过程模拟量是时间上和幅值上都连续的一种信号,模拟量经过采样后得到的信号是时间上离散,幅值上连续的信号,即离散信号,这一过程就是采样过程。计算机对这种离散信号还不能处理,计算机只能处理数字量,所以还必须把离散信号在幅值上也进一步离散化,这一过程就是量化过程。量化后的信号是时间上和幅值上都离散的数字量,可以直接送到计算机中进行处理。

采样是将模拟量变换为离散量,一般包括采样与保持两个步骤,量化是将离散量变换成数字量,一般包括量化与编码两个步骤。采样与量化是A/D转换的基本过程。采样为了把一个连续变化的模拟信号转变成对应的数字信号,就必须首先把模拟信号在时间上离散化,也就是对模拟信号进行采样。采样的过程一般是:先使用一个采集电路,按等距离时间间隔,对模拟信号进行采样,然后用保持电路将采集来的信号电平保持一段时间,以便模数转换器正确地将其转换成对应的数字量。

数据采集的任务,具体地说,就是采集传感器输出的模拟信号并转换成计算机能识别的数字信号,然后送入计算机或相应的信号处理系统,根据不同需要进行相应的计算和处理,得出所需的数据。与此同时,将计算机得到的数据进行显示或打印,以便实现对某些物理量的监视,其中一部分数据还将被控制生产过程中的计算机控制系统用来控制某些物理量。数据采集几乎无孔不入,它已渗透到了地质、医疗器械、雷

4

西南科技大学城市学院本科生毕业论文

达、通讯、遥感遥测等各个领域,为我们更好的获取信息提供了良好的基础。

在多路、高速的数据采集系统中,往往会采用应用FPGA的数据采集系统架 构,该系统主要由A/D+FPGA组成,A/D负责多路数据的采集工作,FPGA主要负责数据的缓冲存储以及对前端ADC的采样控制。

该系统充分利用了FPGA的可编程性,灵活配置前端的采样控制以及数据的 传输从而能很好的达到采样控制,FPGA可以作为系统的核心控制芯片,控制整个采集系统的工作,同时FPGA的工作频率可以达到百兆,并且内部含有丰富的可编程逻辑单元,因而该系统可以满足多路数据采集。

2.2 数据采集的基本流程

数据采集在工业测试系统中试一个很重要的环节,其中精确性和可靠性是至关重要的。本课题阐述的数据系统精确度高达16位,能够对8个外部模拟通道行进A/D采样,最大模拟输入信号范围达到—15~+15V。该系统具有限幅保护功能,程序编写简便,能够实现对远端数据的采集和传输。

图1 是数据采集系统框图:

信号调 理电路

图1 数据采集系统框图

A/D转 换器 ADS8344 FPGA A3P250 UART 接口 PC机 该系统框图中,一般应用于非高速数据采集的场合,FPGA在整个系统中起到了主控制器的作用,并能够通过其内部集成的锁相环PLL为A/D芯片提供时钟源。A/D芯片转换后的二进制数据在FPGA的控制下先经由FPGA内部的缓冲,再经由UART内部的收发器,上传数据到上位机中,从而实现多路数据的采集和处理。

该A/D转换器采用了TI公司16位逐次逼近型ADS8344;FPGA主要用于控制ADC启动、停止和查询ADC状态时数据进行高速数据缓冲、异步数据编解码等数据处理。

在模拟信号进入A/D转换器之前,需要进行信号的调理、滤波以及放大,从而达到A/D变换器的输入电平要求,以充分利用A/D转换器的满量程分辨率。在整个

5

西南科技大学城市学院本科生毕业论文

采集系统中,A/D是采集通道的核心,也是影响数据采集系统速率和精度的主要因素。数据采集系统各器件之间的时序要求是很严格的,以保证系统精度。时钟产生电路按照器件的工作时序产生时序信号,逻辑控制电路依照时序电路产生逻辑控制信号。2.3

信号调理电路

2个运放选用TI公司精密仪表放大器OPA277.由于输入模拟电压信号为双极性,范围为—15~5V,而ADS8344模拟输入通道为0V~VREF,所以必须对输入信号进行转换。

数据采集前端调理电路如图2所示:

图2 信号调节电路

其传递函数为:

式中:VOUT为转换后的单极性电压信号;VREF由电压基准源提供,在图中是+2.5V;VIN为输入的一15~+15 V电压信号。当R3=6R1、R4=6R2时,传递函数可化简为:

可见,传递函数是线性函数。只要正确选择精确的电阻值,一15~+15 V电压信号可线性转换为O~+5V,从而保证了系统的精度

6

西南科技大学城市学院本科生毕业论文

第3章 数据采集系统的硬件设计

3.1 数据采集器的芯片工作原理

随着数字技术,特别是的飞速发展与普及,在现代控制。通信及检测等领域,为了提高系统的性能指标,对的处理广泛采用了数字计算机技术。由于系统的实际对象往往都是一些模拟量要使计算机或数字仪表能识别。处理这些信号,必须首先将这些模拟信号转换成数字信号;而经计算机分析。处理后输出的数字量也往往需要将其转换为相应模拟信号才能为执行机构所接受。这样,就需要一种能在模拟信号与数字信号之间起桥梁作用的电路-模数和。

将模拟信号转换成数字信号的电路,将数字信号转换为模拟信号的电路称为数模转换器;A/D转换器和D/A转换器已成为中不可缺的组成部分,为确保系统处理结果的精确度,A/D转换器和D/A转换器必须具有足够的转换精度;如果要实现快速变化信号的实时控制与检测,A/D与D/A转换器还要求具有较高的转换速度。转换精度与转换速度是衡量A/D与D/A转换器的重要技术指标。随着集成技术的发展,现已研制和生产出许多单片的和混合集成型的A/D和D/A转换器,它们具有愈来愈先进的技术指标。

模数转换芯片是整个数据采集系统的核心,它的好坏直接决定了整个采集系统的成功与否,本系统选用ADI公司的ADS8344作为其转换芯片,并基于ADS8344进行了模数转换采集板的设计实现。 3.1.1 ADS8344芯片的介绍

该ADS8344系列是一个具有同步串行接口的8通道、16位采样,模拟至数字转换器。它的典型功耗为10mW,最高工作频率为100kHz,该参考电压可变化为500mV和VCC之间,提供了相应的输入电压范围为0V至VREF。

该芯片的特点是带ADS7844的引脚。采用2.7~5V单电源供电、包含8个单端模拟输入通道(CH0~CH7),也可合成为4个差分输入、高达100kHz的转换率、84分贝的信噪比、串行接口。主要应用在数据采集、测试与测量设备、工业过程控制、PDA、电池供电系统。

由于低功耗,高速,和一个机载多路作出如PDA,便携式多通道数据记录器的电池供电系统ADS8344的理想,和测量设备。串行接口还提供了低成本的远程数据

7

西南科技大学城市学院本科生毕业论文

采集隔离。

ADS8344的芯片引脚图如图3所示:

图3 ADS8344芯片引脚

CH0~CH7:模拟输入通道的输入端,8个单端模拟输入通道可合用为双端差分输入,所有通道的输入范围从0V到+VREF,未用的输入通道应接GDN以避免噪声输入。

COM:模拟输入的参考地,单端输入通道的零地位点,直接接地或接地电位参考点。

SHDN:掉电控制位,当为低时,芯片切换到低功耗掉电模式。 +VCC:电源输入端,范围为+2.7~5V。

DOUT:串行数据输出端,在DCLK的下降沿时数据输出,当CS为高时,输出为高阻态。

DIN:串行数据输入端,当CS为低时,数据在DCLK的上升沿被锁存。 DCLK:外部时钟输入端,该外部时钟决定了芯片的转换率(fDCLK=24fSAMPLE)。

CS:片选端,为低电平时,选中该芯片。 GND:参考地。

VREF:参考电源输入端。

BUSY:模数转换状态输出引脚。当进行模数转换时,该引脚输出低电平,当BUSY端产生一下降沿时,表示模数转换结束,数据输出有效。

8

西南科技大学城市学院本科生毕业论文

3.1.2 ADS8344的内部结构

ADS8344的控制寄存器是一个8位只写寄存器,数据从DIN引脚输入,当微机读取完上次转换结果时,下一个转换通道的控制字节就写到了DIN引脚,需要8个DCLK时钟才能将完整的控制信息写到控制寄存器。 ADS8344的内部结构图如图4所示:

图4 ADS8344的内部结构

它主要包括输入缓冲、时钟以及时序管理单元、流水线A/D、内部电压基准电路以及输出电平控制电路。 3.1.3 ADS8344的工作时序

ADS8344是一款高性能、低功耗的ADC,采用2.7~5V单电源供电,最大采样频率为100 kHz,信噪比达84dB,自带采样/保持电路,包含8个单端模拟输入通道(CH0~CH7),也可合成为4个差分输入。参考电压VRFF的范围为500mV~VCC,相应的每个模拟通道的输入为0V~VREF,DS8344是通过三线SPI接口与FPGA相互通信的,数据从DIN引脚输入到8位只写控制寄存器。当FPGA读取完ADC上次转换结果时,下一个转换通道的控制字节就写到了DIN引脚。一个完整的控制字节需要8个DCLK时钟。

写完控制字节的同时,模/数转换结束,模/数转换状态输出引脚BUSY产生一下降沿,数据输出有效,FPGA开始接收由DOUT输出的转换结果。16位串行数据需要16个DCLK时钟,在接收串行数据的LSB位时,下一个通道的控制字开始输入到A/D芯片。ADS8344完成一次完整的数据采样保持、转换和输出共需要25个DCLK时钟。

ADS8344串行接口时序如图5所示:

9

西南科技大学城市学院本科生毕业论文

图5 ADS8344的工作时序

在内部时钟模式下, SAR 生成自己的内部转换时钟。这免除不必生BUSY 转换时钟和允许转换结果微处理器被阅读处理器回在任何时钟频率从0MHz便利,为2.0MHz。 BUSY去在转换开始低,然后返回高当转换完成。在转换,SCLK 仍将低为8µs最高。另外在转换,CS 仍应低达到最佳的噪性能。转换结果存储在一内部登记;时钟的数据可能会出此注册转换后的任何时间完成。如果BUSY是低时 MSB 去低转换后,未来属于外部串行时钟边缘将写出关于 DOUT 行 (D14-D0) 。其余 MSB. 会是在每个时钟周期后,连续24小时CS 出位,如果BUSY是高时 DOUT 去低那么 CS生产线将在三态,直至BUSY不需要继续低一次凸-锡永已经开始。请注意CS不是三态时去在内部时钟模式高。数据可以被转移和输出的时钟速率的 ACQ超过2.4MHz下,只要最小采集时间TABLE 高于1.7µs保存。 3.1.4 ADS8344的主要工作特点

ADS8344控制寄存器是一个8位只写寄存器,数据从DIN引脚输入,当微机读取完上次转换结果时,下一个转换通道控制字节就写到了DIN引脚,需要8个DCLK时钟才能将完整控制信息写到控制寄存器。 控制寄存器各位功能说明如表1所示:

MSB LSB S A2 A1 A0 预留 SGL/DIF PD1 PD0 表1

S:控制字节开始位,为高时才表示输入字节有效。 A2~A0:模拟输入通道选择位。

10

西南科技大学城市学院本科生毕业论文

SGL/DIF:模拟通道输入方式选择位。当为高时,为单端输入;为低时,为双端差分输入。

PD1~PD0:功率管理选择位。

ADS8344个模拟输入通道可以设置成单端输入或差分输入。单端输入时,各个模拟通道均输入+IN信号,而从COM引脚接入-IN信号。双端差分输入时,通道CH0和CH4、CH1和CH5、CH2和CH6、CH3和CH7组合成差分输入。当芯片进入保持阶段时,+IN和-IN差分输入信号送到内部电容器阵列上。-IN输入电压范围为-0.2V~+1.25V,+IN输入电压范围为-0.2V到+VCC+0.2V。 3.1.5 A/D芯片周边部分电路

基准电压源在DAC电路中占有举足轻重的地位,其设计的好坏直接影响着DAC输出的精度和稳定性。而温度的变化、电源电压的波动和制造工艺的偏差都会影响基准电压的特性。

ADS8344的8管脚的SOIC封装,它外部较少的管脚不仅能够很方便的实现与其它器件连接,并且它体积小,可以节省很多布线资源。TLV1572的最高采样速率为1.25MSPS,其积分非线性误差INL<±1LSB,可以采用2.7V至5.5V的供电电源。在这里选择的5V模拟电源供电。参考电压的取值范围这里为2.7V至5V。 电路图如图6所示:

图6 A/D芯片及周边电路

基准电压源是模拟集成电路中极为重要的组成部分,它可以为串联型稳压电路、A/D和D/A转换器提供基准电压源,也是大多数传感器的稳压供电电源或激励源。

11

西南科技大学城市学院本科生毕业论文

另外,基准电压源也可以作为标准电池、仪器表头的刻度标准和精密电流源。TL431是一个性能优良的基准电压集成电路,主要应用于稳压、仪器仪表、可调电源和开关电源中,是稳压二极管的良好替代品。其主要特点是可调输出电压范围大,为2.5V至36V,输出阻抗小,约为0.2欧姆。 如图7所示:

图7 参考电压

按照TL341数据手册提供的输出的稳压电压的计算公式,TL341的3号引脚的电压值Vo=(1+W1/R18)Vref,其中Vref为2.5V。目前按照A/D芯片正常工作的要求提供3V稳压电压,则W1/R18比值应为0.2,R18目前阻值为1K,那么可以调节W1滑动变阻器值为200欧姆。

3.2 FPGA芯片的基本工作原理与基本架构

FPGA是整个高速数据采集系统的核心,它一方面控制前端AD的采样,另一方面对采集来的数据进行缓冲以及进一步的处理,充分发挥其灵活性。本章基于Altera公司的FPGA进行采集控制模块的设计,介绍了FPGA的工作原理及选型,再分别介绍了基于FPGA的采集控制模块的原理图设计以及相关软件的设计。 3.2.1 FPGA的工作原理

可编程逻辑阵列器件是可以由用户进行编程以实现所需逻辑功能的数字集成电路,利用其内部的逻辑结构实现任何布尔表达式、寄存器函数。和一般的ASIC电路相比,可编程逻辑阵列器件具有设计周期短,修改方便的优点。

1985年,Xilinx公司推出了世界上第一款FPGA,此后,FPGA的发展非常迅速,形成了各种不同的结构,目前主流的FPGA是Xilinx公司的产品。FPGA是在PAL,GAL,EPLD等可编程器件的基础上进一步发展的产物。通过编程可以立刻把一个

12

西南科技大学城市学院本科生毕业论文

通用的FPGA芯片配置成用户需要的硬件数字电路,因而大大加快了电子产品的研发周期,降低了研发成本,缩短了产品上市时间。FPGA具有高密度,运行速度快(管脚间的延时小,仅几个ns)的特点。用它来设计数字电路可以简化系统设计,缩小数据规模,提高系统的稳定性。

FPGA是由掩膜可编程门阵列和简单可编程逻辑器件演变而来的,将它们的特性结合在一起使得FPGA既有门阵列的高密度性和通用性,又有可编程逻辑器件的用户可编程特性。按FPGA的逻辑功能块的规模和功能分类,FPGA可分为三大类:细粒度FPGA、中粒度FPGA和粗粒度FPGA。细粒度FPGA的逻辑功能较小,资源可以充分利用,但连线和开关多,速度慢;粗粒度FPGA逻辑功能块的规模大,功能强,但资源不能充分利用。反熔丝FPGA器件可以称为细粒度的产品,基于SRAM的FPGA器件多数属于中粒度产品。

根据编程方式FPGA器件基本可分为三种:基于反熔丝编程的FPGA、基于SRAM编程的FPGA、基于闪存编程的FPGA。基于AD9446采集芯片反熔丝编程的FPGA具有体积小、集成度高和高速度的特点,还具有加密、防拷贝、抗干扰以及不需外接只读存储器的特点,但只能一次编程,比较适合于定型产品。后两种FPGA属于可重复编程型FPGA,SRAM型FPGA的突出优点是可反复编程,甚至能在系统运行中改变配置数据实现系统功能的动态重构。Flash Memory型FPGA具有非易失性和重复编程的双重优点,但不能动态重构,功耗也较SRAM型FPGA高。

从逻辑块的构造分类,FPGA的结构有三种:查找表型、多路开关型和多级与或门型。Xilinx公司FPGA的逻辑块构造有查找表型和多路开关型,其中具有代表性的查找表结构是Xilinx公司的XC系列FPGA,它的可编程逻辑单元是查找表,由查找表构成函数发生器,再由查找表来实现逻辑函数。Altera公司的FPGA器件,其逻辑块构造为多级与或门型,它的可编程单元是可配置的多路开关。利用多路开关的特性,对它的输入和选择信号进行配置,接到固定电平或输入信号上,实现不同的逻辑功能。还有一种是采用多级与非门结构的Altera公司的FPGA,在多级与非门结构中,可编程逻辑单元是一个异或逻辑块。查找表型的优点是功能多,N输入的查找表可以实现N个任意的组合逻辑函数。多路开关型的优点是可以把大量的多路开关和逻辑门连接起来,构成大量函数的逻辑块。多级与或门型的优点是可以方便地将待反馈的输出信号反馈到输入端,以实现闭环控制逻辑和多个逻辑块之间的级联。

FPGA兼有串、并行工作方式和高集成度、高速、高可靠性等明显的特点,其时

13

西南科技大学城市学院本科生毕业论文

钟延迟可达纳秒级,同时,在应用芯片的设计中可以减少芯片数量,缩小系统体积,降低能源消耗,提高系统的性能指标和可靠性。正是由于FPGA具有这些优点,FPGA在超高速应用领域和实时测控方面有非常广阔的应用前景.。在高可靠应用领域,如果设计得当,将不会存在类似于MCU的复位不可靠和PC可能跑飞等问题。FPGA的高可靠性还表现在,几乎可将整个系统下载于同一芯片中,实现所谓片上系统,从而大大缩小了体积。与ASIC设计相比,FPGA显著的优势是开发周期短,投资风险小、产品上市速度快,市场适应能力强和硬件升级回旋余地大,而且当产品定型和产量扩大后,可将在生产中达到充分检验的VHDL设计迅速实现ASIC投产。

随着大规模现场可编程逻辑器件的发展,系统设计进入“片上可编程系统” (SOPC)的新纪元:芯片朝着高密度、低压、低功耗方向挺进:在SOC芯片上可以将微处理器、数字信号处理器、存储器、逻辑电路、模拟电路集成在一个芯片上。 而如果将可编程逻辑电路1P核集成到SOC芯片上则会大大提高SOC芯片的灵活性与有效性,并且缩短了SOC芯片的设计周期。因此国际各大公司都在积极扩充其IP库,以优化的资源更好的满足用户的需求,扩大市场。

由此可见,FPGA不仅可以解决电子系统小型化、低功耗、高可靠性等问题, 而且其开发周期短、开发软件投入少、芯片价格不断降低,这使得FPGA占有越来越多的市场,特别是对小批量、多品种的产品需求,使FPGA成为首选。FPGA普及的另一重要原因是IP(知识产权)越来越被高度重视,带有IP内核的功能块在ASIC设计平台上的应用日益广泛。越来越多的设计人员,采用设计重用,将系统设计模块化,为设计带来了快捷和方便。并可以使每个设计人员充分利用软件代码,提高开发效率,减少上市时间,降低研发费用,缩短研发周期,降低风险。

FPGA是在PAL、GAL、EPLD、CPLD等可编程器件的基础上进一步发展的产物。它是作为ASIC领域中的一种半定制电路而出现的,即解决了定制电路的不足,又克服了原有可编程器件门电路有限的缺点。 3.2.2 FPGA芯片的基本架构

为了让高产量应用的开发人员首次在产品中加入安全的系统内编程 (ISP)功能,Actel公司宣布实时推出ProASIC3激活套件及其25万门A3P250现场可编程门数组的样片。 Actel推出两种版本的激活套件,能够简化设计的实施并为A3P250器件提供低成本的全速编程能力。激活套件备有原型构建和低成本评估两个版本,能让开发人员探索ProASIC3/E系列产品独特的结构特性,包括安全的系统内编程和上电即用

14

西南科技大学城市学院本科生毕业论文

功能。

A3P250器件是Actel ProASIC3/E系列产品的最新成员。ProASIC3/E是业界最低成本的FPGA产品系列,也是唯一通过128位AES加密技术来提供安全系统内编程功能的单芯片器件。A3P250对于消费电子、工业、医疗、通信和汽车等以价值为基础的高产量应用领域来说,是极吸引的可编程逻辑解决方案。

由于FPGA需要被反复烧写,它实现组合逻辑的基本结构不可能像ASIC那样通过固定的与非门来完成,而只能采用一种易于反复配置的结构,查找表可以很好的满足这一要求。目前主流FPGA都采用了基于SARM工艺的查找表结构。

查找表本质上就是一个RAM,当用户通过原理图或HDL语言描述了一个逻辑电路以后,PLD/FPGA开发软件会自动计算逻辑电路的所有可能结果,并把真值表事先写入RAM,这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。

由于基于LUT的FPGA具有很高的集成度,其器件密度数万门到数千万门不等,可以完成极其复杂的时序逻辑电路与组合逻辑电路,因此适用于高速、高密度的高端数字逻辑电路设计领域。其组成部分主要包括编程/输入输出单元、基本可编程逻辑单元、内嵌SARM、丰富的布线资源、底层嵌入功能单元、内嵌专用单元等。

FPGA是由存放在片内的RAM来设置其工作状态的,因此工作需要对片内RAM进行编程。用户可根据不同的配置模式,采用不同的编程方式。FPGA有如下几种配置模式:

(1)并行模式:并行PROM、Flash配置FPGA。 (2)主从模式:一片PRAM配置多片FPGA。 (3)串行模式:串行PROM配置FPGA。

(4)外设模式:将PROM作为微处理的外设,由微处理器对其编程。 目前,FPGA市场占有率最高的两大公司Xilinx和Altera生产的FPGA都是基于SARM工艺的,需要在使用时外接一个片外存储器以保存程序。上电时,FPGA将外部存储器中的数据读入片内RAM,完成配置后,进入工作状态;掉电后FPGA恢复为白片,内部逻辑消失。

FPGA器件内部的结构与资源分布: (1)逻辑单元与逻辑阵列

逻辑单元是在FPGA器件内部,用于完成用户逻辑的最小单元,它主要由以下部

15

西南科技大学城市学院本科生毕业论文

件组成:一个输入的查找表、一个可编程的寄存器、一条进位链和一条寄存器级连链。查找表的功能是用于完成用户需要的逻辑功能,CYCLONE II系列器件中的查找表是4输入1输出的查找表。可编程的寄存器可以被配置为D触发器、T触发器、JK触发器或者SR锁存器。每个寄存器包含有4个输入信号:数据输入、时钟输入、时钟使能输入以及复位输入。其中,内部逻辑,外部引脚能够驱动寄存器的时钟输入、时钟使能输入和复位输入、时钟输入和复位输入也可以通过全局时钟树驱动。

逻辑阵列的主题是16个逻辑单元,另外还有一些逻辑阵列内部的控制信号以及互联通路,使得逻辑阵列具有一些特性。本地互联通路是逻辑阵列的重要组成部分,它在16个逻辑单元之间起高速路由的作用,为一个逻辑阵列内部的逻辑单元提供高速的连接链路。逻辑阵列还包括一些控制信号:两个时钟信号,两个时钟使能信号、两个异步复位信号、一个同步复位信号和一个同步加载信号。

(2)内部连接通路

在FPGA器件内部存在各种连接通路,用于连接器件内部的不同模块,因为FPGA期间内不得资源是按照行列的方式分布的,所以连接通路也分为行连接和列连接两种。

(3)时钟资源

A3P250系列器件中时钟资源主要包括全局时钟树和锁相环PLL两个部分。全局时钟树负责把时钟分配到器件内部的各个单元,控制器件内部的所有单元。锁相环PLL则可以完成分频、倍频、移相等有关时钟的基本操作。

(4)内部存储器

A3P250系列FPGA的内部存储器容量有了大幅提高,做多可以达115200bit。 (5)输入/输出引脚

A3P150器件的输入/输出引脚被分为几组,每个输入/输出组都有单独的供电电源,因而用户可以为不同的输入输出组提供不同的电压,从而在不同的输入/输出组内使用不同的输入输出标准。 3.2.3 FPGA芯片的I/O口

这些I/O接口是除去FPGA的电源管脚、时钟及锁相环管脚、接地管脚及特殊应用管脚等固定用途之外,用户能够直接使用I/O管脚接口,这些接口用来提供给系统复位,A/D芯片的时钟、数据和控制信号。

I/Onum:可用作输入或输出,或者双向口,同时也可以作为LVDS

16

西南科技大学城市学院本科生毕业论文

差分对的负端。Num表示管脚序号。

在原理图的绘制之前应该通盘考虑整个系统的布线情况,然后再按照芯片手册提供的芯片的引脚逐个安排每个引脚的连接,否则将会出现在PCB布线过程中无法布通导线的情况。

在I/O线资源富裕的情况下将多余的引脚通过扩展的插针形式向外引出,这样就便于后期的升级扩展,以及系统的调试之用。

FPGA的I/O口如图8所示:

图8:FPGA的I/O口

3.2.4 FPGA的时钟源及锁相环接口电路

系统时钟由50MHz的有源晶振提供,按照模拟地和数字地分开的原则,锁相环

PLL的模拟地和数字地是通过两个网络分开进行布线的, FPGA的时钟源和锁相环接口如图9所示:

VCCA_PLL:锁相环引脚模拟电压输入。用 以向锁相环提供1.2V的模拟电压。 VCCD_PLL:锁相环引脚数字电压输入。用以向锁相环提供1.2V的数字电压。 GNDA_PLL:锁相环模拟地。 GNDD_PLL:锁相环数字地。 CLKnum:锁相环时钟输入。 CLKnum:锁相环时钟输入。

PLLnum_OUTp(I/O):锁相环时钟输出。 PLLnum_OUTn(I/O):锁相环时钟输出。

另外,FPGA的管脚中,有一些是全局时钟,这些管脚在FPGA中已经做好了时钟树。使用这些管脚作为关键时钟或信号的布线可以获得最佳的性能。

17

西南科技大学城市学院本科生毕业论文

图9 FPGA的时钟源和锁相环接口

3.2.5 FPGA的配置电路

FPGA是基于SRAM型结构的,其本身并不能固化程序。因此,FPGA需要一片Flash结构的配置芯片来储存逻辑配置信息,用于对FPGA进行上电配置。其中MSEL[1:0]:用于选择选择配置模式。FPGA有多种配置模式,比如主动、被动、快速、正常、串行、并行等,可以由此管脚进行选择。

DATA0:FPGA的串行数据输入,连接至配置器件的串行数据输出管脚。 DCLK:FPGA的串行时钟输出,为配置器件提供串行时钟。 nCSO(I/O):FPGA片选信号输出,连接至配置器件的nCS管脚。 ASDO(I/O):FPGA串行数据输出,连接至配置器件的ASDI管脚。

nCEO:下载链器件使能输出,在一条下载链中,当第一个器件配置完成后,此信号将使能下一个器件开始进行配置,下载链的最后一个器件的nCEO应悬空。

nCE:下载链器件使能输入,连接至上一个器件的nCEO,下载链的第一个器件的

nCE接地。

nCONFIG:用户模式配置起始信号。 nSTATUS:配置状态信号。 CONFIG_DONE:配置结束信号。 FPGA的配置电路图如10所示:

18

西南科技大学城市学院本科生毕业论文

图10 FPGA的配置电路

19

西南科技大学城市学院本科生毕业论文

第4章 数据采集系统的软件设计

4.1 FPGA芯片的Verilog HDL程序设计

Verilog HDL是一种硬件描述语言,是一种以文本形式来描述硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。Verilog HDL和VHDL是目前世界上最流行的两种硬件描述语言,都是在20世纪80年代中期开发出来的。前者由Gateway Design Automation公司开发。

Verilog HDL就是在用途最广泛的C语言的基础上发展起来的一种件描述语言,它是由GDA公司的PhilMoorby在1983年末首创的,最初只设计了一个仿真与验证工具,之后又陆续开发了相关的故障模拟与时序分析工具。1985Moorby推出它的第三个商用仿真器Verilog-XL,获得了巨大的成功,从而使得Verilog HDL迅速得到推广应用。1989年CADENCE公司收购了GDA公司,使得Verilog HDL成为了该公司的独家专利。

下面列出的是Ve r i l o g硬件描述语言的主要能力:

基本逻辑门,例如a n d、o r和n a n d等都内置在语言中。 用户定义原语( U D P)创建的灵活性。用户定义的原语既可以是组合逻辑原语,也可以是时序逻辑原语。开关级基本结构模型,例如p m o s 和n m o s等也被内置在语言中。提供显式语言结构指定设计中的端口到端口的时延及路径时延和设计的时序检查。可采用三种不同方式或混合方式对设计建模。这些方式包括:行为描述方式—使用过程化结构建模;数据流方式—使用连续赋值语句方式建模;结构化方式—使用门和模块实例语句描述建模。

Verilog HDL中有两类数据类型:线网数据类型和寄存器数据类型。线网类型表示构件间的物理连线,而寄存器类型表示抽象的数据存储元件。能够描述层次设计,可使用模块实例结构描述任何层次。设计的规模可以是任意的;语言不对设计的规模施加任何限制。Verilog HDL不再是某些公司的专有语言而是I E E E标准。人和机器都可阅读Verilog 语言,因此它可作为E D A的工具和设计者之间的交互语言。

Verilog HDL语言的描述能力能够通过使用编程语言接口( P L I)机制进一步扩展。P L I是允许外部函数访问Verilog 模块内信息、允许设计者与模拟器交互的例程集合。设计能够在多个层次上加以描述,从开关级、门级、寄存器传送级( RT L)到算法级,包括进程和队列级。能够使用内置开关级原语在开关级对设计完整建模。

20

西南科技大学城市学院本科生毕业论文

同一语言可用于生成模拟激励和指定测试的验证约束条件,例如输入值的指定。 Verilog HDL 能够监控模拟验证的执行,即模拟验证执行过程中设计的值能够被监控和显示。这些值也能够用于与期望值比较,在不匹配的情况下,打印报告消息。 在行为级描述中, Verilog HDL不仅能够在RT L级上进行设计描述,而且能够在体系结构级描述及其算 法级行为上进行设计描述。能够使用门和模块实例化语句在结构级进行结构描述。

在Verilog HDL 的混合方式建模能力,即在一个设计中每个模块均可以在不同设计层次上建模。Verilog HDL 还具有内置逻辑函数,例如&(按位与)和|(按位或)。对高级编程语言结构,例如条件语句、情况语句和循环语句,语言中都可以使用。可以显式地对并发和定时进行建模。提供强有力的文件读写能力。语言在特定情况下是非确定性的,即在不同的模拟器上模型可以产生不同的结果;例如,事件队列上的事件顺序在标准中没有定义。一般使用Verilog HDL是出于两种目的:一种是为了描述数字电路系统,也就是说某个数字电路系统已经客观存在了,使用Verilog HDL仅仅是为了描述这个数字电路系统的行为:另一种是为了设计一个特定功能的数字电路系统。

4.2 数据采集系统软件设计方案

FPGA采用虚拟的ADC接口与ADS8344进行通信。FPGA与ADS8344之间的通信可以采用中断方式,当数据转换好以后,BUSY引脚由高电平变为低电平从而产生中断信号。同样也可采用查询方式,不断查询ADS8344的通信寄存器的BUSY位是否为0,如果为0,则将数据缓冲器中的数据保存到数组中。本系统采用中断方式。FPGA与ADS8344之间的通信采用四线连接方式,ADS8344主要包括5个信号:CS,BUSY,DIN, D0UT,SCIK。其中,CS接地,使ADS8344总处于选通状态。

FPGA与ADS8344的连接如图9所示: BUSY FPGA D0UT DIN DCLK

图9FPGA与ADS8344的连接

21

ADS8344 西南科技大学城市学院本科生毕业论文

由于选择中断方式,所以BUSY与串行数据转并行数据模块的复位信号reset连接。DCIK的输入是分频模块提供的lkHz的频率。DOUT与串行数据转并行数据模块chuanbing的输入El连接。AINl/AIN2通道和模式寄存器;st6:将20H写进模式寄存器中,选择自校准再恢复模式;st7:将0CH写进通信寄存器中,选择了AIN1/AIN2通道和下一次操作读通信寄存器的0/DRDY位;st8:读

通信寄存器的0/DRDY位;st9:将5CH写进通信寄存器,选择AIN1/AIN2通道和下一次读数据寄存器中的数据;stl0:读数据寄存器中的值ADS8344工作状态控制。

4.3 控制模块的FPGA实现

根据FPGA在系统中功能,可以将其模块化为A/D控制及并串转换、乒乓传输控制、RAM读写控制3个部分。

采用乒乓传输结构可以保证采样和传输各自不问断的进行。乒乓传输部分包括两个开关控制以及两片高速RAM。乒乓RAM控制原理图如图10所示:

输人数据分为两路,流向由锁存器选择,当门控信号选通RAM1时,RAM1则进行数据写入,锁存器1应打开,锁存器2呈高阻状态;与此同时,RAM2则进行数据读出,锁存器3呈高阻状态,锁存器4打开。当RAM1写满后,切换到RAM2写入而RAM1读出的模式,如此循环。 FPGA的乒乓球RAM控制如图10所示:

图10 乒乓球RAM控制

存储器用于数据缓存。采用高速SRAM,能够保证在一个同步时钟周期内将8路数据依次存储到相应地存储单元,这里选用2片Is61LV256—10,最小读,写时间为10ns,每片容量为256Kx16bits。根据控制信号的不同,读写有不同的控制方式。为了减少资源消耗,提高利用率,数据存储可采用分段地址加偏移地址的方式,在地

22

西南科技大学城市学院本科生毕业论文

址生成具体代码实现时可以避免做大量的加法运算,使VHDL程序易于修改,也节省了FPGA片内资源,同时也使得各个通道的数据排列在同一个数据区。

数据宽度转换模块靠近FPGA的数据输入端,主要是转换数据传送的位宽,要使传到FPGA的数据尽量转换成与计算机总线数据宽度相同,以便提升速率。比如对于A/D转换后的8位数据,要通过32位的PCI总线上传,就要先把8位数据转换为32位的数据,这样可以最大限度地利用PCI总线的带宽。

接口控制逻辑模块靠近计算机的总线端,主要是对总线接口芯片的local端的信号进行控制,以达到通过接口芯片上传到主机的目的。比如对PCI接口芯片PCI9054而言,设计者就要读一下9054的datasheet,选定它的工作模式,然后按照该模式的时序图进行控制逻辑模块的设计,这部分可以用状态机来实现,缓存控制模块是介于数据宽度转换模块和接口控制逻辑模块之间的,也是我重点要谈的一部分。在不同的应用场合,数据格式也不同,不过一般都是一帧一帧传输的,一帧数据的起始有帧头,有些也有帧尾还有其他校验位之类的,原理上都差不多。比较通常的做法是,FPGA把接收到的数据先存储在它外挂的RAM中,RAM的容量正好等于一帧数据的大小,存满RAM之后,再通过接口芯片进行上传。如果FPGA外挂一片RAM的话,要等到它存满之后才能开始上传工作,这会让效率打折扣,对一些要求高速传输的场合会造成影响。在这里介绍一种乒乓帧,即乒乓球RAM,可以大大提升传输速度。 所谓乒乓帧,就是FPGA外挂的两片RAM。FPGA可以先通过缓存控制模块将前端传来的数据写入一片RAM,同时控制接口逻辑模块将另一片RAM的数据上传到主机,实现了读写可以同时进行,这样就节省了很多PCI总线的等待时间,使效率大大提高,可以满足一些高速传输的应用。乒乓帧的实现也比较简单,可以用数据的帧头或者帧尾做控制出发信号,因为一帧数据完全写入一片RAM的标志是本帧帧尾或者下帧帧头的到来,捕捉到这个帧头或者帧尾就可以向接口芯片发出ready信号,表示数据准备好了,可以把数据上传了,然后上传的同时下一帧数据就可以写入另一片RAM。如此反复,直到数据传完,就如同打乒乓球一样,乒乓帧的说法正是由此而来。

总之,要看你的应用,如果对带宽要求不高,可以只用一片RAM,这样可以节省成本。但速度要求高一些的应用来说,最好采用乒乓帧的做法,会为你省去很多麻烦,让你的设计比较轻松就能满足要求。

控制电路是数据采集系统的核心,该系统采用A3P250实现。该芯片IO口端口

23

西南科技大学城市学院本科生毕业论文

供电电压为3.3V,与整个系统数字逻辑一致,内核供电电压为2.5V。该系列具有丰富的I,O口资源,I,O输出缓冲器可以接收高达24mA的拉电流和48mA的灌电流。缺省时,I,O输出口驱动能力为12mA。

采用自顶而下的设计方法,分别完成各个模块的代码编写。主要完成AD采 样时钟控制、SRAM地址发生、读,写控制、并行,串行转换时钟控制、乒乓切换控制、插入通道号等功能。

POINTSYNC为A/D转换器的转换时钟,OEAD0到OEAD7是8路锁存器574的输出使能信号,LK_LATCH为锁存器的数据打入脉冲信号;A为SRAM1地址线,WREN为RA M写时钟信号,RDEN为读信号。为了保证数据的稳定性,在A/D采样脉冲POIN YNC的上升沿进行采样,经过三个周期后在下降沿将8路数据同时送入锁存器,而后锁存器的输出使能依次有效,使得数据在内部总线内传输。由于FPGA是RAM工艺,掉电后信息将丢失,为此,必须有外置存储器来保存程序。

考虑到系统对多路信号采集的同步要求,必须注意A/D采样电路参考时钟所引入的孔径抖动,尤其是在变采样频率时,在选取同步采样时钟信号时应着重 考察其稳定性和相位噪声等参数,在这样一个并行数据采集系统里主采样时钟需要被分配驱动8个高速ADC,需要通过逻辑门电路来对时钟进行扇出。而逻

辑门电路引入的孔径抖动也会降低整个系统的性能甚至带来灾难性的影响,可以选用孔径抖动更小的ECL或是PECLf-1电路来减少孔径抖动的影响。

4.4 FPGA的编程

FPGA编程使用VHDL语言,主要包括对ADS8344的数据读写、异步数据编解码等。使用FPGA很容易实现SPI接口间的通信,对ADS8344的数据读写仅用两个进程就可以实现。部分程序如下:

写数据进程 Process(ret,over,clk)

VARIABLE count8 :integer range 0 to 8 :=0; begin

If( rst = '0' )then

Dout <='0'; count8 :=0;

else (clkevent and clk = '0') then

24

西南科技大学城市学院本科生毕业论文

if (over = '1') then

Dout <='0':

Else

Dout <=ControBvte(7 - count8); count8 : = 0; end if; else

count8 : = 0; end if; end if; end process;

程序中的8位控制字节是在另一进程中根据用户要求进行配置的。控制寄存器格式如表2所示:

表2 控制寄存器

BIT7 (MSB) S BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 (LSB) A2 A1 A0 __ SGL/DIF PD1 PD0 控制寄存器各位的功能说明如下:

S——控制字节开始位。为高时,才表示输入的字节有效。 A2~AO——模拟输入通道选择位。

SGL/DIF——模拟通道输入方式选择位。为高时,为单端输入i为低时,为双端差分输入。

PDl~D0——功率管理选择位。 读数据进程

Process(ret,clk)

VARIABLE count16 :integer range 0 to 16 :=0; begin

If( rst = '0' )then

buff16 <= (others =>'0'); count16 :=0;

25

西南科技大学城市学院本科生毕业论文

else (clkevent and clk = '0') then

if ( busyread= '1') then

if count 16 = 16 then null; else

buff16 (15- count16) <=Din; count16 : = count16+1; end if; else end if; end if; end process;

ADS8344是多通道A/D转换芯片,所以数据要添加通道地址码。FPGA读取了16位数据后,进行高速数据缓冲处理,使用速率与低速异步串口速率匹配。由于读取的数据是16位,而异步数据是10位(1位起始位,8位数据位,l位停止位),因此要对数据重新编码。用FPGA实现异步数据格式非常简单。下面是异步数据编码的部分程序:

process (res ,read, pdatain) begin

if (rst = '0') then

buff40 <= (others => '0'); clsif( readevent and read = '0') then

buff40 (39 downto 30) < = \"1111\" &pdatain (15 downto 12) & '0'; buff40 (29 downto 20) < = \"11110\" &pdatain (11 downto 8) & '0'; buff40 (19 downto 10) < = \"11101\" &pdatain (7 downto 4) & '0'; buff40 (9 downto 0) < = \"11100\" &pdatain (3 downto 0) & '0'; end if; end process;

在数据编码进程中,pdatam(15 downto 0)是A/D转换出来的16位数据,分为4个异步数据帧。每帧的低4位是数据位,高4位是编码位,数据编码格式如表3所示:

26

西南科技大学城市学院本科生毕业论文

表3 异步数据编码格式

停止位 1 1 1 1 1 1 1 1 空闲位 1 1 1 1 1 1 1 1 地址位 0 0 1 1 0 1 0 1 D3 D7 D11 D15 数据位 D2 D6 D10 D14 D1 D5 D9 D13 D0 D4 D8 D12 起始位 0 0 0 0 上位PC机以指定速率接收到如表l格式的4个异步数据帧后,去掉起始位、停止位,地址位和空闲位,按地址位顺序重新排列数据,就得到D15~D0的16位A/D量化数据,PC机对数据可做进一步的处理。

4.5 PC机编程

PC机端的应用程序是在NI公司的LahView环境下开发的,主要用于对采集到的数据进行解封装,显示,控制整个数据采集系统的进行、停止,设置一些相应的参数,以及进行最后的数据分析处理。

27

西南科技大学城市学院本科生毕业论文

结 论

该系统综合运用了FPGA硬件描述语言改变电路结构、算法技术和无线点对点传输技术,将两者相结合应用在远程数据采集中。该系统用户界面友好,操作简便,精度、速度以及系统可靠性完全满足要求。该系统应用于某研究所试验中的飞艇与地面间的数据采集传输。实践表明,该系统适合用在要求采集通道多、精度高,但速率要求不高的数据采集中。由于整个系统的控制采用FPGA实现,具有组织方式灵活的特点,可以依据现场的具体情况,对FPGA的内部配置进行修改、调试。这种数据采集系统可适用于多种同步数据采集的应用场合,是一种比较理想的实时数据采集方案。该设计已经应用在多模块的红外线列探测器地面成像演示系统中,实际中的应用证明,基于FPGA的高速数据采集系统完全可以可以满足其多通道采集的要求。

28

西南科技大学城市学院本科生毕业论文

致 谢

值此论文即将完成之际,谨向四年来所有关心、帮助我的老师、同学、朋友和亲人表示诚挚的谢意。

在此论文撰写过程中,要特别感谢我的导师何云龙的指导与督促,同时感谢他的谅解与包容。没有何老师的帮助也就没有今天的这篇论文。在何老师带领下,在此,我特别要感谢我的导师何老师。从论文的选题、文献的采集、框架的设计、结构的布局到最终的论文定稿,从内容到格式,从标题到标点,他都费尽心血。没有何老师的辛勤栽培、孜孜教诲,就没有我论文的顺利完成。󰀀我不仅增长了知识,更重要的是开阔了我的思路,让我树立了良好的学术习惯及科研精神。求学历程是艰苦的,但又是快乐的,这四年来帮助我的老师同学们,有你们的鼓励和帮助,才有我大学四年的学业和本论文的顺利完成。

谢谢我的父母,没有他们辛勤的付出也就没有我的今天,在这一刻,将最崇高的敬意献给你们!

本文参考了大量的文献资料,在此,向各学术界的前辈们致敬!

29

西南科技大学城市学院本科生毕业论文

参考文献:

[1].夏宇闻.Verilog数字系统设计教程[M].北京航空航天大学出版社,2003. [2].陈福集.信息系统技术概论.高等教育出版社[M],2008. [3].阎石.数字电子技术基础.高等教育出版社[M].第五版.

[4].J.Bhasker,Verilog HDL硬件描述语言[M],北京:机械工业出版社,2002. [5]肖忠祥,数据采集原理[M].西安:西北工业大学出版社,2001. [6]ADP3338 datasheet,2000. [7]AD8138 datasheet,1999。

[8]周振安,范良龙.,数据采集系统的设计与实践[M].北京:地震出版社,2005.7 [9]宋光德,张慧,梁磊.一种基于FPGA的高速波形采集与实时数据压缩方法[J] 电子测量与仪器学报,2004(03)47-50.

[10]杨志方,王泽成,涂坦,谈宏华,曹新莉.基于FPGA的多路高速数据采集系统的实现[J].武汉化工学院学报.武汉化工学院学报.

[11]曹伟军,聂杨.ADS8344和FPGA的高精度数据采集前端[J].单片机及嵌入式系统应用,2008(01)24.

[12]蒋学东.基于FPGA实现多路模拟信号自适应采集系统[J].现代电子技术报,2010年第8期. [13]李鹏,马游春,李锦明.基于FPGA的多路数据采集模块硬件设计[J].仪表技术与传感器.2010年第3期.

[14]林长青,孙胜利.基于FPGA的多路高速数据采集系统[J].中科院上海技术物理研究所,上海200083 .

[15]黄容兰,万德焕.基于FPGA的A/D转换采集控制模块设计[J].桂林电子科技大学电子工程学院.第24卷文章编号:1004—9037(2009).

[16].江勇,段美霞.基于FPGA的多路数据实时捕获实现[J].中国电子科技集团公司第四十一研究所.文章编号:1003—0107(2009)03-0020—03.

[17].于超,陈光武,石文静.基于FPGA的信号采集及其频谱显示[J].国家绿色镀膜技术与装备工程技术研究中心,第23卷第4期.2008年8月.

[18]Intel Company.TE28F640J3A-120 Reference Manual,2005 [19]Spartan-3E Complete datasheet,2006

[20]Wayne Wolf.FPGA-Based System Design.Published by arrangement with the

30

西南科技大学城市学院本科生毕业论文

original publisher,Person Education,Inc.

[21]宋光德张慧梁磊.一种基于FPGA的高速波形采集与实时数据压缩方法[J] 电子测量与仪器学报,2004(03)47-50

[22]董代浩郭怀理曹春雨.基于FPGA的可编程SOC设计.北京航空航天大 学出版社.

31

因篇幅问题不能全部显示,请点此查看更多更全内容

Top