数字频率计设计
[导读]数字频率计设计 一、实验目的
数字频率计设计
一、实验目的
1.熟悉CPLD的开发软件的基本使用。
2.理解频率计的测量原理。
3.掌握CPLD逻辑电路设计方法。
4.掌握虚拟数字频率计的软件设计。
二、实验任务和内容
1. 在CPLD中设计一个数字频率计电路,设计要求为: 测量范围:1Hz~1MHz, 分辨率<10-4>, 数码管动态扫描显示电路的CPLD下载与实现。
2.使用LabVIEW进行虚拟频率计的软件设计。要求设计软件界面,闸门时间为4档,1s,100ms,10ms,1ms,频率数字显示。
3.使用设计虚拟逻辑分析仪软件和CPLD电路,进行软硬件调试和测试
三、实验器材
1. SJ-8002B电子测量实验箱 1台
2.计算机(具有运行windows2000和图形化控件的能力) 1台
3.函数发生器 1台
4.SJ-7002 CPLD实验板 1块
5.短接线若干
四、实验原理
4.1.测频原理
所谓“频率”,就是周期性信号在单位时间变化的次数。电子计数器是严格按照f=N/T的定义进行测频,其对应的测频原理方框图和工作时间波形如图1 所示。从图中可以看出测量过程:输入待测信号经过脉冲形成电路形成计数的窄脉冲,时基信号发生器产生计数闸门信号,待测信号通过闸门进入计数器计数,即可得到其频率。若闸门开启时间为T、待测信号频率为fx,在闸门时间T内计数器计数值为N,则待测频率为
fx = N/T (1)
若假设闸门时间为1s,计数器的值为1000,则待测信号频率应为1000Hz或1.000kHz,此时,测频分辨力为1Hz。
本实验的闸门时间分为为4档:1s,100ms,10ms,1ms。
图1 测频原理框图和时间波形
4.2 数字频率计组成
本实验要求的数字频率计组成如图2所示,频率计的硬件电路(图1所示)在CPLD芯片中实现,测量结果通过实验箱提供的EPP通信接口送给计算机,频率计的软件和人机界面由计算机完成,同时计算机还可输出清零和闸门选择的控制信号给电路。
本实验的任务一是在提供的CPLD实验板上设计和实现频率计测量电路,二是在计算机上使用LabVIEW软件设计频率计界面和程序。
图2 数字频率计组成框图
4.3 CPLD特点和设计流程
CPLD器件是由用户配置以完成某种逻辑功能的电路,本CPLD实验电路板选用ALTERA公司的EPM7128SLC84器件,其特点为:84引脚Pin,内部有128个宏单元、2500个等效逻辑门、15ns的速度、PLCC84封装形式。除电源引脚、地线引脚、全局控制引脚和JTAG引脚外,共提供了64个可用I/O脚,这些引脚可以任意配置为输入、输出和双向方式。
CPLD的设计流程如图3所示,本实验采用的设计软件为ALTERA公司的Quartus Ⅱ,下载方式采用的是并口电缆ByteBlaster。下载时的硬件设置操作如图4所示。
图3 CPLD设计流程和并行电缆下载示意图
图4 下载时的硬件设置选ByteBlaster
4.4 CPLD实验电路板
1)数字信号输入:8个ON~OFF(K1~K8)开关
2) 数字信号输出(显示):8个LED灯(LED1~LED8),低电平点亮
3) 6个LED 7段数码管,采用动态扫描方式,L1、L2、L3为位选信号,低有效,A、B、……、G为7段码,DP为小数点,均为低有效。
4) 时钟晶振:频率为1MHz,已连接到CPLD的时钟引脚
注:使用CPLD板的1.000MHz的晶振时钟,需放置CPLD板上S1短路块位置在右面。
电路图如下:
图6 CPLD实验板电路原理图
五、设计指导:
分为CPLD硬件电路设计和虚拟频率计软件设计两部分
5.1 CPLD硬件电路设计
CPLD设计和调试的过程是:①任务分析,层次分解,得到顶层设计框图,大致确定每个子模快(子电路)的功能、输入和输出;②子模快电路设计和软件仿真;③完成顶层电路设计,顶层仿真;④分配引脚,下载,连线和调试。
5.1.1设计任务分析和顶层设计
根据设计任务,可分为四大部分:
(1)闸门时间和测量控制:闸门时间分别为1s,100ms,10ms,1ms,由1MHz的基准时钟分别产生1Hz,10Hz,100Hz,1kHz的时基信号作为闸门控制信号,同时控制测量结果的锁存。
(2)多位计数器电路:根据闸门时间最长为1秒,被测信号频率最高为1MHz,所以选用6位十进制计数器,保证测量计数器不溢出。6位十进制的计数器对被测信号的脉冲进行计数,输出6位十进制计数值,每位都用4位BCD码表示,共有24根线。每次测量开始前清零计数值。
(3)计数结果锁存和实验箱接口:在每次测量闸门时间到时使用锁存器锁存计数值(6位BCD码),供计算机读数。
(4)计数结果6位数码管动态显示电路: 设计一个6位BCD选1的多路数据选择器,输出的一位BCD码(4根线)送给BCD-七段译码器译成段信号,从CPLD输出给数码管的7段。同时多路数据选择器的控制选通信号需要3根,必须与6位数码管的位选信号同步。位选信号来自电路板的时钟(1MHz)分频,在用译码器译码(每次只能选中一个数码管)。要保证多位显示均匀和不闪烁,请计算和设计分频的频率和电路。
根据CPLD电路的层次化设计功能,设计出如图7所示的顶层设计框图。
图7 频率计顶层设计框图
5.1.2 部分电路设计提示
电路的设计均有原理图设计和HDL语言文本设计两种方法,根据电路的特点和各人的情况,自己选用。
对每个子模快进行软件仿真,先创建波形文件,设定时间间隔和解释时间,编辑输入波形,运行仿真,分析结果是否正确。若不正确,则修改设计,重新编译后,再仿真,直到正确为止。
(1)闸门时间和测量控制: 闸门时间分别为1s,100ms,10ms,1ms,由1MHz的基准时钟分别产生1Hz,10Hz,100Hz,1kHz的时基信号作为闸门控制信号,使用CPLD实验板上的1MHz时钟信号,经过1000分频得到1kHz信号,在经过10分频得到100Hz信号,在经过10分频得到10Hz信号,在经过10分频得到1Hz信号。设计时,先设计一个10分频电路,级联3个,得到1000分频,级联一个,得到10分频。闸门时间选择共4档(1s,100ms,10ms,1ms),可采用数据选择器实现,需要2根从计算机来的控制信号。闸门时间产生电路,设计一个电平有效清零端,作为启动测量或停止测量,由计算机通过实验箱来控制。闸门时钟经过D触发器2分频,得到闸门时间内为高电平的信号,作为测量计数结果的锁存控制信号。闸门时钟和显示时钟产生测量计数器的清零信号。
(2)多位十进制的计数器子模块设计:
没有现成电路可用,所以必须自己设计。
为什么不选用二进制计数器(从显示要求、二进制转换为BCD电路的难易等考虑)
设计方法一:选用6个1位的可逆带清零十进制计数器级联得到。注意进位/借位信号的时序。
设计方法二:使用HDL语言编程,注意同时满足十进制、加、减的进位和借位。
(3)计数结果锁存和实验箱接口:
在每次测量闸门时间到时使用锁存器锁存计数值(6位BCD码),供计算机读数。采用3个8位的锁存器74273,输入锁存由闸门时间控制,输出长选通,连接实验箱提供的3个数字I/O口,工作在输入方式。
(4)计数结果6位数码管动态显示电路:
由6位BCD选1电路、BCD-七段译码器、位选电路组成,其中为选电路又包括分频电路、为选控制和为选译码电路。
①6位BCD选1的多路数据选择器设计:
没有现成电路可用,所以必须自己设计。
可选用多个数据选择器来组合。要求控制选通信号需要3根,按000-001-010-011-100-101变化,只有6个状态。
②BCD-七段译码器设计:
有现成电路选用,注意共阴和共阳数码管的区别。
③位选信号产生
分频电路:位选信号来自电路板的时钟(1MHz)分频,要保证多位显示均匀和不闪烁,先计算分频电路要求的输出频率,再设计分频电路。可使用计数器分频。也可直接借用闸门时间电路的分频信号。
位选控制:要求为6个状态,设计电路可采用状态机的方法,但仔细分析6个状态之间的关系后,可得出符合_________的计数器。
设计方法:语言和图形均可。
位选译码:每次选中一个,可选用什么译码器?注意位选电平是高电平有效还是低电平有效。
5.1.3 分配引脚和编译、下载
用户可用引脚见表2,引脚分配要满足CPLD电路板上已有的连线情况,考虑芯片引脚和外围电路的位置,就近分配。如输入被测信号在右边,输出7段码和位选在左边。与计算机和实验箱的连接遵照表2的规定。
每次分配引脚后,需重新编译后,再下载。
5.2 虚拟频率计软件设计
5.2.1虚拟频率计界面设计
软件界面上控制型控件有1个数字型旋钮用于选择闸门时间,分为1s,100ms,10ms,1ms 4档,两个按键,1个控制测量的启动/停止,1个控制整个程序退出。
指示型控件有3组,1个布尔型指示灯显示采样状态,1组显示测量的频率数值(十进制)和单位(字符串),单位有Hz和kHz两种,还有1组显示读取的3个字节的计数值(BCD码),由3个数字型控件组成。
图8 频率计界面
5.2.2程序流程图
图9 程序流程图
5.2.3 实验箱EPP接口和编程
SJ8002B实验箱本实验使用EPP地址和意义
地址功能和设置
本实验中的设置
00H:D7-D0
全局清零信号(在读数、采集、启动信号源之前都必须)? (00H?00)
EPP初始化时发清零信号
01H
D2-D0
小板控制使能(U019,U020,U021片选),
0:禁止
1:使能
在本实验中需使能
02H
D2-D0
DO0-DO23数据方向控制
0:输入(外部à主板)
1:输出(主板à外部)
在本实验中都设为输入
03H
D7-D0
DO7-DO0数据
在本实验中作为计数值低字节
04H
D7-D0
DO15-DO8数据
在本实验中作为计数值中字节
05H
D7-D0
DO23-DO16数据
在本实验中作为计数值高字节
06H
D4-D0
DO28-DO24数据 (只有输出)
在本实验中作为测量控制和闸门选择
D25D24=00? 闸门时间为1ms
D25D24=01? 闸门时间为10ms
D25D24=10? 闸门时间为100ms
D25D24=11? 闸门时间为1s
D27=0? 停止测量
D27=1? 启动测量
其余未用
对EPP接口的操作,调用以下3个子VI来完成:
(1)EPP初始化: epp_init.vi 调用时无参数。
(2) EPP写:epp_read_data.vi 调用是输入地址和数据,无输出参数
(3) EPP读:epp_read_data.vi ,调用是输入地址,输出数据。
5.2.3 数据转换和显示
测量计数值=高字节×10000+中字节×100+低字节
测量结果=计数值/闸门时间
编程时考虑不同档位时的数值、单位和有效位数。
六. 测试和调试
6.1 调试
(1)实验硬件连接
根据设计的频率计电路和分配的引脚连线,被测频率信号连接到函数发生器的TTL(CMOS)输出端。计数器的输出位选分别连接6个数码管的为选端L1~L6;注意左边的数码管为低位,7段信号分别连接。
图10 实验连线图
(2) 检查动态扫描电路
数码管7段信号全部直接接地,位选分别连接CPLD输出位信号,6个数码管稳定显示“888888”。
(3)软硬件联调:
允许虚拟频率计程序,输入信号的频率在10KHz,按下测量键,观察频率计的显示结果是否正确,如不正确,则检查程序,改正错误。
改变闸门时间,观察有效位数的变化,闸门时间为1秒时,有效位数最多。
改变输入信号的频率,继续测量和观察。