Microsoft Windows CE 是为各种嵌入式系统和产品设计的一种压缩的、具有高效的、可升级的操作系统(OS)。其多线性、多任务、全优先的操作系统环境是专门针对资源有限而设计的。这种模块化设计使嵌入式系统开发者和应用开发者能够定做各种产品,例如家用电器,专门的工业控制器和嵌入式通信设备。Windows CE支持各种硬件外围设备、其它设备及网络系统。包括键盘、鼠标设备、触板、串行端口、以太网连接器、调制解调器、通用串行总线(USB)设备、音频设备、并行端口、打印设备及存储设备,例如PC卡。   此外,Windows CE支持超过1000个公共Microsoft Win32 API和几种附加的编程接口,用户可利用它们来开发应用程序。这些接口包括:   组件对象模型(COM)   Microsoft 基础类(MFC)   Microsoft ActiveX 控件   Microsoft 活动模板库(ATL)   Windows CE还支持以下技术:   管理受时间限制响应的实时处理法   各种串行及通讯技术,包括USB支持   为Windows CE用户提供Web服务的移动通道   自动化和相互通讯的其它方法   对于台式计算机的硬件来说,Windows CE提供以下工具来允许用户通过台式计算机与基于Windows CE的附加设备之间传递信息:   建立和维护连接的连接管理器   允许共享数据同步化的数据同步化接口   输入输出文件的文件过滤器   使台式计算机上的客户能够从安装在基于Windows CE的附加设备的服务器上请求服务,例如进行文件操作。   从附加的台式计算机或其他设备上安装和卸装基于Windows CE的应用程序时,提供应用程序安装和管理服务。   总之,Windows CE设计简单灵活,可在各种小型嵌入式系统中使用,且其功能强大,在最新一代的高性能工业和家用设备中也得到了充分使用。


操作系统体系结构

Windows CE是由若干独立模块所建,每一个模块提供特定的功能。其中有几个模块又被分成几个组件。组件能使Windows CE变得较为紧凑(小于200兆ROM),仅需要使用最小的ROM、RAM和其它硬件资源就可运行设备。  Windows CE包括四个模块,这四个模块提供最重要的操作系统功能:内核、对象存储、制图、开窗口、事件字系统(GWES)和通讯。Windows CE还包含其它可选模块,支持诸如管理可安装设备驱动程序和支持COM的任务。  内核  内核是操作系统的核心,由Coredll模块表示。它提供所有设备上都必须存在的基本操作系统的功能。内核负责内存管理,进程管理和一些必需的文件管理功能,管理虚拟内存、调度、多任务、多线程和预期处理。  Coredll模块的大部分组件是任何Windows CE配置所必需的。然而,有一些可选的内核组件。只在包括例如通话、多媒体和图形设备接口(GDI)制图这类操作系统功能时才需要。有关内核的详细信息,请参阅Windows CE 程序员指南。  对象存储  文件系统(Filesys)模块支持Windows CE对象存储API功能。下表显示对象存储支持的持续存储类型。

存储类型

描述

文件类型

包含应用程序和数据文件

系统注册表

存储应用程序必须快速访问的系统配置和任何其它信息

Windows CE数据库

提供结构化存储

  对象存储提供另一种在文件中或在注册表中存储用户数据和应用程序数据的方式。在操作系统建立进程期间可以选取或忽略各种对象存储组件,以便仅包括需要的那些功能。对于对象存储的详细信息,请参阅Windows CE 程序员指南。  GWES  GWES是用户、用户应用程序和操作系统之间的图形化用户接口。GWES将键击、唱针移动和控制选择转换为消息,传送信息给应用程序和操作系统来处理用户输入。GWES通过创建和管理在显示设备和打印机上显示的窗口、图形和文本处理输出。  GWES的核心是窗口。所有应用程序(即使是为缺小图形显示器的设备创建的那些应用)需要窗口以便从操作系统接收信息。GWES为需要图形显示器的设备提供控制、菜单、对话框和资源。它还提供控制文本和图形显示的GDI。   通讯  通讯组件为以下通讯硬件和数据协议提供支持:    序列I/O支持    远程访问服务(RAS)    传输控制协议/Internet协议(TCP/IP)    局域网(LAN)    通话API(TAPI)    Windows CE 无线服务    可选组件  除了上面描述的主要模块外,其它操作系统模块也可使用。包括以下类型的模块和组件:    设备管理程序和可安装设备驱动程序    多媒体(声音)支持模块    COM支持模块    Windows CE 外壳(Shell)模块   Windows CE中提供的每一个模块或组件支持一组用户可用的相关的API功能


基于Windows CE的产品

 Microsoft提供完整的基于Windows CE的产品系列,范围从用来开发基于Windows CE的应用程序和设备驱动程序的工具,到用来创建操作系统各种自定义版本的工具。此外,Microsoft还与几家第三方供应商合作,创建由Windows CE驱动的设备。这些设备(手提PC、手掌大的PC和AutoPC )是一些与台式计算机、网络、Internet通讯以及相互间进行通信的移动设备。  Microsoft为以上每一种设备提供一个软件开发工具箱(SDK),可帮助用户创建运行于设备上的应用程序。每一个SDK中均包含编辑库、头文件以及样本程序的原代码和描述如何使用编辑库的文档资料。此外,每一个SDK还包括编辑指南和一份API参考,以及一个设备驱动程序工具箱。用户可以从Windows CE Web站点:http://www.microsoft.com/windowsce/embedded/resources/processors.asp下载这些SDK。  下表显示的是可用SDK。SDK 描述

Microsoft Windows CE 平台SDK

手提PC 2.0版本 一组用来为H/PC开发应用程序的程序库。在线文档提供有关管理内存、与其它设备进行通讯、设计用户接口和利用Microsoft Pocket Excel和Microsoft Pocket Word来编辑的信息。此SDK中包括一份详细的参考和一个H/PC仿真程序。

Microsoft Windows CE 平台SDK

Palm-Size/PC版本 一组用来为手掌大的PC(Palm-Size/PC)开发应用程序的程序库。在线文档提供有关管理和访问文件、连接其它设备、创建导航和输入控制、设计用户接口和实施样本代码的信息。此SDK包括一份详细的参考和一个Palm-Size/PC仿真程序。

  Microsoft Windows CE 以前的发布版,平台SDK,Auto PC版本 一组用来为Auto PC(Palm-Size/PC)开发应用程序的程序库。在线文档提供有关使用系统服务、利用控制、实现语言、与车辆计算机交互作用和使用方位和导航信息。  

操作系统开发

对有意创建Windows CE 定制版本的初始设备开发商(OEM)来说,Microsoft 公司提供了Microsoft Windows CE 平台建立器。Windows CE 平台建立器是一种开发工具,它将带有集成开发环境(IDE)的Windows CE操作系统和一些丰富的嵌入式开发工具结合起来,包括交互式编辑器(Crosscompilers), 汇编程序,内核调试器和远程调试器。  平台建立器使你能选择Windows CE组件,可以将你定制的操作系统(OS)包括在内。虽然你的操作系统包括任何可连接的组件,但是Windows 仍提供了几个可选择的样本配置。有关样本配置的详细信息,见平台建立器文件的附录部分。  平台建立器里有编程指南、应用程序接口(API)参考文献和设备驱动器工具箱,从而可以帮助你创建与Windows CE特定版本相关的定制驱动器程序和应用程序。平台建立器可以通过正常的零售渠道买到。建立一个基于Windows CE的操作系统不需要别的附加工具和产品。


应用程序开发

Windows 提供几个工具箱来支持你开发基于Windows CE的应用程序。这些工具箱包括Microsoft Windows Visual Basic 6.0下的CE工具箱。这些工具箱是附加在Microsoft Visual C++和Microsoft Visual Basic上的开发系统。这意味着可以利用集成开发环境(IDE)来开发桌面应用程序。Microsoft公司和其竞争者们一起努力使大家能够在台式计算机上开发自己的应用程序。  因为基于Windows CE的设备能运行不同的Windows CE操作系统,所以能支持不同的工具箱。例如,如果你想用Visual Basic开发一个适合于H/PC运行的手提PC正版编辑软件,你需要下列产品:   Microsoft Visual Basic 6.0开发系统   适合于Visual Basic 6.0的Microsoft Windows CE 工具箱   Microsoft Windows CE平台SDK,手提PC(H/PC)编辑软件 2.0版。   开发系统和各种工具箱可以通过正常的零售渠道买到。SDK可在Windows CE站点下载。  下面列出适合各种平台的工具箱。  基于Windows CE的设备包括家庭娱乐、快速更新的(vertical)设备和PC Companion市场。  在家庭娱乐市场方面,能运行Windows CE的产品包括Sega Dreamcast 系统,网上机顶盒及网上电话。  在快速更新的(vertical)设备市场方面,开发嵌入式系统的公司可以定做适于专用任务的计算机,例如打包(Package) 和邮件跟踪设备,销售点终端和导航设备。  在PC Companion市场方面,能运行Windows CE的产品包括H/PC,手掌大(Palm_size)的PC,以及车载PC( AutoPC )。  不同类型的设备支持不同的应用程序接口(APIs)。被支持的应用程序接口依赖于操作系统的版本、什么样的模板和组件,并且这些设备也依赖于操作系统的版本。此外,每种操作系统都有自己独特的外壳。因此,基于Windows CE 的平台都有应用程序接口(APIs),而此应用程序接口不包括在核心Windows CE操作系统中。  另外,接入到设备的方式不同,Windows CE的功能就不一样。一种特定版本的H/PCs也许有相同的功能,但一个手掌大小PC的功能与一个H/PC的功能就不一样。此外,OEMs 能够选择性的移去操作系统的可选部分,因此,运行在不同设备上的操作系统的配置变化很大。  

设备驱动程序的开发

Windows CE支持各种各样的设备驱动程序,你可以为各种基于Windows CE的平台定作这些设备驱动程序。Windows CE为设备驱动程序的开发提供了各种模块,其中包括来自其它操作系统的模块。由于有这些不同设备的驱动程序模块,Windows CE几乎拥有了所有的设备类型,包括内部设备及外围设备。  为了帮助你建立定作的设备驱动程序,平台开发器和所有特定平台SDKs 都有一个设备驱动程序工具箱、程序指南、一个应用程序接口(API)参考文献以及可以用来建立适合于Windows CE设备驱动程序的代码样品。  

Microsoft Windows CE 内存使用

Microsoft Windows CE 是一种可以定制不同设备或平台的组件式的操作系统。初始设备开发商(OEM)或者嵌入式系统开发商们可以从适合目标平台的操作系统中选择系统模块和组件。选择的系统模块和组件的多小决定了所需内存的大小。  一个模块代表一个完整的功能。在系统软件中,这些功能有的表示出来了,而有的没有表示出来。如果某项功能不需要的话,整个模块就会省略掉。例如,所有的串行口功能都是由一个叫作“serial”的模块提供,这个模块或许在内存里,或许不在内存里。  一些大的模块进一步分成多个组件。以便于初始设备开发商(OEM)们根据自己的需要来选择组件,从而定制出符合要求的规模较小的版本。例如,文件系统模块包括几个组件:RAM文件系统,ROM文件系统,注册系统和数据库。初始设备开发商(OEM)们可以匹配这些组件来满足目标平台的需要。  为了帮助初始设备开发商(OEM)或者嵌入式系统开发商们设计时能作出好的决策,有必要让他们知道所给模块或组件要占用的内存。本文描述Windows CE 2.0操作系统是怎样使用内存的,并且下面列出了在可选的Windows CE系统配置中,各种主要的系统模块和组件对内存的需求。同时也描述了如何使用Windows CE工具来了解这些模块和组件在别的系统配置中所占的内存。  Microsoft公司已经为Windows CE 2.0版建立和测试了几个由这些模块和组件构成的基本配置。这些配置代表了不同的系统功能,从最小用户输入且没有显示功能的基本系统到手持PC (H/PC) 中的Microsoft Windows系统。每种配置都建立在以前的配置上。下表就是文中提到的已被测试过的配置。


Microsoft Windows CE技术FAQ

 什么叫Windows CE,它有那些组件?  Microsoft Windows CE 是一个32位、多任务、多线程的操作系统,它那开放式的设计结构适用于各种各样的设备。Windows CE是一种压缩并可升级的软件系统。即使在小内存条件下,它也能提供较高的性能,同时,它也能为将来嵌入的、移动的、或多媒体产品线提供支持。Windows CE还有便于携带的优点,提供可供选择的微处理器。并且拥有好的电源管理系统,能延长移动设备的电池寿命。Windows CE拥有标准的通讯支持系统,非常方便的访问Internet,发送和接收电子邮件,浏览万维网(WWW)。此外,熟悉的Windows 用户界面用起来极为方便。  Windows CE 仅用于手提PC (H/PC)吗?  不。Windows CE是用来驱动全部非传统新型PC设备的。当然,第一个设备就算是手提PC吧。Microsoft公司曾说过,Windows CE也代表着将来设备的潜在发展方向,包括:钱夹式PCs以及车载PCs。  为什么Microsoft替Windows CE写不同的内核呢?  Windows CE 的创建经历了从头开始到适合多种微处理器使用的、压缩的且便于携带的系统的过程,并且Windows CE能够支持各种特定功能的非PC商务和消费设备。  Windows CE,Windows95和 Windows NT操作系统的主要不同之处在哪?  主要区别在是:Windows CE被特定设计为压缩的(Compact)软件系统,已便于它在有限内存(ROM)的设备上使用。  Windows CE有多大?  手提PC中,完整的Windows CE操作系统包括硬件提取层(HAL)、Windows CE内核、用户图象显示接口、文件系统和数据库,大约占1.5兆内存。  内核有多大?  Windows CE是一种压缩式的操作系统,便于在有限内存配置的ROM中运行。在手提PC中,Windows CE的内核,用户和图象显示接口只占700KB。  Windows CE在哪些方面支持基于Win32的应用程序接口(APIs)?  Windows CE大约支持500个基于Win32的应用程序接口(APIs)(共约1500个)。下面是一些Windows CE 1.0版还没有实现的主要的API组件:OLE,COM,和ActiveX技术。  Windows CE 可以为其他设备提供许可吗?  是的,可以从初始设备制造商(OEM)那里得到Windows CE的许可。  用于Windows CE FAQ的Visual C++(Visual C++ for Windows CE FAQ)   什么是Visual C++ for Windows CE ?  Microsoft Visual C++ for Windows CE是Visual C++ 5.0版的附加软件。拥有了Visual C++ for Windows CE,再使用Win32,开发商就能很容易地为基于Windows CE的设备创建应用程序。Visual C++ for Windows CE被集成为可视性开发系统即集成开发环境(IDE),利用Visual C++5.0一流的编辑器技术,提供基于Win32主要工具的远程版本(如调试器、探测(Spy)、缩放、注册编辑器、菜单显示)。Visual C++ for Windows CE也支持微软基础类(MFC),其中包括应用程序向导和类向导。此外,Visual C++ for Windows CE提供基于Windows CE的特定的新工具和新技术:适于MIPS和SH3 CPUs的交互式编辑器(Crosscompiler),远程连接服务器和远程对象观测器。  为了开发Windows CE应用程序,除Visual C++ for Windows CE外,还需要哪些软件?  Visual C++ for Windows CE是Visual C++ 5.0的附加软件,因此,为了用Visual C++ for Windows CE 编写Windows CE应用程序必须要有Visual C++ 5.0专业版或企业版。如果你现在还没有Visual C++ 5.0,当你买到Visual C++ for Windows CE时,你就会有Visual C++ 5.0。注意:Windows CE SDK 和Windows CE DDK是Visual C++ for Windows CE的一部分。不再需要别的软件。  如果我已经有了Visual C++ 5.0,想买Visual C++ for Windows CE,我能否获得升级的价格?  由于Visual C++ for Windows CE刚刚发布,升级价格不存在。Visual C++ 5.0要求带Visual C++ for Windows CE,再单独定升级的价格已毫无意义。  Visual C++ for Windows CE支持所有的微软基础类(MFC)吗?Visual C++ for Windows CE不支持哪些MFC?  在Windows CE的MFC中,并不是所有的MFC类均被支持。不被支持的类都是一些与下面几种模式相匹配的类:   OLE?COLe*, CRichEdit*及其相关的模式   MDI?CMDI*, CMultiDoc*及其相关的模式   ODBC?CRecord*, CDB*, CDatabase及其相关的模式   DAO? CDao及其相关的模式   Printing? CPrint*及其相关的模式   各种不被支持的Internet类    Visual C++ for Windows CE怎样在每个内部(native)平台产生高质量的代码?  Visual C++ for Windows CE提供一套优化的编辑器,此编辑器被设计成可以采用Windows CE操作系统支持的具体硬件平台,如SH3和MIPS。(注意:因为非x86是舶来品,处于竞争的原故,x86目前被支持)  Visual C++ for Windows CE系统需求什么?  Visual C++ for Windows CE需要以下东西:   Microsoft Visual C++5.0专业版或企业版    486/66或更高档处理器的PC机    Microsoft Windows NT Workstation 4.0版    24兆RAM(推荐32兆)    100兆可用的硬盘空间    CD-ROM驱动器    VGA或更高分辩率的显示器(推荐超级VGA)    Microsoft鼠标或兼容的点设备    对手提PC设备进行远程开发时,需要基于 Windows CE的手提PC。  利用Visual C++ for Windows CE来开发 Windows CE应用程序时,需要哪些硬件设备?  Visual C++ for Windows CE对附加的硬件几乎没有什么要求。实际上,开发商只要使用x86 Windows CE 编辑器创建的模拟运行(emulation-running)的应用程序,就能在PC机上完成他们的开发工作。此外,在手提PC上进行开发工作时,也不需要附加的硬件,因为Visual C++ for Windows CE使用手提PC的串口来下载、调试应用程序,并在手提PC上运行远程工具。