基于单片机和CPLD的等精度频率计学士学位论文Word文档下载推荐.docx
- 文档编号:16817433
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:27
- 大小:230.17KB
基于单片机和CPLD的等精度频率计学士学位论文Word文档下载推荐.docx
《基于单片机和CPLD的等精度频率计学士学位论文Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于单片机和CPLD的等精度频率计学士学位论文Word文档下载推荐.docx(27页珍藏版)》请在冰豆网上搜索。
学生承诺
我承诺在毕业论文(设计)活动中遵守学校有关规定,恪守学术规范,本人毕业论文(设计)内容除特别注明和引用外,均为本人观点,不存在剽窃、抄袭他人学术成果,伪造、篡改实验数据的情况。
如有违规行为,我愿承担一切责任,接受学校的处理。
学生(签名):
2009年5月15日
指导教师承诺
我承诺在指导学生毕业论文(设计)活动中遵守学校有关规定,恪守学术规范,经过本人核查,该生毕业论文(设计)内容除特别注明和引用外,均为该生本人观点,不存在剽窃、抄袭他人学术成果,伪造、篡改实验数据的现象。
指导教师(签名):
2009年5月15日
毕业设计(论文)原创性声明和使用授权说明
原创性声明
本人郑重承诺:
所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:
日 期:
指导教师签名:
日 期:
使用授权说明
本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:
按照学校要求提交毕业设计(论文)的印刷本和电子版本;
学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;
学校可以采用影印、缩印、数字化或其它复制手段保存论文;
在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:
日 期:
学位论文原创性声明
本人郑重声明:
所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
日期:
年月日
学位论文版权使用授权书
本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
日期:
导师签名:
日期:
目录
摘要1
1前言2
2等精度频率测量原理分析3
2.1等精度频率测量原理3
2.2等精度频率测量的误差分析4
3系统方案5
3.1方案提出及比较5
3.2系统整体方案6
3.3单片机与CPLD连接方案7
3.4单片机定时及数据处理方案8
3.5CPLD计数方案9
4方案实现9
4.1CPLD设计9
4.2单片机设计12
4.3关键源代码分析13
5仿真及测试14
5.1仿真分析14
5.2测试结果与分析15
6致谢16
参考文献17
**********学士学位论文(设计)评审表18
基于单片机和CPLD的等精度数字频率计
(*************物理与电子科学学院,***********)
摘要:
在现代信号分析和处理领域中,高精度的频率测量具有非常重要的意义。
本文详细论述了一种基于CPLD和单片机的等精度数字频率计的设计原理及过程,对CPLD和单片机的有关知识也作了简要介绍。
本设计用51单片机作为数据处理和控制的核心,利用可编程逻辑器件ATF1504设计相应的硬件电路,实现高精度的频率测量。
关键词:
等精度CPLD单片机定时器
中图分类号:
FREQENCYMETERFOREQUALPRECISIBASFDONCPLDANDMCU
********
(*********,***********,China)
Abstract:
Frequencymeasurementiselectronicmeasurementtechnology.Inmodernsignalanalysisandprocessingareas,high-precisionmeasurementoffrequencyisveryimportant.Inthispaper,wedetailthedesignprocessonthesamedigitalfrequencyaccuracy,andalsobrieflyintroduceCPLDandmicrocontroller-relatedknowledge.Inthedesign,weusemini51boardasadevelopmentplatform,usingtheprogrammablelogicdeviceATF1504todesignthehardwarecircuit.
Keywords:
accuracy,CPLD,microcontroller,timer
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个计算器同时关闭。
图2测量仿真波形图
由图所示的测频时序图可见,Gate的宽度Tc和发生的时间都不会影响计数使能信号,允许计数的周期总是恰好等于待测信号fx的完整周期nTx,这正是确保fx在任何频率条件下都能保持恒定测量精度的关键。
因为,此时Gate的宽度Tc改变以及随机的出现时间造成的误差dt最多只有基准时钟fb信号的一个时钟周期,由于fb的信号是由高稳定度的(例如100MHz)晶体振荡器发出的,所以任何时刻的绝对测量误差只有1/(10的8次方)s,这也是系统产生主要的误差。
2.2等精度频率测量的误差分析
设基准时钟信号频率为,待测信号频率的测量值为
,实际值为
,由于计数的起停时间都是由待测信号的上升沿触发的,在Tpr时间内对待测信号的计数值
无误差;
在此时间内基准时钟信号的计数值
与实际值最多相差一个脉冲,即|△et|≤1,则下式成立:
所以有:
根据相对误差公式有:
代入整理得:
(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所示。
图5单片机扩展图
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单片机设计
单片机部分的主要作用是:
控制外部计数器和内部定时器计数器的开启与关闭;
外部计数器和内部定时器计数器的数据的读取;
处理以及显示读取的数据。
测量开始,单片机首先发出清零信号,对外部的CPLD计数器清零,然后将内部定时器清零,配置成外部时钟控制方式;
然后发出计数启动信号,进入等精度频率测量计数模式,单片机通过查询计数器,判断计数时间,该计数时间必须小于外部32bit计数器溢出时间,时间一到,单片机发出停止计数信号,查询引脚Intn(P3.2),确认计数停止,读回外部计数结果和内部计数器计数结果,假设分别为N1和N2,定时器计数时间间隔为T1,那么被测信号的平率F=(N1/N2)t,将计算出的数据用液晶1602显示。
程序流程如图12所示。
图12单片机程序流程
4.3关键源代码分析
程序先将预置闸门关掉,源代码如下
OPEN=0;
temp1=0;
while(GATE)if(temp1++>
65000)break;
//超时跳出
后清零CPLD内计数器和单片机定时器0
CLRP=1;
CLRP=0;
TH0=0;
TL0=0;
将定时器溢出寄存器清零并打开计数器、定时器,待外部信号上升沿到来后,计数器、定时器开始计数
counter=0;
TR0=1;
OPEN=1;
待定时器溢出后关闭预置闸门
while(counter<
1);
//
OPEN=0;
temp1=0;
等待外部信号上升沿关闭定时器计数
while(GATE)if(temp1++>
TR0=0;
读回计数器和定时器的值,并计算出被测信号频率
temp=counter*65536+TH0*256+TL0;
fx=1843200/temp;
//(22118400/12=1843200)
fx=fx*(REG2*65536+REG1*256+REG0);
将信号频率值转换为ASIC吗,并调用lcd显示函数显示频率值
sprintf(str_buff,"
%-8.3fHz"
fx);
lcd_put_xys(1,2,"
"
);
//清屏
f="
lcd_put_xys(3,2,str_buff);
5仿真及测试
5.1仿真分析
使用EDA工具的一个最大好处是可以验证硬件设计是否正确,几乎每个公司的EDA产品都有仿真工具7。
MAX+plus2也不例外,由于此硬件电路速度不高,我们主要进行前仿真,看电路逻辑是否出错。
(1)对Frequency模块结构的测量控制部分进行仿真,结果如图13。
图13Frequency测量控制部分仿真图
从图10中可以看到,单片机首先将P10_En清零,随后清零计数器,间隔一个被测信号周期后,单片机将P10_En置1,之后计数器开始计数并将Gate置1,计满后,P10_En置0,在下一个被测信号上升沿到来时,Gate信号清零通知单片机计数完毕。
(2)单片机总线接口及整体模块进行仿真,结果如图11所示。
图14单片机总线接口仿真图
从
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 CPLD 精度 频率计 学士学位 论文