一、嵌入式系统概述
大家好,我是你们的嵌入式系统讲师。今天咱们聊聊嵌入式系统到底是什么。说实话,这个问题我入行时也琢磨了很久。
嵌入式系统,说白了就是专门完成特定功能的计算机系统。它被"嵌入"到某个设备里,用户通常感觉不到它的存在。你想想看,你家的微波炉、智能手表、汽车ECU,甚至你手里的手机——里面都有嵌入式系统在默默工作。
1.1 什么是嵌入式系统
我习惯这样定义:嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。
嗯,这个定义有点长。咱们拆开来看:
- 专用性:不像PC啥都能干,嵌入式系统只干一件事。比如空调控制器只管控温。
- 可裁剪:资源有限,能省则省。我在项目中就经常砍掉不需要的外设驱动。
- 约束严格:成本、功耗、实时性,哪个都不能含糊。
核心要点:嵌入式系统 ≠ 单片机。单片机只是嵌入式系统的核心处理器之一。嵌入式系统还包括外围电路、传感器、执行器、以及运行其上的软件。
1.2 嵌入式系统的组成
嵌入式系统由两大部分组成:硬件和软件。两者缺一不可。
硬件部分
- 处理器:大脑,比如STM32、ARM Cortex-M系列
- 存储器:Flash存程序,RAM存运行数据
- 输入/输出接口:GPIO、UART、I2C、SPI等
- 外设:传感器、显示屏、电机驱动等
- 电源管理:供电和功耗控制
软件部分
- 裸机程序:没有操作系统,直接操作硬件。适合简单任务。
- 实时操作系统(RTOS):比如NuttX、FreeRTOS。管理任务调度、资源分配。
- 应用层软件:实现具体功能,比如读取温度、控制电机。
我记得刚做第一个项目时,用的是裸机。后来任务一多,裸机根本忙不过来。那时候我才意识到,RTOS不是锦上添花,而是刚需。
1.3 嵌入式系统的分类
嵌入式系统怎么分类?我一般按实时性和复杂度来分。
| 分类 | 特点 | 典型应用 | 处理器举例 |
|---|---|---|---|
| 小型嵌入式系统 | 资源极少,裸机或简单RTOS | 智能传感器、遥控器 | 8位单片机(如AVR) |
| 中型嵌入式系统 | 有一定资源,运行RTOS | 工业控制器、智能家电 | STM32F4、STM32H7 |
| 复杂嵌入式系统 | 资源丰富,运行Linux/Android | 路由器、智能音箱、车载系统 | ARM Cortex-A系列 |
咱们这门课主要聚焦中型嵌入式系统,也就是STM32 + NuttX这个组合。为什么选这个?因为它在工业界用得最广,性价比最高。
个人经验:选型时别一味追求高性能。我见过有人用STM32H7做LED灯控,纯属浪费。合适的才是最好的。
1.4 STM32系列介绍
STM32是意法半导体(ST)推出的32位ARM Cortex-M内核微控制器。它有多火?这么说吧,全球嵌入式工程师,十个里有八个用过STM32。
STM32家族很庞大,我按系列给大家捋一捋:
- STM32F0/F1:入门级,Cortex-M0/M3内核。适合简单控制,成本敏感项目。
- STM32F4:高性能,Cortex-M4内核,带FPU(浮点运算单元)。适合需要数学运算的场景。
- STM32H7:旗舰级,Cortex-M7内核,主频高达480MHz。适合复杂算法、图形处理。
- STM32L系列:低功耗,适合电池供电设备。
- STM32G系列:性价比之选,融合了F和L的优点。
咱们课程实战用的是STM32F407ZGT6。为什么选它?
- 性能足够:Cortex-M4,168MHz主频
- 外设丰富:有以太网、USB、CAN、多个定时器
- 资料最多:网上随便一搜,教程一大把
- NuttX支持完善:官方BSP直接可用
避坑指南:我曾经在选型时只看主频,忽略了外设数量。结果项目做到一半发现UART口不够用,只能换芯片重画PCB。教训深刻啊!选型时一定要把外设需求列清楚。
下面这张图展示了嵌入式系统的核心知识体系,大家可以对照着理解:
这张图把嵌入式系统的核心脉络理清楚了。从定义出发,到组成、分类,再到咱们要用的STM32。后面的课程,我们会一步步深入每个环节。
好了,第一章就到这里。嵌入式系统是个大话题,但别怕,咱们一步一步来。下一章我会带大家搭建开发环境,到时候你们就能亲手编译第一个NuttX内核了。
公众号:蓝海资料掘金营,微信deep3321