系统外设与直接内存访问控制器详解
1. 系统外设概述
当主处理器或协处理器执行用户程序时,它要么与系统内存(如 SRAM、SDRAM 或 Flash)交换数据,要么使用串行总线(某些情况下使用并行总线)与系统外设通信以执行各种任务。
一个传统的计算系统通常包含以下组件:
- 一个或多个 CPU 核心。
- 协处理器,如用于执行特定任务的硬件加速器。
- 直接内存访问(DMA)单元,用于在不同内存之间进行常规数据传输。
- 显示适配器,用于支持屏幕显示。
- 中断控制器,用于管理 I/O 或用户产生的中断。
大多数情况下,负责将外部模拟信号转换为数字形式或数字信号转换为模拟形式的数据转换器、控制事件时长的定时器,以及负责串行传输和接收外设数据的 SPI 或 I2C 收发器都是中断驱动单元,并连接到中断控制器。中断控制器通过驻留在程序内存中的一系列中断服务程序(ISR)来管理所有事件驱动或程序驱动的任务。
2. 整体系统架构
一个包含基本总线主设备和从设备的基本系统架构如图 1 所示。
graph LR
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
A(CPU):::process -->|高速并行总线| B(SDRAM):::process
A -->|高速并行总线| C(SRAM):::process
A -->|高速并行总线| D(Flash Memory):::proces