《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 设计应用 > 面向嵌入式应用的通用型操作系统Windows CE
面向嵌入式应用的通用型操作系统Windows CE
杨 波 张效义
摘要: 从系统模型、内存管理、任务调度等方面详细介绍了Windows CE嵌入式操作系统,并对其产生、现状及发展作了简要叙述。
关键词: PowerPC Windows CE .net
Abstract:
Key words :
</a>  下面以Windows CE .NET" title="Windows CE .NET">Windows CE .NET" title="Windows CE .NET">Windows CE .NET" title="Windows CE .NET">Windows CE .NET为例,说明Windows CE的主要特性:

  (1)具有模块化的可裁剪内核结构。

  (2)适应小型系统,为低成本弱计算能力系统提供简洁、高效、完善的控制手段。

  (3)遵循Windows平台的应用开发规范,提供Win32 API等。

  (4)灵活的内存访问机制,可以使系统中不同类型的应用程序充分地使用系统提供的RAM、ROM和闪存,并有选择地有效利用处理器提供的虚存、保护等功能。

  (5)高效的任务管理调度机制——多任务,具有256级优先级和动态优先级抢占式调度的功能。

  (6)支持实时应用。

  (7)Windows CE的通信服务包括:①串行通信,IrDA;②Telephony API(TAPI);③与Windows2000相当的TCP/IP支持;④Windows Socket;⑤Remote Access Server(RAS);⑥Simple Network Management Protocol(SNMP)代理;⑦Network Driver Interface Specification(NDIS);⑧Dynamic Host Configuration Protocol(DHCP)客户端;⑨Internet Protocol Helper API,如名字解析、ARP(地址解析协议)等;⑩Windows Networking CIFS(Common Internet File System)转发。

  (8)内置多媒体功能,具有可扩充的Compact Flash/MMC/SD插槽,通过扩展卡可实现多种功能。

  (9)提供高级电源管理功能。

  此外,Windows CE应用程序的集成开发环境eMbedded Visual C++拥有强大的开发和调试工具。利用其进行应用程序的开发,程序可运行于特定的平台,而不需要编写额外的代码,针对特定平台的代码转换工作由系统自动完成。

3 Windows CE结构分析

  Windows CE的设计目标是具有可伸缩性的模块化结构,实时性能好,通信能力强,支持多种CPU。完备的功能需要必备的结构。下面以Windows CE的最新版本Windows CE .NET为例,从系统模型、管理机制等方面对其结构进行分析。

3.1 系统模型

  Windows CE .NET采用典型的系统分层模型,其分层结构模型如图2所示。

 

 

  由图2可知,Windows CE .NET操作系统的功能在中间二层得以实现,应用支持库的上部和操作系统层的上部(主要是CoreDLL.dll)以及下部具有接口性质,它们构成了Windows CE .NET的应用界面和系统界面。从宏观角度看,系统包括多个软件实体:CoreDLL、NK、数据存储、设备管理、图形用户界面、网络通信等。

  CoreDLL完成外部调用系统功能的代理,实现系统API函数的管理和按名调用。此外,还可调用一些基本的支持函数,例如字符串处理、随机数生成、时间计算等。其运行时表现为CoreDLL.dll。

  NK是Windows CE .NET操作系统的核心,主要完成处理器调度、内存管理、异常处理、系统内的通信机制、为其他部分提供核心调用例程、为系统范围内的调试提供支持。其运行时表现为NK.exe。

  数据存储提供基本的数据存储能力。其运行时表现为filesys.exe(Memory)。

  设备管理提供系统范围内基本的设备列表管理、即插即用管理、电源管理、I/O资源管理并实现设备驱动程序得以工作的基本机制。其运行时表现为Device.exe。

  图形用户界面提供基本的绘图引擎、窗口管理、界面的事件机制等。其运行时表现为GWES.exe。

  网络通信包括了服务层、接口层、协议层和驱动层。通过系统提供的API,用户可以很容易地开发各种网络应用。

  除此之外,在Windows CE .NET的应用界面上还存在一个重要的Win32系统服务层。Windows CE .NET提供了符合Windows平台标准的开发环境,它实现了Win32 API的一个子集,覆盖了大部分的Win32功能。该服务层满足了Windows CE .NET对应用程序提供的接口实现。

3.2 系统管理机制

  Windows CE作为目前掌上电脑的主流操作系统,在内存管理方面除了采用分配、回收、虚拟映射、调页等机制外,为了优化页的使用,系统在虚拟内存之上提供了逻辑内存管理机制。此外,Windows CE .NET是一个多任务的操作系统,在多任务调度方面,为了满足实时性的要求,Windows CE .NET采用基于动态优先级的抢占式调度算法,而对于相同优先级的任务采用了时间片轮转调度的算法。同一优先级的时间片轮转调度算法可作为基于优先级的可抢占调度算法的补充,以完成实时多任务系统的任务调度。

  (1)逻辑内存管理

  Windows CE .NET提供了三个层次的内存逻辑结构,即物理内存、虚拟内存和逻辑内存。Windows CE .NET采用分页式虚拟内存,通过32位的虚拟地址查找页表,映射到相应的ROM或RAM物理地址。为了避免以页为单位分配回收时造成的空间浪费,Windows CE .NET采用以堆为单位的逻辑内存管理机制,应用程序可以用比页小的很多的粒度来申请堆,系统可以根据应用程序的需要自动地增加堆的大小,而释放空间时,堆的削减也由系统自动完成。

  (2)任务调度

  Windows CE .NET采用基于动态优先级的抢占式多任务机制。越重要的任务优先级越高。

  高优先级的任务最先得到CPU的控制权,保证了实时系统中对时间有严格限制的紧急任务得到更为优先的处理。同时优先级动态的调整,不但增强了系统的灵活性,而且提高了系统的运行效果。采用抢占式的调度算法使得任务级响应时间达到最优化。Windows CE .NET在任务调度中采用任务优先级机制、优先级动态调整机制和抢占式调度,目的都是为了最大限度地满足任务调度的实时性。

  对于一个优先级只有一个任务的简单系统内核,上述的三种调度机制足以满足系统的实时要求。但对于Windows CE .NET这样复杂的、高性能的多任务实时内核,由于多个任务允许共用一个优先级,则相同优先级间的调度就要采取Windows CE .NET提供的时间片轮转方法来实现。具体实现如图3所示。

 

 

  在没有更高优先级任务就绪时,相同优先级的任务依照就绪的先后次序执行。执行了一定的时间片后,无论任务完成与否,均转入下一任务执行,未运行完的任务释放处理器的控制权后转入就绪队列的末尾,依次往复。这样的轮转策略保证了具有相同优先级的任务相对平等地享有处理器的控制权。在Windows CE系统中,一般设置的时间片的大小为10ms,它可以通过OEM厂商所开发的不同硬件进行设置。

4  Windows CE的应用与发展

  Windows CE操作系统是微软为了进军PDA市场而开发的,其首要的应用是在PDA领域。但是作为一款通用性的嵌入式操作系统,随着手机的普及以及掌上电脑与移动通信功能的融合,微软已进军无线通信市场,并且在工业控制领域崭露头角。基于Windows CE对多媒体(包括DirectX)、通信(TCP/IP、SNMP及TAPI等)和安全的支持,利用微软提供的嵌入式软件开发环境,将使Windows CE在娱乐、通信、工业控制和事务处理等嵌入应用领域中发挥积极的作用。

  随着Internet的发展以及Internet技术与信息家电、工业控制技术等结合日益密切,嵌入式设备与Internet的结合将代表着嵌入式技术的真正未来,Windows CE也必将面向网络而发展。为了满足市场需求的不断提高,在Windows CE .NET的基础上微软发布了Windows CE .NET4.2版本,其功能特性包括强大的实时技术手段、网络互联特性、视频与音频编/解码程序、图形显示功能及远程桌面支持。

  综上所述,Windows CE .NET将为快速建立下一代智能移动和小内存占用的设备提供一个健壮的实时操作系统。

 

参考文献

1 陈向群,王雷,马洪兵等.Windows CE .NET系统分析及实验教程.北京:机械工业出版社,2003

2 魏忠,蔡勇,雷红卫.嵌入式开发详解.北京:电子工业出版社,2003

3 陈章龙,涂时亮.嵌入式系统-Intel StrongARM结构与开发.北京:北京航天航空大学出版社,2002

此内容为AET网站原创,未经授权禁止转载。