找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

1686

积分

0

好友

220

主题
发表于 2026-2-13 02:51:34 | 查看: 30| 回复: 0

我之前学习嵌入式时,常常被一个简单的问题搞糊涂。

“嵌入”到底是什么意思?要把什么东西“嵌”进去?又是“嵌”到哪里去?每次想到这些,脑袋就一团乱,感觉又要面对一个全新的复杂概念。

戴着眼镜的粉色毛绒猪在看书

但深入了解后才发现,它的核心思想其实非常直白:就是“电脑 + 硬件设备”

更准确地说,是将电脑的计算能力,“嵌入”到特定的硬件设备之中。

那么,这么做的目的是什么呢?

  1. 驱动硬件
  2. 为硬件赋能

想想在没有计算机的年代,我们如何驱动车辆、操作工具?无非依靠“人力+机械”,效率低下且模式僵化。即便是最早的计算机 ENIAC 也是如此,它需要通过物理布线的方式来“搭建”程序。

例如,要实现一个简单的计算:8 × 3 - 1,就需要像下图这样,手动连接各种部件,组成计算通路。

8乘3减1的计算流程图

(上图仅为示意图)

实际的操作远比示意图复杂,看看下面这张早期计算机的布线照片就知道了。

早期计算机ENIAC的物理布线操作

直到冯·诺依曼提出了“存储程序”的概念,情况才发生根本改变。其核心思想是:将程序和数据存放在存储器中,让计算机自动读取执行,无需人工进行物理接线

这一革新极大地简化了操作复杂性,也为“用程序操控硬件”铺平了道路。毕竟,你不可能为了控制一台洗衣机,而在旁边配上一台房间大小的电脑。

卡通图:洗衣机连接着复杂的电子机柜

因此,嵌入式技术的发展脉络,本质上就是一部“如何更便利、更智能地操控硬件设备”的进化史。下面,我们来快速回顾一下它的几个关键发展阶段。

嵌入式技术的五个发展阶段

1. 单片机阶段 (SCM)

虽然在概念上,嵌入式是把电脑嵌入设备,但在最早的“单片机”阶段,其实是没有操作系统的。开发者通常用汇编语言编写一个“超级循环”程序,把所有功能都塞进一个永不停止的大循环里。

其逻辑类似于下面这段伪代码:

嵌入式超级循环伪代码示例

程序通过烧录的方式写入硬件电路。虽然此时已经能通过 if 条件判断实现一些复杂逻辑,但所有功能必须严格按照固定顺序执行。假设正在运行功能A,你想切换到功能D,也必须等中间的B和C功能执行完毕。

2. 微控制器阶段 (MCU)

到了这个阶段,设备已经可以运行简单的实时操作系统 (RTOS)。这意味着引入了“任务”和“调度”的概念,功能不再全部挤在一起。

核心进步是有了任务并发优先级。任务可以“插队”了。当正在运行低优先级的功能A时,如果有更高优先级的功能D需要执行,系统可以立即响应,无需等待B和C完成。你可以理解为,系统里开始有了一个“管理者”。

3. 片上系统阶段 (SoC)

此时,设备已经能够运行完整的操作系统(如嵌入式 Linux)。这标志着系统开始拥有现代操作系统的核心特征:内存管理、进程、文件系统

任务以独立进程的形式运行,彼此内存空间隔离,互不影响。同时,进程之间又能通过操作系统提供的机制(如管道、信号、共享内存)进行通信。这时的嵌入式设备已经相当于一台微型电脑,可以安装并运行多个独立的程序,类似于早期的智能手机。

4. 以互联网为基础的嵌入式

设备能够接入网络了!它不再是一个信息孤岛,而是成为了互联网的一个节点。

这使得设备互联与云端服务的远程交互成为可能。这一阶段最典型的应用就是物联网 (IoT),例如我们常见的智能机顶盒、POS终端等设备。

5. 智能化、云技术下的嵌入式

设备从一个被动接受指令的控制器,演变为能够感知物理世界、并做出智能决策的“智能体”。

这相当于设备具备了运行AI模型的能力。想象一下,家里的空调能够综合主人习惯、室内外温湿度等数据,自主决定开关、调节温度和工作模式,而不仅仅是提供固定的几种预设模式。

当然,实际的技术演进远比这五个阶段复杂。这里提炼的是我认为最具本质区别的特征。如果从“控制”这个核心功能来总结,这五个阶段可以看作是:

  • 过程控制 (单片机)
  • 智能控制 (MCU)
  • 多元化智能控制 (SoC)
  • 远程控制 (联网嵌入式)
  • 自主控制 (智能化嵌入式)

仔细想想,这个演进过程是不是有点像软件工程的成熟度模型(CMMI)?都是从混乱、固定、到可管理、可定义,最终走向优化和自主。

那么,现在我们算是从“一无所知”过渡到“有所了解”了。给不同功能的硬件设备嵌入计算能力,所以嵌入式系统本质上就是一个为完成特定功能而设计的计算机

嵌入式 vs. 通用计算机

既然有“嵌入式”,那有没有“非嵌入式”呢?我思考了一会儿。

所谓嵌入式,本意是把计算机系统嵌入到硬件设备中。那么“非嵌入式”,不就是不嵌入到其他设备里的计算机吗?那就是我们日常使用的通用计算机(比如个人电脑、服务器)。

但它们的区别远不止“是否嵌入”这个动作。嵌入式设备面临极其严苛的资源约束:成本、功耗、体积、实时性要求。通用计算机系统功能全面但庞大,并不适合直接塞进一个洗衣机或手表里。因此,可以理解嵌入式系统是一个在资源上高度优化、甚至“阉割”过的计算机系统。

卡通图:资源受限的嵌入式系统概念示意图

嵌入式系统的核心组成

一个典型的嵌入式系统大致由五个部分构成:

  1. 嵌入式微处理器:即CPU。与通用CPU追求高性能不同,嵌入式CPU更强调低功耗、小体积、高可靠性,必须能适应高温、严寒、震动、电磁干扰等恶劣环境。
  2. 支撑硬件:除处理器外必要的硬件组件,如存储器、总线、各类接口(网络、人机交互等),是系统运行的物理基础。
  3. 嵌入式操作系统:为上层软件提供底层服务,如任务调度、内存管理、文件系统、设备驱动等。
  4. 支撑软件:运行在操作系统之上,为应用软件提供公共服务的软件,例如数据库、文件系统、网络协议栈 TCP/IP 等。
  5. 应用软件:最终面向具体场景、完成特定任务的程序,例如智能手表里的各种App。

总结

今天,我们初步探讨了两个核心问题:

  1. 什么是嵌入式? 它是为特定功能服务的、嵌入在硬件设备中的计算机系统。
  2. 嵌入式系统由什么组成? 主要包括处理器、硬件、操作系统、支撑软件和应用软件五层。

嵌入式技术的世界远比本文所介绍的广阔和深入,但我们的目标是先建立一个顶层的、整体的认知框架。正如在 云栈社区 中常讨论的学习方法:自顶向下,先见森林,再见树木。在把握全局之后,再聚焦于各个技术细节,从而逐步构建起完善的知识体系。

(完)




上一篇:巴西法院K8s转型:从Java EE巨石应用到云原生微服务的弹性架构实践
下一篇:深度解析Claude Code的AI代理编程能力与MCP生态
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-2-23 10:24 , Processed in 0.722446 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表