随着技术的不断发展,嵌入式系统已成为将先进的计算机技术、半导体技术和电子技术等各种技术相结合的产物,这一点决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。图1-3给出了通常意义上嵌入式系统的组成。
由图1-3可见,嵌入式系统总体上可划分为硬件和软件两大部分:
·与普通PC系统类似,嵌入式系统硬件部分通常包含高性能微处理器、I/O接口、电源管理、存储器及外围电路等,但是它与一般的PC系统有很大的区别,因为嵌入式系统在功耗、体积、成本、可靠性、速度、处理能力、电磁兼容性等方面均受到应用要求的制约。
·软件部分是嵌入式系统功能实现的核心,通常包含设备驱动程序、嵌入式操作系统、嵌入式应用程序等。PC的出现使桌面软件得到了飞速发展,而嵌入式软件产业的蓬勃发展同样为系统应用提供了无穷的推动力,种类繁多、应用场景复杂多变的嵌入式产品为人类提供了越来越多的便利,如今人们的日常生活已无法脱离嵌入式产品。
图1-3 嵌入式系统的组成
事实上,并非所有的嵌入式系统都包含上述组成部分,在进行嵌入式系统设计时,系统设计人员应根据系统能力、应用场景、功耗、体积、实时性等多种因素进行适当的优化和组合设计,力求达到最好的性能和效率。
1.硬件层
硬件层提供了嵌入式系统的运行平台,主要包括高性能微处理器、I/O接口、定时器、电源管理、存储器及外围电路等。简要介绍如下:
·嵌入式微处理器。作为嵌入式系统硬件层的核心,嵌入式微处理器担负着控制系统工作的重要任务,也就是说使宿主设备功能智能化、设计灵活且操作简便。为合理高效地完成这些任务,嵌入式微处理器应具有以下特点:较强的实时多任务支持能力、存储区保护功能、可扩展的微处理器结构、较强的中断处理能力、低功耗。目前主流的嵌入式微处理器有ARM、MIPS、DSP、PowerPC及x86等。
·存储器。嵌入式系统需要存储器来存放和执行代码。嵌入式系统的存储器包含Cache、主存和外存。其中,Cache是一种容量小、速度快的存储器阵列,其主要设计目标是解决存储器(如主存和辅助存储器)给微处理器内核造成的访问瓶颈,使处理速度更快、实时性更强。主存位于微处理器的内部,用来存放系统和用户的程序及数据,其片内存储器容量小、速度快。外存用来存放大数据量的程序代码或信息,它的容量大,但读取速度与内存相比慢很多,用来长期保存用户的信息。
·通用设备接口和I/O接口。嵌入式系统和外界交互时需要一定形式的通用设备接口,如A/D、D/A、I/O等,外设通过和片外其他设备或传感器的连接来实现微处理器的输入/输出功能。每个外设通常只有单一的功能,它可以位于芯片外,也可以内置在芯片中。外设的种类很多,从简单的串行通信设备到非常复杂的802.11无线设备等。
2.驱动层
驱动层是嵌入式系统中不可缺少的重要部分,使用任何外部设备都需要有相应的驱动层程序的支持,它为上层软件提供设备的操作接口。上层软件无须理会设备的具体内部操作,只需调用驱动层程序提供的接口即可。驱动层程序一般包含硬件抽象层(HAL)、板级支持包(BSP)和设备驱动程序。其中BSP实现的功能一般包含如下两方面:
·系统启动时,完成对硬件的初始化。例如,对系统内存、寄存器以及设备的中断进行设置,即根据嵌入式开发所选的CPU类型、硬件以及嵌入式操作系统的初始化等多方面决定BSP应具体实现哪些功能。
·为驱动程序提供访问硬件的手段。驱动程序经常要访问设备的寄存器,并对设备寄存器进行操作。如果整个系统为统一编址,则开发人员可直接在驱动程序中用C语言的函数访问设备寄存器。但是,如果系统为单独编址,则C语言就不能直接访问设备的寄存器,只有汇编语言编写的函数才能访问外围设备寄存器。BSP就是为上层驱动程序提供的访问硬件设备寄存器的函数包。
3.操作系统层
嵌入式操作系统(Embedded Operating System,EOS)是一种用途广泛的系统软件,主要负责嵌入式系统全部软硬件资源的分配及调度工作,并控制、协调并发活动。它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能。
相对于一般操作系统而言,EOS除具备一般操作系统的基本功能(如任务调度、同步机制、中断处理、文件处理等)外,还具有以下特点:
·强实时性。EOS的实时性一般较强,可用于各种设备控制中。
·可装卸性。具有开放性、可伸缩性的体系结构。
·统一的接口。提供各种设备的驱动接口。
·提供强大的网络功能,支持MIL-STD-1553B、ARINC429/629、TCP/IP及其他协议,提供TCP/UDP/IP/PPP支持及统一的MAC访问层接口,为各种移动计算设备预留接口。
·强稳定性、弱交互性。嵌入式系统一旦开始运行就不需要用户过多的干预,这就要求负责系统管理的EOS具有较强的稳定性。嵌入式操作系统的用户接口一般不提供操作命令,它通过系统的调用命令向用户程序提供服务。
·固化代码。在嵌入式系统中,嵌入式操作系统和应用软件被固化在嵌入式系统计算机的ROM中。辅助存储器在嵌入式系统中很少使用。
·可提供操作简便、友好的GUI,图形界面易学易用。
·更好的硬件适应性,即良好的可移植性。
目前国际上常用于嵌入式系统开发的EOS有40余种,市场上占主流的EOS包括VxWorks、Palm OS、Windows CE、pSOS、QNX、μC/OS-Ⅱ、Symbian及嵌入式Linux等。
4.应用层
应用层作为嵌入式系统的顶层,主要由多个相对独立的应用任务组成,直接与最终用户进行交互,一般是根据用户的特定需求量身定做和开发,每个应用任务完成特定的功能,如I/O任务、计算任务、通信任务、UI交互等,由嵌入式操作系统统一调度各个任务的运行。
应用层涉及用户体验,直接关系到用户需求是否得到准确实现。应用层的设计质量直接决定了整个嵌入式产品的成败,因此对质量和可靠性具有很高的要求。