vault backup: 2026-06-28 16:34:33

This commit is contained in:
2026-06-28 16:34:33 +08:00
parent 9813fd4f6c
commit e57e5a9bdb
6 changed files with 672 additions and 0 deletions
@@ -0,0 +1,88 @@
---
tags:
- 接口与通讯技术
- 82C37A
- DMA
- 选择题
- 重点复习
create time: 2026-06-28 16:30
---
# DMA 控制器 82C37A 选择题考点
## 概述
82C37A 是选择题中出现频率最高的芯片(3套试卷共考9题)。核心考点围绕**状态周期、握手信号、传输方式、初始化方式字、字节计数器**五个维度展开。
## 正文
### 1. DMA 状态周期(S1~S4)
```mermaid
graph LR
S1["S1<br/>输出地址高8位<br/>仅高8位变化时才插入"] --> S2["S2<br/>输出地址低8位<br/>读/写控制有效"] --> S3["S3<br/>数据传输"] --> S4["S4<br/>周期结束"]
style S1 fill:#ffd,stroke:#333,color:#000
```
> [!important] 高频考点
> **S1 状态只有在存储器地址的高 8 位发生变化时才会出现。** 地址高8位不变时可跳过 S1,提高传输效率。
### 2. DMA 握手信号(4个关键信号)
| 信号 | 方向 | 含义 | 考试角度 |
|------|------|------|----------|
| **DREQ** | I/O → DMA | I/O 设备**请求** DMA 传输 | 请求源 |
| **HRQ** | DMA → CPU | DMA **请求**占用总线 | 尚未获得总线 |
| **HLDA** | CPU → DMA | CPU **确认**交出总线 | **标志 DMA 已获得总线控制权** ✅ |
| **DACK** | DMA → I/O | DMA **确认**选中该 I/O | **表示该 I/O 被选中** ✅ |
> [!question] 思考题
> HRQ 和 HLDA 有什么区别?为什么不能只靠 HRQ 判断 DMA 获得了总线?
>
> 答:HRQ 是 DMA 的"请求",HLDA 是 CPU 的"应答"。只有 CPU 发出 HLDA 后,DMA 才真正获得总线控制权。HRQ 有效只表示"我想要",HLDA 有效才表示"你得到了"。
### 3. DMA 四种传输方式
| 方式 | 释放总线条件 | 适用场景 |
|------|-------------|----------|
| **单字节方式** | 每传完 **1 个字节**立即释放 | CPU 需频繁介入 |
| **请求方式** | **DREQ 无效时释放**(DREQ 有效则连续传) | I/O 速度不确定 |
| **块方式** | 整个数据块传完才释放 | 大批量连续传输 |
| 级联方式 | 用于多片级联 | 扩展 DMA 通道 |
> [!tip] 解题口诀
> - 题干出现"每操作一个数据就释放"→ **单字节方式**
> - 题干出现"DREQ 是否维持有效决定是否释放"→ **请求方式**
### 4. 初始化方式字:DMA 读 vs DMA 写
判断依据:**以存储器的视角**决定读/写。
```mermaid
graph TD
A["数据采集<br/>外设→存储器"] --> B["对存储器是写操作<br/>→ DMA 写"]
C["数据输出<br/>存储器→外设"] --> D["对存储器是读操作<br/>→ DMA 读"]
style B fill:#dfd,stroke:#333,color:#000
style D fill:#dfd,stroke:#333,color:#000
```
> [!example] 真题
> 采用 DMA 方式进行数据采集(外设→存储器),对 82C37A 初始化时应按照 **DMA 写** 写入方式字。
### 5. 字节计数器
82C37A 的字节计数器为 **8 位**,范围 0~255:
$$\text{实际传输字节数} = \text{装载值} + 1$$
- 传 256 个数据 → 装载值 = 256 − 1 = **0FFH**
- 传 1 个数据 → 装载值 = **00H**
> [!warning] 易错点
> 计数器是"减1计数器",从装载值递减到 0 时传输结束,共传输 N+1 个字节。不是装载 N 就传 N 个!
## 关联笔记
- [[接口与通讯技术/复习文档/82C37A DMA控制器]]
- [[DMA控制器82C37A|填空题专题:82C37A DMA控制器]]
- [[中断控制器82C59A 选择题考点]]