当前位置: 首页 > news >正文

【小黑嵌入式系统第一课】嵌入式系统的概述(一)

文章目录

    • 一、嵌入式系统基本概念
      • 计算机发展的三大阶段
      • CPU——计算机的核心
      • 什么是嵌入式系统
      • 嵌入式系统的分类
    • 二、嵌入式系统的特点
    • 三、嵌入式系统发展
      • 无操作系统阶段
      • 简单操作系统阶段
      • 实时操作系统阶段
      • 面向Internet阶段
    • 四、嵌入式系统的应用
      • 工业控制 工业设备
      • 通信设备
      • 信息家电
      • 未来嵌入式系统的发展趋势

一、嵌入式系统基本概念

计算机发展的三大阶段

  • 第一阶段:始于五十年代的由IBM, Burroughs, Honeywell等公司率先研制的大型机。
  • 第二阶段:始于七十年代的个人计算机。
  • 第三阶段:计算机正迈入下一个充满机遇的阶段——“后PC时代”或“无处不在的计算机”阶段

在这里插入图片描述

计算机不会成为科幻电影中的那种贪婪的怪物, 而是将变得小巧玲珑, 无处不在。他们藏身在任何地方, 又消失在所有地方, 功能强大, 却又无影无踪。人们将这种思想称为: “无所不在的计算机”。


CPU——计算机的核心

Jim Turley2000嵌入式系统国际会议上曾说过:

“提到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&#xff0c;其中是<uiautomator2.xpath.XMLElement>类型的变量。 可以通过以下方式获取它所有子类的信息。 for ele in elements:children ele.elem.getchildren()注意…...

【手写数据库toadb】SQL字符串如何被数据库认识? 词法语法分析基础原理,常用工具

词法语法分析 ​专栏内容: 手写数据库toadb 本专栏主要介绍如何从零开发,开发的步骤,以及开发过程中的涉及的原理,遇到的问题等,让大家能跟上并且可以一起开发,让每个需要的人成为参与者。 本专栏会定期更新,对应的代码也会定期更新,每个阶段的代码会打上tag,方便阶段…...

手把手教你基于windows系统使用GNVM进行node切换版本

GNVM是什么&#xff1f; GNVM 是一个简单的 Windows 下 Node.js 多版本管理器&#xff0c;类似的 nvm nvmw nodist 。 安装 进入官网&#xff0c;下载你所需要的包&#xff0c;直达链接 下载完成 放到我们的node环境包下&#xff0c;点击运行 请注意区分: 不存在 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下两个进程可以同时打开同一个文件&#xff0c;这时如下描述错误的是&#xff1a; 2. 以下关于标准输入输出错误的描述正确的是 3. 以下描述正确的是 4. 以下描述正确的是 [多选] 5. 在bash中&#xff0c;在一条命令后加入”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&#xff0c;并subplot 但是存在一些不完美&#xff0c;本期修饰 本期内容 subplots_adjust布局调整 1&#xff1a;未调整布局的 2&#xff1a;调整布局 往期推荐 【python海洋专题一】查看数据nc文件的属性并输出属性到txt文件 【python海洋专题二】读取水深…...

TensorFlow入门(二十四、初始化学习参数)

参数的初始化关系到网络能否训练出好的结果或者是以多快的速度收敛,对训练结果有着重要的影响。 初始化学习参数需要注意的规则 不可以将网络中的所有参数初始化为0,也不能全部初始化为同一个值。如果参数全部初始化为0或者是同一个值,会使得所有神经元的输出都是相同的,进而造…...

工厂WMS系统货架位管理:优化仓储效率

货架位管理作为WMS系统中的重要环节&#xff0c;对于提高工厂的仓储效率和精确库存管理至关重要。本文将从多个角度全方位介绍工厂的WMS系统货架位管理&#xff0c;探讨其重要性以及如何优化、应用该系统&#xff0c;提升工厂的仓储效率和运营水平。 1. 优化仓库空间利用&…...

[C++随想录] 继承

继承 继承的引言基类和子类的赋值转换继承中的作用域派生类中的默认成员函数继承与友元继承与静态成员多继承的结构棱形继承的结构棱形虚拟继承的结构继承与组合 继承的引言 概念 继承(inheritance)机制是面向对象程序设计使代码可以 复用的最重要的手段&#xff0c;它允许程序…...

ARM-day9

按键控制小灯、蜂鸣器、风扇&#xff0c;按一次启动&#xff0c;第二次关闭 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)

目录 题目描述 输入 输出 样例输入 样例输出 提示 来源: 代码&#xff1a; 题目描述 今年圣诞节&#xff0c;小明收到了很多礼物&#xff0c;每个礼物上都有一个数字&#xff0c;表示对小明的祝福。可是小明有自己的想法&#xff0c;对小明来说&#xff0c;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原子系列基本…...

在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能

下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能&#xff0c;包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习视频及资料&#xff0c;尽在聚客AI学院。 本文全面剖析RNN核心原理&#xff0c;深入讲解梯度消失/爆炸问题&#xff0c;并通过LSTM/GRU结构实现解决方案&#xff0c;提供时间序列预测和文本生成…...

面向无人机海岸带生态系统监测的语义分割基准数据集

描述&#xff1a;海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而&#xff0c;目前该领域仍面临一个挑战&#xff0c;即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...

Kafka入门-生产者

生产者 生产者发送流程&#xff1a; 延迟时间为0ms时&#xff0c;也就意味着每当有数据就会直接发送 异步发送API 异步发送和同步发送的不同在于&#xff1a;异步发送不需要等待结果&#xff0c;同步发送必须等待结果才能进行下一步发送。 普通异步发送 首先导入所需的k…...

AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机

这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机&#xff0c;因为在使用过程中发现 Airsim 对外部监控相机的描述模糊&#xff0c;而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置&#xff0c;最后在源码示例中找到了&#xff0c;所以感…...

【Redis】笔记|第8节|大厂高并发缓存架构实战与优化

缓存架构 代码结构 代码详情 功能点&#xff1a; 多级缓存&#xff0c;先查本地缓存&#xff0c;再查Redis&#xff0c;最后才查数据库热点数据重建逻辑使用分布式锁&#xff0c;二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...

【C++特殊工具与技术】优化内存分配(一):C++中的内存分配

目录 一、C 内存的基本概念​ 1.1 内存的物理与逻辑结构​ 1.2 C 程序的内存区域划分​ 二、栈内存分配​ 2.1 栈内存的特点​ 2.2 栈内存分配示例​ 三、堆内存分配​ 3.1 new和delete操作符​ 4.2 内存泄漏与悬空指针问题​ 4.3 new和delete的重载​ 四、智能指针…...

论文阅读笔记——Muffin: Testing Deep Learning Libraries via Neural Architecture Fuzzing

Muffin 论文 现有方法 CRADLE 和 LEMON&#xff0c;依赖模型推理阶段输出进行差分测试&#xff0c;但在训练阶段是不可行的&#xff0c;因为训练阶段直到最后才有固定输出&#xff0c;中间过程是不断变化的。API 库覆盖低&#xff0c;因为各个 API 都是在各种具体场景下使用。…...

StarRocks 全面向量化执行引擎深度解析

StarRocks 全面向量化执行引擎深度解析 StarRocks 的向量化执行引擎是其高性能的核心设计&#xff0c;相比传统行式处理引擎&#xff08;如MySQL&#xff09;&#xff0c;性能可提升 5-10倍。以下是分层拆解&#xff1a; 1. 向量化 vs 传统行式处理 维度行式处理向量化处理数…...

CVE-2023-25194源码分析与漏洞复现(Kafka JNDI注入)

漏洞概述 漏洞名称&#xff1a;Apache Kafka Connect JNDI注入导致的远程代码执行漏洞 CVE编号&#xff1a;CVE-2023-25194 CVSS评分&#xff1a;8.8 影响版本&#xff1a;Apache Kafka 2.3.0 - 3.3.2 修复版本&#xff1a;≥ 3.4.0 漏洞类型&#xff1a;反序列化导致的远程代…...