第一章 嵌入式实时系统概况<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
嵌入式系统的出现至今已经有30多年的历史了,嵌入式技术也历经了几个发展阶段。进入90年代后,以计算机和软件为核心的数字化技术取得了迅猛发展,不仅广泛渗透到社会经济、军事、交通、通信等相关行业,而且深入到家电、娱乐、艺术、社会文化等各个领域,掀起了一场数字化技术革命。多媒体技术与Internet的应用迅速普及,消费电子(Consumptive electron),计算机(Computer),通信(Communication),3C一体化趋势日趋明显,嵌入式技术再度成为一个研究热点。综观嵌入式技术的发展,大致经历了以下4个阶段[1]。
l 第一阶段是以单芯片为核心的可编程控制器形式的系统,同时具有与监测、伺服、指示设备相配合的功能。这种系统大部分应用于一些专业性极强的工业控制系统中,一般没有操作系统的支持,通过汇编语言编程对系统进行直接控制,运行结束后清除内存。这一阶段系统的主要特点是:系统结构和功能都相对单一,处理效率较低,存储容量较小,几乎没有用户接口。由于这种嵌入式系统使用简便、价格很低,以前在国内工业领域应用较为普遍,但是已经远远不能适应高效的、需要大容量存储介质的现代化工业控制和新兴的信息家电等领域的需求。
l 第二阶段是以嵌入式CPU为基础、以简单操作系统为核心的嵌入式系统。这一阶段系统的主要特点是:CPU种类繁多,通用性比较弱;系统开销小,效率高;操作系统具有一定的兼容性和扩展性;应用软件较专业,用户界面不够友好;系统主要用来控制系统负载以及监控应用程序运行。
l 第三阶段是以嵌入式操作系统为标志的嵌入式系统。这一阶段系统的主要特点是:嵌入式操作系统能运行于各种不同类型的微处理器上,兼容性好;操作系统内核精小、效率高,并且具有高度的模块化和扩展性;具备文件和目录管理、设备支持、多任务、网络支持、图形窗口以及用户界面等功能;具有大量的应用程序接口(API),开发应用程序简单;嵌入式应用软件丰富。
l 第四阶段是以基于Internet为标志的嵌入式系统,这是一个正在迅速发展的阶段。目前大多数嵌入式系统还孤立于Internet之外,但随着Internet的发展以及Internet技术与信息家电、工业控制技术等结合日益密切,嵌入式设备与Internet的结合将代表着嵌入式技术的真正未来。
嵌入式系统主要由嵌入式处理器、相关支撑硬件和嵌入式软件系统组成,它是集软硬件于一体的可独立工作的“器件”。嵌入式处理器主要由一个单片机或微控制器(MCU)组成。而这些嵌入式CPU目前多是8位和16位的,与32位或64位的高性能处理器相比,具有很强的经济性和现实性。相关支撑硬件包括显示卡、存储介质(ROM和RAM等)、通讯设备、IC卡或信用卡的读取设备等。嵌入式系统有别于一般的计算机处理系统,它不具备像硬盘那样大容量的存储介质,而大多使用闪存(Flash Memory)作为存储介质。嵌入式软件包括与硬件相关的底层软件、操作系统、图形界面、通讯协议、数据库系统、标准化浏览器和应用软件等。
总体看来,嵌入式系统具有便利灵活、性能价格比高、嵌入性强等特点,可以嵌入到现有任何信息家电和工业控制系统中。从软件角度来看,嵌入式系统具有不可修改性、系统所需配置要求较低、系统专业性和实时性较强等特点。
后PC时代是一个真实的阶段,而且是一个可以预测的时代。嵌入式系统就是与这一时代紧密相关的产物,它将拉近人与计算机的距离,形成一个人机和谐的工作与生活环境。从某一个角度来看,嵌入式系统可应用于人类工作与生活的各个领域,具有极其广阔的应用前景。嵌入式系统在传统的工业控制和商业管理领域已经具有广泛的应用空间,如智能工控设备、POS/ATM机、IC卡等;在家庭领域更具有广泛的应用潜力,如机顶盒、数字电视、WebTV、网络冰箱、网络空调等众多消费类和医疗保健类电子设备等;此外还有在媒体手机、袖珍电脑、掌上电脑、车载导航器等方面应用,将极大地推动嵌入式技术深入到生活和工作的方方面面。它在娱乐、军事方面的应用潜力也是巨大的,而且是有目共睹的。
信息家电商机引发全球嵌入式操作系统平台大战,全球4大操作系统阵营WinCE[18]、Palm OS[19]、EPOC[20]和Linux[21]展开规格战,各拥有软件及硬件合作厂商逐鹿信息家电市场的份额。
全球手持式信息家电快速增长,据预测,2000年至2004年市场增长率将到达77.4%,个人数字助理器(PDA)、智慧型手机等手持式信息家电操作系统竞争日益激烈。除了为后个人电脑时代的硬件大厂带来新一轮商机外,应用软件厂商包括电子字典、电子地图、游戏开发业者的商机也大量涌现。
微软窗口操作系统拥有在个人电脑上的操作系统占有率的优势,使WinCE拥有强大的窗口资源支援。不过Palm OS操作系统拥有全球PDA产品70%的市场占有率;同时获得3COM、IBM和索尼等跨国公司的支持。EPOC是发展自欧洲的操作系统、是由世界上最大的3家移动电话厂商诺基亚、爱立信和摩托罗拉所共同开发、整合组成新公司,开发出来的新操作系统;在3大电话厂商的合作下,EPOC市场潜力很大,且占有率高,但应用功能以手机为主,目前并不开放授权。
此外,在3大主流操作系统品牌外,Linux也将是今后一股强劲的力量;由于Linux开放源码,经过这些年的发展,已经成为一个健壮的可靠的高性能的操作系统。愈来愈多的嵌入式系统设计员发现Linux可以成为一个优秀的嵌入式操作系统。而Linux的最大的优势还在于它是一个开放的操作系统。由于Linux开放源码,操作系统的一切对用户都是透明的,用户可以最大限度地控制系统开发的进度和造价。在开发过程中遇到的各种各样的硬件设备,可以方便地在网上找到这些设备的驱动程序,得到支持。Linux内置网络支持,用户可以轻松地使自己的嵌入式具有网络功能。Linux是模块化的操作系统,提供了优秀的可缩放功能,用户可以方便地删除不需要的模块,大多数嵌入式系统对操作系统的体积非常敏感,Linux的可以根据自己的需要,选择特定的功能模块,自主地搭建嵌入式操作系统。Linux支持绝大多数CPU,包括Intel、MIPS、ASIC、ALPHA、68K、POWER PC等。这使Linux几乎可以嵌入到各种硬件设备上。成为各家厂商极力发展的操作系统,加上其核心小,潜力可观。
1.2 实时系统概况
1.2.1 什么是实时系统
实时计算正在成为越来越重要的原则。操作系统,特别是调度程序,可能是实时系统中最重要的组件。实时系统的例子包括实验控制、过程控制设备、机器人、空中交通管制、远程通信、军事指挥与控制系统,下一代系统还将包括自动驾驶汽车、具有弹性关节的机器人控制器、智能化生产中的系统控制、空间站和海底勘探等。
实时计算[5]可以定义成这样一类计算,即系统的正确性不仅取决于计算的逻辑结果,而且还依赖于产生结果的时间。我们可以通过定义实时进程或实时任务来定义实时系统。一般说来,在实时系统中,某些任务是实时任务,它们具有一定的紧急程度。这类任务试图控制外部世界发生的事件,或者对事件做出反应。由于这些事件是“实时”发生的,因而实时任务必须能够跟得上它所关心的事件。因此,通常给一个特定的任务制定一个最后期限,最后期限指定开始时间或结束时间。这类任务可以分为硬任务或软任务两类。一个硬实时任务(hard real-time task)指必须满足最后期限的限制,否则会给系统带来不希望的破坏或者致命的错误。一个软实时任务(soft real-time task)也是一个与之关联的最后期限,并希望能满足这个期限的要求,但这并不是强制的,即使超过了最后期限,调度和完成这个任务仍然是有意义的。实时任务的另一个特征是它们是周期还是非周期的。一个非周期任务(aperiodic task)有个必须结束或开始的最后期限,或者有一个关于开始时间和结束时间的约束。而对于周期任务(periodic task),这个要求描述成“每隔周期T一次”或者“每隔T个单位”。
1.2.2 实时操作系统的特点
实时操作系统一般符合以下的一些要求[5]:
l 可确定性:是指它可以按照固定的、预先确定的时间或时间间隔执行操作。
l 响应性:是指在系统得到中断后系统为中断提供服务的时间。
l 用户控制:是指允许用户细粒度地控制任务的各种属性(任务优先级、任务权限等)。
l 可靠性
l 故障弱化运行:是指系统在故障时尽可能多地保存其权能和数据的能力。
嵌入式系统一般都是实时系统,实时系统大都是用在嵌入式环境。用于嵌入式场合的实时操作系统就是嵌入式实时操作系统。在一个较为完善的嵌入式系统环境中,需要一个支持实时多任务的操作系统(RTOS)内核,因为广泛应用于现实世界的嵌入式设备必须具有与外部环境实时交互的能力。RTOS是和嵌入式应用复杂化直接相关的,在应用需求的复杂度不断增加的今天,如果实时应用软件开发还是没有基于一个完善的RTOS,那么无法将系统软件和应用软件分离,开发周期过长、成本过高。因此,因此RTOS是实时应用软件开发的必然产物。