单片机和嵌入式系统的区别

嵌入式和单片机并不是一对相对的概念,嵌入式系统包括硬件和软件部分,而单片机是单片微型计算机(Single Chip Microcomputer )的简称,即微控制单元(Microcontroller Unit;MCU) 。单片机可以是嵌入式系统的组成部分。我们可以理解为嵌入式系统是一个大类,单片机是其中一个重要的子类。

什么是单片机?

单片机又称单片微控制器,它是将电子计算机的基本环节,如:中央处理器(又称中央处理器,主要由运算器,控制器组成),存储器,总线,输入输出接口等,采用集成电路技术集成在一片硅基片上.由于单片计算机体积很小(仅手指般大小),功能强(具有一个简单计算机的功能)。

什么是嵌入式系统?

嵌入式系统是基于微处理器的计算机硬件系统,其软件设计用于执行专用功能,既可以作为独立系统,也可以作为大型系统的一部分。其核心是一个集成电路,旨在为实时操作执行计算。其软件内容只包括软件运行环境及其操作系统。硬件内容包括信号处理器、存储器、通信模块等在内的多方面的内容。

复杂性从单个微控制器到具有连接外围设备和网络的一套处理器;从无用户界面到复杂的图形用户界面。嵌入式系统的复杂性因设计任务而异。

嵌入式系统应用范围从数字手表和微波到混合动力汽车和航空电子设备。多达 98% 的制造的微处理器用于嵌入式系统。

嵌入式系统如何工作?

嵌入式系统由微控制器或数字信号处理器 (DSP)、专用集成电路 (ASIC)、现场可编程门阵列 (FPGA)、GPU 技术和门阵列管理。这些处理系统与专用于处理电气和/或机械接口的组件集成在一起。

嵌入式系统编程指令,称为固件,存储在只读存储器或闪存芯片中,以有限的计算机硬件资源运行。嵌入式系统通过外围设备与外部世界连接,连接输入和输出设备。

嵌入式系统的基本结构

单片机嵌入式软件架构图怎么做_嵌入式硬件


嵌入式系统的基本结构包括以下组件:

传感器:传感器测量物理量并将其转换为电信号,然后可以由嵌入式系统工程师或任何电子仪器读取。传感器将测量的量存储到存储器中。

AD转换器:模数转换器将传感器发送的模拟信号转换为数字信号。
处理器和 ASIC:处理器评估数据以测量输出并将其存储到内存中。

DA 转换器:数模转换器将处理器提供的数字数据转换为模拟数据

执行器:执行器将 DA 转换器给出的输出与存储的实际输出进行比较,并存储批准的输出。

以常见的几种嵌入式开发板和单片机为例子

树莓派4B:

单片机嵌入式软件架构图怎么做_单片机_02


Broadcom BCM2711, Quad core Cortex-A72 (ARM v8) 64-bit SoC @ 1.5GHz

Raspberry Pi(中文名为“树莓派”,简写为RPi,(或者RasPi / RPI) 是为学习计算机编程教育而设计),只有信用卡大小的微型电脑,其系统基于Linux。

可以将树莓派理解为一台微型电脑,它与我们平时使用的电脑近乎相同。

Arduino:

单片机嵌入式软件架构图怎么做_51单片机_03


AVR单片机、ARM芯片

Arduino是一款便捷灵活、方便上手的开源电子原型平台。

它构建于开放原始码simple I/O介面版,并且具有使用类似Java、C语言的Processing/Wiring开发环境。主要包含两个的部分:硬件部分是可以用来做电路连接的Arduino电路板;另外一个则是Arduino IDE,你的计算机中的程序开发环境。只要在IDE中编写程序代码,将程序上传到Arduino电路板后,程序会告诉Arduino电路板要做什么。

简单来说,arduino是对单片机的二次封装。

Stm32:

单片机嵌入式软件架构图怎么做_单片机_04


ARM Cortex-M内核单片机

stm32全称是意法半导体32位系列微控制器芯片。STM32系列专为要求高性能、低成本、低功耗的嵌入式应用设计的ARM Cortex®-M0,M0+,M3, M4和M7内核。

主流产品(STM32F0、STM32F1、STM32F3)、超低功耗产品(STM32L0、STM32L1、STM32L4、STM32L4+)、高性能产品(STM32F2、STM32F4、STM32F7、STM32H7)

51单片机

单片机嵌入式软件架构图怎么做_stm32_05


51单片机是对兼容英特尔8051指令系统的单片机的统称

51单片机广泛应用于家用电器、汽车、工业测控、通信设备中。因为51单片机的指令系统、内部结构相对简单,所以国内许多高校用其进行单片机入门教学。

51单片机是Intel在1981年推出的由8031微控制器芯片改造升级的、使用CISC指令集的、冯诺依曼架构的、8位的8051微控制器。后Intel将8051微控制器的内核授权给其他芯片厂商,使得市面上广泛出现类似于8051的芯片,这种采用8051内核的芯片被简称为51。

从上述例子中我们能直观地看到这些开发板和单片机所使用处理器的不同,但是树莓派、Arduino、stm32和我们日常使用的手机均是使用arm架构的处理器,那么手机算单片机吗?

要回答这个问题,首先要简单介绍一下ARM处理器产品线。

ARM处理器产品线

ARM Cortex内核系列提供非常广泛的具有可扩展性的性能选项,设计人员有机会在多种选项中选择最适合自身应用的内核。Cortex系列组合大体上分为三种类别:

● Cortex-A—面向性能密集型系统的应用处理器内核

● Cortex-R—面向实时应用的高性能内核

● Cortex-M—面向各类嵌入式应用的微控制器内核

单片机嵌入式软件架构图怎么做_51单片机_06


Cortex-A处理器为利用操作系统(例如Linux或者Android)的设备提供了一系列解决方案,这些设备被用于各类应用,从低成本手持设备到智能手机、平板电脑、机顶盒以及企业网络设备等。

Cortex-R实时处理器为要求可靠性、高可用性、容错功能、可维护性和实时响应的嵌入式系统提供高性能计算解决方案。在数以亿计的产品中得到验证的成熟技术提供极快的上市速度,并利用广泛的 ARM 生态系统、全球和本地语言以及全天候的支持服务,保证快速、低风险的产品开发。

Cortex-M系列基于ARMv7-M架构(用于Cortex-M3和Cortex-M4)构建,针对成本和功耗敏感的MCU和终端应用(如智能测量、人机接口设备、汽车和工业控制系统、大型家用电器、消费性产品和医疗器械)的混合信号设备进行过优化。

总结: Cortex-M 系列是MCU,也就是单片机,Cortex-R 系列处理器提供的性能比 Cortex-M 系列提供的性能高得多,而 Cortex-A 系列专用于具有复杂软件操作系统(需使用虚拟内存管理)的面向用户的应用。

综上所述,只有Cortex-A系列内核的芯片叫处理器。而上述的开发板和单片机只有Raspberry Pi以及我们日常使用的手机是Cortex-A系列内核的芯片。

单片机和嵌入式系统的结构

单片机: 软件 —— 硬件

嵌入式系统: 软件 ——操作系统——硬件

有无操作系统的区别

有操作系统可以实现多任务调度、文件系统、内存管理等复杂功能。

当系统中存在操作系统的时候,设备驱动变成了连接硬件和内核的桥梁。开发者调用统一的系统调用接口来访问各种设备,方便开发。提供操作方便、简单、提供友好的图形GUI和图形界面,追求易学易用。并且可以使用大量开源的软件,工具,库。

提供强大的网络功能,支持TCP/IP协议及其他协议,提供TCP/UDP/IP/PPP协议支持及统一的MAC访问层接口,为各种移动计算设备预留接口。可以实现远程控制。

拥有良好的软件移植性,嵌入式系统和具体应用有机地结合在一起,升级换代也是和具体产品同步进行,具有较长的生命周期。

而对于无操作系统的单片机而言,可以实现的功能相对单一。开发者必须要先了解这个硬件平台,才能进行软件编程,降低了开发效率且软件移植性差。

单片机的优势

从上文所述的种种优缺点来看,单片机对比嵌入式系统似乎一无是处,尽管嵌入式系统的性能强大且可实现功能众多,但嵌入式最大的劣势便是其高昂的价格。

单片机价格低廉,结构简单,使用方便,实现模块化,单片机可靠性高,可工作到10^6 ~10^7小时无故障,处理功能强,速度快。低电压,低功耗,控制功能强,环境适应能力强。