拓冰建站拓冰建站
首页 / 资讯中心 / 正文

从频率计数器拆解数字电路时序:时基、闸门与计数链路设计

1970年代两个二十岁出头的年轻人在自家车库里捣腾出一台用来测量FM无线电频率的电子设备其中一个人负责让电路稳定工作另一个人则把它成功卖了出去。这两个人就是沃兹尼亚克和乔布斯。那台设备正是当时最让人上头的电子测量工具——频率计数器。虽然现在大家聊起乔布斯早年项目时总爱提Apple I但在我看来那台纯硬件、无单片机的频率计数器才是理解数字电路时序和测量系统设计的绝佳教材。本文会从电路原理的角度把它彻底拆开讲清楚时基、闸门、计数和显示是怎么配合的也会穿插一些我在实际搭建和调试这类电路时踩过的坑。1. 老式频率计数器到底在测什么为什么当时那么值钱1.1 它解决的现实问题在示波器还不像今天这么普及的年代想测一个振荡电路到底工作在多少MHz最直接的办法不是看波形而是用频率计数器去数脉冲。它做的事情本质上和数停车场里进出车辆一样给定一个固定时间窗口比如1秒数一数在这个窗口内信号跳变了几次算出来就是频率。当时的无线电爱好者、业余电台玩家和电子维修师傅都需要一台能快速读出频率的设备。收音机里的本振频率、调频电台发射频率、晶振的实际振荡频率都能靠它来验证。沃兹尼亚克和乔布斯把做出来的设备拿去卖钱看中的正是这个刚需市场。1.2 “测频率”本质上是和时间赛跑这里有个容易被新手忽略的点频率不是直接测出来的物理量它是“脉冲个数除以时间”的结果。换句话说频率测量本质上是一个时间测量问题。举个例子如果一个方波的周期是1微秒那它每秒重复1000000次频率就是1MHz。我们只要保证“时间窗口”足够准确然后数清窗口内有多少个脉冲就能还原出信号频率。这个思路放在今天依然成立只不过现代仪器把“时间窗口”做得更精细用高精度恒温晶振甚至铷原子钟来当时间基准。理解这件事是看懂后面所有电路逻辑的前提。2. 三大核心模块如何协作时基、闸门与计数的时序关系2.1 一句话原理f N / T频率计数器最简单的模型可以写成f N / T其中T是闸门时间N是在闸门时间内数到的脉冲数。如果闸门时间设为1秒N是1250000那频率就是1.25MHz。如果闸门时间设为0.1秒想还原真实频率就得把N乘以10。老式计数器面板上通常有“Gate Time”选择开关1s、0.1s、10s等实际上就是在切换时基分频链的分频系数。分频系数改变了测量分辨率也随之改变。闸门时间越长数到的脉冲越多测量精度就越高因为最后一位的“±1计数误差”占比变小了。2.2 闸门信号不能随便给这里藏着第一个“极其巧妙”很多人第一次自己搭频率计数器都会犯一个毛病直接用分频器产生的1秒信号去控制计数器的使能端Enable让计数器在1秒内数脉冲。理论上没毛病实际不行。问题出在闸门信号和被测信号的边沿关系上。如果闸门打开的时刻刚好落在被测脉冲的中间计数器会从半个脉冲开始数闸门关闭时如果又落在脉冲中间那一段半截脉冲要么被计数要么被丢弃结果就会在N和N±1之间跳。这个现象叫±1计数误差它无法靠延长闸门时间消除只能减小。真正的解决方法是用同步门控电路让闸门边沿和被测脉冲边沿对齐。具体做法通常是用D触发器先把闸门信号同步到被测脉冲的上升沿上再用同步后的信号去控制计数器的使能端。这样一来闸门打开和关闭的时刻都正好是被测脉冲的边沿N永远是一个整数读数稳定。这个电路在热词里对应的就是“分立latch和and构成的时钟门控电路”。用两个D触发器和几个与门就能把异步的闸门信号变成同步的边沿对齐信号实现干净利落的门控。当年没有CPLD也没有单片机全靠这几颗芯片就把时序问题解决得明明白白我每次看到这类设计都忍不住想夸一句“漂亮”。2.3 三个动作的正确顺序锁存、清零、再计数除了门控边沿频率计数器的大循环时序也很有讲究。一个完整的测量周期分为三个动作计数闸门关闭停止计数。把当前计数值锁存到显示寄存器里让数码管保持稳定显示。将计数器清零准备下一个闸门周期的计数。这个顺序绝对不能反。如果先清零再锁存那锁存进去的全是清零后的0如果边清零边计数新周期的脉冲会把刚清零的数据刷新掉显示就花了。我在调试时专门画过一张时序表来核对各信号之间的关系动作发生时序原因计数闸门关闭被测脉冲沿对齐后保证N为完整脉冲数锁存信号有效闸门关闭后保存本次计数值计数器清零锁存完成之后避免用清零状态去锁存计数闸门重新打开清零之后开始下一轮测量顺序理顺了显示才能做到“每次刷新一格稳定不闪”。3. 前端输入电路处理信号不干净后面全白搭3.1 为什么必须做波形整形频率计数器内部用的是TTL或CMOS逻辑芯片它们只能识别高电平和低电平而且要求边沿足够陡峭。可是被测信号千奇百怪有正弦波、有三角波、有带直流偏置的方波还有噪声很大的传感器信号。直接把这种不规整信号怼到计数器引脚上计数结果会乱到没法看。所以前端第一级要做波形整形。最常见的是施密特触发器像74HC14这种芯片六个反相器都是施密特结构输入端有滞回特性。正弦波送进去出来就是边沿很陡的标准方波。滞回特性带来的另一个好处是抗干扰。信号在阈值附近反复抖动时施密特触发器不会跟着来回翻转只有超过上限阈值或低于下限阈值才改变输出状态。这个和按键防抖电路是同一个思想只不过一个用在慢速机械信号上一个用在高速电子信号上。3.2 输入保护高频测量中的第一教训我早期做测量设备的时候输入端直接接电路结果有一次不小心把十几伏的直流电压灌进了计数芯片LOW端芯片当场冒烟。从那以后我就老老实实加保护电路。标准做法是输入端串联一个几百欧到1kΩ的电阻限流上下拉两个二极管钳位把输入电压限制在VCC和GND之间如果预算允许再并一个TVS管吸收静电放电。这套保护电路的效果是正常信号不受影响异常高压和静电会被钳位吸收芯片不会被打坏。如果你做的是工业场景的测量前端保护电路不是可选件是必须件。3.3 高低频复用前端一台仪器怎么覆盖几十倍频程普通TTL/CMOS逻辑门直接计数上限通常在几十MHz左右。原因是芯片本身的翻转速度有限输入电平判别也需要时间。老式频率计想要测到100MHz以上前端就得加前置分频器先把高频信号除以8、除以10、除以100再送进主计数器。常见的做法是用74HC390双十进制计数器级联或者用专用射频分频器。分频后频率变低了主计数器精度不变但实际读数要乘以分频系数所以面板上通常会有对应的量程指示灯提醒你“当前读数需要×10”还是“×100”。在信号路径里还要注意阻抗匹配。低频测量用1MΩ高阻输入高频测量用50Ω终端匹配否则反射会严重影响计数稳定性。这也是很多自制频率计测高频时“读数飘得厉害”的常见原因——不是芯片不行是前端阻抗没选对。4. 计数与显示链路把频率“钉”在数码管上4.1 十进制计数器级联个、十、百、千位怎么进位核心计数器通常用十进制计数器芯片来实现。经典选择是74HC190可预置十进制加减计数器或老式的74LS90二-五-十进制计数器。我更喜欢74HC190因为它自带级联输出多片拼在一起很方便。级联方式很直接最低位的时钟输入端接整形后的被测脉冲最高位以外的芯片用前一级的进位输出RCO作为下一级的时钟。每来10个脉冲低位芯片输出一个进位脉冲驱动高位芯片加1。这就是十进制计数器链的基本工作方式。比如4片74HC190级联就能组成0000到9999的计数范围。如果闸门时间1秒最大能测到9999Hz想测更高频率要么把闸门时间缩短到0.1秒再换算要么多用几片计数器扩大位宽要么加前置分频器。4.2 锁存器的存在感特别容易被忽略看到计数器链在高速翻转数码管就会像停车场的计数显示器一样疯狂跳变。如果直接把计数值送进译码器驱动数码管眼睛根本来不及看清读数而且由于各位计数器的进位延迟不一样显示过程中还会出现“滚动的乱码”现象。解决办法是加一级锁存器。在闸门关闭、计数停止后用锁存信号把当时的BCD码“冻结”到寄存器里译码器和数码管只读取寄存器中的数据。这样在整个显示周期内灯光不会变化直到下一轮锁存信号到来才整体更新一次。常用的锁存芯片是74HC573或74HC3738位D型锁存器一片可以锁存两位BCD码。锁存控制引脚LE接一个脉冲低电平期间数据直通高电平期间数据锁住。时序上要保证锁存发生在计数停止之后、清零之前。4.3 七段译码驱动不是所有芯片都能随便换着用BCD码要变成人能看懂的十进制数字还需要七段译码驱动芯片。这里有一个非常经典的坑有的译码芯片驱动共阴数码管有的驱动共阳数码管不能混用。CD4511BCD转七段驱动共阴数码管内部有锁存功能CMOS工艺工作电压宽适合电池供电的仪器。74LS47BCD转七段驱动共阳数码管TTL工艺输出低电平有效。74HC4511CD4511的HC兼容版本速度更快静态电流更小。选错极性数码管要么全灭要么全亮就是不显示数字。译码输出到数码管之间还要串限流电阻经验值在330Ω到470Ω之间具体看工作电压和数码管亮度需求。电压越高限流电阻可以适当加大避免数码管过流烧坏。5. 时基精度决定整机精度低成本时间基准的三种取舍5.1 555振荡器、市电工频、石英晶振怎么选时基是频率计的心脏。如果时间窗口本身不准数出来的N再准确也没用。先看555振荡器。用NE555搭一个自激多谐振荡器加上电阻电容就能输出方波但RC振荡器的频率随温度和电源电压漂移比较明显误差轻松到百分之几以上。拿来测个大概可以想测准不行。再看市电工频。很多老式电子钟直接用50Hz交流电作为时基50Hz经过分频可以得到1秒。便宜倒是便宜但电网频率并不是严格稳定在50Hz发电侧会根据用电负荷做小幅调整累计多了还会校正。对一般时钟没问题对测量仪器来说误差还是偏大。最后是石英晶振。几十年前石英晶振还比较贵现在几块钱就能买到一颗普通的32.768kHz晶振或10MHz有源晶振。晶振的优点是频率稳定性好、温漂小配合适当的分频链完全能满足一般频率计数器需求。时基方案典型精度优点缺点555 RC振荡器1%~5%电路简单温漂大、频率不稳定市电工频约0.1%~0.5%几乎不花成本受电网负荷影响晶振分频链几十ppm到几ppm稳定、体积小需要分频电路5.2 从32.768kHz晶振折腾出稳定的1Hz闸门32.768kHz是电子表常用的晶振频率等于2的15次方特别适合用二进制计数器分频得到1Hz。CD4060是一颗14级二进制分频芯片内部还带振荡器电路外接晶振和两个小电容就能起振。想要从14位分频输出拿到1Hz还差一级÷2。方法很简单把CD4060的某个输出信号再接一个D触发器做二分频例如Q13是4Hz经过D触发器除以2就是2Hz再经过一级除2得到1Hz。这个方案的好处是芯片少、功耗低、电路成熟。要注意晶振两端的负载电容不能乱取值一般20pF到33pF之间具体要看晶振规格书。电容取太大或太小晶振可能停振或者频率偏出几十ppm。5.3 校准没有频谱仪也能调准时间基准时基电路做好之后怎么确认它准不准没有昂贵仪器的条件下有个土办法用另一个已知频率的稳定信号源来反向验证。比如拿一颗标称10MHz的晶振做信号源或者用GPS模块输出的1PPS秒脉冲接到频率计的输入端再把频率计读数跟标称值对比。如果读数稳定在9.999xxxMHz说明时基有点偏微调时基部分的微调电容让读数逼近10.000000MHz就行。实际上一些高级一点的频率计还有“自检”功能内部把高稳定晶振信号直接切换到输入端用本机时基测量本机晶振。读数如果和标称值一致说明整条测量链路是通的。这个思路值得自己做仪器时参考调完一个模块立刻验证不要等全部焊完再找问题。6. 从零搭一台能用的频率计数器选型、调试与避坑6.1 一个参考电路组合如果你想照着这个思路自己焊一台我推荐一套经过验证的芯片组合输入整形74HC14施密特反相器输入保护串1kΩ电阻 两个1N4148钳位二极管前置分频可选74HC390测高频时接入时基振荡32.768kHz晶振 CD4060分频闸门控制74HC74双D触发器 74HC08与门计数链4片74HC190级联锁存2片74HC573译码驱动CD4511 共阴数码管供电7805三端稳压器输入9V直流这个组合的功耗很低用9V层叠电池都能临时撑一会儿。优点是每一块都是经典电路网上资料多出问题了容易查。6.2 调试顺序先时基、再整形、最后整机联调很多朋友拿到一套电路喜欢把所有芯片全插上再通电结果一上电数码管乱跳根本不知道从哪里查起。正确的做法是分模块调试。第一步先单独调时基部分。用示波器看CD4060输出端的波形确认分频后的信号周期是不是准确的1秒或者0.1秒、10秒。没有示波器可以用万用表频率档看或者接个LED看闪烁频率大概对不对。第二步调输入整形部分。从信号发生器灌一个已知频率的正弦波用示波器看74HC14输出端是不是得到了同频率的方波。没有信号发生器用开发板的GPIO输出一个方波也行关键是频率要已知。第三步把固定频率的方波直接接到计数链时钟端看数码管读数能不能稳定显示正确频率。如果这里能显示对说明计数、锁存、译码链路都通了。第四步接上完整的时基和闸门控制做整机联调。用一颗新的标称晶振做信号源跟频率计读数做比对验证整机精度。每一层都验证通过再往下走可以省掉至少一大半的Debug时间。6.3 常见故障与排查经验我把自己踩过和帮别人排查过的故障整理了一下基本都逃不出下面这几类现象可能原因排查方法读数不停乱跳、末位不稳定闸门边沿没做同步、输入信号有毛刺检查门控同步电路是否生效输入端加整形滤波高位永远不变化进位信号没接到下一级芯片量RCO引脚是否有脉冲输出数码管全灭或全亮译码芯片极性和数码管不匹配核对共阴/共阳看限流电阻是否过大读数比实际频率小很多前置分频器被接入但读数没乘以系数检查分频旁路开关读数稳定但整体偏大或偏小时基不准微调晶振负载电容或者更换时基晶振其中最常见、也最容易坑新手的就是第一项闸门同步。很多人觉得既然时基是1秒计数器又只在使能期间数脉冲为什么还不准问题就出在“使能”的边沿没有和被测信号对齐。这一点在纯硬件时代是核心难点在现代FPGA设计里依然值得重视热词里提到的“false path”本质上就是这种门控信号的时序约束问题。把自己当成那个车库里的人再想一遍我后来自己做了不少数字电路项目之后回头再看沃兹尼亚克和乔布斯那台频率计数器最深的体会是那个年代没有廉价单片机所有功能都靠硬件逻辑堆出来反而逼着你把系统时序想得特别透。时基怎么来、闸门怎么同步、计数怎么锁存、清零怎么配合每一步都是逻辑推理的结果没有一步是“差不多就行”。如果你对数字电路感兴趣我强烈建议先别急着上单片机。找几片74HC系列芯片按上面思路搭一台最简单的频率计数器让数码管真正显示出一个稳定频率的那一瞬间很多课本上死活记不住的时序概念一下就通了。最后分享一个小技巧手头没有信号发生器时临时用单片机的GPIO翻转输出一个方波或者用555搭一个简易振荡器就能给频率计提供测试信号。先验证通路是否正常再追求精度这是我调试这类设备时最省力的节奏。
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门