OC门与线与逻辑

2023-11-06

转)OC门与线与逻辑

OC门,又称集电极开路(漏极开路)与非门门电路,Open Collector(Open Drain)。为什么引入OC门?实际使用中,有时需要两个或两个以上与非门的输出端连接在同一条导线上,将这些与非门上的数据(状态电平)用同一条导线输送出去。因此,需要一种新的与非门电路--OC门来实现“线与逻辑”。OC门主要用于3个方面:实现与或非逻辑,用做电平转换,用做驱动器。由于OC门电路的输出管的集电极悬空,使用时需外接一个上拉电阻Rp到电源VCC。OC门使用上拉电阻以输出高电平,此外为了加大输出引脚的驱动能力,上拉电阻阻值的选择原则,从降低功耗及芯片的灌电流能力考虑应当足够大;从确保足够的驱动电流考虑应当足够小。


有没有上拉电阻选择的计算公式呢?

上下拉电阻:
1、当TTL电路驱动COMS电路时,如果TTL电路输出的高电平低于COMS电路的最低高电平(一般为3.5V), 这时就需要在TTL的输出端接上拉电阻,以提高输出高电平的值。
2、OC门电路必须加上拉电阻,以提高输出的高电平值。
3、为加大输出引脚的驱动能力,有的单片机管脚上也常使用上拉电阻。
4、在CMOS芯片上,为了防止静电造成损坏,不用的管脚不能悬空,一般接上拉电阻产生降低输入阻抗, 提供泄荷通路。
5、芯片的管脚加上拉电阻来提高输出电平,从而提高芯片输入信号的噪声容限增强抗干扰能力。
6、提高总线的抗电磁干扰能力。管脚悬空就比较容易接受外界的电磁干扰。
7、长线传输中电阻不匹配容易引起反射波干扰,加上下拉电阻是电阻匹配,有效的抑制反射波干扰。

上拉电阻阻值的选择原则包括:
1、从节约功耗及芯片的灌电流能力考虑应当足够大;电阻大,电流小。
2、从确保足够的驱动电流考虑应当足够小;电阻小,电流大。
3、对于高速电路,过大的上拉电阻可能边沿变平缓。综合考虑
以上三点,通常在1k到10k之间选取。对下拉电阻也有类似道理

 

 

集电极开路输出大概有以下几个好处:

1.可以实现线与功能,即两个或多个输出端可并联在一起,然后接一上拉电阻至高电平。这样,只要有一个输出是低,
  那么结果就是低,即实现了与的功能。

2.跟上面的有点类似,那就是多个门输出端接在一起时,不会导致损坏。

3.可以用来控制较高的电平。典型应用可以看看ULN2003。

4.跟3类似,当输出断开时,为高阻态,这样就可以做输入口使用了。典型应用请看8951单片机的IO口结构,
  置1时即为输入口。


  对于集电极开路(OC)或者漏极开路(OD)输出的,如果要输出高电平,必须接上拉电阻,因为OC或OD门,
  置1时输出相当于悬空。





线与逻辑,即两个输出端(包括两个以上)直接互连就可以实现“AND”的逻辑功能。在总线传输等实际应用中需要多个门的输出端并联连接使用,而一般TTL门输出端并不能直接并接使用,否则这些门的输出管之间由于低阻抗形成很大的短路电流(灌电流),而烧坏器件。在硬件上,可用OC门或三态门(ST门)来实现。 用OC门实现线与,应同时在输出端口应加一个上拉电阻。
三态门(ST门)主要用在应用于多个门输出共享数据总线,为避免多个门输出同时占用数据总线,这些门的使能信号(EN)中只允许有一个为有效电平(如高电平),由于三态门的输出是推拉式的低阻输出,且不需接上拉(负载)电阻,所以开关速度比OC门快,常用三态门作为输出缓冲器。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OC门与线与逻辑 的相关文章

  • 如何使用C读取文件夹中的所有文件

    我希望读取特定文件夹中的所有文本文件 这些文件的名称没有任何共同的模式 否则任务会更容易 read a file from the directory Perform a common operation write output to a
  • 在 Swift 中,如何将现有的二进制文件读入数组?

    作为我的项目的一部分 我有一个二进制数据文件 其中包含大量 32 位整数 我的一个类在初始化时读入该文件 在我的 C 库中 我使用以下初始化程序读入它 Evaluator Evaluator m HandNumbers resize 324
  • 如何从 Rust 中的文件读取结构体?

    有没有办法可以直接从 Rust 文件中读取结构 我的代码是 use std fs File struct Configuration item1 u8 item2 u16 item3 i32 item4 char 8 fn main let
  • 使用 Read::read_to_string 从 TcpStream 读取会挂起,直到远程端关闭连接

    我正在尝试实施Haskell IRC 机器人教程 https wiki haskell org Roll your own IRC bot在 Rust 中 我在阅读连接后服务器发送给我的内容时遇到一些困难 似乎发生的情况是 我连接并从服务器
  • 下载文件 java spring Rest api

    我想制作一个rest api控制器 spring boot 当用get请求时将允许我下载一个excel文件 目前我有这个端点 RequestMapping value download xls method RequestMethod GE
  • 将数据写入文件:fflush()需要大量时间

    我有一个要求 其中我必须缓冲大量数据 以 GB 为单位 以供将来使用 由于没有足够的 RAM 来缓冲如此大量的数据 我决定将数据存储在文件中 现在的陷阱是 当我将数据写入文件时 其他线程可能需要 缓冲 数据 因此每次向文件流写入内容时 我都
  • 按广度优先顺序列出目录所有内容导致效率低下

    我编写了一个 Haskell 模块来按广度优先顺序列出目录的所有内容 下面是源代码 module DirElements dirElem where import System Directory getDirectoryContents
  • 有没有办法从 IO monad 中解开类型?

    我有这个非常简单的功能 import qualified Data ByteString Lazy as B getJson IO B ByteString getJson B readFile jsonFile readJFile IO
  • Lisp 格式和强制输出

    我不明白为什么这段代码在不同的实现中表现不同 format t asdf setq var read 在 CLISP 中 它的行为与预期一致 先打印提示 然后读取 但在 SBCL 中 它显示 then输出 我在网上查了一下 修改了一下 fo
  • 使用 Java 删除文件时出现问题 (apache commons io)

    我通过 JNI 调用 C 方法 该方法创建两个文件 给定目录中的文本日志文件和 pdf 文件 我想在执行 JNI 方法之前删除这些文件 如果存在 我正在使用 Apache commons io FileUtils forceDelete F
  • FORTRAN 写()

    在开始之前 我必须先声明一下 我是 FORTRAN 的新手 我正在维护 1978 年的一段遗留代码 它的目的是从文件中读取一些数据值 处理这些值 然后将处理后的值输出到另一个文本文件 给出以下 FORTRAN 代码 INTEGER NM S
  • 从 createProcess 外部获取的句柄读取

    我正在尝试创建一个进程 并通过我在外部提供的句柄与其进行通信createProcess功能 stdOutH lt openFile logDir gt stdout log ReadWriteMode hSetBuffering stdOu
  • 读取 CSV 文件单列的更快方法

    我正在尝试阅读一个列CSV文件至R尽快 我希望将标准方法将列放入 RAM 所需的时间减少 10 倍 我的动机是什么 我有两个文件 一个叫Main csv这是 300000 行和 500 列 其中一个称为Second csv即 300000
  • 如何从 haskell 中的 IOError 获取 errno?

    我在 haskell 平台上 GHC 6 12 1 作为 apt get 安装在 Debian Squeeze 上 鉴于我需要在与最初引发它的线程不同的线程上使用它 如何从 IOError 中获取底层 errno 我需要这个的原因是因为我正
  • 对在 C++ 应用程序中作为函数参数传递的文件运行“iconv”命令

    我正在尝试将 Windows 文件 CP1252 格式 转换为 Linux 应用程序的 UTF 8 格式 我想在我的 C 应用程序中运行以下命令 iconv f CP1252 t UTF 8 file ldf dos2unix gt out
  • 在 Ruby 控制台应用程序中获取键盘事件(无需按“Enter”输入)的最佳方法是什么?

    我在互联网上寻找这个答案已经有一段时间了 发现其他人也在问同样的事情 即使在这里也是如此 因此 这篇文章将介绍我的案例以及对我找到的 解决方案 的回应 我对 Ruby 很陌生 但出于学习目的 我决定创建一个 gem here https g
  • Java - 了解 PrintWriter 和刷新的需要

    好吧 首先我对所有代码表示歉意 但我觉得代码太多总比代码不够好 我正在制作一个简单的聊天客户端和印刷机 尤其是我正在努力解决的问题 使用现在的代码 它将与服务器类交互 并且完美地打印我想要打印的内容 但是 当我删除 writer flush
  • 从性能的角度来看,选择缓冲阅读器或扫描仪[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 为什么我需要一块一块地读取文件来缓冲?

    我看到了以下用于将文件放入数组的代码 该数组又用作将其插入 blob 列的 SQL 命令的参数 using FileStream fs new FileStream soubor FileMode Open FileAccess Read
  • 如何在 python 中更新/修改 XML 文件?

    我有一个 XML 文档 我想在它包含数据后对其进行更新 我考虑过打开 XML 文件 a 追加 模式 问题是新数据将写入根结束标记之后 如何删除文件的最后一行 然后从该点开始写入数据 然后关闭根标签 当然 我可以读取整个文件并进行一些字符串操

随机推荐

  • 虚拟机实现拖拽、复制、粘贴功能

    一 设置CD DVD驱动为自动检测 二 重新安装VMware Tools 在重启虚拟机的过程中 重新安装VMware Tools 会变亮 切记是重启过程中会变亮 虚拟机开启后又会变暗 下载完成后 双击进入CD虚拟驱动 将拷贝至桌面 依次执行
  • 青岛科技大学计算机专硕拟录取分数,又一批拟录取名单来了!最低分数...

    原标题 又一批拟录取名单来了 最低分数 最近 考研复试的动静闹得有点大 但是 这也没办法啊 按照往年的3月份就可以结束的事情 今年愣是拖到了五月底 各位20考研学生的心里苦啊 虽然所考研复试和咱们21考研的小伙伴 目前来看关系不大 但是 大
  • 关于el-table鼠标悬浮变色

    deep el table body el table row hover row td background color 颜色
  • HwServiceManager篇-Android10.0 HwBinder通信原理(五)

    Android取经之路 的源码都基于Android Q 10 0 进行分析 Android取经之路 系列文章 系统启动篇 Android系统架构Android是怎么启动的Android 10 0系统启动之init进程Android10 0系
  • 关于在使用tensorflow2.0版本时,出现RuntimeError:tf.placeholder() is not compatible with eager execution.的问题

    关于在使用tensorflow2 0版本时 出现RuntimeError tf placeholder is not compatible with eager execution 的问题 今天在运行程序 部分代码 import tenso
  • 可调时钟频率——IP核PLL/MMCM仿真及上板实验(Vivado)

    一 说明 实现平台 vivado2018 3 实验设备 领航者V2 ZYNQ7020 示波器一台 二 原理 在大多数实验项目中 所需要的时钟频率不尽相同 因此需要根据需求产生特定的时钟频率 PLL Phase Locked loop 锁相环
  • 关于css全局作用域(:global)和局部作用域(:local)

    local title color red 上面这种写法相当于 title color red global title color green
  • 一文读懂LSTM及手写LSTM结构

    torch nn LSTM 是PyTorch中用于创建长短时记忆网络 Long Short Term Memory 的类 LSTM是一种用于处理序列数据的循环神经网络 Recurrent Neural Network RNN 变体 官方给出
  • mysql基础1——发展起源、数据类型、基础安装

    文章目录 一 基本了解 1 1 DBMS数据库管理系统 1 2 主流关系型数据库 1 3 数据表概念 1 4 关系型数据库的组成 1 5 数据类型 1 5 1 数值型 1 5 1 1 整数型 1 5 1 2 小数型 1 5 2 字符串型 1
  • 2023年MySQL实战核心技术第三篇

    目录 六 事务隔离 隔离级别 事务隔离原理 MVCC等原理的讲解 6 1 解释 6 2 隔离性与隔离级别 6 2 1 SQL 标准的事务隔离级别 6 2 2 事务隔离级别解释 6 2 3 例子 6 2 3 1 若隔离级别是 读未提交 6 2
  • 微信射击小游戏实现/Phaser引擎

    最近在家闲着无事利用Phaser引擎是开发了一款弓箭射击小游戏 废话少说先看效果 在线体验 1 游戏的主要逻辑实现 GameState js export default class GameState extends Phaser Sta
  • Win7 Tortoise SVN安装异常--please install the universal crt first.You can .. windows-update(Kb2999226)

    一 问题 安装TortoiseSVN时报错 please install the universal crt first You can install it via windows update Kb2999226 or you can
  • 微信短链跳转到小程序指定页面调试

    首先说下背景 后端给了短链地址 但是无法跳转到指定页面 总是在小程序首页 指定的页面我们是h5页面 排查步骤如下 1 通过快速URL Scheme 编译 上部普通编译 下拉找到此选项 2 按照小程序的要求的URL Scheme输入 另外后端
  • 数据字典设置为枚举的用法

    原先我们的应用中 将一个实体的状态声明为Integer int 类型 然后在对其赋值的时候是使用一个类或接口在其中定义相应的值 在代码其他地方引用对状态进行赋值 例如 package com sunlight warehouse util
  • 爬虫基础--requests基础操作

    目录 一 requests是什么 二 使用步骤 1 环境安装 2 编码流程 3 模拟浏览器的侧重点 请求头模拟 请求参数模拟 三 两个请求 1 get请求 使用requests发起get请求 2 post请求 post请求的主要参数 使用r
  • 写作工具助手

    写作猫 www xiezuocat com 5118 www 5118 com 15201 www 15201 com 小发猫 www xiaofamao com 火龙果写作 www mypitaya com 智媒AI www zhimei
  • 计算机基础知识(基础入门小白专属)十

    作者 小刘在这里 每天分享云计算网络运维课堂笔记 疫情之下 你我素未谋面 但你一定要平平安安 一 起努力 共赴美好人生 夕阳下 是最美的 绽放 愿所有的美好 再疫情结束后如约而至 目录 关于cpu 和主板 cpu 是什么 cpu 主要作用
  • Spring Boot项目如何实现微信和支付宝支付

    本文将为大家详细介绍如何在Spring Boot项目中实现微信和支付宝的支付功能 我们将首先对微信和支付宝的支付流程进行简要介绍 然后逐步引导大家完成支付功能的具体实现 文章内容如下 支付流程简介 项目环境配置 支付宝支付实现 微信支付实现
  • 可转债

    一家上市公司想发行可转债必须满足 连续三年盈利且平均ROE大于10 公司资产负债率小于70 公司累计待还债券余额小于公司净资产40 有这3条标准做保障 债券和股票不一样 前者收益是明确的 到期就能拿到100元票面值 约定利息 所以 你买入的
  • OC门与线与逻辑

    转 OC门与线与逻辑 OC门 又称集电极开路 漏极开路 与非门门电路 Open Collector Open Drain 为什么引入OC门 实际使用中 有时需要两个或两个以上与非门的输出端连接在同一条导线上 将这些与非门上的数据 状态电平