APP下载

嵌入式处理器和嵌入式操作系统研究概述

2014-07-28徐德

电脑知识与技术 2014年16期
关键词:嵌入式操作系统嵌入式系统

徐德

摘要: 随着计算机技术和通讯技术的快速发展,嵌入式系统已经广泛渗入到工业控制、移动通信、电子商务、信息家电等多个应用领域,应用日益广泛。因此,该文从嵌入式系统处理器和嵌入式操作系统两方面研究了嵌入式系统特点。

关键词:嵌入式系统;嵌入式处理器;嵌入式操作系统

中图分类号:TP316 文献标识码:A 文章编号:1009-3044(2014)16-3813-04

1 嵌入式系统

嵌入式系统(Embedded System,ES)是将先进的微电子技术、通讯技术和计算机技术与各个具体应用领域相结合的产物,是一个资金技术密集且高度集成创新的知识系统。嵌入式系统是以应用为中心,计算机技术为基础,软硬件可裁剪,适应于应用系统对功能、可靠性、成本、体积和功耗等方面有严格要求的专用计算机系统。因此,它具有“嵌入性”、“专有性”和“计算机系统”三个基本要素,其中“嵌入性”是它的特征,“专有性”是它的灵魂,“计算机系统”是它的本质。

根据IEEE(Institute of Electrical and Electronics Engineers 电气电子工程师协会)从它的用途来定义,嵌入式系统是用来监视、控制或者辅助机器和设备运行的系统[2]。其实嵌入式系统就是微操作系统和功能软件的集成,在以微处理器为核心的微型计算机硬件体系中所形成的简易便捷,稳定可靠,经济实用的机电一体化产品。

真正意义上的嵌入式系统出现于20世纪70年代,发展至今已有30多年的历史,大致经历了以下四个阶段,如表1所示。

2 嵌入式处理器

嵌入式处理器(Embedded Processor,EP)与通用处理器最大的区别就在于嵌入式处理器大多工作在为不同用户群所设计的特定系统中,它常常将通用处理器中许多由板卡完成的功能集成到芯片内部,从而有利于实现嵌入式系统设计的微型化,同时又保证了较高的可靠性和处理效率。到目前为止,全球嵌入式处理器的种类已经超过1000多种,其中以ARM、MIPS、Power PC、Motorola 68K、X86等体系结构最为常见,一般将嵌入式处理器分成以下四类:

1)嵌入式微控制器 (Microcontroller Unit,MCU);

2)嵌入式微处理器 (Embedded Microprocessor Unit,EMPU);

3)嵌入式DSP处理器(Embedded Digital Signal Processor,EDSP);

4)片上系统(System On Chip,SOC)。

一般在嵌入式系统设计中常用的嵌入式微处理器和体系结构主要有以下几种:

1) ARM

ARM(Advanced RISC Machines)公司是全球著名的16/32位精简指令集计算机RISC(Reduced Instruction Set Computer)处理器设计供应商,通过提供高性能与低功耗的RISC处理器芯片设计技术给各个生产厂商来生产满足不同应用领域要求的芯片。事实上,由于ARM处理器一方面支持16位的Thumb指令集和32位的ARM指令集,另一方面使用了大量的寄存器和灵活的寻址方式来提高系统执行的效率,所以ARM处理器技术已经成为数字通信、工业控制、多媒体家电等嵌入式应用领域的RISC标准。ARM系列处理器种类很多,目前市场上应用最为广泛的是ARM9和ARM10系列处理芯片。ARM9处理器由于拥有了五级流水线结构和自带MMU功能,广泛应用于手持终端和无线通讯等领域。ARM10处理器由于采用了更高的六级流水线结构和支持DSP指令以及支持64位的AMBA总线接口[5],其性能较ARM9有了很大的提高,广泛应用于手持PDA以及车载电子等高端领域。

2) MIPS

MIPS(Microprocessor without Interlocked Pipeline Stages)简称无内部互锁流水级的微处理器,是美国MIPS技术公司推出的一种基于RISC架构的高性能高档次的处理器内核。MIPS采用了先进的设计理念和清晰的系统结构,强调软硬件协同工作以提高处理器性能,同时简化了硬件设计,采用软件方法来避免流水线运行中的数据相关问题。虽与ARM处理器相比,MIPS体系结构的处理器功耗要高些,但它具备了从32位低端产品到64位高端产品的完整解决方案,而且在知识产权的授权费用上MIPS要低于ARM,因此,MIPS内核逐渐被越来越多的消费类电子产品和工业控制产品的设计所采用。

3) Power PC

PowerPC(Performance optimization with Enhanced RISC performance Computing)简称性能优化与增强的RISC性能计算,是由IBM、Motorola和Apple公司联合开发的一款高性能32/64位RISC处理器,其主要特点是可伸缩性好,方便灵活和较高的性价比。常见的基于Power PC架构的处理器有IBM公司的Power PC64S(深蓝内部的CPU)、Power PC750、Power PCG3以及Motorola公司的MC和MPC系列等。目前,基于Power PC体系结构的处理器广泛应用于桌面PC系统、移动PC系统、嵌入式系统以及金融电信等行业。

4) Motorola 68K

Motorola 68K采用复杂指令集计算机CISC(Complex Instruction Set Computer)架构[8],是出现比较早的嵌入式处理器,在全球的各种嵌入式处理器应用领域中取得了巨大成功。曾经Sun微计算机公司把这款处理器应用于早期的产品开发中。

5) X86endprint

X86系列处理器起源于Inter架构的8080,然后发展出286、386、486直到现在的奔腾处理器乃至双核处理器。从嵌入式市场分布来看,486DX也是与ARM、68K、MIPS、SuperH齐名的五大嵌入式处理器之一。目前市场上基于X86体系结构的PC104产品占有很大的市场份额。

3 嵌入式操作系统

嵌入式操作系统(Embedded Operating System,EOS)是嵌入式系统的重要组成部分,它通常运行在嵌入式硬件平台之上,对整个系统的软硬件资源进行有效管理控制和协调调度的系统软件。嵌入式操作系统可以分为两大类:嵌入式实时操作系统(Embedded Real-time Operating System,ERTOS)和嵌入式分时操作系统。实时操作系统是指系统能及时响应外部事件的请求,在确定的时间内对事件进行处理,并控制所有任务协调一致运行的操作系统。实时操作系统对响应时间有着严格的要求,绝对不能错过该时限要求,否则就会引起严重的错误。而分时操作系统则按照相等的时间片(time slicing)轮流调度进程执行,在执行的时间上并没有实时操作系统要求的那么严格,错过任务执行的最后截止期限或执行时序上的偏差,并不会造成系统的崩溃,带来灾难性的后果。

通常按照对截止期限(Deadline)要求的不同,嵌入式实时操作系统又可以分为硬实时系统(Hard Real-time OS)和软实时系统(Soft Real-time OS)。硬实时系统是指对系统响应时间有着严格的要求,在任务的截止期限内必须及时响应,绝对不能错过任务处理的截止期限,否则就会引起系统崩溃或者导致灾难性后果。软实时系统是指系统任务一般能够在截止期限到达前得到处理,但是如果系统响应时间错过处理的截止期限,它并不会导致系统崩溃或出现致命的错误。

1998年,Bernat和Burns两位科学家又提出弱硬实时(Weakly Hard Real-time)的概念[9],即实时任务可以错过截止期限,但任务错过的截止期限必须可预知且被限制在一定的时间范围内。从定义上看,弱硬实时能够科学地定义软实时任务的实时特性及实时要求,是对软实时系统的细化和发展。两者相似之处都允许系统中的实时任务错过截止期限,而不同之处在于弱硬实时系统在软实时系统的基础上加了一些对截止期限的限制,规定了任务错过的截止期限数必须可预知且被限定在一定的范围之内。弱硬实时系统的优点就在于能够对软实时系统中实时任务“软”的程度进行定性,同时虽然弱硬实时系统对任务在单个周期中的特性要求是“软”的,但从任务窗口的角度来看,弱硬实时系统对任务的要求又是“硬”的,即任务错过的截止期限必须可预知且被严格限制。

实时操作系统(RTOS)的研究是从20世纪60年代开始的,经过多年的发展,先后从实模式进化到保护模式,从单内核模式进化到微内核模式;在系统规模上也从单处理器的实时操作系统发展到多处理器的实时操作系统和网络实时操作系统,但其发展大体上经历了以下三个阶段,如表2所示。

目前国内外常见的嵌入式操作系统主要有以下几种:

1) Windows CE

Windows CE是美国Microsoft公司专门为各种移动和便携式消费类电子产品等嵌入式应用系统设计的一款32位高性能微内核结构的多任务多用户的操作系统。它具有一个简洁高效的基于完整优先权的可抢占式操作系统内核[10],支持强大的通信和图形实现功能,能够适应广泛的系统需求。Windows CE不需要任何特定的硬件结构,实际的硬件结构完全由用户根据需要自由设计。现在Microsoft公司又推出了针对移动通信产品应用的Windows Mobile操作系统,占据了很大的市场份额。

2) VxWorks

VxWorks是美国WindRiver公司于1983年设计开发的一种具有工业领导地位的高性能实时操作系统[21]。VxWorks采用一种微内核结构(最小体积<8KB),包括了进程管理、存储管理、设备管理、文件系统管理、网络协议及系统应用等几个部分,为用户提供高效的实时多任务管理与调度的能力、微秒级的中断处理能力、系统资源之间灵活的通信机制,并且具有优先级排队和循环调度的能力。VxWorks支持多种体系结构的处理器,如X86、i960、Sun Sparc、Motorola、MC68xxx、ARM、Power PC等,和广泛的工业标准,如POSIX1003.b实时扩展。此外,VxWorks还支持多种物理介质标准和完整的TCP/IP网络协议,支持多处理器并行工作,具有快速多任务切换、抢占式任务调度、任务间通信方式多样化的特点,并且完全符合ANSIC的标准,是目前应用最为广泛、市场占有率最高的实时系统之一。

3) μC/OS-II

μC/OS-II是一款专门为计算机嵌入式应用而设计的基于静态优先级的抢占式调度的多任务实时操作系统,是一种免费且开源的操作系统。μC/OS-II系统采用MicroWindow图形系统。由于μC/OS-II不支持文件系统,不支持驱动程序和应用程序的模块加载,因此在进行系统开发时,内核和驱动程序以及应用程序都是集中编译的。经过十多年的应用和修改,已经被移植到多种处理器平台上。μC/OS-II由于内核小巧,占用空间小,执行效率高,实时性能优良和具有较强的可扩展性,广泛应用于航空航天等领域。

4) QNX

QNX是加拿大QNX Software System公司于1980年开发的一款可扩展的分布式微内核嵌入式实时操作系统。它部分遵循POSIX标准,如POSIX.1(程序接口)和POSIX.2(Shell和工具)以及POSIX.1b(实时扩展)。用户可以把应用程序与内核直接编译在一起,生成一个单一的多线程映像。QNX提供POSIX.1b标准进程调度:32个进程优先级、基于优先级的抢占式进程调度,其进程在独立的地址空间运行。此外,QNX内核非常小巧(QNX4.x大约为12Kb)而且运行速度极快,但是QNX不能很好支持GUI系统,目前市场占有量不是很大。endprint

5) XLinux

XLinux是由美国网虎公司推出的一款世界上最小的嵌入式Linux操作系统,其内核只有143KB字节,而且还在不断减小。XLinux的核心采用了“超字元集”专利技术,让Linux核心不仅能与标准字符集相兼容,而且还涵盖了12个国家地区。因此,XLinux在推广Linux的国际化应用方面具有独特的优势。

6) Nucleus

Nucleus是美国ATI(Accelerated Technology Incorporated)公司于1990年开发的一款抢占式多任务实时操作系统,主要包括内核模块(Nucleus PLUS)、网络模块(Nucleus Net)、图形库(Nucleus GRAFIX)、文件系统(Nucleus File)、USB堆栈(Nucleus USB)等模块,其中内核模块提供了进程调度与通信、内存管理和和中断服务、时钟管理以及丰富的I/O驱动程序等功能。另外,Nucleus系统采用了软组件的方式,提供了清晰的外部接口,方便用户进行二次开发。

7)红旗嵌入式Linux

目前由北京中科院红旗软件公司推出的一款国内做得比较好的嵌入式Linux系统-EEOS系统(Easy Embedded Operating System)。由于该嵌入式操作系统一方面采用了p-Java技术,另一方面能重用嵌入式Linux系统的驱动程序和其它模块,所以在实际应用中具有很强的竞争力。

8) PSOS

PSOS是ISI(Integrated System Incorporated)公司研发的一款由标准组件构成的模块化可裁减的高性能实时系统,它提供了一个基于开放系统标准的多任务环境。PSOS可以支持多种处理器,其系统结构可分为内核层,系统服务层,用户层。内核层主要完成进程调度与通信、内存管理以及中断服务等功能,并且实现了基于优先级的抢占式调度算法,同时提供了可选的时间片轮转调度算法。系统服务层包括PNA+(提供TCP/IP协议支持)、PRPC+(提供远程调用库)、PHILE+(提供标准的C和C++库)等组件。用户层提供了以任务形式出现的应用程序。

4 嵌入式系统的特点

与PC为代表的通用型计算机相比,嵌入式系统在行业特点、产品特征和软硬件特性等方面具有一些显著的特点,主要体现在以下几个方面:

1)嵌入式系统面向用户、面向产品、面向应用

嵌入式系统与实际应用的紧密结合,针对不同的产品,面对不同的行业用户群对处理能力、成本、体积、功耗、可靠性以及电磁兼容性的实际要求,开发人员需要对硬件系统进行合理选择,软件系统合理裁减利用。

2)嵌入式系统的高效率和高可靠性

嵌入式系统大多应用于无人值守或者条件恶劣的环境情况下,因此要求系统必须具有高效率和高可靠性的特点。也正是如此,嵌入式系统软件一般都要求固化在系统本身的SRAM或者DRAM和Flash等存储介质中。

3)嵌入式系统的可裁剪性和可定制性

嵌入式系统可以根据实际应用需求对系统软硬件进行高效地设计,在保证稳定、安全、可靠的基础上量体裁衣,去除冗余,满足嵌入式应用系统对功能、成本、体积等方面的要求。

4)嵌入式系统的开发过程

由于嵌入式系统软硬件资源的有限性,所以一般情况下嵌入式系统本身并不具备自主开发的能力,而采用一种交叉开发的模式,即开发时需要在主机(Host)和目标机(Target)之间交替结合进行,在主机上安装开发工具,构建开发环境,经过编辑编译调试并最终完成程序的开发,然后下载或烧写到目标机上做最后的执行。

参考文献:

[1] 左天军,左园园.Linux操作系统的实时化分析[J].计算机科学,2004,31(5):110-112.

[2] 赵明富.Linux嵌入式系统实时性分析与实时化改进[J].计算机应用研究,2004(4).

[3] 顾胜元 杨丹.嵌入式实时动态内存管理机制[J].计算机工程,2009(20):250-257.

[4] 文星,张辉宜.嵌入式Linux的实时性改进技术[J].计算机技术与发展,2006,16(10).

[5] 苏曙光,刘云生.基于RTHAL的Linux研究与实现[J].计算机科学,2009(7):143-148.

[6] 赵明富.嵌入式Linux操作系统的实时化研究[J].西南师大学报,2003,28(3).endprint

5) XLinux

XLinux是由美国网虎公司推出的一款世界上最小的嵌入式Linux操作系统,其内核只有143KB字节,而且还在不断减小。XLinux的核心采用了“超字元集”专利技术,让Linux核心不仅能与标准字符集相兼容,而且还涵盖了12个国家地区。因此,XLinux在推广Linux的国际化应用方面具有独特的优势。

6) Nucleus

Nucleus是美国ATI(Accelerated Technology Incorporated)公司于1990年开发的一款抢占式多任务实时操作系统,主要包括内核模块(Nucleus PLUS)、网络模块(Nucleus Net)、图形库(Nucleus GRAFIX)、文件系统(Nucleus File)、USB堆栈(Nucleus USB)等模块,其中内核模块提供了进程调度与通信、内存管理和和中断服务、时钟管理以及丰富的I/O驱动程序等功能。另外,Nucleus系统采用了软组件的方式,提供了清晰的外部接口,方便用户进行二次开发。

7)红旗嵌入式Linux

目前由北京中科院红旗软件公司推出的一款国内做得比较好的嵌入式Linux系统-EEOS系统(Easy Embedded Operating System)。由于该嵌入式操作系统一方面采用了p-Java技术,另一方面能重用嵌入式Linux系统的驱动程序和其它模块,所以在实际应用中具有很强的竞争力。

8) PSOS

PSOS是ISI(Integrated System Incorporated)公司研发的一款由标准组件构成的模块化可裁减的高性能实时系统,它提供了一个基于开放系统标准的多任务环境。PSOS可以支持多种处理器,其系统结构可分为内核层,系统服务层,用户层。内核层主要完成进程调度与通信、内存管理以及中断服务等功能,并且实现了基于优先级的抢占式调度算法,同时提供了可选的时间片轮转调度算法。系统服务层包括PNA+(提供TCP/IP协议支持)、PRPC+(提供远程调用库)、PHILE+(提供标准的C和C++库)等组件。用户层提供了以任务形式出现的应用程序。

4 嵌入式系统的特点

与PC为代表的通用型计算机相比,嵌入式系统在行业特点、产品特征和软硬件特性等方面具有一些显著的特点,主要体现在以下几个方面:

1)嵌入式系统面向用户、面向产品、面向应用

嵌入式系统与实际应用的紧密结合,针对不同的产品,面对不同的行业用户群对处理能力、成本、体积、功耗、可靠性以及电磁兼容性的实际要求,开发人员需要对硬件系统进行合理选择,软件系统合理裁减利用。

2)嵌入式系统的高效率和高可靠性

嵌入式系统大多应用于无人值守或者条件恶劣的环境情况下,因此要求系统必须具有高效率和高可靠性的特点。也正是如此,嵌入式系统软件一般都要求固化在系统本身的SRAM或者DRAM和Flash等存储介质中。

3)嵌入式系统的可裁剪性和可定制性

嵌入式系统可以根据实际应用需求对系统软硬件进行高效地设计,在保证稳定、安全、可靠的基础上量体裁衣,去除冗余,满足嵌入式应用系统对功能、成本、体积等方面的要求。

4)嵌入式系统的开发过程

由于嵌入式系统软硬件资源的有限性,所以一般情况下嵌入式系统本身并不具备自主开发的能力,而采用一种交叉开发的模式,即开发时需要在主机(Host)和目标机(Target)之间交替结合进行,在主机上安装开发工具,构建开发环境,经过编辑编译调试并最终完成程序的开发,然后下载或烧写到目标机上做最后的执行。

参考文献:

[1] 左天军,左园园.Linux操作系统的实时化分析[J].计算机科学,2004,31(5):110-112.

[2] 赵明富.Linux嵌入式系统实时性分析与实时化改进[J].计算机应用研究,2004(4).

[3] 顾胜元 杨丹.嵌入式实时动态内存管理机制[J].计算机工程,2009(20):250-257.

[4] 文星,张辉宜.嵌入式Linux的实时性改进技术[J].计算机技术与发展,2006,16(10).

[5] 苏曙光,刘云生.基于RTHAL的Linux研究与实现[J].计算机科学,2009(7):143-148.

[6] 赵明富.嵌入式Linux操作系统的实时化研究[J].西南师大学报,2003,28(3).endprint

5) XLinux

XLinux是由美国网虎公司推出的一款世界上最小的嵌入式Linux操作系统,其内核只有143KB字节,而且还在不断减小。XLinux的核心采用了“超字元集”专利技术,让Linux核心不仅能与标准字符集相兼容,而且还涵盖了12个国家地区。因此,XLinux在推广Linux的国际化应用方面具有独特的优势。

6) Nucleus

Nucleus是美国ATI(Accelerated Technology Incorporated)公司于1990年开发的一款抢占式多任务实时操作系统,主要包括内核模块(Nucleus PLUS)、网络模块(Nucleus Net)、图形库(Nucleus GRAFIX)、文件系统(Nucleus File)、USB堆栈(Nucleus USB)等模块,其中内核模块提供了进程调度与通信、内存管理和和中断服务、时钟管理以及丰富的I/O驱动程序等功能。另外,Nucleus系统采用了软组件的方式,提供了清晰的外部接口,方便用户进行二次开发。

7)红旗嵌入式Linux

目前由北京中科院红旗软件公司推出的一款国内做得比较好的嵌入式Linux系统-EEOS系统(Easy Embedded Operating System)。由于该嵌入式操作系统一方面采用了p-Java技术,另一方面能重用嵌入式Linux系统的驱动程序和其它模块,所以在实际应用中具有很强的竞争力。

8) PSOS

PSOS是ISI(Integrated System Incorporated)公司研发的一款由标准组件构成的模块化可裁减的高性能实时系统,它提供了一个基于开放系统标准的多任务环境。PSOS可以支持多种处理器,其系统结构可分为内核层,系统服务层,用户层。内核层主要完成进程调度与通信、内存管理以及中断服务等功能,并且实现了基于优先级的抢占式调度算法,同时提供了可选的时间片轮转调度算法。系统服务层包括PNA+(提供TCP/IP协议支持)、PRPC+(提供远程调用库)、PHILE+(提供标准的C和C++库)等组件。用户层提供了以任务形式出现的应用程序。

4 嵌入式系统的特点

与PC为代表的通用型计算机相比,嵌入式系统在行业特点、产品特征和软硬件特性等方面具有一些显著的特点,主要体现在以下几个方面:

1)嵌入式系统面向用户、面向产品、面向应用

嵌入式系统与实际应用的紧密结合,针对不同的产品,面对不同的行业用户群对处理能力、成本、体积、功耗、可靠性以及电磁兼容性的实际要求,开发人员需要对硬件系统进行合理选择,软件系统合理裁减利用。

2)嵌入式系统的高效率和高可靠性

嵌入式系统大多应用于无人值守或者条件恶劣的环境情况下,因此要求系统必须具有高效率和高可靠性的特点。也正是如此,嵌入式系统软件一般都要求固化在系统本身的SRAM或者DRAM和Flash等存储介质中。

3)嵌入式系统的可裁剪性和可定制性

嵌入式系统可以根据实际应用需求对系统软硬件进行高效地设计,在保证稳定、安全、可靠的基础上量体裁衣,去除冗余,满足嵌入式应用系统对功能、成本、体积等方面的要求。

4)嵌入式系统的开发过程

由于嵌入式系统软硬件资源的有限性,所以一般情况下嵌入式系统本身并不具备自主开发的能力,而采用一种交叉开发的模式,即开发时需要在主机(Host)和目标机(Target)之间交替结合进行,在主机上安装开发工具,构建开发环境,经过编辑编译调试并最终完成程序的开发,然后下载或烧写到目标机上做最后的执行。

参考文献:

[1] 左天军,左园园.Linux操作系统的实时化分析[J].计算机科学,2004,31(5):110-112.

[2] 赵明富.Linux嵌入式系统实时性分析与实时化改进[J].计算机应用研究,2004(4).

[3] 顾胜元 杨丹.嵌入式实时动态内存管理机制[J].计算机工程,2009(20):250-257.

[4] 文星,张辉宜.嵌入式Linux的实时性改进技术[J].计算机技术与发展,2006,16(10).

[5] 苏曙光,刘云生.基于RTHAL的Linux研究与实现[J].计算机科学,2009(7):143-148.

[6] 赵明富.嵌入式Linux操作系统的实时化研究[J].西南师大学报,2003,28(3).endprint

猜你喜欢

嵌入式操作系统嵌入式系统
典型实时嵌入式操作系统应用分析
计算机嵌入式操作系统分析
办公自动化系统的设计
基于物联网项目驱动的嵌入式系统教学改革的研究与实践
嵌入式系统课程“中断、异常与事件”教学实践及启示
面向实践创新人才培养的嵌入式系统教学研究
基于嵌入式操作系统的工业采集板设计
应用服务型人才培养体系下的嵌入式操作系统教学改革探索
基于Android平台的定位监控系统的研发
计算机嵌入式操作系统研究