基于单片机的等精度频率计设计.docx
《基于单片机的等精度频率计设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的等精度频率计设计.docx(26页珍藏版)》请在冰豆网上搜索。
基于单片机的等精度频率计设计
中文摘要
频率的测量方法有:
直接测量法,间接测量法,例如周期测频法、V-F转换法等。
基于传统测频原理的频率计的测量精度将随被测信号频率的变化而降低针对传统测频原理的频率计的测量精度随被测信号频率的下降而降低,在实用中有较大的局限性,在对等精度测量原理和测量误差进行详尽介绍和分析的基础上,介绍了基于单片机的等精度频率计的系统构成和工作原理,以及系统的硬、软件设计。
本文采用单片机MCS-51作为系统控制单元,辅以适当的软、硬件资源完成以单片机为核心的等精度频率计设计.通过单片机对同步门的控制,使被测信号和标准信号在闸门时间内同步测量,为了提高精度,将传统的测频功能转为测周期,采用多用期同步测量技术,实现了等精度测量.等精度频率测量方法消除了量化误差,可以在整个测试频段内保持高精度不变,其精度不会因被测信号频率的高低而发生变化。
关键词:
周期测频法,单片机控制,软硬件结合。
Abstract
Frequencymeasurementmethod:
directmeasurement,indirectmeasurement,suchascyclefrequencymeasurementmethod,V-Fconversionmethod.Basedonthetraditionalfrequencymeasurementprincipleofthefrequencyofmeasurementaccuracywillbetestedwiththefrequencychangeandreducethetraditionalfrequencymeasurementprincipleofmeasurementaccuracywiththemeasuredsignalfrequencyandreducethedecline,inthemorepracticallimitations,inequalprecisionmeasurementprincipleandmeasurementerrorindetailintroductionandAnalysisonthebasis,introducestheequalprecisionfrequencymeterbasedonmicrocontrollersystemcompositionandworkingprincipleofthesystem,andthehardware,softwaredesign.ThispaperadoptsthesinglechipMCS-51asthesystemcontrolunit,supplementedbyappropriatesoftware,hardwareresourcesinordertocompletesingle-chipmicrocomputerasthecoredesignofequalprecisionfrequencymeter.Bymeansofsinglechipcontrollingthesynchronousgate,sothatthemeasuredsignalandstandardsignalinthegatetimesynchronizationmeasurement,inordertoimprovetheaccuracy,thetraditionalfrequencymeasurementfunctionformeasuringcycle,usingmultipleperiodsynchronizationmeasurementtechnology,realizestheequalprecisionmeasurement.Theequalprecisionfrequencymeasuringthequantizationerrorcanbeeliminated,inthebetabandtomaintainthehighaccuracyconstant,itsprecisionisnotduetothefrequencyofmeasuredsignalandchange.
Keywords:
thecyclefrequencymeasurement,singlechipcontrol,thecombinationofhardwareandsoftware.
一绪论
本文讲述了等精度频率计的工作原理以及其各个组成部分,记述了整个设计过程中对各个部分的设计思路、对各部分电路设计方案的选择、以及对它们的调试、对调试结果的分析,最终得到实验结果。
1.1课题研究的背景
随着微电子技术和计算机技术的迅速发展,特别是单片微机的出现和发展,使传统的电子测量仪器在原理、功能、精度及自动化水平等方面都发生了巨大的变化,形成一种完全突破传统概念的新一代测量仪器。
频率计广泛采用了高速集成电路和大规模集成电路,使仪器在小型化、耗电、可靠性等方面都发生了重大的变化。
传统的频率计测量误差较大,等精度频率计以其测量准确、精度高、方便等优势将得到广泛的应用。
传统的测频方法有直接测频法和测周法[1],在一定的闸门时间内计数,门控信号和被测信号不同步,计数值会产生一个脉冲的误差。
等精度测频法采用门控信号和被测信号同步,消除对被测信号计数产生的一个脉冲的误差。
等精度频率测量方法消除了量化误差,可以在整个测试频段内保持高精度不变,其精度不会因被测信号频率的高低而发生变化。
采用单片机作为控制核心的等精度频率计,可以充分利用单片机软件编程技术实现等精度测频。
通过单片机对同步门的控制,使被测信号和标准信号在闸门时间内同步测量,为了提高精度,将电子计数功能转为测周期,采用多周期同步测量技术,实现等精度测量。
1.2等精度频率计的测量原理
等精度频率计的测量原理如图1-1
图1-1等精度频率计测量原理图
基于传统测频原理的频率计的测量精度将随被测信号频率的变化而变化。
传统的直接测频法其测量精度将随被测信号频率的降低而降低,测周法的测量精度将随被测信号频率的升高而降低,在实用中有较大的局限性,而等精度频率计不但具有较高的测量精度,而且在整个频率区域能保持恒定的测试精度。
等精度频率的测量原理图1-1所示。
频率为fx的被测信号经通道滤波、放大、整形后输入到同步门控制电路和主门1(闸门),晶体振荡器的输出信号作为标准信号(时基信号)输入到主门2。
被测信号在同步控制门的作用下,产生一个与被测信号同步的闸门信号,被测信号与标准信号(时基信号)在同步门控制信号的控制下。
在同步门打开时通过同步门分别输入到事件计数器和时间计数器的信号输入端,计数器开始计数。
同步门关闭时信号不能通过主门,计数器停止计数,单片机发出命令读入计数器的数值,并进行数据处理,将处理后的结果送显示。
等精度频率测量方法是采用多周期同步测量。
如图1的测量原理图所示由单片机发出预置门控信号GATE,GATE的时间宽度对测频精度影响较少,可以在较大的范围内选择,即在高频段时,闸门时间较短;低频时闸门时间较长。
实现了全范围等精度测量,减少了低频测量的误差。
在同步门的控制下,一方面保证了被测信号和时基信号的同步测量;另一方面在同步门打开后计数器并不是马上计数,而是在被测信号的下一个上升沿开始计数,同步门关闭后计数器也不是马上停止计数,而是在被测信号的下一个上升沿停止计数。
即在实际闸门时间计数,从而提高了测量精度。
由于采用D触发器实现的同步门的同步作用,事件计数器所记录的Nx值已不存在误差的影响,但由于时钟信号与闸门的开和关无确定的相位关系,时间计数器所记录的N0的值仍存在±1误差的影响,只是由于时钟频率很高,误差的影响很小。
所以在全频段的测量精度是均衡的,从而实现等精度频率测量。
1.3设计思路及技术指标
一设计方案
以MCS-51型单片机为核心,结合其它的一些芯片一起设计一个等精度频率计。
根据本设计的要求和方案的设想,总结一下本设计要做的具体的工作主要有以下几个方面:
第一,分析与论证本设计所采用的方案,包括主控系统、显示系统等的分析以及这些模块的功能等。
在对设计要求充分分析的基础上,划分功能模块,选择需要的硬件设备。
第二,收集大量等精度频率计方面的资料—包括文字资料和试验数据,总结规律。
可以有两种方法实现。
常用数字频率测量方法有H法,T法和M/T法。
M法是在给定的闸门时间内,测量被测信号的脉冲个数再进行换算得出被测信号的频率,其测量精度取决于闸门时间的准确度和被测信号频率。
当被测信号频率较低时将产生较大误差,除非闸门时间取得很大。
T法是通过测量被测信号的周期,然后换算得出被测信号的频率。
其测量精度取决于被测信号的周期和计时精度,测信号频率较高时,对计时精度的要求就很高。
幼/T法具有以上2种方法的优点,当他通过测量被测信号数个周期的计数次数,然后换算得出被测信号的频率,可兼顾低频与高频信号,提高了测量精度。
但是,M法,T法和M/T法都存在士1计数误差问题。
M法在规定闸门时间内存在士1个被测信号的脉冲计数误差,T法或M/T法也存在士1个字的计时误差。
这个问题成为限制测量精度提高的一个重要原因。
本设计在研究总结上述方法的基础上,得出了一种新的频率测量方法,该方法利用相位全同步方法消除限制测量精度提高的士1个数字误差问题,从而使频率测量的精度和性能大为改善。
然而一种新的方法的实际应用比提出来更难,要考虑各种可能的问题,首先就是由于采用的新的设计方法使得电路的复杂程度成倍增加,因此如果还采用传统数字电路来实现则将使PCB板面积变得异常庞大与复杂。
信号走线长,导致系统误差增大,难以提高系统的工作频率,此外,PCB板的集成度不高还将导致高频信号容易受到外界的干扰,反而可能降低测频精度。
2MCS-51单片机系统结构和原理
2.1MCS-51单片机的简介
本设计中采用了MCS-51单片机作为中心处理系统进行研究。
MCS-51系列单片机是由Intel公司于1980年推出的8位高档单片机系列,是在中低档系列的基础上发展而成的。
它采用HMOS工艺,提高了芯片的集成度,与此前的单片机相比,在性能上得到了很大提高,在结构上扩充了ROM和RAM的容量,增加了如乘、除和减等指令运算,以及串行通信口和中断源,其主要特点如下。
(1)扩大了内部程序存储器(ROM)和内部数据存储器(RAM)的容量。
(2)具有布尔代数运算能力。
(3)具有32个双向可被独立寻址的I/O口。
(4)具有5~6个中断源,可以分为两个中断优先级。
(5)具有丰富的指令系统。
(6)具有全双工传输信号UART的能力。
(7)片内具有时钟振荡电路。
控制器是控制整个单片机系统各种操作的部件,它包括时钟发生器、定时控制逻辑、指令寄存器译码器、程序存储器和数据存储器的地址/数据传送控制等。
从编程的角度看,MCS-51CPU对用户开放的寄存器主要有以下几个:
累加器ACC、寄存器B、程序计数器PC、数据指针DPTR(由DPH和DPL两个8位寄存器组成),程序状态寄存器PSW、堆栈指针SP。
2.2MCS-51单片机的结构
2.2.1MCS-51单片机的结构特点
MCS-51系列单片机为哈佛结构1)内ROM:
4KB
2)内RAM:
128B
3)外ROM:
64KB
4)外RAM:
64KB
5)I/O线:
32根(4埠,每埠8根)
6)定时/计数器:
2个16位可编程定时/计数器
7)串行口:
全双工,2根
8)寄存器区:
工作寄存器区、在内128BRAM中,分4个区,
9)中断源:
5源中断,2级优先
10)堆栈:
最深128B
11)布尔处理机:
位处理机,某位单独处理
2.2.2MCS—51单片机的结构框图
MCS-8051单片机的内部结构如图:
2—1
图2—1画出了8051单片机的内部系统组成的基本框图:
T0
T1
XTAL2
XTAL1
RXD
TXD
P3
P2
P1
P0
INT1
INT0
图2—1MCS—51单片机系统组成基本框图
由图2—1可以看出,MCS—51系列单片机8051是由中央处理器CPU随机存储器RAM、只读存储器ROM、输入/输出(I/O)口电路、定时器/计数器等若干部件组成,再配置一定的外围电路,如时钟电路、复位电路等,即可构成一个基本的微型计算机系统。
2.3MCS—51单片机的外部引脚功能
MCS—51系列单片机的芯片一般都采用40个引脚的双列直插式封装(DIP)方式。
其中有些CHMOS制造工艺的单片机芯片还采用44个引脚的方形封装(LCC或QFP)方式,44个引脚中标识有NC的4个引脚为空引脚。
MCS—51系列单片机的典型芯片8051采用40个引脚的双列直插式封装(DIP)方式,芯片的引脚图如图2-2和图2-3所示:
图2-3图2-3MCS—51系列单片机芯片的引脚图及逻辑图
2.3.1引脚功能描述
一、主电源及地引脚
·VCC(40脚):
电源,正常操作时接+5V电源。
·VSS(20脚):
地线。
二、外接晶振引脚
·XTAL1(19脚):
接外部晶振的一个引脚(内部反相放大器的输入端)。
·XTAL2(18脚):
接外部晶振的一个引脚(内部反相放大器的输出端)。
三、并行输入/输出引脚
·P0.0~P0.7(39~32脚):
8位漏极开路的三态双向输入/输出口。
·P1.0~P1.7(1~8脚):
8位带有内部上拉电阻的准双向输入/输出口。
·P2.0~P2.7(21~28脚):
8位带有内部上拉电阻的准双向输入/输出口。
·P3.0~P3.7(10~17脚):
8位带有内部上拉电阻的准双向输入/输出口。
四、控制类的引脚
·RST/VPD(RESET,9脚):
复位信号输入引脚,高电平有效。
在该引脚上输入持续2个机器周期以上的高电平时,单片机系统复位。
复位是单片机系统的初始化操作,系统复位后会对专用寄存器和单片机的个别引脚信号有影响,复位后对一些专用寄存器的影响情况如下:
表2-1
表2-1复位对寄存器的影响
PC
0000H
TCON
00H
ACC
00H
TL0
00H
PSW
00H
TH0
00H
SP
07H
TL1
00H
DPTR
0000H
TH1
00H
P0~P3
FFH
SCON
00H
IP
××000000B
SBUF
不定
IE
0×000000B
PCON
0×××0000B
TMOD
00H
其中(PC)=0000H,系统复位后,使单片机从0000H单元开始执行程序。
当由于程序运行出错或操作错误使系统处于死循环状态时,可按复位电路以重新启动单片机。
(SP)=07H,单片机自动把堆栈的栈底设置在内部RAM07H单元,从08H单元开始存储数据。
(P0~P3)=0FFH,系统复位后,对P0~P3的内部锁存器置“1”,
其余的专用寄存器在复位后都全部清“0”。
此外,复位操作还对单片机的个别引脚信号有影响,如把ALE和PSEN信号变为无效状态,即ALE=1,PSEN=1。
复位操作对内部RAM不产生影响。
对于使用6MHZ的晶振的单片机,复位信号持续时间应超过4μs才能完成复位操作。
产生复位信号的电路有上电自动复位电路和按键手动复位电路两种方式。
(1)上电自动复位电路
上电自动复位是通过外部复位电路的电容充电来实现的,该电路通过电容充电在RST引脚上加了一个高电平,高电平的持续时间取决于RC电路的参数。
上电自动复位电路如图2—4所示。
(2)按键手动复位电路
按键手动复位是通过按键实现人为的复位操作,按键手动复位电路如图2—5所示:
/VPP(31脚):
访问程序存贮器选择信号输入线。
当
为低电平时,CPU只能访问外部程序存储器。
当
为高电平时,CPU可访问内部程序存储器(当8051单片机的PC值小于等于0FFFH时),也可访问外部程序存储器(当PC值大于0FFFH时)。
(29脚):
外部程序存储器的读选通输出信号,低电平有效。
在读外部程序存储器时CPU会送出有效的低电平信号。
ALE/PROG(30脚):
地址锁存允许信号输出端,高电平有效。
在访问外部存储器时,该信号将P0口送出的低8位地址锁存到外部地址锁存器中。
2.4MCS-51单片机内部存储器
2.4.1内部数据存储器(RAM)
MCS-51单片机芯片共有256个RAM单元,其中后128单元被专用寄存器占用,能作为寄存器供用户使用的只是前128单元,用于存放可读写的数据。
因此通常所说的内部数据存储器就是指前128单元,简称内部RAM。
地址范围为00H~FFH(256B)。
是一个多用多功能数据存储器,有数据存储、通用工作寄存器、堆栈、位地址等空间。
(一)MCS-8051扩展8KB外部RAM的电路
外部RAM与外部I/O口统一编址,即CPU对外部RAM和I/O口不进行区分。
MCS-51单片机的数据存储器(RAM)和程序存储器(ROM)的地址是重叠的,但因为程序存储器使用了控制线PSEN,所以在实际应用中不会发生混乱。
扩展8KB外部数据存储器的电路如图2-7
图2-78051扩展8KB外部RAM的电路
1.6所示。
(二)内部RAM低128单元
8051低128个单元是真正的内部数据RAM区,是一个多功能复用性数据存储器,其按用途可分为三个区域。
如图2-8所示:
图2-88051内部RAM低128单元配置
1、工作寄存器区(00H~1FH)
也称为通用寄存器,该区域共有4组寄存器,每组由8个寄存单元组成,每个单元8位,各组均以R0~R7作寄存器编号,共32个单元,单元的00H~1FH。
在任一时刻,CPU只能使用其中一组通用寄存器,称为当前通用寄存器组,具体可由程序状态寄存器PSW中RS1,RS0位的状态组合来确定。
通用寄存器为CPU提供了就近存取数据的便利,提高了工作速度,也为编程提供了方便。
2、位寻址区(20H~2FH)
内部RAM的20H~2FH,共16个单元,计16×8=128位,位地址为00H~7FH。
位寻址区既可作为一般的RAM区进行字节操作,也可对单元的每一位进行位操作,因此称为位寻址区,是存储空间的一部分。
3、用户RAM区(30H~7FH)
所剩80个单元即为用户RAM区,单元地址为30H~7FH,在一般中把堆栈设置在该区域中。
对内部RAM低128单元的使用作几点说明:
(1)8051的内部RAM00H~7FH单元可采用直接寻址或间接寻址方式实现数据传送。
(2)内部RAM20H~2FH单元的位地址空间可实现位操作。
当前工作寄存器组可通过软件对PSW中的RS1,RS0位的状态设置来选择。
(3)8051的堆栈是自由堆栈,单片机复位后,堆栈底为07H,在程序运行中可任意设置堆栈。
堆栈设置通过对SP的操作实现。
2.4.2内部程序存储器(ROM)
MCS-51内部有4KB/8KB字节的ROM(51系列为4KB,51系列为8KB),用于存放程序、原始数据或表格。
因此称之为程序存储器,简称内部RAM。
地址范围为0000H~FFFFH(64KB)。
大多数51系列单片机内部都配置一定数量的程序存储器ROM,如8051芯片内有4KB掩膜ROM存贮单元,AT89C51芯片内部配置了4KBFlashROM,它们的地址范围均为0000H~0FFFH。
内部程序存储器有一些特殊单元,使用时要注意。
其中一组特殊单元是0000H~0002H。
系统复位后,(PC)=0000H,单片机从0000H单元开始执行程序。
如果不是从0000H开始,就要在这三个单元中存放一条无条件转移指令,以便转去执行指定的应用程序。
另外,在程序存储器中有各个中断源的入口向量地址,分配如下:
0003H~000AH:
外部中断0中断地址区
000BH~0012H:
定时器/计数器0中断地址区
0013H~001AH:
外部中断1中断地址区
001BH~0022H:
定时器/计数器1中断地址区
0023H~002AH:
串行中断地址区
中断地址区首地址为各个中断源的入口向量地址,每个中断地址区有8个地址单元。
在中断地址区中应存放中断服务程序,但8个单元通常难以存下一个完整的中断服务程序,因此往往需要在中断地址区首地址中存放一条无条件转移指令,转去中断服务程序真正的入口地址。
从002BH开始的的单元才是用户可以随意使用的程序存储器。
对程序存储器的操作作以下说明:
(1)程序指令的自主操作。
CPU按照PC指针自动的从程序存储器中取出指令。
(2)用户使用指令对程序存储器中的常数表格进行读操作,可用MOVC指令实现。
2.5单片机输入输出端口
2.5.1并行I/O口
单片机芯片内还有一项重要的资源是并行I/O口,MCS—51共有四个8位的并行I/O口。
分别是:
P0,P1,P2,P3。
所谓口是集数据输入缓冲,数据输出驱动及锁存等多项内容为一体的I/O电路。
P0,P1,P2,P3的内部结构分别由如图2—9(a)、(b)、(c)、(d)所示。
一、P0口
P0口是功能最强的口,可作为一般的I/O口使用,也可作为数据线、地址线使用。
当P0口作为一般的I/O口输出时,由于端口各端线输出电路是漏极开路电路,必须外接上拉电阻才能有高电平输出。
当P0口作为一般的I/O口输入时,必须使电路中的锁存器写入高电平“1”,使场效应管FET截止,以避免锁存器为“0”状态时对引脚输入的干扰,使P0.×状态始终为“0”。
图2—9(a)P0的内部结构
二、P1口
P1口通常作为通用I/O口使用。
作为输出口时,由于电路内部已经带上拉电阻,因此无需外接上拉电阻;作为输入口时,也需先向锁存器写入“1”。
是一个标准的I/O口。
图2—9(b)P1的内部结构
三、P2口
P2口可作为通用I/O口使用,也可作为高位地址线使用的。
图2—9(c)P2的内部结构
四、P3口
P3口可作为通用I/O口使用,也可作为第二功能需要来用的。
P3口引脚的第二功能:
如表2-2
表2-2
口线
第二功能
信号名称
P3.0
RXD
串行数据接收
P3.1
TXD
串行数据发送
P3.2
INT0
外部中断0请求信号输入
P3.3
INT1
外部中断1请求信号输入
P3.4
T0
定时器/计数器0计数输入
P3.5
T1
定时器/计数器1计数输入
P3.6
WR
外部RAM写选通
P3.7
RD
外部RAM读选通
图2—9(d)P3的内部结构
MCS—51系列单片机的并行I/O接口有以下应用特性:
0,P1,P2,P3作为通用双向I/O口使用时,输入操作是读引脚状态;输出操作是对口的锁存器的写入操作,锁存器的状态立即反映到引脚上。
P1,P2,P3口作为输出口时,由于电路内部带上拉电阻,因此无需外接上