1.3.1 嵌入式系统的组成
嵌入式系统是具有应用针对性的专用计算机系统,应用是作为一个固定的组成部分“嵌入”在对象中。每个嵌入式系统都是针对特定应用定制的,所以不同的嵌入式系统在功能、性能、体系结构、外观等方面可能存在较大的差异,但从计算机原理的角度看,嵌入式系统也包括硬件和软件两部分。图1-1所示为一个典型的嵌入式系统组成,实际系统中可能不会包括图中所有的组成部分,各个嵌入式系统可以有不同的结构组成。
(1)嵌入式系统硬件
嵌入式系统硬件部分以嵌入式处理器为核心,还包含扩展存储器及外部设备接口控制器。在某些应用中,为提高系统性能,还可为处理器扩展DSP或FPGA等作为协处理器,实现视频编码、语音编码及其他数字信号处理等功能。在一些芯片级系统(System On Chip,SoC)中,将DSP或FPGA与处理器集成在一个芯片内,降低系统成本,缩小电路板面积,提高系统可靠性。
图1-1 典型的嵌入式系统组成
嵌入式系统的硬件由嵌入式微处理器、存储器(RAM、ROM、Flash)、外部电路及外部设备接口构成。嵌入式处理器是系统的核心,负责控制整个系统的各部分有序工作。目前,嵌入式微处理器的品种已经超过上千种,流行的体系结构多达几十个(比较典型的是8051体系和ARM体系结构),寻址空间从64KB~2GB、处理速度从0.1~2000MIPS不等,已形成了一个大家族。嵌入式处理器一般分成嵌入式微处理器(MPU)、嵌入式微控制器(MCU)、嵌入式数字信号处理器(DSP)、嵌入式芯片级系统(SoC)几大类。与通用计算机的微处理器不同,嵌入式微处理器通常把通用计算机中的一些接口电路和板卡功能集成到芯片内部,使嵌入式系统在小体积、低功耗和高可靠性方面更具优势。操作系统和应用程序都固化在ROM中用外围电路为系统提供时钟及系统复位等功能,外部设备一般包括实现人机接口的键盘、显示器等设备及接口电路。
嵌入式系统硬件的可裁剪性可以实现某些特定的功能。
嵌入式系统硬件部分除了嵌入式处理器外,还包括丰富的外部接口。也正是这些丰富的外部接口,才带来嵌入式系统越来越丰富的应用。例如,现在的ARM处理器内部的接口已相当丰富,像I2C、SPI、UART和USB等接口,基本上都已是“标准”配置,在设计系统的时候,通常只要把处理器和外部设备进行物理连接就可以实现外部接口扩展了。同时,虽然随着嵌入式处理器高度集成化技术的发展,可供使用的接口越来越多,功能也越来越强,但是扩展外部接口时所需要的外部接口电路却变得越来越少。
(2)嵌入式系统软件
嵌入式系统的应用程序是针对特定的专业领域,基于相应的嵌入式硬件平台,能完成用户预期任务的计算机软件。应用程序是嵌入式系统中的上层软件,它定义了嵌入式设备的主要功能和用途,并负责与用户进行交互。应用程序是嵌入式系统功能的体现,如飞行控制软件、手机软件、电子地图软件等,一般面向于特定的应用领域。有些应用程序需要嵌入式操作系统的支持,但有些简单的应用场合下不需要专门的操作系统。由于嵌入式应用对成本十分敏感,因此为了减少系统成本,除了精简每个硬件单元的成本外,应尽可能地减少应用程序的资源消耗,并尽可能地优化系统。
嵌入式系统软件部分中的驱动层向下管理硬件资源,向上为操作系统提供一个抽象的虚拟硬件平台,是操作系统支持多硬件平台的关键。在嵌入式系统软件开发过程中,用户的主要精力一般集中在用户应用程序和设备驱动程序开发上。