ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:527.21KB ,
资源ID:22234430      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/22234430.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(电子系统课程设计简易频率计Word格式.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

电子系统课程设计简易频率计Word格式.docx

1、四、主要参考文献何小艇 电子系统设计 浙江大学出版社 2008.1潘松 黄继业 EDA技术实用教程 科学出版社 2006.10指导教师签字: 2011年 11月 28日摘 要频率计是数字电路中的一个典型应用,是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器,频率测量在科技研究和实际应用中的作用日益重要。数字频率计是数字电路中的一个典型应用,实际的硬件设计用到的器件较多,连线比较复杂,而且会产生比较大的延时,造成测量误差、可靠性差。随着复杂可编程逻辑器件(CPLD)的广泛应用,以EDA工具作为开发手段,运用VHDL语言。将使整个系统大大简化。提高整体的性能和可靠性。在本文中,我们设计

2、了一个简易数字频率计。主要分为如下几个部分:A/D模块: 用VHDL语言写一个状态机,控制ADC0809芯片正常工作,使输入的被测模拟信号经过ADC0809芯片处理,转化为数字信号。比较整形模块:将A/D转换出来的数字信号通过比较,高于阈值的为1低于阈值的为0从而将八位数字信号转换为脉冲便于频率计算。频率测量模块:常用的频率测量方法有很多。有计数法和计时法等,具体的方案论证将在下面进行。占空比计算模块:计算脉冲波占空比,具体的方案论证将在下面进行。选择显示模块:设置一个二选一电路,通过一个按键控制四位数码管显示的内容是频率还是占空比。关键词:数字频率计、模块、占空比、数字信号、测量、阈值任务解

3、析.3总体方案与比较论证4方案选择6频率测量方法方案论证.6系统结构.9A/D模块设计.10比较整形模块设计.12频率测量模块设计.13占空比计算模块设计.14选择显示模块设计.15硬件验证.16误差分析.17心得体会.18参考文献.19任务解析本次课程设计的主要任务就是利用VHDL语言设计一个简易数字频率计。频率计主要用于测量正弦波、矩形波、三角波和尖脉冲等周期信号的频率值及脉冲的占空比。其扩展功能可以实现自动切换量程,使整形时,以实现扩宽被测信号的幅值范围。数字频率计的整体系统原理框图如图1,被测信号为外部输入信号,送入测量电路经过数字整形、测量计算、数据锁存和送显。就完成了频率计的基本功

4、能,控制选择用来实现频率的计算频率和计算占空比功能的选择。图1根据简易频率计设计的任务书可知这次的频率计的性能指标如下:一、信号波形:正弦波、三角波和矩形波。二、率范围分二档:Hz档 和kHz档三、发挥部分b构思方案,使整形时,以实现扩宽被测信号的幅值范围总体方案与比较论证数字频率计在具体是现实时,可以采用单片机或者FPGA来实现,具体有如下方案:方案一:采用FPGA与单片机为核心来实现,可以利用FPGA来实现在单片机系统中的计数部分。这样可以节省单片机的系统资源,考虑到在下面的相移网络设计中也需要利用单片机和FPGA,但单片机的系统资源相对有限,因此我们建议在这里单片机主要用于控制,而FPG

5、A则可以用来进行计数之类的事情。简单原理图如图2图2方案二:分离元件设计方案:本方案利用大量数字芯片,通过各种逻辑关系构成,但由于芯片无编程性,实现难度较大,只能完成部分功能,同时电路复杂。在实际应用中存在很多问题。方案三:全部利用FPGA来实现,即利用FPGA产生时钟。由于FPGA的工作频率比单片机的高很多,因此可以考虑直接利用FPGA产生信号的高频参考频率, FPGA处理速度快,得到的频率,占空比相对稳定,精度高,容易实现高频测量。缺点是硬件较为复杂,实现控制相对复杂。简单原理图如图3图3方案选择:方案一虽然可行,但是由于在实验室现有的FPGA实验板上无法将单片机运用在系统中,因此不能用。

6、方案二在理论上和现有的硬件基础上都能实现,但是复杂度高因此也不能用。方案三不仅符合此次课程设计的要求,且在实验室的条件下均能实现,所以我们选择方案三作为本次课程设计的方案。频率测量方法方案论证数字频率测量的基本原理是用一个频率稳定度高的频率源作为基准时钟,对比测量其他信号的频率。通常情况下有两种测量方法:一种方法是计数法,就是在一定闸门时间内测量被测信号的脉冲个数;另外一种是计时法。 计数法计数法是将被测信号通过一个定时闸门加到计数器进行计数的方法,如果闸门打开的时间为T,计数器得到的计数值为N1,则被测频率为f=N1/T。改变时间T,则可改变测量频率范围。如图4所示。设在T期间,计数器的精确

7、计数值应为N,根据计数器的计数特性可知,N1的绝对误差是N1=N+1,N1的相对误差为N1=(N1-N)/N=1/N。由N1的相对误差可知,N的数值愈大,相对误差愈小,成反比关系。因此,在f以确定的条件下,为减少N的相对误差,可通过增大T的方法来降低测量误差。当T为某确定值时(通常取1s),则有f1=N1,而f=N,故有f1的相对误差:f1=(f1-f)/f=1/f从上式可知f1的相对误差与f成反比关系,即信号频率越高,误差越小;而信号频率越低,则测量误差越大。因此测频法适合用于对高频信号的测量,频率越高,测量精度也越高。 计时法计时法又称为测周期法,计时法是用被测信号来控制闸门的开闭,而将标

8、准时基脉冲通过闸门加到计数器,闸门在外信号的一个周期内打开,这样计数器得到的计数值就是标准时基脉冲外信号的周期值,然后求周期值的倒数,就得到所测频率值。首先把被测信号通过二分频,获得一个高电平时间是一个信号周期T的方波信号;然后用一个一直周期T1的高频方波信号作为计数脉冲,在一个信号周期T的时间内对T1信号进行计数,如图5所示。图5若在T时间内的计数值为N2,则有:T2=N2*T1 f2=1/T2=1/(N2*T1)=f1/N2 N2的绝对误差为N2=N+1。N2的相对误差为N2=(N2-N)/N=1/NT2的相对误差为T2=(T2-T)/T=(N2*T1-T)/T=f/f1从T2的相对误差可

9、以看出,周期测量的误差与信号频率成正比,而与高频标准计数信号的频率成反比。当f1为常数时,被测信号频率越低,误差越小,测量精度也就越高。 根据本设计要求的性能与技术指标,首先需要确定能满足这些指标的频率测量方法。有上述频率测量原理与方法的讨论可知,计时法适合于对低频信号的测量,而计数法则适合于对较高频信号的测量。但由于用计时法所获得的信号周期数据,还需要求倒数运算才能得到信号频率,而求倒数运算用VHDL语言实现起来更占用系统资源且可能带来更大误差,因此,计时法不适合本实验要求。测频法的测量误差与信号频率成反比,信号频率越低,测量误差就越大,信号频率越高,其误差就越小。如果用测频法所获得的测量数

10、据,将闸门时间设置为一秒时,不需要进行任何换算,计数器所计数据就是信号频率。用VHDL语言实现起来更加容易,调整时也更为方便。因此,本次课程设计所用的频率测量方法是计数法。系统结构 根据本次课程设计的要求,我将这次的频率计功能实现分为五个模块:1、A/D模块2、比较整形模块3、频率测量模块4、占空比计算模块5、选择显示模块系统结构如图6:图6为了节省系统资源我们的频率测量模块与占空比计算模块都用频率为3MHz的基准信号。下面是各个模块的具体描述与功能:A/D模块设计A/D模块的主要功能就是控制ADC0809芯片正常工作进行被测模拟信号的采集和数字化的过程,ADC0809是美国国家半导体公司生产

11、的CMOS工艺8通道,8位逐次逼近式A/D转换器。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。是目前国内应用最广泛的8位通用A/D芯片。其主要控制信号:START是转换启动信号,高电平有效;ALE是3位通道选择地址信号的锁存信号。当模拟量送至某一输入端,由3位地址信号选择,而地址信号由ALE锁存;EOC是转换情况状态信号;在EOC的上升沿后,若使输出使能信号OE为高电平,则打开三态缓冲期,把转换好的8位数据结果输至数据总线。其实按照本次课程设计的要求,此次频率计应该使用一个高速AD芯片,但是由于实验条件,我们只能用0809这个慢速

12、的AD,所以本次课程设计的测频范围就大大缩小了,测频范围大概只能从1Hz到4KHz。ADC0809的工作过程:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 AD转换,之后EOC输出信号变低,指示转换正在进行。直到AD转换完成,EOC变为高电平,指示AD转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平 时,输出三态门打开,转换结果的数字量输出到数据总线上,至此ADC0809的一次转换结束。下面是控制ADC0809采样状态图:图7用VHDL语言写了一个状态机来控制ADC0

13、809正常工作采集转化被测信号,下面是A/D模块的封装图以及仿真波形图:图8图9 由仿真图可也看出状态机能够控制ADC0809芯片正常工作完成被测信号的数字化处理。比较整形模块设计比较整形模块的输入信号是经过0809数字化的被测信号。比较整形模块的作用就是将输入的八位信号转化为误差较小的高低电平,形成脉冲信号。原理就是在设置一个阈值,当输入的信号高于这个阈值时输出高电平,当输入的信号低于阈值时输出低电平。这样就可以把被测的信号转化为脉冲信号,然后送入频率计算电路就能方便地计算出被测信号的频率。阈值的设置与被测信号的幅度有关,任务书要求幅值是1-3V,所以我们取1V设置阈值,当1V满足时,3V也

14、自然满足。因为1/5*255=51,所以我们将阈值设为00100000,小于50,满足设计要求。其形成的封装图及仿真波形图如下:图10D为八位输入CLKIN为输出信号图11图12如图11、图12所示,当输入信号高于00100000 时,输出信号CLKIN是高电平,当输入信号低于00100000 时,输出信号CLKIN是低电平。所以比较整形模块能够正常工作,完成输入信号的整形转化为脉冲信号。频率测量模块设计频率测量模块有两个输入信号,一个是从比较整形电路输出的整形后的脉冲信号,这个是被测信号。另外一个是基准频率,用来进行测量被测频率使用。频率测量模块的工作过程大致是:将基准频率进行分频,得到一个

15、周期为2秒的方波,利用方波的电平为正的半个周期作为闸门信号,在半个周期内利用计数器计算被测频率的个数,所得的脉冲个数就是被测信号的频率。然后将所得个数送出给后面的选择模块。其中频率计数具有自动切换量程的功能,有两个档位一个是Hz档,一个是KHz档。因为用四个数码管显示但是ADC0809是慢速芯片,频率范围1Hz到4KHz,所以为了实现自动换量程功能,当被测频率超过1000Hz就切换为KHz档了,所以在实验箱上验证时最高位的数码管一般不会显示数字。下面是模块的封装图以及波形仿真图:图13图14 由于软件工具的限制,测频功能的自动换挡功能仿真起来比较困难,要求的频率过高,软件仿真较慢,易出错,所以

16、仅仿真验证了了频率计数的功能。占空比计算模块设计占空比计算模块是用来计算被测信号为方波时的占空比。占空比为在一串理想的脉冲周期序列中(如方波),正脉冲的持续时间与脉冲总周期的比值。这个模块我是这么实现的,将比较整形后的方波信号作为一个输入信号,再输入一个高频脉冲信号作为基准信号,最好要远远高于被测信号的频率,这样才能更好更准确测量被测脉冲信号的占空比。将被测信号输入后二分频后得到一个周期是原被测信号二倍的信号,然后利用原被测信号的半个周期的高电平以及二分频后的信号的半个周期的高电平作为两个闸门信号T1、T2,分别记录这两个闸门信号下基准信号的个数A1、A2,然后用A1除以A2就能得到被测脉冲信

17、号的占空比了。特别注意的是这个模块内要加入一个锁存器,否则占空比计算后的数值输出到数码管会不停的闪烁。下面是占空比模块的封装图以及波形仿真图:图15图16输入信号是占空比为72%的脉冲信号,仿真结果为72%,占空比计算模块能够正常工作。选择显示模块设计选择显示模块就是一个二选一电路,频率测量模块的四个输出以及占空比计算模块的两个输出都作为选择显示模块的输入,还有一个输入信号由按键控制。用来控制选择显示模块的输出是频率测量模块的输出信号还是占空比计算模块的两个输出。选择显示模块的作用就是,因为实验箱在模式5的状态下,由于适用ADC0809,占用了三个数码管,所以占空比及频率不能同时用数码管显示,

18、要用四个数码管显示频率就必须通过选择显示模块来控制。当按键没有按下的时候四个数码管显示的是频率,当按键按下后数高两位数码管显示占空比,低两位数码管为零。下面是选择显示模块的封装图以及波形仿真图:图17图18由图可以看到二选一模块能够完成既定功能。硬件验证:一、频率测量波形 方波 正弦波 三角波输入频率(hz) 输出频率(hz) 10 11 15 500 501 3000 2998 2588二、占空比测试输入占空比(%) 显示占空比(%)7060595040413032误差分析1、频率测量误差分析:由于ADC0809芯片是一个低速的AD芯片,所以方波的频率在4khz以下,测量较为准确,超过4kh

19、z就会出现较大的误差。正弦波的频率在11hz-3000hz之间测量的较为准确。三角波的频率在15hz-1800hz之间测量的较为准确。这与AD的转换速度及精度有一定关系,频率的测量方法也影响着频率测量的精确度。所以如果使用高速AD,并且测量高频与低频时使用适用与不同情况的频率测量方法,可以有效降低误差。 2、占空比测量误差分析:由表可见,占空比整体测量比较准确,误差并不是特别大。通过提高占空比计算模块的基准频率,增长闸门时间可以减小误差。心得体会这次现代电子系统课程设计的题目是简易数字频率计。通过这次的课程设计,我对频率计以及硬件描述语言的应用有了更深的认识。虽然以前的数字逻辑电路的课程设计也

20、是频率计,但那个频率计是通过芯片与电路的连接实现的最基本的频率计功能,并没有更深入去考虑一个频率计需要注意的各种问题例如如何完美实现频率计各项性能指标还有频率计精度提高的问题等。这次课程设计与开学之初的电子设计自动化的课程设计虽然有类似之处,但是比开学的那个课程设计要求要更高。我在开学初的课程设计的题目是利用FPGA实现一个数字钟。在那次设计中,我遇到非常多的问题,基本模块都是磕磕绊绊写了出来,而且在写顶层文件的时候,我用的是元件例化语句将各个模块连接起来,中间用到了三十多个中间信号,自己记起来乱七八糟的,最后还是都写到了一张纸上才全部分清,勉强将数字钟的功能实现。所以这个课程设计,我先将各个

21、模块一一认真实现,然后将各个模块生成封装,然后用原理图连线的方法完成了总体的连线。这个方法既简单又清晰,能够看清整个频率计工作流程原理,十分容易理解以及修改,不必再去用复杂的元件例化语句节省了我不少的时间。当然在这次实验过程中也暴露出不少问题,频率测量方法选择不恰当,测量的误差较大,比较整形模块的阈值设置我想了好久都没有想明白,最后还是在同学的耐心讲解下才明白了阈值的选择规则。最后频率计完成前的最后一个问题就是占空比的显示问题,当时做好之后一看占空比显示不停闪烁,本来没什么思路,后来听老师给另外一个同学讲解的时候说是加一个寄存器就能解决了,给占空比计算模块加入了锁存器果然解决了占空比闪烁的问题

22、。总的来说,这次的课设过程中遇到了不少的问题,但还是完成了任务书要求的功能。最大的收获就是,我对VHDL语言的应用更加熟悉,大学四年来我觉得我学的最好的就是C语言和VHDL硬件描述语言了,并且语言的应用也在实验与课程设计中不断进步。参考文献:(1)现代电子系统设计 浙江大学出版社 何小艇主编 (2)EDA技术使用教程 科学出版社 潘松 编著(3)VHDL硬件描述语言与数字逻辑电路设计 西安电子科技大学出版社 侯伯亨 刘凯 顾新 编著 (4)现代电子系统设计实验指导书 河南科技大学 齐晶晶 李娜主编 附录课程设计程序:AD模块LIBRARY IEEE;USE IEEE.STD_LOGIC_116

23、4.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY AD0809 ISPORT( CLK,EOC: IN STD_LOGIC; D:IN STD_LOGIC_VECTOR(7 DOWNTO 0); ALE,START,OE,ADDA,LOCK0:OUT STD_LOGIC;-ADDA位地址输入线,用于选通8路模拟输入中的一路-ALE:地址锁存允许信号,输入,高电平有效-START: AD转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)-OE:数据输出允许信号,输入,高电平有效。当AD转换结束时

24、,此端输入一个高电平,才能打开输出三态门,输出数字量 Q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END AD0809;ARCHITECTURE BEHAV OF AD0809 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=1;Q=REGL;LOCK0ALE0STARTLOCKOENEXT_STATE=ST

25、2;WHEN ST2=IF (EOC=) THEN NEXT_STATE=ST3;ELSE NEXT_STATE=ST4;WHEN ST4=WHEN OTHERS=END CASE;END PROCESS COM;REG:PROCESS(CLK)IF (CLKEVENT AND CLK=) THEN CURRENT_STATE=NEXT_STATE;END PROCESS REG;LATCH1:PROCESS(LOCK) BEGIN IF LOCK= AND LOCKEVENT THEN REGL00010000THEN CLKIN ELSE CLKINEND PROCESS;END ONE;频率测量模块ENTITY PL ISPORT(CLK3M:IN STD_L

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1