74LS148编码器实现三人表决电路:从逻辑设计到硬件实现

1次阅读
没有评论

共计 1770 个字符,预计需要花费 5 分钟才能阅读完成。

image.webp

背景介绍

表决电路在工业控制中应用广泛,比如产线急停按钮的多重确认、安全联锁系统的决策判断等场景。传统继电器方案存在机械磨损问题,而基于数字集成电路的方案具有响应快、可靠性高的特点。三人表决是典型的 ” 少数服从多数 ” 逻辑,当至少两人同意时输出有效信号。

74LS148 编码器实现三人表决电路:从逻辑设计到硬件实现

器件选型

对比常见编码器特性(数据来源:TI SN74LS148 Datasheet Rev.2019):

  • 74LS148
  • 响应时间:15ns(典型值)
  • 功耗:12mW@5V
  • 抗干扰:400mV 噪声容限

  • CD4532

  • 响应时间:120ns
  • 功耗:5mW@5V
  • 抗干扰:CMOS 电平特性

  • 74HC148

  • 响应时间:18ns
  • 功耗:8mW@5V
  • 抗干扰:300mV 噪声容限

工业场景优选 74LS148,因其在速度与抗干扰间取得最佳平衡。

核心实现

真值表设计

三人输入 A /B/C,输出 Y 表示表决结果:

A B C Y
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 1

引脚配置

74LS148 的 8 个输入引脚我们只使用 I0-I2(对应 ABC),EI 接地使能,输出通过 A0-A2 编码:

         +-----+
   I0 ---|1    16|--- VCC
   I1 ---|2    15|--- I7
   I2 ---|3    14|--- I6
   I3 ---|4    13|--- I5
   I4 ---|5    12|--- I4
  EI ---|6    11|--- A0
  GS ---|7    10|--- A1
 GND ---|8     9|--- A2
         +-----+

级联电路

通过两片 74LS148 实现 3 - 8 线编码,第二片的 EO 接第一片的 EI:

flowchart LR
    A[Input A] --> IC1(I0)
    B[Input B] --> IC1(I1)
    C[Input C] --> IC1(I2)
    IC1(EO) --> IC2(EI)
    IC1(A0-A2) --> OR[OR Gate]
    IC2(A0-A2) --> OR

代码实现

// 三人表决器 with 消抖
module voter_3(
    input clk,       // 10MHz 时钟
    input [2:0] btn, // ABC 输入
    output reg result
);

// 按钮消抖逻辑
reg [2:0] btn_meta;
reg [19:0] counter[2:0]; // 20ms 计时器
reg [2:0] btn_stable;

always @(posedge clk) begin
    btn_meta <= btn;
    for (integer i=0; i<3; i=i+1) begin
        if (btn_meta[i] ^ btn_stable[i]) begin
            if (&counter[i]) btn_stable[i] <= btn_meta[i];
            else counter[i] <= counter[i] + 1;
        end else counter[i] <= 0;
    end
end

// 优先编码器行为级描述
wire [1:0] enc_out;
assign enc_out = (btn_stable[2]) ? 2'b11 :
                (btn_stable[1]) ? 2'b10 :
                (btn_stable[0]) ? 2'b01 : 2'b00;

// 表决逻辑(≥2 票通过)always @(*) begin
    case (enc_out)
        2'b11: result = 1'b1; // 3 票
        2'b10: result = 1'b1; // 2 票
        2'b01: result = 1'b0; // 1 票
        default: result = 1'b0;
    endcase
end
endmodule

工程考量

信号延迟测量

使用示波器测量 EI 到 GS 的路径延迟,建议:

  1. 触发模式设为上升沿
  2. 时基调至 10ns/div
  3. 测量 GS 信号滞后于最后一个输入变化的时间

电源噪声抑制

  • 每个芯片 VCC-GND 间加 0.1μF 陶瓷电容
  • 电源走线宽度≥0.3mm
  • 避免编码器与电机共用电源

EMC 设计

  • 输入线加 100Ω 串联电阻
  • 关键信号走内层
  • 时钟线包地处理

避坑指南

常见布线错误

  • EI 使能端浮空(必须接 GND)
  • A2-A0 输出直连 LED(应加限流电阻)
  • 未使用的输入引脚未接地

竞争冒险消除

在 OR 门输出端加 RC 滤波(R=1kΩ, C=100pF)可消除毛刺

量产测试要点

  1. 输入全 0 时验证 GS=1
  2. 依次测试单输入有效时的编码输出
  3. 测量工作电流应 <15mA

思考题

如何扩展为五人表决系统?提示:
– 需要几片 74LS148?
– 如何修改输出逻辑电路?
– 级联时 EO 信号如何处理?

(参考答案:使用 3 片编码器,前两片级联处理 4 个输入,第 3 片接收第 5 输入和前两片的 GS 信号,通过多数表决逻辑门组合输出)

正文完
 0
评论(没有评论)