vault backup: 2026-06-28 14:53:55
This commit is contained in:
@@ -0,0 +1,114 @@
|
||||
---
|
||||
tags:
|
||||
- 接口与通讯技术
|
||||
- 8255A
|
||||
- 工作方式
|
||||
- 重点复习
|
||||
create time: 2026-06-28 15:00
|
||||
---
|
||||
|
||||
# 82C55A 工作方式
|
||||
|
||||
## 概述
|
||||
|
||||
82C55A(可编程并行接口芯片)有 3 种工作方式,其中方式 1 和方式 2 具有固定联络信号线、固定时序和确定的状态字。本专题聚焦填空题常考的三种工作方式对比,尤其是联络信号的有无。
|
||||
|
||||
## 正文
|
||||
|
||||
### 1. 三种工作方式总览
|
||||
|
||||
| 工作方式 | 名称 | 联络信号 | 固定时序 | 状态字 | 中断支持 |
|
||||
|---------|------|:--------:|:--------:|:------:|:--------:|
|
||||
| **方式 0** | 基本输入/输出 | ✗ 无 | ✗ 无 | ✗ 无 | ✗ 无 |
|
||||
| **方式 1** | 选通输入/输出 | ✓ **有** | ✓ **有** | ✓ **有** | ✓ 有 |
|
||||
| **方式 2** | 双向选通总线 I/O | ✓ **有** | ✓ **有** | ✓ **有** | ✓ 有 |
|
||||
|
||||
> [!important] 考试关键点
|
||||
> **方式 1 和方式 2** 有固定联络信号线、固定时序和确定的状态字。方式 0 是最基本的、无握手信号的方式。
|
||||
|
||||
### 2. 三种方式详解
|
||||
|
||||
#### 方式 0 — 基本 I/O(无联络信号)
|
||||
|
||||
最简单的方式,无需任何握手信号:
|
||||
- A、B、C 三个端口均可使用
|
||||
- 适用于无条件传送或简单外设(LED、开关)
|
||||
- **没有**固定的联络信号线、时序和状态字
|
||||
|
||||
#### 方式 1 — 选通 I/O(有固定联络信号)
|
||||
|
||||
利用端口 C 的部分引脚作为联络信号,实现同步数据传输:
|
||||
|
||||
| 方向 | 占用 C 口引脚数 | 联络信号 |
|
||||
|------|:------------:|---------|
|
||||
| 输入 | 3 根 | STB、IBF、INTR |
|
||||
| 输出 | 3 根 | OBF、ACK、INTR |
|
||||
|
||||
```mermaid
|
||||
graph LR
|
||||
subgraph "方式 1 输入联络信号"
|
||||
A1["STB<br/>选通信号"] --> B1["锁存数据"]
|
||||
B1 --> C1["IBF<br/>缓冲器满"]
|
||||
C1 --> D1["INTR<br/>中断请求"]
|
||||
end
|
||||
subgraph "方式 1 输出联络信号"
|
||||
A2["OBF<br/>输出缓冲满"] --> B2["等待外设取走"]
|
||||
B2 --> C2["ACK<br/>应答确认"]
|
||||
C2 --> D2["INTR<br/>可写下一个"]
|
||||
end
|
||||
```
|
||||
|
||||
#### 方式 2 — 双向总线 I/O(有固定联络信号 + 状态字)
|
||||
|
||||
**仅端口 A 可用**,同一端口既可输入又可输出:
|
||||
- 占用 C 口 **5 根**引脚(PC3~PC7)
|
||||
- 兼顾输入和输出的联络信号
|
||||
- 有确定的**状态字**反映当前传输方向
|
||||
|
||||
### 3. 方式对比速查图
|
||||
|
||||
```mermaid
|
||||
graph TD
|
||||
A["82C55A<br/>三种工作方式"] --> B["方式 0<br/>基本 I/O<br/>无联络信号<br/>最灵活"]
|
||||
A --> C["方式 1<br/>选通 I/O<br/>有固定联络信号<br/>固定时序"]
|
||||
A --> D["方式 2<br/>双向 I/O<br/>有固定联络信号<br/>固定时序+状态字"]
|
||||
style B fill:#ffd,stroke:#333,color:#000
|
||||
style C fill:#dfd,stroke:#333,color:#000
|
||||
style D fill:#dfd,stroke:#333,color:#000
|
||||
```
|
||||
|
||||
> [!question] 思考题
|
||||
> 为什么方式 0 没有固定联络信号?这在实际应用中意味着什么?
|
||||
>
|
||||
> 答:方式 0 是最基本的 I/O 方式,CPU 直接通过 IN/OUT 指令读写端口数据,不依赖任何握手协议。这意味着:
|
||||
> 1. 需要外设和 CPU 速度匹配(否则数据可能丢失)
|
||||
> 2. 适用于无条件传送场景(如 LED 显示、开关读取)
|
||||
> 3. 编程简单,但可靠性不如方式 1/2
|
||||
|
||||
### 4. 端口 C 引脚复用
|
||||
|
||||
方式 1/2 下,端口 C 的部分引脚被用作联络信号:
|
||||
|
||||
| 端口配置 | 占用的 C 口引脚 | 数量 |
|
||||
|----------|----------------|:----:|
|
||||
| A 口方式 1 输入/输出 | PC3、PC4、PC5 或 PC3、PC6、PC7 | 3 |
|
||||
| A 口方式 2 | PC3、PC4、PC5、PC6、PC7 | **5** |
|
||||
| B 口方式 1 输入/输出 | PC0、PC1、PC2 | 3 |
|
||||
|
||||
> [!tip] 规律记忆
|
||||
> - 每个方式 1 端口固定占用 **3 根** C 口引脚
|
||||
> - 方式 2 额外增加 2 根 → 共 **5 根**
|
||||
> - B 口的联络信号全部来自 C 口低 3 位(PC0~PC2)
|
||||
|
||||
### 5. 真题回顾
|
||||
|
||||
> [!example] 【真题】82C55A 有 3 种工作方式——方式 0、方式 1 和方式 2,其中方式\_\_\_\_\_\_有固定联络信号线,固定时序和确定的状态字。
|
||||
>
|
||||
> **答案**:1 和 2
|
||||
|
||||
## 关联笔记
|
||||
|
||||
- [[82C37A DMA控制器]]
|
||||
- [[接口分层结构]]
|
||||
- [[接口与通讯技术/复习文档/8255A可编程并行接口]]
|
||||
- [[接口与通讯技术/试题册/index|试题册索引]]
|
||||
Reference in New Issue
Block a user