环形计数器与约翰逊计数器:设计、工作原理及实际应用
环形计数器是一种特殊的移位寄存器,其最后一级输出反馈到第一级。施加时钟脉冲时,数据模式将无限循环。
例如,四级环形计数器每四个时钟脉冲重复一次模式,但寄存器必须先加载数据字。加载单个“1”(如 1000)最常见,且模式易于观察。

加载 1000 后,除一个时钟周期延迟外,各级波形相同,如下图所示。

此配置相当于 4 分频计数器;将时钟输入与任意输出比较可见 4:1 频率比。
任意分频因子
实现 10 分频计数器需十级。单个“1”每十个时钟脉冲循环一次。

初始化要求
环形计数器上电时必须初始化,因为各触发器初始状态未定。初始化后模式应持续;但噪声可能随时间破坏状态,打破序列。
常规同步二进制计数器能自纠错,因此在长期运行中往往更可靠。

与常规计数器对比
二进制计数器用两级加译码门,环形计数器自译码但需更多级。若需译码输出且大部分逻辑在单个移位寄存器封装内,环形计数器有吸引力;否则二进制计数器更简单。

同步二进制计数器的译码波形与环形计数器一致:(QA QB) 循环 00, 01, 10, 11。
约翰逊计数器
约翰逊计数器(又称折尾环形计数器)将最后一级的补输出(Q′)反馈到第一级,克服了环形计数器的若干局限。对于给定分频比,约翰逊计数器所需级数仅为环形计数器的一半。
例如,四级约翰逊计数器将输入时钟 8 分频,而四级环形计数器仅 4 分频。
约翰逊计数器上电通常清零为全 0 以建立已知状态。

引入单个“1”后,计数器经历四个 0 后跟四个 1,产生八状态循环。

多相输出生成
四级约翰逊计数器产生四路重叠的 50% 占空比相位。三级约翰逊计数器在 360 Hz 时钟驱动下,生成三路 120° 相移的 60 Hz 方波。
状态译码
约翰逊计数器每个状态可用简单双输入门译码。四级计数器的八个状态用八个双输入与门译码。

无论计数器长度,仅需双输入译码门。对与门输入取反可简化逻辑,但下图紧贴 CD4022B 数据手册。

八个译码输出(G0–G7)在 8 个时钟周期内各保持高电平一个周期。例如 G0 在 QA 和 QD 均低时为高。

非法状态与纠错
4 级移位寄存器可表示 16 种二进制状态,约翰逊计数器仅用 8 种,其余 8 种为非法状态。CD4022B 包含由两个或非门组成的非法状态检测器。
实际中上电复位以避免进入非法状态。若遇非法状态(如 010),或非门强制下一输入为 0,将其转为合法状态(如 000)。
几个时钟后任何非法状态均会被纠正。但关键应用仍应上电复位计数器。
约翰逊计数器器件
4000 系列和 74HC 系列均有带译码输出的集成电路。CD4017 提供十路译码输出(模 10),CD4022 提供八路(模 8)。74HC 型工作电压 2–6 V,输出驱动能力更强。
- CD4017 约翰逊计数器,10 路译码输出(CD4022 约翰逊计数器,8 路译码输出)
- 74HC4017 约翰逊计数器,10 路译码输出

实际应用
图 1 演示 74HC4017 驱动十个 LED,每五分之一秒点亮一个,形成环形流水灯。74HC4017 输出 4 mA(VOH=4.6V@4mA)足以点亮 LED,但典型 LED 电流 10–20 mA。

555 定时器提供时钟脉冲;若 555 驱动能力不足,可插入缓冲器。
约翰逊计数器也可生成三相方波。选取 P1=QA, P2=QC, P3=QB′,输出相隔 120°。经低通滤波和放大可变为三相正弦波,用于电源或电机驱动。

三相步进电机可将重叠输出译码为不重叠波形(P0, P1, P2),适配 ULN2003 或分立达林顿对驱动。

用单个 CD4017,在第三计数后复位,确保每个状态持续一个完整时钟周期再复位。

相关工作表
- 计数器工作表
- 移位寄存器工作表
工业技术