只有想不到,没有嵌不到,嵌入式系统科普
如今,物联网、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 层提供的接口即可进行开发。
到底什么是嵌入式?什么是单片机?
大家好,我是小枣君。
凡是从事计算机或电子信息相关领域工作的童鞋,一定都听说过嵌入式 和单片机 吧?
很多人应该知道,这两个名词和硬件系统有着非常密切的关系。一听到它们,就容易让人联想到插满芯片和针脚的电路板:
但是,如果要问具体什么是嵌入式,什么是单片机,它们之间究竟有什么区别,我相信大部分人并不能解释清楚。
今天,小枣君就给大家做一个入门科普,揭秘上述问题的答案。与此同时,我还会给大家介绍一下,我们经常听说的51、STM32,究竟是什么。
什么是嵌入式
首先,我们来看看什么是嵌入式。
嵌入式,一般是指嵌入式系统,英文叫作:embedded system。嵌入式开发,其实就是对嵌入式系统的开发。
IEEE(美国电气和电子工程师协会)对嵌入式系统的定义是:“用于控制、监视或者辅助操作机器和设备的装置”。
国内学术界的定义更为具体一些,也更容易理解:
嵌入式系统,是以应用为中心,以计算机技术为基础,软件硬件可裁剪,适用于对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。
以应用为中心,说明嵌入式系统是有明确实际用途的。以计算机技术为基础,说明它其实就是一种特殊的计算机。软硬件可裁剪,说明它有很强的灵活性和可定制能力。
专用计算机系统,“专用”所对应的,就是“通用”。我们常用的个人PC、笔记本电脑、数据中心服务器,可以用于多种用途,就是“通用计算机系统”。
嵌入式系统究竟具体应用于哪些“专用”方向呢?
举例如下:
个人通信与娱乐系统: 手机、数码相机、音乐播放器、可穿戴电子产品、PSP游戏机家电类产品: 数字电视、扫地机器人、智能家电办公自动化: 打印机,复印机、传真机医疗电子类产品: 生化分析仪、血液分析仪、CT网络通信类产品: 通信类交换设备、网络设备 (交换机、路由器、网络安全)汽车电子类产品: 引擎控制、安全系统、汽车导航与娱乐系统工业控制类产品: 工控机、交互式终端 (POS、ATM)、安全监控、数据采集与传输、仪器仪表军事及航天类产品: 无人机、雷达、作战机器人嵌入式系统的应用领域
上述这些领域,都使用了嵌入式系统。这还只是冰山一角。
可以说,嵌入式系统完完全全地包围了我们,时刻影响着我们的工作和生活。
嵌入式系统,既然是一个计算机系统,那么肯定离不开硬件和软件。
一个嵌入式系统的典型架构如下:
注意,最重要的就是嵌入式操作系统和嵌入式微处理器。
从硬件角度来看,嵌入式系统就是以处理器(CPU)为核心,依靠总线(Bus)进行连接的多模块系统:
和个人PC是一样的方式
下面这张图,就是一个嵌入式系统的实物样例:
中间偏左上角,S3C2440,是CPU,中间是RAM,然后还有ROM、网卡、串口、电源等等。可以看出,嵌入式系统麻雀虽小,五脏俱全。
什么是单片机
嵌入式系统的核心,就是嵌入式处理器。嵌入式处理器一般分为以下几种典型类型:
嵌入式微控制器MCU(Micro Control Unit)MCU内部集成ROM/RAM、总线逻辑、定时/计数器、看门狗、I/O、串口、A/D、D/A、FLASH等。典型代表是8051、8096、C8051F等。
嵌入式DSP处理器(Digital Signal Processor)DSP处理器专门用于信号处理,在系统结构和指令算法进行了特殊设计。在数字滤波、FFT、频谱分析中广泛应用。典型代表是TI(德州仪器)公司的TMS320C2000/C5000系列。
嵌入式微处理器MPU(Micro Processor Unit)MPU由通用处理器演变而来,具有较高的性能,拥有丰富的外围部件接口。典型代表是AM186/88、386EX、SC-400、PowerPC、MIPS、ARM系列等。
此外,还有嵌入式片上系统SoC(System on Chip) 和可编程片上系统SoPC(System on a Programmable Chip) 。
我们的单片机,就属于上述的第一种——MCU(嵌入式微控制器)。
我们来详细介绍一下它。
单片机,又称为单片微控制器,英文叫Single-Chip Microcomputer。
它其实就是一种集成电路芯片,是通过超大规模集成电路技术,将CPU、RAM、ROM、输入输出和中断系统、定时器/计数器等功能,塞进一块硅片上,变成一个超小型的计算机。
这么说来,单片机不就是一个嵌入式系统?别急,我们往下看。
“单片机”其实是一种古老的叫法。以前半导体工艺技术不成熟,不同的功能无法做进一个芯片(Chip),所以会有多片机。现在半导体技术早已非常发达,所以不存在多片机。但是,“单片机”的叫法却一直延用至今。
很多高校老师喜欢强调单片机姓“单”,除了指单片机只是一个硅片之外,更多是指单片机的功能单一,它是完成运算、逻辑控制、通信等功能的单一模块。即便它性能再强大,功能依然是单一的。
单片机技术从上世纪70年代末诞生,早期的时候是4位,后来发展为8位,16位,32位。它真正崛起,是在8位时代。8位单片机功能很强,被广泛应用于工业控制、仪器仪表、家电汽车等领域。
我们在研究单片机的时候,经常会听到两个词——51单片机 、STM32 。我来介绍一下它们究竟是什么。
51单片机,其实就是一系列单片机的统称。该系列单片机,兼容Intel 8031指令系统。它们的始祖,是Intel(英特尔)的8004单片机。
注意,51单片机并不全是英特尔公司的产品。包括ATMEL(艾德梅尔)、Philips(飞利浦)、华邦、Dallas(达拉斯)、Siemens(西门子)、STC(国产宏晶)等公司,也有很多产品属于51单片机系列。
ATMEL公司的51单片机,AT89C51
这是一个51单片机的开发板,中间那个芯片才是51单片机
51单片机曾经在很长时间里都是市面上最主流、应用最广泛的单片机,占据大量的市场份额。
51单片机其实放在现在毫无技术优势,是一种很老的技术。之所以它的生命力顽强,除了它曾经很流行之外,还有一个原因,就是英特尔公司彻底开放了51内核的版权。
所以,无论任何单位或个人,都可以毫无顾忌地使用51单片机,不用付费,也不用担心版权风险。
此外,51单片机拥有雄厚的存量基础和群众基础。很多老项目都是用的51单片机,出于成本的考虑,有时候只能继续沿用51单片机的技术进行升级。而且,很多老一辈的工程师,都精通51单片机开发技术。所以,51单片机的生命力得以不断延续。
再来看看STM32。
STM32,是意法半导体公司 推出的基于ARM Cortex-M内核的通用型单片机。
STM32单片机
意法半导体(STMicroelectronics)是世界最大的半导体公司之一,于1987年6月成立,是由意大利的SGS微电子公司和法国Thomson半导体公司合并而成。1998年5月,SGS-THOMSON Microelectronics 将公司名称改为意法半导体有限公司。
意法半导体LOGO
ARM公司以前小枣君给大家介绍过。它是目前全球做芯片设计最厉害的公司之一,利用手机芯片的快速发展而崛起,占有物联网市场极大的份额。
在单片机领域,ARM的Cortex-M内核拥有压倒性的优势,已经成为绝对的主流。很多半导体公司都放弃了自己原先的架构,转做ARM架构的单片机。
STM32单片机开发板
STM32的硬件配置可以满足大部分的物联网开发需求,开发工具和相关的文档资料齐全,已经成为目前单片机学习的首选对象。
嵌入式和单片机的区别
说到这里,我们来看看,嵌入式和单片机的区别到底是什么。
从前文的介绍来看,嵌入式系统是一个大类,单片机是其中一个重要的子类。嵌入式系统像是一个完整的计算机,而单片机更像是一个没有外设的计算机。
以前单片机包括的东西并不算多,两者的硬件区别较为明显。但是,随着半导体技术的突飞猛进,现在各种硬件功能都能被做进单片机之中。所以,嵌入式系统和单片机之间的硬件区别越来越小,分界线也越来越模糊。
于是,人们倾向于在软件上进行区分。
从软件上,行业里经常把芯片中不带MMU(memory management unit,内存管理单元)从而不支持虚拟地址,只能裸奔或运行RTOS(实时操作系统,例如ucos、华为LiteOS、RT-Thread、freertos等)的system,叫做单片机(如STM32、NXP LPC系列、NXP imxRT1052系列等)。而把芯片自带MMU可以支持虚拟地址,能够跑Linux、Vxworks、WinCE、Android这样的“高级”操作系统的system,叫做嵌入式。
在某些时候,单片机本身已经足够强大,可以作为嵌入式系统使用。它的成本更低,开发和维护的难度相对较小,尤其是针对一些针对性更强的应用。而嵌入式系统理论上性能更强,应用更广泛,但复杂度高,开发难度大。
嵌入式和单片机的学习价值
最后我们来说一说嵌入式和单片机的学习价值,到底有没有必要学习嵌入式和单片机。
最近这些年,有一句话被广泛传播,那就是——“软件为王”。人们普遍认为软件知识的价值远远大于硬件,而学习软件,从事软件方向,会更容易找到工作,找到更高收入、更有前途的工作。
而嵌入式和单片机,往往被归为“硬件”方向,遭人“嫌弃”。加上嵌入式和单片机的学习难度较大,学习周期很长,需要漫长的“煎熬”,所以越来越多的人放弃这条路。
小枣君认为这种想法是不正确的。
首先,嵌入式和单片机并不是纯“硬件”类方向。前面我也说了,它们是软件和硬件的紧密结合。
如果你想学好嵌入式和单片机,只懂数字电路和微机接口这样的硬件知识是不够的,你更需要学习的,是汇编、C/C++语言、数据结构和算法知识。
拥有软硬结合的能力,远远比单纯掌握某种程序开发语言更有价值。
其次,嵌入式和单片机拥有广泛的应用场景,在各个领域都有项目需求和人才需求。
根据权威部门统计,目前我们国家每年的嵌入式人才缺口高达50万。尤其是嵌入式软件开发,是未来几年最热门和最受欢迎的职业之一。具有10年工作经验的高级嵌入式工程师,年薪可以达到30-50万元左右。
而且我们国家现在正在大力发展芯片产业,也会带动嵌入式人才的就业,提升待遇。
随着5G的全面启动,整个社会正在向“万物互联”的方向发展。物联网技术也将迎来前所未有的历史机遇。嵌入式和单片机技术是物联网技术的重要组成部分,也将进入发展的快车道。
因此,尽管学习过程会比较艰辛,小枣君仍然建议有志青年关注这一赛道。技术越难,过程越苦,越有利于构建竞争壁垒。到了后期,个人价值可以得到进一步的体现。
好了,关于嵌入式和单片机的内容,小枣君今天就介绍到这里。
谢谢大家啦!
相关问答
单片机 到底属不属于 嵌入式 系统? - anthidy 的回答 - 懂得这个问题就如同:发动机到底属不属于车辆?个人是这么理解的:嵌入式系统是一个比较宽泛的概念,许多控制芯片,甚至微机的架构都能构建嵌入式系统;至于...
如何控制 51单片机 的引脚?对于51单片机大家都不陌生,电子类专业的学生,在大学期间都学习过51单片机,再加上单片机易操作、资料多,所以非常受欢迎。51单片机有40个引脚,常用的封装为DI...
mcs- 51单片机 的特点及应用?MCS-51单片机是美国INTE公司于1980年推出的产品,与MCS-48单片机相比,它的结构更先进,功能更强,在原来的基础上增加了更多的电路单元和指令,指令数达111条,MC...
51单片机 属于软件还是硬件?51单片机也是结合了硬件和软件,属于嵌入式范畴一个嵌入式系统装置一般都由嵌入式计算机系统和执行装置组成,嵌入式计算机系统是整个嵌入式系统的核心,由硬件...
都说 嵌入式 ,简单易学,对于编程零基础的人,感觉真的好难?我是学物联网工程专业的,嵌入式作为核心技术,门槛虽然较高,但也跟其他事物一样,并不是牢不可破。首先介绍一下嵌入式,再大致谈下学习方法与心得~嵌入式系统...
30岁转行 嵌入式 可行吗?为什么?您好,30岁转行嵌入式开发,为时不晚我的回答是:如果您到目前为止,没有一个好的发展方向,或者人生处在迷茫阶段,那么学习一门技术,那是极好。案例说明很...您好...
单片机 可以称为 嵌入式 吗?有什么区别? - 懂得单片机开发属于嵌入式的一种,但是更多的偏重于硬件驱动开发,需要掌握基本点硬件知识,如模电数电。而嵌入式开发范围更广,现在大多数嵌入式开发指的...
单片机 是什么? 嵌入式 操作系统是什么?它们一样吗?[最佳回答]单片机与嵌入式系统一、现代计算机的技术发展史1.始于微型机时代的嵌入式应用电子数字计算机诞生于1946年,在其后漫长的历史进程中,计算机始终是...
有哪些非常好的 嵌入式 书籍推介?推荐几本我大学时候读过的书。大概可以总结为C语言-->数据结构-->shell-->Linux应用-->内核-->51单片机-->STM32当然这个也是嵌入式的...
哪位盆友我想了解 嵌入式 开发和 单片机 开发有什么区别?我之前这两方面都了解过,都想学,可以最终还是走了javaee的路,唉,简单说说我的认识吧,嵌入式开发很多,软件硬件的嵌入都有,单片机是硬件是的嵌入式开...