3.1 嵌入式硬件组成与AMBA总线
本节考试权重:5~8分 本节出题方式主要是选择题,重点考AMBA总线、4种通道定义,以及处理器选型。
一、嵌入式最小系统组成
最小系统就是让嵌入式处理器能"跑起来"所必需的最少硬件组合。
| 组成部分 | 功能说明 | 举例 |
|---|---|---|
| CPU(处理器) | 核心运算单元 | ARM920T(S3C2410) |
| 时钟电路 | 提供系统节拍,CPU按时钟节拍工作 | 晶振(12MHz外部晶振) |
| 复位电路 | 上电初始化,让CPU从已知状态启动 | 复位按键、看门狗复位 |
| 存储器 | 程序代码存储(ROM/Flash)+ 运行内存(RAM) | NOR Flash + SDRAM |
| 电源 | 提供稳定电压 | LDO稳压、DC-DC变换 |
记忆口诀
电(电源)钟(时钟)核(CPU)存(存储)复(复位),缺一不可!
二、嵌入式系统的4种通道
嵌入式系统要和外部世界打交道,靠的就是这4种通道。
高频考点:前向通道 = 模拟量输入
这是出题最多的考点之一,一定要记清楚方向!
4种通道详解
| 通道名称 | 方向 | 信号类型 | 典型组件 | 举例 |
|---|---|---|---|---|
| 前向通道 | 外部 → 系统 | 模拟量输入 | ADC(模数转换器)、传感器接口 | 温度传感器读值、采集电压 |
| 后向通道 | 系统 → 外部 | 模拟量输出 | DAC(数模转换器)、功放驱动 | 控制电机转速、输出音频 |
| 人机交互通道 | 双向 | 数字信号为主 | 键盘、显示屏、LED、触摸屏 | 按键输入、LCD显示 |
| 互连通道 | 双向 | 数字通信 | SPI、I²C、CAN、UART | 芯片间通信、联网 |
记忆方法
- 前向:传感器的数据"向前传"给CPU,是输入
- 后向:CPU的控制信号"往后输出"给执行器,是输出
- 人机交互:人和机器互动,LCD/键盘/触摸屏都属于这类
- 互连:芯片和芯片之间的通信总线
常见错误
很多同学把前向通道和后向通道搞反。记住:前向 = 采集(输入),后向 = 控制(输出)。
三、AMBA总线详解
AMBA(Advanced Microcontroller Bus Architecture)是ARM公司提出的片上总线标准,是S3C2410/S3C2440等SoC芯片的骨架。
AMBA总线层次结构
┌─────────────────────────────────────────────────┐
│ AHB 系统总线(高速) │
│ CPU核心 ←→ DMA控制器 ←→ 内存(SDRAM) │
│ ↑ ↑ │
│ Cache 总线桥(Bridge) │
└──────────────────────┬──────────────────────────┘
│ APB桥(降速)
┌──────────────────────┴──────────────────────────┐
│ APB 外围总线(低速) │
│ UART │ GPIO │ ADC │ 定时器 │ SPI │ I²C│
└─────────────────────────────────────────────────┘
AHB总线(高速系统总线)
| 特性 | 说明 |
|---|---|
| 全称 | Advanced High-performance Bus |
| 定位 | 系统总线,高速,连接CPU核心和高性能模块 |
| 连接组件 | CPU内核、DMA控制器、内存控制器、Cache控制器、LCD控制器 |
| 传输速率 | 高(可达CPU主频) |
APB总线(低速外围总线)
| 特性 | 说明 |
|---|---|
| 全称 | Advanced Peripheral Bus |
| 定位 | 外围总线,低速,连接不需要高速访问的外设 |
| 连接组件 | UART、GPIO、ADC、定时器、SPI、I²C、WDT |
| 传输速率 | 低(通过APB桥降速后访问) |
核心考点:DMA挂在AHB,不在APB
DMA(直接内存访问)控制器连接在系统总线(AHB)上,不在外围总线(APB)上。
原因:DMA的工作是大量数据的高速搬运(如从Flash搬数据到SDRAM),必须走高速的AHB总线。如果挂在APB上,速度根本跟不上。
考试陷阱: 题目会说"DMA控制器连接在外围总线上"——这是错误的!
AHB vs APB 对比
| 对比项 | AHB | APB |
|---|---|---|
| 速度 | 高速 | 低速 |
| 总线类型 | 系统总线 | 外围总线 |
| 典型设备 | CPU、DMA、SDRAM、Cache | UART、GPIO、定时器、ADC |
| 是否DMA | 是(DMA在这里) | 否 |
记忆口诀
- AHB = A(快)H(高性能)B(总线),记住"快的"都在这:CPU核、DMA、内存
- APB = 外(外设),UART、GPIO这些"慢外设"在APB
四、嵌入式处理器选型要点
选型时要综合考虑以下维度:
| 选型维度 | 说明 | 典型考虑 |
|---|---|---|
| 处理性能 | 需要多少MIPS/DMIPS? | 实时控制 vs 多媒体处理 |
| 功耗 | 电池供电还是市电? | 穿戴设备要极低功耗 |
| 片上外设 | 需要哪些接口? | 是否需要USB、以太网 |
| 存储资源 | 片上Flash/RAM是否够用? | 程序大小决定Flash需求 |
| 实时性要求 | 有无硬实时任务? | 工业控制要求确定延迟 |
| 成本 | 量产规模多大? | 价格、开发工具链费用 |
| 生命周期 | 长期供货能力? | 工业/医疗设备需稳定供货 |
常见处理器类型
| 类型 | 特点 | 适用场景 |
|---|---|---|
| MCU(微控制器) | 片上集成ROM/RAM/外设,成本低 | 家电、玩具、简单控制 |
| MPU(微处理器) | 高性能,需外接存储器 | 路由器、工业网关 |
| DSP | 专为数字信号处理优化 | 音频、图像、通信 |
| SoC | 高度集成,片上含CPU+外设+存储接口 | 手机、平板、嵌入式Linux设备 |
五、本节考题练习
选择题
题1: 嵌入式系统中,前向通道实现的功能是:
A. 模拟量输出 B. 数字量输入 C. 模拟量输入 ✓ D. 人机交互
解析: 前向通道负责将外部的模拟信号(如传感器采集的温度、压力)转换并输入到嵌入式系统,所以是模拟量输入。容易混淆的是后向通道(模拟量输出)。
题2: 在AMBA总线结构中,以下哪个设备连接在AHB(系统总线)而非APB(外围总线)上?
A. UART控制器 B. GPIO控制器 C. ADC D. DMA控制器 ✓
解析: DMA(Direct Memory Access)是高速数据搬运控制器,必须挂在高速的AHB系统总线上,才能实现高速的内存访问。UART/GPIO/ADC都是慢速外设,挂在APB上。
题3: AMBA总线中,APB总线主要连接:
A. CPU内核和Cache B. DMA和内存控制器 C. UART、定时器等慢速外设 ✓ D. LCD控制器和DMA
解析: APB(Advanced Peripheral Bus)是外围总线,连接不需要高速访问的外设,如UART、GPIO、定时器、ADC等。
题4: 嵌入式最小系统中,以下哪项不是必须包含的?
A. CPU B. 时钟电路 C. 存储器 D. 以太网接口 ✓
解析: 最小系统只需要CPU+时钟+复位+存储+电源,以太网是可选外设,不是必须的。
填空题
填空1: 在嵌入式系统的4种通道中,____通道实现模拟量输入功能,____通道实现模拟量输出功能。
答案: 前向通道;后向通道
填空2: AMBA总线包含____总线(连接CPU和高速设备)和____总线(连接外围慢速设备)。
答案: AHB(系统总线);APB(外围总线)
真题演练
以下是NCRE三级嵌入式真题中与本节相关的典型考题:
1. 下面与AMBA(Advanced Microcontroller Bus Architecture)有关的叙述中,错误的是( )。
- A)AMBA是ARM公司公布的用于连接和管理片上系统中各功能模块的开放标准和片上互连规范
- B)AMBA规定了ARM处理器内核与处理器内部RAM、DMA以及高带宽外部存储器等快速组件的接口标准
- C)ARM处理器内核与外围端口及慢速设备接口组件的接口标准不包含在AMBA规范中
- D)AMBA有多个版本,性能随版本的发展而逐步提高
答案解析
答:C AMBA是ARM公司公布的总线协议,用于连接和管理片上系统(SoC)中功能模块的开放标准和片上互连规范。标准规定了ARM处理器内核与处理器内部高带宽RAM、DMA以及高带宽外部存储器等快速组件的接口标准,也规定了内核与ARM处理器内部外围端口及慢速设备接口组件的接口标准。因此C项"不包含在AMBA规范中"错误。
2. 基于ARM内核的嵌入式处理器芯片采用系统总线与外围总线两层结构的方式构建片上系统,下面列出的组件中,不与系统总线相连的组件是( )。
- A)电源管理与时钟控制器
- B)DMA控制接口
- C)RTC
- D)中断控制器
答案解析
答:C 连接到系统总线上的高带宽组件主要包括:电源管理与时钟控制器、测试接口、外部存储器控制接口、DMA控制器、USB主机、中断控制器等。而RTC(实时时钟)是低速设备,与外围总线连接。
3. 下面关于I2C的叙述中,错误的是( )。
- A)I2C即集成电路互连总线
- B)I2C具有SDA、SCL和ACK共3条信号线
- C)I2C传送数据时,每次传送的字节数目没有限制
- D)I2C是多主总线
答案解析
答:B I2C总线只有两条信号线,一条是数据线SDA,另一条是时钟线SCL,所有操作都通过这两条信号线完成。ACK(应答)不是独立的信号线,而是通过SDA线上的电平变化来实现的。
4. 【填空题】按照AMBA总线规范,基于ARM内核的嵌入式处理器芯片采用系统总线与_总线两层结构的方式构建片上系统。其中的系统总线主要用于连接_带宽快速组件。
答案
答:外围;高 按照AMBA总线规范,基于ARM内核的嵌入式处理器芯片采用系统总线与外围总线两层结构的方式构建片上系统。其中的系统总线主要用于连接高带宽快速组件,外围总线主要连接低带宽组件以及与外部相连的硬件组件。
上一节:第三章概述 | 下一节:3.2 嵌入式系统存储器