您的位置 首页 软件

【E问E答】嵌入式和单片机不一样?那它们的差异在哪?

单片机和嵌入式,其实没有什么标准的定义来区分他们,对于进行过单片机和嵌入式开发的开发者来说,都有他们自己的定义,接下来,就谈谈本人对这两个概念的理解和感悟。首先明确概念,什么是单片机,单片

  单片机嵌入式,其实没有什么规范的界说来差异他们,关于进行过单片机嵌入式开发的开发者来说,都有他们自己的界说,接下来,就谈谈自己对这两个概念的了解和感悟。

  首要清晰概念,什么是单片机,单片机是一种集成电路芯片,是选用超大规模集成电路技能把具有数据处理才能的中央处理器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公司有各式各样的处理器架构,最经典的cortex系列,它归于ARMv7架构,这是到2010年停止ARM公司最新的指令集架构。ARMv7架构界说了三大分工清晰的系列:“A”系列面向顶级的依据虚拟内存的操作体系和用户运用;“R”系列针对实时体系;“M”系列对微操控器。下图便是cortex系列的不同定位。

  在嵌入式范畴,能够说arm架构的处理器占有了半壁河山,而arm公司也成为闻名的科技公司,而它却没有出产任何处理器,而仅仅供给了IP,能够看出一流公司做规范。而其他用的比较多的架构便是sparc、powerpc等。

  嵌入式体系和外界交互需求必定方式的通用设备接口,如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板子进行阐明,Beagleboneblack板如下图所示:

  能够看出体积巨细和树莓派相似,外设包含有USBhost和USBmini以及网卡接口,,反面还有一个sd卡槽和HDMI接口。接下来看看它的功用参数:

  下表是BBB板和树莓派的功用参数比较:

  Beagleboneblack的处理器是一块主频到达1GHZ的Ti处理器,依据arm的cortexa8架构,RAM是512M的DDR3,存储器巨细为2GB,支撑的操作体系包含Ubuntu、archLinux、Android等。外设有USBhost和一块百兆网卡。

  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界面。

  在开发方式上单片机和嵌入式也有较大不同,也便是编译进程的差异,单片机首要在Windows等图形界面下开发,现在有许多老练的IDE东西比方keil、IAR、以及ti的CCS等,这些东西集编译、汇编、链接、仿真为一体,而且因为在Windows下开发,具有友爱的用户界面,开发者只需编写c代码,然后点击编译链接按键即可,呈现过错还能够debug或许仿真,上手仍是非常快的。而嵌入式开发一般是在Linux下进行的,要将c代码在自己主机上编译完结,然后经过体系镜像或许uboot引导将编译好的文件烧入开发板,因为主机的处理器的x86架构,而编写的代码是为了运转在arm架构或sparc架构的处理器上,因而存在一个穿插编译链的装置,此外,Linux下没有Windows那样的IDE,也便是编译,链接源代码都需求开发者自己完结,一般都是使用GNUmake脚本编写Makefile以及configure文件来完结,Makefile文件中编写怎么对c或许h文件编译,也便是编译规矩以及依靠文件是什么。这些都需求开发者自己完结。而且以上进程都是在Linux下的终端也便是命令行中完结,这也给嵌入式开发添加了难度。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qianrushi/ruanjian/159868.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部