基于FPGA的数据采集系统电路毕业设计_第1页
基于FPGA的数据采集系统电路毕业设计_第2页
基于FPGA的数据采集系统电路毕业设计_第3页
基于FPGA的数据采集系统电路毕业设计_第4页
基于FPGA的数据采集系统电路毕业设计_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

1、 PAGE22 / NUMPAGES23 毕业论文(设计)题目 基于FPGA的数据采集系统电路设计目录 TOC o 1-3 h z u HYPERLINK l _Toc290586397第一章绪论 PAGEREF _Toc290586397 h 3HYPERLINK l _Toc2905863981.1 引言 PAGEREF _Toc290586398 h 3HYPERLINK l _Toc2905863991.2 EDA简介 PAGEREF _Toc290586399 h 3HYPERLINK l _Toc2905864001.3 FPGA简介 PAGEREF _Toc290586400 h

2、 3HYPERLINK l _Toc2905864011.4 VHDL语言简介 PAGEREF _Toc290586401 h 3HYPERLINK l _Toc2905864021.5 Quartus II简介 PAGEREF _Toc290586402 h 4HYPERLINK l _Toc2905864031.6 数据采集技术简介 PAGEREF _Toc290586403 h 4HYPERLINK l _Toc290586404第二章总体设计 PAGEREF _Toc290586404 h 4HYPERLINK l _Toc2905864052.1 硬件设计 PAGEREF _Toc2

3、90586405 h 4HYPERLINK l _Toc2905864062.1.1 线性电源模块 PAGEREF _Toc290586406 h 4HYPERLINK l _Toc2905864072.1.2 数据采集模块 PAGEREF _Toc290586407 h 6HYPERLINK l _Toc2905864082.1.3 数据输出模块 PAGEREF _Toc290586408 h 8HYPERLINK l _Toc2905864092.1.4 按键控制模块 PAGEREF _Toc290586409 h 10HYPERLINK l _Toc2905864102.2 软件设计 P

4、AGEREF _Toc290586410 h 11HYPERLINK l _Toc2905864112.2.1 ADCINT设计 PAGEREF _Toc290586411 h 11HYPERLINK l _Toc2905864122.2.2 CNT10B设计 PAGEREF _Toc290586412 h 12HYPERLINK l _Toc2905864132.2.3 RAM8设计 PAGEREF _Toc290586413 h 12HYPERLINK l _Toc2905864142.2.4时钟控制设计 PAGEREF _Toc290586414 h 12HYPERLINK l _Toc

5、2905864152.2.5系统顶层设计 PAGEREF _Toc290586415 h 13HYPERLINK l _Toc290586416第三章系统软硬件调试 PAGEREF _Toc290586416 h 14HYPERLINK l _Toc290586417结论 PAGEREF _Toc290586417 h 15HYPERLINK l _Toc290586418致 PAGEREF _Toc290586418 h 15HYPERLINK l _Toc290586419参考文献 PAGEREF _Toc290586419 h 15HYPERLINK l _Toc290586420英文翻

6、译 PAGEREF _Toc290586420 h 17HYPERLINK l _Toc290586421附录一线性电源、FPGA外围电路和FPGA最小系统连接口PCB PAGEREF _Toc290586421 h 18HYPERLINK l _Toc290586422附录二系统各模块VHDL程序 PAGEREF _Toc290586422 h 19摘要论文介绍了基于FPGA的数据采集系统电路的工作原理和设计过程。根据数据采集技术原理,以Altera公司的EP2C8Q208C8N芯片为核心器件,通过ADC0809采集数据,并用DAC0832输出数据,在Quartus II平台上,通过VHDL

7、语言编程完成数据采集系统电路的软件设计、编译、调试、仿真和下载,再与外围硬件电路相结合调试与设计,最终实现数据采集系统电路的完成。关键词FPGAQuartus IIVHDL 数据采集第一章 绪论1.1 引言随着数字系统的发展,广泛应用于各种学科领域与日常生活,微型计算机就是一个典型的数学系统。但是它只能对输入的数字信号进行处理,其输出信号也是数字信号。而在工业检测控制和生活中的许多物理量都是连续变化的模拟量,如温度、压力、流量、速度等,这些模拟量可以通过传感器或换能器变成与之对应的电压、电流或频率等电模拟量。为了实现数字系统对这些电模拟量进行检测、运算和控制,就需要一个模拟量与数字量之间的相互

8、转换的过程。即常常需要将模拟量转换成数字量,简称为AD转换,完成这种转换的电路称为模数转换器,简称ADC。1.2 EDA简介EDA,即电子设计自动化(Electronic Design Automation)的缩写。它融合了大规模集成电路制造急速、ASIC测试和封装技术、FPGA/CPLD编程下载技术、自动测试技术、计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)设计的设计概念,为现代电子理论和设计的实现和发展提供了可能性1。EDA技术是一种综合性学科,打破了软件和硬件见的壁垒,把计算机的软件技术与硬件技术、设计效率和产品性能结合在一起,它

9、代表了电子设计技术和应用技术的发展方向。 EDA技术一般包括以下容:1.大规模可编程逻辑器件;2.硬件描述语言;3.软件开发工具;4.实验开发系统2。1.3 FPGA简介FPGA,即现场可编程门阵列(FieldProgrammable Gate Array)的缩写。它是一种集成度较高的器件,属于复杂PLD。FPGA具有体系结构和逻辑单元灵活、集成度高以与适用围宽等特点,在产品研发和开发中具有很大的优势。用FPGA做一些协议实现和逻辑控制,如果协议理解错误或者逻辑需要更改,不需要动PCB。另外,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。目前FPGA的品种很多,有XILINX的

10、XC系列、TI公司的TPC系列、ALTERA公司的FIEX系列等。本设计用的是Altera公司的EP2C8Q208C8N芯片,里面有68416个逻辑单元,并提供了622个可用的输入/输出引脚和1.1M比特的嵌入式寄存器。它提高了百分之六十的性能和降低了一半的功耗,而低成本和优化特征使它为各种各样的汽车、消费、通讯、视频处理、测试与测量、和其他最终市场提供理想的解决方案3。1.4VHDL语言简介诞生于1983年的VHDL,是Very-High-Speed Integrated Circuit Hardware Description Language的简称,1987年底,VHDL被作为“IEEE

11、标准1076”发布。VHDL不仅可以作为系统模拟的建模工具,而且可以作为电路系统的设计工具,能通过Quartus II把VHDL源码自动转化为基本逻辑元件连接图,这极大的推进了电路自动设计4。VHDL能从多个层次对数字系统进行建模和描述,所以大大简化了电路设计的任务,提高了设计效率。1.5 Quartus II简介由Altera提供的FPGA开发集成环境Quartus II,因为其运行速度快,界面统一,功能集中,易学易用等特点,迅速占领了市场5。Quartus II支持VHDL、Verilog的设计流程,提供了完整的多平台设计环境,能满足各种特定设计的需要,同时,它还具备仿真功能,因此给系统的

12、软硬件设计和调试带来了很大的便利。1.6 数据采集技术简介系统利用FPGA直接控制ADC0809对模拟信号进行采样,将转换好的8位二进制数据存储到存储器中,在完成对模拟信号一个或数个周期的采样后,通过DAC0832的输出端将数据读取出来。第二章 总体设计2.1 硬件设计2.1.1线性电源模块根据系统要求,需提供+12V、-12V、+5V的电源。因此我采用了滤波电容、防自激电容、LED灯与固定式三端稳压器LM7905、LM7812和LM7912等器件搭建成能产生精度高、稳定度好的直流输出电压的线性电源电路。系统的线性电源电路部分原理图如图2.1所示:图2.1 系统的线性电源模块电路当电路接通后,

13、如果LED灯亮起,则代表能产生出要求的电压。为了实验的携带方便,我另外再加上电源变压器和整流电桥。在画PCB的时候,用大面积覆铜,有助于美观和节约实验器材。实物如图2.2所示:图2.2系统的线性电源实物图PCB图见附录一。2.1.2 数据采集模块系统采用ADC0809进行数据采集,ADC0809是逐次逼近式A/D转化器,由8位A/D转换器、8路多路开关以与微处理机兼容组成的控制逻辑的CMOS组件。ADC0809每进行一次比较,即决定数字码中的以为码的去留操作,需要8个时钟的脉冲,而它是8位A/D转换器,所以它完成一次转换需要8*8=64个时钟,这样它的转换时间为t=64*(1/f),f为时钟频

14、率。系统用的时钟为500KHz,所以ADC0809的转换时间为128us6。因为采样时需要满足采样定理,即采样频率需要大于等于输入信号最高频率的2倍,所以ADC0809能采样的最高频率为3906.25Hz。ADC0809的主要特性:分辨率为8位,具有转换启停控制端,单个+5V电源供电,模拟输入电压围0+5V,不需要零点和满刻度校准,系统中由可调电位器提供,工作温度围为-40+85摄氏度,低功耗,约15mW。它的部逻辑结构如图2.3所示:图2.3 ADC0809部逻辑结构ADC0809引脚排列如图2.4所示:图2.4 ADC0809引脚排列ADC0809为28引脚双列直插式封装,各引脚含义如下:

15、IN0IN7:8位模拟量输入引脚。D0D7:8位数字输出量引脚。START:A/D转换启动信号输入端。EOC:转换结束信号输出引脚,开始转换时为低电平,当转换结束时为高电平。OE:输出允许控制端,用以打开三态数据输出锁存器。CLK:时钟信号输入端。VCC:+5V工作电压。VREF():参考电压正端。GND:地。VREF():参考电压负端。ALE:地址锁存允许信号输入端。ABC:地址输入线。系统的数据采集模块部分电路原理图如图2.5所示:图2.5 系统数据采集模块电路当ALE高电平有效时,因为ABC接的都是低电平,所以选择的是IN0通道。当START为上跳沿时,所有部寄存器清零;下跳沿时,开始A

16、/D转换;在转换期间,START需保持低电平不变。而当EOC为高电平时,表明A/D转换结束。当OE=1时,输出转换得来的数据;否则,输出数据线呈高阻态。PCB图见附录一。2.1.3 数据输出模块系统采用的数据输出为DAC0832。DAC0832是8分辨率的D/A转换集成芯片,由8位输入锁存器、8位DAC寄存器、8位D/A转换电路与转换控制电路构成。它因为价格低廉、接口简单、转换控制容易等优点,而得到了广泛的应用7。DAC0832的主要参数有:1.分辨率为8位。2.转换时间为1us。3.满量程误差为1LSB。4.参考电压为-10+10V。5.供电电源为+5+15V。6.逻辑电平输入与TTL兼容。

17、它的部逻辑结构如图2.6所示:图2.6 DAC0832部逻辑结构DAC0832引脚排列如图2.7所示:图2.7DAC0832引脚排列CS:片选信号输入线(选通数据锁存器),低电平有效。WR1:数据锁存器写选通输入线,负脉冲(脉宽应大于500ns)有效。AGND:模拟信号地。D0D7:8位数据输入线。VREF:基准电压输入线,围为-10V+10V。Rfb:反馈信号输入线,可通过改变Rfb端外接电阻值来调整转换满量程精度。DGND:数字信号地。IOUT1:电流输出端1,其值随DAC寄存器的容线性变化。IOUT2:电流输出端2,其值与IOUT1值之和为一常数。XFER:数据传输控制信号输入线,低电平

18、有效。WR2:DAC寄存器选通输入线,负脉冲(脉宽应大于500ns)有效。ILE:数据锁存允许控制信号输入线,高电平有效。VCC:电源输入端,围为+5V+15V。本实验用的是+5V。DAC0832的输出放大和滤波电路采用TL082芯片搭建。TL082是一通用J-FET双运算放大器。它的部结构和引脚排列如图2.8所示8:图2.8 TL082部结构和引脚排列TL082为8引脚双列直插式封装,各引脚含义如下:(1)Output 1输出1;(2)Inverting input 1反向输入1;(3)Non-inverting input 1正向输入1;(4)Vcc-电源-12V;(5)Non-inver

19、ting input 2正向输入2;(6)Inverting input 2反向输入2;(7)Output 2输出2;(8)Vcc+电源+12V。系统的数据输出电路部分原理图如图2.9所示:图2.9 系统数据输出模块电路2.1.4 按键控制模块系统采用两个按键开关设计正/负电平输入信号电路,作按键控制模块。一个按键控制CLR,另一个按键控制WREN。两个按键开关电路如图2.10所示:图2.10 系统按键控制模块电路系统实物如图2.11所示:图2.11 系统实物图在画PCB的时候,用大面积覆铜,有助于美观和节约实验器材。系统PCB图见附录一。2.2 软件设计2.2.1 ADCINT设计ADCIN

20、T是控制0809的采样状态机。由ADC0809驱动程序生成的原理图如图2.12所示:图2.12 ADCINTADCINT仿真图如图2.13所示:图2.13 ADCINT仿真图2.2.2 CNT10B设计CNT10B中有一个用于RAM的9位地址计数器,它的工作时钟CLK0由WREN控制:当WREN=1时,CLK0=LOCK0,LOCK0来自于ADC0809采样控制器,这时处于采样允许阶段,RAM的地址锁存时钟inclock=CLKOUT=LOCK0;这样每当一个LOCK0的脉冲通过ADC0809时采到一个数据,并将它存入RAM中。当WREN=0时,采样禁止,允许读出RAM中的数据。把示波器接到D

21、AC0832的输出端就能看到波形。CNT10B原理图如图2.14所示:图2.14 CNT10B2.2.3 RAM8设计RAM8是LAM_RAM,它有8位数据线和9位地址线。WREN是写时能,高电平有效。RAM8原理图如图2.15所示:图2.15 RAM82.2.4时钟控制设计由芯片EP2C8Q208C8N产生的20MHz的时钟做输入,经过分频以后,一路输出与芯片EP2C8Q208C8N的169引脚相连的500KHz的时钟,另一路则输出给ADC0809供电的10KHz的时钟。时钟控制原理图如图2.16所示:图2.16 时钟控制2.2.5系统顶层设计系统顶层原理框图如图2.17所示,图中D为8位数

22、据输入,CLK为系统时钟输入信号频率,由系统时钟信号输入电路控制。Q为RAM8的8位输出,与DAC0832相接。图2.17 系统顶层原理框图系统顶层仿真图如图2.18所示:图2.18 系统顶层仿真图系统引脚锁定示意图如图2.19所示:图2.19系统引脚连接图系统各模块VHDL程序见附录二。第三章 系统软硬件调试根据系统总体要求,把写好的VHDL程序进行引脚锁定,综合,适配,编程下载,调试。将线性电源模块、数据采集模块、FPGA模块、数据输出模块与按键控制模块连接好,时钟频率由系统时钟信号输入电路提供,然后通过JTAG下载模式在线将生成的配置文件写入芯片中,如图3.1所示:图3.1 程序下载通过

23、反复调试、修改、功能验证确认无误后,用示波器探头接DAC0832输出端。测得的实验数据见表1:表1 系统测试数据输入波形的频率输出波形的频率50.050Hz50.031 Hz99.630 Hz99.611 Hz113.77 Hz113.40 Hz150.24 Hz150.29 Hz199.18 Hz199.22 Hz250.61 Hz250.53 Hz300.54 Hz300.59 Hz350.96 Hz351.03 Hz407.50 Hz407.40 Hz测得的数据围从50.050 Hz到407.50 Hz,平均相对误差为0.0039,具有较高的精度,基本达到了设计要求。结论本设计从可编程逻

24、辑器件(FPGA)着手,用VHDL语言,结合ADC0809、DAC0832、TL082等芯片实现了数据采集与输出。首先通过对数据采集原理进行分析,总体上提出实现数据采集与输出方案,通过CNT10B和RAM8等模块的设计,用FPGA实现了数据的采集与输出,并完成了软硬件设计和调试。其放大电路和滤波电路用的芯片是TL082,其放大倍数合适,低通滤波性能较好,输出波形较为平滑。同时,设计中还存在一些不足之处,主要表现在以下几个方面。第一,外围电路的数据采集模块不够理想,成为影响波形输出的主要因素,可以用更好的AD芯片。第二,滤波部分可以找到更合适的滤波器件,以提高波形的平滑度。第三,RAM8采用8位

25、,针对输出平坦度不够的问题,可以通过软硬件修正的方法来解决,可以扩充ROM的容量。致首先要感指导老师的严格指导和亲切关怀,从一开始选题方向的指导,以与VHDL程序上的帮助,又提供了实验室这么好的良好的设计环境和条件,最终才使我能够顺利完成项目的设计。同时也感同组的同学以与我们专业其他同学,此次设计的顺利完成少不了你们的毫无保留帮助和倾尽全力的支持,在此我衷心感你们。由于自身水平有限,设计中难免存在一些不足之处,敬请各位老师批评指正。参考文献英文翻译Digital acquisition system circuit based on FPGAPhysics and information en

26、gineering collegeElectronic information science and technology major070303029 Borui Lifaculty adviser Yongxi Zeng lecturerAbstract:This paper introduces the working principle and design process of the data acquisition system circuit based on FPGA. According to the principle of data collection techno

27、logy, Altera company in EP2C8Q208C8N chip in for the core device, collect data by the ADC0809 output data by the DAC0832, through the VHDL language programming complete simple oscilloscope software design, compilation, debugging, simulation and download and peripheral hardware circuit, and combining

28、 the final design debugging, data acquisition system circuit in Quartus II platform.key words: FPGA;Quartus II;VHDL;data acquisition附录一 线性电源、FPGA外围电路和FPGA最小系统连接口PCB线性电源FPGA外围电路和FPGA最小系统连接口附录二 系统各模块VHDL程序时钟控制的VHDL源程序:library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.st

29、d_logic_unsigned.all; entity clk_b is port(clk: in std_logic; clk500K,clk10K: out std_logic);end entity; architecture behave of clk_b is signal clk1,clk2: std_logic;signal temp1: integer range 0 to 49; signal temp2: integer range 0 to 2499;begin process(clk)-500kHZbeginif clkevent and clk=1 thentemp

30、1=temp1+1;if temp1=24 thenclk1=not clk1;temp1=0;end if; end if;end process;process(clk)-10kHZbeginif clkevent and clk=1 thentemp2=temp2+1;if temp2=1249 thenclk2=not clk2;temp2=0;end if; end if;end process;clk500K = clk1; clk10K = clk2;end behave;ADCINT的VHDL源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.AL

31、L;ENTITY ADCINT IS PORT(D : IN STD_LOGIC_VECTOR(7 DOWNTO 0); -来自0809转换好的8位数据CLK : IN STD_LOGIC; -状态机工作时钟EOC : IN STD_LOGIC; -转换状态指示,低电平表示正在转换ALE : OUT STD_LOGIC; -8个模拟信号通道地址锁存信号START : OUT STD_LOGIC; -转换开始信号OE : OUT STD_LOGIC; -数据输出3态控制信号ADDA : OUT STD_LOGIC; -信号通道最低位控制信号LOCK0 : OUT STD_LOGIC; -观察数据

32、锁存时钟Q : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); -8位数据输出END ADCINT;ARCHITECTURE behav OF ADCINT ISTYPE states IS (st0, st1, st2, st3,st4) ; -定义各状态子类型 SIGNAL current_state, next_state: states :=st0 ; SIGNAL REGL : STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL LOCK : STD_LOGIC; - 转换后数据输出锁存时钟信号 BEGINADDA = 0;-当ADDA=0,

33、模拟信号进入通道IN0;当ADDA=1,则进入通道IN1Q = REGL; LOCK0 ALE=0;START=0;LOCK=0;OE=0; next_state ALE=1;START=1;LOCK=0;OE=0; next_state ALE=0;START=0;LOCK=0;OE=0; IF (EOC=1) THEN next_state = st3; -EOC=1表明转换结束 ELSE next_state ALE=0;START=0;LOCK=0;OE=1; next_state ALE=0;START=0;LOCK=1;OE=1; next_state next_state = s

34、t0; END CASE ; END PROCESS COM ; REG: PROCESS (CLK) BEGIN IF (CLKEVENT AND CLK=1) THEN current_state=next_state; END IF; END PROCESS REG ; - 由信号current_state将当前状态值带出此进程:REG LATCH1: PROCESS (LOCK) - 此进程中,在LOCK的上升沿,将转换好的数据锁入 BEGIN IF LOCK=1 AND LOCKEVENT THEN REGL = D ; END IF; END PROCESS LATCH1 ; EN

35、D behav;CNT10B的VHDL源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT10B IS PORT (LOCK0,CLR : IN STD_LOGIC; CLK : IN STD_LOGIC; WE : IN STD_LOGIC; DOUT : OUT STD_LOGIC_VECTOR(8 DOWNTO 0); CLKOUT : OUT STD_LOGIC ); END CNT10B;ARCHITECTURE behav OF CNT10B IS SIGNAL CQI : STD_LOGIC_VECTOR(8 DOWNTO 0); SIGNAL

温馨提示

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

评论

0/150

提交评论