2.1 嵌入式系统

物联网是物与物、人与物之间的信息传递与控制,专业上就是指智能终端的网络化。在我国对应于物联网提出的概念是“感知中国”。其中,“感”的技术包括物理设备的嵌入式技术,使物理设备有“感”的功能;无线传感器网,实现信息采集和融合;现场总线(如CAN线),实现信息采集和传输。“知”的技术包括后台信息处理、控制和服务以及热门的云计算技术。嵌入式系统无所不在,有嵌入式系统的地方才会有物联网的应用。所以,物联网就是基于互联网的嵌入式系统,也可以说,物联网的产生是嵌入式系统高速发展的必然产物,更多的嵌入式智能终端产品有了联网的需求,催生了物联网这个概念的产生。

2.1.1 嵌入式系统的概念

(1)嵌入式系统的定义

嵌入式系统是以应用为中心,以计算机技术为基础,软件和硬件可裁剪,适应应用系统对功能、可靠性、成本、体积及功耗严格要求的专用计算机系统。嵌入式系统是嵌入到对象体系中的专用计算机系统。“嵌入性”“计算机系统”与“专用性”是嵌入式系统的3个基本要素。对象系统则是指嵌入式系统所嵌入的宿主系统。按照上述嵌入式系统的定义,只要具备定义中三要素的计算机系统,都可以称为嵌入式系统。

1)嵌入性。嵌入式系统是嵌入到对象体系中的,有对对象环境的要求。嵌入式系统是面向用户、面向产品、面向应用的,它必须与具体应用相结合才会具有生命力,才更具有优势。因此可以这样理解上述3个面向的含义,即嵌入式系统是与应用紧密结合的,它具有很强的专用性,必须结合实际系统需求进行合理的利用。

2)计算机系统。计算机系统实现对象的智能化功能。嵌入式系统是将先进的计算机技术、半导体技术和电子技术及各个行业的具体应用相结合后的产物,这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。

3)专用性。专用性是指嵌入式系统的软硬件按对象要求“裁剪”。嵌入式系统必须根据应用需求对软硬件进行“裁剪”,以满足应用系统的功能、可靠性、成本、体积等要求。因此,如果能建立相对通用的软硬件基础,然后在其上开发出适应各种需要的系统,就是一个比较好的发展模式。目前的嵌入式系统的核心往往是一个只有几KB到几十KB的微内核,需要根据实际的使用进行功能扩展或者“裁剪”,但是微内核的存在使得这种扩展能够非常顺利地进行。

实际上,嵌入式系统本身是一个外延极广的名词,凡是与产品结合在一起的具有嵌入式特点的控制系统都可以称为嵌入式系统,而且有时很难给它下一个准确的定义。目前当人们提到嵌入式系统时,某种程度上是指近些年比较成熟的具有操作系统的嵌入式系统。

嵌入式系统按形态可分为设备级(工控机)、板级(单板、模块)、芯片级——微控制单元(MCU)和系统级芯片(SOC)。有些人把嵌入式处理器当作嵌入式系统,但由于嵌入式系统是一个嵌入式计算机系统,因此只有将嵌入式处理器构成一个计算机系统并作为嵌入式应用时,这样的计算机系统才可称作嵌入式系统。嵌入式系统与对象系统密切相关,其主要技术发展方向是满足不同的应用指标,不断扩展对象系统要求的外围电路——如模_数转换器(ADC)、数_模转换器(DAC)、脉冲宽度调制(PWM)、日历时钟、电源监测、程序运行监测电路等,形成满足对象系统要求的应用系统。因此,嵌入式系统作为一个专用计算机系统,要不断向计算机应用系统发展,也可以把定义中的专用计算机系统延伸,即满足对象系统要求的计算机应用系统。当前嵌入式系统的发展与物联网紧密地结合在一起。

(2)物联网对嵌入式系统的要求

物联网对嵌入式系统的要求可归纳为以下3条。

1)嵌入式系统要协助满足物联网三要素,即信息采集、信息传递、信息处理。

2)嵌入式系统要满足“智慧地球”提出的“3I”要求,即物联化、互联化、智能化(Instrumented、Interconnected、Intelligent)。

3)嵌入式系统要满足信息融合物理系统GPS中的“3C”要求,即计算、通信和控制(Computation、Communication、Control)。

根据物联网的要求决定嵌入式系统的发展趋势:其一,嵌入式系统趋向于多功能、低功耗和微型化,如出现智能灰尘等传感器节点、一体化智能传感器;其二,嵌入式系统趋于网络化,由于孤岛型嵌入式系统的有限功能已无法满足需求,面向物理对象的数据是连续的、动态的(有生命周期)和非结构化的制约数据采集,因此面向对象设计、软硬件协同设计、嵌入式系统软硬件打包成模块、开放应用的设计兴起了。

(3)嵌入式系统的特点

嵌入式系统广泛应用的原因主要有两个方面:一方面的原因是芯片技术的发展使得单个芯片具有更强的处理能力,而且使集成多种接口已经成为可能;另一方面的原因是应用的需要,对产品可靠性、成本、更新换代要求的提高,使得嵌入式系统逐渐从纯硬件实现和使用通用计算机实现的应用中脱颖而出,成为近年来令人关注的焦点。从上面的分析可知,嵌入式系统有如下特征。

1)系统内核小。由于嵌入式系统一般应用于小型电子装置,系统资源相对有限,因此内核较之传统的操作系统要小得多。比如Enea公司的OSE分布式系统,内核只有5KB,而Windows的内核与其相比简直没有可比性。

2)专用性强。嵌入式系统的个性化很强,其中的软件和硬件的结合非常紧密,一般要针对硬件进行系统的移植,即使在同一品牌、同一系列的产品中也需要根据系统硬件的变化和增减不断进行修改。同时针对不同的任务,往往需要对系统进行较大更改,程序的编译下载要与系统相结合,这种修改和通用软件的“升级”完全是两个不同的概念。

3)系统精简。嵌入式系统一般没有系统软件和应用软件的明显区分,不要求其功能设计及实现上过于复杂,这样既利于控制系统成本,也利于保证系统安全。

4)高实时性的系统软件(OS)是嵌入式软件的基本要求,而且软件要求固态存储,以提高速度;软件代码要求高质量和高可靠性。

5)嵌入式软件开发要想走向标准化的道路,就必须使用多任务的操作系统。嵌入式系统的应用程序可以没有操作系统直接在芯片上运行;但是为了合理地调度多任务,利用系统资源、系统函数以及和专家库函数接口,用户必须自行选配实时操作系统(Real-Time Operating System,RTOS)开发平台,这样才能保证程序执行的实时性、可靠性,并减少开发时间,保障软件质量。

6)嵌入式系统开发需要开发工具和环境。其本身不具备自主开发能力,即使设计完成以后用户通常也是不能对其中的程序功能进行修改的,必须有一套开发工具和环境才能进行开发,这些工具和环境一般是基于通用计算机上的软硬件设备以及各种逻辑分析仪、混合信号示波器等。开发时往往有主机和目标机的概念,主机用于程序的开发,目标机作为最后的执行机,开发时需要交替结合进行。

2.1.2 嵌入式系统的组成

978-7-111-65977-8-Chapter02-1.jpg

2.1.2 嵌入式系统的组成

嵌入式系统一般都由嵌入式计算机系统和执行装置组成,如图2-1所示。嵌入式计算机系统是整个嵌入式系统的核心,由硬件层、中间层、系统软件层和应用软件层组成。执行装置也称为被控对象,它可以接受嵌入式计算机系统发出的控制命令,执行所规定的操作或任务。执行装置可以很简单,如手机上的一个微小型的电动机,当手机处于振动接收状态时打开;也可以很复杂,如SONY智能机器狗,上面集成了多个微小型控制电动机和多种传感器,从而可以执行各种复杂的动作和感受各种状态信息。

978-7-111-65977-8-Chapter02-2.jpg

图2-1 嵌入式系统的组成

1.硬件层

硬件层中包含嵌入式微处理器,存储器——同步动态随机存储器(SDRAM)、ROM、Flash等和通用设备接口和输入/输出接口,如A-D、D-A、I/O等。在一片嵌入式处理器基础上添加电源电路、时钟电路和存储器电路,就构成了一个嵌入式核心控制模块。其中操作系统和应用程序都可以固化在ROM中。

(1)嵌入式微处理器

嵌入式系统硬件层的核心是嵌入式微处理器。嵌入式微处理器与通用CPU最大的不同在于,嵌入式微处理器大多工作在为特定用户群所专用设计的系统中,它将通用CPU许多由板卡完成的任务集成在芯片内部,从而有利于嵌入式系统在设计时趋于小型化,同时还具有很高的效率和可靠性。

嵌入式微处理器的体系结构可以采用冯·诺依曼体系或哈佛体系结构;指令系统可以选用精简指令系统(Reduced Instruction Set Computer,RISC)和复杂指令系统(Complex Instruction Set Computer,CISC)。RISC计算机在通道中只包含最有用的指令,确保数据通道快速执行每一条指令,从而提高了执行效率,并使CPU硬件结构设计变得更为简单。

嵌入式微处理器有各种不同的体系,即使在同一体系中也可能具有不同的时钟频率和数据总线宽度,或集成了不同的外设和接口。据不完全统计,目前全世界范围内嵌入式微处理器已经超过1000种,体系结构有30多个系列,其中主流的体系有ARM、MIPS、PowerPC、x86和SH等。但与全球PC市场不同的是,没有一种嵌入式微处理器可以主导市场,仅以32位的产品而言,就有100种以上的嵌入式微处理器。嵌入式微处理器的选择是根据具体的应用而决定的。

(2)存储器

嵌入式系统需要存储器来存放和执行代码。嵌入式系统的存储器包含高速缓冲存储器(Cache)、主存和辅助存储器。

1)Cache。Cache是一种容量小、速度快的存储器阵列。它位于主存和嵌入式微处理器内核之间,存放的是最近一段时间微处理器使用最多的程序代码和数据。在需要进行数据读取操作时,微处理器尽可能地从Cache中读取数据,而不是从主存中读取,这样就大大改善了系统的性能,提高了微处理器和主存之间的数据传输速率。Cache的主要目标是,缓解存储器(如主存和辅助存储器)给微处理器内核造成的存储器访问瓶颈问题,使处理速度更快,实时性更强。

在嵌入式系统中,Cache全部被集成在嵌入式微处理器内,可分为数据Cache、指令Cache或混合Cache。Cache的大小依不同处理器而定。一般中高档的嵌入式微处理器才会把Cache集成进去。

2)主存。主存是嵌入式微处理器能直接访问的寄存器,用来存放系统和用户的程序及数据。它可以位于微处理器的内部或外部,其容量为256KB~1GB,根据具体的应用而定,一般片内存储器容量小,速度快,片外存储器容量大。

常用作主存的存储器ROM类有NOR Flash、EPROM和PROM等;RAM类有SRAM、DRAM和SDRAM等。

其中,NOR Flash凭借其可擦写次数多、存储速度快、存储容量大、价格便宜等优点,在嵌入式领域内得到了广泛应用。

3)辅助存储器。辅助存储器用来存放大数据量的程序代码或信息,它的容量大,但读取速度与主存相比要慢很多,可用来长期保存用户的信息。

嵌入式系统中常用的辅助存储器有硬盘、NAND Flash、CF卡、MMC和SD卡等。

(3)通用设备接口和I/O接口

嵌入式系统和外界交互需要一定形式的通用设备接口(如A-D、D-A)和I/O接口等,外设通过与片外其他设备或传感器的连接来实现微处理器的输入/输出功能。每个外设通常都只有单一的功能,它可以在芯片外,也可以内置在芯片中。外设的种类很多,可从一个简单的串行通信设备到非常复杂的802.11无线设备。

目前嵌入式系统中常用的通用设备接口有模/数转换接口(A/D)、数/模转换接口(D/A),I/O接口有串行通信接口(RS-232)、以太网接口(Ethernet)、通用串行总线接口(USB)、音频接口、视频输出接口(VGA)、现场总线(I2C)、串行外围设备接口(SPI)和红外线接口(IrDA)等。

2.中间层

硬件层与软件层之间为中间层,也称为硬件抽象层(Hardware Abstract Layer,HAL)或板级支持包(Board Support Package,BSP),它将系统上层软件与底层硬件分离开来,使系统的底层驱动程序与硬件无关,上层软件开发人员无须关心底层硬件的具体情况,根据BSP层提供的接口即可进行开发。该层一般包含相关底层硬件的初始化、数据的输入/输出操作和硬件设备的配置功能。BSP具有以下两个特点。

一是硬件相关性。因为嵌入式实时系统的硬件环境具有应用相关性,而作为上层软件与硬件平台之间的接口,BSP需要为操作系统提供操作和控制具体硬件的方法。

二是操作系统相关性。不同的操作系统具有各自的软件层次结构,因此,不同的操作系统具有特定的硬件接口形式。

实际上,BSP是一个介于操作系统和底层硬件之间的软件层次,它包含系统中大部分与硬件联系紧密的软件模块。设计一个完整的BSP需要完成两部分工作,即嵌入式系统的硬件初始化以及设计与硬件相关的设备驱动程序。

(1)嵌入式系统的硬件初始化

系统初始化过程可以分为3个主要环节,按照自底向上、从硬件到软件的次序依次为片级初始化、板级初始化和系统级初始化。

1)片级初始化。完成嵌入式微处理器的初始化,包括设置嵌入式微处理器的核心寄存器和控制寄存器、嵌入式微处理器核心工作模式和嵌入式微处理器的局部总线模式等。片级初始化把嵌入式微处理器从上电时的默认状态逐步设置成系统所要求的工作状态。这是一个纯硬件的初始化过程。

2)板级初始化。完成嵌入式微处理器以外的其他硬件设备的初始化。另外,还须设置某些软件的数据结构和参数,为随后的系统级初始化和应用程序的运行建立硬件和软件环境。这是一个同时包含软件和硬件两部分在内的初始化过程。

3)系统级初始化。该初始化过程以软件初始化为主,主要进行操作系统的初始化。BSP将嵌入式微处理器的控制权转交给嵌入式操作系统,由操作系统完成余下的初始化操作,包含加载和初始化与硬件无关的设备驱动程序,建立系统内存区,加载并初始化其他系统的软件模块,如网络系统、文件系统等。最后,操作系统创建应用程序环境,并将控制权交给应用程序的入口。

(2)设计与硬件相关的设备驱动程序

BSP的另一个主要功能是设计与硬件相关的设备驱动程序。与硬件相关的设备驱动程序的初始化通常是一个由高到低的过程。尽管BSP包含硬件相关的设备驱动程序,但是这些设备驱动程序通常不直接由BSP使用,而是在系统初始化过程中由BSP将其与操作系统中通用的设备驱动程序关联起来,并在随后的应用中由通用的设备驱动程序调用,实现对硬件设备的操作。与硬件相关的驱动程序是BSP设计与开发中另一个非常关键的环节。

3.系统软件层

系统软件层由实时多任务操作系统(RTOS)、文件系统、图形用户接口(Graphic User Interface,GUI)、网络系统及通用组件模块组成。RTOS是嵌入式应用软件的基础和开发平台。

(1)国外著名的实时操作系统

国外实时操作系统已经从简单走向成熟,有代表性的产品主要有VxWorks、QNX、Palm OS、Windows CE等,占据了机顶盒、PDA等绝大部分市场。其实,实时操作系统并不是一个新生的事物,从20世纪80年代起,国际上就有一些IT组织、公司开始进行商用嵌入式系统和专用操作系统的研发。

1)VxWorks操作系统。VxWorks操作系统是美国WindRiver公司于1983年设计开发的一种实时操作系统。VxWorks拥有良好的持续发展能力、高性能的内核以及良好的用户开发环境,在实时操作系统领域内占据一席之地。它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空及航天等高精尖技术及实时性要求极高的领域中,如卫星通信、军事演习、导弹制导及飞机导航等。

在美国的F-16、FA-18战斗机和B-2隐形轰炸机上,甚至连1997年4月在火星表面登陆的火星探测器上也使用了VxWorks。它是目前嵌入式系统领域中使用最广泛、市场占有率最高的系统。它支持多种处理器,如x86、i960、Sun Sparc、Moto-rola MC68xxx、MIPS RX000、Power PC、ARM、StrongARM等。大多数的VxWorks应用程序编程接口(API)是专有的。

2)QNX操作系统。QNX是一个实时的、可扩充的操作系统;它部分遵循POSIX相关标准,如POSIX.1b实时扩展;它提供了一个很小的微内核以及一些可选的配合进程。其内核仅提供4种服务,即进程调度、进程间通信、底层网络通信和中断处理,其进程在独立的地址空间中运行。所有其他操作系统服务都实现为协作的用户进程,因此QNX内核非常小巧(QNX4.x大约为12KB),而且运行速度极快。这个灵活的结构可以使用户根据实际的需求,将系统配置成微小的嵌入式操作系统或包括几百个处理器的超级虚拟机操作系统。

POSIX表示可移植操作系统接口(Portable Operating System Interface,POSIX),美国电气和电子工程师协会(IEEE)最初开发POSIX标准,是为了提高UNIX环境下应用程序的可移植性。

然而,POSIX并不局限于UNIX及许多其他的操作系统,例如DEC OpenVMS和Windows NT,都支持POSIX标准,尤其是IEEE Std.1003.1-1990(1995年修订)或POSIX.1,POSIX.1提供了源代码级别的C语言应用编程接口(API)给操作系统的服务程序,例如读/写文件。

POSIX.1已经被国际标准化组织(ISO)所接受,被命名为ISO/IEC 9945-1:1990标准。目前POSIX已经发展成为一个非常庞大的标准族,某些部分正处在开发过程中。POSIX与IEEE 1003和2003家族的标准是可互换的。

3)Palm OS。3Com公司的Palm OS在掌上计算机和PDA市场上占有很大的市场份额。它有开放的操作系统应用程序接口,开发商可以根据需要自行开发所需的应用程序。目前共有3500多个应用程序可以运行在Palm Pilot上。其中大部分应用程序均为其他厂商和个人所开发,使Palm Pilot的功能得以不断增多。这些软件包括计算器、各种游戏、电子宠物及地理信息等。在开发环境方面,可以在Windows 95/98/NT以及Macintosh下安装Palm Pilot Desktop。Palm Pilot可以与流行的PC平台上的应用程序(如Word、Excel等)进行数据交换。

4)Windows CE操作系统。Microsoft WindowsCE是从整体上为有限资源的平台设计的多线程、完整优先权、多任务的操作系统。它的模块化设计允许它对从掌上计算机到专用的工业控制器的用户电子设备进行定制。操作系统的基本内核至少需要200KB的ROM。

5)LynxOS。Lynx Real-Time Systems的LynxOS是一个分布式、嵌入式、可规模扩展的实时操作系统,它遵循POSIX.1a,POSIX.1b和POSIX.1c标准。LynxOS支持线程概念,提供256个全局用户线程优先级;提供一些传统的、非实时系统的服务特征,包括基于调用需求的虚拟内存,一个基于Motif的用户图形界面,与工业标准兼容的网络系统以及应用开发工具。

Motif是开放软件基金(OSF)于1989年推出的一个图形用户界面系统。由于它融合了多种图形用户界面产品中的优点,因此得到了OSF的所有成员及广大第三方厂商的广泛支持。目前Motif已作为软件产品在OS/2、UNIX、SysV、OSF/1、VMS、MacintoshOS、Ultrix等48种操作系统平台上实现,并可在PC、工作站、小型机和大型机等各种计算机系统上运行。为了讲清楚Motif是什么概念,先讲一下图形用户界面系统的层次结构(读者可查阅详细相关资料)。一般的图形用户界面系统由6个层次构成,即桌面管理系统、用户模型、窗口模型、显示模型、操作系统及硬件平台。Motif位于用户模型层。它建立在X Windows系统之上,也就是说它以X Windows系统作为显示模型的窗口模型。

Motif由工具箱(Motif Toolkit)、用户界面语言(UIL)、窗口管理程序(MWM)及风格指南文档(Style Guide)4部分组成。Motif Toolkit是一个具体的X Toolkit产品,它包括Xt Intrinsics、Motif对象元类集合和操纵这个对象元类集合的简便函数3部分。利用Motif开发的应用程序通常可分为两个部分:一部分是有关应用程序界面的代码;另一部分是关于应用程序具体功能的代码。一般来说,应用程序中这两个部分是不会相互干扰的。例如,菜单项位置的变动、标图的更换都不会影响应用程序的功能。基于上述事实,Motif引入了用户界面语言来解决用户界面的描述问题。

与其他窗口管理程序一样,Motif的窗口管理程序提供了一个对屏幕上的窗口进行管理的手段,同时它也强化了用户界面视感的一致性。MWM支持Motif风格指南所描述的各种窗口操作及显示窗口时的各种约定。Motif的风格指南以文档的形式说明了在Motif环境下开发应用程序时应遵守的规范。

6)嵌入式Linux操作系统。随着Linux操作系统的迅速发展,嵌入式Linux操作系统目前已经有许多的版本,包括强实时的嵌入式Linux(如新墨西哥工学院的RT-Linux和堪萨斯大学的KURT-Linux)和一般的嵌入式Linux版本(如uClinux和Pocket Linux等)。其中,RT-Linux通过把通常的Linux任务优先级设为最低,而使所有的实时任务的优先级都高于它,以达到既兼容通常的Linux任务又保证强实时性能的目的。

另一种常用的嵌入式Linux操作系统是uClinux,它是针对没有内存管理单元(MMU)的处理器而设计的。它不能使用处理器的虚拟内存管理技术,它对内存的访问是直接的,所有程序中访问的地址都是实际的物理地址。它专为嵌入式系统做了许多小型化的工作。由于嵌入式系统越来越追求数字化、网络化和智能化,因此原来在某些设备或领域中占主导地位的软件系统越来越难以为继(因为要达到上述要求,整个系统必须是开放的、提供标准的API,并且能够方便地与众多第三方的软硬件沟通)。Linux操作系统主要特点如下。

①Linux操作系统是开放源码的,不存在黑箱技术,遍布全球的众多Linux操作系统爱好者又是Linux操作系统开发的强大技术后盾。

②Linux操作系统的内核小,功能强大,运行稳定,系统健壮,效率高。

③Linux操作系统易于定制裁剪,在价格上极具竞争力。

④Linux操作系统不仅支持X86 CPU,而且可以支持其他数十种CPU芯片。

⑤有大量的且不断增加的开发工具,这些工具为嵌入式系统的开发提供了良好的开发环境。

⑥Linux操作系统沿用了UNIX操作系统的发展方式,遵循国际标准,可以方便地获得众多第三方软硬件厂商的支持。

⑦Linux操作系统内核的结构在网络方面是非常完整的,它提供了对十兆/百兆/千兆以太网、无线网络、令牌网、光纤网及卫星网等多种联网方式的全面支持。

⑧在图像处理、文件管理及多任务支持等诸多方面,Linux操作系统的表现也都非常出色,它不仅可以充当嵌入式系统的开发平台,而且其本身也是嵌入式系统应用开发的好工具。

7)uC/OS。uC/OS是源码公开的实时嵌入式操作系统。uC/OS-Ⅱ的主要特点如下。

①公开源代码。系统透明,很容易就能把操作系统移植到各个不同的硬件平台上。

②可移植性强。uC/OS-Ⅱ绝大部分源码是用ANSI C写的,可移植性(Portable)较强。而与微处理器硬件相关的部分是用汇编语言写的,已经压到最低限度,使得uC/OS-Ⅱ便于移植到其他微处理器上。

③可固化。uC/OS-Ⅱ是为嵌入式应用而设计的,这就意味着,只要开发者有只读存储器化(ROMable)手段(C编译、联接、下载和固化),uC/OS-Ⅱ就可以嵌入到开发者的产品中成为产品的一部分。

④可“裁剪”。通过条件编译,可以只使用uC/OS-Ⅱ中应用程序需要的那些系统服务程序,以减少产品中的uC/OS-Ⅱ所需的存储器空间(RAM和ROM)。

⑤占先式。uC/OS-Ⅱ完全是占先式(Preemptive)的实时内核,这意味着uC/OS-Ⅱ总是在运行就绪条件下优先级最高的任务。大多数商业内核也是占先式的,uC/OS-Ⅱ在性能上和它们类似。

⑥实时多任务。uC/OS-Ⅱ不支持时间片轮转调度法(Round-roblin Scheduling)。该调度法适用于调度优先级平等的任务。

⑦可确定性。全部uC/OS-Ⅱ的函数调用与服务的执行时间具有可确定性。

uC/OS-II仅是一个实时内核,这就意味着它不像其他实时操作系统那样,提供给用户的只是一些应用程序编程函数接口,有很多工作往往需要用户自己去完成。把uC/OS-Ⅱ移植到目标硬件平台上也只是系统设计工作的开始,后面还需要针对实际的应用需求对uC/OS-Ⅱ进行功能扩展,包括底层的硬件驱动、文件系统、用户图形接口(GUI)等,从而建立一个实用的RTOS。

(2)国内著名的实时操作系统

国内的实时操作系统研究开发有两种类型。一类是中国自主开发的实时操作系统,如Delta OS(道系统)、Hopen OS(女娲计划)、EEOS、HBOS以及中科院北京软件工程研制中心开发的CASSPDA等;另一类是基于国外操作系统二次开发完成的,这类操作系统大多是专用系统(在此不对这类系统进行介绍)。

1)DeltaOS。DeltaOS是电子科技大学嵌入式实时教研室和科银公司(专门从事嵌入式开发)联合研制开发的全中文的嵌入式操作系统,提供强实时和嵌入式多任务的内核,任务响应时间快速、确定,不随任务负载大小改变,绝大部分的代码由C语言编写,具有很好的移植性。它适用于内存要求较大、可靠性要求较高的嵌入式系统,主要包括嵌入式实时内核DeltaCore、嵌入式TCP/IP组件DeltaNet、嵌入式文件系统DeltaFile以及嵌入式图形接口DeltaGUI等。同时,它还提供了一整套的嵌入式开发套件LamdaTool,是国内嵌入式领域内不可多得的一整套嵌入式开发应用解决方案,已成功应用于通信、网络、信息家电等多个领域。

2)Hopen OS。Hopen OS是凯思集团自主研制开发的实时操作系统,由一个体积很小的内核及一些可以根据需要进行定制的系统模块组成。其核心Hopen Kernel的规模一般为10KB左右,占用空间小,并具有实时、多任务、多线程的系统特征。

3)EEOS。EEOS是中科院计算所组织开发的开放源码的实时操作系统。该实时操作系统重点支持P-Java,要求一方面小型化,另一方面能重用Linux操作系统的驱动和其他模块。中科院计算所将在2或3年内持续加大投资,以期将其扩展成能力强、功能完善且稳定和可靠的嵌入式操作系统平台,包含E2实时操作系统、E2工具链及E2仿真开发环境的完整环境。

4)HBOS。HBOS是浙江大学自主研制开发的全中文实时操作系统。它具有实时、多任务等特征,能提供浏览器、网络通信和图形窗口等服务;可供进行一定的定制或二次开发;能为应用软件开发提供API支持;可用于信息家电、智能设备和仪器仪表等领域的开发应用。在HBOS平台下,已经成功地开发出机顶盒和数据采集等系统。

2.1.3 嵌入式系统的应用

嵌入式系统技术具有非常广阔的应用前景,其应用领域可以包括以下几个方面。

(1)工业控制

基于嵌入式芯片的工业自动化设备将获得长足的发展,目前已经有大量的8位、16位、32位和64位嵌入式微控制器在应用中。网络化是提高生产效率和产品质量、减少人力资源的主要途径,如工业过程控制、数字机床、电力系统、电网安全、电网设备监测及石油化工系统等。就传统的工业控制产品而言,低端型采用的往往是8位单片机,但随着技术的发展,32位、64位的处理器逐渐成为工业控制设备的核心,在未来几年内必将获得长足的发展。

(2)交通管理

在车辆导航、流量控制、信息监测与汽车服务方面,嵌入式系统技术已经获得了广泛的应用,内嵌GPS模块、GSM模块的移动定位终端已经在各种运输行业中获得了成功的使用。目前GPS设备已经从尖端产品进入了普通百姓的家庭。

(3)智能家居

智能家居是嵌入式系统最大的应用领域,电冰箱、空调等家用电器的网络化、智能化将引领人们的生活步入一个崭新的空间。即使你不在家里,也可以通过电话线、网络进行远程控制。在这些设备中,嵌入式系统将大有用武之地。

(4)家庭智能管理系统

水、电、煤气表的远程自动抄表以及安全防火、防盗系统,其中嵌有的专用控制芯片将代替传统的人工检查,并实现更准确和更安全的性能。目前在服务领域(如远程点菜器等)已经体现了嵌入式系统的优势。

(5)POS网络及电子商务

公共交通无接触智能卡(Contactless Smart Card,CSC)发行系统、公共电话卡发行系统、自动售货机及各种智能ATM终端将全面走入人们的生活,到时手持一卡就可以行遍天下。

(6)环境工程与自然

可实现水文资料实时监测、防洪体系和水土质量监测、堤坝安全、地震监测网、实时气象信息网、水源和空气污染监测。在很多环境恶劣、地况复杂的地区,嵌入式系统将实现无人监测。

(7)机器人

嵌入式芯片的发展将使机器人在微型化、高智能方面优势更加明显,同时会大幅度降低机器人的价格,使其在工业领域和服务领域获得更广泛的应用。

这些应用中,着重于在控制方面的应用。就远程家用电器控制而言,除了开发出支持TCP/IP的嵌入式系统之外,家用电器产品控制协议也需要制订和统一,这需要家用电器生产厂家来做。同样的道理,所有基于网络的远程控制器件都需要与嵌入式系统之间实现接口,然后再由嵌入式系统来控制,并通过网络实现控制。因此,开发和探讨嵌入式系统有着十分重要的意义。