《基于FPGA的ADC采集系统的设计(共42页).doc》由会员分享,可在线阅读,更多相关《基于FPGA的ADC采集系统的设计(共42页).doc(42页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上摘 要基于FPGA在高速数据采集方面有单片机和DSP无法比拟的优势,FPGA具有时钟频率高,内部延时小,全部控制逻辑由硬件完成,速度快,效率高,组成形式灵活等特点。因此,本文研究并开发了一个基于FPGA的数据采集系统。FPGA的IO口可以自由定义,没有固定总线限制更加灵活变通。本文中所提出的数据采集系统设计方案,就是利用FPGA作为整个数据采集系统的核心来对系统时序和各逻辑模块进行控制。依靠FPGA强大的功能基础,以FPGA作为桥梁合理的连接了ADC、显示器件以及其他外围电路,最终实现了课题的要求,达到了数据采集的目的。关键词 FPGA A/D转换 专心-专注-专业A
2、bstractFPGA is better than microcontroller and DSP in high speed data acquisition, FPGA has higher internal clock frequency, smaller delay than DSP,and all the control logic of FPGA is completed by hardware, FPGA has fast speed, high efficiency, and so on. Therefore, this paper introduces and develo
3、ps a data acquisition system which is based on FPGA.The I/O pin of FPGA can be defined yourself without fixed limit,its very flexible. This design of data acquisition system use FPGA as the data acquisition system core to control the timing and the logic control module. Relying on the powerful funct
4、ion of FPGA, FPGA can connect ADC, display devices and other peripheral circuits, finally we can achieve the requirements of the subject, and the purpose of the data collection。Key words FPGA A/D目 录基于FPGA的ADC采集系统的设计第1章 绪论1.1 课题背景及国内外研究概况传统的数据采集系统,通常采用单片机或DSP作为主要控制模块,控制ADC,存储器和其他外围电路的工作。随着数据采集对速度性能的要
5、求越来越高,传统采集系统的弊端就越来越明显。单片机的时钟频率较低且需用软件实现数据采集,这使得采集速度和效率降低,此外软件运行时间在整个采样时间中也占很大比例,而FPGA有单片机无法比拟的优势。FPGA时钟频率高内部时延小,全部控制逻辑由硬件完成,速度快,效率高1。数字信号处理是以数字形式对信号进行采集,变换,滤波估值,增强,压缩,识别等处理,从而得到符合需要的信号形式。而信号的处理目前有两种方式:使用信号处理器DSP通过软件编程实现;应用FPGA实现。利用软件编程虽然有很大的灵活性,但DSP所有指令的执行时间均为单周期,而且受到串行指令流的限制每个时钟周期所有的操作数有限难以实现高速大规模运
6、算。现在大容量,高速度的FPGA采用硬件描述语言VHDL实现整个系统,允许设计人员利用并行处理技术实现高速信号处理算法并只需单个处理器就能通过模块化设计实现所期望的性能,很好的解决了上述矛盾。趋势:随着便携式设备需求的增长,对FPGA的低压,低功耗的要求日益迫切,芯片向大规模系统芯片靠近,力求在大规模应用中取代ASIC,位增强市场竞争力,各大厂商都在积极推广其知识产权和核心库,动态课重构技术的发展将带来系统设计方法的转变2。A/D转换器是用来通过一定的电路将模拟量转变为数字量。模拟量可以是电压、电流等电信号,也可以是压力、温度、湿度、位移、声音等非电信号。但在A/D转换前,输入到A/D转换器的
7、输入信号必须经各种传感器把各种物理量转换成电压信号。A/D转换器的工作原理:逐次逼近法,双积分法,电压频率。A/D转换四步骤:采样、保持、量化、编码。1.2 现场可编程门阵列FPGAFPGA(FieldProgmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可件的基础上进一步发展的产物。它是作为(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可件门电路数有限的缺点。以硬件描述语言(Verilog或VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至 FPGA 上进行测试,是现代 IC设计验证的技术主流。这些可
8、编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器(Flipflop)或者其他更加完整的记忆块。系统设计师可以根据需要通过可编辑的连接把FPGA内部的逻辑块连接起来,就好像一个电路试验板被放在了一个芯片里。一个出厂后的成品FPGA的逻辑块和连接可以按照设计者而改变,所以FPGA可以完成所需要的逻辑功能。FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Bl
9、ock)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。 现场可编程门阵列(FPGA)是可编程器件,与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的结构。FPGA利用小型查找表(161RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。FPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑
10、功能以及各模块之间或模块与I/O间的联接方式,并最终决定了FPGA所能实现的功能,FPGA允许无限次的编程。FPGA有如下特点:1采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。2FPGA可做其它全定制或半定制ASIC电路的中试样片。3FPGA内部有丰富的触发器和I/O引脚。4FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。5FPGA采用高速CMOS工艺,功耗低,可以与CMOS、TTL电平兼容。加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能
11、够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活,非常适用于数据采集方向的应用。1.3 课题的建立以及本文完成的主要工作本文主要包括以下内容:1 完成ADC采集系统的硬件搭建和仿真工作;2使用Verilog语言编写硬件电路接口驱动,完成 Verilog HDL程序的仿真工作;3完成项目的性能指标的设计。第2章 Altium Designer及Quartus II简介2.1 Altium Designer简介
12、Altium Designer 是原Protel软件开发商Altium公司推出的一体化的电子产品开发系统,主要运行在Windows XP操作系统。这套软件通过把原理图设计、电路仿真、PCB绘制编辑、拓扑逻辑自动布线、信号完整性分析和设计输出等技术的完美融合,为设计者提供了全新的设计解决方案,使设计者可以轻松进行设计,熟练使用这一软件必将使电路设计的质量和效率大大提高。电路设计自动化 EDA(Electronic Design Automation)指的就是将电路设计中各种工作交由计算机来协助完成。如电路原理图(Schematic)的绘制、印刷电路板(PCB)文件的制作、执行电路仿真(Simul
13、ation)等设计工作。随着电子科技的蓬勃发展,新型元器件层出不穷,电子线路变得越来越复杂,电路的设计工作已经无法单纯依靠手工来完成,电子线路计算机辅助设计已经成为必然趋势,越来越多的设计人员使用快捷、高效的CAD设计软件来进行辅助电路原理图、印制电路板图的设计,打印各种报表。Altium Designer 是原Protel软件开发商Altium公司推出的一体化的电子产品开发系统,主要运行在Windows XP操作系统。这套软件通过把原理图设计、电路仿真、PCB绘制编辑、拓扑逻辑自动布线、信号完整性分析和设计输出等技术的完美融合,为设计者提供了全新的设计解决方案,使设计者可以轻松进行设计,熟练
14、使用这一软件必将使电路设计的质量和效率大大提高。Altium Designer 除了全面继承包括Protel 99SE、Protel DXP在内的先前一系列版本的功能和优点外,还增加了许多改进和很多高端功能。该平台拓宽了板级设计的传统界面,全面集成了FPGA设计功能和SOPC设计实现功能,从而允许工程设计人员能将系统设计中的FPGA与PCB设计及嵌入式设计集成在一起。 由于Altium Designer 在继承先前Protel软件功能的基础上,综合了FPGA设计和嵌入式系统软件设计功能,Altium Designer 对计算机的系统需求比先前的版本要高一些。图2-1Altium Designe
15、r主要功能:1原理图设计2印刷电路板设计3FPGA的开发4嵌入式开发等等在本设计中主要用到了Altium Designer的原理图设计及PCB板设计的功能2.2 quartus II简介先打开Altium Designer,先新建一个工程文件:点击文件菜单,依次点击新建-工程Quartus II支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及,可以完成从设计输入到硬件配置的完整PLD设计流程。可以在XP、Linux以及Unix上使用,除了可以使用Tcl完成设计流程外,提供了
16、完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。此外,Quartus II 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、可编程于一体,是一种综合性的开发平台。Maxplus II 作为Alt
17、era的上一代PLD设计,由于其出色的易用性而得到了广泛的应用。目前Altera已经停止了对Maxplus II 的更新支持,Quartus II 与之相比不仅仅是支持器件类型的丰富和图形界面的改变。Altera在Quartus II 中包含了许多诸如SignalTap II、Chip Editor和RTL Viewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了Maxplus II 友好的图形界面及简便的使用方法。Quartus II提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,包括:可利用原理图、结构框图、VerilogHDL、AHDL和V
18、HDL完成电路描述,并将其保存为设计实体文件;芯片(电路)平面布局连线编辑;LogicLock增量设计方法,用户可建立并优化系统,然后添加对原始系统的性能影响较小或无影响的后续模块;1功能强大的逻辑综合工具;2完备的电路功能仿真与时序逻辑仿真工具;3定时/时序分析与关键路径延时分析;4可使用SignalTap II逻辑分析工具进行嵌入式的逻辑分析;5支持的添加和创建,并将它们链接起来生成编程文件;6使用组合可一次完成整体设计流程;7自动定位编译错误;8高效的期间编程与验证工具;9可读入标准的EDIF网表文件、VHDL网表文件和Verilog网表文件;10能生成第三方EDA使用的VHDL网表文件
19、和Verilog网表文件。设计中主要用到了Verilog HDL程序的编写模块,以及生成相应模块之后的仿真工作。2.3 小结本章主要介绍了设计中用到的两款软件Altium Designer和Quartus II。第3章 系统硬件概况3.1 系统概况总体设计方案见如图3-1所示。图3-1 系统设计方案图第1部分是放大器电路。程控放大器的作用是将传感器产生微弱的模拟信号进行放大处理。放大器把信号放大到与A/D转换器满量程电压相应的电平值,以便充分利用A/D转换器的分辨率,放大器的放大倍数可以通过设计放大电路来进行实时控制。放大器的频率特性包括两个方面:幅度频率特性和相位频率特性。第2部分是A/D模
20、数转换电路。其功能是将放大后的模拟信号转换为计算机能够识别的数字信号。A/D转换器是采样通道的核心,所以A/D转换器是影响数据采集系统采样速率和精度的主要因素之一。第3部分是数据缓存电路。受限于显示电路的响应速度,A/D转换后的数据信息一般不能直接传送到显示电路中,所以在送入显示电路或其他处理设备之前应该增加数据缓存模块,而FPGA内部有FIFO可以作为缓存来存储数据,这样能有利于将数据送入显示电路显示。第4部分是时钟控制电路,为系统和各个子功能模块提供时钟。第5部分是液晶显示器。数据缓存区的数据传输至液晶显示器。最终在液晶显示器上显示出结果。第6部分FPGA部分它可以通过在FPGA里面编程来
21、控制程控放大器、A/D模数转换器、数据缓存等单元,并实现与显示电路的通信。3.2 功能模块程序选择的模块如表3-1所示。表3-1 采集系统配置清单表序号部件名称型号数量(套)1FPGAEP2C812液晶显示器33XY-LCD13电源AMS111714电源AMS1117-ADJ15AD模数转换器ADS794516SramIS61LV5121617晶振5*7 50MHZ18Ref参考电源REF501019EPCSEPCS4*2110JTAGJTAG13.2.1 FPGA模块EP2C8是ALTERA的cyclone2系列中的一款芯片。在Altium Designer中画的原理图如下图3-2所示Pcb
22、封装如下图3-3所示图3-2原理图 图3-3封装 EP2C8的I/O口如下图3-4所示FPGA的IO口可以自由定义,是本设计采用FPGA的一个理由。EP2C8有共8个bank,在本设计中主要使用了3.3V的CMOS IO口。图3-4IO口EP2C8的电压如下图3-5所示,其中内核电压为1.2V,外围IO电压为3.3V。图3-5电压CLK控制BLK锁相环电路如下图3-6所示。 图3-6CLK控制BLK3.2.2 液晶显示器模块液晶显示模块采用采用了4.3寸XY-LCD彩色显示器。其封装如下图3-7所示各引脚定义如下图3-7显示器接口定义彩色液晶显示采用的是RGB模式,RGB色彩模式是工业界的一种
23、颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是目前运用最广的颜色系统之一。RGB是从发光的原理来设计定的,通俗点说它的混合方式就好像有红、绿、蓝三盏灯,当它们的光相互叠合的时候,相混,而却等于两者亮度之总和,越混合亮度越高,即加法混合。有色光可被无色光冲淡并变亮。如蓝色光与白光相遇,结果是产生更加明亮的浅蓝色光。知道它的混合原理后,在中设定颜色就容易理解了。红、绿、蓝三盏灯的叠加情况,中心三色最亮的叠加区为白色,加法混合的特点:越叠加越明亮。红
24、、绿、蓝三个每种色各分为255阶,在0时“灯”最弱是关掉的,而在255时“灯”最亮。当三色数值相同时为无的色,而三色都为255时为最亮的白色,都为0时为黑色。RGB 颜色称为加成色,因为您通过将 R、G 和 B 添加在一起(即所有光线反射回眼睛)可产生白色。加成色用于光、和。例如,通过红色、绿色和蓝色荧光粉发射光线产生颜色。绝大多数可视都可表示为红、绿、蓝 (RGB) 三色光在不同比例和强度上的混合。这些颜色若发生重叠,则产生青、和黄。液晶的时序图如下图3-8所示图3-8液晶时序图因为是液晶大部分不用焊接到板子上,只要有引脚就行所以用Atium Designer画出的原理图如下图3-9所示图3
25、-9液晶原理图及pcb3.2.3 电源模块FPGA需要两种电源,3.3V和1.2V其中3.3V产生原理图如图3-10所示图1-10 3.3V电源1.2V产生模块如下图3-11所示图3-11 1.2V电源AMS1117系列稳压器有可调版与多种固定电压版,设计用于提供1A输出电流且工作压差可低至1V。在最大输出电流时,AMS1117器件的压差保证最大不超过1.3V,并随负载电流的减小而逐渐降低。AMS1117的片上微调把基准电压调整到1.5%的误差以内,而且电流限制也得到了调整,以尽量减少因稳压器和电源电路超载而造成的压力。所以采用AMS1117来获得3.3V和1.2V电源。3.2.4 AD模数转
26、换器模块ADS7945是14位,取样率位2MSPS,双通道,差分单端的超低功耗模数转换器ADS7945引脚配置如下图3-12所示。图3-12 ADS7945原理图其中C12是参考电压的去耦电容C13是3.3V电源的去耦电容,R10、C16和R13、C17分别组成了模拟信号输入端的端接电阻和去耦电容。R14和R16分别是SDO和SCLK的端接电阻,可以防止控制器带来的数字信号因阻抗不匹配对AD产生影响。AD的引脚定义:PINPIN名功能描述1GND数/模2AVDD模拟ADC电源3REF模拟4REFGND模拟5AIN0模拟输入积极模拟输入,接口06AIN0GND模拟输入接地模拟输入,接口07AIN
27、1GND模拟输入接地模拟输入,接口18AIN1模拟输入积极模拟输入,接口19NC-没有内部连接,建议外部接口接地10NC-没有内部连接,建议外部接口接地11CH SEL数字输入这个引脚设置模拟输入的接口 低=接口0,高=接口1,CS处于下降沿半个时钟后它会在一个时钟周期内改变接口,这保证在采样开始前设置好多路复用器12PDEN数字输入如果它是高电平且CS处于上升沿,则断电13CS数字输入芯片选择信号,低电平有效14SCLK数字输入串行SPI时钟15SDO数字输入串行数据输出16DVDD数字数字I/O口ADS7945的直流特性电气特性:微分参数实验条件MIN TYP MAX单位数字输入/输出逻辑
28、系列CMOS逻辑电平VIH0.7DVDDVVIL0.3DVDDVVOHSDO load 20 pF0.8DVDDVVOLSDO load 20 pF 0.2DVDDV输入漏电流IIH, IIL0 VIN DVDD20Na外部引用2.5 AVDDV所需供电电压AVDD2.7 3.3 5.25VDVDD1.65 3.3 AVDDVAVDD供电电流IDYNAMICAVDD = 3.3 V, fSAMPLE = 2 MSPS3.5 4mAAVDD = 5 V, fSAMPLE = 2 MSPS4 5mAISTATICAVDD = 3.3 V, SCLK off2.3mAAVDD = 5 V, SCLK
29、 off2.5 3mADVDD供电电流DVDD = 3.3 V, fSAMPLE = 2 MSPS, 750 A SDO load 20 pF750A电源状态PD-DYNAMICSCLK = 40 MHz550A供电电流IPD-STATICSCLK off2.5A 通电时间从掉电状态使用pden口1s温度范围保证性能40 +125C时序图:ADS7945时序图3-13图3-13 AD时序ADC的时间参数参数实验条件Min typ max单位tCONV 转换时间16SCLKTacq 收集时间80nsFSAMPLE 抽样频率SCLK=40MHz, 16-clock frame2MSPSTd1 延时
30、第一个数据输出时cs低电平DVDD = 1.8 V25nsDVDD = 3 V14.5nsDVDD = 5 V8.5nsTsu1 SCLK的第一个上升沿时cs低电平DVDD = 1.8 V3.5nsDVDD = 3 V3.5nsDVDD = 5 V3.5nsTd2 CLK趋向SDODVDD = 1.8 V11nsDVDD = 3 V9nsDVDD = 5 V7.1nsTh1 保持时间,数据有效信号下降DVDD = 1.8 V4nsDVDD = 3 V3nsDVDD = 5 V2nsTd3 延时,cs升高到sdo 3-dateDVDD = 1.8 V 15nsDVDD = 3 V 12.5nsD
31、VDD = 5 V 8.5nsTd4 延时,转换结束时cs在上升沿10nsTwh 脉冲持续,SCLK高电平8nsTwl 脉冲持续,SCLK低电平8ns 信号频率 40nsTpdsu 开始,cs上升沿时PDEN高电平2MHzTpdh 保持时间cs上升沿时pden下降沿10nsns3.2.5 存储模块SRAMSRAM是英文Static RAM的缩写,即静态随机存储器。它是一种具有静止存取功能的,不需要刷新电路即能保存它内部存储的数据。SRAM不需要刷新电路即能保存它内部存储的数据。而DRAM(Dynamic Random Access Memory)每隔一段时间,要刷新充电一次,否则内部的数据即会
32、消失,因此SRAM具有较高的性能,但是SRAM也有它的缺点,即它的集成度较低,相同的DRAM可以设计为较小的体积,但是SRAM却需要很大的体积,且较大。所以在上SRAM要占用一部分面积。SRAM有如下特点:优点,速度快,不必配合电路,可提高整体的效率。缺点,集成度低,掉电不能保存数据,较大,相同的体积较大,而且价格较高,少量用于关键性系统以提高效率。SRAM工作原理:假设准备往图2的6T写入“1”,先将某一组地址值输入到行、列中,选中特定的单元,然后使写使能信号WE有效,将要写入的数据“1”通过写入电路变成“1”和“0”后分别加到选中单元的两条位线BL,BLB上,此时选中单元的WL=1,N0,
33、N5打开,把BL,BLB上的信号分别送到Q,QB点,从而使Q=1,QB=0,这样数据“1”就被锁存在晶体管P2,P3,N3,N4构成的中。写入数据“0”的过程类似。SRAM的读过程以读“1”为例,通过选中某列位线对BL,BLB进行预充电到电源VDD,预充电结束后,再通过行译码器选中某行,则某一被选中,由于其中存放的是“1”,则WL=1、Q=1、QB=0。N4、N5导通,有电流经N4、N5到地,从而使BLB电位下降,BL、BLB间电位产生差,当电压差达到一定值后打开灵敏度放大器,对电压进行放大,再送到输出电路,读出数据。SRAM功能图如下图3-14所示图3-14 SRAM功能图SRAM读的时序图
34、3-15所示图3-15 AD读时序用Atium Designer画出的原理图如下图3-16所示图3-16 SRAM原理图及封装3.2.6 晶振石英晶体振荡器是利用石英晶体(二氧化硅的结晶体)的压电效应制成的一种谐振器件,它的基本构成大致是:从一块石英晶体上按一定方位角切下薄片(简称为晶片,它可以是正方形、矩形或圆形等),在它的两个对应面上涂敷银层作为电极,在每个电极上各焊一根引线接到管脚 上,再加上封装外壳就构成了石英晶体谐振器,简称为石英晶体或晶体、晶振1;而在封装内部添加IC组成振荡电路的晶体称为晶体振荡器。其产品一般用金属外壳封装,也有用玻璃壳、陶瓷或塑料封装的。这里采用50MHZ5*7
35、的晶振。电路如图3-17所示图3-17晶振3.2.7 REF参考电源图3-18 REF参考电源REF5010是低噪声,低偏移高精度的参考电源。上图3-18是参考电源的电路图。3.2.8 EPCSEPCS(Erasable programmable configurable serial)是串行存贮器,FPGA不能直接从EPCS中执行程序,它实际上是执行EPCS控制器的片内ROM中的代码(即Bootloader),实际工作中FPGA把EPCS中的程序搬到RAM中执行。FPGA配置数据和程序都存放在EPCS器件中。FPGA配置数据放在最前面,程序放在后面,程序可能有多个段,每个段前面都插有一个“程
36、序记录”。一个“程序记录”由2个32位的数据构成,一个是32位的整数,另一个是32位的地址,分别用于表示程序段本身的长度和程序段的运行时地址。这个“程序记录”用于帮助Bootloader把各个程序段搬到程序执行时真正的位置。3.2.9 JTAG其接口功能:TDI(测试数据输入)TDO(测试数据输出)TCK(测试时钟)TMS(测试模式选择)TRST(测试复位)可选图3-19 JTAG及EPCS功能图总原理图及pcb图如下图3-20 3-21所示图3-20 总原理图图3-21 总pcb图3.3 小结系统硬件是设计的基础,在设计软件程序之前,要对系统的结构有个深入的了解,本章详细介绍了整个系统的硬件
37、结构和各模块的选型,介绍了系统的概况,使读者对总体的设计有个大致了解。第4章 程序仿真4.1 Verilog HDL程序生成stat信号部分clkdiv程序如下:module clkdiv(/ ALTERA_ARGS_BEGIN DO NOT REMOVE THIS LINE!clkin, clkout/ ALTERA_ARGS_END DO NOT REMOVE THIS LINE!);/ Port Declaration/ ALTERA_IO_BEGIN DO NOT REMOVE THIS LINE!input clkin;output clkout;/ ALTERA_IO_END DO
38、 NOT REMOVE THIS LINE!wire clkout; reg a;reg 31:0cnt;assign clkout=a;always (posedge clkin)begin if(cnt=)/2.68秒 begin a=0; cnt=cnt+1; endelse begin a=1; cnt=; /cnt=cnt+1; endendendmodule程序生成的顶层模块如下图4-3所示图4-3 clkdiv部分分频模块Clkctr程序见附录1程序生成的顶层模块如下图4-4所示图4-4 clkctr部分Ad模块程序见附录2,生成的顶层模块如下图4-5所示图4-5 ad部分4.2
39、 采集波形实际整体电路连接图如下图4-6所示图4-7 整体电路连接图输入10Khz的正弦波输出波形如下图4-7所示。图4-7 10Khz正弦信号输出波形CS与CHSEL的时序图如下图4-8所示图4-8 CS与CHSEL的时序图4.3 小结本章主要介绍了quartus II软件的使用方法和AD的编程,使用Verilog HDL语言编写程序写出AD模块和Clkctr及Clkdiv模块再将模块与FPGA相连最终将输入模拟信号转换为数字信号实现课题要求。第5章 课题特点5.1 FPGA应用 FPGA在高速数据采集方面有DSP和单片机无可比拟的优势,FPGA具有时钟频率高内部时延小,全部空盒子逻辑由硬件
40、完成,速度快,效率高,组成形式灵活等特点。因此,本文研究并开发了一个基于FPGA的数据采集系统。FPGA的IO口可以自由定义,没有固定总线限制更加灵活变通。本文中所提出的数据采集系统设计方案,就是利用FPGA作为整个数据采集系统的核心来对系统时序和各逻辑模块进行控制。依靠FPGA强大的功能基础,以FPGA作为桥梁合理的连接了ADC、显示器件以及其他外围电路,最终实现了课题的要求,达到了数据采集的目的。5.2 FIFO缓存设计由于A/D转换器、FPGA以及显示器之间处理数据的速度不同,为了消除不必要的数据丢失或者重复读取和数据丢失,可以将处理后的数据暂时存入FIFO中。FIFO是一个先入先出的堆
41、栈,利用FPGA内部强大的寄存器功能,设计了一个FIFO的数据缓冲器。A/D转换器将转换好的数据存入FIFO缓存中,FPGA检测液晶显示器有无读信号,如果有读信号,则FIFO输出信号给显示器;如果没有,则数据继续存储在FIFO中,等待被取走。这样便不会有数据丢失,系统更安全完整。第6章 结论FPGA是采集系统的主体,连接了SRAM,液晶显示器,ADS7945等等。综合控制每个单元,最终实现采集功能。论文详细介绍了以下内容: 1 Altium Designer在做本设计的时候的详细使用。2系统中FPGA,SRAM,ADS7945,液晶显示器,等各个模块的详细电气信息和功能。3用Verilog H
42、DL语言编程来控制FPGA以达到数据采集的目的。4使用quartus2软件仿真。5最后对整个设计的特点及优势进行了总结。附 录附录1 程序部分Clkctr程序部分module clkctr(/ ALTERA_ARGS_BEGIN DO NOT REMOVE THIS LINE!start, clk, ctr, clken/ ALTERA_ARGS_END DO NOT REMOVE THIS LINE!);/ Port Declaration/ ALTERA_IO_BEGIN DO NOT REMOVE THIS LINE!input start;input clk;input 2:0 ctr
43、;output clken;/ ALTERA_IO_END DO NOT REMOVE THIS LINE!reg samp1;reg samp2;reg samp3;reg samp4;wire clken;/reg 1:0ctr;reg flag1;reg flag2;reg flag3;reg flag4;reg 1:0 count1;reg 2:0 count2;/assign clken=flag1?clk:(flag2?samp2:(flag3?samp3:(flag4?samp4:0);assign clken=flag1?samp1:(flag2?samp2:(flag3?samp3:(flag4?samp4:0);/不分频模块/always (posedge clk)begin if(!start) begin samp1=1;endelse begin samp1=1;endend/二分频模块/always(posedge clk)beginif(!startsamp2=0;elsesamp2=samp2;end/四分频模块/always(posedge clk )beginif(!start) begin count1=