《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 业界动态 > 嵌入式系统的开发利器─Windows CE操作系统

嵌入式系统的开发利器─Windows CE操作系统

2009-06-02
作者:彭 飞 柳重堪 张其善

  摘 要:从系统结构、硬件要求、设计开发和应用领域等方面详细介绍了美国微软公司最新的32位Windows CE操作系统。
  关键词:操作系统 嵌入式系统 模块化设计


1 Windows CE系统简介
  Windows CE(以下简称CE)是美国微软公司专门为各种移动和便携电子设备、个人信息产品、消费类电子产品、嵌入式应用系统等非台式或笔记本电脑领域设计的一种32位高性能操作系统。它具有一个简捷、高效的完全抢先式多任务操作核心,支持强大的通信和图形显示功能,能够适应广泛的系统需求。CE操作系统的主要特点包括:
  ·兼容于微软公司的视窗(Windows)PC电脑操作系统,支持超过1000个常用的32位视窗应用程序接口函数(Win32API),支持高分辨率真彩色显示,为应用软件提供了强大的运行平台。
  ·对硬件没有任何特殊要求,允许系统设计者根据所开发产品的要求自由选择硬件,同时提供最广泛的硬件设备支持,包括通信接口、显示和打印设备、输入输出设备、音频设备、网络和存储设备等。
  ·支持多达数十种不同的32位微处理器芯片,包括Intel和AMD公司的X86系列、摩托罗拉公司的PowerPC、日立公司的SH3系列、东芝公司的MIPS系列以及PHILIPS、NEC公司的处理器产品等。
  ·采用模块化结构,配置灵活,运行时仅需很少的存储器(RAM)资源,并且是目前唯一的可以从ROM(只读存储器)中直接启动的32位操作系统,能够满足具有严格硬件资源限制的系统要求。
  由于其本身具有的出色性能,CE系统自1996年底面世之后,迅速在国外最新一代的工业和家用电子设备中得到了广泛应用。在美国,仅基于CE系统的掌上电脑产品销量就已超过了200万台。本文将从系统结构、硬件要求、设计开发和应用领域等4个方面对CE系统作全面的介绍。
2 Windows CE的系统结构
  CE操作系统由一些独立的模块组成,每一个模块提供特定的系统功能,大的模块又可以分成为几个组件。这种组件式结构能使CE系统变得非常紧凑,仅需使用很少的硬件资源就可运行。最主要的系统模块有四个,它们是:
· 内核
  内核是整个操作系统的核心部分,它负责最基本的操作系统功能,包括内存管理,进程管理和必需的文件管理。CE系统的内核继承了微软公司视窗操作系统的大部分出色性能,能够提供虚拟内存管理、进程调度、多任务管理、多线程管理以及中断处理、异常处理等系统级服务。CE系统强大的抢先式多任务处理机制允许多达32个独立的应用程序(即所谓进程)同时运行,而多线程机制又支持每个进程拥有自己下属的多个运行分支(即所谓线程)。此外,CE系统还允许每个进程拥有不同的优先级,优先级高的进程可以比优先级低的进程拥有更高的系统资源使用权限。这种多任务特性使CE系统非常适用于需要实时处理功能的嵌入式系统,它使应用程序能够同时运行几个分支以处理不同的突发任务。
· 持久性存储模块
  持久性存储模块通过对CE系统中对象存储(object store)功能的支持,为用户和应用程序提供数据存储服务。对象存储包含三种类型:文件系统、CE数据库和系统注册表。文件系统使用文件分配表(FAT)来管理用户安装或创建的可执行程序或数据文件,最多支持9个FAT分区,并具有镜像处理和安全功能,能预防在掉电或其他紧急情况下丢失数据。数据库提供结构化的数据存储和访问功能。系统注册表用于存储应用程序需要快速访问的系统配置数据以及其它信息。
· 绘图、窗口、事件子系统(简称GWES)
  GWES是用户、应用程序和操作系统之间的图形化操作界面,负责提供系统与用户之间的人机交互接口。GWES处理输入的方式是将按键、手写式输入装置的移动、菜单或按钮等控件的选择等用户输入事件转换为消息,然后再传递给应用程序;处理输出的方式是在显示设备或打印机上显示或打印窗口、图形、文本等信息。GWES的核心是窗口,所有的应用程序都需要通过窗口从操作系统中接收信息,而所有的输入事件都要经操作系统翻译为消息后通过窗口传递给应用程序。图1为GWES的结构。


· 通信模块
  通信模块为运行CE系统的设备提供对多种通信硬件和数据传输协议的支持,包括串/并行数据端口、红外数据端口、电话应用程序接口(TAPI)以及网络通信协议。CE系统的网络功能十分强大,支持局域网(LAN)、传输控制协议/Internet协议(TCP/IP)、远程访问服务(RAS)、网间控制报文协议(ICMP)、超文本传输协议(HTTP)、文件传输协议(FTP)等所有流行的网络协议。
  以上介绍的4个模块提供了最主要的操作系统功能。除此之外,CE系统还有其它一些可选择的模块,包括:设备管理器和可安装型设备驱动模块、多媒体(声音)支持模块、组件对象模型(COM)支持模块、系统外壳(Shell)等。对于CE系统而言,每一个模块都提供一种完整的功能。在最终的应用系统中,这些功能不一定都会被使用。CE系统不要求用户包含所有的功能,如果某项功能不需要的话,整个模块就可以被省略。
  这种基于模块和组件的结构使CE系统具有了高度的可伸缩性,它允许用户在设计自己的操作系统时自由选择需要的模块或组件。这样,系统开发者就能够方便地根据具体的硬件要求定制出合适的操作系统,使其中仅包含设备运行所必须的功能模块,从而不必为支持其它不需要的硬件或功能付出额外代价。通过采用这种方式,CE系统在支持目前市场上绝大多数硬件设备及接口标准的同时又保证了最大的灵活性和系统效率,因此能够适应广泛的用户系统的要求。
3 Windows CE系统的硬件要求
  CE操作系统不需要任何特定的硬件结构,实际的硬件系统完全由用户根据需要自由设计。从理论上说,一台以CE系统为基础的设备必须有一个处理器,有内存及内部时钟以便处理进度,除此之外再没有其他的硬件要求。不过在实际应用中,每个系统都需要有周边设备才能完成其功能。如前所述,CE系统提供了广泛的硬件兼容性,支持几乎所有的外围设备、其它设备和网络设备。为了进一步减少对内存资源的需求,CE系统在采用模块化设计的同时还大量使用了动态链接库(Dynamic-Link Library),许多功能函数都包含在动态链接库中,仅当应用程序需要时才调入内存,平时则以文件形式保存在存储器内。
  作为一个小而灵活的操作系统,以CE为基础的系统所需内存大小完全依赖于系统选用的模块和组件。表1列出了几种有代表性的基于CE的操作系统配置以及对存储器资源的要求。其中,MinInput表示最小输入采集系统,MinGDI表示最小图形系统,MinComm表示最小通信系统,H/PCUI表示手持电脑用户操作系统。表格中,ROM栏表示系统需要的永久存储空间,RAM栏表示系统运行时占用的系统内存,STACK栏表示系统运行时占用的数据存储空间。


  可以看出,相对于它强大的功能,CE操作系统对于硬件资源的要求非常低。一个只包含内核、通信端口,不需要显示功能的基本系统仅需不到400K的ROM和30K RAM即可运行,而一个完整配置的掌上电脑操作系统也只需大约2M ROM和1M RAM。当然,最终的系统配置还必须考虑应用程序运行和用户数据存储的需要。
4 基于Windows CE的应用系统开发与设计
  设计一个运行CE的嵌入式系统需要经过以下步骤:
  (1) 明确设计目的,确认系统功能,选择合适的微处理器芯片和周边设备;
  (2) 完成硬件平台的设计;
  (3) 选择CE功能模块,定制操作系统,并改编部分代码使之与硬件平台相配合;
  (4) 编写应用软件。
  典型的基于CE的嵌入式系统结构如图2所示。其中,设备管理器提供对可安装设备的支持,允许在系统中安装诸如PC卡存储器和调制解调器之类的设备以扩充功能;附加技术模块指由CE操作系统提供的一些可选择的专用功能模块,如JAVA语言(一种网络编程语言)支持模块、手写笔输入识别模块等;外壳模块为系统提供一个与PC电脑上的视窗操作系统类似的图形化操作界面。


  对于系统设计者而言,需要自行开发的是应用程序和直接与硬件有关的部分,包括硬件系统本身、硬件抽象层和设备驱动程序。其中,硬件抽象层是指建立在硬件设备与系统内核之间的一层代码,主要任务是为内核管理具体硬件设备的时钟、中断和实施电源管理提供支持。设备驱动程序负责支持操作系统对目标硬件的访问。硬件抽象层和驱动程序都需要针对具体的硬件设备编写。一般硬件设备制造厂商会为设备提供驱动软件支持,如果有专门为CE系统编写的驱动程序,只需将其加入到操作系统的相应模块中就可使用。如果没有,则应根据厂商提供的驱动程序开发包编写。通常这些开发包中已经包含了完成各种硬件操作的标准代码,开发者的工作只是将其与相应的CE系统API函数对应起来。在CE系统中,所有涉及硬件的操作都通过调用相应的API接口函数来完成,而硬件抽象层和驱动程序就是要为这些API函数提供支持,将其翻译为直接对目标硬件进行的底层操作。通过这种方式,CE系统将应用程序与具体的硬件设备进行了隔离,应用程序只需调用API函数就可以实现对硬件的访问。这样,程序员在开发应用程序时就没有必要编写任何直接针对硬件的代码,因此不必考虑具体的硬件特性,而应用程序也具有了不依赖于具体硬件设备的独立性。
  微软公司提供了专门的Windows CE平台编辑器软件来帮助开发者完成定制操作系统和编写硬件抽象层的工作。该编辑器是一个可以在PC电脑上运行的工具软件包,其中包含完整的带有集成开发工具的Windows CE操作系统,并附带了编程指南、应用程序接口(API)参考等资料和设备驱动程序工具箱。用户可以使用其中的操作系统编辑器、汇编编辑器和经过优化的Visual C++编辑器进行开发,并将最终生成的操作系统编译为能够被处理器芯片识别的二进制代码文件,以便在目标系统中使用。除启动和初始化部分外,CE系统的其他部分可以直接以文件形式存储。CE平台编辑器中还带有远程调试工具,只要硬件开发系统支持并留出调试端口,就可以将编辑好的操作系统从PC电脑中下载到硬件平台进行调试,并在PC电脑上观察系统的运行状态和内存资源使用情况等信息。
  由于CE操作系统支持1000多个与Windows系统兼容的API函数,使在基于CE的嵌入式系统中运行的程序可以拥有与PC电脑中的程序同样复杂和强大的功能。微软公司提供了专门用于编写CE程序的Visual C++和Visual Basic附件工具包以及CE平台模拟器,让程序员能够直接利用这两种熟悉的编程语言在PC电脑上编写和调试CE系统中的程序。此外,尽管编写CE系统的应用程序与编写PC平台的32位Windows应用程序有一些区别,但其中进程、线程、视窗的概念以及API函数、资源、控件都与Windows系统非常相似,因此任何具有Windows编程经验的程序员都能够很容易地掌握CE编程。
5 Windows CE系统的应用领域
  目前国外已经有大量基于Windows CE系统的设备面市,所涉及的领域包括家用电器、娱乐设备、专用计算机系统、便携电脑以及个人通信产品等。微软公司于1999年3月在中国深圳提出了维纳斯计划,其核心内容就是推广基于Windows CE系统的信息家电产品。目前已经有许多符合这一概念的产品面世,如美国国家半导体公司生产的便携式网络终端WebPad,能够随时与互联网连接,进行网络浏览和收发电子邮件。类似的产品还包括网络机顶盒和网络电话。在家庭娱乐市场方面,日本世嘉公司于1998年底推出了运行CE系统的Dreamcast电视游戏机,其拥有的强大的处理器运算能力和图形功能甚至超过了桌面电脑产品,除进行游戏之外还能播放DVD、浏览互联网或运行基于CE系统的应用程序。在专用计算机系统方面,使用CE系统的有打包和邮件跟踪设备、超市收银机终端、数据采集设备、车载导航电子设备以及工业控制系统等。在便携电脑市场方面,运行CE系统的设备包括掌上电脑、个人商务通产品和车载移动电脑系统。掌上电脑是最近几年兴起的新型便携信息产品,一般都配备笔输入装置,具有文字处理、电子记事和网络浏览功能,可以与桌面电脑进行对接交换数据,而重量不到传统笔记本电脑的一半。在国外,流行的掌上电脑操作系统有Palm OS和Windows CE两种,而国内则主要是中文Windows CE。常见的惠普、联想等公司的产品都使用了最新的中文CE2.11版本,其中还引入了汉王笔输入识别技术和金山词霸英汉双向翻译系统。在个人通信市场方面,已经有大量内置CE系统、能够进行网络访问和收发电子邮件的移动电话产品出现。
  总结以上介绍可以得出结论,由于CE操作系统具有强大的功能、广泛的兼容性、灵活的适用性、最小的硬件资源要求和完善的开发工具支持,因此是设计嵌入式系统的理想选择。21世纪将是人类社会全面走向网络化、信息化的时代,电子产品小型化、智能化、网络化的趋势已不可避免。面对这一浪潮,将先进的操作系统性能和强大的通信能力高度集成在一起的CE系统无疑具有美好的应用前景。
参考文献
1 Franklin Fite Jr.Embedded Development with Microsoft Windows CE 2.0.Microsoft Developer Network Library,1997;9
2 John Murray.Microsoft Windows CE Memory Use. Microsoft Developer Network Library,1997;9
3 Jason Black and Jon christianson. Microsoft Windows CE Display Driver and Hardware. Microsoft Developer Network Library,1997;9
4 Douglas Boling.Programming Windows CE.Microsoft Press, 1998;10

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。