1.4 嵌入式系统的组成
嵌入式系统是一个专用计算机系统,由硬件与软件组成。如图1.1所示,软件可分为三层,即驱动层、OS层与应用层。硬件可分为处理器核、片上功能模块与外部设备三部分。
图1.1 典型的嵌入式系统组成
驱动层指设备驱动程序、硬件抽象层(HAL)或板级支援包(BSP),可以包括在操作系统中,作为操作系统内核的组成部分。在驱动层中还应包括Bootloader,是嵌入式系统上电复位后执行的第一个程序——开机程序,负责初始化硬件、装载代码到RAM等工作。PC中类似工作由BIOS(Basic Input /Output System)来做,嵌入式系统中无通用BIOS,用户必须自己编写Bootloader程序。嵌入式系统通常有两种启动方式,一种是直接从Flash启动,另一种是将压缩的内存映像文件从Flash中复制、解压到RAM,再从RAM启动。Bootloader完成基本软、硬件初始化后,若有操作系统,则将控制权转交操作系统;若没有操作系统,则直接执行应用程序或等待用户命令。
操作系统(OS)是嵌入式系统中的重要软件,管理嵌入式系统中的资源,向上向用户提供使用资源的接口,向下对硬件进行操作控制。但并非所有的嵌入式系统都需要操作系统。嵌入式操作系统种类很多,后面专辟一节介绍。
应用程序是向用户提供服务的程序,从功能上看,其与PC应用程序无多大区别,不同之处是其开发过程,通常采取交叉开发方式进行开发。
处理器核是嵌入式系统的大脑,种类很多,有ARM、MIPS、PowerPC、SPARC、MCS等,后面将专辟一节进行介绍。
片上功能模块是指UART、IIS、ADC/DAC、LCD、DMA与Timer等与处理器核集成在一起的独立功能模块或设备控制器。独立功能模块可单独提供某种使用功能,如Timer可定时、ADC/DAC可进行模数/数模转换。设备控制器可用于挂接外部设备,如LCD控制器可挂LCD,UART控制器可挂接RS-232接口。
外部设备指输入/输出接口,人机交互接口与通信接口及电源、复位电路、存储器等处理器片外的设备。其中,输入/输出接口就是通常所说的I/O口,提供嵌入式处理器与外设之间连接所需的控制信号及数据通道,是嵌入式系统中最庞大的部分。电源电路提供嵌入式系统所需电源,一般为±3/5V DC。时钟电路提供嵌入式系统所需时钟信号,可由一外部时钟源或一晶振电路产生。复位电路提供嵌入式系统复位信号。人机交互接口有LCD、触摸屏、键盘与鼠标等。存储器种类也很多,通常有如下几类;
SRAM:静态随机存储器,速度高,体积大,成本高,无需刷新;
DRAM:动态随机存储器,速度低,体积小,成本低,需刷新;
SDRAM:同步动态随机存储器,与DRAM同属一类存储器,但速度比DRAM快;
ROM:只读存储器;
Flash:只读存储器,也称闪存;
EEPROM:电可擦除的只读存储器。