登录
|
注册会员
开启辅助访问
设为首页
收藏本站
扫一扫关注官方微信
论坛
BBS
M币充值
M currency prepaid phone
M币获取
附件中心
搜索
search
全新论坛MCU智学网上线,欢迎访问新论坛!稀缺资源、技术干货、参考设计、原厂资料尽在MCU智学网
MCU资讯论坛
»
论坛
›
单片机电路论坛
›
模电数电论坛
›
嵌入式频率计的设计
更新自动建库工具PCB Footprint Expert 2023.13 Pro / Library Expert 破解版
嵌入式频率计的设计
[复制链接]
1449
0
ad***
管理员
发表于 2012-9-4 18:18:56
|
查看全部
|
阅读模式
本文包含原理图、PCB、源代码、封装库、中英文PDF等资源
您需要
登录
才可以下载或查看,没有帐号?
注册会员
x
1 引 言
本频率计的设计以AT89
C51
单片机
为核心,利用他内部的定时/计数器完成待测信号周期/频率的测量。单片机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倍,重新对待测信号的计数,直到满足测量数据有效位数的要求。
当上述测量判断过程直到计数闸门宽度达到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振荡器输出信号的频率稳定度进行测量,取得良好的应用效果。
参考文献 相关的 型号 PDF资料供应
UN4128
厂家:0批号:00+封装:0 供应
计数器
相关帖子
CD4518 CD4520引脚图-中文资料
CD4553中文资料
cd40192中文资料
74ls90引脚图及功能
74ls192/74ls193中文资料介绍
CD4020 CD4040 CD4060中文资料
CD4510中文资料
数字电位器X9511
本人开发的计数器计时器恳请各位指正 接收开关信号电压信号浪涌(雷击)信号
工业用流水线计(定)时器、计数器、转速表、报警器开发定制说明
举报
回复
返回列表
*
滑块验证:
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册会员
本版积分规则
发表回复
回帖后跳转到最后一页
回复
转播
评分
分享
打开支付宝扫一扫,最高立得1212元红包
搜索
本版
帖子
用户
热搜:
传感器
51串口程序
电子管放大器
夾式電表
夾式電流
Mentor论坛
打印机
版块推荐
百宝箱
My 布拉格
无边框Z9
Z9Max
Z9mini
nubia动态
问题 & 建议
资源分享
爱拍
同城会
牛仔生活
查看论坛所有版块>>
每日签到
论坛任务
摄影技巧
跳蚤市场
互助问答
论坛导读
申请内测
红包中心
每日摇一摇
活动中心
网站地图
官方旗舰店
图文热点
低成本、高性能、带EEPROM了解一下
无锡矽杰微电子的XCE855E 是一颗带 EEPROM 的 8 位单片机,专为多 IO 产品的应用而设
工控仪表/水电气表LCD驱动/抗干扰液晶段码
产品品牌:永嘉微电/VINKA 产品型号:VK2C21A 封装形式:SOP28 概述 VK2C21是一
为什么电动车会着火?原因是什么?电动车充
其实电动车起火的新闻我们也不是第一次看到了,让很多人对电动车的安全性产生质疑,但
性价比超高的国产单片机了解一下
hello大家好,我是无锡矽杰微电子的马甲小号 今天给大家介绍一颗单片机,我们的
上手简单,开发资料齐全的触摸单片机了解一
hello,各位工程师大大们新年快乐 我是无锡矽杰微电子的马甲号。 我司新推出了
更多
精华推荐
低成本、高性能、带EEPROM了解一下
工控仪表/水电气表LCD驱动/抗干扰液晶段码
软件模拟2812通信协议导致的种种问题,你遇
适用于电子鞭炮、电子蜡烛灯等方案的单片机
为什么电动车会着火?原因是什么?电动车充
性价比超高的国产单片机了解一下
国产单片机推荐I 低功耗、强驱动、极具性价
上手简单,开发资料齐全的触摸单片机了解一
更多
社区学堂
低成本、高性能、带EEPROM了解一下
工控仪表/水电气表LCD驱动/抗干扰液晶
低成本、高性能、带EEPROM了解一下
无锡矽杰微电子的XCE855E 是一颗带 EEPROM 的 8 位单片机,专为多 IO 产品的应用而设
工控仪表/水电气表LCD驱动/抗干扰液晶段码
产品品牌:永嘉微电/VINKA 产品型号:VK2C21A 封装形式:SOP28 概述 VK2C21是一
为什么电动车会着火?原因是什么?电动车充
其实电动车起火的新闻我们也不是第一次看到了,让很多人对电动车的安全性产生质疑,但
更多
客服中心
QQ:187196467
服务时间:周一至周日 8:30-20:30
在线客服
客服微博
产品咨询
售后中心
关注我们
关于我们
关于我们
友情链接
联系我们
帮助中心
网友中心
购买须知
支付方式
服务支持
资源下载
售后服务
定制流程
关注我们
官方微博
官方空间
官方微信
QQ:187196467
周一到周日 8:30-22:00 (全年无休)
7 x 24小时在线客服
手机版
Powered by
MCUZX!
X3.4 © 2008-2015
MCU资讯论坛
版权所有
京ICP备18035221号-2
客服QQ: 187196467
技术支持:
MCU资讯论坛
|
网站地图
快速回复
返回顶部
返回列表