毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 论文 >> 正文

AVR单片机简易多功能计数器设计 第4页

更新时间:2012-6-22:  来源:毕业论文
图3—系统总框图
1.4 各模块硬件实现
1.4.1 FPGA部分
FPGA部分由频率测量模块、周期/时间间隔测量模块、SPI通信模块,PLL等子模块组成。
1.4.1.1 频率测量模块
 
图4—频率测量模块
频率测量模块由分频模块、门控模块,BCD计数模块和数据锁存模块组成。其中分频模块将FPGA开发板的50M的时钟分频为2Hz门控时钟。门控模块收门控时钟的上升沿,对BCD计数器的使能(enable)、清零(clr)和数据锁存(lck)信号的时序进行控制图5所示。
值得注意的是,本频率测量模块使用的BCD计数器而不是普通二进制计数器。BCD码很大程度上方便了单片机将其转换成字符型数据,论文范文http://www.chuibin.com/  最终显示在LCD上。我们发现,二进制码转BCD码的算法较为复杂,同时占用的FPGA的片内资源也较多,故直接采用BCD计数方法。
 图5—频率测量时序图
1.4.1.2 周期/时间间隔测量模块
周期测量使用两个状态机(主状态机和sig_sel状态机)实现。
对于低频信号(signal_x),我们直接计算其一个周期包含的量化时钟的数目。对高频信号,将其通过分频器分频后再计算包含的量化时钟的数目。由sig_sel状态机选择被量化的信号。(如图6所示)
为达到精度0.01%的要求,每个signal时钟需包含大于10000个量化时钟。因此,我们对周期小于100us的信号进行1000倍分频。
 
图6—自动转量程原理图
时间间隔测量原理与周期测量相同。区别在于时间间隔测量为单次测量,周期测量为连续测量。单脉冲周期无频率而言,故不能经过分频器(sig_sel始终为0)。为区别周期测量和时间间隔测量这两种模式,本模块引入一个模式选择信号(mode)当mode=1时为侧周期模式,当mode=0是为测时间间隔模式。
主状态机:
测量一次上图中signal信号周期需要用3个signal的方波的周期。每一个signal周期对应一种状态,每种状态下执行不同的操作。状态转换图以及各状态的功能如表1所示。
 
表1—状态机功能 本文来自辣.文~论^文·网原文请找腾讯324-9114
控制时钟 被测方波(signal)的上升沿Hold,或者rst信号的下降沿:
idle 周期计数器(cnt)清零,hold状态计数器(cnt_hold)*清0,
idle状态计数器(cnt_idle)*计数
hold 周期计数器(cnt)计数,idle状态计数器(cnt_idle)清0
counting 周期计数器(cnt)保持,hold状态计数器(cnt_hold)计数
 *设置hold状态计数器和idle状态计数器的目的是避免出现被测信号的频率过低而又被1000倍分频导致的电路所死(长时间处于idle或hold状态)的情况。

上一页  [1] [2] [3] [4] [5] [6] 下一页

AVR单片机简易多功能计数器设计 第4页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©751com.cn 辣文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。