小型操作系统控制的嵌入式系统一般指的是硬件主体由8位/16位单片机或者32位处理器构成。其控制软件主要由一个小型嵌入式操作系统内核(例如,μc/OS-II或TinyOS)和一个小规模的应用程序组成。小型嵌入式操作系统内核的源代码一般不超过一万行。这类嵌入式系统的操作系统功能模块不齐全,并且无法为应用程序开发提供一个较为完备的应用程序编程接口。此外,它没有图形用户界面(GUI)或者图形用户界面功能较弱,数据处理和联网通信功能也比较弱。
大型操作系统控制的嵌入式系统的硬件主体通常由32位/64位处理器、32位软核处理器或者32位片上系统组成。控制软件通常包含一个功能齐全的嵌入式操作系统(例如,VxWorks、RTLinux、Symbian、WindowsCE、Ecos等)以及封装良好的API,其实时性能较强,具备DSP处理能力,还具备良好的图形用户界面和网络互联功能,可运行多种数据处理功能较强的应用程序。
2.按嵌入式系统的用途分类
按照应用领域可以把嵌入式系统分为军用、工业用和民用三大类。其中,军用和工业用嵌入式系统对运行环境的要求比较苛刻,往往要求耐高温、耐湿、耐冲击、耐强电磁干扰、耐粉尘、耐腐蚀等。民用嵌入式系统的需求特点往往体现在另外一些方面,如易于使用、易维护和标准化程度高等。
3.6.4 嵌入式系统的基本组成
嵌入式系统通常是由嵌入式硬件系统和嵌入式软件系统两部分组成的。由于嵌入式系统的应用相关性特点,不同嵌入式系统的具体硬件和软件构成具有一定的差异性,但从宏观上来看,一般嵌入式系统的软硬件组成具备一定的共性。
1.嵌入式系统的硬件组成
嵌入式系统的硬件一般包括嵌入式微处理器(或嵌入式微控制器)、外围电路和外部设备。其中嵌入式微处理器是核心,有微处理器(Micro Processing Unit,MPU)、微控制器(MCU)、数字信号处理器(DSP)等几种类型。
外围电路主要包括:各种I/O接口控制器电路(例如中断控制器、DMA控制器、液晶屏控制器、JTAG调试接口、串口、以太网口、USB、A/D或D/A转换器等)、时钟电路、各式总线等。外部设备主要包括:RAM、ROM、闪存(Flash Memory)、键盘、发光二极管(LED)、液晶屏(LCD)、触摸屏、手写笔等。
随着半导体技术的迅猛发展,硬件设计越来越多地采用SoC技术和专用集成电路(Application Specific Integrated Circuit,ASIC)技术来实现,或者采用具有知识产权的标准部件或半定制设计来实现,特别是市场容量大的产品更是如此。在许多嵌入式硬件设计中,一些专用控制逻辑越来越多地采用现场可编程门阵列或复杂可编程逻辑器件芯片来设计。一些专用功能,如加密、图像压缩、视频编解码,也采用基于SoC技术的芯片实现。从板级电路设计到处理器加ASIC或SoC已成为硬件设计的潮流和发展趋势。现在,许多嵌入式产品,如PDA、手机、数码相机、MPEG播放器等虽然体积小巧,但功能强大,其中很重要的原因在于使用了ASIC和SoC技术。
2.嵌入式系统的软件组成
嵌入式软件可以分为两大类:含操作系统的嵌入式软件与不含操作系统的嵌入式软件。
不含操作系统的嵌入式软件结构中,监控程序循环执行各个例程,如果外部设备发出中断请求信号,则立即停止监控程序的运行,转而执行中断服务子程序(ISR)。中断服务子程序在运行过程中,如果需要访问硬件,则通过驱动程序、硬件初始化指令(段)、硬件使能指令段(段)或者硬件激活指令(段)进行。
SOSES和LOSES的嵌入式软件结构都包含操作系统,但两者的不同点是LOSES对硬件驱动接口进行了标准化处理,在操作系统和硬件之间构成了一个硬件抽象层,例如WindowsCE和VxWorks,而SOSES的硬件驱动通常没有标准化,其驱动程序与低端嵌入式系统的基本相同。
LOSES软件一般由板级支持包(Board Support Packet,BSP)、硬件驱动程序、嵌入式操作系统(Real Time Operating System,RTOS)、嵌入式中间件(Embedded Middleware)、应用程序编程接口API、组件(构件)库以及嵌入式应用软件组成。其中RTOS是核心,是嵌入式系统软件的基础和开发平台,BSP和硬件驱动程序属于同一层。LOSES软件体系结构可以分为以下几个层次:
①BSP是介于硬件和上层软件之间的底层软件开发包,为各种嵌入式电路板上的硬件提供统一的软件接口。它将具体硬件设备和软件分离开来,便于软件移植,是一种硬件抽象层(Hardware Abstlract Layer,HAL)。
②硬件驱动程序:不属于BSP和HAL的对硬件设备进行初始化配置、激活使能和运行控制的程序。有些嵌入式操作系统规定了符合本操作系统I/O接口规范的驱动程序设计标准。
③RTOS:负责管理嵌入式系统的各种软硬件资源,完成任务调度、存储分配、时钟、文件与中断管理等,并提供文件、GUI、网络以及数据库等服务。
④嵌入式中间件:位于嵌入式操作系统、数据库与应用软件之间的一种软件,使用嵌入式操作系统所提供的基本功能与服务,并为上层的应用系统提供运行开发环境。
⑤API及组件(构件):为嵌入式系统应用软件提供各种编程接口库(LIB)以及第三方软件或IP构件。
⑥应用系统(软件):嵌入式系统的应用软件。
随着嵌入式系统应用的不断深入和产业化程度的不断提升,新的应用环境和产业化需求对嵌入式系统软件提出了更加严格的要求。行业性开放系统正日趋流行。统一的行业标准具有开放、设计技术共享、软硬件重用、构件兼容、维护方便和合作生产的特点,是增强行业性产品竞争能力的有效手段。在新需求的推动下,嵌入式系统软件不仅需要具有微型化、高实时性等基本特征,还将朝高可信性、自适应性、构件组件化的方向发展,支撑开发环境将更加集成化、自动化、人性化,并形成包括嵌入式操作系统、中间平台软件在内的嵌入式软件体系。硬件技术的进步,推动了嵌入式系统软件朝运行速度更快、支持功能更强、应用开发更便捷的方向不断发展。
3.6.5 嵌入式处理器
1.嵌入式处理器的特点
嵌入式系统的核心硬件是各种类型的嵌入式微处理器,目前使用的嵌入式微处理器的种类多达几百种。嵌入式处理器一般具备以下四个特点:
①对实时多任务有较强的支持能力,能完成多任务处理,并且中断响应速度快,使得开发人员能够优化应用程序代码,减少RTOS内核的任务执行开销。
②处理器结构可扩展,以便迅速、高效地构建满足各种应用需求的嵌入式产品。
③内部集成了测试电路。
④低功耗。便携式手机以及PDA型嵌入式系统尤其要求低功耗。
嵌入式处理器按数据处理能力来分,目前广泛使用的有8位、16位和32位处理器。
其中,8位、16位处理器是广泛使用的单片机,而嵌入式应用领域越来越多地采用32位RISC微处理器。
嵌入式处理器从设计目标、性能、功能以及应用诸方面可以分成以下五类。
2.嵌入式处理器的分类
(1)通用型嵌入式微处理器
通用型嵌入式微处理器(General Purpose Embedded Micro Processor)也称为嵌入式微处理单元(Embedded Micro Processor Unit,EMPU),它有两种类型。一类是嵌入式系统中使用的通用处理器,这些处理器并不是专门为嵌入式系统设计的,但是却用于嵌入式系统。x86处理器(从8086、80386到PentiumM)就是这一类处理器的典型代表。
另一类是专门为嵌入式系统设计的处理器,因为它们的运算器、寄存器和总线的位宽长、功耗低、含指令流水线等,凸现出强大的计算能力,所以兼有许多通用处理器“无所不能”
的特点。这一类的通用型嵌入式微处理器的典型代表有Aml86/88、386EX、SC-400、PowerPC、ColdFire、68000、MIPS、ARM系列等。
无论如何,为满足嵌入式应用需要,使用通用型嵌入式微处理器时都要在工作温度、抗电磁干扰、可靠性等方面采取各种措施。
(2)微控制器
控制器(Micro Controller Unit,MCU)又称单片机(Single Chip Micro‐computer,SCM)。它将整个计算机系统集成到一块芯片中,体积减小,功耗和成本下降,可靠性提高,速度更快,性能更好,电磁辐射更少。它通常以某种微处理器内核为核心,芯片内部集成ROM、RAM、总线、总线逻辑、定时/计数器、Watchdog、I/O、串行口、脉宽调制输出、A/D、D/A、FlashRAM、EEPROM等各种必要功能部件和外设。为最大限度匹配应用需求,市场上存在大量处理器内核相同而存储器和外设的配置及封装等不同的产品。现在,单片机品种和数量最多,占嵌入式系统约70%的市场份额。
(3)嵌入式DSP处理器
嵌入式DSP处理器(Embedded Digital Signal Processor,EDSP)简称为DSP处理器,是专门用于嵌入式系统的数字信号处理器。它对CPU的系统结构和指令进行了特殊设计,使其更适合执行DSP算法,编译效率较高,指令执行速度也较快。嵌入式DSP处理器有两个发展来源:一是DSP处理器经过单片化、EMC(电磁兼容)改造、增加片上外设而成的嵌入式DSP处理器;二是在通用单片机或SOC中增加DSP协处理器。
嵌入式DSP处理器可分为两大类:定点DSP和浮点DSP。定点DSP发展迅速,品种多,处理速度为20~2000MIPS(每秒百万条指令数);浮点DSP的处理速度为40~1000MFOLPS(每秒百万个浮点操作数)。
(4)片上系统
近年来,电子设计自动化(EDA)技术和VLSI设计的推广与普及进展很快,半导体工艺水平也迅速提高,已经能够做到把一个或多个CPU单元以及功能部件集成在单个芯片上。这种芯片就是所谓的片上系统(SoC)。
用户可以在简易环境下研发专用的SoC芯片。此时用户需要先使用硬件描述语言(Hardware Deion Language,HDL)定义出整个应用系统,然后用仿真工具进行仿真。常见的硬件描述语言包括VHDL或Verflog。仿真通过后就可以将SoC的设计源代码或者版图交给半导体芯片代工公司制作样品。样品经过严格测试,就可以投入批量生产。这样除个别无法继承的器件以外,整个嵌入式系统的大部分硬件部件均可集成到一块或几块芯片中去。因此,SoC使系统电路板变得很简洁,非常有利于嵌入式应用产品减小体积和功耗、提高可靠性。
随着技术的进一步发展,SoC设计面临着诸如如何进行软硬件协同设计、如何缩短电子产品开发周期等难题。为了解决SoC设计中遇到的难题,必须进一步优化设计方法。于是,人们提出了基于FPGA的SoC设计方案——可编程片上系统(System On A Programmable Chip,SOPC)。随着百万门级的FPGA芯片、功能复杂的IP核(知识产权核)和可重构的嵌入式处理器软核的出现,作为未来电子系统设计新领域的SOPC技术已经成为国际上电子系统设计新技术的热点,具有广阔的应用前景。
(5)嵌入式双核处理器和嵌入式多核处理器
双核(DualCole)处理器就是基于单个半导体的一个处理器芯片上拥有两颗一样功能的处理器核心,即将两颗物理处理器核心整合到一个内核中,通过协同运算来提升性能。这样做的优势在于,它克服了传统处理器通过提升工作频率来提升处理器性能而导致耗电量和发热量越来越大的缺点。另外,采用双核架构可以全面增加处理器的功能。
每增加一个内核,处理器每个时钟周期内可执行的单元数将增加一倍。两个处理器核心在共享芯片组存储界面的同时,可以独立地完成各自的工作,从而能在平衡功耗的基础上大幅提高CPU性能。
目前,PC领域的主要处理器供应商AMD和Intel都推出了双核或者四核微处理器。
它们可以运行多条线程,为同时运行的多个应用提供更广阔的扩展空间,并改善运行性能。