【小黑嵌入式系统第一课】嵌入式系统的概述(一)
文章目录
- 一、嵌入式系统基本概念
- 计算机发展的三大阶段
- CPU——计算机的核心
- 什么是嵌入式系统
- 嵌入式系统的分类
- 二、嵌入式系统的特点
- 三、嵌入式系统发展
- 无操作系统阶段
- 简单操作系统阶段
- 实时操作系统阶段
- 面向Internet阶段
- 四、嵌入式系统的应用
- 工业控制 工业设备
- 通信设备
- 信息家电
- 未来嵌入式系统的发展趋势
一、嵌入式系统基本概念
计算机发展的三大阶段
- 第一阶段:始于五十年代的由IBM, Burroughs, Honeywell等公司率先研制的大型机。
- 第二阶段:始于七十年代的个人计算机。
- 第三阶段:计算机正迈入下一个充满机遇的阶段——“后PC时代”或“无处不在的计算机”阶段

计算机不会成为科幻电影中的那种贪婪的怪物, 而是将变得小巧玲珑, 无处不在。他们藏身在任何地方, 又消失在所有地方, 功能强大, 却又无影无踪。人们将这种思想称为: “无所不在的计算机”。
CPU——计算机的核心
Jim Turley在2000嵌入式系统国际会议上曾说过:
“提到CPU我们很直觉地会联想到PC,但事实上CPU的应用领域、范围及采用的数量都远远超过PC的范围。以数量来看,x86的CPU,包含Intel及AMD公司所生产的,加起来也抵不过其它种类CPU总消耗量的0.1%(其中应用数量最大的是在嵌入式系统)。数量之大说明了嵌入式系统应用的范围之广。这也意味没有什么所谓典型的嵌入式系统应用。嵌入式CPU还包括微控制器及信号处理器等等”。
什么是嵌入式系统
简单来说:嵌入式系统就是嵌入到对象体内的专用计算机系统
三要素:嵌入、专用、计算机
- 嵌入性:嵌入到对象体系中,有对象环境要求
- 专用性:软、硬件按对象要求配置
- 计算机:实现对象的数据处理及智能化功能
广义来说:
一个嵌入式系统就是一个具有特定功能或用途的计算机软硬件集合体。
即以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统 。
嵌入式系统发展的最高形式——片上系统(SOC)
嵌入式系统的分类
按表现形式分(硬件范畴) :
▲芯片级(MCU、SoC)
▲板级(单片机、模块)
▲设备级(工控机)
按处理器位数分(硬件范畴) :
▲8位嵌入式系统
▲16位嵌入式系统
▲32位嵌入式系统
▲64位嵌入式系统
8位和16位嵌入式系统目前已经大量应用,32位嵌入式系统正成为主流发展趋势,而64位嵌入式系统是高度复杂的、高速的嵌入式系统已经开始采用。
按确定性要求分(软件范畴为主):
▲硬实时系统:对系统响应时间有严格的要求,如果系统响应时间不能满足,就会引起系统崩溃或致命的错误。 (工业和军工系统)
▲软实时系统:对系统响应时间有要求,但是如果系统响应时间不能满足,不会导致系统出现致命的错误或崩溃。 (消费类产品)
按处理速度分:
▲强实时系统:其系统响应时间在毫秒或微秒级。
▲一般实时系统:其系统响应时间在秒级,其实时性的要求比强实时系统要差一些。
▲弱实时系统:其系统响应时间更长。这种系统的响应时间可能随系统负荷的轻重而变化。
按嵌入式系统软件复杂程度分 :
▲循环轮询系统
▲前后台系统
▲有限状态机系统
▲单处理器多任务系统
▲多处理器多任务系统
按应用分:

二、嵌入式系统的特点
由于嵌入式系统是应用于特定环境下,针对特定用途来设计的系统,所以不同于通用计算机系统。它的硬件和软件都必须高效率地设计,“量体裁衣”、去除冗余,力争在较少的资源上达成所需的性能。
它与通用的计算机系统相比具有以下显著特点:
(1). 专用性强
嵌入式系统的个性化很强,其中的软件系统和硬件的结合非常紧密,一般要针对硬件进行系统的移植。即使在同一品牌、同一系列的产品中也需要根据系统的硬件的变化和增减不断进行修改。而针对不同的任务,往往需要对系统进行较大更改。
(2). 系统精简
嵌入式系统通常“嵌入”到对象的体系中,其软硬件系统都必须高效率地设计,在保证稳定、安全、可靠的基础上量体裁衣、去除冗余,确保系统具有低功耗、小体积、高集成度和低成本等优势,力争用较少的软硬件资源实现较高性能。
(3). 高实时性
高实时性是嵌入式软件的常见要求,一些处理器的硬件体系结构也会针对高实时性进行有针对性的设计。
(4). 高可靠性
嵌入式系统一般要求具有出错处理和自动复位功能,特别是对于一些在极端环境下运行的嵌入式系统而言,其可靠性设计尤其重要。
在大多数嵌入式系统中一般都包括一些机制,如电源监控、看门狗定时器、内存保护和重启动机制等。
(5). 操作系统内核小、可裁剪、实时可靠、可固化
由于嵌入式系统一般是应用于小型电子装置,系统资源相对有限,所以内核较之传统的操作系统要小很多。如Enea公司的OSE分布式系统,内核只有5kB,而Windows的内核则要大很多。
(6). 开发工具和开发环境的专用性
嵌入式系统本身一般不具备自主开发能力,必须有一套开发工具和环境才能进行开发,这些工具和环境一般是基于通用计算机上的软硬件设备和各种仪器设备。开发时往往有宿主机和目标机的概念,宿主机用于程序的开发,目标机作为最后的执行机,开发时需要交叉结合进行。
(7). 关注成本
嵌入式系统通常需要注意的成本是系统成本,特别是量大的消费类数字化产品,其成本是产品竞争的关键因素之一。
嵌入式系统的成本包括:
- 一次性的开发成本 NRE(Non-Recurring Engineering)成本
- 产品成本:硬件BOM、外壳包装和软件版税等
- 批量产品的总体成本=NRE成本+每个产品成本*产品总量
- 每个产品的最后成本=总体成本/产品总量=NRE成本/产品总量+每个产品成本
三、嵌入式系统发展

无操作系统阶段
嵌入式系统最初的应用是基于单片机的,大多以可编程控制器的形式出现,具有监测、伺服、设备指示等功能,通常用于各类工业控制和飞机、导弹等武器装备中,一般没有操作系统的支持,只能通过汇编语言对系统资源直接控制,运行结束后再清除内存。这些装置虽然已经初步具备了嵌入式的应用特点,但仅仅只是使用8位的CPU芯片来执行一些单线程的程序,因此严格地说还谈不上"系统"的概念 。
这一阶段嵌入式系统的主要特点是:系统结构和功能相对单一,处理效率较低,几乎没有用户接口。由于这种嵌入式系统使用简便、价格低廉,因而在工业控制等领域得到了非常广泛的应用。但却无法满足现今对执行效率、存储容量等都有较高要求的信息家电等场合的需要。
简单操作系统阶段
20世纪80年代,随着微电子工艺水平的提高,IC制造商开始把嵌入式应用中所需要的CPU、I/O接口、串行接口以及RAM、ROM等部件统统集成到一片VLSI中,制造出面向I/O设计的微处理器,并一举成为嵌入式系统领域中异军突起的新秀。与此同时,嵌入式系统的程序员也开始基于一些简单的“操作系统”开发嵌入式应用软件,大大缩短了开发周期、提高了开发效率。
这一阶段嵌入式系统的主要特点是:出现了大量高可靠、低功耗的嵌入式处理器。各种简单的嵌入式操作系统开始出现并得到迅速发展,用于控制系统负载以及监控应用程序的运行,初步具备了一定的兼容性和扩展性,内核精巧且效率高。
实时操作系统阶段
20世纪90年代,在分布式控制、柔性制造、数字化通信和信息家电等巨大需求的牵引下,嵌入式系统进一步飞速发展,而面向实时信号处理算法的DSP产品则向着高速度、高精度、低功耗的方向发展。随着硬件实时性要求的提高,嵌入式系统的软件规模也不断扩大,逐渐形成了实时多任务操作系统(RTOS),并开始成为嵌入式系统的主流。
这一阶段嵌入式系统的主要特点是:操作系统的实时性得到了很大的改善,具有高度的模块化和可扩展性,能够运行在各种不同类型的微处理器上。此时的嵌入式操作系统已经具备了文件和目录管理、设备管理、多任务、网络、图形用户界面(GUI)等功能,并提供了大量的应用程序接口(API),从而使得应用程序的开发变得更加简单。
面向Internet阶段
21世纪无疑是一个网络的时代,随着Internet的进一步发展,以及Internet技术与信息家电、工业扩展技术等的结合日益紧密,嵌入式设备与Internet的结合是嵌入式技术的真正未来。
信息时代和数字时代的到来,为嵌入式系统的发展带来了巨大的机遇,同时也对嵌入式系统厂商提出了新的挑战。目前,嵌入式技术与Internet技术的结合正在推动着嵌入式技术的飞速发展,嵌入式系统的研究和应用产生了如下新的显著变化:
- (1). 新的微处理器层出不穷,嵌入式操作系统自身结构的设计更加便于移植,能够在短时间内支持更多的微处理器;
- (2). 嵌入式系统的开发成了一项系统工程,开发商不仅要提供嵌入式软硬件系统本身,同时还要提供强大的硬件开发工具和软件支持包;
- (3). 通用计算机上使用的新技术、新概念开始逐步移植到嵌入式系统中,如嵌入式数据库、移动代理、实时CORBA等,嵌入式软件平台得到进一步完善;
- (4). 各类嵌入式Linux操作系统迅速发展,由于具有源代码开放、系统内核小、执行效率高、网络结构完整等特点,很适合信息家电等嵌入式系统的需要;
- (5). 网络化、信息化的要求随着Internet技术的成熟和宽带的提高而日益突出,以往单一功能的设备如电话、手机、冰箱、微波炉等功能不再单一,结构变得更加复杂,网络互联成为必然趋势;
- (6). 精简系统内核,优化关键算法,降低功耗和软硬件成本;
- (7). 提供更加友好的多媒体人机交互界面。
四、嵌入式系统的应用

工业控制 工业设备
过去在工业过程控制、数控机床、电力系统、电网安全、设备监测、石油化工系统等方面,大部分低端型设备主要采用的是8位单片机。
随着技术发展,目前许多设备除了要进行实时控制,还须将设备状态、传感器信息等在显示屏上实时显示,以及与其它设备进行联网。
通信设备
以手机嵌入式系统为例:

信息家电
以智能家居为例:

除此之外,嵌入式系统还在很多方面具有应用,像汽车电子、国防安全、航天航空等领域,生活无处不见嵌入式的身影…
未来嵌入式系统的发展趋势
- 互联网的普及
- 半导体技术的提升
- 3C(Computer,Communication,Consumer Electrics)技术的快速融合
- 满足使用者的大量需求
- 信息服务应用生活化
- 可穿戴式应用
相关文章:
【小黑嵌入式系统第一课】嵌入式系统的概述(一)
文章目录 一、嵌入式系统基本概念计算机发展的三大阶段CPU——计算机的核心什么是嵌入式系统嵌入式系统的分类 二、嵌入式系统的特点三、嵌入式系统发展无操作系统阶段简单操作系统阶段实时操作系统阶段面向Internet阶段 四、嵌入式系统的应用工业控制 工业设备通信设备信息家电…...
RK平台使用MP4视频做开机动画以及卡顿问题
rk平台android11以后系统都可以使用MP4格式的视频做开机动画,系统源码里面默认使用的是ts格式的视频,其实使用mp4的视频也是可以的。具体修改如下: diff --git a/frameworks/base/cmds/bootanimation/BootAnimation.cpp b/frameworks/base/cmds/bootanimation/BootAnimat…...
通讯网关软件023——利用CommGate X2HTTP实现HTTP访问Modbus TCP
本文介绍利用CommGate X2HTTP实现HTTP访问Modbus TCP。CommGate X2HTTP是宁波科安网信开发的网关软件,软件可以登录到网信智汇(http://wangxinzhihui.com)下载。 【案例】如下图所示,SCADA系统上位机、PLC、设备具备Modbus RTU通讯接口,现在…...
Python性能测试框架Locust实战教程!
01、认识Locust Locust是一个比较容易上手的分布式用户负载测试工具。它旨在对网站(或其他系统)进行负载测试,并确定系统可以处理多少个并发用户,Locust 在英文中是 蝗虫 的意思:作者的想法是在测试期间,放…...
c++视觉处理---仿射变换和二维旋转变换矩阵的函数
仿射变换cv::warpAffine cv::warpAffine 是OpenCV中用于执行仿射变换的函数。仿射变换是一种线性变换,可用于执行平移、旋转、缩放和剪切等操作。下面是 cv::warpAffine 函数的基本用法: cv::warpAffine(src, dst, M, dsize, flags, borderMode, borde…...
uiautomator2遍历子元素.all()
当你获取了页面某个元素之后 elements d(’//*[clickable“true”]’).all() 返回的是一个list,其中是<uiautomator2.xpath.XMLElement>类型的变量。 可以通过以下方式获取它所有子类的信息。 for ele in elements:children ele.elem.getchildren()注意…...
【手写数据库toadb】SQL字符串如何被数据库认识? 词法语法分析基础原理,常用工具
词法语法分析 专栏内容: 手写数据库toadb 本专栏主要介绍如何从零开发,开发的步骤,以及开发过程中的涉及的原理,遇到的问题等,让大家能跟上并且可以一起开发,让每个需要的人成为参与者。 本专栏会定期更新,对应的代码也会定期更新,每个阶段的代码会打上tag,方便阶段…...
手把手教你基于windows系统使用GNVM进行node切换版本
GNVM是什么? GNVM 是一个简单的 Windows 下 Node.js 多版本管理器,类似的 nvm nvmw nodist 。 安装 进入官网,下载你所需要的包,直达链接 下载完成 放到我们的node环境包下,点击运行 请注意区分: 不存在 Node.js 环…...
c#画五角星
c#画一个五角星,最重要的就是计算哪些坐标点出来,也是最难的一部分,这要涉及到一些数学方面的知识.对数学坐标知识不是很熟的人,如果想学画图,我建议多去看一下数学书,对我们写程序的人来说是没有什么坏处可言的. 想学习的朋友可以一起学习,我觉得分享学习是一种快乐,所以把自…...
第三章 数据链路层 | 计算机网络(谢希仁 第八版)
文章目录 第三章 数据链路层3.1 使用点对点信道的数据链路层3.1.1 数据链路和帧3.1.2 三个基本问题 3.2 点对点协议PPP3.2.1 PPP协议的特点3.2.2 PPP协议的帧格式3.2.3 PPP协议的工作状态 3.3 使用广播信道的数据链路层3.3.1 局域网的数据链路层3.3.2 CSMA/CD协议3.3.3 使用集线…...
李沐机器学习环境配置相关
李沐机器学习环境配置相关 condapython环境安装指令安装miniconda安装cpu版本torch安装jupyter测试GPU是否可以使用 conda 退出 conda 环境 conda deactivate进入都d2l环境 conda activate d2l启动jupyter notebook: jupyter notebookpython 列出所有安装的包 pip lsit环…...
零基础Linux_16(基础IO_文件)笔试选择题:文件描述符+ionde和动静态库
目录 一. 文件描述符等 1. Linux下两个进程可以同时打开同一个文件,这时如下描述错误的是: 2. 以下关于标准输入输出错误的描述正确的是 3. 以下描述正确的是 4. 以下描述正确的是 [多选] 5. 在bash中,在一条命令后加入”1>&2”…...
基于OpenCV的灰度图的图片相似度计算
from skimage.metrics import structural_similarity as ssim import matplotlib.pyplot as plt import cv2 def picture_recognization(imagname):# 读取两张图片image1 cv2.imread(D:/AutoTest/PythonProject/standard_img/ imagname)image2 cv2.imread(D:/AutoTest/Pytho…...
【python海洋专题二十】subplots_adjust布局调整
上期读取soda,并subplot 但是存在一些不完美,本期修饰 本期内容 subplots_adjust布局调整 1:未调整布局的 2:调整布局 往期推荐 【python海洋专题一】查看数据nc文件的属性并输出属性到txt文件 【python海洋专题二】读取水深…...
TensorFlow入门(二十四、初始化学习参数)
参数的初始化关系到网络能否训练出好的结果或者是以多快的速度收敛,对训练结果有着重要的影响。 初始化学习参数需要注意的规则 不可以将网络中的所有参数初始化为0,也不能全部初始化为同一个值。如果参数全部初始化为0或者是同一个值,会使得所有神经元的输出都是相同的,进而造…...
工厂WMS系统货架位管理:优化仓储效率
货架位管理作为WMS系统中的重要环节,对于提高工厂的仓储效率和精确库存管理至关重要。本文将从多个角度全方位介绍工厂的WMS系统货架位管理,探讨其重要性以及如何优化、应用该系统,提升工厂的仓储效率和运营水平。 1. 优化仓库空间利用&…...
[C++随想录] 继承
继承 继承的引言基类和子类的赋值转换继承中的作用域派生类中的默认成员函数继承与友元继承与静态成员多继承的结构棱形继承的结构棱形虚拟继承的结构继承与组合 继承的引言 概念 继承(inheritance)机制是面向对象程序设计使代码可以 复用的最重要的手段,它允许程序…...
ARM-day9
按键控制小灯、蜂鸣器、风扇,按一次启动,第二次关闭 key_it.c #include "key_it.h"//按键3的配置 void key3_it_config() {//RCC使能GPIOF时钟RCC->MP_AHB4ENSETR | (0x1<<5);GPIOF->MODER & (~(0x3<<16));EXTI->E…...
2386: [余姚2015] 幸运数字(luck)
目录 题目描述 输入 输出 样例输入 样例输出 提示 来源: 代码: 题目描述 今年圣诞节,小明收到了很多礼物,每个礼物上都有一个数字,表示对小明的祝福。可是小明有自己的想法,对小明来说,4或者7的倍数…...
【JUC系列-13】深入理解DelayQueue延迟队列的底层原理
JUC系列整体栏目 内容链接地址【一】深入理解JMM内存模型的底层实现原理https://zhenghuisheng.blog.csdn.net/article/details/132400429【二】深入理解CAS底层原理和基本使用https://blog.csdn.net/zhenghuishengq/article/details/132478786【三】熟练掌握Atomic原子系列基本…...
Appium+python自动化(十六)- ADB命令
简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...
.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...
376. Wiggle Subsequence
376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...
【C语言练习】080. 使用C语言实现简单的数据库操作
080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...
高防服务器能够抵御哪些网络攻击呢?
高防服务器作为一种有着高度防御能力的服务器,可以帮助网站应对分布式拒绝服务攻击,有效识别和清理一些恶意的网络流量,为用户提供安全且稳定的网络环境,那么,高防服务器一般都可以抵御哪些网络攻击呢?下面…...
【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分
一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计,提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合:各模块职责清晰,便于独立开发…...
Java 二维码
Java 二维码 **技术:**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...
SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)
上一章用到了V2 的概念,其实 Fiori当中还有 V4,咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务),代理中间件(ui5-middleware-simpleproxy)-CSDN博客…...
论文阅读:Matting by Generation
今天介绍一篇关于 matting 抠图的文章,抠图也算是计算机视觉里面非常经典的一个任务了。从早期的经典算法到如今的深度学习算法,已经有很多的工作和这个任务相关。这两年 diffusion 模型很火,大家又开始用 diffusion 模型做各种 CV 任务了&am…...
QT开发技术【ffmpeg + QAudioOutput】音乐播放器
一、 介绍 使用ffmpeg 4.2.2 在数字化浪潮席卷全球的当下,音视频内容犹如璀璨繁星,点亮了人们的生活与工作。从短视频平台上令人捧腹的搞笑视频,到在线课堂中知识渊博的专家授课,再到影视平台上扣人心弦的高清大片,音…...
