什么是嵌入式系统
简单来说:嵌入式系统就是嵌入到对象体内的专用计算机系统
三要素:嵌入、专用、计算机
- 嵌入性:嵌入到对象体系中,有对象环境要求
- 专用性:软、硬件按对象要求配置
- 计算机:实现对象的数据处理及智能化功能
广义来说:
一个嵌入式系统就是一个具有特定功能或用途的计算机软硬件集合体。
即以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统 。
嵌入式系统发展的最高形式——片上系统(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位单片机。
随着技术发展,目前许多设备除了要进行实时控制,还须将设备状态、传感器信息等在显示屏上实时显示,以及与其它设备进行联网。
通信设备
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年嵌入式&物联网开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新!!
5626148996)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新!!