本文主要内容来自 SpriCoder的博客,更换了更清晰的图片并对原文的疏漏做了补充和修正。
计算机发展阶段
从长远来看,PC 机和计算机工作站将衰落,计算机将要小型化,并且变得无处不在 —— “无处不在的计算机”
嵌入式系统
随着计算机技术、网络技术和微电子技术的快速发展,人们进入了后 PC 时代,后 PC 时代是一个嵌入式系统(Embedded System)的网络时代,嵌入式技术将主宰后 PC 时代。
“嵌入式系统”实际上是“嵌入式计算机系统”的简称。
以下是对嵌入式系统的不同定义
IEEE 的定义
Devices used to control, monitor, or assist the operation of equipment, machinery or plants.
嵌入式系统是用于控制、监视或者辅助操作机器和设备的装置。
此定义时从应用上考虑的,嵌入式系统是软件和硬件的综合体,还可以涵盖机电等附属装置。
国内的定义
嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁减,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。
嵌入式设备是用于特定的设备
计算机技术为基础,必须要有计算
软硬件可裁剪:印证了专用设备的特点,将不需要的设备裁剪掉
嵌入式系统就是一个具有特定功能或用途的隐藏在某种设备中的计算机软硬件集合体,没有固定的特征形状。
嵌入的可以不是设备,而是生产流程,这样的系统也是嵌入式系统
嵌入式系统三要素
- 嵌入性:嵌入到对象体系中,有对象环境要求
- 专用型:软、硬件按对象要求设计、裁剪
- 计算机:实现对象的智能化功能
其他的定义
嵌入封闭产品中的信息处理系统。
看不见的计算机,一般不能被用户编程, 它有一些专用的 I/O 设备, 对用户的接口是应用专用的。
An embedded system is a computer system contained within some larger device or product with the intent purpose of providing monitoring and control services to that device.
嵌入式系统是包含在某些较大的设备或产品中的计算机系统,其目的是为该设备提供监视和控制服务。
Any sort of device which includes a programmable computer but itself is not intended to be a general-purpose computer.
包括可编程计算机在内但本身不打算用作通用计算机的任何设备。
包含有计算机,但又不是通用计算机的计算机应用系统。
嵌入式系统示例
无线感知网络 Wireless sensor network
无线感知网络,是由许多在空间中分布的自动装置组成的一种无线通信计算机网络。
这些装置使用传感器器协作地监控不同位置的物理或环境状况(比如温度、声音、振动、压力、运动或污染物)。
无线传感器网络的发展最初起源于战场监测等军事应用。而现今无线传感器网络被应用于很多民用领域,如环境与生态监测、健康监护、家居自动化以及交通控制等。
特点:低功耗、低成本
网络物理系统 CPS
A cyber-physical system (CPS) is a mechanism controlled or monitored by computer-based algorithms, tightly integrated with the internet and its users.
网络物理系统(CPS,Cyber-physical System)是一种基于计算机的算法控制或监视的机制,与互联网及其用户紧密集成。
- 计算进程与物理进程的集成
- 更多地强调嵌入式系统与物理学的深度结合
- CPS=ES+Physics
- 人机物融合系统
- 深度融合了各类信息技术:传感器、嵌入式计算、云计算、网络通信、软件,使得各种信息化能力(3C:计算-Computer、通信-Communication 和控制-Control)高度协同和自治,实现生产应用系统自主、智能、动态、系统化地监视并改变物理世界的性状。
物联网 IOT
物联网 IoT 是物理设备,车辆(也称为“连接设备”和“智能设备”),建筑物以及其他嵌入电子设备,软件,传感器,执行器和网络的物品的互连网络连接性,使这些对象能够收集和交换数据。
- 互联、协同
- RFID,工业标签:用来识别和标识物体
传感器 *
- 传感器:将非电信号转换为电信号,用来感知和度量外部世界,并将其转换为计算机可度量的电信号。比如温湿度、酸碱度传感器等。
- 传感器内部有计算单元,类似电脑的 CPU
- 一定要有电源管理,包含软件和硬件两种方式,不然设备工作时间会比较短。
嵌入式系统的组成
- 嵌入式系统一般由嵌入式硬件和软件组成
- 硬件以微处理器为核心集成存储器和系统专用的输入/输出设备
- 软件包括:初始化代码及驱动、嵌入式操作系统和应用程序等,这些软件有机地结合在一起,形成系统特定的一体化软件。
- 中间件:ROS
- 执行器:电动机、马达
通用计算机:看得见的计算机
嵌入式系统无处不在
- 工控设备
- 军用电子设备
- 航天/航空
- 汽车电子
- 信息家电
- 通信
- 智能玩具
- 可穿戴
- 更多的场景,见 PPT-lecture1
嵌入式系统的发展历程
- 1960-1970:嵌入式系统的出现和兴起
- 1971-1989:嵌入式系统开始走向繁荣,软件和英舰日臻完善
- 1990-:嵌入式系统应用走向纵深
嵌入式系统的特点
- 嵌入式系统通常是形式多样、面向特定应用的
- 嵌入式系统得到多种类型的处理器和处理器体系结构的支持
- 嵌入式系统通常极其关注成本
- 嵌入式系统有实时性和可靠性的要求
- 嵌入式系统使用的操作系统一般是适应多种处理器、可剪裁、轻量型、实时可靠、可固化的嵌入式操作系统
- 嵌入式系统开发需要专门工具和特殊方法
形式多样、面向特定应用
- 一般用于特定的任务,其硬件和软件都必须高效率地设计,量体裁衣、去除冗余,而通用计算机则是一个通用的计算平台。
- 它通常都具有低能耗、体积小、集成度高等特点,能够把通用微处理器中许多由板卡完成的任务集成在芯片内部。
- 嵌入式软件是应用程序和操作系统两种软件的一体化程序。
处理器和处理器体系结构类型多
- 通用计算机采用少数的处理器类型和体系结构,而且主要掌握在少数大公司手里。
- 嵌入式系统可采用多种类型的处理器和处理器体系结构,有上千种的嵌入式微处理器和几十种嵌入式微处理器体系结构可以选择。
- 在嵌入式微处理器产业链上,IP 设计、面向应用的特定嵌入式微处理器的设计、芯片的制造已形成巨大的产业。分工协作,形成多赢模式。
关注成本
嵌入式系统通常需要注意的成本是系统成本,特别是量大的消费类数字化产品,其成本是产品竞争的关键因素之一。
嵌入式的系统成本包括:
- 一次性的开发成本:NRE(Non-Recurring Engineering)成本
- 产品成本:硬件 BOM、外壳包装和软件版税等
- 批量产品的总体成本 = NRE 成本 + 每个产品成本 * 产品总量
- 每个产品的最后成本 = 总体成本 / 产品总量 = NRE 成本 / 产品总量 + 每个产品成本
实时性和可靠性的要求
一方面大多数实时系统都是嵌入式系统。
另一方面嵌入式系统多数有实时性的要求,软件一般是固化运行或直接加载到内存中运行,具有快速启动的功能。
嵌入式系统一般要求具有出错处理和自动复位功能,特别是对于一些在极端环境下运行的嵌入式系统而言,其可靠性设计尤其重要。
在大多数嵌入式系统的软件中一般都包括一些机制,比如硬件的看门狗定时器,软件的内存保护和重启动机制。
适应多种处理器、可剪裁、轻量型、实时可靠、可固化的嵌入式操作系统
- 由于嵌入式系统应用的特点,像嵌入式微处理器一样,嵌入式操作系统也是多姿多彩的。
- 大多数商业嵌入式操作系统可同时支持不同种类的嵌入式微处理器。可根据应用的情况进行剪裁、配置。
- 嵌入式操作系统规模小,所需的资源有限如内核规模在几十 KB,能与应用软件一样固化运行。
- 一般包括一个实时内核,其调度算法一般采用基于优先级的可抢占的调度算法。
- 高可靠嵌入式操作系统:时、空、数据隔离。
开发需要专门工具和特殊方法
由于嵌入式系统资源有限,一般不具备自主开发能力,产品发布后用户通常也不能对其中的软件进行修改,必须有一套专门的开发环境。
该开发环境包括专门的开发工具(包括设计、编译、调试、测试等工具),采用交叉开发的方式进行。
嵌入式系统的分类
- 按嵌入式处理器的位数来分类
- 按应用来分类
- 按速度分类
- 按确定性来分类
- 按嵌入式系统软件复杂程度来分类
按嵌入式处理器的位数来分类
- 4 位嵌入式系统:大量应用
- 8 位嵌入式系统:大量应用
- 16 位嵌入式系统:大量应用
- 32 位嵌入式系统:正成为主流发展趋势
- 64 位嵌入式系统:高度复杂的、高速的嵌入式系统已经开始采用
按应用来分类
按速度分类
- 强实时系统,其系统响应时间在毫秒或微秒级。
- 一般实时系统,其系统响应时间在几秒的数量级上,其实时性的要求比强实时系统要差一些。
- 弱实时系统,其系统响应时间约为数十秒或更长。这种系统的响应时间可能随系统负载的轻重而变化
按确定性来分类
根据确定性的强弱,可将嵌入式系统分为硬实时、软实时系统:
- 硬实时:系统对系统响应时间有严格的要求,如果系统响应时间不能满足,就要引起系统崩溃或致命的错误。
- 软实时:系统对系统响应时间有要求,但是如果系统响应时间不能满足,不会导致系统出现致命的错误或崩溃。
按嵌入式系统软件复杂程度来分类
- 循环轮询系统
- 有限状态机系统
- 前后台系统
- 单处理器多任务系统
- 多处理器多任务系统
最近的发展趋势
- 嵌入式人工智能
- 安全
- 持续提高的计算需求和复杂度要求:机顶盒中的多媒体处理,HDTV,多核,深度学习
- 持续的网络
- 对于灵活性需求的不断提高:不断变化的标准下的上市时间
- HW-SW 共同设计
- 更高的集成度:同一芯片上有更多块
- IP 重用,基于平台的设计,NoC 与总线:用于 ASIC 或 FPGA 中的预先设计好的电路功能模块
- 设计方法的多样性,依赖平台,缺乏标准
- 云计算,边缘计算(edge computing)
- TTM:跳票
嵌入式人工智能
- 嵌入式人工智能于各行业垂直领域应用具有巨大的潜力
- 嵌入式人工智能取代屏幕成为新 UI / UX 接口
- 嵌入式人工智能芯片
- 嵌入式人工智能自主学习是终极目标
嵌入式系统安全
- 数据存储不安全
- 服务端控制措施部署不当
- 传输过程中没有加密
- 身份认证措施不当
- 密钥保护措施不当
- 会话处理不当
- 敏感数据泄漏
片上系统 System-on-Chip(SoC)
- SoC 指将电子系统的所有组件集成到单个芯片中(促使这种集成的动机是什么):
- 微处理器,微控制器,DSP
- ASIC's,FPGA's
- 内存,IO 设备,A / D 和 D / C 转换器
- 模拟,混合信号,RF 模块,稳压器
- 通信基础设施:基于总线的片上网络(NoC)。
- 系统级设计(自动化)以及同时优化众多设计指标是关键挑战。
- SoC 是一个复杂的嵌入式系统。
互联的价值
- 嵌入式设备的互联性可提高对各种服务、内容和信息的访问能力
- 为动态修改嵌入式软件提供了可能,如:
- 修改系统代码或“固件”
- 增添新的应用软件模块
- 增强了系统和设备的可管理性