logo资料库

CPLD频率计(电子方舟).doc

第1页 / 共9页
第2页 / 共9页
第3页 / 共9页
第4页 / 共9页
第5页 / 共9页
第6页 / 共9页
第7页 / 共9页
第8页 / 共9页
资料共9页,剩余部分请下载后查看
3.1 CPLD模块
采用CPLD芯片用VHDL语言将数字钟分成秒信号发生器、秒计数器、分计数器、时计数器、静态译码
图4 频率计方框图
图4中,待测信号输入十进制计数器中,4个十进制计数器组合,可测频率范围是0-9999Hz。用50MH
3.2 数码管显示原理图
数码管显示原理图如图5所示
图5 数码管显示原理图
插座P1和P2直接与CPLC模块的输出引脚连接。为了方便布线,不是按照a、b、c、e、f、g的顺序
基于 CPLD 的频率计设计 电子方舟 摘要:采用 EDA 模块化设计的方法设计了一种简易数字频率计。首先将数字频 率计划分为一个时序控制电路、四个十进制计数电路和四个锁存译码电路九个模 块,其中相同模块可以重复使用,所以采用 VHDL 语言对三个功能模块单独进 行设计、仿真和例化,最后将九个单元模块组合在一起进行仿真,仿真结果表明, 采用 CPLD 所设计的时序和逻辑电路能够满足数字频率计的要求。将 CPLD 的 程序下载到 MAXII EPM240T100C5 芯片,并与四个七段数码管结合在一起,构 成一个完整的数字频率计。采用方波信号发生器进行测试,测试结果表明:测量 范围为 lHz~9999Hz,响应时间为 1 秒,测量误差小于 1%。 关键词:VHDL 数字频率计 模块化 1、目的和要求 数字频率计的基本功能是测量正弦信号,方波信号以及其他各种单位时间内 变化的物理量。在进行电路的设计、安装、调试过程中经常要用到数字频率计。 频率计主要由四个部分构成:时基(T)电路、输入电路、计数显示电路以及控 制电路。 图 1 测量频率的原理框图 输入电路:由于输入的信号可以是正弦波,三角波。而后面的闸门或计数电 路要求被测信号为矩形波,所以需要设计一个整形电路。在测量的时候,首先通 过整形电路将正弦波或者三角波转化成矩形波。 时基和闸门电路:闸门电路是控制计数器计数的标准时间信号,被测信号的 脉冲通过闸门进入计数器的个数就是由闸门信号决定的,闸门信号的精度很大程 度上决定了频率计的频率测测量精度。当要求频率测量精度高时,应使用晶体振 荡器通过分频获得。 计数显示电路:在闸门电路导通的情况下,开始计数被测信号中有多少个上 升沿。在计数的时候数码管不显示数字。当计数完成后,此时要使数码管显示计 数完成后的数字。 控制电路:控制电路里面要产生计数清零信号和锁存控制信号。 请设计一个四位十进制的数字频率计, 测量范围在 1Hz~9999Hz 之间,测 量误差  1%。 响应时间  1s。 2 方案论证 设计数字频率计可以采用数字电路、单片机或 CPLD 等方案。 方案一:用数字集成电路设计 1
采用数字集成电路的计数器和计数器构成简易数字钟。但是电路设计复杂, 开发周期长,调试不方便。数字集成电路如图 1 所示。 图 1 数字集成电路 方案二:采用单片机设计 采用单片机片内的定时器产生时基信号,采用另一个定时器工作在计数器状 态,外接待测信号,也可以测量频率。但是测频范围受单片机的时钟频率限制。 方案三:采用 CPLD 设计 图 2 采用单片机设计的频率计 由 CPLD 和数码管显示电路可以设计成如图 3 所示的频率计。 图 3 采用 CPLD 的频率计 图 3 中,CPLD 芯片采用 VHDL 语言设计频率计的时序控制电路,使用 JTAG 接口下载程序,通过 CPLD 芯片 I/O 口输出到数码管显示。 3 硬件设计 2
3.1 CPLD 模块 采用 CPLD 芯片用 VHDL 语言将数字钟分成秒信号发生器、秒计数器、分计 数器、时计数器、静态译码器 5 个模块来设计。采用顶层文件进行综合。如图 4 所示: 图 4 频率计方框图 图 4 中,待测信号输入十进制计数器中,4 个十进制计数器组合,可测频率 范围是 0-9999Hz。用 50MHz 时钟信号,经过秒信号发生器分频后每秒输出一个 清零信号和一个数码显示信号。四个十进制计数器都采用 BCD 码输出,分别经 过静态 4-7 译码器,控制数码管显示。 3.2 数码管显示原理图 数码管显示原理图如图 5 所示 图 5 数码管显示原理图 插座 P1 和 P2 直接与 CPLC 模块的输出引脚连接。为了方便布线,不是按照 a、b、c、e、f、g 的顺序连接,而是依据数码管的引脚封装,按就近的原则连接。 4 数字钟 VHDL 程序设计 分别用 VHDL 对其进行编程,实现计数锁存电路、显示电路等。分析数字频 率计的功能,完成功能模块的划分,分别用 VHDL 语言完成底层模块的设计和 以原理图的方法完成顶层模块的设计,分别对各个模块以及顶层模块进行仿真分 3
析,最后在硬件开发平台上进行测试。 4.1 秒信号发生器的设计 4.1.1 VHDL 程序设计 VHDL 编写的秒信号发生器程序如下 秒信号发生器有一个 clk 标准逻辑输入端口,用于输入 50MHz 时钟频率。有 一个 start 开始计数使能标准逻辑输出端口,一个 stop 数码显示使能标准逻辑输 出端口。 由于输入的时钟频率是 50MHz,要输出 1Hz 的秒信号,必须对 50MHz 进行 50000000 分频。当计数累加到 50000000 次时,输出一个下降沿的 stop 显示使能 信号和一个上升沿的 start 开始计数使能信号。并把计数清零。 4.1.2 秒信号发生器仿真与波形分析 由 50MHz 分频产生 1Hz 的信号,计数 50000000 次,仿真不方便,因此把计 数设置为 10 次产生一个脉冲来观测输出信号的变化。输入时钟信号 clk 的周期 是 20ns。秒信号发生器的仿真波形如图 6 所示。 图 6 秒信号发生器时序仿真图 从图中可以看到,start 第一个上升沿和第二个上升沿之间,隔了 10 个 clk 脉 冲。stop 第一个下降沿和第二个下降沿之间,也隔了 10 个 clk 脉冲。测试结果 4
与程序设计相同,由此可以推断在 clk 为 50MHz 时,计数 50000000 次可以产生 1Hz 的秒信号。每秒输出一个 stop 显示使能信号和一个 start 开始计数使能信号。 4.2 十进制计数器设计 4.2.1 VHDL 程序设计 VHDL 编写的十进制程序如下 十进制计数器,有一个 clk 标准逻辑进位输入端,有一个 co 标准逻辑输出端, 一个 start 开始计数使能标准逻辑输入端口,一个 stop 数码显示使能标准逻辑输 入端口。一个 q 用于 BCD 码数据输出端。 在允许计数的情况下,每接收到一个进位上升沿输入信号,计数累加 1,累 加满 10 后,计数清 0,输出进位信号。在允许显示输出的情况下,输出当前计 数值得 BCD 码。 4.2.2 十进制计数器仿真与波形分析 clk 是脉冲输入端,start 是开始计数使能标准逻辑输入端口,stop 是数码显示 使能标准逻辑输入端口, cnt 是程序内部计数器,用于辅助观测仿真波形 q 用于 BCD 码数据输出端,co 是进位输出端。仿真结果如图 7 所示。 5
图 7 十进制时序仿真图 从仿真结果可以看到每 10 个 clk 上升沿脉冲,cnt 计数清 0 一次,并输出一 个 co 进位脉冲信号。每当 start 开始计数使能信号为 0,即不允许计数,cnt 计数 清 0。每输入一个 stop 显示使信号的上升沿,q 输出一次 BCD 码。 4.4 静态译码器设计 4.4.1 VHDL 程序设计 VHDL 编写的静态译码器程序如下 静态译码器有一个 BCD 码输入端 num,有一个 7 段数码管控制输出端 seg。 译码器的功能是把输入的 BCD 码转换成能够在数码管上显示对应数字。包 括一个 num 4 位二进制输入端,与秒计数器、分计数器和时计数器连接,输入 BCD 码。一个 seg 7 位二进制段码输出端,与 7 段数码管连接。 4.4.2 静态译码器仿真与波形分析 num 是计数器输入的 4 位二进制 BCD 码,seg 输出对应 BCD 码在数码管中 的译码。7 段译码从高到底分别对应数码管的 f、e、d、c、b、a。仿真结果如图 8 所示。 6
图 8 静态译码器时序仿真图 当输人 BCD 码为 0 时,输出 0111111,即数码管可显示 0。当输人 BCD 码 为 1 时,输出 0000110,即数码管可显示 1。 4.5 顶层设计 综合各个程序模块,构成顶层设计如图 9 所示。 图 9 频率计顶层时序控制电路设计 图中包括秒信号发生器,个位十进制计数器,十位十进制计数器,百位十进 制计数器,千位十进制计数器,静态译码器。外部待测信号输入到个位十进制计 数器,有 4 个十进制计数器组成测量范围为 0-9999Hz 的频率计。50MHz 的时钟 频率输入秒信号发生器,每秒产生一个清 0 信号和一个显示信号。十进制计数器 接收到清 0 信号时,清除对外部信号的计数。接到显示信号时,每个十进制计数 器把当前的数值输出静态译码器,由译码器通过 CPLD 的 I/O 口控制数码管模块 显示出待测信号的频率。 5 引脚配置与下载 5.1 引脚配置 点击工具栏的“Assignments”,选择“Pin Planner”进入引脚配置界面。配置 方法如下。 (1)时钟输入脚 clk 必须要配置到 Pin_64 脚(晶振引脚); (2)其他 28 个输出引脚原则上可以自由配置,但是如果数码管硬件电路已经 确定,就必须按照 7 段数码管的段码顺序连接,详情可查阅原理图。数码管段码 引脚分配如图 10 所示。 7
5.2 程序下载 图 10 引脚分配图 点击工具栏的“Tools”,选择“Programmer”进入下载界面。如图 11 所示。 图 11 下载界面 第 一 次 下 载 时 , 需 要 点 左 上 角 的 “ Hardware Setup ” 选 择 下 载 方 式 。 “Program/Configure”列表中勾选所有选项,然后点“Start”下载程序。当 “Progress”下载进度条显示“100%”时,完成下载。 6、测量步骤及结果 6.1 测量设备 VC2002 函数信号发生器器是一种精密的测试 仪器。它可以连续的输出正弦波、方波、矩形波、 锯齿波和三角波五种函数信号。特性:频率范围: 0.2Hz~2MHz;波形:正弦波、三角波、方波、矩 形波、锯齿波;五位 LED 频率显示,三位 LED 幅 度显示;频率幅度,占空比连续可调;二段式固定 衰减器:20dB/40dB。 6.2 测量方法和步骤: 调节信号发生器输出幅度 6。4V,占空比 50%的方波信号。 将信号发生器产生的方波信号接入计频器输入端口,中间串联 4.7K 电阻。 调节输出频率,记录测试数据。 6.3 测量结果 测量结果如表 1 所示 8
分享到:
收藏