嵌入式硬件篇---数字电子技术中的触发器

news/2025/2/23 5:45:46

文章目录

  • 前言
  • 简介
  • 1. SR触发器(Set-Reset Flip-Flop)
    • 工作原理
      • 1.基本结构
      • 2.输入信号
      • 3.真值表
      • 4.缺点
      • 5.应用示例
  • 2. 钟控SR触发器(Clocked SR Flip-Flop)
    • 工作原理
      • 1.改进点
      • 2.触发条件
      • 3.问题
      • 4.应用示例
  • 3. D触发器(Data Flip-Flop)
    • 工作原理
      • 1.结构改进
      • 2.功能
      • 3.特征方程
      • 4.触发方式
      • 5.应用示例
  • 4. JK触发器(JK Flip-Flop)
    • 工作原理
      • 1.结构改进
      • 2.特征方程
      • 3.主从结构
      • 4.应用示例
  • 5. T触发器(Toggle Flip-Flop)
    • 工作原理
      • 1.简单版本
      • 2.特征方程
      • 3.应用实例
  • 6. 集成触发器芯片示例
  • 7. 触发器选择与设计要点
    • 触发方式:
      • 1.边沿触发
      • 2.功能需求
      • 3.时序约束
  • 总结
  • 总结


前言

本文仅仅简单介绍了SR触发器、D触发器、J触发器、T触发器的使用。


简介

数字电子技术中的触发器存储二进制信息的基本单元,广泛应用于时序电路设计。不同触发器类型在结构、功能和应用场景上各有特点。以下详细介绍常用触发器的工作原理、特性方程、逻辑结构及使用示例,并结合实际应用场景进行分析。

1. SR触发器(Set-Reset Flip-Flop)

工作原理

SR<a class=触发器" />
SR<a class=触发器的真值表" />

1.基本结构

基本结构:由两个交叉耦合的与非门(或或非门)构成,是最简单的锁存器(电平触发)

2.输入信号

S(Set):置位端高电平有效),使输出Q=1
R(Reset):复位端高电平有效),使输出Q=0

3.真值表

S R Q(t+1) 状态描述
0 0 Q(t) 保持
0 1 0 复位—>0
1 0 1 置位—>1
1 1 无效 禁止状态(不稳定)

4.缺点

缺点:存在禁止状态(S=R=1时输出不确定),需避免输入同时为高电平

5.应用示例

按键消抖电路:利用SR锁存器消除机械开关的抖动信号
当按键按下时,S=1、R=0 → Q=1;松开时,S=0、R=1 → Q=0,输出稳定。

2. 钟控SR触发器(Clocked SR Flip-Flop)

工作原理

时控SR<a class=触发器" />
时控制SR真值表

1.改进点

改进点:在基本SR触发器前增加时钟控制门(与门),由时钟信号(CLK)控制输入

2.触发条件

触发条件:CLK=1时,输入S和R有效CLK=0时保持状态

3.问题

问题:电平触发可能导致“空翻”(多个状态变化)不适用于高速电路。

4.应用示例

简单状态机:用于CLK信号同步的简单控制逻辑,如电机启停控制。

3. D触发器(Data Flip-Flop)

工作原理

D<a class=触发器" />

D<a class=触发器" />

1.结构改进

结构改进:通过将SR触发器的S和R端反向连接,避免禁止状态,仅需单个数据输入(D)。

2.功能

功能:CLK边沿(上升沿或下降沿)触发时,输出Q=D

3.特征方程

特性方程:
𝑄(𝑡+1)=𝐷

4.触发方式

触发方式:边沿触发(抗空翻),常用主从结构或传输门实现

5.应用示例

寄存器:存储多位数据。

// 4位D触发器寄存器
module reg_4bit (input clk, input [3:0] D, output reg [3:0] Q);
always @(posedge clk) Q <= D;
endmodule
移位寄存器:串行转并行数据转换。
// 右移寄存器(带串行输入)
module shift_reg (input clk, input sin, output reg [3:0] Q);
always @(posedge clk) Q <= {sin, Q[3:1]};
endmodule

4. JK触发器(JK Flip-Flop)

工作原理

JK<a class=触发器" />
JK<a class=触发器真值表" />

1.结构改进

结构改进:在SR触发器基础上增加反馈,解决禁止状态问题。

输入J(Set)和K(Reset),当J=K=1时,输出翻转(𝑄(𝑡+1)=𝑄(𝑡)‾Q(t+1)= Q(t))。

2.特征方程

特性方程:
𝑄(𝑡+1)=𝐽𝑄(𝑡)‾+𝐾‾𝑄(𝑡)

3.主从结构

主从结构:避免空翻,CLK高电平期间触发器采样,CLK下降沿从触发器更新。

4.应用示例

计数器:实现二进制计数。

// 模4计数器(使用JK触发器)
module counter_mod4 (input clk, input rst, output reg [1:0] count);
always @(posedge clk or posedge rst) begin
  if (rst) count <= 2'b00;
  else count <= count + 1;
end
endmodule
状态机:实现复杂控制逻辑。

5. T触发器(Toggle Flip-Flop)

工作原理

T<a class=触发器" />

T<a class=触发器真值表" />

1.简单版本

简化版本:将JK触发器的J和K端短接为T输入
T=1时:输出翻转(𝑄(𝑡+1)=𝑄(𝑡)‾Q(t+1)= Q(t))。
T=0时:保持原状态

2.特征方程

特性方程:𝑄(𝑡+1)=𝑇⊕𝑄(𝑡)

3.应用实例

应用示例

分频器:将时钟频率分频为1/2。

// 2分频电路
module clk_divider (input clk, output reg clk_out);
always @(posedge clk) clk_out <= ~clk_out;
endmodule

6. 集成触发器芯片示例

74LS74(双D触发器

1.功能

功能:带异步复位(Reset)和置位(Set)上升沿D触发器

2.应用

应用:同步数据锁存、去抖动电路

74LS112(双JK触发器

1.功能

功能:带异步复位的下降沿JK触发器

2.应用

应用:计数器、频率合成器

7. 触发器选择与设计要点

触发方式:

1.边沿触发

  1. 边沿触发(D、JK)适用于高速电路
  2. 电平触发(SR锁存器)用于简单控制。

2.功能需求

  1. 数据存储:选择D触发器

  2. 状态翻转:选择JK或T触发器

3.时序约束

**建立时间(Setup Time)和保持时间(Hold Time)**需满足。

总结

不同触发器在数字系统中承担不同角色:

1.SR锁存器

SR触发器基础锁存器适合消抖和简单控制。基础但需避免禁止状态。

2.D触发器

D触发器简单可靠适合数据存储和流水线设计。简单可靠,适合数据流水线。

3.JK触发器

JK触发器功能灵活,适合计数器和状态机。功能全面,支持保持、置位、复位和翻转。

4.T触发器

T触发器:简化版JK触发器,适合分频和计数。专用于周期翻转场景(如分频器)

设计时需根据功能需求、时序约束和电路复杂度综合选择,并通过仿真验证时序正确性。例如,在FPGA中,D触发器是主流选择;而在ASIC中,可能根据功耗和面积优化选择触发器类型


总结

以上就是今天要讲的内容,本文仅仅简单介绍了SR触发器、D触发器、J触发器、T触发器的使用。


http://www.niftyadmin.cn/n/5863031.html

相关文章

nodejs:express + js-mdict 作为后端,vue 3 + vite 作为前端,在线查询英汉词典

向 doubao.com/chat/ 提问&#xff1a; node.js js-mdict 作为后端&#xff0c;vue 3 vite 作为前端&#xff0c;编写在线查询英汉词典 后端部分&#xff08;express js-mdict &#xff09; 1. 项目结构 首先&#xff0c;创建一个项目目录&#xff0c;结构如下&#xff1…

kotlin的Int类型调用toString()会导致空指针吗

DeepSeek R1 思考 38 秒 思考过程 用户的问题是关于Kotlin中Int类型调用toString()是否会导致空指针异常。首先&#xff0c;我需要回忆Kotlin的基本类型系统。Kotlin中的Int属于基本数据类型&#xff0c;但它在语言层面被表示为非空类型。也就是说&#xff0c;Int变量本身不能…

node.js的版本管理

nvm&#xff08;Node Version Manager&#xff09; 适用系统&#xff1a; macOS、Linux&#xff0c;在 Windows 上也有移植版本 nvm - windows。 特点&#xff1a; 使用广泛&#xff0c;能方便地安装、切换不同版本的 Node.js&#xff0c;并且可以同时管理多个版本。 安装 nv…

基于 JavaWeb 的 Spring Boot 网上商城系统设计和实现(源码+文档+部署讲解)

技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论…

http、websocket与MQTT协议

网络通讯协议 1、http、websocket与MQTT协议 核心区别 特点httpwebsocketMQTT协议协议模型请求-响应&#xff08;单项&#xff09;全双工双向通讯发布/订阅&#xff08;多对多&#xff09;连接状态无状态&#xff08;断连接或长连接需要要手东维护&#xff09;持久长连接&am…

WPS PPT插入各种线型形状(如画直线)的时候总是有箭头,如何还原成只画直线

WPS PPT插入各种线型形状&#xff08;如画直线&#xff09;的时候总是有箭头&#xff0c;如何还原成只画直线 文章目录 WPS PPT插入各种线型形状&#xff08;如画直线&#xff09;的时候总是有箭头&#xff0c;如何还原成只画直线一、问题出现的原因二、解决方法 在使用 WPS 演…

运维Ansible面试题及参考答案

目录 简述 Ansible 的工作原理,它是如何实现对远程主机管理的? Ansible 是基于什么语言开发的?这门语言的特性对 Ansible 的功能实现有哪些帮助? 解释 Agentless 在 Ansible 中的含义,与基于 Agent 的自动化工具相比,优势体现在哪? Ansible 中的 Inventory 文件是什…

Linux7-线程

一、前情回顾 chdir();功能&#xff1a; 函数用于改变当前进程的工作目录。 参数&#xff1a;路径&#xff08;Path&#xff09;&#xff1a;这是一个字符串参数&#xff0c;表示要切换到的目标目录的路径。 返回值&#xff1a; 成功&#xff1a;在成功改变当前工作目…