简易数字频率计设计
更新时间:2023-05-16 08:27:01 阅读量: 实用文档 文档下载
现代电子系统课程设计__
现代电子系统——简易数字频率计设计
河南科技大学
课程设计说明书
课程名称__现代电子系统课程设计__
题目__简易数字频率计设计___
学院__电子信息工程学院___
班级__电信科082班___
学生姓名__张凡凡_______
指导教师__齐晶晶,张雷鸣_____
日期__2011,12,16_______
1
现代电子系统课程设计__
现代电子系统——简易数字频率计设计
课程设计任务书
(指导教师填写)
课程设计名称现代电子系统课程设计学生姓名张凡凡专业班级电信科082 设计题目简易数字频率计设计_一、课程设计目的
掌握高速AD的使用方法;
掌握频率计的工作原理;
掌握GW48_SOPC实验箱的使用方法;
了解基于FPGA的电子系统的设计方法。
二、设计内容、技术条件和要求
设计一个具有如下功能的简易频率计。
(1)基本要求:
a.被测信号的频率范围为1~20kHz,用4位数码管显示数据。
b.测量结果直接用十进制数值显示。
c.被测信号可以是正弦波、三角波、方波,幅值1~3V不等。
d.具有超量程警告(可以用LED灯显示,也可以用蜂鸣器报警)。
e.当测量脉冲信号时,能显示其占空比(精度误差不大于1%)。
(2)发挥部分
a.修改设计,实现自动切换量程。
b.构思方案,使整形时,以实现扩宽被测信号的幅值范围。
三、时间进度安排
布置课题和讲解:1天查阅资料、设计:4天
实验:3天撰写报告:2天
四、主要参考文献
何小艇《电子系统设计》浙江大学出版社2008.1
潘松黄继业《EDA技术实用教程》科学出版社2006.10
指导教师签字:2011年11月28日
2
现代电子系统课程设计__
简易数字频率计
目录
摘要 (2)
一. 任务解析 (3)
二. 系统方案论证 (3)
2.1 总体方案论证................................................................. . (4)
2.2 频率计数模块论证........................................................... .. (5)
三、分模块电路设计 (6)
3.1A/D模块设计 (6)
3.2比较模块 (8)
3.3分频模块 (9)
3.4频率测量模块 (11)
3.5占空比模块 (12)
3.6显示模块 (14)
3.7 整体原理图 (16)
四、实验结果分析 (17)
五、心得体会 (18)
附录 (19)
- 1 -
现代电子系统课程设计__
简易数字频率计
摘要
本课题要设计的是一个简易的数字频率计,要求可以测量正弦波、矩形波、三角波和尖脉冲等周期信号的频率值及占空比,其扩展功能可以实现自动切换量程,使整形时,以实现扩宽被测信号的幅值范围。该设计运用ADC0809进行数模转换,,并通过比较器与闸门脉冲相比较,得到一个特定周期的脉冲,为提高人机交互的方便性设计分频器,来获得频率计和占空比所用的基准电压,设计频率计数器和占空比测量计分别测量被测信号的频率和占空比,并通过数码管用十进制数显示数据。设计主要分为如下几个部分:
◆数模转换模块:A/D数模转换,为把数字信号转换为信息基本相同
的模拟信号而设计的处理过程。将信号发生器传过来的模拟信号转化成数字信号。
◆比较器模块:输出量数值与规定的参比值相比较,以产生一个差值信
号(误差信号)的器件。
◆分频模块:利用一个分频器实现分频,提高了人机交互的方便性。
◆频率模块:在一个测量周期过程中,被测周期信号在输入电路中经过
放大、整形、微分操作之后形成特定周期的窄脉冲,送到主门的一个输入端。主门的另外一个输入端为时基电路产生电路产生的闸门脉冲。
◆占空比模块:在一串理想的脉冲序列中(如方波),正脉冲的持续时间
与脉冲总周期的比值。
◆显示模块:用数码管显示频率及占空比,并用LED灯显示自动量程切
换。
关键词:AD转换、占空比、分频、基准电压、
- 2 -
现代电子系统课程设计__
简易数字频率计一.任务解析
本课题要求设计一个简易的数字频率计,要求如下:
◆被测信号为正弦波、三角波、方波,幅值1~3V。
◆被测信号的频率范围为1~20kHz,用4位数码管显示数据,;当频率高于低于10khz时以hz单位计量,高于10khz时以khz单位计量,用LED灯显示自动量程切换。频率超过20kHz时用LED灯或蜂鸣器警告。测量结果用十进制数值显示。
◆当测量脉冲信号时,能显示其占空比,用两位数码管显示,要求占空比精度误差不大于1%。
◆设置按键手动切换频率与占空比显示。
由以上要求可绘制简易的系统原理框图:
二.系统方案论证
2.1 总体方案论证
2.1.1 方案分析
方案一:基于FPGA的设计
我们用VHDL语言设计分别设计各个分模块,然后建立原理图作为顶层文件,将各个模块实现信号连接,再进行硬件下载从而实现。在确定的闸门时间Tw内,记录被测信号的脉冲数N,即得到被测频率为f=N/Tw。再用一个计数器
- 3 -
现代电子系统课程设计__
简易数字频率计
记录被测信号脉冲个数,然后把记录结果锁存,经数码管显示,记得到所测频率。此方案原理简单,模块化利于分析,得到的精度也比较高,也可以实现高频测量。其系统原理框图如下:
方案二:采用单片机控制合成各种波形
波形的选择,生成及频率控制均由单片机编程实现。此方案产生的频率范围,步进值取决于所采用的每个周期的输出点数及单片机执行指令的时间。此方案的优点是硬件电路简单,所用器件少,且实现各种波形相对容易,在低频区基本能实现要求的功能;缺点是精度不易满足,产生波形频率范围小,特别难以生成高频波形。
- 4 -
现代电子系统课程设计__
简易数字频率计
- 5 - 2.1.2 方案选择
对于FPGA 的设计,可以直接采用我们比较熟悉的VHDL 硬件语言直接进行的设计,在不同的场合,我们只要对语言进行适当的改动,就可实现具体情况具体应用,相较于单片机FPGA 可移植性更强。并且FPGA 本身是将大量的逻辑功能继承与一个器件内,集成度要远远高于单片机,能够利用的资源也相对充裕,因此可以较好地完成要求。经以上对两种方案的分析我们选择方案一。
2.2 计频模块论证
数字频率计的基本原理是用一个频率稳定度高的频率源作为基准时钟,对比测量其他信号的频率。通常情况下有以下两种思路:
方案一、
利用一个较大的周期信号作为参考信号,计量在一个周期内出现的被测信号的数目,最终我们可以通过计数器求出信号的频率,即直接测频法。被测信号的频率为:fx=Nx/Tw 。
TW
NX
闸门信号
被测信号
方案二、
利用一个频率较高来测量,具体来说就是计量被测信号在一个周期内的能够经历多少个参考频率。因此,同样也可以测量出具体信号的值,即测周期法。被测信号的频率为:fx=fs/Ns 。
现代电子系统课程设计__
简易数字频率计 - 6 - 被测信号
标准信号
TX
NS
但是,我们可以看到以上的两种方法本身有一些缺陷。对于第一种方法,如果被测信号的频率和参考信号的频率接近的话,那么测量出的结果就一定会有比较大的误差。对于第二种方法,如果被测信号的频率和比较的的话,会造成计数值的比较大的误差,因此第二种方法不适合测量低频率的信号。因此,为了保证测量的精度,就必须采用分段进行测量,也就是在低频的时候采用第二种方法,在高频时采用第一种方法。
三. 分模块电路设计
3、1 A/D 转换模块设计
该模块的作用是把数字信号转换为信息基本相同的模拟信号而设计的处理过程。将信号发生器传过来的模拟信号转化成数字信号。
首先我们了解到AD0809的工作过程是:输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START 上升沿将逐次逼近寄存器复位。下降沿启动 A/D 转换之后EOC 输出信号变低,指示转换正在进行。直到A/D 转换完成,EOC 变为高电平,指示A/D 转换结束,结果数据已存入锁存器 这个信号可用作中断申请。当OE 输入高电平时,输出三态门打开ALE,START,OE,ADDA 都是ADC0809的控制信号,ADDA 为模拟通道选择,低电平选择通道0,ALE 为通道地址锁存信号,START 为启动AD 转换的信号,OE 为ADC0809转换结果输出的使能信号。
部分转换程序如下:
BEGIN
ADDA <= '0'; --当ADDA<='0',模拟信号进入通道IN0;
现代电子系统课程设计__
简易数字频率计
- 7 - 当ADDA<='1',则进入通道IN1
Q <= REGL;
LOCK0 <= LOCK ;
COM: PROCESS(current_state,EOC)
BEGIN --规定各状态转换方式 CASE current_state IS
WHEN st0=>ALE<='0';START<='0';LOCK<='0';OE<='0'; next_state <= st1; --0809初始化
WHEN st1=>ALE<='1';START<='1';LOCK<='0';OE<='0'; next_state <= st2; --启动采样
WHEN st2=> ALE<='0';START<='0';LOCK<='0';OE<='0';
IF (EOC='1') THEN next_state <= st3; --EOC=1表明转换结束
ELSE next_state <= st2;
END IF ; --转换未结束,继续等待
WHEN st3=> ALE<='0';START<='0';LOCK<='0';OE<='1'; next_state <= st4; --开启OE,输出转换好的数据
WHEN st4=> ALE<='0';START<='0';LOCK<='1';OE<='1'; next_state <= st0;
WHEN OTHERS => next_state <= st0;
END CASE ;
经过编程后实现的ADC0809的元件例化图如下:
D[7..0]
CLK
EOC ALE START OE
ADDA
LOCK0
Q[7..0]
AD0809
inst8
现代电子系统课程设计__
简易数字频率计
图中CLK时钟选定为1MHz,这是因为ADC0809的工作时内部时钟为100ns,所以选在1MHz为最佳。为ADDA为1时,为通道1,ADDA为0时,为通道0,当ST0=0 START<='0';LOCK<='0';OE<='0'时从状态0转换到状态1,实现了从状态1到状态2,从状态3到状态4,再从状态4到状态0,把输入信号转化为二进制。然后作为比较器的输入信号。在比较器中和阀值进行比较。此功能模块的仿真图如下
3.2比较模块
该模块是数字信号比较器,本次设计中我们所用的数据为八位数据,将ADC0809转化的结果和给定的阈值进行比较,输出产生脉冲信号,结果把正玄波和三角波转化为方波信号。
部分程序如下:
begin
if q>="00011000" then
y<='1';
else y<='0';
- 8 -
现代电子系统课程设计__
简易数字频率计
- 9 - end if;
end process;
上述程序中选取阀值为00011000,当大于阀值时,输出为高电平,低于阀值时输出为低电平。从而实现了把正弦波,三角波转换为方波。然后输入到频率和占空比的控制模块中。
比较模块的元件例化图为:
d[7..0]y
bijiao
inst4
从ADC0809输出的数据D[7..0]送到d[7..0]做输入,用输入和阈值相比较,大于阈值则为高电平,小于阈值时为低电平。
此模块得到的仿真图如下:
从图中看出当输入数据大于00011000时,输出y 为1,小于0001100时,输出y 为0,当由于仿真的也延时作用,使得仿真有误差。
3.3 分频模块
现代电子系统课程设计__
简易数字频率计
此模块主要是为了实现人机的交互,和使用的外部资源尽量少。被本次设计中我将6Mhz的时钟信号分频出1Hz,2MHz,作为计频模块,占空比模块的时钟信号。
此功能部分程序如下:
process(clk)
begin
if clk'event and clk='1' then
if a=5999999 then
clk_p<=not clk_p;a<=0;
else a<=a+1;
if b=5 then
clk_z<=not clk_z;b<=0;
else b<=b+1;
end if;
end if;
end if;
end process;此功能模块的元件例化图如下:
f e n p i
c l k c l k_
c l k_
i n s t
此功能模块的功能仿真图如下:
- 10 -
现代电子系统课程设计__
简易数字频率计
3.4频率测量模块
fin是经过过比较器后的输入信号,在1S的信号下对fin信号进行计数计数器,要求低位的计数值溢出信号做为高位的输入信号,从而显示频率的计量。计数器采用十进制计数。由于需要记录的频率范围为1-20KHz,所以需要20为输出data_p[19..0],每四位接入一个数码管,显示一位即:Data_p[3..0]为计频器的个位,data_p[7..4] 为计频器的十位,data_p[11..8] 为计频器的Hz百位,data_p[15..12] 为计频器的Hz千位,data_p[19..16]为KHz位。每1s对fin记一次数据,得到的数据结果即位被测信号的频率。
在本次设计中当量程超过20Khz时,即发出过量程警告,也就是程序中
if dout(19 downto 16)="0001" then
oe<='1';语句实现,oe即为标志信号,将其接入一个led 灯。
此功能模块的生成的元件例化图为:
- 11 -
现代电子系统课程设计__
简易数字频率计
- 12 - clk_p
f in c20data_p[19..0]
pinlv ji
inst2
其中clk_p 为分频模块输出地1Hz 时钟信号,fin 为比较器输出脉冲。
C20为过量程信号。Data_p[19..0]为输出频率值。
此功能模块的仿真图如下:
图中设置的参数为fin 为基准频率的7倍,因此得到data[19..0]=7。
3.5 占空比模块
根据设计要求中,要求精度误差不大于1%,所以要求此模块的系统时钟为2MHz ,f 为比较器输出地脉冲信号,用一个计数器记录f 高电平期间系统时钟的个数N1,用一个计数器记录f 一周期内系统时钟的个数N2,用N1除以N2得到的数据分离出个位和十位,经过进制转换后,送到数码管上显示。
%10021??÷?=N N 占空比
现代电子系统课程设计__
简易数字频率计
部分程序如下:
p3:process(a)
begin
if a'event and a='1' then
zy<=y1;
end if;
end process p3;
p4:process(f3,c,clk_z)
begin
if f3='1' then k1<=0;m1<=0;
else
if clk_z'event and clk_z='1' then
if c='1' then
k1<=k1+1;
end if;
end if;
if clk_z'event and clk_z='1' then
if f2='1' then
m1<=m1+1;
end if;
end if;
end if;
end process p4;
p5:process(m1,k1)
begin
m<=m1*100/k1;
y1(3 downto 0)<=conv_std_logic_vector(m rem 10,4);
y1(7 downto 4)<=conv_std_logic_vector(m/10 rem 10,4);
end process p5;
程序中,m1为高电平所得2MHz的时钟个数,k1为一个周期所得2MHz的时钟个数,根据占空比公式得到占空比m,在将m对10求余,转换成四位二
- 13 -
现代电子系统课程设计__
简易数字频率计
- 14 - 进制,用两个数码管显示出来,y1(3 downto 0)为个位,y1(7 downto 4)为十位。
此功能模块的元件例化图如下所示: f
clk_z zy [7..0]
zhankongbi
inst
f 为比较器输出脉冲信号,clk_z 为3MHz 的时钟信号,由分频器得到,zy 为所测得占空比*100
的显示值。
此功能模块的仿真图如下所示:
图中所输入的信号f 的占空比为39%,只是稍微存在一些误差,实际情况应该是正确的。这也是造成了后来下载到实验箱上占空比显示不稳定的原因之一。
3.6 显示模块
此模块用于显示频率值和占空比的值,以及量程自动切换和超量程显示,由于可用数码管有限,因此我用一个按键控制两个值的的相互切换显示。此功
现代电子系统课程设计__
简易数字频率计能模块的元件例化图形如下图所示:
图中y1[7..0]为占空比值,data_p[19..0]为频率值,kz为功能切换键,当kz=‘1’时,数码管显示占空比;当kz=‘0’时,数码管显示频率值。
若c20=‘1’,表示量程超过20khz,频率显示0000,;dhz,kdhz分别接两个led灯,dhz=‘1’,表示以Hz为单位计频,kdhz=‘1’时,表示以KHz 为单位计频。
此功能模块的仿真图如下所示:
- 15 -
现代电子系统课程设计__
简易数字频率计
- 16 -
由图可以看出,当kz=‘1’时,数码管显示的是占空比;当kz=‘0’时,数码管显示的是频率值。当被测信号的频率大于10KHz 时,dkhz=‘1’,当频率在10KHz 以下时dhz=‘1’。
3.7 系统的整体原理图
f clk_z
zy [7..0]
zhankongbi
inst
clk_p
f in
c20
data_p[19..0]
pinlv ji
inst2
d[7..0]
y
bijiao
inst4
VCC
D[7..0]
INPUT
VCC
EOC
INPUT A L E
O U T P U T
S T A R T
O U T P U T
O E
O U T P U T
A D D A
O U T P U T
L O C K 0
O U T P U T
Q [15..0]
O U T P U T
D[7..0]CLK EOC
ALE START
OE ADDA LOCK0Q[7..0]
AD0809
inst8
clk
clk_p clk_z
f enpin
inst3y 1[7..0]
data_p[19..0]
kz
c20dhz
dkhz y out[15..0]xianshi
inst1
c 20
O U T P U T
k h z
O U T P U T
h z
O U T P U T
VCC
kz
INPUT VCC
clk1
INPUT VCC
clk2
INPUT
现代电子系统课程设计__
简易数字频率计
- 17 -
四、实验结果分析
经过一系列的模块设计与顶层文件编译仿真,将顶层原理框图下载到FPGA 试验箱并验证结果,发现此程序并没有达到规定他所需让它测得的量程范围1Hz-20KHz ,只达到最高频率2.5KHz ,而且占空比的显示只在200hz 以下时
比较稳定,较高频率时实现很不稳定的。
表4-1为不同频率所测得的频率和占空比
由上表我们可以看出,频率在200hz 以下时占空比显示稳定且误差较小,频率高于200hz 时占空比显示便开始闪烁跳跃;被测频率高于3khz 时显示频率也开始出现错误。
表4-1
输入幅度(V) 输入频率(HZ ) 输入占空比 输出频率(HZ ) 输出占空比 3 10 50 10 50 3 200 30 200 30
3 500 30 500 数码管跳跃 3 1000 40 1000 数码管不稳定 3 3000 30 3000 数码管不稳定 3 5000
50
1500
数码管不稳定
现代电子系统课程设计__
简易数字频率计
对于以上问题的出现,一方面可能是自己知识掌握不够牢固,对方案的设计及选择有一定的纰漏;另一方面也可能是实验器材的性能达不到要求及器材的不稳定造成实验效果的偏差。
四、心得体会
此次课程我们选择的是设计一个简易的数字频率计,该频率计可以测量正弦波、矩形波、三角波和尖脉冲等周期信号的频率值及占空比,本次设计我们选择FPGA来实现。两周的时间,从查阅资料到最终完成设计,由于不重视和对知识学习的不扎实,我们浪费了很多时间,首先上网查阅了很多资料,实验中不懂的地方又去翻阅了以前没有熟悉的课本和其他书籍,向能力较强的同学请教咨询,参考学长们的经验,才把各个模块原理搞明白并编辑仿真出来,最终实现。但由于实验器材的局限性及个人知识的的不全面性,虽然设计可以测量要求各种波形的频率和占空比,但与预先要求的测量范围还是有一定的出入,能够测量的最高频率只有3khz,达不到预先要求的最高测量20khz。也正由此我明白了自己知识上的不足以及考虑问题的狭隘,也学到了很多自己不熟悉的东西,经验是最宝贵的财富,此次也不例外。
- 18 -
现代电子系统课程设计__
简易数字频率计
五、附录
1.AD转换模块
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY AD0809 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; --观察数据锁存时钟
Q : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); --8位数据输出END AD0809;
ARCHITECTURE behav OF AD0809 IS
TYPE 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; -- 转换后数据输出锁存时钟信号
BEGIN
ADDA <= '0';--当ADDA<='0',模拟信号进入通道IN0;当ADDA<='1',则进入通道IN1
- 19 -
正在阅读:
简易数字频率计设计05-16
Java程序设计实验指导书(答案)05-22
打蚊子作文400字07-07
2010年新版《电子商务概论》习题集·1-13章全部整理04-18
建筑工程施工项目成本风险管理研究206-07
正弦函数余弦函数的图像和性质(2)04-29
Learn to Live in the Present Moment04-08
浅谈收益法在无形资产评估中的应用05-13
中国建设银行零点击网银盾客户使用指南09-16
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 频率计
- 简易
- 数字
- 设计
- 团支书竞选演讲稿
- 2016-2022年中国美容机构市场调查与行业发展趋势报告
- web程序设计课后答案
- 如何判断人的情商高低以及如何提升情商
- 科技(北京)有限公司
- 项目合作协议范本
- 2021年人教版七年级下册英语重点短语与句型Unit1-12
- 甲俭村委小学2012年度学校安全工作计划
- 浙江省杭州市三墩中学九年级科学上册 4.1-4.6随堂练习
- 党员冬训学习心得体会
- 语文:3.10《短文三篇》同步练习(人教新课标版必修4)
- 空气微生物污染检验方法
- 2012福建高职单招《语文》试题
- 我国碳排放水平的区域差异及影响因素分析_张珍花
- 浙大中控JX-300X原理、应用
- 黑玉米的营养价值与保健作用
- CDMA阿郎9916基站硬件介绍
- 速飞条形码扫描带出默认仓库仓位设置详述
- 国考公务员申论笔记
- 小企业会计制度解析