只有想不到,没有嵌不到,嵌入式系统科普(“嵌入式”)
如今,物联网、AI、5G的发展都离不开嵌入式系统,它就好比一个乐高拼图,只要你会“玩”,就会发生意想不到的性能。那么到底什么是嵌入式系统?下面就给大家科普一下。
想要了解它的组成就先要知道它是如何成长的。
第一个微处理器诞生于20 世纪70 年代初,是由成立3年的Intel推出的4004CPU,4位微处理器,10微米工艺。如今,嵌入式系统发展已有50年的历史,大体上历经了四个阶段:
一、无操作系统阶段
基于初单片机上,多数以编程控制器的形式出现,这一时期,一般没有操作系统相关支持,只有通过汇编语言对系统进行直接的控制,当然在相关运行结束之后再清除内存。
主要特点是:系统机构和功能相对都比较单一,处理效率较低、储存量小,几乎没有用户接口,由于具备以上特性,曾经被工业领域广泛认可。
二、简单的操作系统阶段
高可靠、低耗能的嵌入式CPU。
特点:嵌入式操作系统比较简单,但已初步具备一定的兼容性和扩展性,对控制系统负载以及监控应用程序的运行有一定作用。
三、实时操作系统阶段
在数字化通信和信息家电等巨大需求的牵引下,随着硬件实时性要求的提高,嵌入式系统的软件规模也在不断扩大,这一时期操作系统的实行性得到了很大的改善。
特点:可在不同类型的微处理器上,实现高度的模块化和扩展性运行,以此使得应用软件的开发变的更加简单。
四、面向internet阶段
嵌入式设备与internet的完美结合才是嵌入式技术的真正未来,在这个信息时代和数字时代里,为嵌入式系统的开发带来了巨大的机遇,同时对于嵌入式系统提供商来讲也是新的挑战。
嵌入式系统构成:麻雀虽小五脏俱全
如果按照书本定义,嵌入式指的是把软件直接烧录在硬件里,而不是安装在外部存储介质上。IEEE(美国电气和电子工程师协会)对嵌入式系统的定义是:“嵌入式系统,是以应用为中心,以计算机技术为基础,软件硬件可裁剪,适用于对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。”
以应用为中心,嵌入式系统是有明确实际用途的。以计算机技术为基础,说明它其实就是一种特殊的计算机。软硬件可裁剪,说明它有很强的灵活性和可定制能力。
专用计算机系统的“专用”是什么意思。先说“通用”,就是指我们常用的个人PC、笔记本电脑、数据中心服务器,可以用于多种用途,就是“通用计算机系统”。那么嵌入式系统究竟具体应用于哪些“专用”方向呢?
比较贴近生活的嵌入式产品,如智能手机、智能冰箱、电梯、汽车导航等;又如一些高大上的产品,谷歌眼镜、数字电视、智能医疗、智能手表。当然还有很多很多。
嵌入式系统就是以处理器(CPU)为核心,依靠总线(Bus)进行连接的多模块系统:
一个嵌入式系统大体可以分为:
硬件系统
中间层
软件系统
应用层
这张图含盖了嵌入式系统的基本构成:
在硬件层里面的主要分为:嵌入式处理器、存储器、模拟电路、电源、接口控制器、接插件等。
其核心是嵌入式微处理器。
嵌入式微处理器与通用CPU最大的不同在于嵌入式微处理器大多工作在为特定用户群所专用设计的系统中,它将通用CPU许多由板卡完成的任务集成在芯片内部,从而有利于嵌入式系统在设计时趋于小型化,同时还具有很高的效率和可靠性。
嵌入式微处理器的体系结构可以采用冯·诺依曼体系[1]或哈佛体系结构;指令系统可以选用精简指令系统(RISC)和复杂指令系统(CISC)。其中RISC目前最为火热,这种架构只包含最有用的指令,确保数据通道快速执行每一条指令,从而提高了执行效率并使CPU硬件结构设计变得更为简单。 嵌入式微处理器有各种不同的体系,即使在同一体系中也可能具有不同的时钟频率和数据总线宽度,或集成了不同的外设和接口。目前全世界嵌入式微处理器已经超过1000多种,体系结构有30多个系列,其中主流体系有arm、MIPS、PowerPC、X86和SH等。
在嵌入式领域,arm架构的处理器占据了半壁江山,而它却没有生产任何处理器,而只是提供了IP。
嵌入式微处理器有以下特点:
1)对实时多任务有很强的支持能力,能完成多任务并且有较短的中断响应时间,从而使内部的代码和实时内核心的执行时间减少到最低限度。
2)具有功能很强的存储区保护功能。这是由于嵌入式系统的软件结构已模块化,而为了避免在软件模块之间出现错误的交叉作用,需要设计强大的存储区保护功能,同时也有利于软件诊断。
3)可扩展的处理器结构,以能最迅速地开展出满足应用的最高性能的嵌入式微处理器。
4)嵌入式微处理器必须功耗很低,尤其是用于便携式的无线及移动的计算和通信设备中靠电池供电的嵌入式系统更是如此,功耗只有mW甚至μW级。
你是否把单片机和嵌入式处理器搞混?
还有一个叫做嵌入式微控制器MCU,MCU内部集成ROM/RAM、总线逻辑、定时/计数器、看门狗、I/O、串口、A/D、D/A、FLASH等。典型代表是8051、8096、C8051F等。
其实MCU就是所谓的单片机。单片机就是将CPU、存储器、定时计数器、I/O接口电路等集成在一块芯片上,体积小,功耗小,叫做单片微型计算机。因为单片机体积很小可以植入任何微小的设备、仪表当中,被广泛作为这些微小设备仪表的控制器,所以单片机又可称作嵌入式微控制器。
典型产品:51单片机、STM32
嵌入式系统是一个大类,单片机是其中一个重要的子类。嵌入式系统像是一个完整的计算机,而单片机更像是一个没有外设的计算机。现在各种硬件功能都能被做进单片机之中。所以,嵌入式系统和单片机之间的硬件区别越来越小,分界线也越来越模糊。
单片机与嵌入式处理器最大区别
单片机的存储空间和嵌入式处理器不是一个等级,单片机通常片内存储只有几k大小,而由于外设的限制也不太可能大范围增加外设嵌入式多媒体控制器emmc,而嵌入式处理器通常有几百兆的RAM,如此巨大的差别导致单片机几乎不可能像嵌入式处理器那样运行操作系统,甚至连TCP/IP协议栈和USB协议栈都跑不起来,一些高端的单片机比如ST的STM32系列,可能可以跑一些轻量级系统os和嵌入式网络协议栈,比如IwIP协议栈。
此外,嵌入式处理器丰富强大的性能决定它能完成更多单片机不能完成的应用,比如网络通信功能,视频传输处理功能等,而当外设存储增加后,嵌入式处理器能够轻松运行各种Linux系统,以及图形GUI界面。
其余部件
存储器:嵌入式系统需要存储器来存放和执行代码。包含Cache、主存(ROM和RAM)和辅助存储器。
嵌入式外围硬件设备:串口、以太网接口、USB、音频接口、液晶显示屏、摄像头等。
除此之外,还有专门用于信号处理的嵌入式DSP处理器(Digital Signal Processor)以及嵌入式片上系统SoC。
下图是一个嵌入式系统的实物样例:
中间偏左上角是CPU,中间是RAM,然后还有ROM、网卡、串口、电源等。可以看出,嵌入式系统麻雀虽小,五脏俱全。
软件层
软件层很好理解,它是一种用途广泛的系统软件,由实时多任务操作系统(RTOS)、文件系统、图形用户接口、网络系统及通用组件模块组成。RTOS是嵌入式应用软件的基础和开发平台。主要有:嵌入式实时操作系统µC/OS-II、嵌入式Linux、Windows、VxWorks等,以及应用在智能手机和平板电脑的Android、iOS等。
嵌入式中间层
所谓中间层就是软件层和硬件层之间的接口层,也称为硬件抽象层(Hardware Abstract Layer,HAL)或板级支持包(Board Support Package,BSP),它将系统上层软件与底层硬件分离开来,使系统的底层驱动程序与硬件无关,上层软件开发人员无需关心底层硬件的具体情况,根据BSP 层提供的接口即可进行开发。