嵌入式系统源于微型计算机,是嵌入到系统对象体系中去,实现嵌入对象智能化的计算机。
嵌入式系统分类
(1) 嵌入式微处理器(EMBEDDED MICROPROCESSOR UNIT, EMPU)
• 嵌入式微处理器的基础是通用计算机中的CPU。在应用中,将微处理器装配在专门设计的电路板上,只保留和嵌入式应用有关的母板功能,这样可以大幅度减小系统体积和功耗。为了满足嵌入式应用的特殊要求,嵌入式微处理器虽然在功能上和标准微处理器基本是一样的,但在工作温度、抗电磁干扰、可靠性等方面一般都做了各种增强。
• 和工业控制计算机相比,嵌入式微处理器具有体积小、重量轻、成本低、可靠性高的优点,但是在电路板上必须包括ROM、RAM、总线接口、各种外设等器件,从而降低了系统的可靠性,技术保密性也较差。
• 嵌入式处理器目前主要有ADVANCED RISC MACHINES公司的ARM、SILICON GRAPHICS公司的MIPS、IBM和MOTOROLA的POWER PC 、INTEL的X86和I960芯片、AMD的AM386EM、HITACHI的SH RISC芯片。
(2) 嵌入式微控制器(MICROCONTROLLER UNIT , MCU)
• 嵌入式微控制器又称单片机。嵌入式微控制器一般以某一种微处理器内核为核心,芯片内部集成ROM、EPROM、RAM、Flash RAM、总线、总线逻辑、定时/计数器、WatchDog、串行口、脉宽调制输出、A/D等各种必要功能和外设。与嵌入式微处理器相比,微控制器的最大特点是单片化,体积大大减小,从而使功耗和成本下降、可靠性提高。
• 和嵌入式微处理器相比,微控制器的最大特点是单片化,体积大大减小,从而使功耗和成本下降、可靠性提高。微控制器是目前嵌入式系统工业的主流,占整个嵌入式市场份额的70%。微控制器的片上外设资源一般比较丰富,适合于控制,因此称微控制器。
• 通用系列:8051、P51XA、MCS-251、MCS-96/196/296、C166/167、MC68HC05/11/12/16、68300等。
• 半通用系列:支持USB接口的MCU 8XC930/931、C540、C541;
• 专用系列:支持I2C、CAN-Bus、LCD的MCU及兼容系列。
• 目前有许多微处理器逐渐演化为微控制器(MCU)比如ARM,因此这些概念开始交叉融会。
(3) 嵌入式DSP处理器( EMBEDDED DIGITAL SIGNALPROCESSOR , EDSP)
• DSP 处理器对系统结构和指令进行了特殊设计,使其适合于执行DSP算法,编译效率较高,指令执行速度也较高。在数字滤波、FFT、谱分析等方面,DSP算法正在大量进入嵌入式领域,DSP 应用正从在通用单片机中以普通指令实现DSP功能,过渡到采用嵌入式DSP处理器。
• 嵌入式DSP处理器两个发展来源:
① DSP处理器经过单片化、EMC改造、增加片上外设成为嵌入式DSP处理器,TI的TMS320C2000/C5000等属于此范畴;
② 在通用单片机或嵌入式片上系统(System On Chip) SOC中增加DSP协处理器,例如Intel的MCS-296和Infineon(Siemens)的TriCore。
• 嵌入式系统的智能化是推动嵌入式DSP处理器发展的另一个因素,如:各种带有智能逻辑的消费类产品,生物信息识别终端,带有加解密算法的键盘,ADSL接入、实时语音压解系统,虚拟现实显示等。这类智能化算法一般运算量较大,特别是向量运算、指针线性寻址等较多,而这些正是DSP处理器的长处所在。
• 嵌入式DSP处理器有代表性的是:TI的TMS320系列和Motorola的DSP56000系列。
(4) 嵌入式片上系统(SYSTEM ON CHIP ,SOC)
• SOC是嵌入式系统的一种新形式,是将微处理器、模拟IP核、数字IP核和存储器(或片外存储控制接口)集成在单一芯片上。它通常是客户定制的,或是面向特定用途的标准产品,在一块硅片里实现了能完成一个计算机系统功能所需要的硬件集成电路和嵌入式软件,属于计算机与微电子的新兴交叉学科。
• SoC 的设计基础是IP(Intellectual Property)复用技术。
• IP 模块是一种预先设计好,已经过验证,具有某种确定功能的集成电路、器件或部件。
• 2 种不同形式:软IP 核(soft IP core)和硬IP 核(hard IP core)
• SOC的优势:
• 降低耗
• 减少体积
• 丰富系统功能
• 提高速度
• 节省成本
再附加一下cpu、mpu、mcp、soc、sopc的说明。
1、cpu
cpu(central processing unit)是一台计算机的运算核心和控制核心,CPU由运算器、控制器和寄存器以及实现他们联系的数据、控制总线构成,cpu典型的三级流水线操作是取值、译码、执行,差不多所有CPU的执行原理可以分为四个阶段:提取(Fetch)、解码(Decode)、执行(Execute)和写回(Writeback),CPU从存储器或高速缓冲存储器中取出指令,放入指令寄存器,并对指令译码,并执行指令,所谓的计算机的可编程性主要指对CPU的编程。
2、mpu
mpu(micro processor unit),叫微处理器,与微控制器(mcu)不同,通常可以看做一个功能强大的cpu,这种芯片一般用于个人计算机或高端工作站的核心CPU,例如intel的X86,ARM的一些Cortex-A,飞思卡尔的i.MX6、全志A20、TI AM335X等都属于MPU。
3、mcu
mcu(micro control unit),叫微控制器,即平常所说的单片机,随着大规模集成电路的发展,将计算机CPU、RAM、ROM、定时器、计数器和多种I/O接口集成在一片芯片上**,形成芯片级的芯片,比如51,STM,Cortex-M这些芯片,相当于内部集成了整个计算机系统,可以加一些简单的外围器件(电阻、电容等)即可运行代码**,其有处理器,有外围接口,基于已有的系统架构进行开发,应用者主要工作是添加外围设备和开发软件程序,而像ARM(Cortex-A系列,前文已经说明此为mpu)直接放代码运行不了,因为本质上是cpu,必须添加响应RAM或ROM才能运行代码。
4、soc
soc(system on chip),叫片上系统,MCU只是芯片级的芯片,而SOC是系统级芯片,它既包含了mcu中的内置RAM、ROM等资源,也拥有mpu的强大功能,可以放系统级的代码,也就是说可以运行操作系统。
5、sopc
sopc(system on a programmable chip),叫可编程片上系统,它可更改硬件配置,即自己构造芯片。
区别:
1、mcu和mpu的区别
mcu在一块芯片中集成了整个计算机系统,可以直接加简单的外围器件运行代码,本质上是一个完整的单片机,有处理器、有各种接口,所有开发基于已经存在的系统架构,应用者只需添加外围设备和开发软件程序。
mpu是增强版的cpu,直接放代码是运行不了的。
2、cpu和soc的区别
soc可以认为是将mcu集成化和mpu强处理能力优点二合一,其中mcu是cpu集成了各种外设,mpu是增强版的cpu。
cpu通过总线连接各种外设,mcu通过芯片内部总线连接芯片外设接口。目前大多数芯片都属于soc,没有纯粹的cpu了。
可见文章嵌入式系统的分类与组成
目前,我们进行的编程基本是在ARM KEIL上进行的,keil软件的使用,之后再重新开一篇文章介绍。
这里是想说当我们选取**一个单片机(也就是MCU)**的时候,比如我购买了正点原子的精英STM32开发板F103ZET6,并不代表我买回来的这个东西是STM32F103ZET6,而是正点原子他们这个公司团队,把ST公司的STM32F103ZET6这块芯片拿出来,与其他一些器件诸如光敏传感器、CAN接口、EEPROM、USB接口等一起集成了这块正点原子的板子。也就是说上面那个小小的黑色正方形才是STM32F103ZET6。
因此大家要清楚,当你把一个芯片了解透彻之后,可以随心所欲的,自己使用CAD软件,画出电路图sch,任意增改外设器件,做出自己的嵌入式系统,物联网应用系统。所以对于野火的开发板和正点原子的开发板,无非就是外设和教学视频的差异,对于你的学习是毫无影响的,换言之,如果你组建了自己的团队,你也可以开发出自己团队的开发板,集成外设拿出去教学,前提是拿到ST公司设计芯片的使用权。
你从淘宝或者京东买回一个开发板,或者说你直接买回芯片,自己拿回来增加外设集成,那个开发板上都会有对应的芯片,对于不同的芯片,我们需要先在keil pack的官网上下载使用的文件,网址如下:ARM KEIL 安装包下载
点进去之后,可以看到,显示出来的是按照字母排列的公司名称顺序,以及他们公司对应的芯片产品,比如第一个就是ABOV,这是韩国的一家单片机生产公司,紧随其后的就是他们公司的芯片产品,我们只需要找到我们需要的芯片安装包就好了,ctrl+f,找到对应的STM系列下载安装即可。
看到一篇文章,把嵌入式操作系统分为嵌入式操作系统和实时操作系统,这就是把二者设为并列的概念。
对于实时操作系统来讲,实时操作系统的内核是可以抢占的,因为windows的内核是不可以抢占的,所以它不是操作系统,而linux是软实时的,就是说一部分系统内核可以抢占,而另一部分不可以抢占。
而嵌入式操作系统究竟算不算实时系统呢,普通的嵌入式系统应该是不算的,我们正常也见不到,我们烧入的都是嵌入式实时系统,于是又有了嵌入式系统实时性的研究和嵌入式应用系统的实时性设计。
可见文章嵌入式系统的实时性问题
嵌入式操作系统
常见的嵌入式系统:WinCE、PalmOS、Symbian、pSOS、Nucleus、ThreadX 、Rtems 、INTEGRITY、OSE、C ExecuTIve
RTOS(实时操作系统)
μClinux、μC/OS-II、eCos、FreeRTOS、mbed OS、RTX、Vxworks、QNX、NuttX,而国产的嵌入式操作系统包括都江堰操作系统(djyos)、Alios Things、Huawei LiteOS、RT-Thread、SylixOS。
详细介绍可见嵌入式操作系统和RTOS(实时操作系统)介绍
正常我们买回来的成品单片机板子,就是正常的裸机状态,是没用嵌入式操作系统的,所以需要我们学习,如何为单片机烧入一个嵌入式系统,我们常用的就是RTOS(实时操作系统)中的μClinux、μC/OS-II、Vxworks。
这篇文章就是关于概念的梳理,没有代码,下面将继续学习嵌入式的代码编写,到最后实现一个完整的物联网系统,与诸君共勉!