单片机和嵌入式的区别与联系,你真的了解吗?

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

什么是微控制器

什么是嵌入式

那么什么是嵌入式呢?一般来说,嵌入式是指嵌入式系统。IEEE(电气和电子工程师学会)将嵌入式系统定义为“用于控制、监控或协助机器和设备运行的设备”。

嵌入式系统是一种专用计算机系统,是设备或设备的一部分。通常,嵌入式系统是一个嵌入式处理器控制板,其控制程序存储在 ROM 中。

嵌入式系统是将应用程序、操作系统和计算机硬件连接在一起的系统,是一种以应用为中心、基于计算机技术、可定制的硬件和软件系统,针对对功能、可靠性、成本、尺寸、功耗和使用环境有特殊要求的用户应用。

嵌入式硬件层

硬件层包括嵌入式微处理器、存储器(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架构,这是ARM截止2010年最新的指令集架构。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 也包括不同的发行版,例如 Ubuntu、Redhat、Debian、CentOS 等,它们都使用了 Linux 内核,但区别在于上面的软件和工具。当然,标准方面也不必太过担心,这些 Linux 发行版选用的软件几乎都是通用的,例如 Web 服务器有 Apache,邮件服务器有 postfix 和 sendmail,文件服务器有 Samba。此外,还有 Linux 标准库等标准来规范开发者。类 Unix 主要包括 FreeBSD 和 Solaris。

嵌入式领域最常用的一种是实时操作系统。实时操作系统的核心是实时性,其本质是任务处理时间的可预测性,即任务需要在规定的时限内完成。IEEE 对实时系统的定义是“那些正确性不仅取决于计算的逻辑结果,还取决于产生结果所花费的时间的系统”。

实时操作系统有两种类型:硬实时和软实时。硬实时要求操作必须在规定的时间内完成,这在操作系统设计时就已保证;软实时只要求操作按照任务的优先级尽可能快地完成。我们平时使用的操作系统经过一定的改动,就可以变成实时操作系统。

实时操作系统与Linux等分时操作系统的区别如下:

(1)多通道。实时信息处理系统与分时系统一样,具有多通道特性,系统按照分时原则为多个终端用户服务。对于实时控制系统,多通道特性主要体现在对多个现场信息的频繁采集和对多个对象或多个执行器的控制。

(2)独立性。实时信息处理系统与分时系统具有独立性。在分时系统中,各终端用户提出服务请求时,操作相互独立,互不干扰;在实时控制系统中,对象的信息采集与控制也互不干扰。

(3)及时性。实时信息系统的实时性要求与分时系统类似,由人们所能接受的等待时间决定;而实时控制系统的及时性则由控制对象要求的开始时限或完成时限决定,一般在秒级、几百毫秒级,甚至毫秒级,有的甚至小于100微秒。

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

(5)可靠性。分时系统要求系统可靠性。而实时系统对系统可靠性的要求较高。因为任何一个错误都可能带来巨大的经济损失,甚至造成难以预料的灾难性后果。因此,实时系统采用多级容错措施,保证系统安全和数据安全。

由于其可靠性和实时性较好,嵌入式实时操作系统在工业控制、航空航天、军事等领域的应用越来越广泛,如美国宇航局近几年发射的火星探测器均采用的是RTEMS实时操作系统。

嵌入中间层

所谓中间层,就是软件层与硬件层的接口层,严格意义上来说也属于软件层,一般开发者称之为BSP。这一层主要负责向下提供硬件驱动、硬件配置等操作,向上提供标准API给软件开发者。开发中间层的开发者通常被称为嵌入式驱动工程师。

从这里也可以看出嵌入式设计离不开硬件和软件两个方面,需要掌握底层硬件的特点和如何驱动它工作,同时也要了解操作系统的相关知识,才能编写出相应功能的应用程序。

因此要看某个操作系统是否支持某种芯片或者开发板,只要检查它的源代码中是否包含了对应芯片或者开发板的板级支持包即可。

嵌入式系统应该运行在什么样的硬件上?

说到嵌入式硬件或者开发板,我想很多人的第一印象就是树莓派,一个信用卡大小的微型计算机。虽然看上去“小”,但里面却很强大,有视频、音频等功能。树莓派推出后,很多厂商都争相推出类似的产品,比如香蕉派 (Banana Pi)。

另外还有TI的Beagleboneblack板,尺寸和Raspberry Pi差不多,外设包括USB host、USB mini和网卡接口,背面还有SD卡槽和HDMI接口。BBB的处理器采用ARMv7指令集,这是目前嵌入式系统中最流行的指令集。使用当今广泛使用的指令集的处理器可以获得更多软件的支持。例如,一些操作系统不再支持在ARMv6指令集上运行。例如Ubuntu在2012年4月放弃了对ARMv6指令集的支持。

ARMv7 指令集相对于 ARMv6 的另一个优势是,使用 ARMv7 的处理器的实际性能更加强大。ARMv7 相对于 ARMv6 有很多优势,比如一些显著的改进:实现了超标量架构,纳入了 SIMD 操作指令,改进了分支预测算法,这些都大大提高了一定的性能。

总结

以上是一个基本的嵌入式核心板的性能参数,相比于上面提到的MCU的性能参数,MCU的处理能力相对较低,主频大多在几十M左右,与嵌入式系统几百、几千M的处理速度相差甚远。另外,MCU不具备图形界面的处理能力,也就是缺少GPU,使得MCU几乎不可能驱动图形界面。

MCU的存储空间与嵌入式处理器不在一个层次上,MCU通常只有几KB的片上存储,且由于外设的限制,不太可能大规模增加外设eMMC,而嵌入式处理器通常有几百兆的RAM。如此巨大的差异,使得MCU几乎不可能像嵌入式处理器那样运行操作系统,甚至连TCP/IP协议栈、USB协议栈都无法运行。一些高端的MCU,比如ST的STM32系列,或许可以运行一些轻量级的系统OS和嵌入式网络协议栈,比如IwIP协议栈。

嵌入式处理器丰富而强大的性能决定了它能够完成更多单片机所无法完成的应用,比如网络通讯功能、视频传输处理功能等,当增加外设存储时,嵌入式处理器可以轻松运行各种Linux系统和图形GUI界面。

单片机

大学时光转瞬即逝,论文写作感恩师恩,母校之情铭记于心

2024-6-9 9:02:50

单片机

基于单片机的智能平衡小车设计:自主直立、自动循迹、主动避障

2024-6-9 10:04:55

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索