嵌入式频率计的设计

发布者:jingyan最新更新时间:2012-06-01 来源: 单片机与嵌入式系统应用 关键字:嵌入式  频率计  周期测量 手机看文章 扫描二维码
随时随地手机看文章

1 引 言
  
  本频率计的设计以 AT89C51单片机为核心,利用他内部的定时/计数器完成待测信号周期/频率的测量。单片机AT89C51内部具有2个16位定时/计数器,定时/计数器的工作可以由编程来实现定时、计数和产生计数溢出时中断要求的功能。在定时器工作方式下,在被测时间间隔内,每来一个机器周期,计数器自动加1(使用 12 MHz时钟时,每1μs加1),这样以机器周期为基准可以用来测量时间间隔。在计数器工作方式下,加至外部引脚的待测信号发生从1到0的跳变时计数器加 1,这样在计数闸门的控制下可以用来测量待测信号的频率。外部输入在每个机器周期被采样一次,这样检测一次从1到0的跳变至少需要2个机器周期(24个振荡周期),所以最大计数速率为时钟频率的1/24(使用12 MHz时钟时,最大计数速率为500 kHz)。定时/计数器的工作由运行控制位TR控制,当TR置1,定时/计数器开始计数;当TR清0,停止计数。
  
  本设计综合考虑了频率测量精度和测量反应时间的要求。例如当要求频率测量结果为3位有效数字,这时如果待测信号的频率为1 Hz,则计数闸门宽度必须大于1 000 s。为了兼顾频率测量精度和测量反应时间的要求,把测量工作分为两种方法:
  
  (1)当待测信号的频率>100 Hz时,定时/计数器构成为计数器,以机器周期为基准,由软件产生计数闸门,计数闸门宽度>1 s时,即可满足频率测量结果为3位有效数字;
  (2)当待测信号的频率<100 Hz时,定时/计数器构成为定时器,由频率计的予处理电路把待测信号变成方波,方波宽度等于待测信号的周期。这时用方波作计数闸门,当待测信号的频率= 100 Hz,使用12 MHz时钟时的最小计数值为10 000,完全满足测量精度的要求。

2 频率计的量程自动切换
  
  使用计数方法实现频率测量时,外部的待测信号为单片机定时/计数器的计数源,利用软件延时程序实现计数闸门。频率计的工作过程为:定时/计数器的计数寄存器清0,运行控制位TR置1,启动定时/计数器工作;运行软件延时程序,同时定时/计数器对外部的待测信号进行计数,延时结束时TR清0,停止计数。从计数寄存器读出测量数据,测量数据在完成数据处理后,由显示电路显示测量结果。
  
  使用定时方法实现频率测量时,外部的待测信号通过频率计的预处理电路变成宽度等于待测信号周期的方波,该方波同样加至定时/计数器的输入脚。工作高电平是否加至定时/计数器的输入脚;当判定高电平加至定时/计数器的输入脚,运行控制位TR置1,启动定时/计数器对单片机的机器周期的计数,同时检测方波高电平是否结束;当判定高电平结束时TR清0,停止计数,然后从计数寄存器读出测量数据。这时读出的数据反映的是待测信号的周期,通过数据处理把周期值变换成频率值,由显示电路显示测量结果。
  
  测量结果的显示格式采用科学计数法,即有效数字乘以10为底的幂。这里设计的频率计用5位数码管显示测量结果:前3位为测量结果的有效数字;第4位为指数的符号;第5位为指数的值。采用这种显示格式既保证了测量结果的显示精度,又保证了测量结果的显示范围(0.100 Hz~9.99 MHz)。
  
  频率计测量量程自动转换的过程由频率计测量量程的高端开始。由于只显示3位有效数字,测量量程的高端计数闸门不需要太宽,例如在进入计数器的信号频率范围在10.0~99.9 kHz,计数闸门宽度为10 ms即可。频率计开始工作时使用计数方法实现频率测量,并使计数闸门宽度为最窄,完成测量后判断测量结果是否具有3位有效数字,如果成立,将结果送去显示,完成测量工作;否则将计数闸门宽度扩大10倍,继续进行测量判断,直到计数闸门宽度达到1 s,这时对应的进入单片机的待测信号频率范围为100~999 Hz。如果测量结果仍不具有3位有效数字,频率计则使用定时方法实现频率测量。
  
  定时方法测量的是待测信号的周期,这种方法只设一种量程,测量结果通过浮点数运算模块将信号周期转换成对应的频率值,再将结果送去显示。无论采用何种方式,只要完成一次测量,频率计自动开始下一个测量循环,因此该频率计具有连续测量的功能,同时实现量程的自动转换。

3 信号预处理电路
  
  信号预处理电路如图1所示,他由4级电路构成。第1级为零偏置放大器,当输入信号为零或者为负电压时,三极管截止,输出高电平;当输入信号为正电压时,三极管导通,输出电压随着输入电压的上升而下降。零偏置放大器可把正负交替波形变换成单向脉冲,这使得频率计既可以测量脉冲信号的频率,也可以测量正弦波信号的频率。放大器的放大能力实现了对小信号的测量,本电路可以测量幅度≥0.5 V的正弦波或脉冲波待测信号。三极管应采用开关三极管以保证放大器具有良好的高频响应。第2级采用带施密特触发器的反相器7414,他用于把放大器生成的单向脉冲变换成与TTL/CMOS电平相兼容的方波。第3级采用十进制同步计数器74160,第2级输出的方波加到74160的CLK,当从74160的 TC输出可实现10分频(多个74160的级连可以进一步扩展测频范围)。第4级同样采用十进制同步计数器74160,第3级输出的方波加到他的CLK,当从他的Q0输出既可实现2分频,且其输出为对称方波,方波宽度等于待测信号的周期,从而为测量信号周期提供基础。

4 系统软件设计
  
  频率计开始工作或者完成一次频率测量,系统软件都进行测量初始化。测量初始化模块设置堆栈指针(SP)、工作寄存器、中断控制和定时/计数器的工作方式。定时/计数器的工作首先被设置为计数器方式,即用来测量信号频率。首先定时/计数器的计数寄存器清0,运行控制位TR置1,启动对待测信号的计数。计数闸门由软件延时程序实现,从计数闸门的最小值(即测量频率的高量程)开始测量,计数闸门结束时TR清0,停止计数。计数寄存器中的数值经过数制转换程序从十六进制数转换为十进制数。判断该数的最高位,若该位不为0,满足测量数据有效位数的要求,测量值和量程信息一起送到显示模块;若该位为0,将计数闸门的宽度扩大 10倍,重新对待测信号的计数,直到满足测量数据有效位数的要求。[page]
  
  当上述测量判断过程直到计数闸门宽度达到1 s(对应的频率测量范围为100~999 Hz)时测量结果仍不具有3位有效数字,频率计则使用定时方法测量待测信号的周期。定时/计数器的工作被设置为定时器方式,定时/计数器的计数寄存器清 0,在判断待测信号的上跳沿到来后,运行控制位TR置为1,以单片机工作周期为单位进行计数,直至信号的下跳沿到来,运行控制位TR清0,停止计数。16 位定时/计数器的最高计数值为65 535,当待测信号的频率较低时,定时/计数器将发生溢出。产生溢出时,程序进入定时器中断服务程序,对溢出次数进行计数。待测信号的周期由3个字节组成:定时/计数器溢出次数、定时/计数器的高8位和低8位。信号的频率f与信号的周期T之间的关系为: f=1/T
  
  完成信号的周期测量后,需要做一次倒数运算才能获得信号的频率。为提高运算精度,采用浮点数算术运算。浮点数由3个字节组成:第1字节最高位为数符,其余7位为阶码;第2字节为尾数的高字节;第3字节为尾数的低字节。待测信号周期的3个字节定点数通过截取高16位、设置数符和计算阶码转换为上述格式的浮点数。然后浮点数算术运算对其进行处理,获得用浮点数格式表达的信号频率值。再通过浮点数到BCD码转换模块把用浮点数格式表达的信号频率值变换成本频率计的显示格式,送到显示模块显示待测信号的频率值。完成显示后,频率计都开始下一次信号的频率测量。系统软件流程图如图2所示。

  系统软件设计采用模块化设计方法。整个系统由初始化模块、显示模块和信号频率频率测量模块等各种功能模块组成。上电后,进入系统初始化模块,系统软件开始运行。在执行过程中,根据运行流程分别调用各个功能模块完成频率测量、量程自动切换、周期测量和测量结果显示。

5 实测结果和误差分析
  
  为了衡量这次设计的频率计的工作情况和测量精度,我们对系统进行了试验。以南京电讯仪器厂制造的E312B型通用计数器为基准,用这次设计的频率计对信号源进行了测量,测量数据如表1所示。
  
  如图1信号预处理电路所示,待测信号在进入单片机之前经过了10×2次分频。频率计以进入单片机时的信号频率=100 Hz为基准(即待测信号频率为2 kHz),大于此频率采用频率测量,小于此频率采用周期测量。由表1频率测量对比表可以看出,频率测量的测量精度大于周期测量的测量精度。


  采用计数法实现频率测量,误差来源主要有计数误差和闸门误差2部分。误差表达式为:


其中:N为计数值,t为闸门时间。

  闸门时间相对误差dt/t主要取决于单片机晶振的频率稳定度,选择合适的石英晶体和振荡电路,误差一般可<10-6。当仅显示3位有效数字时,该项误差可以忽略。对于dN/N部分,无论闸门时间长短,计数法测频总存在1个单位的量化误差。在表1中,待测信号频率>2 kHz时的误差就来源于计数误差。增加显示的有效数字位数可降低该项误差的影响。
  
  当待测信号频率<2 kHz时,直接测量的是信号的周期。周期测量的误差表达式为:

其中:dN/N为量化误差,dτ0/τ0为单片机晶振的频率稳定度。
  
  进行周期测量时进入单片机的信号频率<100 Hz,使用12 MHz时钟时的最小计数值为10 000。当仅显示3位有效数字时,该项误差现在也可以忽略。待测信号的周期测量值通过浮点数运算变换成频率值,这时的误差来源于浮点数运算和数制转换所带来的误差。

6 结 语
  
  介绍了一种基于单片机89C51制作的频率计的设计方法,所制作的频率计需要外围器件较少,适宜用于嵌入式系统。该频率计应用周期测量和相应的数学处理实现低频段的频率测量,因此很容易扩展实现信号的周期测量和占空比测量。该频率计被应用于笔者设计的“高频实验装置”之中,用来对LC振荡器和RC振荡器输出信号的频率稳定度进行测量,取得良好的应用效果。

参考文献


[1] 周航慈.单片机应用程序设计技术[M].北京:北京航空航天大学出版社,1991.
[2] 李华,等.MCS-51系列单片机实用接口技术[M].北京:北京航空航天大学出版社,1993
关键字:嵌入式  频率计  周期测量 引用地址:嵌入式频率计的设计

上一篇:如何在开发嵌入式系统时做出明智的选择
下一篇:嵌入式Web服务器技术及其在电力系统中的应用综述

推荐阅读最新更新时间:2024-03-16 13:00

Arm DesignStart项目再度扩容,加速基于Linux的嵌入式设计
新闻摘要: DesignStart项目进一步扩容,现可快速使用Arm旗下功耗最低、支持Linux的应用处理器Cortex-A5 开发人员可加速展开功能丰富的嵌入式和物联网SoC应用设计,涵盖医疗、智能家居、网关和可穿戴设备等领域 DesignStart项目通过提供价格合理的IP,结合支持Arm的各种中间件和应用程序,为支持Linux的SoC提供成本最低的开发路径 中国上海 – 2018年10月22日 – Arm宣布将其DesignStart项目进一步升级,在Cortex-M0和Cortex-M3的基础上,又将其功耗最低、面积效率最高的应用处理器Cortex-A5纳入该项目,帮助开发人员在高级设计中轻松访问支持Lin
[半导体设计/制造]
ARM嵌入式系统的在系统编程方案设计
应用程序的固化是嵌入式产品开发和生产过程中一个重要环节。基于ARM的嵌入式系统常用的程序固化方法是,用仿真器通过JTAG口将程序烧录到Flash里,在产品的开发阶段,使用仿真器几乎是必然的;然而到了产品的生产阶段,进行应用程序烧录或升级操作的往往是生产线上的工人,他们不易掌握仿真器的使用方法,而且在生产阶段也需要把JTAG调试口封住以防软件被窥视。笔者在使用意法半导体的STR730开发产品的过程中,设计了一种通过串口进行ISP(In System Programming,在系统编程)的方案。该方案成本低,生产线使用起来也很方便,而且即使升级过程中发生掉电之类的意外也不会影响下一次升级,安全而可靠。 1 硬件连接 ISP方案的硬件
[单片机]
ARM<font color='red'>嵌入式</font>系统的在系统编程方案设计
基于DSP的Bluetooth嵌入式系统应用
蓝牙(Bluetooth)协议标准是由蓝牙特别兴趣小组(Bluetooth SIG)发布的,1999年发布了Bluetooth 1.0版, 2001年2月发布了Bluetooth1.1版。目前SIG成员已经发展到3000家左右。蓝牙协议规定的无线通信标准,基于免申请的2.4GHz的 ISM频段,采用GFSK跳频技术和时分双工(TDD)技术,通信距离为10米左右,Blue tooth 1.0版标准规定的数据传输速率为 1Mbps。主要适用于各种短距离的无线设备互连应用场合。可以提供点到点或点到多点的无线连接。 1 基于电缆替代的蓝牙协议简析 1.1 蓝牙协议体系 蓝牙协议规范所措述的协议栈模式如图1所示。
[嵌入式]
基于DSP的Bluetooth<font color='red'>嵌入式</font>系统应用
ARM为核心的嵌入式语音识别电路模块设计
  服务机器人以服务为目的,因此人们需要一种更方便、更自然、更加人性化的方式与机器人交互,而不再满足于复杂的键盘和按钮操作。基于听觉的人机交互是该领域的一个重要发展方向。目前主流的语音识别技术是基于统计模式。然而,由于统计模型训练算法复杂,运算量大,一般由工控机、PC机或笔记本来完成,这无疑限制了它的运用。嵌入式语音交互已成为目前研究的热门课题。 嵌入式语音识别系统和PC机的语音识别系统相比,虽然其运算速度和内存容量有一定限制,但它具有体积小、功耗低、可靠性高、投入小、安装灵活等优点,特别适用于智能家居、机器人及消费电子等领域。   模块的核心处理单元选用ST公司的基于 ARM  Cortex-M3内核的32位处理器 STM32F
[电源管理]
ARM为核心的<font color='red'>嵌入式</font>语音识别电路模块设计
基于ARM高速闪存MCU应对广泛嵌入式需求
  由于采用了ARM7TDMI-S内核,LPC2000系列MCU工作频率达60MHz,与其他8-bit产品相比具有更强的功能延展性。同时它借助片上存储器加 模块实现了“零等待访问”高速闪存功能,提高了指令执行的效率。   此外,LPC2000的外设接口非常丰富,包括UART、SPI、I2C、CAN、ADC、 PWM、RTC等。LPC2000系列MCU应用领域非常广泛,从网络通信、 马达控制,到汽车和消费电子都适合于涉足。   嵌入式系统是面向用户、面向产品、面向应用的,它是将先进计算机技术、半导体技术和电子技术以及各行业的具体应用相结合的产物,因此它是一个高度密集、不断创新的知识集成系统。作为嵌入式系统,它必须能够根据应用的需
[应用]
基于ARM嵌入式技术的GIS煤矿安全实时监测系统
1.前 言 由于煤矿生产所具有的特殊作业环境,致使生产过程中潜伏着比一般行业更大的危险性和不安全因素。随着煤炭开采量的不断增加,安全问题变得日益严峻,时常有各种特大事故见诸于媒体。这一切都警示了煤矿安全生产的严峻形势和提高煤矿安全生产的必要性和紧迫性。在计算机、互联网和通信技术高速发展的同时,应用以GIS为核心的监控系统已成为煤矿安全实时监测的一种重要手段。GIS煤矿安全实时监测系统可以将 传感器 测得的瓦斯浓度、风量、设备状态等多种数据自动地在电子地图中显示出来,结合井下人员定位系统还可以将井下作业人员的位置等也显示在电子地图上。系统数据传输以局域网、互联网等计算机网络为载体。在计算机技术、移动通信技术迅速发展的今天,把
[单片机]
基于ARM<font color='red'>嵌入式</font>技术的GIS煤矿安全实时监测系统
双内核嵌入式处理器BCM1250及其应用
摘要:介绍了基于MIPS指令集的嵌入式处理器BCM1250的双向核、大容量片内缓存、多类型通信接口等主要特性,并对其应用方案、启动过程、操作系统选择等进行了探讨。 关键词:MIPS 嵌入式RTOS SMP 1983年,斯坦福大学的John L.Hennessy成功完成了第一个采用RISC理念瓣MIPS(Microprocessor without Interlocked Pipeline Stages)微处理器。次年,他在硅谷创立了MIPS公司。该公司本身不生产微处理器,只设计高性能工业级的32位和64位CPU的体系结构,并且向其他半导体公司提供使用其内核(IP)的授权,用于生产基于MIPS而又各具特色的微处理器。目前已经有5
[嵌入式]
基于CAN 总线嵌入式驱动编程
   1 引言       早期应用于八位单片机软件设计的嵌入式系统主要为前后台系统(或超循环系统),程序大约在几千行以内,由两部分组成,即其应用程序是一个无限的循环,循环中调用函数完成相应的操作,属于后台行为;其中断服务程序处理异步事件,属于前台行为.随着嵌入式系统功能越来越庞杂,如友好的人机界面、网络化、远程监控等.各种任务的优先级不同,传统的设计方法无法完成,程序长达数万行,程序员必须同繁琐的底层硬件打交道,这样效率低下.现代电子技术的发展为嵌入式微处理器提供了更多的外设,通用的如串口、并口、以太网口、现场总线、USB口等.基于免费自由软件Linux发展而来的嵌入式系统uclinux,是一种免费的嵌入式操作系统.uclinu
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved