总线使能集成电路

电器工程 集成电路 中央处理器 公共汽车
2022-01-15 06:36:42

我正在玩弄用基本逻辑组件设计一个简单的 8 位 CPU。我对我的 ALU 和寄存器如何交互有一个相当好的想法,但我觉得可以改进的一件事是如何在允许线路连接到主数据总线时进行切换。

我最初的想法是使用和门来驱动公共汽车。ALU 中各条线路的输出都可以进入一组四与芯片,然后输出到总线上。一次只有一组与门将其所有 B 输入拉高以使其输出到总线上。

我不确定的几件事:当我只需要一条控制线进入时,每条线使用八个全与门似乎很浪费。有没有更好的芯片更适合这个目的?我确信我也可以用八个晶体管来做到这一点,但我想坚持使用相当常见(且便宜)的 IC。

像这样的解决方案只允许数据从总线以一种方式流动。这是一个问题吗?我不认为,因为我有其他控制线阻止寄存器加载总线数据,直到我想要它们。

有没有标准芯片可用于这样的总线门?

2个回答

74HC244是用于连接/断开总线的典型设备它是一个八进制三态缓冲器(或者更确切地说是一个双四态缓冲器)。您需要三态功能才能完全断开与总线的连接。门将总线设置为高或低,但这不会允许其他设备在其上。

但是由于您正在谈论数据总线,因此您可能需要一个双向缓冲区。然后你可以使用74HC245

74HC245

您有一个DIR控制方向的引脚和一个/OE可以使缓冲区处于三态的引脚。

编辑
JustJeff 提到了 74HC374 八进制三态 D 触发器。注:我将讨论 74HC574,它在功能上是相同的,但具有更合乎逻辑的引脚排列。74HC574确实是一个有趣的部分,也是自 SN74xx 系列以来的经典之作。虽然 74HC245 将为您提供三态缓冲器,但 74HC574 也具有记忆功能,采用八进制 D 触发器的形式。非常适合制作寄存器,并且通过与总线的三态连接,您可以轻松地路由数据流。
然而,这有一个缺点。寄存器的输出只对总线可用,所以所有的通信都必须通过那里,这样总线就会成为瓶颈. 因此,我认为最好用一个74HC273八进制 D 触发器替换 74HC374,然后用一个单独的 74HC244 三态缓冲器连接到总线。这样,当一些其他信号占用总线时,寄存器的输出也可以在内部使用。(我不知道是否有功能兼容的部分与更合乎逻辑的引脚排列。您也可以使用/OE硬接线接地的 74HC574。)

(1) 与门本质上不适合作为透明总线缓冲器共用,因为如果它们具有完全有源的输出驱动器,它们会相互作用,如果“集电极开路”,逻辑就会反转。

您可以将集电极开路 2 输入门用作公共总线的单线驱动器。

如果将“data”和“not_enable”提供给 OR 门,如果 not_enable 为高,则输出将为高,如果 not_enable 为低,则输出将跟随数据。

当集电极开路的输出为高时,它不会以任何方式加载总线。当它为低电平时,它会通过打开的低输出加载总线。因此,多个开放式集电极 O 门可以共享总线,并且只有启用的(通常一次一个)可以驱动总线。您需要一个上拉电阻将总线拉高,并需要任意数量的门将其拉低。

(2) EDUC-8曾经/现在是一个基于 8 位 TTL 的微型计算机,作为 1974 年 8 月至 1975 年 8 月在澳大利亚电子杂志上的一个多月项目提出。即使您不想复制它,您也可以通过查看它的方式来学到很多东西被实施。近年来有各种各样的爱好者建立了副本。

一个用户的 EDUC-8 旅程的非常广泛的文档 ......同样...... 包括他的几个 latrgsih PCB 的墨粉转移 PCB 制造的详细信息等等。

维基百科 EDUC-8

链接页面

一些文档

印刷电路板图像