Windows CE在嵌入式工业中的应用思考

开发
随着应用对象的扩大和微电子技术、软件技术的发展,嵌入式系统逐渐从单片机发展到高性能嵌入式微处理器和嵌入式操作系统。本文详细分析Windows CE 3.0的实时性、通用性、模块化、Win32兼容等性能特点。根据工业控制系统对系统平台的一般要求,如实时性、可靠性、图形界面、开发环境和成本等,分析Windows CE在工业控制领域的优缺点,并指出Windows CE在工业控制中有很好的应用前景。
1  嵌入式系统

  嵌入式系统(Embedded System)是指有特定功能或用途的计算机硬、软件的集合体,分为嵌入式软件系统和嵌入式硬件系统。在智能控制设备、便携式智能仪器等应用场合,出于对产品体积、成本等诸因素的考虑,往往要求将智能控制部分安装于设备内部,且占用的空间尽可能小,在这种情况下,处理器没有一般意义的硬盘,只有有限容量的内存及常用的Flash电子盘,这样的系统称为嵌入式系统。嵌入式系统的操作系统和功能软件集成于计算机硬件系统之中,也就是软件与硬件的一体化。嵌入式系统目的性或针对性很强,具有软件代码小、高度自动化、响应速度快等特点,这也是与通用计算机系统的最主要区别。嵌入式技术与实时性有着必然的联系。

  2  从单片机的应用发展到嵌入式操作系统

  嵌入式系统开始于20世纪80年代单片机的使用。单片机技术已经渗透到各个领域,且与人们的日常生活密不可分,给人们生活和工业生产带来极大方便。单片机的功能强大,从信号采集、处理到传输都能由单片机来完成。但是,随着网络时代的来临,许多电子设备需要联网和更智能化、更强的计算能力,比如音频、视频的数据采集、处理和传输;丰富的图形界面等。

  单片机越来越不能满足应用对象的需求,开发工作也变得越来越复杂、庞大。随着微电子技术的进步,芯片的制造成本大大降低,而功能却大大增强,16位和32位的嵌入式微处理器逐渐成为嵌入式系统设计的主流。但是,只有嵌入式微处理器是不够的,OEM(原始设备制造商)还需要有一个运行于嵌入式微处理器上的操作系统。嵌入式操作系统要有良好的可移植性,能够用在根据应用要求选择的微处理器中;软件开发工作变得规范,容易测试,可实现模块化编程,同时由多个人共同完成1个任务;解决已往开发产品存在的诸多不安全隐患。很多软件厂商迎合嵌入式系统发展的需要,推出了多种不同特点的嵌入式操作系统。例如Microsoft公司的Windows CE、3COM公司的Palm OS,Symbian公司的EPOC、中科院凯思集团的HOpen以及Linux等。

  3  Windows CE 3.0实时操作系统及其性能分析
 
  3.1  Windows CE

  Windows CE操作系统是微软为实现"信息随手可得"的设想而努力开发的成果。通过 Windows CE,微软提供了标准的开放式平台,极大地减少了硬件制造商(IHV)、软件开发商(SHV)以及最终将采纳新一代非 PC 技术解决方案的客户多方之间的矛盾。Windows CE是一个功能强大的开放的32位实时嵌入式操作系统,适用于快速构建新一代内存少、体积小的智能设备。例如工业控制器、手持式设备、智能电话、机顶盒和零售点设备等。目前的掌上电脑(PDA)、全球定位系统(GPS)、地理信息系统(GIS)、车载PC(Auto PC),有很多采用Windows CE操作系统。

  3.2  Windows CE 3.0性能特点

  Windows CE是一个抢先式多任务并具有强大通信能力的嵌入式操作系统。它是一个全新的、可移植的、实时的、模块化的操作系统,具有流行的微软程序开发界面,提供许多快速开发嵌入式系统的工具。

  (1)  新内核

  Windows CE看上去和Windows 9X/NT很像,但它不是这些操作系统的简化版,也不是从这些系统移植过来的。Windows CE具有全新的内核和任务调度、内存管理策略。

  (2)  可移植性

  由于Windows CE操作系统几乎完全是用C语言编写的,所以可移植到众多的32位微处理器上;支持各种处理器家族,包括x86、PowerPC、arm、MIPS和SH等系列。微软为每个支持的处理器家族提供完整的系统库。Windows CE可以通过OEM适配层OAL(OEM Adaptation Layer)适配到任何硬件平台。OAL是驻留在CE内核和硬件之间的代码层。原始设备制造商使用这些代码把CE适配到自己的硬件上。OAL链接CE的内核和定制的硬件。

  (3)  实时性

  Windows CE 2.1及其以前的版本实时性能不强,但Windows CE 3.0及以后的版本实时性能得到明显改善。Windows CE 3.0的实时性能主要通过以下技术实现:支持嵌套中断,高优先级的中断并不需要等待低优先级的中断服务例程(ISR)完成;256个线程优先级,可以灵活调度嵌入式系统的任务;通过固定高优先级中断服务线程(IST)的***调度延迟改善线程响应时间;使用API函数CeSetThreadQuantum 和 CeGetThreadQuantum修改操作系统中线程的线程量;中断服务子程序的响应时间非常短;支持信号量。在基于Windows CE的参考平台上,使用Hitachi SH3微处理器,系统可以在2~5μs内启动一个中断服务例程(ISR),在 90~170μs内启动相应的中断服务线程。如果考虑其它因素,如CPU类型、时钟频率、总线速度等的影响,许多实际的基于Windows CE平台的响应时间更短。

  (4)  模块化

  由于存储器资源在移动和嵌入式设备中非常有限,Windows CE设计成一个模块化操作系统,设计者只需选择那些需要的模块以满足指定平台的存储器要求。Windows CE的结构如图1所示,主要包括4个模块:内核(Kernel)、图形窗口事件子系统(GWES)、

文件系统(Filesys)和通信模块(Communications)。Kernel负责中断处理、进程和线程管理、虚拟内存管理和其它相关任务;GWES(Graphics Windowing and Events Subsystem)相当于桌面Windows的图形设备接口GDI和用户库;Filesys用于***存储,包括文件系统、注册表和数据库;Communications模块负责与桌面PC、其它CE设备和因特网的互联。每个模块又分成许多小组件。裁减Windows CE时,可以只选择那些需要的组件。

图1  Windows CE的基本结构

  (5)  Win32兼容性

  Windows CE采用与Windows 95/NT相同的编程模型,它的API是Win32 API的一个子集,大约有600个API函数,可以实现所有的嵌入式应用。CE只支持UNICODE码,CE API删除了Win32 API中包含ANSI字符串参数的函数。CE还支持当前流行的软件技术和运行库,如MFC(Microsoft Foundation Class)、ATL(Active Template Library)、EVC(Embedded Visual C++)、EVB(Embedded Visual Basic)。Win32的兼容性可以容易地把现成的Windows应用程序移植到Windows CE中。目前有许多开发人员精通Windows编程技术,他们只需学习很少的知识就可以开发Windows CE应用程序。

  PC机技术的发展必然出现两极分化:一方面PC机功能将进一步加强,达到以前工作站和小型机水平;另一方面,面向普通消费者和特定用途的智能化电子设备将会大量涌现。后者将会普遍采用类似Windows CE的嵌入式操作系统。

#p#

4  Windows CE在嵌入式控制系统中的应用分析

  嵌入式操作系统是一种应用广泛的系统软件,工业控制是它的传统应用领域,在这一领域里已有一些比较成功的嵌入式操作系统。但是,随着应用对象的扩大和技术的进步,实际应用对工业控制系统的功能和性能提出了许多新的要求。例如,适应恶劣的工作环境,熟悉和友好的用户界面,统一的编程界面,强大的通信功能和多媒体功能等,这些嵌入式操作系统很难满足工业应用的新需要。由于Windows CE 2.1及以前版本的实时性较差,在工业控制领域应用较少,主要应用在移动式(或便携式)产品和信息家电领域。Windows CE 3.0的出现极大地改善了它的实时性能,为Windows CE进入工业控制领域奠定了基础。

  虽然Windows CE 3.0作为嵌入式系统平台在工业控制领域还未被广泛采用,但前景非常广阔。许多著名的工业控制器生产商已经开发出基于Windows CE 3.0的工业控制产品,如西门子AG公司的多功能操作面板MP系列,Cybectec公司的变电站现代化平台SMP(Substation Modernization Platform)等。工业控制操作系统需要严格的实时处理功能,高可靠性,良好的开放性,对人机界面、开发环境、可操作性、成本等也有特别的要求。

  (1)  实时性

  实时性是指能够在限定时间内执行完规定的功能,并对外部的异步事件作出反应的能力。实时性的强弱以完成规定功能和作出响应时间的长短来衡量。提高硬件的处理能力可以在一定程度上提高计算机控制系统的实时性,但是当硬件确定以后,控制系统的实时性能主要由操作系统来决定。无论从汽车制造到工业自动化,还是从电子通信到交通运输,Windows CE 3.0均可为具备确定性响应能力的应用程序提供内建实时支持。

  (2)  可靠性

  工业控制系统对可靠性要求很高,计算机控制系统发生故障或死机对于企业安全高效生产带来不利的影响。可靠性主要包含两个方面的含义:一是控制计算机本身要连续稳定运行,二是系统检查出故障后要有保持安全状态的能力。虽然软硬件抗干扰技术、热冗余技术可以在一定程度上提高工业控制系统的可靠性,但是操作系统的可靠性仍然影响着工业控制系统的运行。

  稳定性方面,在实时控制操作系统中,一般要提供源代码或者提供许可证,由控制器生产商来保证系统的稳定性。控制器生产商根据应用需要定制Windows CE操作系统,经过一段时间的完善和测试以后投入使用。测试的方式和时间由生产商确定。通过这种方式定制的操作系统一般情况下可以稳定运行,但微软公司既没有保证Windows CE连续运行的时间,也不公开源代码。从这个意义上说,Windows CE的稳定性受到质疑。此外,在工控设备中,因为产品缺陷而造成事故,厂商要承担赔偿责任。对操作系统也一样。因此,微软对这一问题的态度,也是Windows CE能否很好地应用到工业控制领域的因素之一。

  从故障角度来看,实时操作系统在应用中是以内核模式工作的,应用的故障会立刻造成系统崩溃。Windows CE内核具有内存管理功能,可以检查出应用造成的系统异常,抑制由于应用不正常直接破坏系统的危险性。所以Windows CE比一般的实时系统健壮。

  (3)  人机界面

  不同对象对工业控制系统的人机界面HMI(Human Machine Interface)要求差别很大。在一般的实时嵌入式操作系统中,图形功能弱,虽然也有提供图形库的,但没有更强的功能。Window CE 不仅支持图形和窗口,具有多媒体功能,而且还可以利用丰富灵活的控件库在Windows CE环境下为嵌入式应用建立各种图形用户界面。Windows CE 支持256色,显示分辨率可以设定,支持触摸屏。因此,Windows CE 完全可以满足工业控制系统对人机界面的要求。

  (4)  开放性

  Windows CE具有良好的通信能力,广泛支持各种通信硬件、局域网连接以及拨号连接,并提供与PC、内部网以及Internet的连接,包括用于应用级数据传输的设备至设备间的互连。Windows CE具有良好的可扩展性,用户可根据实际需要定制合适的硬件,开发自己的模块和组件,集成到运行Windows CE的设备上。

  (5)  开发成本和开发环境

  工业控制设备的生产批量小,开发环境所占比重大,所以易用、廉价的开发环境对控制设备生产商十分关键。Windows CE的开发成本低,生成和调试工具方便易用。Windows CE Platform Builder 3.0提供了迅速创建Windows CE嵌入式系统需要的全部软件工具。Platform Builder主要包括Windows CE Add-on Pack(插件包)、各种调试工具及Embedded Visual Tools(由面向嵌入式系统开发而进行优化的Embedded Visual Basic和Embedded Visual C++组成)。

  5  结论

  到目前为止,工业控制系统中的自动化设备仍然受专用硬件或工业化PC平台的限制。专用硬件通常十分耐用,并能抗恶劣环境,但是只能用于单一的、特定的用途。虽然工业化PC比专用硬件更具有灵活性,但是由于振动、灰尘、潮湿、高温以及其它环境问题的影响,工业化PC平台经常会出现故障和数据丢失。Windows CE操作系统是一个适合下一代互连工业自动化设备的理想小体积嵌入平台。由于采用MSMQ(Microsoft Message Queuing)这样的先进应用服务,使Windows CE实现与生产现场IT设施的全面集成成为可能。它还具有很强的实时性能,支持确定性的响应时间控制。Windows CE能从闪存启动,从而避免了暴露在灰尘、高温和震动环境下,使它可以适应恶劣的生产环境。基于Windows CE的嵌入式控制系统提供统一的、可伸缩的解决方案,将专用硬件的耐用性与PC的灵活性结合在一起。因此Windows CE在工业控制领域有着很好的应用前景。

【编辑推荐】

  1. Windows CE异常和中断服务程序初探
  2. Windows CE下驱动开发基础
  3. WinCE电源管理应对移动嵌入式能耗瓶颈
责任编辑:book05 来源: chinaitlab
相关推荐

2010-03-30 15:44:16

Windows CE

2010-04-21 13:22:20

Windows CE

2009-04-11 15:12:24

2011-03-02 15:43:29

Windows CE

2009-07-08 14:32:10

GTK+嵌入式Linux

2014-06-19 13:59:55

2022-04-13 09:57:24

Go语言C语言程序开发

2023-10-31 11:12:20

Windows微软

2009-06-26 16:18:40

Windows Emb

2010-03-03 16:37:50

Windows Emb

2011-07-01 16:43:26

微软MVP微软嵌入式金融行业

2018-05-02 16:34:56

EAF嵌入式框架

2009-04-12 21:34:32

Win CE嵌入式系统设计

2012-03-09 09:45:29

Windows嵌入式操作系统

2011-07-01 16:25:40

微软MVP嵌入式智能家居

2012-07-30 14:13:11

Linux 2.6内核嵌入式

2010-09-25 15:05:49

LINUXJVM

2009-12-17 18:38:56

Fedora 7嵌入式

2009-04-11 15:22:24

Linux 2.6内核应用

2009-08-04 18:01:35

ASP.NET代码块
点赞
收藏

51CTO技术栈公众号