微电子系统复习总览
前言:课程概览
开发平台: NUCLEO-L432KC(STM32L432KC,ARM Cortex-M4 核心,80 MHz 主频),mbed Studio 开发环境
核心模型: Sense → Think → Act(感知 → 处理 → 执行),对应传感器 → ADC → 微控制器 → DAC/PWM → 执行器
第一章:嵌入式系统与微控制器架构 (Embedded Systems & MCU Architecture)
1.1 什么是嵌入式系统
嵌入式系统是一种内置于大型产品中的电子系统,使用集成电路感知环境、处理信息并控制输出。
五种实现方式:
| 方式 | 示例 | 优点 | 缺点 |
|---|---|---|---|
| 分立元件 | 555 定时器、晶体管 | 简单、便宜 | 不可编程 |
| 计算机 | ATM 系统 | 高处理能力 | 体积大、功耗高 |
| ASIC | iPhone 处理器 | 极高性能 | 极其昂贵、不灵活 |
| FPGA | 显示器、AI 加速器 | 可重构硬件 | 设计复杂 |
| MCU(微控制器) | STM32 | 灵活、可编程、低成本 | 处理能力有限 |
1.2 微控制器架构 – 【考点】
Harvard 架构 vs von Neumann 架构:
| 特性 | Harvard | von Neumann |
|---|---|---|
| 指令/数据存储 | 分离的内存空间 | 单一内存空间 |
| 总线 | 分离的指令和数据总线 | 共享总线 |
| 并行访问 | 可同时访问指令和数据 | 不能同时访问 |
| 常见用途 | 微控制器 | 通用处理器 |
| 代表 | ARM Cortex-M4 (STM32) | ARM Cortex-M0+ |
1.3 CPU 核心组件
| 组件 | 功能 |
|---|---|
| ALU(算术逻辑单元) | 执行算术和逻辑运算(加、乘、移位、与、或) |
| 寄存器 (Registers) | CPU 内部小型超快存储,无地址,直接由 CPU 访问 |
| 程序计数器 (PC) | 存放下一条指令的地址 |
| 指令寄存器 (IR) | 存放当前正在执行的指令 |
| 控制单元 (CU) | 解释指令并控制操作 |
指令执行周期:Fetch → Decode → Execute(取指 → 解码 → 执行)
1.4 时钟与地址总线 – 【3年3考·必考】
- 时钟:同步微控制器内所有操作,L432KC 为 80 MHz
- 32 位地址总线:可访问 (4GB)地址空间
1.5 存储器类型 – 【3年3考·必考】
| 特性 | SRAM(静态 RAM) | DRAM(动态 RAM) |
|---|---|---|
| 速度 | 快 | 慢 |
| 成本 | 高 | 低 |
| 功耗 | 高 | 低 |
| 每 bit 晶体管数 | 6 个 | 1 个晶体管 + 1 个电容(最少) |
| 用途 | CPU 缓存、高速暂存 | 主存储器 |
寄存器 vs 普通存储器: 寄存器是 CPU 内部极小的超快存储,无地址,CPU 直接访问;普通存储器(如 RAM)容量大但速度慢,通过地址访问。
1.6 存储器层次结构
速度递减,容量递增。
1.7 Cortex-M4 存储器映射 – 【考点·基础】
32 位地址总线,共 4GB 地址空间,分为 6 个区域:
| 区域 | 起始地址 | 大小 | 用途 |
|---|---|---|---|
| Code | 0x00000000 | 512 MB | 片上 Flash 程序代码 |
| SRAM | 0x20000000 | 512 MB | 片上 SRAM 数据 |
| Peripheral | 0x40000000 | 512 MB | 存储器映射 I/O |
| External RAM | 0x60000000 | 1 GB | 外部 RAM |
| External Devices | 0xA0000000 | 1 GB | 外部设备 |
| System | 0xE0000000 | 512 MB | 系统组件(SysTick、NVIC) |
第二章:编程模型与 Embedded C
2.1 编程模型
三层抽象: 机器码(二进制)→ 汇编语言(符号化)→ 高级语言(C/Python)
编译器将高级语言代码翻译为机器指令。
2.2 Embedded C 特性
- 直接硬件交互:访问寄存器、内存和 I/O 外设
- 高效轻量:适合有限内存和处理能力的系统
- 可移植:可为不同微控制器重新编译
- 许多嵌入式程序直接运行在硬件上(无操作系统)或使用 RTOS
2.3 mbed API 速查 – 【考点】见考试 Q1(b)
| API | 功能 | 示例 |
|---|---|---|
DigitalOut | 控制数字输出引脚 | DigitalOut led(LED1); |
DigitalIn | 读取数字输入引脚 | DigitalIn sw(D2, PullUp); |
AnalogOut | 模拟输出 (DAC) | AnalogOut Aout(A4); |
AnalogIn | 模拟输入 (ADC) | AnalogIn Ain(A6); |
PwmOut | PWM 输出 | PwmOut pwm(D3); |
SPI | SPI 通信 | SPI ser_port(A6, A5, A4); |
ThisThread::sleep_for | 延时 | ThisThread::sleep_for(1s); |
关键运算符区分:
=赋值运算符:“设为”==比较运算符:“等于”- 两者不可互换使用
!逻辑非:led = !led;翻转 LED 状态&位与运算符:x & 0x01提取最低位
2.4 mbed_blinky 程序结构
1 | |
while(true)创建无限循环(嵌入式系统中是标准做法)- LED 每 0.5 秒翻转一次
第三章:数字输入输出 (GPIO & Digital I/O) – 【考点】
3.1 模拟信号 vs 数字信号
| 特性 | 模拟信号 | 数字信号 |
|---|---|---|
| 时间 | 连续 | 离散 |
| 幅值 | 连续 | 固定值(二进制) |
| 示例 | 电压、电流、声音、光 | 0/1 二进制 |
STM32 逻辑阈值: Logic 1 ≈ 3.3 V,Logic 0 ≈ 0 V
3.2 GPIO 引脚
L432KC 有效 I/O 引脚:D0–D6, D9–D13, A0–A3, A6–A7。GPIO 引脚可配置为输入或输出。
3.3 LED 驱动 – 【考点】
LED 极性: 阳极(Anode, +)→ 长脚,阴极(Cathode, −)→ 短脚。电流从阳极流向阴极。
正向偏置(LED 亮):
- 阳极接正,阴极接负 → 电流流过 → 发光
- 典型正向电压 :红色 ~1.8 V,蓝色 ~3 V
- 必须串联限流电阻
限流电阻计算:
Active High vs Active Low:
| 配置 | LED 亮起条件 |
|---|---|
| Active High | 输出逻辑 1 (高电平) |
| Active Low | 输出逻辑 0 (低电平) |
3.4 开关与上拉/下拉电阻 – 【考点】
浮空输入问题: 当输入引脚未连接时电压不确定,可能随机读取 0 或 1。
解决方案:
- 上拉电阻 (Pull-Up):开关断开 → 引脚接 VDD(HIGH);开关闭合 → 引脚接 GND(LOW)
- 下拉电阻 (Pull-Down):开关断开 → 引脚接 GND(LOW);开关闭合 → 引脚接 VDD(HIGH)
- mbed 内部可配置,默认上拉
功耗计算: 3V 供电、10kΩ 上拉电阻,按下时消耗电流:
3.5 七段数码管
- 共阴极配置:公共引脚接 GND
- Logic 1 → 段亮,Logic 0 → 段灭
- 8 个 LED 段:a, b, c, d, e, f, g, dp(小数点)
第四章:编解码器与多路复用器 (Decoder, Encoder, MUX, DeMUX)
4.1 二进制表示
位可表示 种组合。二进制转十进制:
例:
4.2 四种器件总结 – 【考点】
| 器件 | 数据输入 | 控制输入 | 输出 | 方向 |
|---|---|---|---|---|
| 解码器 Decoder | n | 无 | 少 → 多(扩展) | |
| 编码器 Encoder | 无 | n | 多 → 少(压缩) | |
| 多路复用器 MUX | n | 1 | 多 → 一(选择) | |
| 解复用器 DEMUX | 1 | n | 一 → 多(分配) |
4.3 在存储器和处理器中的应用
- 解码器 + MUX → 存储器寻址:解码器选择目标寄存器,MUX 选择输出数据
- MUX/DEMUX → 处理器数据路径:选择 ALU 输入源,分配计算结果
第五章:模数转换器 (ADC) – 【3年2考·高频】
5.1 为什么需要 ADC/DAC?
现实世界是模拟的,数字世界是离散的。ADC 是连接两者的桥梁。
5.2 ADC 四步转换过程 – 【考点】
| 步骤 | 功能 |
|---|---|
| 采样 (Sampling) | 按采样频率从连续信号中取离散样本(连续时间 → 离散时间) |
| 保持 (Holding) | 保持当前样本值直到下一个样本到达 |
| 量化 (Quantizing) | 将每个模拟样本映射到最近的离散电平(连续幅值 → 离散幅值) |
| 编码 (Encoding) | 将量化电平转换为二进制数字输出 |
5.3 ADC 核心公式 – 【3年3考·必考】
其中 为位深度, 为模拟输入电压, 为参考电压。
量化误差:
5.4 ADC 主要特性
1. 采样率 (Sampling Rate / Frequency):
- 每秒采样次数(SPS 或 Hz)
- Nyquist-Shannon 定理:采样频率必须 大于信号最高频率的两倍
2. 分辨率 (Resolution / Bit Depth):
- 位 ADC → 个离散电平
- 8 位:256 级,16 位:65,536 级
5.5 L432KC ADC 规格 – 【考点】
| 参数 | 值 |
|---|---|
| 类型 | 逐次逼近型 (SAR) |
| 分辨率 | 12 位 (4096 级) |
| 最大采样率 | 5.33 Msps (@ 12-bit) |
| 低分辨率下 | 8.88 Msps (@ 6-bit) |
第六章:数模转换器 (DAC) – 【3年2考·高频】
6.1 DAC 定义
DAC 将数字(二进制)信号转换为模拟物理量(电压或电流)。
6.2 DAC 核心公式 – 【3年3考·必考】
通用 n 位 DAC 输出电压:
其中 为数字输入的十进制值。
分辨率(步长):
最大输出电压:
6.3 ADC vs DAC 分辨率
| ADC | DAC | |
|---|---|---|
| 分辨率含义 | ADC 可区分的最小输入电压变化 | DAC 可产生的最小输出电压步长 |
| 公式 | 同 |
6.4 DAC 功能模块
6.5 电阻网络实现对比 – 【考点】
| 特性 | 加权电阻法 | R-2R 梯形网络法 |
|---|---|---|
| 电阻种类 | 多种() | 仅两种( 和 ) |
| 精度 | 大电阻值不精确 | 精确、准确 |
| 可扩展性 | 难(电阻值指数增长) | 易(直接添加 R-2R 级) |
| 实用性 | 不实用 | 实用且常用 |
R-2R 梯形网络输出电压:
6.6 L432KC DAC 规格 – 【考点】见考试 Q2(a)
| 参数 | 值 |
|---|---|
| 分辨率 | 12 位 |
| 参考电压 | 3.6 V(内部稳压供电) |
| 步数 | 4096 |
| 步长/分辨率 | 0.87890625 mV |
| 输出范围 | 0 V ~ 3.599 V |
| 转换速度 | 200,000 samples/s (5 μs/conversion) |
| 时钟周期 | 400 个 (80 MHz × 5 μs) |
第七章:脉宽调制 (PWM) – 【3年2考·高频】
7.1 基本概念
调制是将信息嵌入载波信号特征(频率、幅度、相位或脉冲宽度)的过程。
PWM(脉宽调制): 通过改变电压脉冲的宽度来编码/传输信息,信息由信号的平均电压值表示。
7.2 PWM 关键参数 – 【3年3考·必考】
| 参数 | 符号 | 公式 |
|---|---|---|
| 周期 (Time Period) | ||
| 频率 (Frequency) | ||
| 占空比 (Duty Cycle) | ||
| 平均电压 (Average Voltage) | ||
| ON 时间 | ||
| OFF 时间 |
7.3 PWM 生成方式
模拟方式: 比较器电路 — 三角波 vs 控制电压
数字方式:
| 方式 | 方法 | 效率 |
|---|---|---|
| GPIO 翻转 | 处理器直接控制引脚翻转 | 低效(占用 CPU 资源) |
| 专用定时器/PWM 外设 | 定时器自动生成 PWM | 高效(释放 CPU) |
7.4 mbed PWM API – 【考点】
1 | |
7.5 PWM 应用
- 逆变器(DC → AC)
- 直流电机控制
- LED 亮度调节/调光
- 电池充电器
第八章:UART/USART 通信 – 【考点】
8.1 通信基础
通信方向:
| 模式 | 方向 | 示例 |
|---|---|---|
| Simplex(单工) | 仅单向 | 电视广播 |
| Half Duplex(半双工) | 双向,但一次一个方向 | 对讲机 |
| Full Duplex(全双工) | 同时双向 | 电话 |
8.2 并行 vs 串行通信 – 【考点】
| 特性 | 并行 | 串行 |
|---|---|---|
| 线数 | 多 | 少 |
| 距离 | 短 | 长 |
| 成本 | 高 | 低 |
| 数据传输 | 同时多 bit | 逐 bit |
现代系统倾向串行:更少的线、更低的成本、更远的距离、可达到高速。
8.3 同步 vs 异步
| 特性 | 同步 (SPI, I2C) | 异步 (UART) |
|---|---|---|
| 时钟 | 共享时钟信号 | 无共享时钟 |
| 同步方式 | 时钟信号 | 起始/停止位 |
| 速度 | 快 | 慢 |
8.4 UART 数据帧结构 – 【3年3考·必考】
| 字段 | 大小 | 值 | 用途 |
|---|---|---|---|
| 起始位 (Start) | 1 bit | 0 (LOW) | 标记帧开始 |
| 数据位 (Data) | 5–9 bits(通常 8) | 二进制数据 | 承载实际数据 |
| 奇偶校验位 (Parity) | 0 或 1 bit(可选) | 0 或 1 | 基本错误检测 |
| 停止位 (Stop) | 1 或 2 bits | 1 (HIGH) | 标记帧结束 |
8.5 波特率 (Baud Rate) – 【考点】
波特率 = 每秒信号变化次数(每秒传输的符号数)。在二进制系统中:Baud Rate = Bit Rate。
8.6 UART 计算 – 【3年3考·必考】
通信效率:
传输时间:
例:9600 bps,发送 50 字节(8 数据位、1 起始位、1 停止位、无校验):
每帧 = 1 + 8 + 0 + 1 = 10 bits
50 字节: bits
ms
8.7 错误类型
| 错误 | 原因 |
|---|---|
| 帧错误 (Framing Error) | 在预期位置未检测到起始/停止位;通常由波特率不匹配或噪声引起 |
| 奇偶校验错误 (Parity Error) | 接收到的数据 1 的计数与奇偶校验位不匹配 |
8.8 UART vs USART
| 特性 | UART | USART |
|---|---|---|
| 时钟 | 无 | 可选 |
| 支持同步模式 | 否 | 是 |
| 速度 | 较低 | 更高 |
| 复杂度 | 简单 | 更复杂 |
第九章:SPI 通信协议 – 【3年2考·高频】
9.1 SPI 基础
SPI (Serial Peripheral Interface):4 线同步串行接口,Motorola 1980 年代开发,全双工通信。
| 参数 | 值 |
|---|---|
| 线数 | 4 |
| 最大速度 | 最高 10 Mbps |
| 同步/异步 | 同步 |
| 串行/并行 | 串行 |
| 最大主设备数 | 1 |
| 最大从设备数 | 理论上无限 |
9.2 SPI 四条信号线 – 【3年3考·必考】
| 引脚名 | 别名 | 方向 | 功能 |
|---|---|---|---|
| MOSI | SDO | Master → Slave | 主机发送数据 |
| MISO | SDI | Slave → Master | 从机返回数据 |
| SCLK | SCK, CLK | Master → Slave | 时钟信号 |
| SS/CS | CE | Master → Slave | 片选(激活从机) |
SS/CS 通常为低电平有效 (Active Low)。SPI 使用 SS 选择从机,而非地址。
9.3 SPI 数据传输步骤
- 主机配置时钟频率
- 主机拉低 SS/CS → 激活从机
- 主机通过 MOSI 逐 bit 发送数据
- 如果需要响应,从机通过 MISO 逐 bit 返回数据
- 每个时钟周期进行一次全双工数据传输(移位寄存器)
9.4 时钟极性 (CPOL) 和时钟相位 (CPHA) – 【考点】
4 种 SPI 模式:
| CPOL | CPHA | 采样边沿 | 输出边沿 |
|---|---|---|---|
| 0 | 0 | 前沿(上升沿) | 后沿(下降沿) |
| 0 | 1 | 后沿(下降沿) | 前沿(上升沿) |
| 1 | 0 | 前沿(下降沿) | 后沿(上升沿) |
| 1 | 1 | 后沿(上升沿) | 前沿(下降沿) |
CPOL = 0:时钟空闲为低;CPOL = 1:时钟空闲为高
CPHA = 0:前沿采样;CPHA = 1:后沿采样
9.5 多从机配置
1) 独立 SS: 每个从机一个 SS 引脚 → N 个从机需要 N 个 SS(线多但简单)
2) 菊花链 (Daisy Chain): 从机串联 → 只需一个 SS(省线但复杂)
9.6 SPI 传输时间 – 【考点】
例:1 MHz 时钟,2 字节 = 16 bits →
9.7 SPI 优缺点
优点: 速度快、全双工、无起始/停止开销
缺点: 线多(每个从机需 SS)、无 ACK 确认机制、多从机时布线复杂
第十章:I2C 通信协议 – 【考点】
10.1 I2C 基础
I²C (Inter-Integrated Circuit):2 线同步串行通信,Philips 1982 年开发,用于短距离板内通信。
| 参数 | 值 |
|---|---|
| 线数 | 2 (SDA + SCL) |
| 类型 | 同步 |
| 速度 | 标准 100 kbps / 快速 400 kbps / 高速 3.4 Mbps |
| 最大从机数 | 1008 (10 位寻址) |
| 多主 | 支持 |
10.2 I2C 两条线
| 线 | 全称 | 功能 |
|---|---|---|
| SDA | Serial Data Line | 双向数据传输 |
| SCL | Serial Clock Line | 时钟信号(由主机生成) |
两条线都需要上拉电阻到 Vcc;I2C 设备使用开漏输出。
10.3 I2C 消息结构 – 【3年3考·必考】
| 元素 | 功能 |
|---|---|
| START 条件 | SCL 为 HIGH 时,SDA 从 HIGH → LOW |
| STOP 条件 | SCL 为 HIGH 时,SDA 从 LOW → HIGH |
| 地址帧 | 7 位或 10 位唯一从机地址 + 1 位 R/W |
| R/W 位 | 0 = 写(主机→从机),1 = 读(从机→主机) |
| ACK/NACK | 0 = ACK(成功接收),1 = NACK |
| 数据帧 | 8 位数据,MSB 先传 |
10.4 I2C 寻址
- 7 位地址: 个唯一地址
- 10 位地址: 个唯一地址
- 每个从机比较发送的地址与自己的地址
- 地址匹配 → 回复 ACK;不匹配 → 不响应
10.5 I2C 仲裁
- 多主模式下,每个主机在发送前检测 SDA 线
- SDA 为 LOW → 总线正忙 → 等待
- 发送时同时监控:发送 1 但读到 0 → 失去仲裁 → 退出
- LOW 在仲裁中优先(谁先拉低谁占优)
10.6 三大协议对比 – 【3年3考·必考】
| 特性 | UART | SPI | I2C |
|---|---|---|---|
| 线数 | 1 (TX) + 1 (RX) | 4 (MOSI+MISO+SCLK+SS) | 2 (SDA+SCL) |
| 速度 | 最慢 | 最快 | 中等 |
| 同步/异步 | 异步 | 同步 | 同步 |
| 双工 | 全双工 | 全双工 | 半双工 |
| 主/从 | 一对一 | 1 主多从 | 多主多从 |
| 多设备 | 最多 2 个 | 多但复杂(每个从机要 SS) | 多且简单(同两线) |
| 寻址 | 无 | SS 片选 | 7/10 位地址 |
| 起始/停止 | 起始位+停止位 | 无(SS 控制) | START+STOP 条件 |
| 确认 | 无 | 无 | ACK/NACK |
| 典型用途 | 调试、GPS、蓝牙 | 显示器、SD 卡、ADC/DAC | 传感器网络、EEPROM |
选型速记:
- 高速显示/存储 → SPI
- 多传感器(需要简洁布线)→ I2C
- 简单 PC 调试 → UART
附录 A:公式总表
A.1 微控制器基础
| 公式 | 说明 |
|---|---|
| k 位地址总线可访问的内存地址数 | |
| 32 位地址总线 = 4GB 地址空间 |
A.2 ADC
| 公式 | 说明 |
|---|---|
| ADC 数字输出 | |
| ADC 步长 | |
| 量化误差 | |
| Nyquist 采样定理 |
A.3 DAC
| 公式 | 说明 |
|---|---|
| DAC 输出电压 | |
| DAC 分辨率/步长 | |
| 步数 = | n 位 DAC 的输出电平数 |
| 最大输出电压 |
A.4 PWM
| 公式 | 说明 |
|---|---|
| 周期 | |
| 频率 | |
| 占空比 | |
| 平均电压 |
A.5 通信
| 公式 | 说明 |
|---|---|
| UART 通信效率 | |
| UART 传输时间 | |
| SPI 传输时间 | |
| 周期与频率关系 |
附录 B:高频考点总表
期末考点(按考频排序)
| 排序 | 考点名称 | 考频 | 分值 | 所属章节 | 关键技巧 |
|---|---|---|---|---|---|
| 1 | DAC 参数计算(步数、分辨率、范围、转换速度、时钟周期) | 3年3考·必考 | 10分 | Ch6 | steps, mV/step |
| 2 | PWM 计算(周期、频率、占空比、平均电压) | 3年3考·必考 | 6分 | Ch7 | , |
| 3 | ADC→DAC 级联(量化误差、数字输出、电压还原) | 3年2考·高频 | 8分 | Ch5+6 | ADC: , DAC: |
| 4 | SPI vs I2C 选型与对比 | 3年2考·高频 | 4分 | Ch9+10 | 速度:SPI>I2C;布线简洁:I2C>SPI |
| 5 | mbed 编程题(GPIO 控制、PWM、定时循环) | 3年2考·高频 | 8分 | Ch2 | DigitalOut, while 循环, sleep_for |
| 6 | 微控制器架构(Harvard vs von Neumann, CPU 组件) | 2年1考 | 3分 | Ch1 | Harvard=分离总线,可同时访问指令和数据 |
| 7 | SRAM vs DRAM | 2年1考 | 5分 | Ch1 | SRAM 快/贵/6晶体管;DRAM 慢/便宜/1晶体管+1电容 |
| 8 | 地址总线计算 | 2年1考 | 2分 | Ch1 | 32 bit → |
| 9 | 寄存器 vs 内存 | 2年1考 | 3分 | Ch1 | 寄存器无地址/CPU内部/极快 |
| 10 | SPI 代码分析(MOSI/MISO, 位运算, SPI.write()) | 2年1考 | 8分 | Ch9 | A6=MOSI, A5=MISO; & 位与; = vs == |
| 11 | SPI 传输时间 | 2年1考 | 2分 | Ch9 | |
| 12 | UART 帧结构与效率 | 1年1考 | — | Ch8 | Start+Data+Parity+Stop |
| 13 | R-2R vs 加权电阻 | 1年1考 | — | Ch6 | R-2R: 仅两种电阻,易扩展 |
| 14 | 通信方向(单工/半双工/全双工) | 1年1考 | — | Ch8 | SPI=全双工,I2C=半双工 |
附录 C:样题解析 (Sample Exam Walkthrough)
Q1: 微控制器架构与 mbed 编程(20 分)
(a)(i) 寄存器 vs 普通存储器 [3 marks]
寄存器:CPU 内小型超快存储,临时存放处理中的数据,无地址,CPU 直接访问。普通存储器(如 RAM):速度较慢,用于存储大量数据,通过地址访问。
(a)(ii) SRAM vs DRAM [5 marks]
| SRAM | DRAM | |
|---|---|---|
| 速度 | 快 | 慢 |
| 成本 | 贵 | 便宜 |
| 功耗 | 高 | 低(更节能) |
| 每 bit 晶体管 | 6 个 | 1 晶体管 + 1 电容(最少) |
(a)(iii) 时钟的重要性 [2 marks]
时钟提供定时信号,同步微控制器内的所有操作。
(a)(iv) 32 位地址总线 [2 marks]
(4GB)可寻址内存空间。
(b) 灌溉系统 mbed 编程 [8 marks]
要求:D5 引脚控制水泵,ON 1 秒 → OFF 4 秒,循环 5 次。
1 | |
Q2: DAC 与 ADC 计算(20 分)
(a) L432KC 12-bit DAC, Vref = 3.6V [10 marks]
| 参数 | 计算 | 答案 |
|---|---|---|
| 步数 | 4096 | |
| 分辨率 | 0.8789 mV | |
| 范围 | 3.599 V | |
| 转换速度 | 200,000/s | |
| 时钟周期 | 400 周期 |
(b) 4-bit ADC → 4-bit DAC 级联 [10 marks]
ADC: , DAC: , 输入 = 3.8V
(i) ADC 数字输出:
→ 第 12 步 → 1100 (二进制)
(ii) 量化误差:
(iii) DAC 输出:
Q3: PWM + 通信协议(20 分)
(a) PWM: , [6 marks]
| 参数 | 计算 | 答案 |
|---|---|---|
| 16 μs | ||
| 12 μs | ||
| 62.5 kHz |
(b)(i) SPI vs I2C — 43 个传感器 [4 marks]
选择 I2C。布线复杂度:I2C 仅需 2 线(SDA+SCL)连接全部 43 个设备;SPI 需 4+43=47 线(1 MOSI+1 MISO+1 SCK+43 SS),布线极其复杂。速度:SPI 更快,但在工厂自动化场景中布线的简洁性更重要。
(b)(ii) SPI 传输时间 [2 marks]
1 MHz 时钟,2 字节 = 16 bits →
© SPI 代码分析 [8 marks]
1 | |
(i) A6 = MOSI(主机发送数据),A5 = MISO(主机接收数据)
(ii) switch_word = 0xB0, switch_word & 0x01 → B0 & 01 = B0(若 switch_ip1==1),否则为 B0
(iii) recd_val = ser_port.write(switch_word) — 发送 switch_word 并同时接收从机返回的数据存入 recd_val
(iv) == 是比较运算符(判断左右是否相等),= 是赋值运算符(将右侧值赋给左侧)。两者不可互换。
附录 D:实验与项目速查
实验平台
- 开发板: NUCLEO-L432KC (STM32L432KC, ARM Cortex-M4, 80 MHz)
- IDE: mbed Studio(在线版或桌面版)
- 编译输出: .bin 文件 → 复制到 MCU 文件夹运行
关键引脚
| 功能 | NUCLEO-L432KC 引脚 |
|---|---|
| 用户 LED | LED1 (LD3) |
| 数字 I/O | D0–D6, D9–D13 |
| 模拟输入 | A0–A3, A6–A7 |
| 模拟输出 (DAC) | A4 |
| PWM | D3, D5, D6 等 |
| SPI | A6 (MOSI), A5 (MISO), A4 (SCK) |
| UART | D0 (TX), D1 (RX) |
| I2C | D4 (SDA), D5 (SCL) |
调试工具
- 数字万用表 (DMM): 测量电压(并联)、电流(串联)、电阻
- 示波器 (Oscilloscope): 观察电压波形,特别是快速变化的信号
- 信号发生器 (Function Generator): 产生测试信号(正弦、方波、三角波)
总结
本课程围绕 STM32L432KC 微控制器展开,核心知识链为:
配合 GPIO(数字 I/O)、SPI/I2C/UART(通信协议)构成完整嵌入式系统。
考试三大题结构(每题 20 分):
- MCU 架构 + mbed 编程(寄存器、存储器、时钟、地址总线、嵌入式 C)
- DAC + ADC 计算(分辨率、步数、量化误差、电压转换、级联分析)
- PWM 计算 + 通信协议对比与代码分析(周期、占空比、SPI vs I2C、代码阅读)
记忆优先级: DAC/ADC 计算公式 > PWM 参数 > SPI/I2C 对比 > GPIO 基本概念 > R-2R vs 加权电阻 > UART 帧结构
打开微信「扫一扫」