数字电压表设计.docx
- 文档编号:28570670
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:28
- 大小:760.32KB
数字电压表设计.docx
《数字电压表设计.docx》由会员分享,可在线阅读,更多相关《数字电压表设计.docx(28页珍藏版)》请在冰豆网上搜索。
数字电压表设计
东北石油大学
课程设计
课程硬件课程设计
题目数字电压表设计
院系计算机术学院
专业班级
学生姓名
学生学号1
指导教师
2
东北石油大学课程设计成绩评价表
课程名称
硬件课程设计
题目名称
数字电压表设计
学生姓名
序号
评价项目
指标(优秀)
满分
评分
1
选题难度
选题难度较高,或者对原题目进行了相当程度的改进。
10
2
工作量、工作态度和出勤率
工作量饱满,工作努力,遵守纪律,出勤率高,工作作风严谨,善于与他人合作。
10
3
课程设计质量
按期圆满的完成了规定的任务,方案设计合理,思考问题全面,系统功能完善。
40
4
报告质量
问题论述思路清晰,结构严谨,文理通顺,撰写规范,图表完备正确。
30
5
回答问题
在进行课程设计程序系统检查时,能正确回答指导教师所提出的问题。
10
6
创新(加分项)
工作中有创新意识,对前人工作有改进或有应用价值。
在进行系统检查时能对创新性进行说明,并在报告中有相应的论述。
+5
总分
评语:
指导教师:
年月日
东北石油大学课程设计任务书
课程硬件课程设计
题目数字电压表设计
专业计
主要内容、基本要求等
一、主要内容:
利用EL教学实验箱、微机和QuartusⅡ软件系统,使用VHDL语言输入方法设计数字钟。
可以利用层次设计方法和VHDL语言,完成硬件设计设计和仿真。
最后在EL教学实验箱中实现。
二、基本要求:
1、A/D转换接口电路的设计,负责对ADC0809的控制。
2、编码转换电路设计,负责把从ADC0809数据总线中读出的电压转换成BCD码。
3、输出七段显示电路的设计,负责将BCD码用7段显示器显示出来。
三、扩展要求
1.当测量结束后,蜂鸣器鸣响10声。
按照规范写出论文,要求字数在4000字以上,并进行答辩。
论文内容包括概述(学习、调研、分析、设计的内容摘要)、EDA技术的现状和发展趋势、对EL教学实验箱和QuartusⅡ软件的掌握程度、数字钟的设计过程(包括原理图或程序设计、编译、仿真分析、硬件测试的全过程),论文中含有原理图、程序、仿真波形图及其分析报告。
完成期限2周
指导教师
专业负责人
年月日
第1章概述
1.1引言
数字电压表(DigitalVoltmeter)简称DVM,是诸多数字化仪表的核心与基础。
以数字电压表为核心扩展成的各种数字化仪表,几乎覆盖了电子电工测量、工业测量、自动化系统等各个领域。
它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表,它是诸多数字化仪表的核心与基
础。
电压表的数字化是将连续的模拟量如直流电压转换成不连续的离散的数字形式并加以显示,这有别于传统的以指针加刻度盘进行读数的方法,避免了读数的视差和视觉疲劳。
目前数字电压表的内部核心部件是A/D转换器,转换器的精度很大程度上影响着数字电压表的准确度。
随着计算机与微电子技术的发展,电子设计自动化EDA领域已成为电子技术发展的主体,数字系统的设计正朝着速度快、容量大、体积小、重量轻的方向发展。
推动该潮流发展的引擎,就是日趋进步和完善的FPGA(FieldProgrammableGateArray,现场可编程门阵列)设计技术。
而电子设计自动化,是将计算机软件、硬件、微电子技术交叉运用的现代电子设计学科,其中EDA设计语言中的VHDL语言是一种快速的电路设计工具,功能涵盖了电路描述、电路合成、电路仿真等三大电路设计工作。
该数字电压表的电路设计,正是用VHDL语言完成的。
此次设计主要应用美国Altera公司自行设计的一种CAE(ComputerAidedEngineering,计算机辅助工程)软件工具,即QuartusII软件。
数字电压表出现在50年代初,60年代末发展起来的电压测量仪表,它采用的是数字化测量技术,把连续的模拟量,也就是连续的电压值转变为不连续的数字量,加以数字处理然后再通过显示器件显示。
这种电子测量的仪表之所以出现,一方面是由于电子计算机的应用逐渐推广到系统的自动控制实验研究的领域,提出了将各种被观察量或被控制量转换成数码的要求,即为了实时控制及数据处理的需要;另一方面,也是电子计算机的发展,带动了脉冲数字电路技术的进步,为数字化仪表的出现提供了条件。
所以,数字化测量仪表的产生和发展与电子计算机的发展是密切相关的;同时,为革新电子测量中的烦琐和陈旧方式也催促了它的飞速发展,如今,它又成为向智能化仪表发展的必要桥梁。
1.2EDA简介
EDA是电子设计自动化(ElectronicDesignAutomation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。
EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作[1]。
EDA技术的出现,极大地提高了电路设计的效率和可行性,减轻了设计者的劳动强度。
20世纪90年代,国际上电子和计算机技术较先进的国家,一直在积极探索新的电子电路设计方法,并在设计方法、工具等方面进行了彻底的变革,取得了巨大成功。
在电子技术设计领域,可编程逻辑器件(如CPLD、FPGA)的应用,已得到广泛的普及,这些器件为数字系统的设计带来了极大的灵活性。
这些器件可以通过软件编程而对其硬件结构和工作方式进行重构,从而使得硬件的设计可以如同软件设计那样方便快捷。
这一切极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了EDA技术的迅速发展[2]。
EDA在通信行业(电信)里的另一个解释是企业数据架构,EDA给出了一个企业级的数据架构的总体视图,并按照电信企业的特征,进行了框架和层级的划分。
EDA在教学、科研、产品设计与制造等各方面都发挥着巨大的作用。
在教学方面,几乎所有理工科(特别是电子信息)类的高校都开设了EDA课程。
主要是让学生了解EDA的基本概念和基本原理、掌握用HDL语言编写规范、掌握逻辑综合的理论和算法、使用EDA工具进行电子电路课程的实验验证并从事简单系统的设计。
一般学习电路仿真工具(如multiSIM、PSPICE)和PLD开发工具(如Altera/Xilinx的器件结构及开发系统),为今后工作打下基础[3]。
现在对EDA的概念或范畴用得很宽。
包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用。
目前EDA技术已在各大公司、企事业单位和科研教学部门广泛使用。
例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到EDA技术。
从目前的EDA技术来看,其发展趋势是政府重视、使用普及、应用广泛、工具多样、软件功能强大。
1.3VHDL简介
VHDL全名Very-High-SpeedIntegratedCircuitHardwareDescriptionLanguage,诞生于1982年。
1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言。
自IEEE-1076(简称87版)之后,各EDA公司相继推出自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。
1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本,简称93版。
VHDL和Verilog作为IEEE的工业标准硬件描述语言,得到众多EDA公司支持,在电子工程领域,已成为事实上的通用硬件描述语言。
VHDL翻译成中文就是超高速集成电路硬件描述语言,主要是应用在数字电路的设计中。
目前,它在中国的应用多数是用在FPGA/CPLD/EPLD的设计中。
当然在一些实力较为雄厚的单位,它也被用来设计ASIC[5]。
与其他硬件描述语言相比,VHDL具有以下特点:
(1)功能强大、设计灵活
(2)支持广泛、易于修改
(3)强大的系统硬件描述能力
(4)独立于器件的设计、与工艺无关
(5)很强的移植能力
(6)易于共享和复用
优势:
(1)与其他的硬件描述语言相比,VHDL具有更强的行为描述能力,从而决定了他成为系统设计领域最佳的硬件描述语言。
强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。
(2)VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。
(3)VHDL语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和已
有设计的再利用功能。
符合市场需求的大规模系统高效,高速的完成必须有多人甚至多个代发组共同并行工作才能实现。
(4)对于用VHDL完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动的把VHDL描述设计转变成门级网表。
(5)VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计。
1.4QuartusII简介
QuartusII是Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(AlteraHardwareDescriptionLanguage)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。
QuartusII可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。
具有运行速度快,界面统一,功能集中,易学易用等特点。
QuartusII设计流程如图1—1所示:
图1—1QuartusII设计流程
第2章数字电压表的系统分析
2.1设计目的
1.本次实验通过vhdl硬件语言编写ADC0809模数转换器的控制程序。
2.掌握控制原理,并进一步掌握采用有限状态机产生控制信号的原理。
3.掌握十六进制转十进制的运算方法。
5.掌握vhdl的编程思路。
2.2功能说明
1.具有数字管显示当前电压值的功能。
2.具有复位功能。
2.3实验原理
在同一EPLD芯片EPF10K10上集成了如下电路模块:
1.数字电压表的实现。
2.模拟电压量通过电位器进行改变。
3.把ADC0809A/D转换器进行采集。
4.通过转换器内部的功能实现把电压模拟量转化为数字量的过程。
5.按照单片机所给的地址,ADC0809芯片把已经转化好的数据传入到单片机中。
6.在单片机里通过原件程序设计实现对数字电压表量程的控制。
2.4系统硬件
1.可变直流电平输出电路。
2.A/D0809。
3.七段显示器。
4.EPF10K10LC84-4适配器。
第3章数字电压表设计
3.1总体框图
总体框图如图3—1所示
图3—1总体框图
3.2状态机
3.2.1采样状态机结构框图
在一个完整的采样周期中,状态机中最先被启动的是以CLK为敏感信号的时序进程,接着组合过程COM被启动,因为它们以信号current_state为敏感信号。
最后被启动的是锁存进程,它是在状态机进入状态st4后才被启动的,即此时LOCK产生了一个上升沿信号,从而启动进程LATCH1,将0809在本采样周期输出的8位数据锁存到寄存器中,以便外部电路能从Q端读到稳定正确的数据。
状态机结构框图如图3—2所示:
图3—2状态机结构框
3.2.2VHDL代码
LIBRARYIEEE;--A/D0809
useieee.std_logic_1164.all;
useieee.std_logic_arith.all;
useieee.std_logic_unsigned.all;
entityadis
port(ST,eoc:
instd_logic;--控制端口
d:
instd_logic_vector(7downto0);
oe,sta,ale,adda:
outstd_logic;
q:
outstd_logic_vector(7downto0));
endad;
architectureaofadis
typestatesis(st0,st1,st2,st3,st4,st5,st6);--7个状态
signalc_state,n_state:
states:
=st0;
signalregl:
std_logic_vector(7downto0);
signallock:
std_logic;
begin
adda<='1';
com:
process(c_state,eoc)
begin
casec_stateis
whenst0=>ale<='0';sta<='0';oe<='0';lock<='0';
n_state<=st1;
whenst1=>ale<='1';sta<='0';oe<='0';lock<='0';
n_state<=st2;
whenst2=>ale<='0';sta<='1';oe<='0';lock<='0';
n_state<=st3;
whenst3=>ale<='0';sta<='0';oe<='0';lock<='0';
if(eoc='1')thenn_state<=st4;
elsen_state<=st3;――eoc为‘1’转换结束进入下一状态
endif;――否则继续转换
whenst4=>ale<='0';sta<='0';oe<='1';lock<='0';
n_state<=st5;
whenst5=>ale<='0';sta<='0';oe<='0';lock<='1';
n_state<=st6;
whenst6=>ale<='0';sta<='0';oe<='0';lock<='1';
n_state<=st0;
whenothers=>n_state<=st0;
endcase;
endprocesscom;
reg:
process(st)
begin
if(st'eventandst='1')then
c_state<=n_state;
endif;
endprocessreg;
lo:
process(lock)--锁存
begin
if(lock'eventandlock='1')then
regl<=d;
endif;
endprocesslo;
q<=regl;
enda
3.3转换BCD码
3.3.1模拟输入电压与输出电压的对应关系
当参考电压(Vref)为2.56V时,模拟输入电压与输出电压的对应关系如表3—3所示:
表3—3模拟输入电压与输出电压的关系
进制
参考电压
16
2
高4位电压
低4位电压
0
0000
0.00
0.00
1
0001
0.32
0.02
2
0010
0.64
0.04
3
0011
0.96
0.06
4
0100
1.28
0.08
5
0101
1.60
0.10
6
0110
1.92
0.12
7
0111
2.24
0.14
8
1000
2.56
0.16
9
1001
2.88
0.18
A
1010
3.20
0.20
B
1011
3.52
0.22
C
1100
3.84
0.24
D
1101
4.16
0.26
E
1110
4.48
0.28
F
1111
4.80
0.30
这样由ADC0809收到的信号是01110110(76H),则对照表52-1时,高4位0111的电压为2.24V,而低4位0110是0.12V,所以最后的电压输出结果为2.24+0.12=2.36V。
对于数据转换成BCD码,我们必须设计一个12位的BCD码加法器,如上述的2.24V的二进制表示为:
001000100100、0.12V是000000010010,所以其相加结果为001000110110,为2.36V。
提示:
在读取到转换数据后,先用查表的指令算出高、低4位的两个电压值,并分别用12位的BCD码表示。
接着设计12位的BCD码加法。
相加从最低4位开始,且每4位相加结果超过10时需作进位动作。
3.3.2VHDL代码
――BCD8位转12
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_ARITH.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYBCDIS
PORT(V:
INSTD_LOGIC_VECTOR(7DOWNTO0);
HB,LB:
BUFFERSTD_LOGIC_VECTOR(11DOWNTO0);
BVALUE:
BUFFERSTD_LOGIC_VECTOR(11DOWNTO0);
BCD_L,BCD_M,BCD_H:
OUTSTD_LOGIC_VECTOR(3DOWNTO0));
ENDBCD;
ARCHITECTUREAOFBCDIS
BEGIN
P1:
PROCESS(V(7DOWNTO4))
BEGIN--A/D输出高4位转换分辨率0.32V
IFV(7DOWNTO4)="1111"THENHB<="010010000000";--4.80V
ELSIFV(7DOWNTO4)="1110"THENHB<="010001001000";--4.48V
ELSIFV(7DOWNTO4)="1101"THENHB<="010000010110";--4.16V
ELSIFV(7DOWNTO4)="1100"THENHB<="001110000100";--3.84V
ELSIFV(7DOWNTO4)="1011"THENHB<="001101010010";--3.52V
ELSIFV(7DOWNTO4)="1010"THENHB<="001100100000";--3.20V
ELSIFV(7DOWNTO4)="1001"THENHB<="001010001000";--2.88V
ELSIFV(7DOWNTO4)="1000"THENHB<="001001010110";--2.56V
ELSIFV(7DOWNTO4)="0111"THENHB<="001000100100";--2.24V
ELSIFV(7DOWNTO4)="0110"THENHB<="000110010010";--1.92V
ELSIFV(7DOWNTO4)="0101"THENHB<="000101100000";--1.60V
ELSIFV(7DOWNTO4)="0100"THENHB<="000100101000";--1.28V
ELSIFV(7DOWNTO4)="0011"THENHB<="000010010110";--0.96V
ELSIFV(7DOWNTO4)="0010"THENHB<="000001100100";--0.64V
ELSIFV(7DOWNTO4)="0001"THENHB<="000000110010";--0.32V
ELSIFV(7DOWNTO4)="0000"THENHB<="000000000000";--0.00V
ELSEHB<="000000000000";--0.00V
ENDIF;
ENDPROCESSP1;
P2:
PROCESS(V(3DOWNTO0))
BEGIN--A/D输出低4位转换分辨率0.02V
IFV(3DOWNTO0)="1111"THENLB<="000000110000";--0.30V
ELSIFV(3DOWNTO0)="1110"THENLB<="000000101000";--0.28V
ELSIFV(3DOWNTO0)="1101"THENLB<="000000100110";--0.26V
ELSIFV(3DOWNTO0)="1100"THENLB<="000000100100";--0.24V
ELSIFV(3DOWNTO0)="1011"THENLB<="000000100010";--0.22V
ELSIFV(3DOWNTO0)="1010"THENLB<="000000100000";--0.20V
ELSIFV(3DOWNTO0)="1001"THENLB<="000000011000";--0.18V
ELSIFV(3DOWNTO0)="1000"THENLB<="000000010110";--0.16V
ELSIFV(3DOWNTO0)="0111"THENLB<="000000010100";--0.14V
ELSIFV(3DOWNTO0)="0110"THENLB<="000000010010";--0.12V
ELSIFV(3DOWNTO0)="0101"THENLB<="000000010000";--0.10V
ELSIFV(3DOWNTO0)="0100"THENLB<="000000001000";--0.08V
ELSIFV(3DOWNTO0)="0011"THENLB<="000000000110";--0.06V
ELSIFV(3DOWNTO0)="0010"THENLB<="000000000100";--0.04V
ELSIFV(3DOWNTO0)="0001"THENLB<="000000000010";--0.02V
ELSIFV(3DOWNTO0)="0000"THENLB<="000000000000";--0.00V
ELSELB<="000000000000";--0V
ENDIF;
ENDPROCESSP2;
BVALUE<=HB+LB;
P3:
PROCESS(BVALUE)
VARIABLEJJ:
STD_LOGIC_VECTOR(11DOWNTO0);
BEGIN
JJ:
=BVALUE;
IF(JJ(3DOWNTO0)>"1001")THEN――如果12位结果中,低4位
JJ:
=JJ+"000000000110";
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字 电压表 设计