介绍应用SPCE061A单片机实现高精度、等精度测频的原理及方法。利用16位定时/计数器TCA、TCB在同步门内分别对频标fS、被测频率fX计数,实现了等精度测频,由于选择TCA时钟源A的最高频率作为频标,显著提高了测频精度。应用时基信号发生器的4Hz信号中断源设置了预置门,应用选频逻辑TMB1中断源实现了显示器的定时刷新。该测频系统具有测频精度高、测频范围可扩展等优点。
1 引言
凌阳16位单片机SPCE061A以其显著的特点:高速数据运算能力,强大的中断处理能力,多种省电模式,功能完善的内部配置,方便的在线实时调试能力,被广泛应用于电子仪器仪表、工业控制、通信、信号处理等领域。本文介绍应用SPCE061A单片机强大的时钟系统、时基系统、定时/计数器功能、中断系统,实现等精度、高精度测频的原理及方法。
2 测频原理及精度分析
2.1 等精度测频原理
测频原理图如图1所示,由同步门信号产生电路D触发器及SPCE061A单片机中16位可预置
图1 等精度测频原理图
定时/计数器TCA、TCB,系统时钟电路,时基信号发生器,中断系统等组成。定时计数器TCA的时钟源由时钟源A和时钟源B进行与 *** 作形成,时钟源A的可选输入为:fOSC/2、fOSC/256、32768Hz、8192Hz、4096Hz、1、0、EXT1。时钟源B的可选输入为:2048Hz、1024Hz、256Hz、TMB1、4Hz、2Hz、1、EXT2。TCB的时钟源仅为时钟源A(它与TCA的时钟源A的输入完全相同),TCA、TCB按照可重预置加法计数器方式工作。
原理电路中,uQ为同步门(信号),uD为预置门(信号)。定时/计数器TCA用于对频标fS计数,为了提高测频精度,fS选为最高频率:fS=fOSC/2=49.152/2=24.576MHz。TCA设置为时钟源A选择fS=fOSC/2,时钟源B选择外部时钟EXT2,由时钟源B输出的同步门信号控制时钟源A送出fS。定时/计数器TCB的时钟源A设置为选择外部时钟源EXT1,用于对同步门内的fX计数。时基信号发生器的4Hz时基信号用于设置预置门时间,当它产生4次中断时预置1s时间到,选频信号TMB1的64Hz时基信号,用作显示器刷新中断源,刷新间隔为15.6ms。
测频开始时,先使D触发器清零,uQ=0,TCA、TCB预置初值0x0000,然后使IOB12=1,预置门信号到来,uD=1。在其后第1个fX脉冲上升沿FD置1,uQ=1,同步门信号到来,定时/计数器TCA开始对频标fS计数,TCB开始对被测频率fX计数。同时使4Hz时基信号开始工作,当它提出4次定时中断时,预置1s时间到,使IOB12=0,关闭预置门。在其后第1个fX脉冲上升沿FD置0,关闭同步门,TCA、TCB同时停止计数。如图2所示。若TCA、TCB在同步门内的计数值分别为NS、NX,则被测频率fX为
2.2 测频精度分析
在本测频方案中,由于被测频率fX与同步门信号uQ完全同步,因此TCA对fX的计数没有量化误差(±1误差),而fS与同步门信号uQ没有同步关系,故TCB对fS的计数有量化误差存在,其相对量化误差为
其中T1、T2分别为预置门时间、同步门时间,TS为频标信号周期。由(3)式知,在频标fS、预置门时间T1给定后,|δ1m|为一常数,而与被测频率fX无任何关系。因此,在同一预置门内实现了等精度测频。本方案的测频误差主要由两项构成:TCA对fS计数的相对量化误差δ1,由(3)式知,当T1=1s时,因TS=4.069×10-8μs,故|δ1m|=4.069×10-8;另一项测频误差δ2由频标信号的准确度引起,它与石英晶体的频率稳定度有关,通常|δ2|可以小于10-11,因此,总测频误差|δ|≤|δ1m|+|δ2|≈4.069×10-8。
3 软件流程
3.1 主程序流程
主程序主要完成预置门时间的选择及测频系统各部件的初始化设置。主程序流程如图3所示,通过IOA口扫描键盘,以确定欲设置的预置门时间。对各部件初始化设置如下:D触发器FD的初始化;使IOB11端输出负脉冲,Q端置0;定时/计数器TCA、TCB的初始化;通过编程定时器控制字,使TCA的时钟源A选择频标信号fS=fOSC/2=24.576MHz,时钟源B选择外部时钟EXT2。TCB的时钟源A选择外部时钟EXT1,TCA、TCB的预置值均为0x0000。由于本测频系统最大预置门时间为10s,在10s内,TCA对频标信号的计数值为NS=10s×fS=24.576×107,而TCA的最大计数值为216=65536,因此,需要一软件计数器STA,又因10s内TCA的溢出次数为24.576×107/216=3750,因此只需要一个存贮单元的软件计数器。类似TCB在10S内对被测频率fX的计数也需要一个存贮单元软件计数器STB。置STA(0x0010)、STB(0x0011)的初值为0x0000。与时基计数器有关的初始化:本测频方案使用4Hz时基信号中断源实现预置门时间的设置。4Hz时基信号开始工作时需要时基计数器清零,同时,计录4Hz时基信号的中断次数需要一个存贮单元的软件计数器ST4,当预置门时间为1s时,ST4(0x0012)的初值为0x0004。
图3 主程序流程图
3.2 4Hz时基信号中断服务功能
测频系统中,对预置门时间的控制及测频结果的计算都在4Hz时基信号中断服务中完成。进入中断服务时,将4Hz软件计数器ST4减1,若减1后ST4为0,说明定时1s到,关闭预置门,uD=0,然后等待同步门uQ关闭,在同步门关闭后(uQ=0),读取TCA、TCB的计数值NA1、NB1,NA1与软件计数器STA计数值NA2组成了在同步门期间对fS的总计数值NS。类似,TCB的计数值NB1与软件计数值STB的计数值NB2组成了在同步门期间对fX的总计数值NX。然后计算对fX的测量结果,fX=NXfS/NS,并转换为ANSCII码后存入显示缓冲区(0x0020-0x0028)。在中断返回前,需要打开预置门,置4Hz软件计数器ST4初值为0x0004,置时基计数器初值为零。
上述讨论测频系统的原理时,假设预置门时间为1s,若预置门时间取最大值10s,则相应的4Hz软件计数器ST4的初值为0x0028,测频精度为│δ│≤4.069×10-9。本方案的直接测频最大值为fX=24.576MHz,若给输入端增加分频器(分频系数N=40),则可测量的最大频率为1000MHz。本方案的显著特点是测频精度高,当预置门时间为1s、10s时,测频误差分别小于4.069×10-8,4.069×10-9,且在同一预置门时间内对不同频率实现了等精度测量。
本文作者创新点:通过4Hz时基信号中断源与D触发器的配合产生了同步门信号,通过同步门信号对定时/计数器TCA、TCB的控制,实现了对被测频率fx的等精度测量,通过选择TCA时钟源A的最高频率作为频标,显著提高了测频精度。应用选频逻辑TMB1中断源实现了显示器的定时刷新,设计的测频系统具有测频精度高、测频范围可扩展等优点。
参 考 文 献
[1] 罗亚非.凌阳16位单片机应用基础[M].北京:航空航天大学出版社,2005:1-45
[2] 李殊骁等.基于可编程逻辑器件的等精度频率计[J].微计算机信息,2005.7:113-114
[3] 卢胜利.智能仪器设计与实现[M].重庆:重庆大学出版社,2003:112-167
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)