嵌入式基础知识理论概述
摘要:
当前我们正步入新时代、正面临新态势、正迈进新征程,嵌入式已经融入到我们的各行各业、日常生活之中,嵌入式无处不在。简要概述了嵌入式基础知识,供读者对嵌入式有一个基础的认知。
关键词:ARM 处理器 芯片 RISC(精简指令集) CISC(复杂指令集) MCU MPU DSP FPG
嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
(一)ARM的理解
ARM首先是一个公司,是一家全球半导体行业技术领先的公司,主要业务是设计RISC嵌入式处理器。
RISC:精简指令集,指的是一种指令类型比较少的计算机指令,因为其执行速度快而 被广泛应用,缺点就是指令类型少,实现的功能相对单一。
CISC:复杂指令集,指的是一种指令类型比较丰富的计算机指令,因为其指令丰富,运算效率高而被广泛使用,缺点就是指令执行速度相对较慢(它是通过微程序触发实现)。
(2)ARM一类芯片或产品的统称
因为很多的公司,在拿到ARM公司的授权以后生产了很多的芯片或产品,像我们经常使用的STM32F103这一系列就是Cortex-M3系列,就是使用的ARM的M系列的核等等。
(3)ARM是采用RISC处理器体系架构技术的名称
现在几乎大家都把RISC处理器架构称为ARM架构了,所以ARM也指一种体系架构,即RISC处理器体系架构。
(二)、ARM和intel的区分
ARM和intel的区分,其实就是RISC和CISC的区分,两家公司代表计算机指令集的两个极端。区别也在于两种指令集的区别。
ARM因其精简指令集,指令执行速度快,所以广泛应用于嵌入式领域,实现一些功能相对单一的产品。
intel因其CISC指令类型丰富,执行效率高,所以广泛应用于PC,高级智能机等领域。
(三)、ARM和STM32的关系
ARM和STM32的关系就是,STM32的体系结构就是ARM架构。
STM32是由ST公司研发的产品,而这个产品的产生是ST公司在购买到了ARM公司的授权以后,经过ST公司自己的添加外设,设置结构等方式而生产的产品。但是这个产品的核心,内核的结构是由ARM公司设计的。里面的IP核的设计就是ARM公司授权给ST公司,ST公司根据这个IP核的设计结构进行添加,设计进而生产,就有了我们日常使用的一系列STM32产品。
(一)、MCU
微控制器,俗称单片机。之所以称之为单片机,是因为不同于其它处理器,它将CPU、RAM(随机存储器)、ROM(只读存储器)、I/O、中断系统、定时器等各种功能外设资源集中到一个芯片上。这个芯片就是一个完整的微型计算机,只需要供电或加上极少的外围电路即可工作。
常见的MCU有80C51系列单片机、Atmel公司的AVR系列单片机、 Microchip公司的PIC系列单片机、TI公司的MSP430系列单片机、 ST公司的STM32系列单片机、NXP公司的LPC1700系列单片机。早期的MCU主要是8位,后面发展出16位,再到现在主流的已经是32位。此外,主频不断提高、ROM不断增大、外设不断增多,单片机的应用领域和场合越来越大。
(二)、MPU
微处理器,类似通用计算机的CPU,主要负责处理计算,需要外加RAM、Flash、电源等电路。
MCU和MPU的本质区别是因为应用场景的定位不同。 MPU注重通过相对强大的运算/处理能力,执行复杂多样的大型程序,因此常需要外挂运行内存(RAM)、存储器(Flash)等。 MCU注重功能较为单一、价格敏感的应用场景,不需要相对强大的运算/处理能力,更多的是对设备管理/控制,因此不需要大容量的RAM、Flash来运行大型程序,于是将RAM、Flash全集成在一起,大家也就俗称“单片机”。
随着市场及需求的变化,MPU和MCU的界限日趋模糊。高端的32位MCU主频越来越高,已经反超低端MPU主频,MCU也有外挂RAM和Flash的场景,依靠硬件结构去区分逐渐困难。
读者可以简单的认为,嵌入式微处理器MPU,通常运行Linux、 Android等非实时操作系统,应用在高端应用市场,比如智能手机、 路由器等消费电子市场领域,而嵌入式微控制器MCU,常用运行裸机或实时性操作系统,应用在中、低端应用市场,比如家电控制领域、工业控制领域等。
总的来说MCU,主要应用于微控制领域,运行逻辑程序或实时性操作系统的场合。而MPU,主要就是针对跑Linux,Android操作系统等程序复杂,需要操作系统进行资源管理的应用。
(三)、DSP
DSP通常有两个含义。
数字信号处理(Digital Signal Processing, DSP),是一门学科技术,使用数值计算的方式对信号进行加工处理的理论和技术。
数字信号处理器(Digital Signal Processor, DSP),是一种专门用于数字信号处理领域的微处理器。
DSP芯片为了达到快速处理数字信号处理的目的,采用了许多特殊软硬件结构。首先是采用哈佛结构,(哈佛结构就是将程序指令和存储数据存在不同的存储器上)将程序和数据分开,同时为处理器提供指令和数据。然后采用多级流水线技术,在指令周期内可以执行更多指令。加上专用的硬件乘法器、特殊的DSP指令, 使得DSP芯片在计算处理上,远超同主频的MCU或MPU。
DSP芯片拥有强大的数据处理能力,在数字信号处理领域,如调制/解调、数据加密/解密、图形处理、数字滤波、音频处理等计算密集型的场景广泛应用。
(四)、FPGA
现场可编程门阵列,由可编程互连连接的可配置逻辑块(CLB) 矩阵构成的半导体器件。通俗地说,FPGA就是一个可以通过编程改变内部硬件结构,实现所需功能的芯片。前面的MCU、DSP等都是硬件资源固定,只能通过修改软件实现所需功能。而FPGA是通过硬件描述语言或其它方式修改硬件,将FPGA变为CPU或专用芯片,来实现控制或算法。因此,MCU、DSP能够实现的功能,FPGA理论上都可以实现,反之则不一定。
FPGA主要有两大优势:高速和灵活。FPGA使用硬件处理数据,采用并发和流水技术,多个模块之间可以同时并行执行。FPGA可以根据现场情况配置器件功能,能够在技术和需求变化时重新配置,实现系统优化升级。在某些通信领域,需要处理高速的通信协议,同时通信协议随时都可能修改,不适合做成专门的芯片,FPGA的高速、灵活就便成了首选。
虽然FPGA功能强大,但实际工程项目中,还需考虑硬件成本、开发难度和市场需求等因素。一些简单的控制场合,尽管FPGA和MCU都能胜任,但MCU价格低廉和研发简单,更划算。
(一)、随机存储器(Random Access Memory,RAM)
RAM能够随时在任一地址读出或写入内容。优点是读/写方便、使用灵活;缺点是不能长期保存信息,一旦停电,所存信息就会丢失。RAM用于二进制信息的临时存储或缓冲存储。
RAM主要有两大类存储设备,即静态RAM(SRAM)和动态RAM(DRAM)。两者都是易失性存储器,它们之间的最大差别是存储于其中的数据的寿命。
(1)SRAM的存储单元电路是以双稳态电路为基础的,因此状态稳定,只要不掉电,信息就不会丢失。
(2)DRAM的存储单元是以电容为基础的,电路简单,集成度高,功耗小,但DRAM即使不掉电也会因电容放电而丢失信息,需要定时刷新。
(二)、只读存储器(Read-Only Memory,ROM)
ROM中存储的数据可以被任意读取,断电后,ROM中的数据仍保持不变,但不可以写入数据。
ROM在嵌入式系统中非常有用,常常用来存放系统软件(如ROM BIOS)、应用程序等不随时间改变的代码或数据。
ROM存储器按发展顺序可分为:掩膜ROM、可编程ROM(PROM)和可擦写可编程ROM(EPROM)。
(三)、介于两者之间的混合存储器
混合存储器既可以随意读写,又可以在断电后保持设备中的数据不变。混合存储设备可分为三种:
(1)EEPROM(Electrical Erasable Programmed Programmable ROM)
EEPROM是电可擦写可编程存储设备,与EPROM不同的是EEPROM是用电来实现数据的清除,而不是通过紫外线照射实现的。
EEPROM允许用户以字节为单位多次用电擦除和改写内容,而且可以直接在机内进行,不需要专用设备,方便灵活,常用作对数据、参数等经常修改又有掉电保护要求的数据存储器。
(2)NVRAM
NVRAM通常就是带有后备电池的SRAM。当电源接通的时候,NVRAM就像任何其他SRAM一样,但是当电源切断的时候,NVRAM从电池中获取足够的电力以保持其中现存的内容。
NVRAM在嵌入式系统中使用十分普遍,它最大的缺点是价格昂贵,因此,它的应用被限制于存储仅仅几百字节的系统关键信息。
(3)FLASH
Flash(闪速存储器,简称闪存)是不需要Vpp电压信号的EEPROM,一个扇区的字节可以在瞬间(与单时钟周期比较是一个非常短的时间)擦除。
Flash比EEPROM优越的方面是,可以同时擦除许多字节,节省了每次写数据前擦除的时间,但一旦一个扇区被擦除,必须逐个字节地写进去,其写入时间很长。