测·控领域专业互动媒体平台
推动测试测量,检测诊断,传感物联,遥测自控智能化发展
当前位置:CK365中国测控网 > 技术中心 > 相关知识 >

单片机和嵌入式的区别终于看懂了

电子设计 2017-11-21 10:58:12

[导读] 单片机和嵌入式,其实没有什么标准的定义来区分他们,对于进行过单片机和嵌入式开发的开发者来说,都有他们自己的定义,接下来,就谈谈本人对这两个概念的理解和感悟。 首先明确概念,什么是单片机,单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器

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

首先明确概念,什么是单片机单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力中央处理器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公司都有很多定位不同处理器,atmelSAM系列是专门为物联网设计,AVR则由于性能十分突出,广泛应用于工业领域。

嵌入式微处理器有各种不同体系,即使在同一体系中也可能具有不同时钟频率数据总线宽度,或集成不同外设接口。据不完全统计,全世界嵌入式微处理器已经超过1000多种,体系结构有30多个系列,其中主流体系有ARM、MIPS、PowerPC、X86SH等。但与全球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内核,不同是上面softwaretools,当然不用太过于担心标准问题,这些Linux发行版选择软件几乎都是比较通用,比如网页服务器Apache、电子邮件服务器postfix、sendmail、文件服务器Samba等。此外还有Linuxstandard base等标准来规范开发者。

类Unix主要是FreeBSD以及Solaris等。

嵌入式领域最常用还是一些实时操作系统,实时操作系统核心就是实时性,本质就是任务处理所华为时间可预测性,即任务需要在规定内时限内完成。IEEE对实时系统定义是“那些正确性不仅取决于计算逻辑结果也取决于产生结果所花费时间系统”。实时操作系统有硬实时软实时之分,硬实时要求在规定时间内必须完成操作,这是在操作系统设计时保证;软实时则只要按照任务优先级,尽可能快地完成操作即可。我们通常使用操作系统在经过一定改变之后就可以变成实时操作系统。

那么实时操作系统Linux这种分时操作系统区别列举如下:

(1)多路性。实时信息处理系统与分时系统一样具有多路性。系统按分时原则为多个终端用户服务;而对实时控制系统,其多路性则主要表现在经常对多路现场信息进行采集以及对多个对象或多个执行机构进行控制。

(2)独立性。实时信息处理系统与分时系统一样具有独立性。每个终端用户在向分时系统提出服务请求时,是彼此独立操作,互不干扰;而在实时控制系统中信息采集对对象控制,也彼此互不干扰。

(3)及时性。实时信息系统对实时性要求与分时系统类似,都是以人所能接受等待时间来确定;而实时控制系统及时性,则是以控制对象所要求开始截止时间或完成截止时间来确定,一般为秒级、百毫秒级直至毫秒级,甚至有要低于100微秒。

(4)交互性。实时信息处理系统具有交互性,但这里人与系统交互,仅限于访问系统中某些特定专用服务程序。它不像分时系统那样能向终端用户提供数据处理服务、资源共享等服务。

(5)可靠性。分时系统要求系统可靠,相比之下,实时系统则要求系统高度可靠。因为任何差错都可能带来巨大经济损失甚至无法预料灾难性后果。因此,在实时系统中,采取多级容错措施来保证系统安全及数据安全。

由于更加可靠及时。嵌入式实时操作系统更加广泛应用于工业控制、航空航天、军工等领域,比如美国航天局NASA近几年发射火星探测器等都是采用RTEMS实时操作系统。

中间层:

所谓中间层就是软件层硬件层之间接口层,其实严格而言也属于软件层。一般开发者称之为BSP,这一层主要负责是向下提供硬件驱动,硬件配置等操作,向上则向软件开发者提供标准API,进行中间层开发开发者通常称为嵌入式驱动工程师。

从这里也可以看出来,嵌入式设计软硬都分不开,既要掌握底层硬件特性以及如何驱动其工作,也要解操作系统相关知识,才可以编写相应功能应用。

因此看一个操作系统是否支持某个芯片或者某个开发板,只要看其源码中是否包含相应芯片或开发板板级支持包。

以上就是本人对嵌入式系统系统理解,接下来再来谈谈嵌入式系统应该跑在什么样硬件上。

谈起嵌入式硬件或者开发板,我想很多人第一印象就是RaspberryPi,是一块只有信用卡大小微型电脑,别看其外表“娇小”,内“心”却很强大,视频、音频等功能通通皆有,可谓是“麻雀虽小,五脏俱全”。树莓派推出后,很多厂商争相推出类似产品,比如香蕉派之类。在这里用TIBeagleboneblack板子进行说明,Beagleboneblack板如下图所示:

 

可以看出体积大小树莓派类似,外设包括有USBhostUSBmini以及网卡接口,,背面还有一个sd卡槽HDMI接口。接下来看看它性能参数:

下表是BBB板树莓派性能参数比较:

 

Beagleboneblack处理器是一块主频达到1GHZTi处理器,基于armcortexa8架构,RAM是512MDDR3,存储器大小为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、以及tiCCS等,这些工具集编译、汇编、链接、仿真为一体,并且由于在Windows下开发,具有友好用户界面,开发者只需编写c代码,然后点击编译链接按键即可,出现错误还可以debug或者仿真,上手还是非常快。而嵌入式开发一般是在Linux下进行,要将c代码在自己主机上编译完成,然后通过系统镜像或者uboot引导将编译好文件烧入开发板,由于主机处理器x86架构,而编写代码是为运行在arm架构或sparc架构处理器上,因此存在一个交叉编译链安装,此外,Linux下没有Windows那样IDE,也就是编译,链接源代码都需要开发者自己完成,一般都是利用GNUmake脚本编写Makefile以及configure文件来完成,Makefile文件中编写如何对c或者h文件编译,也就是编译规则以及依赖文件是什么。这些都需要开发者自己完成。并且以上过程都是在Linux下终端也就是命令行中完成,这也给嵌入式开发增加难度。

[整理编辑:中国测控网]
标签:  单片机[32]    [42]    嵌入式[53]    [178]    区别[3]    终于[0]    看懂[0]    [21]
 

版权与免责声明:

①凡本网注明"来源:中国测控网"的所有作品,版权均属于中国测控网,转载请必须注明中国测控网 www.ck365.cn。违反者本网将追究相关法律责任。
②本网转载并注明自其它来源的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。如其他媒体、网站或个人从本网下载使用,必须保留本网注明的"稿件来源",并自负版权等法律责任。
③如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。

注册成为中国测控网会员

可以无需任何费用浏览专业技术文章

 
 
注册中国测控网会员以便浏览全文