1.2 嵌入式系统的组成
嵌入式系统是一个在功能、可靠性、成本、体积和功耗等方面有严格要求的专用计算机系统,具有计算机系统组成结构的共性。从总体上看,嵌入式系统的核心部分由嵌入式硬件和嵌入式软件组成,而从层次结构上看,嵌入式系统可划分为硬件层、驱动层、操作系统层以及应用层四个层次,如图1-1所示。
图1-1 嵌入式系统的组成结构
1.嵌入式硬件
嵌入式硬件(硬件层)是嵌入式系统的物理基础,主要包括嵌入式处理器、存储器、I/O(输入/输出)接口及电源等。其中,嵌入式处理器是嵌入式系统的硬件核心,通常可分为嵌入式微处理器、嵌入式微控制器、嵌入式数字信号处理器以及嵌入式片上系统等类型。
1)存储器是嵌入式硬件的基本组成部分,包括RAM、Flash、EEPROM等主要类型,承担着存储嵌入式系统程序和数据的任务。目前的嵌入式处理器中已经集成了较为丰富的存储器资源,同时也可通过I/O接口在嵌入式处理器外部扩展存储器。
2)I/O接口是嵌入式系统对外联系的纽带,负责与外部世界进行信息交换。I/O接口主要包括数字接口和模拟接口两大类,其中数字接口又可分为并行接口和串行接口,模拟接口包括模数转换器(ADC)和数模转换器(DAC)。并行接口可以实现数据的所有位同时并行传送,传输速度快,但通信线路复杂,传输距离短。串行接口则采用数据位一位位顺序传送的方式,通信线路简单,传输距离远,但传输速度相对较慢。常用的串行接口有通用同步/异步收发器(USART)接口、串行外设接口(SPI)、芯片间总线(I2C)接口以及控制器局域网络(CAN)接口等,实际应用时可根据需要选择不同的接口类型。I/O接口主要包括人机交互设备(按键、显示器件等)和机机交互设备(传感器、执行器等),可根据实际应用需求来选择所需的设备类型。
3)嵌入式处理器是一种在嵌入式系统中使用的微处理器。从体系结构来看,与通用CPU一样,嵌入式处理器也分为冯·诺依曼(von Neumann)结构的嵌入式处理器和哈佛(Harvard)结构的嵌入式处理器。冯·诺依曼结构是一种将内部程序空间和数据空间合并在一起的结构,程序指令和数据的存储地址指向同一个存储器的不同物理位置,程序指令和数据的宽度相同,取指令和取操作数通过同一条总线分时进行。大部分通用处理器采用的是冯·诺依曼结构,如Intel 8086,也有不少嵌入式处理器采用冯·诺依曼结构,如ARM7、MIPS和PIC16等。哈佛结构是一种将程序空间和数据空间分开在不同的存储器中的结构,每个空间的存储器独立编址,独立访问,设置了与两个空间存储器相对应的两套地址总线和数据总线,取指令和取操作数能够重叠进行,数据的吞吐率提高了一倍,同时指令和数据可以有不同的数据宽度。大多数嵌入式处理器采用了哈佛结构或改进的哈佛结构,如Intel 8051、Atmel AVR、ARM9、ARM10、ARM11和ARM Cortex-M3等系列嵌入式处理器。
2.嵌入式软件
嵌入式软件运行在嵌入式硬件平台之上,指挥嵌入式硬件完成嵌入式系统的特定功能。嵌入式软件可包括硬件驱动(驱动层)、嵌入式操作系统(操作系统层)以及嵌入式应用软件(应用层)三个层次。另外,有些系统包含中间层,中间层也称为硬件抽象层(Hardware Abstract Layer, HAL)或板级支持包(Board Support Package, BSP),对于底层硬件,它主要负责相关硬件设备的驱动;而对上层的嵌入式操作系统或应用软件,它提供了操作和控制硬件的规则与方法。嵌入式操作系统(操作系统层)是可选的,简单的嵌入式系统无须嵌入式操作系统的支持,由应用层软件通过驱动层直接控制硬件层完成所需功能,也称为“裸金属”(Bare-Metal)运行。对于复杂的嵌入式系统而言,应用层软件通常需要在嵌入式操作系统内核以及文件系统、图形用户界面、通信协议栈等系统组件的支持下,完成复杂的数据管理、人机交互以及网络通信等功能。
从指令集的角度看,嵌入式处理器也有复杂指令集(Complex Instruction Set Computer, CISC)和精简指令集(Reduced Instruction Set Computer, RISC)两种指令集架构。早期的处理器全部采用的是CISC架构,它的设计动机是要用最少的机器语言指令来完成所需的计算任务。为了提高程序的运行速度和软件编程的方便性,CISC处理器不断增加可实现复杂功能的指令和多种灵活的寻址方式,使处理器所含的指令数目越来越多。然而指令数量越多,完成微操作所需的逻辑电路就越多,芯片的结构就越复杂,元器件成本也相应越高。相比之下,RISC架构是一套优化过的指令集架构,可以从根本上快速提高处理器的执行效率。在RISC处理器中,每一个机器周期都在执行指令,无论简单还是复杂的操作,均由简单指令的程序块完成。由于指令高度简约,RISC处理器的晶体管规模普遍都很小而且性能强大。因此,继IBM公司推出RISC架构和处理器产品后,众多厂商纷纷开发出自己的RISC系统,并推出自己的RISC架构处理器,如DEC公司的Alpha、SUN公司的SPARC、HP公司的PA-RISC、MIPS公司的MIPS、ARM公司的ARM等。RISC处理器被广泛应用于消费电子产品、工业控制计算机和各类嵌入式设备中。RISC处理器的热潮出现在RISC-Ⅴ开源指令集架构推出后,涌现出了各种基于RISC-Ⅴ架构的嵌入式处理器,国外的有SiFive公司的U54-MC Coreplex、GreenWaves Technologies公司的GAP8、Western Digital公司的SweRV EH1,国内的有睿思芯科(深圳)技术有限公司的Pygmy、芯来科技(武汉)有限公司的Hummingbird(蜂鸟)E203、晶心科技(武汉)有限公司的AndeStar V5和AndesCore N22,以及平头哥半导体有限公司的玄铁910等。