艾巴生活网

您现在的位置是:主页>科技 >内容

科技

单片机和嵌入式的区别终于看懂了_一文详细了解嵌入式和单片机的区别

2024-08-04 09:19:49科技帅气的蚂蚁
其实单片机和嵌入式系统并没有一个标准的定义来区分。对于开发过单片机和嵌入式系统的开发者来说,都有自己的定义。接下来,我们来谈谈对这

单片机和嵌入式的区别终于看懂了_一文详细了解嵌入式和单片机的区别

其实单片机和嵌入式系统并没有一个标准的定义来区分。对于开发过单片机和嵌入式系统的开发者来说,都有自己的定义。接下来,我们来谈谈对这两个概念的理解。

一、什么是嵌入式?

一般来说,嵌入式系统指的是嵌入式系统。IEEE(电气和电子工程师协会)对嵌入式系统的定义是“控制、监视或辅助机器和设备运行的装置”。

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

嵌入式系统是连接应用程序、操作系统和计算机硬件的系统。它是指以应用为中心,以计算机技术为基础,软硬件可定制,其目标用户应用对功能、可靠性、成本、体积、功耗、使用环境有特殊要求的专用计算机系统。一般来说,先设计硬件,在硬件的基础上设计运行软件,把硬件变成智能硬件云,这就是嵌入式。

其实所有带数字接口的设备,比如手表、微波炉、录像机、汽车等。使用嵌入式系统,有些嵌入式系统还包括操作系统,但是大部分嵌入式系统都是由单个程序实现整个控制逻辑的。这是因为嵌入式系统一般用于工业控制,也就是说外设的控制是死的,不需要人工干预,而且还要保证系统的稳定性和可靠性。

我们经常听说公司的招聘要求是嵌入式软件工程师或者嵌入式硬件工程师,也就是说嵌入式系统包括软件和硬件。其实仔细想想就能明白,他们早就运行系统了。当然还有软件和bsp硬件。也就是说,嵌入式系统是软件和硬件的结合。国内普遍认为,嵌入式系统是以应用为中心,以计算机技术为基础,可以根据应用系统对功能、可靠性、成本、体积、功耗的严格要求进行定制的专用计算机系统。

二、什么是微控制器?

单片机是一种集成电路芯片。它是一个集CPU、RAM、ROM、各种I/O口、中断系统、定时器/计数器(可能包括显示驱动电路、脉宽调制电路、模拟多路复用器、A/D转换器等功能于一体的小型完善的微机系统。)具有数据处理能力,广泛应用于工业控制领域。

从80年代,从当时的4位、8位单片机到现在的300M高速单片机。比如最经典的51系列单片机,也不过是一个拇指大小的长方形芯片,共有40个管脚,内含逻辑运算单元。其实也是CPU。

刚接触单片机的时候,我曾经有一个疑问,为什么单片机是黑色的,不能是别的颜色。后来才知道是单片机材质的限制。对于单片机来说,其实一个芯片就是一切,单片机等其他最小系统是为了单片机的正常工作而增加的,比如晶振、5v电源、电感、电阻等。当然,最小系统只能保证单片机的正常运行,几乎不能实现任何基于单片机的应用。

为了实现单片机的应用,必须增加其他外设。例如,按钮、led灯、led屏幕、蜂鸣器和各种传感器。这也是市面上很多公司都在做的单芯片开发板。综上所述,单片机是完成运算、逻辑控制和通信功能的单一模块。也就是说,单片机真的名为“单”。DSP芯片也可以被认为是一个单片微型计算机。当然,它们的性能很强大,但功能还是很单一。简而言之,他们在处理数据和逻辑。

三、嵌入式硬件层

硬件层包括嵌入式微处理器、存储器(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等。

但与全球个人电脑市场不同的是,没有任何嵌入式微处理器能够主导市场。仅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。这其实和单片机差不多。

四、嵌入式软件层

也就是操作系统,包括内核和文件系统,以及更多的顶层应用。嵌入式操作系统一般是Linux或其他类Unix,还有一些实时操作系统(RTOS)如VxWorks、RTEMS、ucOS等。

其中,Linux还包括不同的发行版,如Ubuntu、Redhat、Debian、centos等。都是用Linux的内核,区别就是上面的软件和工具。当然,也没必要太担心标准的问题。这些Linux发行版选择的软件几乎是通用的,比如web服务器用的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主机、USB mini和网卡接口,背面有一个sd卡插槽和HDMI接口。BBB的处理器采用了嵌入式系统中最流行的ARMv7指令集。如今广泛使用的带有指令集的处理器可以得到更多软件的支持。例如,一些操作系统不再支持在ARMv6指令集上运行。例如,Ubuntu在2012年4月放弃了对ARMv6指令集的支持。

ARMv7相对于ARMv6指令集的另一个优势是,使用ARMv7的处理器实际性能更强大。ARMv7与ARMv6相比有很多优点,比如一些显著的改进

七、摘要

以上是一个基本嵌入式核心板的性能参数。与上面提到的单片机的性能参数相比,单片机的处理能力较低,主频大多在几十米,与嵌入式系统的处理速度还有很大差距。另外,单片机不具备图形界面的处理能力,也就是GPU的缺乏使得单片机几乎无法驱动图形界面。

单片机的存储空间和嵌入式处理器是不一样的。单片机的片上存储通常只有几K,受外设的限制不可能大规模增加外设emmc,而嵌入式处理器通常有几百兆的RAM。如此巨大的差异,使得单片机几乎不可能像嵌入式处理器一样运行操作系统,甚至TCP/IP协议栈、USB协议栈。一些高端的单片机,比如ST公司的STM32系列,也许可以运行一些轻量级的系统os和嵌入式网络协议栈。

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

更详细的人工智能、嵌入式、单片机、linux、编程、物联网、海量项目(智能汽车、无人机、智能医疗系统、智能家居、人脸识别、鸿蒙系统系统等)的方法和实践知识。),欢迎关注本站。

审计唐子红