EDA数字电压表设计报告Word文档下载推荐.docx
《EDA数字电压表设计报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《EDA数字电压表设计报告Word文档下载推荐.docx(11页珍藏版)》请在冰豆网上搜索。
1、A/D转换控制模块5
ADC0809工作原理5
ADC0809工作时序6
CPLD控制ADC采样状态机6
2、模拟电压的计算6
码制变换模块6
3、显示控制及驱动模块7
4、ADC0809引脚连接8
五、软件设计9
1、开发软件及编程语言简介9
2、程序流程图9
3、结论9
六、总结设计的收获与体会.9
附录1程序清单
、绪论
数字电压表(DigitalVoltmeter)简称DVM是大学物理教学和实验中的重要仪表,其数字化是指将连续的模拟电压量转换成不连续、离散的数字量并加以显示。
传统的实验用模拟电压表功能单一、精度低、体积大,且存在读数时的视差,长时间连续使用易引起视觉疲劳,使用中存在诸多不便。
而目前数字万用表的内部核心多是模/数转换器,其精度很大程度上限制了整个表的准确度,可靠性较差。
传统的数字电压表设汁通常以大规模ASIC(专用集成电路)为核心器件,并
辅以少量中规模集成电路及显示器件构成。
ASIC完成从模拟量的输入到数字量的输出,是数字电压表的心脏。
这种电压表的设计简单、精确度高,但是这种设计方法由于采用了ASIC器件使得它欠缺灵活性,其系统功能固定,难以更新扩展。
后来发展起来的用微处理器(单片机)控制通用A/D转换器件的数字电压表的设计的灵活性明显提高,系统功能的扩展变得简单,但是由于微处理器的引脚数量有限,其控制转换速度和灵活性还是不能满足日益发展的电子工业的需求。
而应用EDA技术及FPGA其集成度高、速度快、性能十分可靠、用户可自由编程且编程语言通俗易懂、系统功能扩展非常方便。
采用FPGA芯片控制通用A/D转
换器可使速度、灵活性大大优于由微处理器和通用A/D转换器构成的数字电压表。
本设计的A/D转换器件选用ADC0809寸模拟电压采样,以一片高性能FPGA芯片为控制核心,以软件实现了诸多硬件功能,对电压信号的转换结果进行准确实时的运算处理并送出显示。
系统的主要功能都集成在一块芯片上,大大减少了系统的分立元件数量,降低了功耗,增加了可靠性,较好地实现了电压的精准测量。
、设计要求
设计一个数字电压表,利用8位A/D转换器,将连续的模拟电信号转换成离散的数字电信号,并加以显示,要求其量程为0-5V,分辨率约为0.02V,三位数码管显示,其中一位为整数,两位为小数,能正确显示小数点。
三、设计过程
1、系统总体框图
图1.4系统总体框图
2、数字电压表的基本原理
数字电压表系统由A/D转换控制模块、数据转换模块、动态扫描与译码模块三部分构成。
A/D转换控制模块控外部A/D转换器,动态扫描与译码模块向外部数码管显示电路输出数据。
A/D转换器负责采集模拟电压,转换成8位数字信号送入CPLD的A/D转换控制模块,A/D转换控制模块负责A/D转换的启动、地址锁存、输入通道选择、数据读取等工作,数据转换模块将8位二进制数据转换成16位十进制BCD码送入动态扫描与译码模块,最后通过数码管显示当前电压值。
四、单元电路设计
1、A/D转换控制模块
作为A/D转换器的ADC0809片内有8路模拟开关,分辨率为8位,转换时间约100us,含锁存控制的8路多路开关,输出由三态缓冲器控制,单5V电源供电。
分辨率是指A/D转换器能分辨的最小模拟输入量,通常用能转换成的数字量的位数来表示,如8位、10位、12位、16位等。
位数越高,分辨率越高。
例如,对于8位A/D转换器,当输入电压满刻度为5V时,其输出数字量的变化范围为0〜2A8-1,转换电路对输入模拟电压的分辨能力为5V/(2A8-1)=19.6m\A
量程是指A/D转换器所能转换的输入电压范围。
如图所示为ADC08095片的封装引脚图,
由图可知芯片有28只引脚,采用双列直插式的封装。
各引脚功能如下:
IN7〜IN0――8路模拟信号输入通道。
ADC0809寸输入的模拟量要求主要为:
信号单极性,电压范围0〜5V。
ADDAADDBADD――3位地址线。
ADDA为低位地址,ADDC为高位地址,组成3位二进制码000〜111,分别选中IN0〜IN7。
2ALE地址锁存允许信号,高电平时允许ADDAADDBADDC所示当前通道被选中,上升沿时将通道地址锁存至地址锁存器中。
STAR——启动转换信号。
STAR■上升沿时,所有内部寄存器清0;
STARTF
降沿时,开始进行A/D转换。
在A/D转换期间,START保持低电平。
EOCA/D转换结束信号。
EOC=0正在进行转换;
E0C=1A/D转换完毕,常用作中断申请信号。
0E输出允许信号,高电平有效,用来打开三态输出锁存器。
OE=0输出
数据线呈高阻态;
0E=1输出转换得到的数据。
CLOC——外部时钟脉冲输入端。
ADC080叭部没有时钟电路,所需时钟信号由外界提供,要求频率范围10KHl1.5MHz,
D7〜D0数据输出线。
为三态缓冲输出形式。
Vcc――单+5V电源。
GND――接地。
ALE
如图所示,为ADC0809T作时序图。
IN0〜IN7是模拟信号的输入端,通过ADDCADDBADDA地址选择信号来选择模拟信号具体从哪个端口输入,当ALE产生上升沿,地址信号就存入地址寄存器,下降沿时则开始A/D转换;
EOC为低电平时表示A/D转换进行中,高电平时表示A/D转换结束;
OE位低电平时,输出数据线高阻态,当3OE出现高电平,贝U打开三态输出锁存器,输出八位数据D7〜Dd
CPLD控制ADC采样状态图
COMPROCESS(cs,EOC)
BEGIN--主控进程,规定各状态转换方式
CASEcsIS
WHENst0=>
ALEv='
0'
;
STARTv='
LOCKv='
OE<
='
next_state<
=st1;
--0809初始化
WHENst1=>
1'
=st2;
--启动采样
WHENst2=>
ALEv='
IF(E0C='
1‘)THENnext_state<
=st3;
ELSEnext_state<
-
ENDIF;
WHENst3=>
O'
=st4;
--开启OE,输出转换好的数据
WHENst4=>
OEv='
1‘;
next_state<
=st0;
WHENOTHERS=>
ALE<
START<
LOCK<
=stO;
ENDCASE;
ENDPROCESSCOM;
2、模拟电压的计算
电压值=采样值/255*参考电压取小数点后两位
DIV_TEMP<
=REGL*"
OOOOO1O1"
=》REGL*5V(参考电压)
REGL_T1<
=DIV_TEMP(15DOWNTO8);
/255*5电压整数部分
DIV_TEMP1<
=DIV_TEMP(7DOWNTOO)*"
OOOO1O1O"
REGL_T2<
=DIV_TEMP1(15DOWNTO8);
小数点后第一位
DIV_TEMP2<
=DIV_TEMP(7DOWNTOO)*"
OO11OO1O"
REGL_T3<
=DIV_TEMP2(15DOWNTO8);
小数点后第二位
--此处没有实现2进制转换BCD码
CASECNT8
IS
WHEN
"
OO"
=>
BT_T
<
=
11111O"
O1"
1111O1"
1O"
111O11"
NULL;
BT<
=BTT;
A<
=REGL_T3(3DOWNTO);
--数码管位选DS1
=REGL_T2(3DOWNTO);
--数码管位选DS2
=REGL_T1(3DOWNTO);
--数码管位选DS3
CLOCK
START
EOC
OE
功能
有效
O
A/D开始转换
1
转换结束
允许数据输出
3、显示控制及驱动模块
采用LED数码管,采用数码管动态显示,数码管具有结构简单、低损耗、寿命长、耐老化、成本低、对外界要求低、易于维护、操作简单,编程简单等优点。
但是也有一个明显的缺点,即显示的信息量非常有限,只能显示几个有限的阿拉伯数字与字母,电路图如图1.3.1所示。
图1.3.八段发光二极管显示器原理结
电压值的显示:
最常用到的二进制转换成BCD码的方法是用除法。
先用得到的16位二进制数除以10000,得到的商就是模拟电压值的整数部分(模拟电压的输入为0-5V,所以整数部分只有1位),得到的余数是模拟电压值的小数部分;
接下来用余数除以1000,商是十分位,余数作为被除数再除以100,商为百分位,余数再除以10,商为千分位。
这样就将16位的二进制数转换成了4位BCD码。
电压值的显示可由数码管实现。
本系统选用了三个数码管显示。
整个电路十分简洁。
系统工作过程首先由FPGA对ADC0809及数码管进行初始化,然后当有输入信号Vi,由FPGAffi过接口向ADC0809控制信号控制字,使其对输入的模拟信号进行转换,变为8位的数字信号送到输出端,由FPGA经过码制变换等处理后,再通过与数码管的接口驱动并发送数据。
当ADC0809采样完成后,由码字变换模
块将采样数字信号转换为数码管段码,实现显示。
ADC0809引脚连接
五、软件设计
1、开发软件及编程语言简介
系统采用硬件描述语言VHDL按模块化方式进行设计,并将各模块集成于FPGA
芯片中,然后通过QuartusII软件开发平台对设计文件自动地完成逻辑编译、逻辑化简、综合及优化、逻辑布局布线、逻辑仿真,最后对FPGA芯片进行编程,
实现系统的设计要求。
采用VHDL超高速集成电路硬件描述语言设计复杂数字电路的方法具有很多优点,VHDL语言的设计技术齐全、方法灵活、支持广泛。
VHDL语言的系统硬件描述能力很强,具有多层次描述系统硬件功能的能力,可以从系统级到门级电路,而且高层次的行为描述可以与低层次的RTL描述混合使用。
VHDL在描述数字系统时,可以使用前后一致的语义和语法跨越多层次,并且使用跨越多个级别的混合描述模拟该系统。
因此,可以对高层次行为描述的子系统及低层次详细实现子系统所组成的系统进行模拟。
2、程序流程图
LCD显示
图3.2.1系统程序流程图
3、结论
数码管显示电压值
2.51V
1.26V
0.33V
万用表测得电压值
2.447V
1.221V
0.320V
六、总结设计的收获与体会
这次课程设计综合了数电学习的大部分内容,是对我数电知识的一次综合的考量。
此次设计不仅考量了我们对数电知识的掌握,同时还考验了我们个人的独自分析问题,解决问题的能力,同时还让我们了解了在接到一个项目后应该如何去分析,解决问题,如何完成项目开发出产品。
在这设计中,我很快便完成了电路的模块设计与连接,并且在一段时间以后解决了部分的设计错误。
但在检查最后一个连接错误时,我却花费了和先前进行所有步骤所用时间的总和一样多的时间来检查这种连接的低级错误,由此可以看出,我们不管在做什么事情是,都不要盲目的自信自己不会出现低级错误,低级错误永远都最致命的错误,往往会让你付出大量的时间与代价去改正这个错误。
附录1:
源程序清单