基于单片机和CPLD的等精度频率计.docx
- 文档编号:9786067
- 上传时间:2023-02-06
- 格式:DOCX
- 页数:19
- 大小:193.36KB
基于单片机和CPLD的等精度频率计.docx
《基于单片机和CPLD的等精度频率计.docx》由会员分享,可在线阅读,更多相关《基于单片机和CPLD的等精度频率计.docx(19页珍藏版)》请在冰豆网上搜索。
基于单片机和CPLD的等精度频率计
学号******编号********研究类型应用研究分类号TM935.13
*******
***************
学士学位论文(设计Bachelor’sThesis
论文题目基于单片机和CPLD的等精度频率计
作者姓名**
指导教师****
所在院系*****
专业名称***************
完成时间2009年5月15日
湖北师范学院学士学位论文(设计诚信承诺书
摘要.....................................................................................................................1
1前言......................................................................................................................2
2等精度频率测量原理分析.................................................................................32.1等精度频率测量原理..............................................................................3
2.2等精度频率测量的误差分析..................................................................4
3系统方案.............................................................................................................53.1方案提出及比较......................................................................................53.2系统整体方案...........................................................................................63.3单片机与CPLD连接方案.......................................................................73.4单片机定时及数据处理方案..................................................................8
3.5CPLD计数方案........................................................................................9
4方案实现.............................................................................................................94.1CPLD设计................................................................................................94.2单片机设计.............................................................................................12
4.3关键源代码分析.....................................................................................13
5仿真及测试.......................................................................................................145.1仿真分析.................................................................................................14
5.2测试结果与分析....................................................................................15
6致谢...................................................................................................................16参考文献...............................................................................................................17**********学士学位论文(设计评审表.......................................................18
基于单片机和CPLD的等精度数字频率计
**
(*************物理与电子科学学院,***********
摘要:
在现代信号分析和处理领域中,高精度的频率测量具有非常重要的意义。
本文详细论述了一种基于CPLD和单片机的等精度数字频率计的设计原理及过程,对CPLD和单片机的有关知识也作了简要介绍。
本设计用51单片机作为数据处理和控制的核心,利用可编程逻辑器件ATF1504设计相应的硬件电路,实现高精度的频率测量。
关键词:
等精度CPLD单片机定时器
中图分类号:
TM935.13
FREQENCYMETERFOREQUALPRECISIBASFDONCPLDANDMCU
********
(*********,***********,China
Abstract:
Frequencymeasurementiselectronicmeasurementtechnology.Inmodernsignalanalysisandprocessingareas,high-precisionmeasurementoffrequencyisveryimportant.Inthispaper,wedetailthedesignprocessonthesamedigitalfrequencyaccuracy,andalsobrieflyintroduceCPLDandmicrocontroller-relatedknowledge.Inthedesign,weusemini51boardasadevelopmentplatform,usingtheprogrammablelogicdeviceATF1504todesignthehardwarecircuit.Keywords:
accuracy,CPLD,microcontroller,timer
基于单片机和CPLD的等精度数字频率计
1前言
由于频率计能够快速准确的捕捉到被测信号频率的变化,频率计拥有非常广泛的应用范围。
在传统的生产制造企业中,用户可以通过使用频率计能够迅速的发现有故障的晶振产品,确保产品质量。
在计量实验室中,频率计被用来对各种电子测量设备的本地振荡器进行校准。
在无线通讯测试中,频率计既可以被用来对无线通讯基站的主时钟进行校准,还可以被用来对无线电台的跳频信号和频率调制信号进行分析。
在CMOS电路系列产品中,数字频率计是用量最大、品种很多的产品,是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器,并且与许多电参量的测量方案、测量结果都有十分密切的关系。
另外,在生产过程中许多物理量,例如温度、压力、流量、液位、PH值、振动、位移、速度、加速度,乃至各种气体的百分比成分等均用传感器转换成信号频率,然后用数字频率计来测量,这些物理量往往需要相当精确的数据,所以对频率计的精确度和误差稳定度的要求很高。
因此,高精度频率计的设计与研究具有很大的现实意义。
常用的直接测频方法主要有测频法和测周期法两种。
测频法就是在确定的闸门时间内,记录被测信号的变化周期数。
测周期法需要有标准信号的频率,在待测信号的一个周期内,记录标准频率的周期数得到待测频率。
这两种方法的计数值会产生±1个字误差,并且测试精度与计数器中记录的数值有关。
为了保证测试精度,一般对于低频信号采用测周期法;对于高频信号采用测频法,因此测试时很不方便,所以人们提出等精度测频方法。
等精度测频方法是在直接测频方法的基础上发展起来的。
融合以上两种方法的优点,可兼顾低频与高频信号,但较以上两种方法而言,等精度频率测量有较高的测量精度,且误差不会随着被测信号频率的改变而改变。
因为它的闸门时间不是固定的值,而是被测信号周期的整数倍,即与被测信号同步,因此,测除了对被测信号计数所产生±1个字误差,并且达到了在整个测试频段的等精度测量。
2等精度频率测量原理分析
2.1等精度频率测量原理
频率测量一般原理:
基准定时器加计数器,关键是如何实现高精度的基准定时与计数器同步控制,常规依靠软件查询判断控制是很难达到精度要求的,必须用硬件逻辑实现。
等精度频率测量原理框图如图1所示。
图1等精度频率测量原理框图
图中计数器1和计数器2是2个可控的32Bit计数器,EN是它们的计数允许信号端,高电平有效。
基准定时器频率信号从计数器1的时钟输入端CLK输入,设其频率为Fb;待测信号经前端放大、限幅和整形后,从计数器2的CLK输入,测量频率为Fx。
测量仿真波形图如图2所示。
测量开始,t0时刻单片机发出一个清零信号CLR,使2个32b的计数器和D触发器置0,t1时刻单片机再发出测量启动信号Gate,即使图中D触发器输入置数D为高电平,这时D触发器要一直等到被测信号的上升沿t2时刻,Q端才被置1,使计数器1和计数器2的EN同时为1,将启动计数器计数,系统进入计数允许周期。
这时,计数器1和2分别对被测信号和基准频率信号同时计数。
当一段时间过后,t3时刻单片机发出停止信号,即D触发器置数D为低电平,但此时2个32b的计数器仍然没有停止计数,一直等到随后而至的被测信号的上升沿t4时刻到来时,才通过D触发器将这2个计算器同时关闭。
t
图2测量仿真波形图
由图所示的测频时序图可见,Gate的宽度Tc和发生的时间都不会影响计数使能信号,允许计数的周期总是恰好等于待测信号fx的完整周期nTx,这正是确保fx在任何频率条件下都能保持恒定测量精度的关键。
因为,此时Gate的宽度Tc改变以及随机的出现时间造成的误差dt最多只有基准时钟fb信号的一个时钟周期,由于fb的信号是由高稳定度的(例如100MHz晶体振荡器发出的,所以任何时刻的绝对测量误差只有1/(10的8次方s,这也是系统产生主要的误差。
2.2等精度频率测量的误差分析设基准时钟信号频率为,待测信号频率的测量值为xf,实际值为xef,由于计数的起停时间都是由待测信号的上升沿触发的,在Tpr时间内对待测信号的计数值xN无误差;在此时间内基准时钟信号的计数值sN与实际值最多相差一个脉冲,即|△et|≤1,则下式成立:
ssxxNfNf=
(etNfNfssxxe∆+=
所以有:
(etNNffsxsx∆+⨯=
根据相对误差公式有:
xexxexexefffff-=∆
代入整理得:
sxexeNetff∆=∆(1
由上式(1可以得出以下结论:
等精度测频方法测量精度与预置门宽度和基准频率有关,与被测信号的频率无关[6];增大预置门宽度Tpr或提高基准信号频率fs,可以增大Ns,减少测量误差,提高测量精度;
3系统方案
3.1方案提出及比较
方案一:
单片机单独完成,在单片机内部计数器以及软件共同控制下,在设定时间内,利用单片机内部的两个计数器分别对外部被测信号和内部时钟周期信号进行同步计数,计数的结果暂存于单片机内部。
在测量结束后,通过单片机进行计算得到测量结果。
方案二:
CLPD单独用完成,应用VHDL硬件描述语言,利用CLPD内部丰富的数据类型和层次化的结构模型,对整个系统进行逻辑设计并用计算机仿真,生成符合要求的、在电路结构上可实现的数字逻辑,再下载到可编程逻辑器件中,即可完成设计任务。
方案三:
单片机与CPLD共同完成,利用CPLD的高速、高可靠性,完成待测信号的测量和基准时钟计数部分,利用单片机灵活的逻辑控制能力和强大的数据处理能力,完成整个系统的控制及数据处理。
由等精度测频原理知:
若能精确地实现计数,经过简单的乘除运算,即可得到待测频率。
然而,在兆赫兹级的计数,一般的单片机就无能为力了,而CPLD的时钟频率可达纳秒级,完全可以实现其计数功能。
因此方案一不理想。
但是,CPLD内部资源本身就较少,在完成计数的同时,要CPLD完成兆级以上的乘除运算,需消耗更多的硬件资源,而单片机在不受运行速度限制时几乎不要增加任何成本,因此方案二也不理想。
所以,方案三用CPLD完成计数,用单片机完成控制、运算和显示最为理想。
3.2系统整体方案
本系统主要由四部组成:
控制部分、计数部分、数据处理部分及显示部分。
由于所用CPLD芯片内资源较少,其内部只能设置一个32位计数器,用来测量被测信号个数,另外一个计数器用单片机内部定时器。
所以,各个硬件分工情况为:
CPLD完成对被测信号的测量计数和总线设计;单片机完成对基准时钟的计数和对整个测量系统的控制,包括对CPLD测量过程的控制、数据的缓存、测量结果数据的处理和LCD1602的驱动;频率为22.1184MHz的标准晶振提供系统的基准时钟信号和单片机的时钟电路;LCD1602完成测量结果的显示。
系统设计原理图如图3所示。
图3系统设计原理图
(1计数器1使用单片机内部定时器0作为计数器,对基准时钟计数。
(2计数器2为CPLD内部生成的32位计数器,对待测信号计数。
(3基准时钟fo,由单片机晶振提供,频率为22.1184M/12。
(4预置闸门由单片机P0.1输出,P0.0为计数器2的清零信号,高电平有效,P3.2为计数器的使能信号,控制计数器1和计数器2计数的启动与停止。
(5数据处理,扫描显示都由单片机软件程序实现。
(6由LCD1602显示测量结果。
系统的测量流程大致如下:
首先,单片机发出清零信号,对外部CPLD计数器(即图中计数器2清零,然后将内部定时器清零(即图中计数器1,配置成外部时钟控制方式,然后发出计数启动信号,当启动信号置1和外部信号上升沿到来时,计数器闸门打开,CPLD内计数器和单片机定时器同时计数,单片机通过查询计数器,判断计数时间,该计数时间必须小于外部
32bit计数器溢出时间,时间一到,单片机发出停止计数信号,启动信号关闭,此时当外部信号上升沿到来时,计数器闸门关闭,CPLD内计数器和单片机定时器停止计数。
然后,单片机读回外部计数结果和内部计数器计数结果,计算可得到被测信号的频率,送LCD显示。
3.3单片机与CPLD连接方案
单片机与CPLD之间可以根据需要,采用多种不同的接口方式,这里提出一种总线接口方案,采用三总线(数据、控制、地址结构,如图4所示,双向数据总线完成数据传输,单向控制总线和地址总线通过CPLD对外围对象控制。
图4单片机与CPLD总线结构的接口原理图
单片机P0口为双向数据总线,该P0口同CPLD的通用IO口连接,完成数据和低8位地址传送;控制总线包括单片机读写控制总线Rd和Wr,以及地址锁存信号Ale(AddressLockEnable,地址总线A15(P2.7。
控制总线和地址线通过CPLD的全局输入信号引脚输入,包括全局时钟GlobleClk,全局清零输入GlobalClear,全局使能输入GlobalOE,特定输入Ded.Input。
这些全局信号同CPLD里面的每一个单元相连,当用外部的时钟来触发时,用这些信号比用普通管脚速度快,保证信号到每个宏单元的延时相同并且延时最短。
这里就经典51系列单片机和ATERAL公司的EPM7064接口为例,设计单片机通过CPLD实现地址锁存,地址译码译码,LCD、ADC0809、DAC0832的接口设计,实现灵活可扩展地址编码。
电路如图5所示。
*********2009届物理与电子科学学院学士学位论文(设计
3.4单片机定时及数据处理方案
51板上没有频率非常高的基准晶振源,我们只好选择单片机时钟晶振做基准源,同时考虑到Mini51B上CPLD资源有限,很难胜任完整的等精度控制逻辑,经过实验测试,我们选择单片机内部定时器做计数器1。
定时计数器硬件结构如图6所示,当C/T=1时,多路开关与引脚Tn脚相连,定时器计数脉冲由外部输入,当C/T=0时,定时器计数脉冲由晶振频率经过12分频后做为定时器计数脉冲。
当GATE=0时,封锁“或”门,这时“或”门输出为1,使引脚INTn输入信号无效。
打开“与”门,此时由TRn控制定时器的开关。
若GATE=1,当TRn为1时,外部信号电平通过INTn引脚直接开启或关断定时器计数。
这里将定时器设置成方式一且为外部引脚INTn做门控信号启动关闭计数器。
单片机给CPLD提供启动停计数门控信号,计数器清零信号,CPLD反馈给单片机定时计时器门控信号,这样可以保证系统的设计与原理一直。
测量结束,单片机根据定时器计数结果和CPLD计数结果计算出信号的频率,数据处理后送LCD显示。
图6单片机定时计数器硬件结构
3.5CPLD计数方案
CPLD计数原理框图如图7所示,过程如下:
当预置闸门有效时,由于DFF触发器为边沿触发器,在上升沿时才将数据输出,所以DFF触发器输出端并不立即置1,只有当外部信号上升沿到来时,DFF触发器输出端才有效。
这样保证了两计数器的允许信号在被测信号的上升沿到来时同时有效。
当预置闸门关闭时,两计数器的允许信号只有在被测信号的上升沿到来时同时关闭。
被测信号通过与门直接接在计数器的输入端,这样就保证了被测信号的计数值绝对正确,由于基准信号的计数闸门与被测信号严格同步,所以理论上只会有一个脉冲的误差。
CPLD内计数器为32位,在预置时间内,只要计数器不溢出,即可准确测量被测信号个数。
图7CPLD计数原理框图
4方案实现
4.1CPLD设计
这部分在Max+plusII环境下完成的,可用原理图输入和VHDL硬件描语言,这里我们采用直观的原理图输入。
电路如图8所示。
图8CPLD硬件电路设计图
图8中,硬件电路设计共包括四个部分:
输入部分、输出部分、计数器部分和总线接口部分。
mcu_ctr1模块为总线接口模块,frequency模块为测量计数控制模块。
(1信号测量部分设计,电路如图9所示。
图9Frequency模块的测量控制部分设计图
图9中:
①P10_En为预置闸门信号输入端。
②fx为外部被测信号输入端。
③P11_Clr为counter32计数器清零信号输入端。
④Gate为两计数器计数允许信号输出端。
⑤dd[31:
0]为counter32计数器的32位数据输出端。
⑥DFF触发器完成两计数器计数同步。
⑦counter32计数器对外部信号进行计数。
这部分实现对两计数器计数同步的控制和对外部信号的计数功能。
模块功能的实现过程如下:
当P10_En预置闸门有效时,由于DFF触发器为边沿触发器,在上升沿时才将数据输出,所以计数器允许信号Gate并不立即置1,
只有当外部信号上升沿到来时,计数器允许信号Gate才有效。
这样保证了两计数器的允许信号在被测信号的上升沿到来时同时有效。
当P10_En预置闸门关闭时,两计数器的允许信号只有在被测信号的上升沿到来时同时关闭。
被测信号通过与门直接接在计数器的输入端,这样就保证了被测信号的计数值绝对正确,由于基准信号的计数闸门与被测信号严格同步,所以理论上只会有一个脉冲的误差。
(2分离部分设计,电路如图10所示。
图10Frequency模块的数据分离部分设计图
图10中:
①Y0-Y3为控制信号输入端。
②dd[7:
0]~dd[32:
24]计数器32位数据中8位。
③P0为数据输出端,与单片机相连。
由于51系列单片机为8位单片机,不能同时读取32位数据,所以必须将32位计数器的数据分为4组,每组8位。
控制选通信号Y0-Y3在单片机读信号到来且地址正确时使能,此时计数器相应的数据位与单片机P0口接通。
(3单片机与CPLD总线接口设计,电路如图11所示。
图11总线接口模块设计图
图11中:
①P0为单片机数据地址口,读写外部数据时,先输出地址,后输出数据。
②WR,RD为单片机读写控制信号,低电平有效。
③P27为单片机第16位地址。
④ALE为单片机地址锁存允许输出,高电平有效。
⑤Y0-Y3为计数器32位数据选通控制信号输出端。
⑥Led2En为液晶使能信号。
⑦74373为低八位地址锁存器。
⑦74154为地址译码器。
这部分完成单片机总线低8位地址的锁存和译码。
低位地址锁存由74373完成,在ALE信号的配合下,总线地址在ALE高电平时锁存,在ALE低电平时维持。
地址锁存后配合P27高位地址,送往74154进行译码,译码后的低四位Y0-Y3作为计数器数据分离部分的控制信号,YA和YB配合读写信号控制液晶显示。
4.2单片机设计
单片机部分的主要作用是:
控
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 CPLD 精度 频率计