




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 简易数字电压表的设计 中 文 摘 要伴随着集成电路(ic)技术的发展,电子设计自动化(eda)逐渐成为重要的设计手段,己经广泛应用于模拟与数子电路系统等许多领域。数字电压表简称dvm,是一种用数字显示的电压测量仪表。其基本原理是采用数字化测量技术,对直流电压进行模数转换,转换成不连续、离散的数字形式并加以显示。系统主要分为如下几个模块:作为电压采集端口的模数转换单元、数据处理单元、以及电压值显示单元。其中利用adc0809作为模数转换器,fpga作为数据处理的核心器件,用led数码管进行电压值的显示。本次所设计的电压表的测量范围是05v,精度为0.01v。此电压表的设计特点为:通过软件编程下
2、载到硬件实现,设计周期短,开发效率高。关键字:fpga;a/d;vhdl;电子设计自动化(eda);数字电压表design of the summary digital voltmeter abstract with the development of integrated circuit(ic) technology, electronic design automation(eda) technology has become an important design method of analog and digital circuit system as.digital voltme
3、ter,short for dvm,is used to measure voltage with digital display.the basic principle is to use the digital measurement techniques to convert the dc voltage into discontinuous,discrete digital form and display them.the system can be mainly divide into the following several modules:voltage acquisitio
4、n as port of anolog-to-digital conversion unit,data processing unit and votage display unit.the adc0809 is used as ad converter ,fpga as the core of data processing devices,led digital tube is to display voltage value. this systems range is 0v to +5v and precision is 0.01v.the features of this elect
5、ric voltage watch are :pass the software program to download the hardware o realize , design the period is short ,development the efficiency is high. key word: fpga;a/d;vhdl;electronic design automation (eda );digital voltage 目录第一章 绪论11.1 课题的研究背景及意义11.2 课题任务、目标及方法11.3 论文内容和结构2第二章 基础知识介绍32.1 a/d转换器简介
6、32.2 adc0809a/d转换器32.2.1 adc0809结构32.2.2 adc0809主要特性42.2.3 adc0809时序图42.3 fpga知识介绍52.4 vhdl硬件描述语言62.5 quartus ii开发平台简介7第三章 系统设计与实现83.1系统设计的基本原理83.2 fpga功能模块的设计83.3 转换控制模块93.3.1 转换模块的工作原理93.3.2 转换模块元件例化113.3.3 转换控制模块仿真123.4 数据处理模块123.4.1 数据处理模块的工作原理123.4.2 转换模块的元件例133.4.3 数据处理模块仿真143.5 显示模块143.5.1 显示
7、模块的工作原理143.5.2 转换模块的元件例143.5.3 扫描显示模块仿真153.6 顶层文件设计153.6.1 顶层文件的设计流程153.6.2 总体例化的仿真163.7限幅输入保护电路17第四章 硬件测试及说明184.1 康芯实验箱简介184.2 实验电路模式5(no.5)介绍184.3 引脚锁定194.3.1 引脚锁定方法194.3.2 引脚锁定步骤194.4 配置文件下载204.5误差对比21第五章 结论23参考文献24致 谢25附 录26附录一:vhdl源程序代码26附录二:实验电路结构图no.532第一章 绪论随着信息技术获得了突飞猛进的发展,信息技术渗透了我们生活的几乎全部领
8、域,改变着人类的生存状态和思维模式。而我们的课题所涉及的电子设计自动化(eda)技术就是在这种时代背景下产生的,并影响巨大。fpga是新型的可编程逻辑器件,与传统 asic 相比,具有设计制造成本低、设计开发周期短、开发工具先进等优点,特别适合于小批量生产和产品的样品开发。采用 fpga 进行产品开发,可以灵活地进行模块配置,大大缩短了开发周期,也有利于数字电压表向小型化、集成化的方向发展1。1.1 课题的研究背景及意义目前电子技术的发展主要体现在eda领域,数字系统的设计正朝着速度快、容量大、体积小、重量轻的方向发展。eda技术发展迅猛,完全可以用日新月异来描述。eda技术的应用广泛,现在已
9、涉及到各行各业。数字电压表是一种用数字显示的电压测量仪表,由于数字电压表具有读数准确方便、精度高、误差小、灵敏度高和分辨率高、测量速度快等特点而备受青睐。基于数字电压表的广泛应用,对数字电压表设计的研究就显得非常有意义。1.2 课题任务、目标及方法本课题主要研究数字电压表的一般设计原理,并结合可编程逻辑器件(fpga)设计了一种方便、实用的数字电压表。 论文从研究数据采集的理论出发,提出一种由8位串行ad转换芯片、高性能fpga和pci总线接口组成的数据采集系统方案,并通过系统仿真验证了系统的可行性。该系统利用a/d器件对信号进行模数转换,利用fpga设计内部模块和时钟信号来进行电路控制及实现
10、数据缓存、数据传递等功能,最后通过控制器设计的数码管控制模块控制三个数码管显示处理过后的数据,就实现了将外部电压值显示在数码管上的功能,这样就实现了电子电压表的功能。系统主要分为如下几个模块:作为电压采集端口的模数转换单元、数据处理单元、以及电压值显示单元。其中利用adc0809模数转换器,fpga作为数据处理的核心器件,用led数码管进行电压值的显示。fpga作为采集系统的核心部件,完成了内部数字电路设计,使系统具有很高的可适应性、可扩展性和可调试性。本次设计选择目标芯片为ep1c6q240c8。1.3 论文内容和结构本论文主要研究基于fpga的数字电压表设计,论文的主要内容是:(1)数字电
11、压表基本理论研究;(2)提出了基于fpga的数字电压表系统软件设计方案;(3)对系统进行仿真并给出仿真结果。(4)对系统进行硬件测试。本文共分五章,第一章 绪论中概述了课题研究的背景,以及课题任务、目标及方法,并对课题特色和创新之处给予了概括;第二章 阐述了数字电压表设计中的基础知识;第三章 提出了基于ep1c6q240c8的数字电压表系统的软件设计方案;第四章为硬件测试及说明。第五章 论文总结。 第二章 基础知识介绍2.1 a/d转换器简介数字电压表的设计,包含有电压的测量和显示。除了使用vhdl语言来设计fpga芯片外,还必须再引入一个重要的ica/d(模拟/数字)转换器,来负责将模拟信号
12、的物理量。如电压值3v,转换为二进制数值,如00110001。而激活a/d转换器动作、接收a/d转换器传递过来的数字转换值、以及转换值调整成能对应的数字信号和显示数值的功能,将全部有fpga实现。a/d转换目标:将时间连续、幅值也连续的模拟信号转换为时间离散、幅值也离散的数字信号,它包括四个步骤:采样、保持、量化、编码。量化单位越小,整量化的误差也越小,数字量也越接近连续量本身的值。 2.2 adc0809 a/d转换器 2.2.1 adc0809结构adc0809是采样分辨率为8位的、以逐次逼近原理进行模数转换的器件。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模
13、拟输入信号中的一个进行a/d转换。图1 adc0809结构图adc0809芯片有28条引脚,采用双列直插式封装。各引脚功能如下: 1、in7in0:8路位模拟量输入通道;2、d7d0:8位数字量输出线;3、adda、addb、addc:地址输入线,作用为选择8路模拟通道中的一路; 4、ale:地址锁存允许信号,用于驱动锁存器锁存地址信息; 5、start:a/d转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动a/d转换)。 6、eoc:a/d0809转换结束状态信号,低电平时为转换正在进行,高电平时为转换结束;7、oe:输出允许信号。用于控制
14、三态输出锁存器向单片机上输出转换得到的数据。oe=0,输出数据线呈高电阻态;oe=1,输出转换得到的数据;8、clock:时钟脉冲输入通道;9、ref(+)、ref(-):参考电; 10、vcc:电源5v;11、gnd:接地端;2.2.2 adc0809主要特性1、8路输入通道,8位a/d转换器,即分辨率为8位。 2、转换时间为100s(时钟为640khz时),130s(时钟为500khz时)。3、具有转换起停控制端。 4、模拟输入电压范围05v,不需零点和满刻度校准。5、单个5v电源供电。6、低功耗,约15mw。7、工作温度范围为-4085摄氏度。 2.2.3 adc0809时序图图2 ad
15、c0809的工作时序如图2.2所示,start是转换启动信号,高电平有效;ale为模拟信号输入选通端口地址锁存信号,上升沿有效;一旦start有效后,状态信号eoc即变为低电平,表示进入转换状态,转换时间约为100us。转换结束后,eoc变为高电平。此后外部控制可以使oe有低电平变为高电平(输出有效),此时adc0809的输出数据总线d7.0从原来的高阻态变为输出有效,把转换好的8位数据结果输至数据总线,至此adc0809的一次转换结束了2。2.3 fpga知识介绍fpga(fieldprogrammable gate array),即现场可编程门阵列,它是在pal、gal、cpld等可编程器
16、件的基础上进一步发展的产物。它是作为专用集成电路(asic)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。fpga采用了逻辑单元阵列(logic cell array)概念,内部包括三个部分:输出输入模块iob(input output block)、可配置逻辑模块clb(configurable logic block)和内部连线(interconnect)。fpga采用了小型查找表(161ram)的方法实现组合逻辑目的,它通过把每个查找表和一个d触发器的输入端相连,再利用触发器来驱动其他驱动i/o或逻辑电路。通过这种方法实现了可以同时具有
17、组合逻辑功能和时序逻辑功能的基本逻辑单元模块,这些单元模块通过金属连线实现连接到i/o模块或互连。为了实现fpga的逻辑可以通过向其内部静态存储单元加载编程数据,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与i/o间的联接方式,并最终决定了fpga所能实现的功能,fpga允许无限次的编程1-3。1、fpga设计具有以下优点:(1)硬件设计软件化(2)高度集成化,高工作频率(3)支持多种接口2、fpga设计流程: 可编程逻辑器件的设计是利用eda开发软件和编程工具对器件开发的过程。高密度复杂可编程逻辑器件的设计流程如图2.3所示:设计准备设计输入(原理图、vhdl语言、波形
18、图)设计处理(优化、综合适配、分割布局、布线)器件编程功能仿真器件测试时序仿真图3可编程逻辑器件设计流程2.4 vhdl硬件描述语言硬件描述语言(hardware description language,hdl)是电子系统硬件行为描述,结构描述,数据流描述的语言。vhdl是“超高速集成电路硬件描述语言”(vhsic hardware description languge)的简称,起初目标只是一个使电路文本化的一种标准。vhdl语言的建模能力和电路描述能力很强大,对于一个数字系统可以同时从多个层次对其进行描述和建模,从而不仅可以简化硬件设计任务,而且还可以同时提高其可靠性和设计效率。除此之外
19、,vhdl语言与设计平台无关和具体硬件电路无关的特属性质和良好的系统描述和电路行为描述的能力,使其在层次化结构化设计和语言易读性方面表现了强大的应用潜力和生命力。vhdl有三种设计模式:自底向上、自顶向下和混合方法。为了很好地适应当今许多电子产品的一些突出生特性,vhdl在命周期缩短,需要多次重新设计以融入最新技术、改变工艺等方面有很大的改进4。2.5 quartus ii开发平台简介 quartus ii 是一款内嵌自有的综合器以及仿真器,并由altera公司开发的软件。它支持多种设计输入形式,例如vhdl、ahdl、原理图等,能够单独完成完整pld设计流程,从设计输入到硬件配置。 quar
20、tus ii 不但可以使用tcl脚本完成设计流程,还提供了完善的用户图形界面设计方式。其既可以在xp系统上使用,也可以在linux和unix系统上使用。具有界面统一,功能集中,运行速度快,易学易用等优点。 由于quartus ii支持了包含了lpm/megafunction宏功能模块库的altera的ip核,使得用户可以充分利用成熟的模块,因此即简化了设计的复杂性又加快了设计速度。 此外,quartus ii 是一种综合性的开发平台,通过和matlab/simulink与dsp builder工具相结合,可以很方便地实现各种dsp应用系统;同时支持altera的片上嵌入式软件开发、集系统级设计
21、、可编程系统(sopc)开发、可编程逻辑设计于一体1-5。第三章 系统设计与实现在硬件电子电路设计领域中,电子设计自动化(eda)工具已成为主要的设计手段,而vhdl语言则是eda的关键技术之一。它采用自顶向下的设计方法,即从系统总体要求出发,自上至下地将设计任务分解为不同的功能模块,最后将各功能模块连接形成顶层模块,完成系统硬件的整体设计6。3.1系统设计的基本原理数字电压表的结构如图3.1,其硬件包括三个部分。该硬件电路包括 adc0809、数字处理电路、数据显示电路。其中最主要的部分就是数据处理电路部分它是整个系统的核心。它由对adc0809的控制电路、分频电路、加法电路、减法电路,计数
22、器、存储器等组成。所以我们应该首先了解adc0809的控制电路7。adc0809数 据处 理模 块3位数码管显示数据输入数据输出h数据输出m数据输出llckstartaddaoeeocale模数信号输入图4 系统原理结构图3.2 fpga功能模块的设计系统的核心电路由fpga完成,此设计用vhdl语言对它进行设计,实现三大功能模块6-8:1、转换控制模块:激活a/d转换器动作,接收a/d转换器传递过来的数字转换值。2、数据处理模块:将从adc0809接收到的转换数值调整成对应的数字信号,并输出相应的bcd码。3、显示模块:产生相应的数码管的片选信号,并将数值处理模块输出的bcd码转换成相应的7
23、段数码驱动值,送到相对应的led数码管进行数据显示。3.3 转换控制模块3.3.1 转换模块的工作原理本模块完成adc0809的初始化、a/d转换的启动、地址锁存、通道选择、状态读取及数据读取、数据锁存等功能。此模块的软件设计主要采用vhdl的多进程状态机完成。st0st4st2st1st3对adc0809初始化启动a/d转换采样周期中等待eoc=0正在转换eoc=1转换结束oe=1数据输出有效lock:0-1锁存转换好的数据图5控制adc0809采样状态图工作时序如下: 1、上电瞬问,fpga被初始化,adda被置成1,状态机处于第1个状态(st0),此时各控制信号状态为ale=0,star
24、t=0,oe=0,lock=0,adc0809被初始化。 2、第1个上升沿到来时,状态机由第1个状态(st0)转换到第2个状态(st1),此时各控制信号状态为ale=1,start=1,oe=0,lock=0,此时地址锁存信号有效,ale将驱动锁存器把adda的1状态信息锁存到地址锁存器并译码,系统选择in1即通道1作为模拟信号的输入通道,同时strat信号有效,启动a/d转换采样。 3、第2个上升沿到来时,状态机由第2个状态(st1)转换到第3个状态(st2),此时各控制信号状态为ale=0,start=0,oe=0,lock=0,此时如果eoc信号状态被检测到由低电平变成高电平(即a/d转
25、换完成),则当下个时钟上升沿到来时,系统将转换到第4个状态(st3),否则将继续保持在第3个状态(st2),直到转换完成。由第3个状态(st2)转换到第4个状态(st3)后,oe被置高电平,允许转换数据输出,其余信号状态保持不变。 4、第3个时钟上升沿到来时,状态机将由第4个状态(st3)转换到第五个状态5(st4),lock被置成高电平,其余信号与第4个状态(st3)保持一样。当lock由低电平转换到高电平的瞬问,稳定的数据将被锁存到锁存器中。 5、第4个上升沿到来时,状态机将返回到第1个状态(st0)。控制器在时钟信号控制下完成状态的转换,实现了对adc0809转换器的控制。其程序结构如图
26、3.3所示,程序含三个进程: 一、reg进程是时序进程,它在时钟信号clk的驱动下,next_state中的内容将不断地被赋给current_state,并由信号状态变量传输给组合进程com。 二、组合进程com有两个主要功能: 1、状态译码器功能,即根据状态变量来自current_state信号,以及状态线信号eoc来自adc0809,决定下一状态的转移方向,即确定次态的状态变量。 2、采样控制功能,即adc0809的控制信号线ale、start、oe等输出相应的控制信号根据current_state中的状态变量。 三、数据锁存进程latch1,采样结束后将由lock向锁存器件进程latch
27、1发出锁存信号,以便将由adc0809的d7.0数据输出口输出的8位转换数据锁存起来1-9。fpga/cpld状态机fsmprocessreg时序进程processcom组合进程processlatch1锁存器adc0809 ale start oe adda eoc d7.0current_statenext_statelockq7.0clk模拟信号输入a.d工作时钟clk=750khz图6 采样状态机结构框图3.3.2 转换模块元件例化1、全程编译:编译前首先选择processing菜单的start compilation项,启动全程编译。 在完全编译情况下,quartus ii进行4项工
28、作:analysis & synthesis、fitter、assembler、和 timing analysis,并给出相映的信息报告,还可以通过选择start单独运行这四个模块。如果有错误产生,可在工程管理器窗口下方的错误信息报告栏里双击某一错误信息,在程序中确定错误位置,对其进行修改,然后重新保存、编译,直到成功为止10。 图7 完全编译后出现报错信息 2、包装元件入库 选择菜单filecreat/updatecreat symbol files for current file选项。此时即将当前文件变成了一个包装好的单一元件,并被放置在工程路径指定的目录中以备后用。 图8 包装元件入库
29、 3、转换模块元件例化符号 图9 转换控制模块元件符号3.3.3 转换控制模块仿真用状态机作法,产生adc0809的转换启动控制信号、模拟信号输入选通端口地址锁存信号、状态信号、输出信号,通过状态信号eoc判断转换是否结束;转换结束后将转换数据00000100锁存并输出,仿真结果正确。图10 转换控制模块仿真波形图3.4 数据处理模块3.4.1 数据处理模块的工作原理 本设计采用5v参考电压,测量范围为05v,由于转换器件为8位,它的输出状态共有28=256种,则每两个状态值为5/(256-1),约为0.0196v,这代表adc0809所能转换的最小电压值,我们在该实验中取最小电压准位为0.0
30、2v,故电压的最小分辨率为0.02v。 常用的测量方法为:当读取到数据线db7db0转换值是xxh时,电压测量值为uxxh0.02v;由于使用乘法计算处理对应的电压值将会耗用大量的fpga内部组件资源,本设计采用查表命令的方式来得到正确的电压数值。因此待转换数据与实际电压值对应关系见表1:参考电压进制高四位电压/v低四位电压/v十六进制二进制0.000.000 00000.320.0210001.2.240.14701112.560.16 81000.4.480.28 e11104.800.30 f1111表1 待转换数据与实际电压值对应表 由表1的对应关系,编一个查表程序,表内预先存放电压值
31、对应的bcd码,根据采集到的数字电压值,从表中查到高四位bcd码和第四位bcd码,再进行十进制数相加即可得最终电压值的bcd码。bcd码就是利用4位二进制编码表示十进制数的一种编码。由于bcd码表示为0-9,所以当运算结果大于9是必须进行十进制的调整,所谓十进制调整,根据已知的数字逻辑原理就是将运算结果加0110(6)进行修正。 例如:11011110为从adc0809上取得的数据,其中高四位1101对应的电压值为4.16v,其相对应的bcd编码则为010000010110;低四位1110对应的电压值为0.28v,其相对应的bcd编码应为000000101000。相应的bcd码低4位相加为11
32、10,大于9,加6(0110)将其调整为0100,并且向前有一进;中间4位bcd码相加的结果为0011,由于低位有进位,因此最终结果为0100;相应的高4位相加结果为0100。相应位相加合计的值为4.44v,与4.16+0.28的结果相符。其他计算依此类推11。3.4.2 转换模块的元件例 图11 数据处理模块元件符号3.4.3 数据处理模块仿真本模块的功能仿真结果如图3.9所示,当转换数据为00100100,通过查表高4位0010是0.64v,而低4位0100是0.08v,最后的电压输出结果是0.64v+0.08v=0.72v,它的bcd码表示为000001110010,仿真结果正确。图12
33、 数据处理模块仿真图3.5 显示模块3.5.1 显示模块的工作原理 本模块的任务是把数据处理模块处理得到的bcd送进数码管驱动其显示。由于硬件测试选择实验电路模式5,由对应的电路图可知,8位二进制数转换成bcd码后为12位,之后可经外部的7段译码器显示于实验系统上的3个数码管。3.5.2 转换模块的元件例图13 扫描显示模块元件符号 3.5.3 扫描显示模块仿真 本模块的功能仿真结果如图3.11所示,当reset=1即重置信号为高电平时,数据清零,显示为0.00,当reset=0时,扫描电路依次扫描bcd_l、bcd_m、bcd_h信号,并显示在led显示板上。图14 扫描显示模块仿真图3.6
34、 顶层文件设计3.6.1 顶层文件的设计流程1、为本项工程设计建立文件夹,取名为volmeter,路径为f:volmeter。 2、创建工程后,将设计文件加入工程中。选择菜单projectadd/remove files in project,在弹出的对话框中单击file栏按钮,将与工程相关的所有vhdl文件加入此工程,即得到如图3.12所示的情况。图15 将所有相关的文件都加入进此工程3、现在利用已设计好的模块,完成顶层项目数字电压表的设计。 (1)选择菜单filenew,在弹出的new对话框中选择device design file页的原理文件编辑输入项block diagram/sche
35、matic file,按ok按钮后将打开原理图编辑窗口。 (2)在新打开的原理图编辑窗口双击鼠标,在弹出的元件输入对话框中单击按钮“”,找到基本原件路径,选中需要的元件,单击“打开”按钮,此元件显示在窗口中,然后单击symbol窗口的ok按钮,即可将各模块元件调入原理图编辑窗口中。 图16 元件输入对话框 (3)调出元件input、output、adcint和bcd,并连接好数字电压表电路图。数字电压表顶层文件原理图如下:图17 数字电压表顶层文件原理图3.6.2 总体例化的仿真以上三个程序模块用顶层文件拼合后得到如图3.15所示的仿真结果。图18 总体例化的仿真图3.7限幅输入保护电路本文设
36、计是能够测量05v之间的直流电压的数字电压表,因此需要在模数转换器adc0809之前加一个硬件电路,来防止输入电压超过5v而对电压表的测量产生影响。试验箱上有vr1电位器,通过它可以产生05v幅度可调的电压。其输入口是0809的in1(与外接口ain1相连,但当ain1插入外输入插头时,vr1将与in1自动断开)。若利用vr1产生被测电压,则需使0809的第25脚置高电平,即选择in1通道,参考附录二:实验电路结构图no.512。第四章 硬件测试及说明选择目标器件是ep1c6q240c8,建议选择实验电路模式5,由对应的电路图课件adc0809的转换时钟clk已经事先接有750khz的频率,将
37、实验系统左下角选择插针处的“转换结束”和“a/d使能”用二短路帽短接,即将gw48 eda系统的拨码开关4、6、7向下拨,其余向上,这样使adc0809工作使能,及使fpga能接受来自adc0809转换结束的信号。下载目标文件后,可用螺丝刀旋转实验系统左下角的电位器,以便为adc0809提供变化的待测模拟信号,这时数码管1、2显示数字值,此数据直接来自adc0809的数据口,数码管8、7和6将显示adc0809采样输出并经过数据处理的数字值。4.1 康芯实验箱简介现在有三种型号的gw48系列sopc/eda实验开发系统,分别是gw48-ck、gk、pk3,其中gw48pk3是最新产品。该系统具
38、有可控的实验电路结构,即为了适应不同的实验需要,可通过控制接口键,使之改变连接方式。因而,从物理结构上看,实验板的电路结构是固定的,但在主控器的控制下其内部的信息流,电路结构将发生变化即重配置。这种“多任务重配置”设计方案的目的有三个:1、适应更多的pld公司的器件;2、适应更多的实验与开发项目;3、适应更多的不同封装的fpga和cpld器件13。4.2 实验电路模式5(no.5)介绍此电路结构比较复杂,具有较强的功能,主要用于目标器件与外界电路的接口设计实验。该电路主要含以9大模块1-14:1、ram/rom接口。在附图左上角,此接口对应于主板上,有两个32脚的dip座,可在上面可以插ram
39、,也可插rom。该32脚座的各引脚是用标准引脚名标注的与目标器件的连接方式示于图上,如pio47(第3脚)、pio14(第4脚)等等。注意,拨码开关“1”控制ram/rom的使能。对于不同的ram或rom,其各引脚的定义功能也不尽一致,即不一定兼容。部分引脚情况在其结构图的上方已列出了,以作参考。2、lm311接口。注意,d/a接口电路包含此接口电路,可用于完成使用比较器lm311与dac0832共同实现a/d转换的控制实验中。通过主板左下侧的跳线选择“比较器”,可实现比较器的输出端与目标器件的pio37引脚相连,以达到用目标器件接收j311的输出信号的目的。3、普通内部逻辑设计模块。在附图的
40、左下角,此模块与以上几个电路使用方法相同,例如同结构图no.3的唯一区别是8个键控信号不再是琴键式电平输出,而是高低电平方式向目标芯片输入(即乒乓开关)。此电路结构可完成许多常规的实验项目。4、vga视频接口。在附图右上角,它与目标器件有5个连接信号:pio40、41、42、43、44。通过查表,可的对应于epf10k20-144或ep1k30/50-144的5个引脚号分别是:87、88、89、90、91。5、d/a转换接口。在附图右下侧,图中给出了dac0832与目标器件连接的电路图。 6、ps/2键盘接口。在附图右上侧,它与目标器件有2个连接信号:pio45、46。7、单片机接口。8、a/
41、d转换接口。在附图左侧中,图中给出了adc0809与目标器件连接的电路图。 9、rs232通信接口。4.3 引脚锁定4.3.1 引脚锁定方法引脚锁定为:start接pio34,oe(enable)接pio35,eoc接pio8,ale接pio33,状态机时钟clk接clock0,adda接pio32(addb和addc都接gnd),adc0809的8位数据输出接(pio23pio16),输出12位bcd码显示于数码管8、数码管7和数码管6(pio47pio36)14。4.3.2 引脚锁定步骤1、选择菜单fileopen project,打开volmeter工程。2、选择assignments菜
42、单中的assignment editor项,进入assignment editor编辑窗口。在category栏中选择pin,或直接单击右上侧的pin按钮。3、双击“to”栏的new,在出现的下拉栏中分别选择本工程要锁定的端口信号名;然后双击对应的location栏的new,在出现的下拉栏中按照“gw48 eda系统试验箱信号名与芯片引脚对照表”选择对应端口信号名的器件引脚号。4、最后存储这些引脚锁定信息后,必须再编译(启动start compilation)一次,才能将引脚锁定信息编译进编程下载文件中。此后就可以准备将编译好的sof文件下载到试验系统的fpga中去了。图19 表格式引脚锁定对
43、话框4.4 配置文件下载首先将下载线吧计算机的打印机口与目标板(如开发板或实验板)连接好,打开电源:。1、打开编程窗口和配置文件。选择tool/programmer,弹出如图所示的编程窗。在mode栏中选择jtag,并在program/configure选项下的小方框打勾。注意核对下载文件路径和文件名。如果文件没有出现或者出错,单击左侧add file按钮,手动选择配置文件。 图20 编程框最后单击下载标符start按钮,即进入对目标器件fpga的配置下载操作。当progress显示出100%,以及在底部的处理栏中出现“configuration succeeded”时,表示编程成功。注意,如
44、果必要,可再次单击start按钮,直至编程成功。设置编程器。若是初次安装的quartus ,在编程前必须进行编程器选择操作。如图4.2所示编程窗中,单击hareware steup 按钮可设置下载接口方式。这里选择byteblastermvlpt1。 3、硬件测试。成功下载volmeter.sof后,选择实验电路模式5。clock0的短路帽接可选12hz、6mhz、65526hz等频率。观察数码管的输出,其输出随着输入电压的变化而变化,当输入电压变为0时数码管的输出为0,输入为2.74v时数码管输出也为2.74v,其余情况下输入与输出也一致。至此,基于fpga的数字电压表设计完成。本设计的结果
45、已通过硬件测试。图21 实物显示结果 由上图可知,采集到的信号在1、2数码管上显示为89h(十六进制)经查表可知高四位1000对应为2.56v,低四位1001对应为0.16v,故采集到的信号为2.56v+0.16v=2.74v,正如数码管8、7、6所显示的2.74v。其余情况下输入与输出也一致。所以本设计通过了硬件测试,设计完成。4.5误差对比1、数据测量对比,如表二: 表二 数据测量对比万用表测量值2.79v3.22v4.14v4.47v4.91v显示器2.80v3.22v4.14v4.48v4.92v误差0.01v0.00v0.00v0.01v0.01v 图22 数据测量对比2、误差分析
46、由于模数转换器件adc0809的数字输出为8位,则电压的最小分辨率为0.02v也就是说若转换后的数据为00h,则对应的电压值为0v,转换后的数据为01h,则对应的电压值为0.02v,从而0.01v无法识别,也即奇数值无法进行正常显示,只能显示偶数值,正如表二所示,与理论分析一致。所以当数据为奇数值时会与实际值有0.01v的误差值。第五章 结论本课题主要运用自顶向下设计思想设计数字电压表,利用模数转换器(adc0809)、fpga作为数据处理的核心器件。所设计的vhdl语言程序已在quartus ii 6.0工具软件平台上进行了编译、仿真和调试。经过实验验证,其电压显示值误差没有超过量化台阶上限(0.02v),故本设计是正确的。本文给出的设计思想也适用于其他基于pld芯片的系统设计。在不改变硬件电路的前提下,本设计只用了adc0809的一个通道。要获得的复杂的数据采集系统只要稍微改变vhdl的源程序,就可实现利用其余通道的目的。设计中对于数据处理模块采用了较简单,易于理解的查表方式设计。对于fpga的芯片资源利用率不高问题,可以采用权位相加的方式,来解决更高效率的数据处理源程序编写问题
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 厂房无线监控销售合同范本
- 个人车位买卖合同
- MySQL数据库原理设计与应用模拟练习题(含答案)
- 个人代签合同授权委托书
- 中级电工模拟习题(附参考答案)
- 单位解除员工合同范本
- 厂房铁皮拆除合同范本
- 《铺满金色巴掌的水泥道》教学反思
- 《认识物体和图形》数学教学反思
- 劳务服务外包项目合同范本
- GB/T 14643.4-2009工业循环冷却水中菌藻的测定方法第4部分:土壤真菌的测定平皿计数法
- 注塑成型工艺培训资料合集课件
- rg-wall1600系列下一代防火墙命令手册
- 餐厅服务员礼仪培训(30张)课件
- 肺结核共45张课件
- SCI论文写作031112课件
- (完整)PICC导管堵塞的预防及处理ppt
- 公司举办读书分享会活动策划5篇
- 行政法整套ppt课件完整版教学教程最全电子讲义(最新)
- Q∕SY 1802-2015 石油炼制与化工装置工艺设计包编制规范
- 人工挖孔桩防护验收表(范本模板)
评论
0/150
提交评论