3、数字电路基础:逻辑门、触发器、时序逻辑、组合逻辑、总线协议(I2C、SPI、UART)基础

数字电路是硬件测试的底层语言。无论是MCU、FPGA、DDR、传感器接口还是电源管理芯片,其内部行为最终都可以抽象为逻辑门、触发器以及由它们构成的组合逻辑和时序逻辑。而I2C、SPI、UART这三种总线协议,则是芯片之间通信最常用的“对话规则”。本章将围绕这些核心概念,从测试工程师的视角出发,帮助你建立从电路原理到实际信号测量的完整知识链路,为后续的时序测试、协议解码和故障定位打下坚实基础。

数字电路核心知识链路与总线协议关系图 逻辑门 AND / OR / NOT NAND / NOR / XOR 组合逻辑的原子单元 触发器 D / JK / T 触发器 时钟边沿触发 时序逻辑的存储单元 组合逻辑 输出仅由当前输入决定 译码器 / 多路选择器 加法器 / 比较器 时序逻辑 输出与当前输入+历史状态 计数器 / 移位寄存器 状态机(FSM) 三大总线协议 I2C SCL + SDA,两线制,多主多从,7/10位地址,100k/400k/1Mbps SPI SCLK + MOSI + MISO + CS,四线制,单主多从,全双工,高速 UART TX + RX,两线制,异步串行,点对点,需约定波特率 硬件测试关注要点 ① 逻辑电平阈值(VIH/VIL/VOH/VOL) ② 建立时间/保持时间(tSU/tH) ③ 总线时序参数(SCL频率、位宽) ④ 信号完整性(过冲/振铃/串扰) ⑤ 协议解码(起始位/地址/ACK) ⑥ 上拉/下拉电阻匹配

3.1 逻辑门:数字世界的原子操作

逻辑门是构成数字电路的最小功能单元。测试工程师在调试故障时,往往需要从芯片引脚的电平关系反推内部逻辑门的工作状态。例如,当一颗ADC芯片的输出数据异常时,我们需要确认其片选信号(CS)与时钟信号(SCLK)之间的逻辑关系是否符合数据手册中的“与”逻辑要求。

核心原理:逻辑门执行布尔代数运算,常见类型包括与门(AND)、或门(OR)、非门(NOT)、与非门(NAND)、或非门(NOR)、异或门(XOR)等。每个逻辑门都有明确的真值表,定义了输入电平组合与输出电平之间的映射关系。在硬件测试中,我们通常使用逻辑分析仪或示波器同时观测多个输入输出引脚,通过对比真值表来判断逻辑门是否工作正常。

判断方法:测试逻辑门时,应首先确认供电电压(VCC)和参考地(GND)正常,然后使用信号发生器或相邻引脚提供已知逻辑电平输入,用示波器探头测量输出引脚。关键参数包括:

  • 高电平阈值(VIH):输入被识别为逻辑“1”的最低电压,通常为VCC×0.7(TTL为2.0V)。
  • 低电平阈值(VIL):输入被识别为逻辑“0”的最高电压,通常为VCC×0.3(TTL为0.8V)。
  • 传播延迟(tPD):从输入变化到输出稳定所需的时间,是衡量逻辑门速度的核心指标。
实战经验:在测量逻辑门时,务必使用高阻抗探头(如10:1无源探头),避免探头负载影响被测信号。对于高速逻辑门(如74LVC系列),建议使用有源差分探头,并将探头地线缩短至2cm以内,以减少地环路噪声。

3.2 触发器与时钟边沿:时序逻辑的基石

触发器(Flip-Flop)是能够存储1位二进制信息的时序元件。与逻辑门不同,触发器的输出不仅取决于当前输入,还取决于时钟信号(CLK)的边沿以及电路的历史状态。在硬件测试中,触发器的建立时间(tSU)和保持时间(tH)是最常被验证的参数,它们直接决定了系统能否在高速时钟下稳定运行。

核心原理:以D触发器为例,其输出Q在时钟上升沿(或下降沿)到来时,会采样D输入端的电平并保持到下一个有效边沿。这种边沿触发的特性使得触发器能够同步数据流,构成移位寄存器、计数器和有限状态机(FSM)。

操作流程:测试触发器的建立/保持时间,通常采用以下步骤:

  1. 使用码型发生器(Pattern Generator)产生数据信号(D)和时钟信号(CLK)。
  2. 逐步移动数据信号相对于时钟边沿的位置(步进通常为100ps或1ns)。
  3. 用逻辑分析仪或示波器监测输出Q是否稳定跟随D输入。
  4. 记录输出开始出现亚稳态(Metastability)或错误采样的临界时间点,即为tSU和tH的边界。
参数定义测试方法典型值(74HC74)
tSU(建立时间)数据在时钟有效边沿前必须保持稳定的最短时间扫描数据边沿位置,观察输出稳定性20ns
tH(保持时间)数据在时钟有效边沿后必须保持稳定的最短时间扫描数据边沿位置,观察输出稳定性5ns
tCO(时钟到输出延迟)时钟有效边沿到输出稳定的时间测量CLK与Q之间的时间差35ns
风险提示:当数据信号在时钟边沿附近变化时,触发器可能进入亚稳态,导致输出在一段时间内处于无效电平(既不是高也不是低),并可能振荡。在测试中若发现亚稳态,应检查数据线与时钟线的布线长度是否匹配,或考虑增加同步器电路。

3.3 组合逻辑与时序逻辑:从电路到系统

组合逻辑电路(如译码器、多路选择器)的输出仅由当前输入决定,没有存储功能;而时序逻辑电路(如计数器、寄存器)则依赖时钟驱动,能够记住历史状态。在实际硬件系统中,这两类逻辑往往交织在一起。例如,一个典型的SPI从设备接口,其内部就包含组合逻辑(地址译码)和时序逻辑(移位寄存器)。

案例拆解:假设我们正在调试一块FPGA开发板上的UART接收模块。该模块的核心是一个16倍波特率过采样计数器(时序逻辑),配合一个起始位检测器(组合逻辑)。测试中发现接收数据偶尔出现乱码,通过逻辑分析仪抓取波形后发现:

  • 初始现象:UART接收到的数据在波特率设置为115200时,每100帧约有2帧错误。
  • 关键数据:示波器测量TX引脚信号,发现上升沿过冲达到1.2V(3.3V系统),振铃持续约15ns。
  • 分析过程:过冲导致接收端的输入电平在阈值附近反复穿越,使得起始位检测器误判,进而导致采样点偏移。
  • 实际操作:在TX引脚串联22Ω电阻以抑制振铃,并在接收端添加100pF对地电容进行滤波。
  • 结果对比:修改后连续测试10000帧,误码率降为0。

总结复盘:这个案例说明,时序逻辑的稳定性不仅取决于逻辑设计本身,还受到信号完整性的强烈影响。测试时不能只关注逻辑波形,还要检查模拟域的过冲、振铃和串扰。

3.4 总线协议基础:I2C、SPI、UART的测试要点

I2C、SPI和UART是板级硬件通信最常用的三种协议。作为硬件测试工程师,掌握它们的电气特性和时序要求是必备技能。下表对比了三种协议的核心差异:

特性I2CSPIUART
信号线数量2(SCL+SDA)4(SCLK+MOSI+MISO+CS)2(TX+RX)
通信模式半双工全双工全双工
主从结构多主多从单主多从点对点
时钟来源主机提供SCL主机提供SCLK双方约定波特率
典型速率100k/400k/1Mbps可达几十Mbps9600~4Mbps
地址机制7位或10位设备地址通过CS片选无地址

I2C测试要点:I2C使用开漏输出,必须外接上拉电阻(通常为2.2kΩ~4.7kΩ)。测试时应关注SDA和SCL的上升沿时间(tR),标准模式要求不超过1μs。使用示波器测量时,应同时观察起始条件(SDA下降沿先于SCL)和停止条件(SDA上升沿先于SCL)。

SPI测试要点:SPI的时序参数包括SCLK频率、CPOL(时钟极性)和CPHA(时钟相位)。测试时需确认主从设备的CPOL/CPHA配置一致,否则数据采样会错位。重点测量SCLK到MOSI/MISO的数据建立时间和保持时间。

UART测试要点:UART是异步协议,没有时钟线,因此波特率误差是测试重点。通常要求收发双方的波特率误差不超过±2%。测试时可通过示波器测量一个字节的起始位到停止位的总时间,反推实际波特率。

协议测试通用流程:
  1. 确认电平标准(3.3V/5V/1.8V)和逻辑阈值。
  2. 使用示波器或逻辑分析仪抓取完整通信帧。
  3. 解码并核对地址、数据、校验位是否符合预期。
  4. 测量关键时序参数(建立时间、保持时间、上升/下降时间)。
  5. 进行极限测试(如改变负载电容、温度、电压)验证设计裕量。

在实际项目中,建议为每种总线协议建立标准的测试模板,记录不同条件下的时序余量。例如,在-40℃和+85℃下分别测量I2C的上升沿时间,确保在最坏情况下仍满足规范要求。通过这种系统化的测试方法,可以提前发现潜在的通信可靠性隐患,避免产品在量产阶段出现偶发故障。