本文介绍了一种针对人们将旋转编码器用于控制时经常遇到的“粗/细”问题的灵活解决方案。谁说必须使用微处理器才能增加智能?
与普通面板安装式电位计的尺寸和形状相仿,增量式旋转编码器提供了一种模拟电位计的“数字”廉价替代品。这种编码器通常用在音视频设备、环境控制、消费类电器、实验室设备、科学仪器等设备中完成电平控制、调谐和定时器设置。
增量型编码器的输出一般由两个相位上正交(即相移为四分之一周期)的信号组成,轴每旋转一次会产生固定数量的脉冲,每个脉冲对应旋转的增量。编码器内部有两个开关连接到公共端。这个公共端通常连接到地,如图1所示,而两个正交输出连接到上拉电阻(R1和R2)。
图1:自适应接口电路响应编码器的快速旋转,并据此增加输出脉冲速率。
图1阴影部分电路是用于实现正交编码的典型编码器接口。其中R3-C1和R4-C2提供噪声滤除和触点去抖,同时由施密特NAND IC1a和IC1b在A点和B点产生“完整的”数字信号。与编码器输出一样,这些信号的相位差也是90度:当编码器顺时针旋转时,信号A的上升沿领先信号B上升沿四分之一周期;当编码器逆时针旋转时,信号B领先信号A四分之一个周期。
将信号A发送至触发器IC2a的D输入端,用信号B的上升沿作为触发器的触发时钟,那么当编码器顺时针旋转时,Q端的输出信号变高;当编码器逆时针方向旋转时,Q端的输出信号变低,从而指示旋转的方向。信号A或B都可以用作增量脉冲。例如,如果编码器是20增量类型,那么轴每转360度A或B点的信号都会产生20个脉冲。
在任一时刻只有少量编码器旋转的应用中简单接口电路可以工作的很好。然而,在要求数百甚至上千的增量脉冲情况下这种接口电路是远远不够的。例如,考虑1000个脉冲要通过时钟进入计数器的应用。20增量型编码器需要旋转50次才能产生这么多脉冲,这是非常耗时和费力的任务!
然而,只需增加另外一个集成电路(IC3,一个双路可重触发单稳态多谐振荡器)和少量的低价元件,电路就能识别编码器为了信号B处的每个增量脉冲产生多个输出脉冲而正在快速旋转。这个附加电路显示在图中的阴影区外,工作原理如下:
单稳态多谐振荡器IC3a和触发器IC2b组成了一个简单的速率检测器,它能监视B点信号的频率。编码器更快速度的旋转将增加该信号频率,缩短信号周期。速率检测器能够判断什么时候信号周期小于由单稳态电路的定时元件R5和C3设定的阈值。
第二个单稳态器件IC3b与增加的R6、C4和Q1一起工作在非稳态。定时元件R6-C4和R8-C5决定了从引脚12采集到的非稳态输出信号的频率和占空比。
第一个单稳态器件IC3a被配置为在B信号的下降沿触发,而触发器IC2b的触发时钟是B信号的上升沿。当编码器旋转速度较慢时,IC3a的Q输出端(引脚13)信号由一系列正向脉冲组成。脉冲宽度等于:
t(w) = 0.45 × R5 × C3 (秒) (Vcc = 5V)
当R5 = 560kΩ并且 C3 = 100nF时,t(w)标称值是25ms。当编码器旋转很慢时,信号B的频率很低,其周期相对较长,(在被信号B的下降沿作为时钟触发后)IC3a的Q输出端信号在信号B再次变高之前已经返回到低电平。现在,由于Q驱动IC2b的/RESET输入,信号B在触发器时钟输入端(引脚11)的正跳变对输出没有影响,Q端(引脚9)保持低电平。继而使IC3b的/RESET输入端(引脚11)置低,IC3b周围形成的非稳态电路保持在复位状态,最终使/Q输出端(引脚12)处于高电平。最终结果是IC3a的Q输出端的25ms脉冲经选通穿过IC1d,然后被IC1c反向,电路输出包含一系列恒定宽度的正向脉冲,每个脉冲对应编码器的增量旋转。因此,当编码器慢速旋转时,电路每个增量只产生一个25ms的输出脉冲。
如果编码器相对较快的旋转,信号B的周期会相应缩短,直到该信号下面部分(“空”)的宽度刚好小于t(w)(IC3a的输出脉冲时长)。由于引脚13的Q端在信号B变高时是高电平,因此IC2b的触发器由B的上升沿作时钟触发,其引脚9的Q输出变高。这种低到高的转变将使IC3b从复位状态释放,同时触发非稳态电路,使之开始以R6-C4和R8-C5确定的频率振荡。结果除了IC3a的Q输出端脉冲外,在IC3b的/Q输出端产生的一个或多个脉冲也会经选通经过IC1d。详见图2a的底部轨迹。
图2a:电路从单个脉冲逐步过渡到多个脉冲。
最后,当编码器旋转速度非常快时,B点信号的下降沿将在其Q输出有可能变低之前重新触发IC3a。在这些条件下,IC3a和IC2b的Q输出端都保持在高电平,从而允许非稳态电路自由运行。结果IC1c输出端的信号是一连串非稳态频率的脉冲,如图2b的底部轨迹所示。
图2b:当编码器旋转速度很快时,输出以非稳态频率“自由运行”。
图2细节:顶部轨迹:信号A;中间轨迹:信号B;底部轨迹:IC1c的电路输出。
电路从单脉冲变为多脉冲的转折点取决于IC3a的定时元件。用户合理期待的编码器最快转速大约是每秒两转。对于每转20个增量的编码器来说,这相当于每秒40个脉冲,或25ms的信号周期。因此,当编码器的转速超过每秒两转时,电路将变为产生多个输出脉冲。
非稳态频率应选择适合你的要求。当采用图1所示的R6、C4、R8和C5值时,非稳态频率约600Hz,脉冲宽度标称值为1ms。注意,为了使电路能够正常工作,IC3a必须是可重触发的单稳态器件。正常情况下,通过将IC1c的未用输入接到高可以使IC1c用作反相器。然而,通过将这个输入端连接到IC2a的Q输出端,电路将只在编码器以顺时针方向旋转时才会产生输出脉冲。相反,通过将NAND输入端连接到IC2a的/Q输出端,电路只在编码器逆时针旋转时产生输出脉冲。当你只需要编码器以特定方向旋转时产生输出脉冲的情况下这种行为就非常有用。