基于vhdl的数字频率计的设计与仿真_毕业设计(编辑修改稿)内容摘要:

时将产生较大误差,除非闸门时间取得很大。 所以这种方法比较适合测量高频信号的频率。 T法是通过测量被测信号的周期然后换算出被测 信号的频率。 这种测量方法的测量精度取决于被测信号的周期和计时精度,当被测信号频率较高时,对计时精度的要求就很高。 这种方法比较适合测量频率较低的信号。 M/T 法具有以上两种方法的优点,它通过测量被测信号数个周期的时间然后换算得出被测信号的频率,可兼顾低频与高频信号,提高了测量精度。 但是, M 法、 T法和 M/T 法存在177。 1个字的计数误差问题: M法存在被测闸门内177。 1个被测信号的脉冲个数误差, T法或 M/T 法也存在177。 1个字的计时误差。 这个问题成为限制测量精度提高的一个重要原因。 所以我们在设计之前必须要研究以往的设计方法, 通过研究各种设计方法的优点和实用性还有他们各自的设计需要如硬件和软件的组成,我们通过研究可以看出,我发现通过用 VHDL 编程实现软件的仿真,在 各个 模块的共同作用下,通过对测量信号上升沿的计数,我们可以简单,容易的读出我们所测量的信号的频率。 模块的划分 根据系统设计要求,系统设计采用自顶向下的设计方法,系统的组成框图如图 4. 1所示,包括时基产生与测频时序控制电路模块,以及待测信号脉冲计数电路模块和锁存与译码显示控制电路模块。 本 科 毕 业 设 计 第 13 页 共 35 页 (1)时 基产生与测频时序控制电路模块 时基产生与测频时序控制电路的主要产生计数允许信号 EN、清零信号 CLR 和锁存信号 LOCK。 (2) 待测信号脉冲计数电路模块 待测信号脉冲计数电路是对待测脉冲信号的频率进行测量,它可由 4个十进制加法计数器组成,其中 EN为计数选通控制信号, CLR 为计数器清零信号。 在计数器清零信号CLR 清零后,当计数选通控制信号 EN有效时,开始对待测信号进行计数。 如果计数选通控制信号 EN 的宽度为 1s,那么计数结果就为待测信号的频率;如果计数选通信号 EN的宽度为 100ms,那么 待测信号的频率等于计数结果 10。 (3) 锁存与译码显示控制电路模块 锁存与译码显示控制电路用于实现记忆显示,在测量过程中不刷新新的数据,直到测量过程结束后,锁存显示测量结果,并且保存到下一次测量结束。 锁存与译码显示电路的功能是对四位 BCD码进行锁存,并转换为对应的 4组七段码,用于驱动数码管。 频率计的设计方案 根据频率计的测频原理,可以选择合适的时基信号即闸门时间,对输入被测信号脉冲进行计数,实现测频的目的。 在这个设计前,我 们加入了一项测试周期的功能。 在实验过程中,要在频率计提供的基信号和输入信号之间做出选择,充当时基信号即闸门时时基产生与测频时序控制电路 待测信号 脉冲计 数电路 锁存与译码显示电路 EN CLR 待测信号 F_IN 标准时钟 CLK 图 数字频率计的组成框图 本 科 毕 业 设 计 第 14 页 共 35 页 间。 当测频率的时候,要以输入信号作为时钟信号,因为输入信号的频率大于频率计提供的基准频率,在频率计提供的基准信号周期内,计算输入信号的周期数目,再乘以频率计基准频率,就是输入信号的频率值了。 此时的时基信号为频率计的基准信号。 当测周期的时候,要以频率及提供的基准信号作为时钟信号,因为频率及提供的时基频率大于输入信号的频率,在输入信号周期内,计算频率计提供的基准信号的周期数目,再乘以基准信号频率,就是输入 信号的周期值了。 此时的时基信号为输入信号。 ( 1) 时基的设计 输入信号是随意的,没法预知其频率是多少,如何选取频率计提供的基准信号是关键。 测量频率时,在某个挡进行测量的时候,就需要提供该挡的时基。 在 10KHZ 挡,该挡最大读数为 ,同时也说明最小的读数是 ,所以提供的时基应该是频率为 .同样的方法 100KHZ挡提供的时基应该是频率为 , 1MHZ挡提供的时基应该是频率为 1KHZ 的脉冲。 同样用到 3个分频器,但是节约了资源。 可以考虑使用状态机来实 现这 3种时基,因为采用状态机来控制时序很清楚,不容易出错。 状态机用 1KHZ(周期为 1ms)的脉冲信号触发,因为所要生产的时基中,频率最大的就是 1KHZ 的脉冲,要产生高电频为 10ms 和 1ms 的脉冲信号,可以采用 100 个状态的状态机,从状态 1,状态 2„„到状态 100. ( 2) 计数器的设计 各个档之间的转换应遵循设计要求,要根据在时基有效时间内的计数值进行判断。 计数器可以直接定义成一个整形信号,这样计数器(即加 1)就十分方便,只要使用语句“计数器 =计数器 +1;”就可以。 但这个计数值要作为显示输出, 就要将这个计数器用个位、十位,百位分开表示,而且要遵循“加一逢十”的规则。 这样可以直接通过七段译码器进行显示。 ( 3) 模块的划分 计数器在各个挡是被反复应用的,如果在各个挡分别设计计数器,就造成资源的浪费,而且在测量周期和频率时,计数器的时钟信号和输入信号要进行调换,但是计数功能是一样的,所以将计数器设计成单独的模块。 7段译码器在各位,十位,百位中也都被利用了,因此也将其设计成单独的模块,重复引用就不需要在 3 个显示的时候重复书写译码电路了。 本 科 毕 业 设 计 第 15 页 共 35 页 图 四位十进制频率计顶层文件原理图 TESTCTL 为测频控制信号发生器。 TESTCTL 的计数使能信号 TSTEN 能产生一个 1 s宽的周期信号,并对频率计的每一计数器 CNT10 的 ENA 使能端进行同步控制:当 TSTEN高电平时允许计数、低电平时停止计数 REG4B为锁存器。 在信号 Load的上升沿时,立即对模块的输入口的数据锁存到 REG4B的内部,并由 REG4B的输出端输出,然后,七段译码器可以译码输出。 在这里使用了锁存器,好处是可以稳定显示数据,不会由于周期性的清零信号而不断闪烁。 CNT10 为十进制计数器。 有一时钟使能输入端 ENA,用 于锁定计数值。 当高电平时允许计数,低电平时禁止计数。 系统的总体设计 综上所述,频率计的总体系统可以设计为: 当系统正常工作时,由系统时钟提供的50MHz 的输入信号,经过信号源模块,通过分频器产生多种频率输出,其中 1HZ的输出频率被作为控制模块的时钟输入,其它不同的输出频率被作为显示模块的时钟输入,由控制模块产生的计数使能信号和清零信号对计数模块进行控制,而由其产生的锁存信号对锁存模块进行控制,一旦计数使能信号为高电平,并且时钟上升沿到来,计数器便开始正常计数,清零信号到来则计数清零,而当锁存 信号为高电平时,数据便被锁存器锁存,然后将锁存的数据输出到显示模块显示出来,数据锁存保证系统可以稳定显示数据,显示译码驱动电路将二进制表示的计数结果转换成相应的能够在数码显示管上可以显 本 科 毕 业 设 计 第 16 页 共 35 页 示的十进制结果。 在数码显示管上可以看到计数结果。 因此数字频率计的最终系统组成可以详细划分为六个模块,分别是:信号源模块、控制模块、计数模块、锁存器模块、译码模块和显示器模块。 信号源 模块对系统输入的时钟进行分频操作 , 获得 1HZ的信号作为 控制模块的时钟输入,和其他各种不同的频率的信号作为显示模块的时钟输入。 计数模块在闸门时间 内对被测信号进行计数 , 有一时钟使能输入端 ENA,用于锁定计数值。 当高电平时允许计数,低电平时禁止计数。 将 四 个十进制计数器 CNT10 级联起来实现 4 位十进制计数功能。 数字锁存器在固定时间基准的后周期开始工作 ,即当闸门计数时间结束 , 闸门下降沿到来时 , 锁存此时计数模块的各项输出。 在信号 LOAD 的上升沿时,立即对模块的输入口的数据锁存到 锁存器 的内部,并由 锁存器 的输出端输出,然后,译码器可以译码输出。 在这里使用了锁存器,好处是可以稳定显示数据,不会由于周期性的清零信号而不断闪烁。 数码译码 模块 主要是用来完成 各种码制之间的转换。 例如可用来完成 BCD— 十进制数、十进制数 — BCD 之间数制的转换。 显示模块则在七段数码管片选信号控制下 , 将锁存器保存的 BCD 码数 由译码模块译出后 , 以十进制形式显示。 控制模块是整个系统的控制部分 ,所有的控制信号几乎都由此模块产生 ,控制着其它 几 个模块的工作 .控制模块根据外部对系统的复位和开始等信号 ,实现系统内部的复位、开始测频等功能 ,并通过优化模块的标志信号实现连续无间断的频率测量 .控制模块首先通过对基准时钟分频得到模块所用时钟 ,使所产生的测量开始指令脉冲的宽度符合基准时间产生模块的输 入要求 ,然后检测各输入信号 ,确定各模块的复位、测量、输出等操作 .当控制模块接收到优化模块的标志信号时 ,控制模块先检测在最新一次复位后是否已经接受过系统开始测量脉冲信号 .若是 ,则输出频率测量开始脉冲信号 ,使基准时间产生模块开始频率测量 ,同时送到优化模块 ,复位优化模块的内部变量 ,使优化模块能够再次输出反馈标志信号 .这样 ,系统只需在开始施加一次频率测量开始脉冲信号 ,即可实现连续不间断的频率测量 . 各模块的实现 测频控制信号发生器的功能模块及仿真 测频控制信号发生器的功能模块如图。 本 科 毕 业 设 计 第 17 页 共 35 页 图 测频控制信号发生器的功能模块图 频率计的关键是设计一个测频率控制信号发生器,产生测量频率的控制时序。 控制模块是整个系统的控制部分 , 所有的控制信号几乎都由此模块产生 , 控制着其它 几个 模块的工作。 控制模块根据外部对系统的复位和开始等信号 ,实现系统内部的复位、开始测频等功能 ,并通过优化模块的标志信号实现连续无间断的频率测量。 控制时钟信号 CLK取为 1Hz, 2 分频后即可产生一个脉宽为 1 秒的 时钟 TSTEN,以此作为计数闸门信号。 当TSTEN 为高电平时,允许计数;当 TSTEN 由高电平变为低电平(下降沿到来)时,应产生一个锁存信号,将计数值保存起来;锁存数据后,还要在下次 TSTEN 上升沿到来之前产生零信号 CLR_CNT,将计数器清零,为下次计数作准备,如图 号仿真图。 图 测频控制信号仿真图 十进制计数器的功能模块及仿真 计数是一种最简单基本的运算,计数器就是实现这种运算的逻辑电路,计数器在数字系 统中主要是对脉冲的个数进行计数,以实现测量、计数和控制的功能,同时兼有分频功能,计数器是由基本的计数单元和一些控制门所组成,计数单元则由一系列具有存储信息功能的各类触发器构成,这些触发器有 RS 触发器、 T触发器、 D 触发器及 JK触发器等。 计数器在数字系统中应用广泛,如在电子计算机的控制器中对指令地址进行计数,以便顺序取出下一条指令,在运算器中作乘法、除法运算时记下加法、减法次数,又如在数字仪器中对脉冲的计数等等。 计数器可以用来显示产品的工作状态,一般来说主要是用来表示产品已经完成了多少份的折页配页工作。 它主要的 指标在于计数器的位 本 科 毕 业 设 计 第 18 页 共 35 页 数,常见的有 3位和 4 位的。 很显然, 3位数的计数器最大可以显示到 999, 4位数的最大可以显示到 9999。 十进制计数器的功能模块如图。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。