基于单片机的等精度数字测频
时间:06-21
来源:互联网
点击:
在电子技术领域内,频率是一个最基本的参数,频率与其它许多电参量的测量方案,都有十分密切的关系。因此,频率的测量就显得更为重要,而且,目前在电子测量中,频率的测量精确度最高。
1. 电子计数测频原理框图
首先,被测信号通过放大整形,形成幅度一致,形状一致是计数脉冲。然后,N将它加到闸门的一个输入端,闸门由门控信号来控制其关闭时间。计得的脉冲送至译码,再送显示器显示出来。而由晶振产生的1MHz的振荡信号经放大整形,形成方波,经多个10分频10s,1s,0.1s,0.01s,1ms,那么有fx=N/T符合测频定义。根据f=N/T。不难看出,采用计数器测频的测量误差,一方面决定于闸门时间T准不准确,即由晶振提供的标准频率的准确度△T/T=-(△fo/fo);另一方面决定于计数器计得的数准不准,即"±1误差",△N/N=±1/N=±(1/○XTfx)。所以,计数器直接测频的误差主要有两项,即±1误差和标准频率误差。测低频时,由于±1误差产生的测频误差大得惊人,所以不宜采用直接测频方法。由于fX较低时,利用计数器直接测频,由±1误差所引起的测频误差将会大到不可允许的程度。所以,为了提高测量低频时的准确度,即减少±1误差的影响,可改成先测周期Tx,然后计算fx=1/Tx。
2. 电子计数器测周期原理
Tx经放大整形控制双稳态触发器形成门控信号,控制闸门的开闭;然后晶搌产生的1MHz的振荡信号,经放大整形形成方波,产生幅度一致,形状一致是计数脉冲。当闸门打开时,对计数脉冲进行计数;闸门关闭时,停止计数。计得的脉冲送译码,送显示。
3. 单片机定时器工作原理
8XX51单片机的定时器T1由TH1,TL1组成,定时器T0由TH0,TL0组成。它们均为八位寄存器,映射在特殊功能寄存器中,占地址8AH、8BH。它们用于存放定时或计数的初始值。此外,内部还有一个八位的方式选择寄存器TMOD和一个八位的控制寄存器TCON,占地址89H和88H,用于选择定时器/计数器的工作方式,如计数还是定时(C/-T),启动的方式(GATE)及发启动控制信号TRx。
定时和计数实质都是对脉冲的计数,只是被计的脉冲的来源不同,定时方式的计数初值和被计脉冲的周期有关,而计数方式的计数初值只和被计脉冲的个数有关(计由高到低的边沿数)。
8031单片机内含有两个16位可编程定时/计数器。均可编程对内部机器周期计数(定时方式),或对外部引脚输入的脉冲进行计数(计数方式)。CPU工作于12MHz主频时,外部最高计数频率500kHz,内部时钟计数频率达1MHz。定时器的基准定时脉冲周期为1μs,当采用测频方式时,T/C0编程为计数方式,对被测信号频率计数,产生欲置的检测时间。由于定时器最长的定时时间为65535s,欲产生更长的检测时间需使用软件计数器,中断多次即可获得所需检测时间。被测频率较低时,则选用测周方式;T/C1编程为定时方式,用来对m个输入脉冲周期所经历的时间计时。
4. 等精度测量原理框图
微处理器的主要优点之一是可以利用微处理器的数据处理能力,减少测量过程中产生的随机误差和系统误差,从而提高测量精度,所以往往把单片机运用在电子测量过程中,来提高测量精度。
实现等精度测量原理,关键是使Nx不产生误差,而No不超过±1误差。利用PC机总线技术,设计了相应的控制门电路,实现对被测频率信号的计数及相应的精确闸门时间,并使闸门的开启与关闭和被测信号的有效跳变同步。
预置门的打开和关闭由被测信号和预置的测量时间控制,计数器Nx在预置门的控制下对被测信号频率计数,控制门根据预置门产生一个与被测信号同步的同步门;计数器No在同步门的控制下对时标计数,得到精确的闸门时间Tg。设时标周期为To,则被测频率Fx=Nx/NoTo。
单片机采用定时ls的测频法先对信号进行预测,软件根据频率高低自动选择检测时间或周期扩展倍数,以保证各档都有较高测量精度。当输入信号频率超过100kHz时,信号经扩展计数器分频后送入8031按测频法测量,频率检测时间设有三档,分别为0.01s、0.1s、1s。在转入周期测量后,信号直接送入单片机,周期扩展倍数有104、103、102、10、1五档。
由于单片机的最高计数频率为500kHz,限制了测频范围,必须对高频进行分频。扩展n分频器后,将会产生分频误差。这个n分频最大将导致(n-1)个待测频率周期的分频误差。该误差量级与"±l"误差相当,甚至更大。为了提高测频分辨率,我们采用了硬件同步分频技术,即在闸门开启的有效上升沿时刻,对74LS591分频器清零。在闸门关闭时刻,将分频状态打入总线缓冲器74LS244,8031通过缓冲器读出其值,从而消除了"分频误差"。
在本系统中,T/C1编程为定时方式时,在12MHz晶振下其最大定时时间只有65.536ms,需采用软件来扩展计数器的容量。即计数器每溢出中断一次,片内RAM的内容加一计数,这样大大扩了单片机的计数范围。但同时也引入了中断响应的时间误差,我们称之为"软件误差"。频率计的核心是时间基准的正确性,因此在中断后重置定时器时间常数时,不能简单地采用重置办法。从单片机的中断响应系统及其响应过程可知:(1)定时器每次溢出中断时,WAIT语句必须执行完才能响应,该条指令的执行时间为2μs,我们取其平均延迟时间为1μs;(2)CPU响应中断到执行中断服务程序首条指令至少需3个完整的机器周期,即延时3μs;(3)中断服务程序中实际的定时时间是在执行完时间常数的装载指令后才开始,两条装载指令占用4μs。根据以上分析。每次中断后,将延迟约8μs后才开始定时。实际获得的定时时间必须考虑到8μs的延迟,该频率计采用软件补偿的处理方法来降低其影响。由于软件修正相当方便在仪器调试中可作进一步的调整,因此基本上可消除软件误差。
频率计根据被测信号频率的大小,软件控制自动切换频率检测时间,或自动转换为周期测量,其软件设计采用模块化结构设计,程序设计与调试都很方便,功能扩充也很灵活。单片机上电复位后,首先执行主程序,完成有关芯片和定时器的初始化,设置数据缓冲区、显示方式、数据计数器初值及频率初测方式等。开中断后,随时检测外部中断和定时器所发出的中断请求信号,一旦有则转入相应的中断服务程序,否则返回显示程序,显示所测的频率值。
5. 结束语
本文通过比较以往电子计数测频原理、电子计数测周期原理的分析,结合单片机定时/计数器的工作原理,给出了等精度测量原理以及软件误差的消除方法。实现起来简单可靠且性能稳定、精度高、性价比低等优点。
1. 电子计数测频原理框图
首先,被测信号通过放大整形,形成幅度一致,形状一致是计数脉冲。然后,N将它加到闸门的一个输入端,闸门由门控信号来控制其关闭时间。计得的脉冲送至译码,再送显示器显示出来。而由晶振产生的1MHz的振荡信号经放大整形,形成方波,经多个10分频10s,1s,0.1s,0.01s,1ms,那么有fx=N/T符合测频定义。根据f=N/T。不难看出,采用计数器测频的测量误差,一方面决定于闸门时间T准不准确,即由晶振提供的标准频率的准确度△T/T=-(△fo/fo);另一方面决定于计数器计得的数准不准,即"±1误差",△N/N=±1/N=±(1/○XTfx)。所以,计数器直接测频的误差主要有两项,即±1误差和标准频率误差。测低频时,由于±1误差产生的测频误差大得惊人,所以不宜采用直接测频方法。由于fX较低时,利用计数器直接测频,由±1误差所引起的测频误差将会大到不可允许的程度。所以,为了提高测量低频时的准确度,即减少±1误差的影响,可改成先测周期Tx,然后计算fx=1/Tx。
2. 电子计数器测周期原理
Tx经放大整形控制双稳态触发器形成门控信号,控制闸门的开闭;然后晶搌产生的1MHz的振荡信号,经放大整形形成方波,产生幅度一致,形状一致是计数脉冲。当闸门打开时,对计数脉冲进行计数;闸门关闭时,停止计数。计得的脉冲送译码,送显示。
3. 单片机定时器工作原理
8XX51单片机的定时器T1由TH1,TL1组成,定时器T0由TH0,TL0组成。它们均为八位寄存器,映射在特殊功能寄存器中,占地址8AH、8BH。它们用于存放定时或计数的初始值。此外,内部还有一个八位的方式选择寄存器TMOD和一个八位的控制寄存器TCON,占地址89H和88H,用于选择定时器/计数器的工作方式,如计数还是定时(C/-T),启动的方式(GATE)及发启动控制信号TRx。
定时和计数实质都是对脉冲的计数,只是被计的脉冲的来源不同,定时方式的计数初值和被计脉冲的周期有关,而计数方式的计数初值只和被计脉冲的个数有关(计由高到低的边沿数)。
8031单片机内含有两个16位可编程定时/计数器。均可编程对内部机器周期计数(定时方式),或对外部引脚输入的脉冲进行计数(计数方式)。CPU工作于12MHz主频时,外部最高计数频率500kHz,内部时钟计数频率达1MHz。定时器的基准定时脉冲周期为1μs,当采用测频方式时,T/C0编程为计数方式,对被测信号频率计数,产生欲置的检测时间。由于定时器最长的定时时间为65535s,欲产生更长的检测时间需使用软件计数器,中断多次即可获得所需检测时间。被测频率较低时,则选用测周方式;T/C1编程为定时方式,用来对m个输入脉冲周期所经历的时间计时。
4. 等精度测量原理框图
微处理器的主要优点之一是可以利用微处理器的数据处理能力,减少测量过程中产生的随机误差和系统误差,从而提高测量精度,所以往往把单片机运用在电子测量过程中,来提高测量精度。
实现等精度测量原理,关键是使Nx不产生误差,而No不超过±1误差。利用PC机总线技术,设计了相应的控制门电路,实现对被测频率信号的计数及相应的精确闸门时间,并使闸门的开启与关闭和被测信号的有效跳变同步。
预置门的打开和关闭由被测信号和预置的测量时间控制,计数器Nx在预置门的控制下对被测信号频率计数,控制门根据预置门产生一个与被测信号同步的同步门;计数器No在同步门的控制下对时标计数,得到精确的闸门时间Tg。设时标周期为To,则被测频率Fx=Nx/NoTo。
单片机采用定时ls的测频法先对信号进行预测,软件根据频率高低自动选择检测时间或周期扩展倍数,以保证各档都有较高测量精度。当输入信号频率超过100kHz时,信号经扩展计数器分频后送入8031按测频法测量,频率检测时间设有三档,分别为0.01s、0.1s、1s。在转入周期测量后,信号直接送入单片机,周期扩展倍数有104、103、102、10、1五档。
由于单片机的最高计数频率为500kHz,限制了测频范围,必须对高频进行分频。扩展n分频器后,将会产生分频误差。这个n分频最大将导致(n-1)个待测频率周期的分频误差。该误差量级与"±l"误差相当,甚至更大。为了提高测频分辨率,我们采用了硬件同步分频技术,即在闸门开启的有效上升沿时刻,对74LS591分频器清零。在闸门关闭时刻,将分频状态打入总线缓冲器74LS244,8031通过缓冲器读出其值,从而消除了"分频误差"。
在本系统中,T/C1编程为定时方式时,在12MHz晶振下其最大定时时间只有65.536ms,需采用软件来扩展计数器的容量。即计数器每溢出中断一次,片内RAM的内容加一计数,这样大大扩了单片机的计数范围。但同时也引入了中断响应的时间误差,我们称之为"软件误差"。频率计的核心是时间基准的正确性,因此在中断后重置定时器时间常数时,不能简单地采用重置办法。从单片机的中断响应系统及其响应过程可知:(1)定时器每次溢出中断时,WAIT语句必须执行完才能响应,该条指令的执行时间为2μs,我们取其平均延迟时间为1μs;(2)CPU响应中断到执行中断服务程序首条指令至少需3个完整的机器周期,即延时3μs;(3)中断服务程序中实际的定时时间是在执行完时间常数的装载指令后才开始,两条装载指令占用4μs。根据以上分析。每次中断后,将延迟约8μs后才开始定时。实际获得的定时时间必须考虑到8μs的延迟,该频率计采用软件补偿的处理方法来降低其影响。由于软件修正相当方便在仪器调试中可作进一步的调整,因此基本上可消除软件误差。
频率计根据被测信号频率的大小,软件控制自动切换频率检测时间,或自动转换为周期测量,其软件设计采用模块化结构设计,程序设计与调试都很方便,功能扩充也很灵活。单片机上电复位后,首先执行主程序,完成有关芯片和定时器的初始化,设置数据缓冲区、显示方式、数据计数器初值及频率初测方式等。开中断后,随时检测外部中断和定时器所发出的中断请求信号,一旦有则转入相应的中断服务程序,否则返回显示程序,显示所测的频率值。
5. 结束语
本文通过比较以往电子计数测频原理、电子计数测周期原理的分析,结合单片机定时/计数器的工作原理,给出了等精度测量原理以及软件误差的消除方法。实现起来简单可靠且性能稳定、精度高、性价比低等优点。
- 利用蓝牙技术和远程信息控制单元实现汽车诊断(11-13)
- 六大特点助CMOS图像传感器席卷医疗电子应用(11-13)
- 汽车网络的分类及发展趋向(11-13)
- 多核嵌入式处理技术推动汽车技术发展(11-18)
- CAN总线的客车轻便换档系统设计与实现(02-13)
- 高性能嵌入式ARM MPU在医疗电子系统中的设计应用(05-12)