数字频率计设计
一、实验目的
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短路块位置在右面。
图5 CPLD实验板电路板照片和组成框图
4.5 CPLD实验电路板原理和与实验箱62芯插座连接关系
图6 为CPLD板的详细电路图。
CPLD可供用户自定义的引脚见表1,共有25个引脚,均可根据需要定义为输入或输出。
CPLD与实验箱62芯插座定义表见表2,可使用3个8位的数字I/O口作为频率计的输入计数结果,1个5位的单向数据输出口为频率计的控制口。
表1 用户可用的CPLD自定义I/O引脚
P4 |
P5 |
P6 |
P8 |
P9 |
P10 |
P11 |
P15 |
P16 |
P17 |
P18 |
P20 |
P21 |
P22 |
P24 |
P25 |
P27 |
P28 |
P29 |
P30 |
P31 |
P77 |
P79 |
P80 |
P81 |
表2 CPLD和62芯插座连线引脚定义
引脚 名称 |
CPLD |
62芯插座引脚 |
说明 |
引脚 |
CPLD |
62芯插座引脚 |
说明 | |
DO0 |
P40 |
16 |
数字I/O口 |
DO24 |
P63 |
28 |
单向输出口 | |
DO1 |
P36 |
48 |
DO25 |
P76 |
60 | |||
DO2 |
P41 |
17 |
DO26 |
P64 |
29 | |||
DO3 |
P44 |
49 |
DO27 |
P75 |
61 | |||
DO4 |
P45 |
18 |
DO28 |
P68 |
30 | |||
DO5 |
P46 |
50 |
VCC |
P3,P13, |
31,62 |
+5V电源 | ||
DO6 |
P48 |
19 | ||||||
DO7 |
P49 |
51 | ||||||
DO8 |
P50 |
20 |
数字I/O口 | |||||
DO9 |
P51 |
52 |
GND |
P1,P7, |
13,44 |
电源地 | ||
DO10 |
P55 |
21 | ||||||
DO11 |
P52 |
53 | ||||||
DO12 |
P54 |
22 | ||||||
DO13 |
P65 |
54 | ||||||
DO14 |
P57 |
23 |
CPLD时钟源 |
P83 |
45 |
由S1短路 | ||
DO15 |
P67 |
55 | ||||||
DO16 |
P56 |
24 |
数字I/O口 | |||||
DO17 |
P69 |
56 | ||||||
DO18 |
P58 |
25 |
outsideclk |
P39 |
15 |
选择接(P83) | ||
DO19 |
P70 |
57 |
allCLR |
P35 |
47 |
系统总清零 | ||
DO20 |
P61 |
26 |
outside_tri |
P37 |
14 |
外部触发 | ||
DO21 |
P73 |
58 |
||||||
DO22 |
P60 |
27 |
||||||
DO23 |
P74 |
59 |
图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片选), |
在本实验中需使能 |
02H |
D2-D0 |
DO0-DO23数据方向控制 |
在本实验中都设为输入 |
03H |
D7-D0 |
DO7-DO0数据 |
在本实验中作为计数值低字节 |
04H |
D7-D0 |
DO15-DO8数据 |
在本实验中作为计数值中字节 |
05H |
D7-D0 |
DO23-DO16数据 |
在本实验中作为计数值高字节 |
06H |
D4-D0 |
DO28-DO24数据 (只有输出) |
在本实验中作为测量控制和闸门选择 |
对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秒时,有效位数最多。
改变输入信号的频率,继续测量和观察。
6.2 测试
(1) 调节函数发生器输出信号的频率为200kHz,选择不同的闸门时间,进行测试,并且把测试结果填入表2。
表2 闸门时间不同时频率测试结果(信号频率200kHz)
闸门时间信号频率 |
1ms |
10ms |
100ms |
1s |
测试频率 |
|
|
|
|
(2)固定闸门时间1s,输入不同频率时,进行测试,把测试结果填入表3,并且计算测试误差。
表3 输入信号频率不同时测试结果(闸门时间为1秒)
信号频率 |
25Hz |
0.25kHz |
2kHz |
20kHz |
200kHz |
900kHz |
信号源实际 |
|
|
|
|
|
|
测试频率 |
|
|
|
|
|
|
测试误差 |
|
|
|
|
|
评论
查看更多