嵌入式与单片机之间的关系如下:
嵌入式系统是一个大类,单片机是其中一个重要的子类。嵌式系统像是一个完整的计算机,而单片机更像是一个没有外设的计算机。
以前单片机包括的东西并不算多,两者的硬件区别较为明显。但是,随着半导体技术的突飞猛进,现在各种硬件功能都能被做进单片机之中。所以,嵌入式系统和单片机之间的硬件区别越来越小,分界线也越来越模糊。
于是,人们倾向于在软件上进行区分。
从软件上,行业里经常把芯片中不带MMU(memory management unit,内存管理单元)从而不支持虚拟地址,只能裸奔或运行RTOS(实时操作系统,例如ucos、华为LiteOS、RT-Thread、freertos等)的system,叫做单片机(如STM32、NXP LPC系列、NXP imxRT1052系列等)。
同时,把芯片自带MMU可以支持虚拟地址,能够跑Linux、Vxworks、WinCE、Android这样的“高级”操作系统的system,叫做嵌入式。
在某些时候,单片机本身已经足够强大,可以作为嵌入式系统使用。它的成本更低,开发和维护的难度相对较小,尤其是针对一些针对性更强的应用。而嵌入式系统理论上性能更强,应用更广泛,但复杂度高,开发难度大。
嵌入式,一般是指嵌入式系统,嵌入式开发,就是对嵌入式系统的开发。IEEE(美国电气和电子工程师协会)对嵌入式系统的定义是:“用于控制、监视或者辅助操作机器和设备的装置”。
国内学术界的定义更为具体一些,也更容易理解:嵌入式系统,是以应用为中心,以计算机技术为基础,软件硬件可裁剪,适用于对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。 以应用为中心,说明嵌入式系统是有明确实际用途的。
以计算机技术为基础,说明它其实就是一种特殊的计算机。软硬件可裁剪,说明它有很强的灵活性和可定制能力。
嵌入式系统的核心,就是嵌入式处理器。嵌入式处理器一般分为以下几种典型类型: 嵌入式微控制器MCU(Micro Control Unit) MCU内部集成ROM/RAM、总线逻辑、定时/计数器、看门狗、I/O、串口、A/D、D/A、FLASH等。典型代表是8051、8096、C8051F等。
嵌入式DSP处理器(Digital Signal Processor) DSP处理器专门用于信号处理,在系统结构和指令算法进行了特殊设计。在数字滤波、FFT、频谱分析中广泛应用。
典型代表是TI(德州仪器)公司的TMS320C2000/C5000系列。 嵌入式微处理器MPU(Micro Processor Unit) MPU由通用处理器演变而来,具有较高的性能,拥有丰富的外围部件接口。典型代表是AM186/88、386EX、SC-400、PowerPC、MIPS、ARM系列等。
此外,还有嵌入式片上系统SoC(System on Chip)和可编程片上系统SoPC(System on a Programmable Chip)。 我们的单片机,就属于上述的第一种——MCU(嵌入式微控制器)。
单片机,又称为单片微控制器,英文叫Single-Chip Microcomputer。它其实就是一种集成电路芯片,是通过超大规模集成电路技术,将CPU、RAM、ROM、输入输出和中断系统、定时器/计数器等功能,塞进一块硅片上,变成一个超小型的计算机。
单片机技术从上世纪70年代末诞生,早期的时候是4位,后来发展为8位,16位,32位。它真正崛起,是在8位时代。
8位单片机功能很强,被广泛应用于工业控制、仪器仪表、家电汽车等领域。我们在研究单片机的时候,经常会听到两个词——51单片机、STM32。我来介绍一下它们究竟是什么。
51单片机,其实就是一系列单片机的统称。该系列单片机,兼容Intel 8031指令系统。它们的始祖,是Intel(英特尔)的8004单片机。
STM32,是意法半导体公司推出的基于ARM Cortex-M内核的通用型单片机。STM32的硬件配置可以满足大部分的物联网开发需求,开发工具和相关的文档资料齐全,已经成为目前单片机学习的首选对象。
微控制器和处理器
微控制器 - 微控制器英文写法是 Microcontroller Unit,简写为MCU。微控制器是将计算机运行所需要的一些资源(如ROM、RAM、I/O、定时器、ADC、DAC等)集成到了一个芯片上,可称之为单片微型计算机(Single Chip Microcomputer),俗称为单片机。因软件存放在微控制器的存储器中,与硬件紧密配合使用,又称之为嵌入式微控制器(Embedded Microcontroller Unit,EMCU)。
处理器 - 处理器又称为中央处理器(CPU,Central Processing Unit),处理器一般需要依赖外部的硬盘或存储介质进行运行,系统资源丰富、复杂。是计算机、电脑、平板和手机等的核心。
根据处理性能的不同,运行的操作系统也有所不同。微控制器多运行实时操作系统(RTOS),对任务时间性要求比较高。处理器多运行Windows、Linux、Android、iOS等操作系统,对任务处理能力要求比较高。
物联网操作系统的特点
一般地,对实时性控制要求比较高的应用MCU用不到RTOS,如电机控制等。而随着物连接到网络的发展,对通信协议有了新的需求,RTOS就可以比较好地对通信进行管理。物联网操作系统没有严格的定义,可以将物联网操作系统特性,简单地概况如下:
连接 - 互联互通、互操作性
安全 - 设备安全、通信安全、数据安全。
能效 - 设备能耗管理
通信 - 支持通信协议,如低功耗蓝牙、以太网、Thread、 Wi-Fi、Zigbee、6LoWPAN、LPWAN(LoRa、NB-IoT…)等等。
标准 - 开放标准,开放的标准有利于设备的互联互通。
微控制器操作系统
ARM mbed OS - ARM公司专为物联网 (IoT) 中的“物体”设计的开源嵌入式操作系统,主要支持ARM Cortex-M微控制器。
FreeRTOS - 非常流行的嵌入式操作系统,支持多种微控制器。
Contiki OS - Contiki是一个开源的物联网操作系统。 Contiki将小型低成本、低功耗微控制器连接到互联网。Contiki是构建复杂无线系统的强大工具箱。
LiteOS - 类UNIX操作系统,多用于无线传感网络。
RIOT - 物联网友好的操作系统。RIOT实现了所有物联网相关的开放标准,支持连接、安全、耐用和隐私。
TinyOS - 适用于低功耗无线设备,用于无线传感器网络。
Huawei LiteOS - 华为公司的操作系统。Huawei LiteOS是轻量级的开源物联网操作系统、智能硬件使能平台,可广泛应用于智能家居、穿戴式、车联网、制造业等领域,使物联网终端开发更简单、互联更加容易、业务更加智能、体验更加顺畅、数据更加安全。
μTenux - 基于ARM Cortex M0-M4的开源物联网嵌入式操作系统。内核源于T-kernel。
RT-Thread - 中国的开源嵌入式实时操作系统。
ChibiOS/RT - 提供了一个嵌入式应用的完整开发环境(RTOS、HAL、外设驱动、支持文件和工具)。
Micrium uCOS - 免费商业化应用需授权,2016年为Slicon Labs收购。
Unison - Unison RTOS是面向IoT和M2M通信嵌入式应用的实时操作系统。
Zephyr - Zephyr项目是一个可扩展的实时操作系统(RTOS),支持多种硬件架构,针对资源有限的设备进行了优化,并以安全性为基础构建。由Linux基金会托管。
eCos - eCos是面向嵌入式应用的免费开源实时操作系统。高度可配置性使得eCos能够根据精确的应用需求进行定制,提供最佳的运行时性能和优化的硬件资源占用。
TI-RTOS Kernel - TI公司的RTOS。
NXP MQX - NXP(原Freescale公司)的RTOS。
处理器操作系统
Android Things, Google物联网操作系统。
Windows 10 IoT,微软物联网操作系统。
SylixOS,是一款嵌入式硬实时操作系统。
还有更多的操作系统,在此不一一列出。
RT-Thread Smart 定位于成为一个专业的面向实时应用场合的高性能混合微内核操作系统。填补传统 RTOS 和大型操作系统 Linux 之间的空白,在实时性、成本、安全性、启动速度等方面取得最佳的平衡。
01 RT-Thread Smart和Linux相比:
启动速度最快可在几百毫秒以内
抢占式调度内核,任务响应性能相比 Linux 更加优秀。
OS占用内存空间以及Flash空间极小,可最大化节约物料成本;
支持Windows下开发应用程序,开发环境更加友好;
系统和应用分离,方便应用程序和系统单独发布、单独升级;
重大组件和服务运行在用户态,操作系统更加轻量、安全;