基于单片机ip核的等精度频率计设计(编辑修改稿)内容摘要:

,则被测信号的频率如下式: fx=(Nx/Ns)*fs 在测量中,由于 fx计数的启停时间都是由该信号的上升沿出发的,在闸门时间 t 内对 fx的计数 Nx无误差,对 fs 的计数 Ns 最多相差一个数的误差, δ =1/fs 由上式可以看出,测量频率的相对误差与被测信号频率的大小无关,仅与标准信号频率有关,即实现了整个测量频段的等精度。 标准频率越高,测量的相对误差越小。 在保证精度测量不变的前提下,提高标准信号频率,可是闸门时间缩短,即提高测试速度。 等精度测频实现 等精度频率计的实现可以简单地用图 36 和波形图 37 来说明设。 图 34 中“预置门控信号” CL 可由单片机发出,可以证明,在 1 秒至 秒间的选择范围内, CL 的时间宽度对测量精度几乎没有影响,在此设其宽 度为 Tpr。 BZH 和 TF 模块是两个可控的 32位高速计数器, BENA 和 ENA 分别是它们的计数允许信号端,高电平有效。 标准频率信号 40MHz 从 BZH 的时钟输入端 BCLK 输入,设置频率为 Fs;经整形后的被测信号从与 BZH 相似的 32 位计数器 TF 的时钟输入端 TCLK 输入,设置真实频率值为 Fxe,被测频率为 Fx。 等精度频率计原理如下图 36 所示: 大学本科生毕业设计(论文) 12 图 36 等精度频率计设计原理图 bclk 为标准频率信号设定为 40MHz, tclk 为被测信号,被测信号的范围为 1Hz 到40MHz。 clr 为清零信号, cl 为预置门信 号, start 为实际闸门信号, sel 为数据选择器的控制端口, data 为数据传送端口。 测试开始前,首先发出一个清零信号 CLR,使两个计数器和 D 触发器置 0,同时 D 触发器通过信号 ENA,禁止两个计数器计数。 这是初始化操作。 然后由单片机发出允许测频命令,即令预置门控信号 CL 为高电平这时 D 触发器要一直等到被测信号的上升沿通过 Q 端时才把 start 置 1,与此同时,将同时开启计数器 BHZ 和 TF,进行计数,当 Tpr 秒后,预置门信号 CL 被单片机置为低电平,但此时两个计数器并没有停止计数,一直等到随后而至的被测信号的上升沿到来时 start 为 0,才通过 D 触发器将这两个计数器同时关闭 图 37等精度频率计波形仿真 设在一次预置门时间中对被测信号的计数值为 Nx,对标准频率计数值为 Ns,则下式成立: Fx/Nx=Fs/Ns 不难得到测得的频率为: Fx=(Fs/Ns)*Nx 大学本科生毕业设计(论文) 13 测量占空比的原理 设定中间信号 pl,分别取被测信号的一个正脉宽和一个负脉宽作为门控信号,对标准频率进行计数,对正脉宽的计数值为 N1,对负脉宽的计数值为 N2,则周期计数值为N1+N2,于是占空比为: 占空比 =N1*100%)/(N1+N2) 图 38 测量占空比的实现 对于占空比的测量,可以通过测量正反两脉宽的计数值来获得。 设 BZH 对正脉宽的计数值为 N1,对负脉宽的计数值为 N2,则周期计数值为 N1+N2,于是占空比为 : 占空比 =(N1*100%)/(N1+N2) 占空比的测量流程如下图 39 所示: 图 39 占空比测量流程图 测量占空比的波形仿真见下图 310 占空比仿真波形, BCLK 为标准频率信号为40MHz, TCLK 为被测频率信号, CL预置门信号设置为低电平,给清零信号 CLR 一个有效电平(高电平有效),等待 EEND 由低电平跳变为高 电平时表示对被测信号的一个负脉宽计数结束,此时读取标准计数器的数据标记为 N1,然后再给出清零信号 CLR 一个有效电平,预置门控信号设置为高电平,等待 EEND 由低电平跳变为高电平时表示对被测信号的一个正脉宽计数结束,此时再读取标准计数器的数据标记为 N2,对 N1, N2进行简单的算术运算就可以得到占空比。 大学本科生毕业设计(论文) 14 图 310占空比仿真波形 单片机的功能 数据传输与计算 首先用 VHDL 语言编写一个八选一数据选择器,其封装模块如图 38 所示,其主要功能是由 P0 口的 3 根输出信号控制,将 32 位测频数据分成 8 个四位依次送进单片机P2 的输入口。 图 311 八选一数据选择器 BZQ 接标准频率计数器的数据口, TSQ 接被测信号计数器的数据口, sel selsel0 接单片机的 、 、 , DATA[7..0]接单片机的 P2 口,单片机程序在 Keil C 环境下开发,实现将 32 位二进制测频数据分成 8 个四位由高位到低位的顺序依次送到单片机。 单片机程序设计思想:设置 、 、 作为数据选择器的地址输入端,设置从 000111 情况下依次将标准频率计数器和被测频率计数器的数据分别送到单片机。 定义一个 32 位的数据类型,把每次接受的 8 位数据通过“位移”指令和简单的加法还大学本科生毕业设计(论文) 15 原为 32 位,再进行算术运算,得到想要的结果,驱动液晶显示出来。 液晶显示 液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在袖珍式仪表和低功耗应用系统 中得到越来越广泛的应用。 本实验使用字符型液晶模块 HS1624。 HS1624 液晶模块是一种用 5x7点阵图形来显示字符的液晶显示器,根据显示的容量可以分为 1行 16个字、 2 行 16个字等。 HS1624采用标准的 16脚接口,其中 VSS为地电源, VDD接 5V正电源。 V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“阴影”,使用时可以通过一个 10K 的电位器调整对比度。 RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。 RW为读写信号线,高电平时 进行读操作,低电平时进行写操作。 当 RS和 RW共同为低电平时可以写入指令或者显示地址,当 RS为低电平 RW为高电平时可以读忙信号,当 RS为高电平 RW为低电平时可以写入数据。 E端为使能端,当 E端由高电平跳变成低电平时,液晶模块执行命令。 LEDA和 LEDK为背光电源, LEDA接 5V正电源, LEDK接 GND。 D0~D7为 8位双向数据线。 液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。 要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,表 31 是 HS1624 的内部显示地址。 表 11 HS1624内部显示地址表 即,第 1行的显示开始地址应为: 80H;第 2行的显示开始地址应为: C0H。 液晶的三个控制信号 RS、 RW、 E,分别接单片机的 、 、 , 8 位数据线接 P1 口,在程序中设置三个按键切换不同的功能: K2(复位) ———— 显示“ Qing Guang Ming ” “ Bi Ye She Ji ” K3(测频率) 显示“ FREQ: ” “测量所得的频率 ” 大学本科生毕业设计(论文) 16 K4(测占空比) 显示“ DUTY: ” “所测得的占空比” 按键控制的液晶显示流程图如下图 312 所示: 图 312按键控制液晶显示流程图 单片机与 FPGA 的组合应用 把 FPGA 程序和单片机程序分别调试好后再组合起,锁定引脚、编译、下载进行联合调试。 整体流程图如下图所示, bclk 接标准频率信号 40MHz, tclk 接被测信号, clr接 口, cl 接 口, spul 接 口, sel sel sel0 分别接单片机 、 、 口, start 接 口, eend 接 口, data 接 P2 口,按键 K2 是复位开关显示初始化内容,按键 K3 接 测频显示,按键 K4 接 测占空比显示。 图 313总体框图 大学本科生毕业设计(论文) 17 第四章 程序调试 等精度频率计程序 把等精度频率计模块与单片机系统正确确连接,锁定好引脚,特别注意不用的单片机 I/O 口要接地。 连线与引脚锁定分别见下图 41 412。 图 411 图 412 单片机程序 和 VHDL 程序编译在一起下载到 FPGA 中 点击 ROM,文件路径该成如图 421 所示点“ ./ASM”表示把单片机的 hex 文件存在当前工程 ASM 中。 大学本科生毕业设计(论文) 18 图。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。