1.1 嵌入式系统简介

本节主要介绍嵌入式系统的定义,重点介绍嵌入式系统的主要特点和组成嵌入式系统的各个部分,使读者对嵌入式系统首先有较为深刻的认识,同时还会简要介绍嵌入式系统的开发过程和开发环境。

1.1.1 嵌入式系统的定义

近些年来,随着以计算机技术、通信技术为主的信息技术的快速发展和Internet的广泛应用,嵌入式系统得到了越来越广泛的发展。

嵌入式系统是指用于执行独立功能的专用计算机系统。它由微处理器、定时器、微控制器、存储器、传感器等一系列微电子芯片与器件,以及嵌入在存储器中的微型操作系统和控制应用软件,共同实现诸如实时控制、监视、管理、移动计算、数据处理等各种自动化处理任务。嵌入式系统以应用为中心,以微电子技术、控制技术、计算机技术和通信技术为基础,强调硬件和软件的协同性与整合性,并且其软件与硬件可剪裁,以满足系统对功能、成本、体积和功耗等的要求。

最简单的嵌入式系统仅有执行单一功能的控制能力,在唯一的ROM中仅有实现单一功能的控制程序,是微型操作系统。复杂的嵌入式系统,例如个人数字助理(PDA)、手持电脑(HPC)等,具有与PC几乎一样的功能。实质上它们与PC的区别仅仅是将微型操作系统与应用软件嵌入在ROM、RAM和(或)Flash存储器中,而不是存储于磁盘等载体中。很多复杂的嵌入式系统又是由若干个小型嵌入式系统组成的。

1.1.2 嵌入式系统的硬件、软件特征

嵌入式系统的硬件必须根据具体的应用任务,以功耗、成本、体积、可靠性和处理能力等为指标来选择。嵌入式系统的核心是系统软件和应用软件,由于存储空间有限,因而要求软件代码紧凑、可靠,并且大多对实时性有严格要求。早期的嵌入式系统设计方法,通常采用“硬件优先”原则。即在只粗略估计软件任务需求的情况下,首先进行硬件设计与实现,然后在此硬件平台之上,再进行软件设计。因而很难充分利用硬件、软件资源,取得最佳性能的效果。同时,一旦在测试时发现问题,需要对设计进行修改时,整个设计流程将重新进行,这对成本和设计周期的影响很大。这种传统的设计方法只能改善硬件、软件各自的性能,并且在有限的设计空间里不可能对系统做出较好的性能综合优化,高性能的软件在很大程度上依赖于设计者的经验和反复实验。

20 世纪90 年代以来,随着电子系统功能的日益强大和微型化,系统设计所涉及的问题越来越多,难度也越来越大。同时硬件和软件也不再是截然分开的两个概念,而是紧密结合、相互影响的。因而出现了软、硬件协同(codesign)设计方法,即使用统一的方法和工具对软件和硬件进行描述、综合和验证,并在系统目标要求的指导下,通过综合分析系统软、硬件功能及现有资源,协同设计软、硬件体系结构,最大限度地挖掘系统软、硬件能力,避免由于独立设计软、硬件体系结构而带来的种种弊病,从而得到高性能、低代价的优化设计方案。

1.1.3 嵌入式操作系统

目前流行的嵌入式操作系统可以分为两类。一类是把运行在个人电脑上的操作系统向下移植到嵌入式系统中,从而形成的嵌入式操作系统,如微软公司的Windows CE及其新版本、SUN公司的Java操作系统、朗讯科技公司的Inferno、嵌入式Linux等。这类系统经过个人电脑或高性能计算机等产品的长期运行考验,技术日趋成熟,其相关的标准和软件开发方式已被用户普遍接受,同时也积累了丰富的开发工具和应用软件资源。另一类是实时操作系统,如WindRiver公司的VxWorks、ISI的pSOS、QNX系统软件公司的QNX、ATI的Nucleus、中国科学院凯思集团的Hopen嵌入式操作系统等。这类产品在操作系统的结构和实现上都针对于所面向的应用领域,并对实时性、高可靠性等进行了精巧的设计,而且提供了独立而完备的系统开发和测试工具,较多地应用在军用产品和工业控制等领域中。

Linux是20世纪90年代以来逐渐成熟的一个开放源代码的操作系统。PC上的Linux版本在全球数以百万计的爱好者的合力开发下,得到了非常迅速的发展。20 世纪90 年代末,uClinux、RTLinux等相继推出,在嵌入式领域得到了广泛的关注,它们拥有大批的程序员和现成的应用程序,是我们研究开发工作的宝贵资源。

1.1.4 学习嵌入式系统的意义

从控制意义上来说,嵌入式系统涉及系统底层的芯片级的信息处理与控制。在某种意义上,对这些“微观”世界的了解与驾驭正是控制的真正目的。嵌入式系统与通常意义上的控制系统,在设计思路和总体架构方面有许多不同之处,而这些不同之处恰恰是在传统控制学科教学中较少教给学生的。在当今信息化社会中,嵌入式系统在人们的日常工作和生活中所占的份额,可能已超过传统意义的控制系统,这就是为什么我们的学生感到学的没有用,而有用的又没有学的原因。在嵌入式系统及开发环境方面,目前仍有许多问题尚在研究发展之中,如嵌入式系统的硬件、软件协同设计方法,面向多目标、多任务的微内核嵌入式操作系统,分布嵌入式系统的实时性问题、分布式计算、分布式信息交互与综合处理,以及嵌入式系统的多目标交叉编译和交叉调试工具的研究等。

“嵌入式系统”作为自动化学科中的一门理论与实际密切结合的,知识与技术含量较高的综合性专业课程,必将随着信息产业的发展而逐渐成熟。