英特尔 8255 可编程外设接口 (PPI) 是数字系统早期将微处理器与外部设备桥接的关键组件。8255 具有多功能 I/O 端口、多种作模式和易于编程,可与显示器、传感器和控制器进行可靠通信,使其在教育和工业中都很有用。

8255 可编程外设接口 (PPI) 概述
英特尔 8255 PPI 芯片是一种广泛使用的 I/O 芯片,旨在将微处理器与外部设备连接起来。它充当 ADC、DAC、键盘和显示器等外围设备的通信桥接器。它支持直接和中断驱动的 I/O,为系统设计提供了灵活性。它具有三个 8 位双向端口(A、B、C),可提供 24 条可配置的 I/O 线。其成本效益以及与英特尔 8085/8086 等处理器的兼容性使其成为早期计算机系统、培训套件和工业控制器的主要产品。
2、8255 PPI芯片的特点
• 可编程接口 – 可通过软件指令进行配置,以适应显示器、传感器和输入模块等设备。
• 三个 8 位端口 – 端口 A、B 和 C 提供 24 条可用作输入或输出的线路。
• 多种作模式 –
模式 0:简单的输入/输出,无需握手。
模式 1:带握手信号的选闪 I/O,用于同步通信。
模式 2:带握手的双向数据传输(仅在端口 A 上)。
• 位设置/复位 (BSR) – 端口 C 位可以单独设置或清除,用于控制/状态应用。
• 灵活的分组 – 端口可以拆分为 8 位或 4 位组。
• TTL 兼容性 – 与标准数字 IC 轻松集成。
• 独立的控制寄存器 – 每个端口可以单独以不同的模式或方向运行。
8255 PPI芯片引脚排列

| 引脚号 | 集团 | 信号 | 描述 |
|---|---|---|---|
| 1-8 | 端口 A | PA0–PA7 | 8 位通用 I/O 端口 |
| 9-16 | 端口 C | PC0–PC7 | 分为PC0-PC3(下)和PC4-PC7(上);用作 I/O 或握手线路 |
| 17-24 | 端口 B | PB0–PB7 | 8 位通用 I/O 端口 |
| 25 | 控制 | CS' | 芯片选择(低电平有效) |
| 26 | 电源 | VCC | +5 V 电源 |
| 27 | 控制 | RD' | 读取启用 |
| 28 | 控制 | WR' | 写入启用 |
| 29 | 控制 | 重置 | 将所有端口重置为输入状态 |
| 30-37 | 数据总线 | D0–D7 | 在 CPU 和 8255 之间传输数据/命令 |
| 38-39 | 地址引脚 | A0、A1 | 选择内部寄存器/端口:00=端口A,01=端口B,10=端口C,11=控制 |
| 40 | 接地 | 接地 | 接地参考 |
4、8255 PPI芯片架构

| 功能块 | 描述 |
|---|---|
| 数据总线缓冲器 | 充当 CPU 的双向数据总线 (D7–D0) 和 8255 的内部 8 位数据总线之间的接口。它在 CPU 和内部寄存器或端口之间临时存储和传输数据。 |
| 读/写控制逻辑 | 管理 CPU 和 8255 之间的所有通信。它解释 RD、WR、A0、A1、CS 和 RESET 等控制信号,以确定作类型(读取、写入或控制)并选择正确的端口或控制寄存器。 |
| 控制逻辑(解码器) | 解码 CPU 发送的控制字,以将端口配置为各种模式(模式 0、1 或 2)或位设置/复位 (BSR) 模式。它决定了每个端口的运行方式 - 作为输入、输出或握手。 |
| A 组对照 | 控制端口 A(8 位:PA7–PA0)和上端口 C(4 位:PC7–PC4)。它支持模式 0、1 和 2,允许简单的 I/O、握手 I/O 和双向数据传输 |
| B 组控制 | 控制端口 B(8 位:PB7–PB0)和下端口 C(4 位:PC3–PC0)。它支持模式 0 和 1,允许基本的输入/输出或握手控制作。 |
| 端口 A | 一个 8 位 I/O 端口,可根据模式配置用作输入或输出。支持A组控制下的模式0-2。 |
| 端口 B | 另一个用于数据传输的 8 位 I/O 端口。在 B 组控制下运行,支持模式 0 和 1。 |
| 端口 C | 拆分的 8 位端口分为两个 4 位组:上层 (PC7–PC4) 和下层 (PC3–PC0)。这些可以充当独立的 I/O 端口、控制线或握手信号。还可以使用位设置/复位 (BSR) 模式控制单个位。 |
| 内部数据总线(8位) | 连接 8255 的所有内部模块,在 CPU、控制逻辑和端口之间传输数据和控制信息。 |
| 电源 | 该芯片采用 +5V 直流电源和 GND 连接为整个电路供电。 |
5、8255 PPI芯片的工作模式及工作原理
Intel 8255 充当 CPU 和外围设备之间的可编程接口,将总线作转换为并行数据传输。它的作由初始化步骤和可选模式决定:
复位状态
在上电或复位时,所有端口(A、B 和 C)默认为输入模式,以避免通过意外输出损坏外设。
初始化
CPU 必须发送一个控制字,将每个端口配置为输入/输出,并选择四种作模式之一。在完成此作之前,端口将保持非活动状态。
作模式
位设置/复位(BSR)模式
• 仅适用于端口 C。
• 允许为控制/状态任务设置或清除单个位。
模式 0 – 简单 I/O
• 基本输入/输出,无需握手。
• 用于直接传输,例如 LED、开关和显示器。
模式 1 – 频闪 I/O
• 通过端口 C 添加握手信号(STB、ACK、IBF、OBF)。
• 确保同步的 CPU ↔ 外设数据传输。
模式 2 – 双向 I/O
• 仅在端口 A 上可用。
• 支持带握手控制的双向传输,适用于高速或异步设备。
读/写作
• 写入:CPU 将数据放置在系统总线上,8255 解码地址行(A0、A1)以将其定向到正确端口的输出锁存器。
• 读取:外部设备将数据放在端口线上,8255 在读取命令期间锁存并提供给 CPU。
同步
• 在模式 0 下,数据传输直接发生,无需握手。
• 在模式 1 和 2 中,来自端口 C 的握手信号协调就绪和接受,防止在高速或异步传输期间丢失数据。
8255 PPI芯片的接口注意事项
使用 8255 设计系统时,仔细的接口可确保可靠性并防止损坏芯片和外部设备:
• 默认输入状态 – 重置时,所有端口默认为输入。这避免了冲突,但也意味着输出在配置之前处于非活动状态。在尝试通信之前,CPU 必须始终发送控制字以正确定义方向和模式。
• 输出驱动限制 – 8255 的端口只能提供或吸收有限的电流(几毫安)。直接驱动灯、电磁阀或继电器等重物是不安全的。相反,通常使用缓冲器或驱动器 IC,例如 ULN2803(达林顿阵列)或集电极开路栅极,例如 7406。这些提供更高的电流能力并保护 PPI。
• 电机控制 – 对于直流电机或步进电机,8255 端口不应直接连接。相反,输出必须通过晶体管级或 H 桥驱动电路进行路由。这种布置允许双向电流流动,同时将 PPI 与感性电压尖峰隔离开来。
• 交流负载开关 – 为了安全起见,与交流电器的接口需要隔离。通过缓冲级驱动的机械继电器或固态继电器 (SSR) 确保 8255 仅处理控制信号,而实际的高压负载则在外部安全切换。
• 端口 C 限制 – 端口 C 的位并不总是可以作为常规 I/O 自由使用。在模式 1 和 2 中,自动保留多个引脚(例如 STB、ACK、IBF、OBF)用于握手控制。必须考虑这些保留行,以避免在将常规 I/O 与握手混合时发生冲突。
7、8255 PPI芯片的优势
• CPU 兼容性 – 8255 可与 Intel 8085、8086 等处理器及其兼容处理器无缝协作。其设计符合标准总线协议,无需额外的胶水逻辑即可轻松集成。
• 灵活的端口配置 – 具有三个 8 位端口(A、B、C),用户可以根据应用将它们配置为输入、输出或混合。在简单 I/O(模式 0)和握手驱动通信(模式 1 和 2)之间切换的能力允许同一芯片处理各种任务。
• 单电源作 – 8255 采用标准 +5 V 电源供电,在基于 TTL 的系统中易于供电。不需要特殊的稳压器或多个电压电平,从而简化了电路板设计。
• 可靠的并行数据传输——该芯片提供稳定且可预测的 8 位并行通信,减少时序不确定性。这种可靠性使其适用于驱动显示器、读取传感器和管理实际系统中的控制信号。
• 教育价值 – 由于 8255 有据可查且广泛可用,因此一直是微处理器实验室和培训套件中的关键教学工具。通过使用此器件进行实际实验,您可以快速理解 I/O 接口概念。
8255 PPI芯片的应用
• 教育系统 – 培训套件和实验室板通常包括 8255,以演示外围接口概念。您可以练习编程不同的模式并观察与外部设备的实际交互。
• 显示控制 – 该芯片驱动视觉输出设备,例如七段 LED、LCD 模块和字母数字面板。凭借其多条 I/O 线,它可以刷新显示器或向驱动器 IC 发送控制命令。
• 键盘接口 – 早期终端和个人计算机中的矩阵键盘通常使用 8255 进行扫描。通过将一些线路配置为行驱动程序,将其他线路配置为列传感器,它可以有效地检测按键。
• 电机控制 – 当 8255 与晶体管级、达林顿阵列或 H 桥配对时,可以控制步进电机和直流电机。这使得它在机器人、定位系统和自动化项目中非常有用。
• 数据采集 – 当连接到 ADC(模数转换器)和 DAC(数模转换器)时,8255 为测量和控制任务提供了完整的接口。这使得微处理器能够处理科学和工业设备中的信号。
• 工业自动化 – 8255 用于控制交通信号、电梯逻辑和过程监控面板。它能够可靠地管理多个输入和输出,使其成为嵌入式控制系统的低成本解决方案。
• 逆向计算 – IBM PC/XT 和 MSX 计算机等经典机器采用 8255 进行外围接口。它还用于打印机和扩展卡,巩固了其在早期个人计算机历史上的地位。
8255 PPI芯片与其他PPI的比较
8255 与 8155

Intel 8155 将多种功能结合在一个封装中:它提供一小块静态 RAM、可编程定时器和通用 I/O 端口。这使得它适用于需要内存和时序控制的紧凑型系统。相比之下,8255 完全专注于可编程 I/O,没有内置内存或时序。当应用程序不需要集成 RAM 或计时器时,其更简单的设计使其更便宜且更容易编程。
8255 与 8259

8259 可编程中断控制器具有非常不同的用途:管理硬件中断以帮助 CPU 快速响应外部事件。8255 处理并行 I/O 数据传输,而 8259 则协调中断信号。在许多基于微处理器的系统中,这两个芯片一起使用,8255 用于与键盘和显示器等设备连接,8259 用于管理这些设备生成的中断请求。
8255 与现代 GPIO 扩展器

当今的系统通常使用基于 I²C 或 SPI 的 GPIO 扩展器(例如 MCP23017 或 PCF8574)。这些器件以更少的连接提供了额外的 I/O 引脚,从而节省了电路板空间并减少了 CPU 上的引脚数。但是,它们串行运行,与 8255 的直接并行访问相比,速度可能较慢。虽然 8255 需要更多的总线线路,但其并联结构允许更快的传输,使其在教育环境中非常有价值,在教育环境中,直接控制单个引脚和了解总线时序对于学习非常重要。
故障排除和常见问题
如果不仔细遵守设计规则,使用 8255 有时会导致系统故障。常见问题和补救措施包括:
• 未初始化的端口 – 重置后,所有端口默认为输入模式。如果 CPU 没有发送正确的控制字,则输出将保持非活动状态或行为不可预测。在尝试读取或写入数据之前,请始终对控制寄存器进行编程。
• 控制字不正确 – 错误配置的控制字可能会为端口分配错误的方向或模式,从而锁定预期信号。根据数据表交叉检查控制字值,以确保正确的位设置。
• 握手失败 – 在模式 1 和 2 中,端口 C 提供所需的握手信号(STB、ACK、IBF、OBF)。连接丢失、接线错误或误解会导致传输停止或丢失。仔细验证连接设备的接线和逻辑电平预期。
• 过载输出 – 每个端口引脚只能处理小电流。使用电阻器可以直接驱动 LED,但电机、继电器和灯需要外部缓冲级,例如晶体管阵列或驱动器 IC。忽略此限制可能会对芯片造成永久性损坏。
• 总线冲突 – 如果多个设备尝试同时驱动系统总线,则可能会发生数据损坏或硬件损坏。正确的总线仲裁和使能信号(RD'、WR'、CS')的使用可以防止此问题。
• 调试工具 – 当问题仍然存在时,测试设备有助于隔离故障。逻辑分析仪可以确认定时和控制信号,而示波器可以检查问题是否是由嘈杂的硬件接线或不正确的软件初始化引起的。
结论
英特尔 8255 PPI 仍然是微处理器接口的基石。尽管在很大程度上被现代 GPIO 扩展器和内置微控制器 I/O 所取代,但它仍然作为一种主动教学工具。它在演示并行数据传输、端口配置和握手方面的清晰度使其对任何人来说都是无价的。
常见问题 [FAQ]
8255 中的控制词是什么,为什么它很重要?
控制字是 CPU 发送的 8 位指令,用于配置 8255 的端口和模式。如果没有它,所有端口都保持默认输入状态。它定义每个端口是充当输入还是输出,并在模式 0、1、2 或位设置/重置之间进行选择。
8255可以直接驱动电机或继电器吗?
不。8255 输出只能提供或吸收几毫安,这对于电机或继电器来说是不够的。必须使用外部驱动电路,例如晶体管阵列或 H 桥,以安全地处理更高的电流。
为什么 8255 今天仍在教育中使用?
8255 提供了一种清晰、动手的方式来了解微处理器 I/O、控制字和并行数据传输。其简单的架构可帮助学生在转向现代微控制器之前理解核心概念。
如果在握手模式下使用端口 C 会发生什么?
在模式 1 和 2 中,某些端口 C 线路保留用于握手信号(如 STB、ACK、IBF、OBF)。在这些模式下,这些引脚不能用作通用 I/O,您必须考虑这一点以避免冲突。
8255 与现代 GPIO 扩展器有何不同?
与使用串行通信的 I²C/SPI 扩展器不同,8255 与并行总线配合使用,可实现更快的传输速度,但需要更多引脚。这使得 8255 的空间效率较低,但对于实际控制和学习总线计时很有价值。