嵌入式和单片机的区别在哪?
有同学反映,我们视频一上来就讲干货,希望适当普及一下相关概念,这篇就是。
单片机和嵌入式,其实没有什么标准的定义来区分他们,对于进行过单片机和嵌入式开发的开发者来说,都有他们自己的定义,接下来,就谈谈这两个概念的理解。
什么是单片机
首先明确概念,什么是单片机,单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,广泛应用在工业控制领域。
从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。比如最经典的51系列单片机,外观只是一块一个拇指大小的长方体芯片,共40个引脚,里面包含了逻辑运算单元。实际上也就是一个CPU。
在最开始接触单片机的时候,还曾经有过一个疑问,为什么单片机是黑色的而不可以是别的颜色,后来才知道是单片机材料的限制。
对单片机而言,其实一个芯片就是全部,其他的比如单片机最小系统都是为了单片机的正常运作而加入,比如晶振,5v电源,电感电阻等。当然最小系统只能保证单片机正常运行,几乎实现不了基于单片机的任何应用。
为了使单片机实现应用,必须要加入其他外设。比如按键,led灯,led屏,蜂鸣器,各种sensor。这也就是市面上很多公司都在做的单片机开发板。
总结,单片机就是完成运算、逻辑控制、通信等功能的单一模块。也就是单片机真的姓“单”。DSP芯片也可以认为是一个单片机。当然它们性能很强大,但是功能依然很单一,总之就是处理数据、逻辑。
什么是嵌入式
那么什么是嵌入式呢,一般说嵌入式都是指嵌入式系统,IEEE(InsTItuteof Electrical and ElectronicsEngineers,美国电气和电子工程师协会)对嵌入式系统的定义:“用于控制、监视或者辅助操作机器和设备的装置”。
嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。通常,嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板。
嵌入式系统是将应用程序、操作系统、和计算机硬件连接在一起的系统,是指以应用为中心,以计算机技术为基础,软硬件可裁剪,其针对的用户应用对功能、可靠性、成本、体积、功耗和使用环境有特殊要求的专用计算机系统。
事实上,所有带有数字接口的设备,如手表、微波炉、录像机、汽车等,都使用嵌入式系统,有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是由单个程序实现整个控制逻辑。这是因为嵌入式系统一般用于工业控制,也就是说对外设的控制都是写死的,并不需要人工干预,同时也为了保证系统的稳定和可靠。
我们经常可以听到公司招聘的要求是嵌入式软件工程师或者嵌入式硬件工程师,也就是说嵌入式系统包括软件和硬件,其实仔细想想也能明白,都已经跑系统了,当然有软件也有bsp硬件。
也就是说嵌入式系统是软硬件结合体,国内普遍认同的嵌入式系统定义为:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。
嵌入式的硬件层
硬件层中包含嵌入式微处理器、存储器(SDRAM、ROM、Flash等)、通用设备接口和I/O接口(A/D、D/A、I/O等)。在一片嵌入式处理器基础上添加电源电路、时钟电路和存储器电路,就构成了一个嵌入式核心控制模块。其中操作系统和应用程序都可以固化在ROM中。
其中核心就是微处理器,嵌入式处理器和一般的电脑CPU还有区别,嵌入式微处理器大多工作在特定设计的系统中,比如TI或者Atmel公司都有很多定位不同的处理器,atmel的SAM系列是专门为物联网设计的,AVR则由于性能突出,广泛应用于工业领域。
嵌入式微处理器有各种不同的体系,即使在同一体系中也可能具有不同的时钟频率和数据总线宽度,或集成了不同的外设和接口。据不完全统计,全世界嵌入式微处理器已经超过1000多种,体系结构有30多个系列,其中主流的体系有ARM、MIPS、PowerPC、X86和SH等。
但与全球PC市场不同的是,没有一种嵌入式微处理器可以主导市场,仅以32位的产品而言,就有100种以上的嵌入式微处理器。嵌入式微处理器的选择是根据具体的应用而决定的。
在嵌入式领域,可以说ARM架构的处理器占据了半壁江山,而ARM公司也成为著名的科技公司,而它却没有生产任何处理器,而只是提供了IP,可以看出一流公司做标准。而其他用的比较多的架构就是MIPS,sparc、powerpc等。
比如ARM公司有各种各样的处理器架构,最经典的cortex系列,它属于ARMv7架构,这是到2010年为止ARM公司最新的指令集架构。ARMv7架构定义了三大分工明确的系列:“A”系列面向尖端的基于虚拟内存的操作系统和用户应用;“R”系列针对实时系统;“M”系列对位控制器。
嵌入式系统和外界交互需要一定形式的通用设备接口,如A/D、D/A、I/O等,外设通过和片外其他设备的或传感器的连接来实现微处理器的输入/输出功能。每个外设通常都只有单一的功能,它可以在芯片外也可以内置芯片中。外设的种类很多,可从一个简单的串行通信设备到非常复杂的802.11无线设备。
嵌入式系统中常用的通用设备接口有A/D(模/数转换接口)、D/A(数/模转换接口),I/O接口有RS-232接口(串行通信接口)、Ethernet(以太网接口)、USB(通用串行总线接口)、音频接口、VGA视频输出接口、I2C(现场总线)、SPI(串行外围设备接口)和IrDA(红外线接口)等。这一点其实和单片机类似。
嵌入式的软件层
也就是操作系统了,包括内核和文件系统,还有就是更为顶层的应用程序,嵌入式操作系统一般都是Linux或者其他类Unix,还有一些实时操作系统(RTOS)比如VxWorks、RTEMS、ucOS等。
其中Linux还包括不同的distribuTIon,比如Ubuntu、Redhat、Debian、centos等,他们都是采用Linux的内核,不同的是上面的software和tools,当然不用太过于担心标准问题,这些Linux发行版选择的软件几乎都是比较通用的,比如网页服务器的Apache、电子邮件服务器的postfix、sendmail、文件服务器的Samba等。此外还有Linuxstandard base等标准来规范开发者。类Unix主要是FreeBSD以及Solaris等。
嵌入式领域最常用的之一是实时操作系统,实时操作系统的核心就是实时性,本质就是任务处理所花费的时间的可预测性,即任务需要在规定时限内完成。IEEE对实时系统的定义是“那些正确性不仅取决于计算的逻辑结果也取决于产生结果所花费时间的系统”。
实时操作系统有硬实时和软实时之分,硬实时要求在规定的时间内必须完成操作,这是在操作系统设计时保证的; 软实时则只要按照任务的优先级,尽可能快地完成操作即可。我们通常使用的操作系统在经过一定改变之后就可以变成实时操作系统。
实时操作系统和Linux这种分时操作系统的区别列举如下:
(1)多路性。 实时信息处理系统与分时系统一样具有多路性。系统按分时原则为多个终端用户服务; 而对实时控制系统,其多路性则主要表现在经常对多路的现场信息进行采集以及对多个对象或多个执行机构进行控制。
(2)独立性 。实时信息处理系统与分时系统一样具有独立性。每个终端用户在向分时系统提出服务请求时,是彼此独立的操作,互不干扰;而在实时控制系统中信息的采集和对对象的控制,也彼此互不干扰。
(3)及时性。 实时信息系统对实时性的要求与分时系统类似,都是以人所能接受的等待时间来确定;而实时控制系统的及时性,则是以控制对象所要求的开始截止时间或完成截止时间来确定的,一般为秒级、百毫秒级直至毫秒级,甚至有的要低于100微秒。
(4)交互性。 实时信息处理系统具有交互性,但这里人与系统的交互,仅限于访问系统中某些特定的专用服务程序。它不像分时系统那样能向终端用户提供数据处理服务、资源共享等服务。
(5)可靠性。 分时系统要求系统可靠,相比之下,实时系统则要求系统高度可靠。因为任何差错都可能带来巨大的经济损失甚至无法预料的灾难性后果。因此,在实时系统中,采取了多级容错措施来保证系统的安全及数据的安全。
由于更加可靠和及时。嵌入式实时操作系统更加广泛应用于工业控制、航空航天、军工等领域,比如美国航天局NASA近几年发射的火星探测器等都是采用的RTEMS实时操作系统。
嵌入式的中间层
所谓的中间层就是软件层和硬件层之间的接口层,其实严格而言也属于软件层。一般开发者称之为BSP,这一层主要负责的是向下提供硬件的驱动,硬件的配置等操作,向上则向软件开发者提供标准API,进行中间层开发的开发者通常称为嵌入式驱动工程师。
从这里也可以看出来,嵌入式设计和软硬都分不开,既要掌握底层硬件的特性以及如何驱动其工作,也要了解操作系统的相关知识,才可以编写相应功能的应用。
因此看一个操作系统是否支持某个芯片或者某个开发板,只要看其源码中是否包含相应芯片或开发板的板级支持包。
嵌入式系统应该跑在什么样的硬件上
谈起嵌入式硬件或者开发板,我想很多人第一印象就是RaspberryPi,是一块只有信用卡大小的微型电脑,别看其外表“娇小”,内“芯”却很强大,视频、音频等功能通通皆有,可谓是“麻雀虽小,五脏俱全”。树莓派推出后,很多厂商争相推出类似产品,比如香蕉派之类的。
还有TI的Beagleboneblack板子,体积大小和树莓派类似,外设包括有USB host和USB mini以及网卡接口,背面还有一个sd卡槽和HDMI接口。BBB的处理器采用的是当前嵌入式系统中最流行的ARMv7指令集。采用当今广泛使用的指令集的处理器可以被更多的软件支持。例如,一些操作系统已经不支持在ARMv6指令集上运行,例如,Ubuntu在2012年4月放弃了对ARMv6指令集的支持。
ARMv7相对与ARMv6指令集的另一个优势在于,使用ARMv7的处理器的实际性能更加强劲。ARMv7相对于ARMv6的优势还有很多,比如一些显著的改进:实现了超标量架构、包含了SIMD操作指令、改进了分支预测算法从而极大的提高了某些性能。
总结
以上就是一块基本的嵌入式核心板所具有的性能参数,和上面说到的单片机的性能参数相比较,单片机的处理能力较低,主频大多在几十M上下,和嵌入式动辄上百上千M的处理速度还是相差较多,此外单片机并不具有图形界面的处理能力,也就是GPU的缺乏导致单片机几乎不可能带动图形界面。
单片机的存储空间和嵌入式处理器也不是一个等级的,单片机通常片内存储只有几k大小,而由于外设的限制也不太可能大范围增加外设emmc,而嵌入式处理器通常有几百兆的RAM,如此巨大的差别导致单片机几乎不可能像嵌入式处理器那样运行操作系统,甚至连TCP/IP协议栈和USB协议栈都跑不起来,一些高端的单片机比如ST公司的STM32系列,可能可以跑一些轻量级的系统os和嵌入式网络协议栈,比如IwIP协议栈。
嵌入式处理器丰富强大的性能决定它能完成更多单片机不能完成的应用,比如网络通信功能,视频传输处理功能等,而当外设存储增加后,嵌入式处理器能够轻松运行各种Linux系统,以及图形GUI界面。
了解更多
嵌入式和单片机的区别是什么
什么是嵌入式?什么是单片机?嵌入式和单片机有什么区别和联系呢?今天小编针对这些问题整理了一篇文章,希望对大家理解单片机和嵌入式的基本概念,以及之间的区别有所帮助。
一、什么是嵌入式
按照历史性、本质性、普遍性要求,嵌入式系统应定义为:“嵌入到对象体系中的专用计算机系统”。“嵌入性”、“专用性”与“计算机系统”是嵌入式系统的三个基本要素。对象系统则是指嵌入式系统所嵌入的宿主系统。
嵌入式系统特点
1)可裁剪性。支持开放性和可伸缩性的体系结构。
2)强实时性。EOS实时性一般较强,可用于各种设备控制中。
3)统一的接口。提供设备统一的驱动接口。
4)操作方便、简单、提供友好的图形GUI和图形界面,追求易学易用。提供强大的网络功能,支持TCP/IP协议及其他协议,提供TCP/UDP/IP/PPP协议支持及统一的MAC访问层接口,为各种移动计算设备预留接口。
5)强稳定性,弱交互性。嵌入式系统一旦开始运行就不需要用户过多的干预、这就要负责系统管理的EOS具有较强的稳定性。嵌入式操作系统的用户接口一般不提供操作命令,它通过系统的调用命令向用户程序提供服务。
6)固化代码。在嵌入式系统中,嵌入式操作系统和应用软件被固化在嵌入式系统计算机的ROM中。
7)更好的硬件适应性,也就是良好的移植性。
8)嵌入式系统和具体应用有机地结合在一起,它的升级换代也是和具体产品同步进行,因此嵌入式系统产品一旦进入市场,具有较长的生命周期。
二、什么是单片机
什么是单片机呢?一般我们将单片微型计算机简称为单片机,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。是一种典型的嵌入式微控制器。
单片机硬件特性
1、主流单片机包括CPU、4KB容量的RAM、128 KB容量的ROM、 2个16位定时/计数器、4个8位并行口、全双工串口行口、ADC/DAC、SPI、I2C、ISP、IAP。
2、系统结构简单,使用方便,实现模块化;
3、单片机可靠性高,可工作到10^6 ~10^7小时无故障;
4、处理功能强,速度快。
5、低电压,低功耗,便于生产便携式产品6、控制功能强7、环境适应能力强
三、嵌入式和单片机的区别
1.单片机与嵌入式在系统组成结构上的区别
(1)单片机基本结构
单片机由运算器、控制器、存储器、输入输出设备构成。
(2)嵌入式系统成部分:
嵌入式系统一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统、特定的应用程序组成。
嵌入式系统设计的第一步是结合具体的应用,综合考虑系统对成本、性能、可扩展性、开发周期等各个方面的要求,确定系统的主控器件,并以之为核心搭建系统硬件平台。
2.单片机与嵌入式在硬件组成上的区别
单片机是在一块集成电路芯片中包含了微控制器电路,以及一些通用的输入输出接口器件。从构成嵌入式系统的方式看,根据现代电子技术发展水平,嵌入式系统可以用单片机实现,也可以用其它可编程的电子器件实现。其余硬件器件根据目标应用系统的需求而定。
3.单片机与嵌入式在软件组成上的区别
制造商出厂的通用单片机内没有应用程序,所以不能直接运行。增加应用程序后,单片机就可以独立运行。嵌入式系统一定要有控制软件,实现控制逻辑的方式可以完全用硬件电路,也可以用软件程序。
4.单片机与嵌入式在主次关系方面的区别
单片机现在已经被认为是通用的电子器件了,单片机自身为主体。嵌入式系统在物理结构关系上是从属的,嵌入式系统被嵌入安装在目标应用系统内。嵌入式系统在控制关系上却是主导的,是控制目标应用系统运行的逻辑处理系统。尽管可以用不同方式构成嵌入式系统,但是一旦构成之后,嵌入式系统就是一个专用系统。专用系统中,可编程器件的软件可以在系统构建过程中植入,也可以在器件制造过程中直接生成,以降低制造成本。控制逻辑复杂的单片机会需要操作系统软件支持;控制逻辑简单的嵌入式系统也可以不用操作系统软件支持。
四、单片机与嵌入式系统的联系
根据IEEE的定义,嵌入式系统是用来控制或监视机器、装置或工厂等大规模系统的设备。 从定义我们可以看出,实际上以前的控制装置、单片机系统应该也属于嵌入式系统的范畴。
我们可以这样理解,嵌入式系统是一个大类,单片机是其中一个重要的子类。嵌入式系统顾名思义就是一个嵌入在其他系统中的系统。例如汽车系统中嵌入姿态控制系统,就可以使汽车驾驶更安全,更有效;电源系统内引入自动控制系统,能够让电源工作的更稳定。这里的姿态控制系统和电源的自动控制系统就属于嵌入式系统。
单片机形成的系统一般是用于自动化,工业控制功能的,这些功能一般不会独立运用,是需要和其他系统配合的,因此从广义上讲,单片机应用一般属于嵌入式系统的一个分支。目前由于嵌入式系统应用广泛,因此还有不是单片机的嵌入式系统,例如手机,是在手机的基本功能上(通话、短信)加入了应用处理器,使其功能更加强大,但是由于制造工艺的问题,高端手机还不能做到全部一片集成(一片集成的那个是山寨机),但是也属于嵌入式系统的一个分支。
相关问答
嵌入式 系统和 单片机 的 区别 ?单片机是众多嵌入式处理器的一种,目前通用的理解是,嵌入式主要是指ARM\DSP等处理器.而嵌入式系统是指实现了一定功能的电路的软硬件的集合。单片机与autoCAD...
嵌入式 与 单片机 有什么异同?1、从系统组成上区别,单片机由控制器、运算器、存储器、输入输出设备构成,而嵌入式第一步需要结合具体的应用,考虑成本,性能,可扩展性,开发周期等各方面的...
嵌入式 和 单片机 的 区别 是什么?1、从系统组成上区别,单片机由控制器、运算器、存储器、输入输出设备构成,而嵌入式第一步需要结合具体的应用,考虑成本,性能,可扩展性,开发周期等各方面的...
嵌入式 和 单片机 的 区别 ?嵌入式系统和单片机都是计算机系统的一种形式,它们之间有以下不同点:1.构成:嵌入式系统通常由处理器、内存、输入输出设备、操作系统、应用程序等多个部分组...
嵌入式 和 单片机 有哪些联系和 区别 ?嵌入式系统和单片机都是实现特定功能的计算机系统,它们之间有以下联系与区别:联系:1.均为计算机系统:嵌入式系统和单片机均由处理器、存储...嵌入式系统和...
单片机 和 嵌入式 有什么 区别 ?1、从系统组成上区别,单片机由控制器、运算器、存储器、输入输出设备构成,而嵌入式第一步需要结合具体的应用,考虑成本,性能,可扩展性,开发周期等各方面的...
嵌入式 系统和 单片机 的 区别 ?您好,嵌入式系统和单片机都是应用于嵌入式领域的技术,但是它们之间存在一些区别:1.概念不同:单片机是一种集成了处理器、存储器、输入输出和定时器等硬件资...
单片机 和 嵌入式 系统的 区别 ?1、硬件组成不同嵌入式系统是可以用单片机实现,也可以用其它可编程的电子器件实现。单片机是在一块集成电路芯片中包含了微控制器电路,集成到一块硅片上构成...
单片机 可以称为 嵌入式 吗?有什么 区别 ? - qwe52242628 的回答 ...也可以理解嵌入式里面包括了单片机呵呵单片机开发属于嵌入式的一种,但是更多的偏重于硬件驱动开发,需要掌握基本点硬件知识,如模电数电。而嵌入式...
单片机 开发, 嵌入式 开发有什么 区别 啊?单片机开发和嵌入式开发之间的关系密切,但两者侧重点有所不同。下面分别介绍单片机开发和嵌入式开发的概念及区别。1.单片机开发:单片机开发主要是针对单片...