本章介绍嵌入式系统的基本概念、嵌入式处理器、嵌入式操作系统、开发方法、物联网技术以及典型应用案例。通过本章学习,了解嵌入式系统的特点、架构和应用领域。
学习目标:
本章重点:
本章难点:
嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
嵌入式系统的本质特征:
与通用计算机系统的区别:
| 特性 | 通用计算机 | 嵌入式系统 |
| —— | ———– | ———– |
| 设计目标 | 通用计算 | 专用功能 |
| 用户交互 | 丰富(键盘、鼠标、显示器) | 有限或没有 |
| 资源 | 丰富(大内存、大存储) | 受限 |
| 实时性 | 通常无要求 | 常有实时要求 |
| 功耗 | 不太敏感 | 敏感(常电池供电) |
| 可靠性 | 一般 | 要求高 |
| 成本 | 相对较高 | 要求低 |
| 体积 | 不太敏感 | 要求小 |
嵌入式系统示例: ┌─────────────────────────────────────────────────┐ │ 汽车系统 │ │ ┌─────────────┐ ┌─────────────┐ │ │ │ 发动机控制 │ │ ABS控制器 │ │ │ │ (ECU) │ │ (嵌入式) │ │ │ └─────────────┘ └─────────────┘ │ │ ┌─────────────┐ ┌─────────────┐ │ │ │ 导航系统 │ │ 娱乐系统 │ │ │ │ (嵌入式) │ │ (嵌入式) │ │ │ └─────────────┘ └─────────────┘ │ └─────────────────────────────────────────────────┘ 一辆现代汽车可能包含50-100个嵌入式系统
主要特点:
实时性要求:
实时系统响应时间示例: 应用 响应时间要求 ──────────────────────────────── 汽车安全气囊 < 10ms 飞机飞行控制 < 1ms 工业机器人 < 1ms 音频播放 < 100ms(可容忍偶尔延迟) 视频播放 < 50ms(可容忍偶尔延迟)
嵌入式系统组成层次: ┌─────────────────────────────────────────┐ │ 应用层 │ │ 用户界面、业务逻辑 │ ├─────────────────────────────────────────┤ │ 软件层 │ │ 应用程序、中间件、操作系统 │ ├─────────────────────────────────────────┤ │ 硬件抽象层(BSP) │ │ 板级支持包、驱动程序 │ ├─────────────────────────────────────────┤ │ 硬件层 │ │ ┌─────────┐ ┌─────────┐ │ │ │ 处理器 │ │ 存储器 │ │ │ │ (MCU/MPU│ │(RAM/ROM/│ │ │ │ /DSP) │ │ Flash) │ │ │ └─────────┘ └─────────┘ │ │ ┌─────────┐ ┌─────────┐ │ │ │ 输入设备│ │ 输出设备│ │ │ │传感器/ │ │执行器/ │ │ │ │按键 │ │显示器 │ │ │ └─────────┘ └─────────┘ │ └─────────────────────────────────────────┘
嵌入式处理器:系统的核心,执行程序指令 存储器:存储程序和数据(RAM、ROM、Flash) 输入设备:传感器、按键、触摸屏等 输出设备:显示器、执行器、蜂鸣器等 通信接口:串口、网口、CAN总线、无线等
应用领域:
微控制器(MCU - Microcontroller Unit):
微处理器(MPU - Microprocessor Unit):
数字信号处理器(DSP - Digital Signal Processor):
可编程逻辑器件(FPGA - Field Programmable Gate Array):
嵌入式处理器类型对比: 特性 MCU MPU DSP FPGA ──────────────────────────────────────────────────────── 复杂度 低 高 中 很高 成本 低 高 中 高 功耗 极低 较高 中 高 开发难度 低 中 中 高 运算能力 低 高 很高 很高 灵活性 低 中 低 很高 操作系统 无/简单 完整 无/简单 无 典型应用 传感器 智能手机 音频处理 加速计算
ARM架构是目前最流行的嵌入式处理器架构,占据嵌入式市场绝大部分份额。
ARM Cortex系列:
ARM Cortex系列分类: ┌─────────────────────────────────────────────────┐ │ ARM Cortex系列 │ ├─────────────────────────────────────────────────┤ │ │ │ Cortex-M系列(微控制器) │ │ ├─ M0/M0+:极低功耗,基础功能 │ │ ├─ M3:主流微控制器 │ │ ├─ M4:带FPU和DSP指令 │ │ ├─ M7:高性能微控制器 │ │ └─ M33:带TrustZone安全 │ │ 应用:传感器、可穿戴、工业控制 │ │ │ │ Cortex-R系列(实时处理器) │ │ ├─ R4/R5:硬实时 │ │ └─ R8:高性能实时 │ │ 应用:汽车ECU、硬盘控制器、网络设备 │ │ │ │ Cortex-A系列(应用处理器) │ │ ├─ A35:高能效 │ │ ├─ A53:主流64位 │ │ ├─ A55:高能效64位 │ │ ├─ A72/A73/A75:高性能 │ │ ├─ A76/A77/A78:高性能 │ │ └─ X1/X2:高性能大核 │ │ 应用:智能手机、平板、嵌入式Linux系统 │ │ │ └─────────────────────────────────────────────────┘
ARM Cortex-M系列对比:
| 特性 | M0 | M0+ | M3 | M4 | M7 |
| —— | —– | —– | —– | —– | —– |
| 架构 | ARMv6-M | ARMv6-M | ARMv7-M | ARMv7E-M | ARMv7E-M |
| 流水线 | 3级 | 2级 | 3级 | 3级 | 6级超标量 |
| DMIPS/MHz | 0.9 | 0.9 | 1.25 | 1.25 | 2.14 |
| 浮点单元 | 无 | 无 | 无 | 单精度 | 双精度 |
| DSP指令 | 无 | 无 | 部分 | 有 | 有 |
| 功耗 | 极低 | 极低 | 低 | 中 | 较高 |
| 应用 | 简单传感器 | 传感器 | 通用控制 | 音频 | 图形 |
ARM特点:
STM32(意法半导体):
ESP32(乐鑫):
树莓派(Raspberry Pi):
STM32系列分类: ┌─────────────────────────────────────┐ │ STM32系列 │ ├─────────────────────────────────────┤ │ 主流系列 │ │ ├─ F0:Cortex-M0,入门级 │ │ ├─ F1:Cortex-M3,经典系列 │ │ ├─ F4:Cortex-M4,高性能 │ │ └─ F7:Cortex-M7,超高性能 │ │ │ │ 低功耗系列 │ │ ├─ L0:Cortex-M0+,超低功耗 │ │ ├─ L1:Cortex-M3,低功耗 │ │ └─ L4/L4+:Cortex-M4/M4+,超低功耗 │ │ │ │ 无线系列 │ │ └─ WB:双核(Cortex-M4+M0+),蓝牙 │ │ │ └─────────────────────────────────────┘
实时操作系统(RTOS):能在确定的时间内完成系统功能和对外部异步事件作出响应的操作系统。
实时性指标:
硬实时 vs 软实时:
| 特性 | 硬实时 | 软实时 |
| —— | ——– | ——– |
| 截止时间要求 | 必须满足 | 尽量满足 |
| 错过截止时间的后果 | 系统失效/危险 | 性能下降 |
| 确定性 | 高度确定性 | 统计性满足 |
| 典型应用 | 飞控、汽车安全系统 | 多媒体、游戏 |
RTOS特点:
调度算法:
抢占式调度示例:
时间 →
任务高 ├──────────────────────────
│ ↑抢占 ↑抢占
任务低 ├────────┘────────────┘────
│
│←── 低优先级执行 ──→
被高优先级打断
FreeRTOS:
μC/OS(Micrium OS):
VxWorks:
RT-Linux(PREEMPT_RT):
Zephyr:
嵌入式Linux:
鸿蒙(HarmonyOS):
嵌入式操作系统对比: 操作系统 内核大小 实时性 许可证 典型应用 ──────────────────────────────────────────────────────────── FreeRTOS 4-9KB 软实时 MIT 通用嵌入式 μC/OS 6-24KB 软/硬实时 商业 工业设备 VxWorks 较大 硬实时 商业 航空航天 RT-Linux 较大 硬实时 GPL 工业控制 Zephyr 8-15KB 软实时 Apache 2.0 IoT 嵌入式Linux 较大 软实时 GPL 智能终端 鸿蒙 中等 软/硬实时 开源 IoT、手机
嵌入式系统开发流程:
需求分析 → 系统设计 → 硬件设计 → 软件设计 → 系统集成 → 测试调试 → 生产维护
│ │ │ │ │ │
└──────────┴──────────┴──────────┴──────────┴──────────┘
各阶段工作内容:
需求分析:功能需求、性能需求、成本约束、时间要求
系统设计:架构设计、软硬件划分、技术选型
硬件设计:原理图设计、PCB设计、元器件选型
软件设计:架构设计、模块划分、接口定义
系统集成:软硬件联合调试
测试调试:功能测试、性能测试、可靠性测试
生产维护:量产、固件更新、故障维护
开发工具链:
交叉开发:在PC(宿主机)上开发,在目标板(目标机)上运行。
交叉开发环境:
┌─────────────────────────────────────────────────┐
│ 宿主机(PC) │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ IDE │ │ 交叉编译器│ │ 调试器 │ │
│ │ (Keil/ │ │(arm-gcc)│ │ (GDB) │ │
│ │ VS Code)│ └────┬────┘ └────┬────┘ │
│ └────┬────┘ │ │ │
│ └─────────────┴────────────┘ │
│ │ │
│ ┌────┴────┐ │
│ │ 可执行文件 │ │
│ └────┬────┘ │
└─────────────────────┼───────────────────────────┘
│ 下载/调试
┌───────┴───────┐
│ JTAG / 串口 │
│ / 网络 │
└───────┬───────┘
│
┌─────────────────────┼───────────────────────────┐
│ 目标板 │
│ ┌──────┴──────┐ │
│ │ 嵌入式处理器 │ │
│ │ (目标机) │ │
│ └─────────────┘ │
│ │ │
│ ┌──────┴──────┐ │
│ │ 外围设备 │ │
│ └─────────────┘ │
└─────────────────────────────────────────────────┘
交叉编译:
调试方法:
JTAG接口引脚: TDI (Test Data In) ───── 数据输入 TDO (Test Data Out) ───── 数据输出 TMS (Test Mode Select) ───── 模式选择 TCK (Test Clock) ───── 时钟 TRST (Test Reset) ───── 复位(可选) GND ───── 地
固件烧录方式:
物联网(IoT,Internet of Things):通过各种信息传感设备,按约定的协议,把任何物品与互联网相连接,进行信息交换和通信,以实现智能化识别、定位、跟踪、监控和管理的一种网络。
物联网的本质:
物联网三层架构: ┌─────────────────────────────────────────────────┐ │ 应用层 │ │ 智慧城市、智能家居、工业4.0、智慧医疗 │ │ 数据存储、分析、可视化、业务应用 │ ├─────────────────────────────────────────────────┤ │ 网络层 │ │ 互联网、移动通信网(4G/5G)、卫星网 │ │ Wi-Fi、蓝牙、ZigBee、LoRa、NB-IoT │ ├─────────────────────────────────────────────────┤ │ 感知层 │ │ 传感器(温度、湿度、压力、光照等) │ │ RFID、摄像头、GPS、二维码 │ │ 嵌入式系统、微控制器 │ └─────────────────────────────────────────────────┘
物联网的特点:
短距离通信:
| 技术 | 速率 | 距离 | 功耗 | 应用 |
| —— | —— | —— | —— | —— |
| Wi-Fi | 高(Mbps-Gbps) | 100m | 高 | 智能家居、监控 |
| 蓝牙(BLE) | 中(1-2Mbps) | 10-100m | 低 | 可穿戴、传感器 |
| ZigBee | 低(250kbps) | 10-100m | 极低 | 工业控制、智能家居 |
| NFC | 低(424kbps) | <10cm | 极低 | 支付、门禁 |
广域网通信:
| 技术 | 特点 | 应用 |
| —— | —— | —— |
| LoRa | 远距离(数km)、低功耗、非授权频段 | 农业、环境监测 |
| NB-IoT | 窄带物联网,蜂窝网络,深度覆盖 | 智能表计、智慧城市 |
| 4G/5G | 高速、低延迟、大容量 | 车联网、视频监控 |
| SigFox | 超窄带,极低功耗 | 简单传感器 |
物联网协议栈: 应用层:MQTT、CoAP、HTTP 传输层:TCP、UDP 网络层:IPv6、6LoWPAN、RPL 链路层:Wi-Fi、蓝牙、ZigBee、LoRa 物理层:各种射频技术
MQTT协议:
智能家居系统架构:
┌─────────────────────────────────────────────────┐
│ 云平台/手机APP │
│ (远程控制、数据分析) │
└────────────────────┬────────────────────────────┘
│ Wi-Fi/4G
┌────────────────────┴────────────────────────────┐
│ 家庭网关 │
│ (协议转换、本地控制) │
└──────┬──────┬──────┬──────┬─────────────────────┘
│ │ │ │
┌──┴──┐ ┌─┴─┐ ┌──┴──┐ ┌─┴─┐
│智能灯│ │空调│ │门锁 │ │窗帘│
│ZigBee│ │Wi-Fi│ │蓝牙│ │ZigBee│
└─────┘ └───┘ └─────┘ └───┘
传感器:温度、湿度、光照、人体感应
执行器:灯光、空调、窗帘、门锁
通信:ZigBee、Wi-Fi、蓝牙
系统组成:
汽车电子系统: ┌─────────────────────────────────────────────────┐ │ 车载网络(CAN总线) │ ├─────────────────────────────────────────────────┤ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │ │ 发动机 │ │ 变速箱 │ │ ABS │ │ │ │控制单元 │ │控制单元 │ │控制单元 │ │ │ │ (ECU) │ │ (TCU) │ │ │ │ │ └─────────┘ └─────────┘ └─────────┘ │ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │ │ 气囊 │ │ 仪表 │ │ 导航 │ │ │ │控制单元 │ │ 板 │ │ 系统 │ │ │ └─────────┘ └─────────┘ └─────────┘ │ └─────────────────────────────────────────────────┘
关键系统:
汽车电子特点:
1. 嵌入式系统的特点不包括( ) A. 专用性 B. 通用性 C. 实时性 D. 资源受限
2. 以下属于微控制器的是( ) A. Intel Core i7 B. STM32 C. NVIDIA GPU D. FPGA
3. FreeRTOS是一种( ) A. 通用操作系统 B. 实时操作系统 C. 分时操作系统 D. 批处理系统
4. 物联网的三层架构不包括( ) A. 感知层 B. 网络层 C. 应用层 D. 传输层
5. 嵌入式开发中的"交叉编译"是指( ) A. 在目标机上编译 B. 在宿主机上编译生成目标机代码 C. 同时编译多个文件 D. 编译并链接
6. ARM Cortex-M系列主要用于( ) A. 高性能服务器 B. 微控制器 C. 图形处理 D. 网络通信
7. 硬实时系统的要求是( ) A. 尽量满足截止时间 B. 必须满足截止时间 C. 没有截止时间要求 D. 偶尔错过截止时间可以
8. 以下哪个通信技术适合低功耗广域物联网( ) A. Wi-Fi B. 蓝牙 C. LoRa D. USB
9. JTAG调试接口不包括( ) A. TDI B. TDO C. USB D. TCK
10. 以下哪个不是嵌入式处理器的特点( ) A. 低功耗 B. 高可靠性 C. 高性能(单线程) D. 低成本
1. 嵌入式系统的特点包括_______、_______、_______和_______。
2. 常见的嵌入式处理器类型有_______、_______、_______和_______。
3. ARM Cortex系列分为_______、_______和_______三个系列。
4. 物联网的三层架构是_______、_______和_______。
5. RTOS的两个重要指标是_______和_______。
6. 嵌入式开发中,_______用于硬件级调试,_______用于打印调试信息。
7. MQTT是一种_______协议,采用_______模式。
8. 物联网短距离通信技术包括_______、_______和_______。
9. 硬实时系统错过截止时间会导致_______。
10. 交叉开发中,程序在_______上编译,在_______上运行。
1. 简述嵌入式系统与通用计算机系统的区别。
2. 什么是实时操作系统?硬实时和软实时有什么区别?
3. 简述物联网的概念和三层架构。
4. 简述交叉开发的概念和主要步骤。
5. 比较MCU、MPU、DSP和FPGA的特点。
6. 简述嵌入式系统开发的一般流程。
1. 设计一个基于物联网的智能温湿度监测系统,包括: - 系统架构 - 硬件选型(处理器、传感器、通信模块) - 软件设计思路
参考答案:
一、选择题:1.B 2.B 3.B 4.D 5.B 6.B 7.B 8.C 9.C 10.C
二、填空题:
1. 专用性、实时性、资源受限、可靠性高(或低功耗、小体积) 2. MCU、MPU、DSP、FPGA 3. Cortex-M、Cortex-R、Cortex-A 4. 感知层、网络层、应用层 5. 响应时间、截止时间(或抖动) 6. JTAG、串口 7. 物联网通信、发布/订阅 8. Wi-Fi、蓝牙、ZigBee(或NFC) 9. 系统失效/严重后果 10. 宿主机、目标机
三、简答题:
1. 嵌入式系统专用性强、资源受限、实时性要求高、低功耗、高可靠性;通用计算机通用性强、资源丰富、通常无实时要求、功耗不敏感、可靠性一般。
2. 实时操作系统能在确定时间内响应事件和完成任务。硬实时必须满足截止时间,错过会导致严重后果;软实时尽量满足截止时间,偶尔错过可接受。
3. 物联网是将物品通过互联网连接进行信息交换的网络。三层架构:感知层(传感器、RFID等采集数据)、网络层(传输数据)、应用层(数据分析和应用)。
4. 交叉开发是在PC(宿主机)上开发,在目标板上运行。步骤:编写代码、交叉编译、下载到目标板、调试运行。
5. MCU集成度高、成本低、适合简单控制;MPU性能强、运行操作系统、适合复杂应用;DSP擅长数字信号处理;FPGA可编程、并行能力强、适合定制加速。
6. 需求分析→系统设计→硬件设计→软件设计→系统集成→测试调试→生产维护。
四、设计题:
1. 参考答案要点: - 架构:传感器节点→网关→云平台→手机APP - 硬件:ESP32(MCU+Wi-Fi)、DHT11温湿度传感器 - 软件:FreeRTOS、MQTT协议、数据库存储、Web可视化