毕业设计(论文)基于FPGA的数据采集和回放系统的结构的设计

上传人:1888****888 文档编号:37328164 上传时间:2021-11-02 格式:DOC 页数:47 大小:1,004.53KB
收藏 版权申诉 举报 下载
毕业设计(论文)基于FPGA的数据采集和回放系统的结构的设计_第1页
第1页 / 共47页
毕业设计(论文)基于FPGA的数据采集和回放系统的结构的设计_第2页
第2页 / 共47页
毕业设计(论文)基于FPGA的数据采集和回放系统的结构的设计_第3页
第3页 / 共47页
资源描述:

《毕业设计(论文)基于FPGA的数据采集和回放系统的结构的设计》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于FPGA的数据采集和回放系统的结构的设计(47页珍藏版)》请在装配图网上搜索。

1、摘 要数据采集系统一般由数据输入通道、数据存储与管理、数据处理、数据输出及显示这五个部分组成。输入通道要实现对被测对象的检测、采样和信号转换等工作。数据存储与管理要用存储器把采集到的数据存储起来,建立相应的数据库,并进行管理和调用。本课题设计了以FPGA 为核心逻辑控制模块的高速数据采集和回放系统,设计中采用了自顶向下的方法,先从系统的角度分析该系统要完成哪些功能。用系统级行为描述表达一个包含输入输出的顶层模块,同时完成整个系统的模拟与性能分析。然后将系统划分为各个功能模块,详细论述了各模块的设计方法和控制流程。FPGA模块设计使用VHDL语言,在QUARTUSII中实现软件设计和完成仿真。最

2、后在硬件上进行试验结果的验证,根据实验结果作修改后得出结果。本文给出了一些模块图形及端口说明和设计实现的思想,整个采集系统可实现现场模拟信号采集和信号的频率计数。 关键词:FPGA 数据采集 时钟逻辑运算 VHDL语言 AbstractGenerally,data acquisition system is made of the data input channels,data storage and management,data processing,data output and display of these five parts.Input channels of the mea

3、sured object in order to achieve the detection,sampling and signal conversion and so on .Data storage memory is used and managed to store data collected,which creats the corresponding database,and management and calls. The topic is designed to FPGA logic control module as the core of the high-speed

4、data acquisition and playback system,which is used the method of top-down approach.In the first place,the perspective of system analysis of the system which functions to complete act with system-level descripition of the expression that contains the top-level input and output modules,at the same tim

5、e the whole system simulation and performance analysis. Then the system is divided into various functional modules,which are use the language of VHDL in QUARTUSII to achieve the completion of the design and simulation software.Finally,it has test results for hardware verification,in accordance with

6、the revised results for the outcome. In this paper, it has gave a number of modules and port descripition and graphic design ideas. The entire sampling system can be realized at the scene analog signal sampling and signal frequency count.2 16 17Key words:FPGA data acquisition clock logic count the l

7、anguage of VHDL目 录 摘要IAbstractII绪论11 系统的总体结构31.1 基于FPGA的数据采集和回放系统的结构31.2 系统组成框图介绍42 系统原理与方案选择52.1 AD芯片选型及其原理52.1.1 AD芯片的选型52.1.2 ADC0809的引脚功能52.1.3 ADC0809应用说明及时序图62.2 频率测量原理及方案选择72.2.1 直接测频法原理72.2.2 等精度测频原理82.2.3 测频方法的选择92.3 FPGA内部运算模块的设计原理92.4 LED数码管显示原理及方案选择92.4.1 LED数码管的工作原理92.4.2 FPGA实现LED数码管静态

8、显示控制实现原理92.4.3 采用FPGA实现LED数码管动态显示控制实现原理102.4.4 LED数码管显示方案的选择103 系统设计及主要模块的实现113.1 系统设计的顶层实体原理113.2 AD控制转换功能模块的设计113.2.1 AD控制转换模块的端口说明113.2.2 AD控制转换控制模块的编程思想123.2.3 该模块的仿真波形及分析133.3 频率计模块133.3.1 检测模块的端口说明及编程实现133.3.2 频率控制模块端口说明及编程实现143.3.3 计数模块端口说明及编程实现163.3.4 锁存模块端口说明及编程实现173.4 分频模块183.4.1 分频模块的端口说明

9、及编程实现193.5 LED数码管显示203.5.1 LED数码管的端口说明及编程实现203.6 LED点阵显示模块213.6.1 该模块端口说明及编程实现224 软硬件调试244.1 软件使用中遇到的问题244.2 AD转换工作中遇到的问题244.3 频率计遇到的问题244.3.1 计数模块244.3.2 频率控制模块254.3.3 频率计254.4 点阵调试遇到的问题254.5 系统调试现象25结论26致谢27参考文献28附录系统程序2943绪 论在进入21世纪以后,伴随着半导体工艺的发展,集成电路的规模、性能和市场都有着突飞猛进的发展,越来越多的大规模集成电路被应用都计算机、通信、电子等

10、领域。集成电路以其高性能和低成本成为了众多领域的宠儿。集成电路是信息技术产业群的核心和基础。建立在集成电路技术进步基础上的全球信息化、网络化和知识经济浪潮,使集成电路产业的战略地位越来越重要,对国民经济、国防建设和人民生活的影响也越来越大。多年来,世界集成电路产业一直以3-4倍于国民经济增长速度迅猛发展,新技术、新产品不断涌现。目前,世界集成电路大生产的主流加工工艺技术水平为8英寸,0.35-0.25微米,正在向0.18微米、0.15微米、12英寸加工工艺过渡。目前,世界最高水平的单片集成电路芯片上所容纳的元器件数量已经达到80多亿个。未来电子产品的发展趋势为功能日渐复杂,然而体积却日渐缩小、

11、功率消耗的要求越来越严格,因此系统晶片(SoC)为半导体产业的重要发展趋势,系统晶片以互补金属氧化物半导体(CMOS)制造为主,将各种功能的元件整合至单一晶片中。除了CMOS制造之外,还有其他种类的制造技术,例如矽锗(SiGe)、双极型(Bipolar)、-族如砷化镓(GaAs)、氮化镓(GaN)、-族半导体等,大部分用于利基型之应用,如无线通讯之射频晶片、光通讯元件等。FPGA是现场可编程逻辑门阵列,它作为IC设计的领域,能灵活的实现各种功能。由于它的IP核能够可重复使用,这已经是当今IC设计的趋势。由于FPGA的加入改变了传统的IC设计的产品研究时间,同是缩短了产品上市时间,减低了开发成本

12、。此外,它还具有静态可重复编程和动态的系统重构特性,极大地提高了电子设计系统的灵活性和通用行。近年来,数据采集与处理的新技术、新方法,直接或间接地引发其革新和变化,实时监控(远程监控)与仿真技术(包括传感器、数据采集、微机芯片数据、可编程控制器PLC、现场总线处理、流程控制、曲线与动画显示、自动故障诊断与报表输出等)把数据采集与处理技术提高到一个崭新的水平。在计算机广泛应用的今天,数据采集的重要性是十分显著的。它是计算机与外部物理世界连接的桥梁。它在现代信息领域发挥着重要作用,是信息产品不可或缺的重要组成部分。因此选择基于FPGA数据采集系统设计是很有意义也是很有必要的。 数据采集系统一般由数

13、据输入通道、数据存储与管理、数据处理、数据输出及显示这五个部分组成。输入通道要实现对被测对象的检测、采样和信号转换等工作。数据存储与管理要用存储器把采集到的数据存储起来,建立相应的数据库,并进行管理和调用。数据处理就是从采集到的原始数据中,删除干扰噪声、无关信息和不必要的信息,提取出反映被测对象特征的重要信息。另外,就是对数据进行统计分析,以便于检索;或者把数据恢复成原来的物理量形式,以可输出的形态在输出设备上输出,如打印、显示、绘图等。数据输出及显示就是把数据以适当的形式进行输出和显示。本课题研究的主要内容是基于FPGA的数据采集和回放。其功能的实现是利用A/D转换芯片ADC0809采集外部

14、模拟信号形成数据,用FPGA芯片完成数据的采集,并利用D/A芯片DAC0832完成模拟信号的回放,同时利用显示模块完成相关的显示。 1 系统的总体结构 传统的数据采集系统,通常采用单片机或DSP作为控制模块控制ADC,存储器和其他外围电路的工作。随着数据采集对速度性能的要求越来越高,传统的采集系统的弊端越来越明显。单片机的时钟频率较低且用软件实现数据采集,使得采集速度和效率降低,软件运行时间在整个采样时间中占很大的比例。而FPGA(现场可编程门阵列)有单片机无法比拟的优势。FPGA时钟频率高,内部延时小,全部控制逻辑由硬件完成,速度快、效率高。1.1 基于FPGA的数据采集和回放系统的结构3该

15、系统的组成原理图见图1-1。该系统功能的实现是由FPGA经过一系列的逻辑运算和时钟运算给出控制启动ADC0809工作的信号,然后接收ADC0809的反馈信号,用FPGA芯片完成数据的采集,并利用D/A芯片DAC0832完成模拟信号的回放同时指挥频率计模块部分经过一系列的检测采集及计算,再将结果传递给FPGA,然后将结果送显。图1-1 系统总体方框图1.2 系统组成框图介绍本系统主要由四大部分组成AD转换模块、频率计模块、显示模块、分频模块。其组成部分的简要介绍如下:(1) AD转换部分:利用FPGA生成一个A/D采样控制器模块,产生STRAT(启动信号)、ALE(地址选通)、OE(转换数据输出

16、使能)三个信号来控制ADC0809工作状态。然后通过ADC0809的反馈信号将转换出的数据采集到FPGA的内部RAM中存储为下一步的处理做准备。(2) 频率计部分:这个部分包含了四小模块,它们分别是锁存器、检测信号模块、计数模块。而在形成频率计时主要是要产生clk(时钟信号)、teten(计数许可信号)、load(锁存信号)、clr_cnt(计数清零信号)这些为测量信号的频率做准备的信号。同时检测模块主要做的就是及时检测出信号的转换已经有一个周期,发出一个脉冲信号提示计数部分测频。(3) 显示部分:该部分主要是接收FPGA传递过来的数据同时通过驱动程序及相关的查表将结果显示出来。(4) 分频部

17、分:该部分主要是给其它三个部分提供所需的时钟信号,进行后续处理。2 系统原理与方案选择2.1 AD芯片选型及其原理2.1.1 AD芯片的选型AD芯片按照处理速度可分为低速、中速、高速。市场上的AD芯片也有很多,但是基于本系统的需要及价格方面的考虑,故选择ADC0809这款芯片。ADC0809是采样位数为8位的、以逐次逼近原理进行模数转换的器件。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。其主要特性有为:13(1)8路8位A/D转换器,即分辨率8位。(2)具有转换起停控制端。 (3)单个5V电源供电 (4)模拟输入电压范围05V,不

18、需零点和满刻度校准。 (5)工作温度范围为-4085摄氏度 (6)低功耗,约15mW。2.1.2 ADC0809的引脚功能ADC0809芯片有28条引脚,下面说明各引脚功能。IN0IN7:8路模拟量输入端。D1D8:8位数字量输出端。ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路。ALE:地址锁存允许信号,输入,高电平有效。START:A/D转换启动信号,输入,高电平有效。EOC:A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。OE:数据输出允许信号,输入,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态

19、门,输出数字量。CLK:时钟脉冲输入端。REF(+)、REF(-):基准电压。Vcc:电源,单一5V。GND:地。2.1.3 ADC0809 应用说明及时序图其时序图见图2-1。其工作原理为:(1)ADC0809内部带有输出锁存器,可以与FPGA直接相连。 (2)初始化时,使ST和OE信号全为低电平。 (3)送要转换的哪一通道的地址到A,B,C端口上。 (4)在ST 端给出一个至少有100ns宽的正脉冲信号。 (5)是否转换完毕,我们根据EOC信号来判断。 (6)当EOC变为高电平时,这时给OE为高电平,转换的数据就输出到FPGA。 图2-1 AD0809时序图2.2 频率测量原理及方案选择2

20、.2.1 直接测频法原理常用的直接测频方法主要有测频法和测周期法两种。测频法就是在确定的阀门时间Tw内,记录被测信号的变化周期数(或脉冲个数)Nx,则被测信号的频率为:Fx=Nx/Tw.测频法原理如图2-2。测周期法就需要有标准信号的频率fs,待测信号的一个周期Tx内,记录标准频率的周期数Ns,则被测信号的频率为:Fx=Fs/Ns,测频法原理如图2-3。7 8 9 图2-2 测频法原理图2-3 测周期法原理2.2.2 等精度测频原理等精度测频原理如图2-4,在测量过程种,有两个计数器分别对标准信号和被测信号计数。首先给出阀门开启信号(预置阀门上升沿),此时计数器并不开始计数,而是等到被侧信号是

21、上升沿到来时计数器才真正开始计数。然后预置阀门关闭信号(下降沿)到时,计数器并不立即停止计数,而是等到被测信号的上升沿到来时才结束计数,完成一次测量过程。可以看出,实际阀门时间t与预置阀门时间t1并不是严格相等,但差值不超过被测信号的一个周期。等精度测频实现方法的原理图见图2-5。设在一次实际阀门时间t中计数器对被测信号的计数值为Nx,对标准信号的计数值为Ns。标准信号的频率为fs,则被测信号的频率为:fx=Nxfs/Ns。 图2-4 等精度测频原理图2-5 等精度测频实现方法原理图2.2.3 测频方法的选择计数器测频法主要有两种实现方法:直接计数测频法和等精度测频法。直接测频法只是简单地记下

22、单位时间内的周期信号的重复次数,其计数值会有1个计数误差。此方法测量精确度主要是取决与基准时间和计数器的计数误差。等精度测频方法是在直接测频方法的基础上发展起来的。他的阀门时间不是固定的值,而是被测信号周期的整数倍,即与被测信号同步,因此,摒除了对被测信号计数所产生1个计数误差,并且达到了在整个测试频率的等精度测量。但是这种测量方法整体实现起来太过复杂,因此没有选择。2.3 FPGA内部运算模块的设计原理逻辑运算模块主要是时钟逻辑运算,这是FPGA设计里面最复杂的模块,所以要考虑到各种情况的出现。系统之所以能够正常工作全部由逻辑运算模块进行运算处理,产生相应控制和操作。时钟主要有采样周期时钟、

23、扫描时钟、AD工作时钟等。各种逻辑运算的控制量由逻辑运算产生。原理上要求扫描周期内要保证单次扫描的快任务全部完成,即扫描周期采样周期快任务数,只有这样才有可能插入慢任务进行数据采集。3 4 112.4 LED数码管显示原理及方案选择2.4.1 LED数码管的工作原理LED数码管用7段发光二极管来显示数字,每一段都是一个发光二极管,加上小数点共有8个发光二极管。一般把所有段的相同一端相连,连接到地(共阴极接法)或者是连接到电源(共阳极接法)。共阴极LED数码管的公共端连接到地,另一端分别接一个限流电阻后在接到控制电路的信号端,当信号端为高电平时,该段即被点亮,否则不亮。共阳极接法相反,公共端连接

24、到电源,另一端分别接一个限流电阻后再接到控制电路的信号端,只有信号端为低电平是才被点亮,否则不亮。2.4.2 FPGA实现LED数码管静态显示控制实现原理FPGA实现LED静态显示控制的实现是运用硬件描述语言设计一个显示译码驱动器,即将要显示的字符译成7段码。由于FPGA有相当多的引出端资源,如果显示的位数N较少,可以直接使用静态显示方式,即将每一个数码管都分别连接到不同的8个引出端线上,共需要8XN条引出端线控制。5 102.4.3 采用FPGA实现LED数码管动态显示控制实现原理LED数码管动态显示的实现方法是依次点亮各个数码管使其循环显示,它利用的视觉暂留特性,可以达到多个数码管同时显示

25、的视觉效果。采用扫描方式来实现LED数码管动态显示,控制好数码管之间的延时是相当重要的。根据人眼视觉暂留原理,LED每秒导通16次以上,人眼就无法分辨LED数码管短暂的不亮,认为是一直点亮状态(其实LED数码管是一定的频率在闪动的)。但是,延时(导通频率)也不是越小越好,因为LED数码管达到一定亮度需要一定时间。如果延时控制不好则会出现闪动,或者亮度不够。2.4.4 LED数码管显示方案的选择LED数码管静态显示的实现方法简单,如果采用这种方法占用了太多的硬件资源。LED数码管动态显示占用硬件资源少的优点,实现方法相对要复杂一些。但是,对于本次的设计来说引出端的硬件资源非常有限,故我采用的是动

26、态显示的方法。3 系统设计及主要模块的实现3.1 系统设计的顶层实体原理该系统的顶层实体的原理图见图3-1。该顶层实体中由逻辑运算模块计算出所需要的时钟如采样周期时钟、扫描时钟、AD工作时钟、频率计阀门时钟。分别将它们传输给AD控制转换模块、LED显示模块、频率计模块、LEDALL点阵模块。使它们能够正常的完成系统的功能。 图3-1 顶层实体原理图3.2 AD控制转换功能模块的设计3.2.1 AD控制转换模块的端口说明该模块的方框图见图3-2。端口说明如下:DB:输入端口,它是8bit二进制数据输入。它的数据来源于ADC0809转换结束输出的数据;CLK_AD:输入端口,它是ADC0809的时

27、钟输入。它的时钟信号输出是250KHz的方波信号。ENABLE:输出端口,它是ADC0809的输出使能端口。当ENABLE为1ADC0809的八个输出管脚输出转换后的数据。START:输出端口,它是ADC0809的转换启动端口。在ADC0809启动前START信号必须给出一个至少有100ns宽的正脉冲信号,才能保证转换的正常启动。 EOC:输入端口,它是ADC0809转换结束的标志。当EOC为高电平时表示转换结束。R:输入端口,它是ADC0809转换复位的标志。当R为高电平时表示状态机恢复初始状态。OUTDA:输出端口,它是8bit二进制的数据输出。它的数据是ADC0809转换结束后的数据。主

28、要是将这些数据写入到DAC0832芯片中进行处理。 图3-2 AD控制模块方框图3.2.2 AD控制转换控制模块的编程思想由于在硬件设计上,ALE和START并在一起,通道选择端固定在选通通道0上,开始转换的同时锁存通道0。AD控制器模块实现是通过莫尔状态机实现的。它主要是产生AD转换所需要的时序。故此状态机有七种状态分别是S0、S1、S2、S3、S4、S5、S6。其中S0代表的是转换的初状态此时START=0,ENABLE=0。S1代表的是转换启动状态此时START=1,ENABLE=0。S2代表的是转换期间状态此时START=1,ENABLE=0。S3代表的是转换结束状态此时START=0

29、,ENABLE=0,EOC=1。S4代表的是数据输出状态此时START=0,ENABLE=1,EOC=1。S5代表的是读入数据状态此时START=0,ENABLE=1。S6代表的是返回AD转换的初始状态。每当有时钟上升沿的到来时,状态机根据各个状态条件来决定下一个状态及相关的端口输出。3 4 7 8 9 14 153.2.3 该模块的仿真波形及分析模块的仿真波形见图3-3。由该仿真波形可以得出本模块的编写没有问题。因为它输出信号ENABLE、START、EOC波形与AD工作时序图(见图2-2)一致 。 图3-3 AD控制部分仿真波形3.3 频率计模块频率计模块是这个系统设计的最复杂的一个部分,

30、它包含了四个小模块分别是检测模块、频率控制模块、计数模块、锁存模块。其中检测模块是检测AD转换数据中的8bit二进制数据,一旦检测到设定的特殊码就产生一个高电平的脉冲;频率控制模块主要是负责产生计数所需的控制信号;计数模块则是记录标准时钟1s内检测模块产生高电平次数每来一个高电平则计数值加1;锁存模块就是锁存住每次的计数值,然后在上升沿到来时将计数值传输给LED显示模块。它的方框图见图3-4。 图3-4 频率计模块方框图3.3.1 检测模块的端口说明及编程实现(1) 该模块的方框图见图3-5。端口说明如下:CLK:输入端口,它是检测模块扫描时钟。主要是用来与AD转换后的数据实现同步的扫描信号,

31、它的来源是AD芯片送出的信号ENABLE(数据转换输出使能)。DB:输入端口,它是检测模块的8bit二进制数据输入的端口。它的数据来源于 AD转换后输出的8bit二进制数据。Q:输出端口,它是检测模块的结果输出端口。当它输出高电平脉冲信号时,它代表了检测到了AD转换数据中的8bit二进制数据中设定的特殊码到来。 图3-5 检测模块方框图(2) 该模块的编程实现该模块的编程思想是通过扫描时钟对AD转换结束后的数据进行逐个数据进行扫描,然后根据扫描的数据判断是否扫描到设定的特殊码,如果是就发送一个高电平的脉冲信号。然后将这个信号传递个后面的模块进行后续处理。(3) 该模块的仿真波形及分析模块的仿真

32、波形见图3-6。由图中可以看出,一旦有数据被检测到就会输出一个高电平,无则输出低电平。这与编程思想相符合。图3-6 检测模块仿真波形3.3.2 频率控制模块端口说明及编程实现(1) 该模块的方框图见图3-7。端口说明如下:CLK:输入端口,它是频率控制模块的时钟输入端口。它主要是产生控制信号的标准输入时钟。它的频率是1Hz。TETEN:输出端口,它是频率控制模块的计数允许的输出端口。当它为高电平时,表示允许计数器的计数。LOAD:输出端口,它是频率控制模块的锁存允许的输出端口。当它为高电平时表示允许其将计数器的计数值锁存。CLR_CNT:输出端口,它是频率控制模块的计数清零信号输出端口。当它为

33、高电平时表示允许其将计数器的计数值清零。每次计数开始时该信号就需要输出一个高电平的脉冲。 图3-7 频率控制模块方框图(2) 频率控制模块编程实现 该模块的作用是产生测频所需要的各种控制信号。控制信号的标准输入时钟为1Hz,每两个时钟周期进行一次频率测量。该模块产生3个控制信号率测量TETEN,LOAD,CLR_CNT。其中CLR_CNT信号用于在每次测量开始时,对计数器的复位,以清除上次的测量结果,复位信号高电平有效,持续时间为半个时钟周期的时间。TETEN为计数允许信号,在其为上升沿时计数器模块开始对输入信号的频率进行测量。测量时间恰为一个时钟周期(正好为单位时间1s),在此时间里对被测信

34、号的脉冲数进行计数,即为信号的频率。然后将计数值锁存,并送到数码管显示进行后续处理。设置锁存器的好处是使显示的数据稳定,不会由于周期性的清零信号而不断闪烁。在每一次测量开始时,都必须重新对计数器清0。控制模块的几个控制信号的时序关系如图3-8所示。从图中可看出,计数使能信号teten在1s的高电平后,利用其反相值的产生锁存信号load,随后产生清零信号上升沿clr_cnt。清零信号是CLK与TETEN同或得到的。 图3-8 控制信号时序关系图(3) 该模块的仿真波形及分析模块的仿真波形见图3-9。由波形图中可以看出,TETEN是CLK1的二分频。每次计数开始CLR_CNT置高电平即清零。LOA

35、D信号波形与TETEN信号波形相反。这与控制信号的时序关系相符合。图3-9 频率控制模块的仿真波形3.3.3 计数模块端口说明及编程实现(1) 该模块的方框图见图3-10。端口说明如下:CLK:输入端口,它是频率计数模块的时钟输入端口。它是标准时钟信号,其频率为1Hz。CLR:输入端口,它是频率计数模块的清零信号输入端口。它的作用是在每次计数开始时清除上次计数值。它是高电平有效。ENA:输入端口,它是频率计数模块的计数允许信号输入端口。当它为高电平时,表示允许计数器的计数允许。CQ:输出端口,它是频率计数模块的计数值的输出端口。它是加法器的输出结果,是4bit二进制数据即为BCD码。CARRY

36、_OUT:输出端口,它是频率计数模块的计数值的进位信号的输出端口。它输出的是加法器的进位信息。 图3-10 计数模块方框图(2) 计数模块编程实现该计数模块是由六个带有异步清零端,进位信号输出的模为10的计数模块级连而成。通过freq.vhd 进行元件例化实现。当清零信号的高电平到来时,不管此模块处于何种状态,它的计数值均要清零。由此可以看出清零信号的优先级最高。通过freq.vhd 进行元件例化实现的技术模块的内部信号连接关系为:当时钟上升沿到来并且计数器计数允许即ENA为高电平时,计数器开始计数,当计数值达到9以后,计数值清零并且进位信号输出一个高电平。此时这个高电平的进位信号作为敏感信号

37、触发下个计数模块的工作,如果这个计数模块的计数值达到9以后,计数值清零并且进位信号输出一个高电平。接着这个高电平的进位信号又作为敏感信号触发下一个计数模块的工作,依次类推直到所有的计数模块工作。它的级联输出是24bit的二进制加法数据。(3) 该模块的仿真波形及分析模块的仿真波形见图3-11。由波形图中可以看出,每当有清零信号CLR来到时计数值清零,当时钟上升沿时计数器计数,计到9时计数值变为0,此时进位端CARRY _OUT输出高电平。这与编程思想相符合。 图3-11 计数模块仿真波形3.3.4 锁存模块端口说明及编程实现(1) 该模块的方框图见图3-12。端口说明如下:LOAD:输入端口,

38、它是锁存模块的锁存允许的输入端口。当它为上升沿时计数值开始锁存,也可以将这个信号当作时钟信号。DIN:输入端口,它是锁存模块的锁存数据的输入端口。它是24bit的二进制数据输入,它的数据来源于级联的计数模块的各个计数值输出。DOUT:输出端口,它是锁存模块的锁存数据的输出端口。它是24bit的二进制数据输出,它的数据来源于级联的计数模块的各个计数值输出。 图3-12 锁存模块方框图(2) 锁存模块的编程实现这个模块的功能实现思想是当锁存信号的上升沿到来时,将锁存来自于级联的计数模块的输出的各个计数值传递给锁存输出端口。(3) 该模块的仿真波形及分析模块的仿真波形见图3-13。由波形图中可以得出

39、,一旦锁存信号LOAD的上升沿到来时,将锁存的数据输出。 图3-13 锁存模块仿真波形3.4 分频模块分频器通常用来对某个给定频率进行分频,得到所需的频率。整数分频器的实现非常简单,可采用标准的计数器,也可以采用可编程逻辑器件设计实现,但在某些场合下,时钟源与所需的频率不成整数关系,此时可采用小数分频器进行分频。所以对于基于FPGA的时钟分频,可以简单分为奇数分频与偶数分频,而且分频后时钟的占空比也是可变的,最简单的时钟分频就是对时钟进行计数,然后输出时钟信号等于计数器各位相与,这样得到的分频信号,其占空比很小,即时钟高电平只有一个,但由于FPGA设计的对时钟跳变沿的判断的精确性,故这种分频方

40、式也是可取的。3.4.1 分频模块的端口说明及编程实现(1) 该模块的方框图见图3-14及3-15。端口说明如下:CLKIN:输入端口,它是系统时钟信号输入端口。该时钟信号的频率是50MHz。CLK_LED:输出端口,它是LED数码管扫描信号的输出端口。它的时钟信号输出频率是2.5KHz。CLK_AD:输出端口,它是模数转换芯片ADC0809的转换时钟信号的输出端口。它的时钟信号输出频率是250KHz。FREQ1:输出端口,它是频率控制模块的标准时钟信号的输出端口。它的时钟信号的输出频率是1Hz。CLK_1M:输出端口,它是作为过渡信号连接CLK端口的时钟信号的输出端口。它的时钟信号的输出频率

41、是1MHz。 图3-14 分频模块方框图 图3-15 分频模块方框图(2) 分频模块的编程实现它主要是由FPGA提供50MHz的时钟信号,将其经过50分频产生1MHz信号后,再将1MHz信号经过4、400、1000000分频分别产生250KHz、2.5KHz及1Hz。其中250KHz的信号用于AD转换提供时钟信号;2.5KHz是用于给LED数码管提供扫描数据所用的时钟信号;1Hz是用来给频率控制模块提供标准测量时钟1s,用于查看被测信号的周期个数。(3) 该模块的仿真波形及分析模块的仿真波形见图3-16、3-17。由波形图中可以看出,分频得到的结果与编程思想相符。由于软件的时钟限制故不能完全反

42、应出它们的对应关系。 图3-16 分频模块FREQ1仿真波形 图3-17 分频模块PIN仿真波形3.5 LED数码管显示LED的显示模块原理:LED有段码和位码之分,所谓段码就是让LED显示出8.的八位数据,一般情况下要通过一个译码电路,将输入的4位2进制数转换为与LED显示对应的8位段码。位码也就是LED的显示使能端,对于共阴级的LED而言,低电平使能(在本实验箱中所有的LED均位共阴级的)。3.5.1 LED数码管的端口说明及编程实现(1) 该模块的方框图见图3-18。端口说明如下:CLK1:输入端口,它是数码管扫描时钟信号输入端口。该时钟信号的频率2.5KHz。OUTB:输出端口,它是显

43、示数据位选择输出端口。OUTA:输出端口,它是显示数据输出端口。 图3-18 LED数码管模块方框图(2) LED编程实现设计了一个3位的循环计数器,将计数结果输入到编写的38译码器程序中,译码结果输出即可依次点亮每个LED。同时再编写一个关于数码管数据转换所需的数据表。通过查表得到我们日常所见的十进制数。例如:要让8个LED同时工作,显示数据,就是要不停的循环扫描每一个LED,并在使能每一个LED的同时,输入所需显示的数据对应的8位段码。虽然8个LED是依次显示,但是受视觉分辨率的影响,看到的现象是8个LED同时工作。(3) 该模块的仿真波形及分析模块的仿真波形见图3-19。由波形图中可以看

44、出,当时钟上升沿到来时,将计数值中的每四位数据转换为相应数码管输出所用的八位数据,并输出其LED数码管的相应的输出使能端。这与编程思想相符。图3-19 LED数码管模块仿真波形3.6 LED点阵显示模块LED点阵工作原理:它的行为扫描选通信号、列为数据输入。显示采用逐行扫描方式,数据端不断输入数据,行扫描按一定顺序逐行选通,扫描一个周期(16个数据)产生一帧画面。见图3-20以44共阴LED点阵列为例,给出了LED阵列的组合方式,行选通低电平有效,数据高电平有效;数据端输入数据,选通行根据相应数据亮灯,接着送入第二行数据,选通第二行,依次完成一屏的扫描。图3-20 44共阴LED点阵列3.6.

45、1 该模块端口说明及编程实现(1) 该模块的方框图见图3-21。端口说明如下:KEY1:输入端口,它是按键K0的输入端。当按键K0按下后,KEY1被输入一个高电平,无动作时则输入低电平。KEY2:输入端口,它是按键K1的输入端。当按键K1按下后,KEY2被输入一个高电平,无动作时则输入低电平。CLK1K:输入端口,它是点阵的时钟扫描信号。它的频率为1KHz。OUTERA:输出端口,它是点阵的列数据输出信号。主要给点阵提供显示内容的帧数据。OUTERB:输出端口,它是点阵的行选通信号的输出信号。主要负责点亮被选通行的LED。图3-21 LED点阵方框图(2) LED点阵编程实现 该模块的结构框图

46、见图3-22。Source1进程用于产生ROM寻址信号,它的输出低4位为Source2进程的输入,用于扫描同步。ROM大小为16256,可存储16帧的数据。每帧数据输出16个字节,Source2的扫描循环一次。当K1按键没有被按下时,每帧重复扫描32次再转到下一帧的扫描一直扫描到16帧数据。当K1按键被按下时,每帧重复扫描32次再转到下一帧的扫描且只扫描12帧数据。非门的作用是,当Source1有稳定的扫描数据输出后寻址输出数据和选通信号。KEY进程用于选择不同的ROM数据,如按键K0没有被按下,选择ROMTRY0中的数据;若按下一次则选择ROMTRY1中的数据;若再按一次则选择ROMTRY2

47、中的数据;再按第四下则选择ROMTRY0数据,根据按键K0被按下的次数依次循环选择ROM中的数据。ROM用于存放显示内容的数据。PIN1K进程用于给点阵提供时钟。图3-22 LED点阵结构框图(3) 该模块的仿真波形及分析模块的仿真波形见图3-23。由波形图中可以看出,当时钟上升沿到来时,KEY1、KEY2没有被按下时输出的是ROMTRY0的数据扫描到了16帧的数据。这与编程思想相符。图3-23 LED点阵仿真波形图4 软硬件调试4.1 软件使用中遇到的问题在系统设计过程中,在软件的使用方面遇到了一些问题,例如:在使用软件对编写的程序进行波形仿真时点击后软件提示我操作错误。用元件例化编写了计数

48、器模块,想看下该模块的内部结构图时不知道如何查看RTL级电路内部结构?特别是在波形仿真这一块按照正常情况下只需要点击就可以仿真。但是,由于我没有设置仿真工具相关的选项,如要先将想要进行仿真的那个程序设为顶层实体编译后将它的波形文件需要的相关输入波形建立并保存,然后在仿真工具调用该波形文件此时再点击即可完成波形的仿真。查看RTL级电路内部结构的方法为点击工具菜单选择RTL级项目即可。4.2 AD转换工作中遇到的问题我在这部分遇到的问题是将程序下载到FPGA中,同时将AD所需要的各种信号外引到扩展端口,结果在这些端口上测量(用示波器观察)发现EOC(转换结束标志信号)、STRAT(转换启动信号)、

49、ENABLE(计数允许信号)均没有信号即都是低电平,但是AD时钟信号存在。我一开始怀疑是AD的状态机没有启动,于是将程序修改后再次下载仍然是这样。我有开始想问题出在哪里,思考后觉得这个问题也许根本不是我的程序出了问题,而是这个试验箱的几个外接端口有问题。所以我开始用试验箱上的资源来测试我的程序。结果恰恰与我所料果然是试验箱上外接端口坏了(我后来有专门测试过这些引脚的端口信号证实了这点)。 还有一个问题就是ADC0809的转换时间是多少?通过查看相关的资料,发现其转换时间是需要64个时钟周期的。转换速率为转换时间的倒数设为f。而根据采样定理和实际需要,要还原一个周期的波形信号至少需采集10个样点

50、,那么这个AD转换器最高也只能处理频率为f/10的模拟信号。4.3 频率计遇到的问题4.3.1 计数模块当初编写这个模块是,将它编写成为组合逻辑电路了,故进行软件仿真时这款软件就死机了没有响应,经过韩老师的指点说计数器是一个时序电路怎么能没有时钟。于是加了一个时钟信号进去果然仿真成功了问题解决。4.3.2 频率控制模块该模块是在频率计进行下载在板上运行时,用示波器观察各个端口的信号是发现TETEN(计数允许信号)与CLR(计数清零信号)两者的波形恰好给弄反了,修改程序后测量信号结果才是正确。4.3.3 频率计在板上调试频率计时,发现不管怎样修改程序LED数码管显示的结果均是错误的显示值。经老师

51、指点知道问题可能出在扫描检测模块的时钟太快了,没有检测到采样值。由此我特意查看相关资料知道如果要扫描检测一个数据,必须使扫描时钟信号与数据信号进行同步才能准确检测去数据。经过苦思后,突然发现可以利用AD芯片中输出的转换数据输出允许信号ENABLE作为扫描信号,因为它刚好与输出的数据同步,这个就很好的解决了同步扫描信号到底需要多大的具体值这个问题。4.4 点阵调试遇到的问题在板上调试点阵模块时,发现点阵上显示的内容只有一个字。我开始一直以为是我的程序有问题,但是修改程序后仍然解决不了问题。经韩老师指点发现是资源内部有冲突,根据调试的现象来看问题可能出现在三个方面中。一、扫描时钟有问题。二、没有扫

52、描到下一帧的数据。三、点阵模块中的ROM有问题。经过对相关程序的波形仿真,首先发现扫描时钟没有产生。修改程序后,扫描时钟有信号但是仍然是只显示一个字,在对相关程序进行波形仿真发现能够扫描下一帧。由此可以判断问题出在ROM中,检查ROM中的数据没有问题,结果发现ROM数据地址与存储器的地址不匹配,修改后点阵正常显示。4.5 系统调试现象因仿真软件自身的原因无法产生系统的仿真结果,故该系统的现象是在硬件上实现的。其现象具体为:程序下载完点阵上显示出通信工程二班夏梅字样,当接入被测信号1KHz的正弦波,而在LED数码管上显示的测量值为1.048KHz,此时按下K0键可以看见点阵上显示正弦波字样,如果

53、再按下K0键还可以看见点阵上显示三角波字样且能够在DAC0832的模拟信号输出端口查看到回放的被测信号正弦波的波形。这个频率值与被测信号有一定的误差。结 论本系统主要是研究数据的采集和相关的处理,该系统的新颖处是加入了对信号的频率测量,而且模拟信号的测量完全没有用比较电路进行处理后传输给计数器进行二次处理,而是直接将采集的信号在FPGA内部进行相关编程实现的。而这也是本系统的难点及独到之处。在这次毕业设计的几个月的时间里,让我对QUARTUSII这个软件的使用更加熟练,并且学会了一些高级的技巧。同时也让我对VHDL语言有了更多的了解,提高了我的编程能力。虽然在研究期间我遇到了很多的困难,犯过很

54、多的错误但是通过这次的设计,让我学会了独立思考问题和解决问题的方法。虽然我完满的完成了毕业设计的任务,但是我在知识方面的欠缺,我在今后还有很长的一段路需要走。本文主要是介绍了设计方案的选择及设计方案是如何实现的,侧重点在于实现方案所需要的方法,同时也介绍了该系统软硬件的调试并简要的介绍了该系统的任务及发展背景。 致 谢经过几个月的学习研究与探索,我的研究终于完成了。看着自己的成果,心里有说不出的苦与乐,苦于研究过程中所遇到的种种挫折,每一个模块的研究都是经历了很多次的验证后才得以确定的。有时候真的会感到十分的无助和无奈。乐于在实践的过程中我所体验到的东西及对自己的能力的又一次的提升。在这次的设

55、计中我遇到了很多的问题,但是我都一一克服了。在这里我想要特别谢谢我们的韩老师,是她让我从迷雾中走出,是她教会我独立思考问题的重要性,是她给我指点让我解决了问题。她用她那富有个性的教育方法让我由依赖别人到学会思考问题。我觉得她是一位具有创新思想的好老师。 在这里我要再次的感谢韩老师对我的教育培养,在此我想向韩老师致敬。同时也感谢二系实验室的王老师和陈老师给我提供的试验环境。谢谢您们!祝您们身体健康!工作顺利! 参考文献 1 林敏,方颖立VHDL数字系统设计与高层次综合北京:电子工业出版社,20022 张筱华,石方文.通信英语(第四版). 北京:人民邮电出版社,20043 刘明辉基于FPGA的嵌入

56、式系统设计北京:国防工业出版社,20074 刘韬FPGA数字电子系统设计与开发实例导航北京:人民邮电出版社,20055 康华光电子技术基础数字部分(第四版)北京:高等教育出版社,19876 陈曦通信与电子系统试验指导书武汉:华中科技大学武昌,20057 罗苑裳.CPLD/FPGA常用模块与综合系统设计实例精讲.北京:电子工业出版社,20078 罗朝霞,高书莉.CPLD/FPGA设计与应用.北京:人民邮电出版社,20079 张立科.CPLD/FPGA应用开发技术与工程实践.北京:人民邮电出版社,200510 黄炎.单片机典型模块设计实例导航(第二版).北京:人民邮电出版社,200811 黄智伟.

57、 FPGA系统设计与实践. 北京:电子工业出版社,200512 杜生海. FPGA设计指南器件、工具和流程.北京:人民邮电出版社,200713 康华光电子技术基础模拟部分(第四版)北京:高等教育出版社,198714 杨恒. FPGA/CPLD最新实用技术指南. 北京:清华大学出版社,2005.15 赵峰. FPGA上的嵌入式系统设计实例. 西安:西安电子科技大学出版社,2008.16 Titu.s,Jon. DWDM communications rely on basic test techniques.Test and Measurement World,2000. 17 Clive “Max” Maxfield.The Design Warriors Guide to FPGAsDevices,Tools and Flows.Men

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!