基于FPGA的高速数据采集卡的设计(毕业设计)_第1页
基于FPGA的高速数据采集卡的设计(毕业设计)_第2页
基于FPGA的高速数据采集卡的设计(毕业设计)_第3页
基于FPGA的高速数据采集卡的设计(毕业设计)_第4页
基于FPGA的高速数据采集卡的设计(毕业设计)_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、安徽理工大学毕业设计本科毕业设计说明书基于FPGA的高速数据采集卡的设计 DESIGN OF HIGH-SPEED DATA ACQUISITION CARD BASED ON FPGA学院(部): 电气与信息工程学院 专业班级: 学生姓名: 指导教师: 年 月 日2基于FPGA的高速数据采集卡的设计摘 要论文还从宏观和微观两个方面来分析数据采集卡的各个组成部分。从宏观上分析了采集系统中各个芯片间的数据流向、速度匹配和具体通信方式的选择等问题。使用乒乓机制降低了数据处理的速度,来降低FPGA中的预处理难度,使FPGA处理时序余量更加充裕。在ARM与FPGA通信方式上使用DMA传输,大大提高了数

2、据传输的速率,并解放了后端的ARM处理器。设计从宏观上优化数据传输的效率,充分发挥器件的性能,并提出了一些改进系统性能的方案。从微观实现上,数据是从前端数据调理电路进入AD转换器,再由FPGA采集AD转换器输出的数据,后经过数据的触发、成帧等预处理,预处理后的数据再传输给后端的ARM处理器,最后由ARM处理器送给LCD显示。微观实现的过程中遇到了很多问题,主要是在AD数据的采集和采集数据的传输上。在后期的系统调试中遇到了采集数据错位、ARM与FPGA通信效率低下,还有FPGA中预处理时序紧张等问题,通过硬件软件部分的修改,问题都得到一定程度的解决。 在整个数据采集卡的设计过程中还遇到高速PCB

3、设计、硬件设计可靠性、设计冗余性和可扩展性等问题,这些都是硬件设计中的需要考虑和重视的问题,在论文的最后一章有详细论述。 关键词:高速数据采集,触发,高速PCB设计,高速ADCDESIGN OF HIGH-SPEED DATA ACQUISITION CARD BASED ON FPGAABSTRACTDate acquisition is the premise of measure, the foundation of analysis and the beginning of cognition. Most precise device is based on the date acqu

4、isition. With the development of the electronic and digital technology, the speed of date transmission and the calculation of CPU are faster and faster; therefore the requirements of data acquisition and processing are more severe than before. This paper analyzes the system from Macro-and micro resp

5、ect. From the macro point of view it analyzes data flowing, speed matching and the selection of specific means of communication of acquisition system and so on. We adapt ping-pong mechanism to reduce the speed of analyzing data and pre-difficult of FPGA which lead to the ease of processing Timing Ma

6、rgin of FPGA. DMA transfer is used as communication between ARM and FPGA which improve data transmission rates, and liberate the back-end ARM processor. From the micro point of view, data enter into the A/D converter from the front-end conditioning circuitry, FPGA collecting data on the output of A/

7、D converter and go through the pre-operation of triggering and framing of data. After these operations, data are transmitted to the back-end of the ARM processor and then display on the LCD. A lot of difficult exited in the successful operation in the micro respect which is mainly about A/D data col

8、lection and the of transmission data. All of these issues have been settled by the revising of hardware and software. KEYWORDS:High-speed Data Acquisition, Triggering, High-speed PCB High-speed, A/D converter1绪 论1.1 引言 数计算机技术在飞速发展,微机应用日益普及深入,微机在通信、自动化、工业自动控制、电子测量、信息管理和信息系统等方面得到广泛的应用。在冶金、化工、医学和电器性能测试

9、等许多应用场合需要同时对多通道快变的模拟信号进行采集、预处理、暂存和向上位机传送,再由上位机进行数据分析处理、自动报表生成、信号波形显示和输出打印等处理。随着大规模集成电路技木的迅速发展,微处理器、存储器、输入输出等外围接口器件的性能不断提高,体积越来越小,价格越来越低,使数据采集器不断向智能化、小型化发展,使智能化仪器的研制已经成为当今研制的主要方向。模拟仪器存在输出动态范围小,对大动态信号处理线性差,因而精度低、信号不可记录等缺点。在模拟电子技术领域中,由于使用了包括模数转换器件在内的数字器件,因而在精度、简化电路结构、灵活、方便等方面取得很大的进步。模拟技术和数字技术混合运用以综合发挥两

10、者的优势己是电子技术发展的必然趋势。而且微处理器由于价格越来越低,功能也不断增强。以数字化仪器为主的数据采集处理技术越来越广泛地应用于工业过程控制及实时观察工业生产的动态及趋势。传统获取现场数据的方法,效率低、误差大、难以输入计算机。而数据采集器是一种具有现场实时数据采集、处理功能的自动化设备,它具备实时采集、自动存储、即时显示、即时反馈、自动处理、自动传输等功能。为现场数据的真实性、有效性、即时性、可用性提供了保证,并能方便输入计算机,已广泛应用在工业、农业、商业、交通、物流、仓储等行业。1.2数据采集与处理系统概述 数据采集与处理系统的任务,就是采集传感器输出的模拟信号并转换成计算机能识别

11、的数字信号,送进计算机处理、存储、传输和显示,以便实现对某些物理量的监视;其中一部分数据还将被生产过程中的计算机控制系统用来控制某些物理量。随着计算机技木的飞速发展和普及,数据采集系统也迅速地得到应用。在生产过程中,应用这一系统可对生产现场的工艺参数进采集、监视和记录,为提高产品质量、降低成本提供信息和手段。在科学研究中,应用数据采集系统可获得大量的动态信息,是研究瞬间物理过程的有力工具也是获取科学奥秘的重要手段之一。总之,不论在哪个应用领域中,数据采集与处理越及时工作效率就越高,取得的经济效益就越大。数据采集系统性能的好坏,主要取决于它的精度和速度。在保证精度的条件下应有尽可能高的采样速度,

12、以满足实时采集、实时处理和实时控制对速度的要求。1.3 数据采集卡主要的性能指标 根据设计要求,本课题研制的数据采集卡主要有以下的技术指标和要求: 1. 单通道模拟输入,信号最高采样率为250MSPS; 2. 分辨率:8bits 3. 单通道模拟输出,14位分辨率,采样率最高175MSPS;4. 支持电平、上升/下降沿等常见触发;5. 支持RS232输出;6. 八路数字I/O输出。1.4 本文主要研究工作论文的主要任务是基于FPGA的高速数据采集卡的硬件设计,并且针对具体的方案讨论如何提高采集的性能。这一部分在今后的进一步研究中有重要的意义,具体的研究内容如下: 1. 数据采集卡的整体设计方案

13、选择和芯片选型。 2. 各芯片间数据通信方案选择,各部分处理速度分析。 3. 高速PCB设计与调试。 4. 前端采集与FPGA预处理,整个系统的逻辑控制。 5. 高速DAC内部寄存器配置,控制模拟数据输出。 2 系统设计概述和主要器件选型2.1 系统设计方案整个系统是由前端模拟通道、触发电路、FPGA数据采集预处理、数据模拟输出四部分组成。FPGA数据采集预处理分为A/D数据采集、触发控制、帧控制、SDRAM控制器四个部分,模拟数据经过A/D装换后在FPGA中缓冲,缓冲之后使用触发控制将采集到的数据分成512个数据点组成的数据帧,数据按照帧的顺序传输,经过SDRAM存储后。具体的数据采集系统的

14、硬件结构图如下图2-1所示:图2-1 数据采集卡硬件结构图2.2 ADC芯片选型A/D转换器是整个采集系统的核心,系统前端模拟电压调理电路、FPGA数据采集和后端的采集控制部分都与A/D直接相关,A/D芯片的选择不但关系到系统设计的性能,而且直接决定了整板设计的难度。基于综合考虑我们选用了Analog Device公司生产的AD9480芯片,AD9480采样率高达250MSPS、8位转换精度,同时保持士0.25LSB优良的微分线形误差(DNL)。该DNL技术指标比具有相同转换速率的同类IC高两倍。为了减小系统的功耗,芯片采用3.3 V电源供电,工作时钟为差动解码时钟,内置有基准电压源和采样跟踪

15、保持电路。AD9480支持多路分配的TTL/CMOS输出逻辑和低电压差分信号(LVDS)输出。在CMOS多路分配模式下,AD9480可以交叉存储模式或并行模式以半时钟速率在两个8bit通道中移动数据。当工作在LVDS输出模式时,AD9480通过单一输出通道以全时钟速率输出数据,以达到最佳的输出性能。 由于AD9480在DNL方面的优良性能,使其适合运用在数字示波器和网络分析仪等要求精确明显输入信号较小的应用中,同时也适合要求高采样率和高宽带宽的应用场合。因此,AD9480是本设计中所需ADC的最佳选择。 AD9480的模拟输入驱动着一个高带宽的跟踪保持电路;然后经过一个8bit的ADC内核对其

16、信号进行采样、量化;最后把量化的数字信号通过LVDS输出。同时内部还包括了一个可以接受TTL、CMOS、LVPECL等输入电平的基准电压源,以确保AD9480更容易的使用。由于PCB设计时使用两层板设计,为了保证输出信号的回流面积尽可能小,数据输出和采集时钟都选择LVDS。 2.3 DAC芯片选型为了输出高性能的模拟信号,DAC采用采样率高达175M的高速DAC。AD970X系列DAC针对低功耗特性进行了优化,同时仍保持出色的动态性能,适合用于手持便携式仪器等需要有效地合成宽带信号的场合。AD9707 精度高达14位 ,采样率为175MSPS,内部集成边沿触发式输入锁存器,1V温度补偿带隙基准

17、电压源和自校准功能,使AD9707能提供真14位INL与DNL性能。AD9707还具有共模电位移动能力,当与其他模拟器件连接时无需电平移动电路;并简化了模拟电路的设计并且降低了小型便携式设计中的印制电路板面积。AD9707的具体特性如下: 1.低电压:完整的CMOS DAC操作电压3.6V-1.7V。3.3V时功耗50mW,1.8V时功耗12mW。DAC满刻度电流可以为低功耗操作而减小。可以为休眠和掉电模式提供低功耗的空闲周期。2.自校准:自校准可以正确发挥AD9707的14-bit INL和DNL 性能。3.二进制补码支持:数据输入支持二进制补码或直接二进制数据编码。4.灵活的时钟输入:可选

18、择的高速单端、差分 CMOS 时钟输入。 支持175MSPS转换速率。5.设备配置:设备可以通过引脚短接配置,也可以通过SPI控制进行高级编程。6.易与其它元件连接:可调节的通用输出模式易于和其他0-1.2V的信号连接。7.片上参考电压:AD9707 包含一个1.0V的内部基准电压参考。2.4 FPGA芯片在现代采集系统中FPGA往往被用做通信系统的中枢,负责了大量的数据采集和前期处理和控制工作,FPGA作为系统的中间级主芯片承担着承前启后的重大任务。常见的FPGA一般由六部分组成,分别为可编程输入/输出单元、基本可编程逻辑单元、嵌入式块RAM、丰富的布线资源、底层嵌入功能单元和内嵌专用硬核等

19、。1.可编程输入/输出单元 大多数FPGA的I/O单元被设计为可编程模式,即通过软件的灵活配置,可适应不同的电器标准与I/O物理特性;可以调整匹配阻抗特性,上拉下拉电阻;可以调整输出驱动电流的大小等。 2.基本可编程逻辑单元 FPGA的可编程逻辑单元基本是由查找表(LUT)和寄存器(Register)组成的。FPGA一般依赖寄存器完成同步时序逻辑设计。一般来说,比较经典的基本可编程单元的配置是一个寄存器加一个查找表。学习底层配置单元的LUT和Register比率的一个重要意义在于器件选型和规模估算。器件选型是一个综合性问题,需要将设计的需要、成本的压力、规模、速度等级、时钟资源、I/O特性、封

20、装、专用功能模块等诸多因素综合考虑。 3.嵌入式块RAM 目前大多数FPGA都有内嵌的块RAM。嵌入式块RAM可以配置为单端口RAM、双端口RAM、伪双端口RAM、CAM、FIFO等存储结构。根据设计需求,块RAM的数量和配置方式也是器件选型的一个重要标准。 4.丰富的布线资源 布线资源连通FPGA内部所有单元,连线的长度和工艺决定着信号在连线上的驱动能力和传输速度。根据工艺、长度、宽度和布局位置而划分为以下不同的等级: 1)全局性的专用布线资源:以完成器件内部的全局时钟和全局复位/置位的布线; 2)长线资源:用以完成器件Bank间的一些高速信号和一些第二全局时钟信号的布线;短线资源:用来完成

21、基本逻辑单元间的逻辑互连与布线; 其他:在逻辑单元内部还有着各种布线资源和专用时钟、复位等控制信号线。 由于在设计过程中,往往由布局布线器自动根据输入的逻辑网表的拓扑结构和约束条件选择可用的布线资源连通所用的底层单元模块,所以常常忽略布线资源。其实布线资源的优化与使用和实现结果有直接关系。 5.底层嵌入功能单元 底层嵌入功能单元的概念比较模糊,这里我们指的是那些通用程度比较高的嵌入式功能模块,比如PLL(Phase Locked Loop)、DLL(Delay Locked Loop)、DSP和CPU等。随着FPGA的发展,这些模块被越来越地嵌入到FPGA的内部,以满足不同场合的需要。 6.内

22、嵌专用硬核 内嵌专用硬核与“底层嵌入单元”是有区别的,这里指的硬核主要是那些通用性相对较弱,不是所有FPGA器件都包含硬核。如高速串并收发单元、PCI-e接口硬核等。 系统所选用的EP3C25Q240C8N是Altera Cyclone系列的第三代产品。Cyclone III系列FPGA前所未有地同时实现了低功耗、低成本和高性能,进一步扩展了FPGA在成本敏感的大批量领域中的应用。EP3C25拥有24624个逻辑单元,内部集成66个M9K 嵌入式存储器模块,内部RAM资源多达608Kbits,66个嵌入式18*18乘法器,4个内部PLL,最大用户I/O引脚数量148个,83个差分通道。系统中A

23、D输出为LVDS,因此需要多达十组的LVDS通道,数据缓冲需要大量的内部RAM资源,EP3C25内部的66个M9K资源可以很好的满足设计要求。AD采样时钟由FPGA片内PLL倍频获得,而且多个片内PLL更加有利于AD时钟的分频与控制。2.5 FPGA的设计步骤1.电路设计与输入电路设计与输入是指通过某些规范的描述方式,将工程师电路构思输入给EDA工具。常见的使用HDL语言编程和原理图输入两种方式。2.功能仿真使用HDL描述完电路后,要用专业的仿真工具对设计进行功能仿真,验证电路功能是否符合设计要求。功能仿真一般称为前仿真,主要使用的软件是ModelSim。通过仿真能及时的发现设计中的错误,加快

24、设计进度,提高设计的可靠性。3.综合优化综合优化其实就是将我们编写好的HDL语言用FPGA内部的与非门、触发器和RAM等基本逻辑单元实现,并按照目标与要求优化所生成的逻辑连接。通常我们的做法是直接使用器件厂商自带的综合工具进行综合,在根据目标优化方面做的很不足。常见的综合优化工具有Synplicity公司的Synplify。4.综合后仿真综合完成后需要检查综合结果是否与原设计一致,那就要做综合后仿真,它一般就是指带门延时的仿真。特别是当遇到布局布线后仿真时发现有电路结构与设计意图不符的现象,则常常要回溯到综合后仿真以确认是否是由于综合歧义造成的问题。5.实现与布局布线基本逻辑单元组成的网表,它

25、与芯片的实际结构还是有差别的,这时需要使用FPGA厂商自己的工具,根据所选芯片的型号,将综合输出的逻辑网表适配到具体FPGA上,这就是实现过程。布局是指将逻辑网表中的硬件原语或者底层单元合理的适配到FPGA内部的固有硬件结构上,布局的优劣对设计的最终实现结构(在速度和面积两方面)影响很大;布线是指根据布局的拓扑结构,利用FPGA内部的各种连线资源,合理正确连接各个元件的过程。在高速电路设计中,对时序约束和布局布线有很高的要求,这是在设计初期就已经决定好的。6.时序仿真和验证将布局布线的延时信息反标注到网表中,进行的仿真就叫时序仿真,也称为后仿真。7.板级仿真与验证在有些高速设计的情况下需要使用

26、第三方的板级验证工具进行仿真验证,如Mentor Hyperlynx等可以通过对设计的IBIS、HSPICE等模型的仿真,能较好的分析高速设计的信号完整性、电磁干扰等电路特性。8.调试与加载配置将配置文件加载到FPGA中,再使用示波器、逻辑分析仪等仪器分析输出信号,在一些简单的设计中可以使用QuartusII内嵌的SignalTapII对设计进行在线逻辑分析。2.6 FPGA核心电路设计FPGA各系列的最小系统板的单元组成基本相同,仅具体电路中存在着差异。一般可以把其组成分为七部分:FPGA主芯片、PROM存储芯片、电源电路、全局时钟发生电路、JTAG接口电路、下载模式选择电路和接口引出插针。

27、以该最小系统板作为控制核心,外加所需的接口电路就可以实现各种设计。整个系统的FPGA部分都是围绕EP3C25设计,其他外围的器件的选择都是根据它的特点设计。由于EP3C25的配置文件大小为5.8M,因此外围的PROM配置芯片选用EPCS16;FPGA除了核心供电1.2V外,I/O供电上还必须区分,因为FPGA的bank5和bnak6与AD的LVDS直接相连,因此在这两个bank上的I/O供电必须是2.5V;全局时钟的发生电路主要由50M的有源晶振组成,在晶振电源上加入磁珠和电容用来吸收和滤除高频分量,保证电源输入的稳定,时钟输出端串联一个33电阻保持时钟输出信号完整性;JTAG电路中的VCCI

28、O必须使用2.5V与其他的电路使用3.3V不同;配置方式的选择依然可以通过MSEL0.2的不同接法决定。具体的FPGA外围电路见附录2。3 数据采集与触发电路设计FPGA高速采集和采集后的触发控制是系统设计的关键部分,它直接决定了数据的正确性和稳定性。本章主要是对FPGA数据采集、触发控制和存储器控制三个方面加以论述,再结合实验中遇到的问题,对FPGA数据采集和触发控制中的关键部分进行分析,来达到高效高速采集的目的。3.1 AD前端调理电路前端调理电路目的就是将被测信号调理到AD9480模拟输入的电压范围。被测信号经过前端阻抗变换网络之后,进入后级运算放大器,后级选择高阻抗低噪声运算放大器AD

29、A4817,输入阻抗高达500G。后级信号经过调理之后输入AD8351中,AD8351主要是将输入的单端信号转换为AD9480需要的差分信号。与多数高速、高动态范围的A/D一样,AD9480也是采用差分模拟输入。模拟信号采用差分输入可以改善很多性能,其中最主要的一点就是差分结构对模拟输入信号的偶次谐波有较高的抑制性,而且对共模噪声有着非常好的抑制作用。 设计中使用AD8351将单端信号转换为差分输出来驱动AD9480。AD8351是ADI公司推出的一款低功耗、高带宽差分放大器。它采用10引脚的MSOP封装,在宽泛范围内能具有良好的低噪声和失真特性。因此AD8351是设计高精度采样系统的最佳选择

30、, AD8351还可实现信号的单端变差分。下图3-1为AD8351单端转差分的典型电路:图3-1 AD8351单端转差分的典型电路模拟信号经过AD8351转换为差分信号之后进入AD9480。设计中可以使用S1引脚来选择数据输出格式和占空比,当输出LVDS格式数据时,LVDSBIAS必须通过3.75K接地,来调整LVDS输出电流。可以由SENSE来决定满刻度的大小,通过变化跳线来改变SENSE引脚的电压来实现不同的满刻度范围,SENSE默认为接地,表示ADC使用内部1V作为满刻度范围,同时外部参考引脚VREF接地。下图3-2为AD9480功能模块图,通过配置上述功能引脚后AD9480即可以正常工

31、作。下图3-2为AD9480功能模块图: 图3-2 AD9480功能模块图3.2 FPGA数据采集设计中使用FPGA内部的RAM来缓冲AD输出的数据,EP3C25内部的RAM资源总共有608Kbits,使用这些内部的RAM作为数据缓冲单元,既可以节约成本,又可以提高硬件采集的性能。使用FPGA内部的RAM资源,设计中可以非常容易的构建前端数据缓冲所需要的双口RAM或者FIFO。FPGA内部RAM的存在形式一般有以下几种,分别为512bit的M512,4kbit的M4K,以及9kbit的M9K。EP3C25内部就有66个M9K 嵌入式存储器模块,它们均匀散布在FPGA的各个bank中,用M9K实

32、现真正的双口RAM。C8等级的FPGA实现双口RAM的最高的工作为238MHZ,而AD9480最大的采样率为250M,因此使用FPGA来缓冲数据完全可以满足设计要求。在设计之前就要根据采集信号的频率和AD采样频率来综合决定使用RAM的大小,过多的使用M9K模块会使得后期设计资源短缺,过少的使用M9K模块会使得一次采集数据不够。FPGA内部的M9K模块数量是固定的,分布在FPGA内部的区域也是固定的,如果一味的追求大容量的数据缓冲而使用多个不同位置的M9K模块,在各个模块之间可能也会出现难以控制的时序问题。 由于数据采集卡上的FPGA部分可以由ARM处理器灵活的配置,因此在系统设计上我们就有更大

33、的灵活度。系统调试时使用一个M9K模块组成1024*8bits的双口RAM, 作为前级的数据缓冲模块,下图3-3为典型的双口RAM模块图。图3-3 典型的双口RAM模块图AD转换后一共输出为9路LVDS信号,8路LVDS数据输出和1路LVDS同步时钟输出,输出的频率与AD的采样频率一致。设计使用Altera公司自带IP库中的ALTIOBUF可以方便的将9路LVDS转换为单端信号,分别作为双口RAM的八位的数据线data7.0和写入时钟wrclock。由于AD数据采集具有连续性,数据和时钟是同步的,因此我们可以使用时钟累加,来设计出与数据一致的地址信号。设计中使用AD输出的同步时钟,在每次时钟上

34、升沿时进行加一操作,输出即为十位二进制的地址线。通过上面这个简单的双口RAM就可以实现AD数据的采集。 在实验的过程中我们会遇到采样点过多和采样点过少的问题。当被测信号的频率较低,而AD采样率固定时,采集的1024点数据可能都不够采集被测信号的一个周期,这就产生了信号的过采样;而当被测信号的频率较高,而AD采样率固定时,采集的1024点数据可能采集了多个周期,这就产生了信号的欠采样。为了很好的解决上述两个问题,设计之前就必须对被测信号和AD的实际能力进行分析,AD的采样率最高为250M,而实际中考虑到可靠性和设计难度,我们选用的最高频率为200M,以100M的采样率为基准频率对被测信号进行采样

35、,为了保证显示的效果,默认显示时出现的信号波形四个周期。在数据采集的过程中先使用100M作为默认的采样率,采集完的数据经过FPGA内部的测周期模块分析之后,对AD的采样率进行重新选择,通过分频和倍频输出合适的采样率。3.3 触发分析触发的目的是同步,触发的过程是比较。当触发条件与我们的被测信号一致时,就启动触发信号。比较的两端一个是原始的被测信号,另一个是我们人为设置的触发量,现在我们就从这两个量入手分析一下触发的类型和结构。图3-4 基本的触发结构图基本的触发结构图如上图3-4所示,输入信号有模拟和数字两种形式,因此与之比较的触发信号也对应的有模拟和数字两种形式。触发方式很容易的被分为模拟触

36、发和数字触发两种,模拟触发的触发信号一般来自外部,因此大部分的模拟触发都是外触发;而数字触发一般都是在FPGA中比较的,比较的信号都是数字量,而且是通过外部控制信号量化到处理器内部形成,因此内触发一般都是数字触发。系统中的模拟触发有电平触发,数字触发有边沿触发和脉宽触发等。3.4 触发控制典型的触发信号为比较器输出的脉冲信号,触发控制是根据触发脉冲的起始位置,采集起始位置之后的一帧数据,由于每一次触发信号产生时,采集的数据都是在一个固定的值,因此将每次触发后的512个数据点组合为一帧,在显示上就会出现一个稳定的数据波形。整个控制和实现上述功能的过程就是触发控制。本系统中在前端数据缓冲部分使用1

37、024*8bit的双口RAM,而一个数据帧我们根据显示的数据量选择512*8bit的双口RAM。触发控制就是要在触发信号出现后,将连续512个地址上的数据送到512*8bit的帧存储器中。具体的触发控制电路如下图3-5所示:图3-5触发控制FPGA顶层原理图3.5 SDRAM控制器的设计同步动态随机存储器(SDRAM)具有存储容量大、价格便宜等特点,与SRAM相比SDRAM需要额外的控制逻辑和刷新机制,这使得SDRAM的存储速度一般而且增加了SDRAM设计的难度。由于SRAM结构上的瓶颈,很难用于大容量存储,而随着SDRAM的工艺和技术不断改进,陆续出现了DDR3、DDR5 SDRAM,它们的

38、频率都在1GHZ以上,甚至高达4GHZ,单片容量已达到2GB,价格也相对低廉,因此SDRAM成为了高速大容量数据存储的首选。3.5.1 SDRAM工作原理SDRAM是具有同步接口的高速动态访问存储器,SDRAM的同步接口和完全流水线的内部架构允许极快的数据速率,SDRAM器件内部由多个“体(BANK)”的组成,通过行地址和列地址来寻址,存储体的行和列地址的位数取决于存储器的容量。 SDRAM的控制是通过总线命令实现的,命令由RAS(行地址选通), CAS(列地址选通), 和 WE(读使能)信号联合产生,例如,在某个时钟周期时,如果3个信号均为高电平,表示发出空操作命令(NOP), NOP命令时

39、片选信号也无效。SDRAM的访问是通过一系列命令进行的,SDRAM上电后,必须首先按照预定的方式进行初始化才能正常的运行。SDRAM初始化操作过程如下: 上电并且时钟稳定后至少等待100us,然后至少执行1条空操作;对所有页执行预充电操作,这个期间SDRAM内部寄存器单元控制逻辑处于空闲状态,随后向各页发出八条刷新操作指令;最后执行SDRAM工作模式的设定LMR命令用来配置SDRAM工作模式寄存器,写完模式寄存器以后,初始化过程完成。 在行地址被选定并且相应的行被打开之后,就可以进行读操作了。SDRAM读、写操作过程基本相识,根据实际应用的需要,发出读、写指令。SDRAM可实现突发式读写,支持

40、的突发长度可配置为1个、2个、4个、8个数据周期或者页模式。并且突发的模式可以配置为顺序或者间隔型。对SDRAM进行访问的最主要操作就是读RD和写WR操作。SDRAM在进行读写操作时,必须要先进行页激活ACT操作,以保证存储单元是打开的,以便从中读取地址或者写入地址,关闭存储单元通过预充电PCH命令实现。在进行写操作时,内部的列地址和数据就会被寄存;进行读操作时,内部地址被寄存,等待CAS 延迟时间(通常为13个时钟周期)后,读出的数据出现在数据总线上,具体时序详见SDRAM数据手册。 SDRAM必须通过不断的刷新来保持数据,刷新可以分为自动刷新(Auto Refresh)和自刷新(Self

41、Refresh)。自动刷新时,刷新所需的地址由SDRAM内部的刷新控制器提供。自刷新主要用于在外部时钟失效时保存SDRAM内的数据。自刷新被激活时,其它的任何控制都无效,一旦时钟恢复,自刷新就会退出,又必须开始自动刷新以保持数据。SDRAM的操作主要通过控制信号RAS、CAS和WE的不同状态组合来实现。3.5.2 SDRAM控制器结构SDRAM控制器针对SDRAM的指令操作特点,为SDRAM提供同步命令接口和时序逻辑控制,下面将以ALTERA公司的Cyclone系列FPGA为例,主机系统时钟为133MHz,使用三星公司的K4S641632E,256MByte SDRAM,介绍SDRAM控制器的

42、具体设计方法,下图3-5为SDRAM控制器的系统结构图。图3-6 SDRAM控制器系统结构SDRAM控制器由3个子模块组成:控制接口,命令通道和数据通道。控制接口模块从主机接收命令和相关的存储地址,同时对命令解码后传送给命令模块,命令模块从控制接口模块接收命令和地址,生成合适的命令给SDRAM器件,数据通道处理读写命令时的数据通路操作。1) 控制接口模块接口控制模块主要实现的功能包括:通过命令输入端口CMD2:0和地址输入端口ADDR11:0从控制器顶层模块中接受命令和相对应的访问地址,并对CMD2:0进行译码,产生NOP、WRITEA、READA、REFRESH、PRECHARGE命令,然后

43、将解码后的命令传送到命令模块。下图3-7为接口模块的结构图。图3-7 接口模块的结构图2) 命令生成模块 图3-8 是命令生成模块,命令模块接收控制接口模块输出的已经解码的命令, 和周期性输出的刷新请求,并产生合适的命令给SDRAM 器件,模块含有一个简易的仲裁电路用于仲裁主机的命令和刷新控制逻辑所产生的刷新请求。从刷新控制逻辑电路发出的刷新请求比主机接口的命令的优先级别高。如果主机命令和隐含的刷新操作同时出现,仲裁电路在刷新操作完成之前就不发出CMDACK 应答。如果主机操作在进行中,收到了刷新命令,刷新操作将延时到主机操作完成后执行。图3-8 命令生成模块3) 数据路径模块 数据路径模块主

44、要是在writea 和reada 命令期间处理数据的路径操作。模块的结构图如图3-9 所示。DQ 是双向数据线,用来传输从SDRAM 读出数据和向SDRAM 写入的数据。无论是数据在读出还是写入时,都是在OE 有效,即OE 为高电平时才能进行传输。DM是由主机输出的数据掩码,通过DQM输出到SDRAM的LDQM和UDQM管脚,进而控制SDRAM I/O缓冲的低字节和高字节。图3-9数据路径模块4 各芯片间的数据传输与处理随着芯片技术的不断提高,芯片的处理速度越来越快,总线的吞吐量越来越大,几年前的芯片、传输方式和接口协议很难满足新一代数据采集系统的要求。数据采集卡作为电子行业中最基础的部分,它

45、更新换代的速度也紧跟芯片更新的步伐,新高速器件的使用也给数据采集系统设计带来了很多挑战。 在高速数据采集系统中,芯片决定了系统的最大指标,但不是每个系统都可以将硬件性能和特点发挥出来,必须根据系统中各级芯片的特点来对系统各级的速率进行划分,各级之间采用不同的处理才能使芯片的作用最大可能的发挥。本设计中设计到的器件主要有A/D转换器、D/A转换器、FPGA、SDRAM存储器和后端的ARM处理器,它们的处理速度都不一样,各芯片间数据传输的效率就成了设计中的关键部分。4.1 采集卡各芯片速度等级的划分和数据流向FPGA是当前运用最广泛的嵌入式处理器,由于结构上的差别它们被使用在不同的场合。FPGA它

46、的结构不同于一般的CPU,它是由基础的门级电路和存储器组成的,所有的内部功能都是可以编程控制的,于是它有了其他CPU所不具备的灵活性,我们可以在FPGA中构建我们自己的硬件模块,可以按照系统的特点来分配FPGA资源。 按照整个系统各部分的速度,我们将系统简单的划分为两个速度等级,不管是程序设计还是PCB设计都要充分的考虑到各个速度等级的特点,才能设计出合理可靠的系统,具体划分情况如下图4-1所示:图4-1 系统速度等级划分图为了提高采集、存储和显示的效率,根据各个芯片的特点,运用了在FPGA中构建一个多缓冲单元的乒乓机制采集模块,提高FPGA采集的效率,并降低了中间级传输的速度,利于中间级的数

47、据处理的处理方式来提高效率。4.2 数据的模拟输出4.2.1 模拟输出电路设计模拟输出部分是由AD9707、低电压异或门76VX86和运放ADA4899组成。测试时可以通过跳线J1选择AD9707的工作模式,J1选择高电平时为PIN模式,低电平时为SPI模式,出现高电平脉冲时复位内部寄存器。电路图中AD9707的输入时钟选择差分时钟, AD9707输出选择单端输出,正向输出端IOUTA与ADA4899的反相输入端相连,反向输出端IOUTB接地,内部基准电压源REFIO与ADA4899的同相输入端相连。运算放大器ADA4899将AD9707单端输出的电流变化转换为电压变化,外部使用内部基准电压源

48、时REFIO引脚需用一个0.1F电容接地。基本的硬件电路图如下图3-3所示:图4-2 AD9707基本外围电路4.2.2 AD9707内部寄存器配置在AD9707测试之前必须按照外围电路的设计配置好AD9707工作的状态。AD9707有两种配置模式可供选择:PIN模式和SPI模式。设备可以通过PIN模式进行简单配置,也可以通过SPI模式进行高级配置。当用户使用自校准等高级功能时,PIN模式就无能为力了,必须使用SPI模式配置AD9707内部寄存器。 SPI(Serial Peripheral interface)串行外围设备接口,主要应用在 EEPROM,FLASH, AD/DA转换器。SPI

49、是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便。正是出于这种简单易用的特性,现在绝大多数芯片都集成SPI通信协议。SPI的通信原理很简单,它是主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上单向传输时3根也可以。AD9707的SPI的接口由SCLK(串行时钟),SDIO(数据输入/输出)和CSB(片选)三根信号线组成。串行时钟SCLK用来同步数据并从AD9707中运行内部状态机,SCLK的最大频率是20MHZ。串行数据输入输出SDIO作为双向的数据总线用于发送或接受数据。片选信号CS

50、B低电平时启动通信周期,它允许多个设备在同一条通信线路上使用。当CSB高电平时SDIO引脚为高阻抗状态,片选信号在整个通信周期必须保持低电平。 4.3.使用FPGA配置AD9707内部寄存器 FPGA的使用非常灵活,同一片FPGA通过不同的程序可以产生不同的电路功能。下面就是使用VHDL语言编写一个SPI控制器,来发送配置数据给AD9707。 当仅需要向AD9707中写入数据时,使用SPI时钟线SCLK,SPI数据线SDIO和片选线CSB,三条信号线即可通信。根据图4-7中的写入时序编写程序,具体代码如下: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;

51、USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY SPI IS GENERIC(DATA:STD_LOGIC_VECTOR(11 DOWNTO 0):=110101101011); -配置数据 PORT(SCLK:IN STD_LOGIC; CSB, SDIO: OUT STD_LOGIC); END SPI; ARCHITECTURE BEHAVE OF SPI IS SIGNAL COUNT : STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL REG : STD_LOGIC_VECTOR(11 DOWNTO 0); SIGNAL X

52、: STD_LOGIC; BEGIN PROCESS(SCLK,X) -产生片选信号CSB BEGIN IF (SCLKEVENT AND SCLK=1) THEN IF(COUNT1111) THEN COUNT = COUNT +1; X = 0;ELSE COUNT 1); X = 1; END IF ; END IF ; CSB = X; END PROCESS; PROCESS(SCLK) -从SDO串行发送配置数据 BEGIN IF(SCLKEVENT AND SCLK=1)THEN IF(COUNT=0001)THEN REG=DATA; ELSE REG=REG (10 DOW

53、NTO 0) & 0; END IF; END IF; END PROCESS; SDIO =REG (11); END BEHAVE; 程序编译仿真后整个程序综合之后仅占用4个逻辑单元,使用类属参数定义配置数据,方便用户按照自己的设计随意修改。由于AD9707与FPGA直接相连,用FPGA直接配置AD9707方便很多,适合于我们的测试平台。通过FPGA中构建的DDS发送波形数据,即可构成一个简易波形发生器,产生一些常见的波形。5 高速PCB设计与调试 数据采集卡的整板PCB设计是高速混合PCB设计,电路中既有前端的模拟输入电路,又有后端的数字处理电路。输入模拟信号的频率达到50M,而AD时钟

54、的频率高达200M以上,DA的时钟也高达175M,因此为了保证PCB的质量,在混合信号PCB设计时需要注意很多方面20,总结起来有以下几点: 1. 将PCB分区为独立的模拟部分和数字部分。 2. 合适的元器件布局。 3. 在电路板的所有层中,数字信号只能在电路板的数字部分布线。 4. 在电路板的所有层中,模拟信号只能在电路板的模拟部分布线。 5. 实现模拟和数字电源分割。 6. 布线不能跨越分割各部分之间的间隙。 7. 必须跨越分割电源之间间隙的信号线要位于紧邻大面积地的布线层上。 8. 采用正确的布线规则。 5.1 高速PCB的电源部分设计 整板的电源种类多,稳定度和输出电流大小的要求也都不

55、一样,采用ATX开关电源作为系统供电,它可以提供多路不同电平的输出,并可提供较大的电流,完全符合系统电源设计,而且简化了电源部分设计。采集卡的各部分电源通过ATX开关电源线性分压得到,它分为模拟供电和数字供电,而数字供电又分为ARM供电和FPGA供电。ARM供电由两个AMS1117分别供给3.3V的I/O供电和1.8V的ARM核心供电。FPGA供电分为I/O供电、LVDS供电、核心供电和PLL供电四部分。I/O供电使用LM2596最大输出电流为3A可以保证FPGA及外围电路的供电;由于AD数据输出格式为LVDS,FPGA接收端所在的I/O供电必须为2.5V,设计中使用AMS1117供电;FPG

56、A的1.2V核心供电也使用AMS1117来供电;FPGA的内部PLL供电承担着AD时钟输出的任务,数字锁相环对电源的要求比较严格,高频噪声很容易从锁相环的电源端进入AD时钟而干扰整个系统的运行,因此锁相环供电使用了磁珠和型滤波电路。模拟部分供电主要用于供给前端的AD和远算放大器,分别使用一片7805和一片7905给运算放大器的5V供电,使用一片AMS117给AD供电。 在电子设备工作时会存在高频噪声,主要是电源模块工作时的高频开关和负载频繁变化造成的,因此在PCB供电部分,特别是PLL、AD和DA供电部分必须加入电源滤波。以FPGA内部锁相环供电为例,具体的电路如下图5-1所示:图5-1 PLL供电中的滤波部分电源滤波器能够不让无用的信号通过,把它反射回信号源,并且能把无用信号消耗掉。滤波器因此可以分为吸收式滤波器和反射式滤波器。吸收式滤波器是将不希望的信号吸收掉,从而达到滤波的效果,吸收式滤波器一般由铁氧体材料制成,在PLL供电部分就使用了铁氧体磁珠将高频噪声吸收,如上图中的L1。反射式滤波器一般是由电容和电感组成,能阻止无用的信号通过,并且将无用的信号反射回信号源。在AD和DA部分供电中使用的型滤波就是典型的反射式滤波器。5.2 高速PCB

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论