windows CE科普介绍

Q:什么是嵌入式系统?  

国际电气和电子工程师协会(IEEE)对嵌入式系统的定义是这样的:嵌入式系统是控制、监视或者辅助设备、机器和车间运行的装置Devices   used   to   control,   monitor,   or   assist   the   operation   of   equipment,   machinery   or   plants)。
但是这个定义非常的难于理解——句子的主干:嵌入式系统是装置”——并且不太会被计算机行业的人士接受,为什么呢?因为做出这个定义的组织是IEEE,是搞电子的一群人,在他们眼里,当然是Device比较重要。Google一下,还可以找到另外一个定义,我觉得这个定义是比较不错的:
嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件是可裁剪的,适用于对功能、可靠性、成本、体积、功耗等有严格要求的专用计算机系统。
这样句子的主干就成了嵌入式系统是计算机系统。我们可以通过上面的定义,挖掘嵌入式系统的三个特点:
(1)  
嵌入性:由于是嵌入到对象系统中,必须满足对象系统的环境要求,如物理环境(小型)、电气/气氛环境(可靠)、成本(价廉)等要求。通俗一点说,嵌入式系统通常需要与某些特定的应用领域紧密结合。
(2)  
专用性:软、硬件的裁剪性;满足对象要求的最小软、硬件配置等。一般而言,当嵌入式系统开发结束之后,它的用途也就被定下来了,一般不会改变。例如,我们不可能用投影仪去听mp3,虽然投影仪上的硬件足以应付对mp3的处理。
(3)  
计算机系统:嵌入式系统必须是能满足对象系统控制要求的计算机系统。与上两个特点相呼应,这样的计算机必须配置有与对象系统相适应的接口电路。
总之,嵌入式系统与我们平时接触的桌面PC还有企业后台服务器的差别还是比较明显的。这些差别会随着大家的学习而越来越深刻的体会到。
随着互联网技术和消费类电子产品的高速发展,嵌入式系统近年来也得到了飞速发展,近年流行的一个概念,叫泛嵌入式系统。意思是嵌入式系统原本的概念早就被延伸了。随着PDA,智能手机等新兴的设备加入到嵌入式的阵营,为PDA、智能手机开发应用程序从广泛意义上来说也可以算得上是嵌入式开发,而为此类设备开发应用程序与为桌面设备开发应用程序的差别不大,因此,嵌入式开发与桌面开发之间的界限越来越模糊了。

 

Q:什么是Windows   CE
Windows   CE
微软公司开发的一个32位、多任务、多线程的嵌入式操作系统。它可以用在手机、机顶盒、智能手持设备、网关、数字媒体设备、工业控制等多种场合。Windows   CE支持X86ARMMIPSSH四种处理器架构。并支持WiFiUSB   2.0等新型设备,并具有强大的多媒体功能。
Windows   CE
操作系统是模块化设计的,整个系统被划分为数百个模块,嵌入式系统开发人员可以根据系统的需要,来选择自己需要的模块,从而达到减小系统体积目的。一个最小的Windows   CE可运行内核只需要几百KB。而一个功能完备的Windows   CE映像也不会超过64MB。此外,微软开放了部分Windows   CE的源代码,并且允许开发人员对这部分源代码进行修改。
Windows   CE
1996年发布了第一个版本,目前最新的版本是5.0。它的6.0版本会在2007年发布。

 

QWindows   CE与微软其他Windows版本之间的关系怎么样?
目前,微软的操作系统基本可以分为三大领域:桌面OS、服务器OS和嵌入式OS。桌面OS也就是我们熟悉的Windows   XPWindows   9x等。服务器OS包括Server系列,像Windows   2000   ServerWindows   Server   2003。这里就不再详细介绍了。
嵌入式OS也分为两类,一类是Windows   XP   Embedded,基本上就是把桌面版本的XP做了组件化。另一类就是Windows   CEWindows   CEWindows   XPE统称Windows   Embedded

 

Q:什么是Windows   Embedded?什么是Windows   Mobile?什么是Windows   Automotive
Windows   Embedded
是基于Windows的嵌入式操作系统的统称。目前Windows   Embedded家族包含两款产品:Windows   CEWindows   XP   Embedded
Windows   Mobile
是搭建在Windows   CE之上的针对移动领域的家族产品集合。也就是说Windows   Mobile的内核还是Windows   CE,只不过在Windows   CE之上搭建了一些针对这个领域一些特有的行业应用组件,例如手机图形界面,短信息应用等。目前Windows   Mobile包含Pocket   PCSmartphone两款产品。Pocket   PC针对PDA设计。Smartphone针对智能手机设计。
Windows   Automotive
也是搭建在Windows   CE之上的针对汽车电子领域的产品。包含了一些汽车电子上比较常用的组件,例如导航系统。

 

QWindows   CE与嵌入式Linux等其他嵌入式操作系统如何比较?
由于嵌入式系统的特点而决定的,在嵌入式领域不可能有一款嵌入式操作系统可以一统嵌入式OS的天下。不同的嵌入式操作系统有不同的优缺点。嵌入式开发人员可以根据应用的具体需要进行选择。
与其他嵌入式操作系统相比,Windows   CE的优点有如下几点:
学习/使用简单:微软提供了方便的IDE开发工具,对于OS的定制、裁减、交叉编译等都相对简单。此外,Windows   CE的应用程序开发接口也是Win32   API,与桌面Windows的基本一致。这也方便了桌面Windows开发人员向Windows   CE嵌入式开发过渡。
图形界面优秀:这个理由或许是许多人员选用Windows   CE的主要原因。Windows   CE的图形和多媒体能力是非常优秀的,可以方便的支持多种视频音频格式。此外还支持DirectX多媒体接口,这对于开发多媒体应用(例如电子地图导航、多媒体播放器等)非常方便。
应用集成度高:Windows   CE自带了很多应用程序,例如Web浏览器,多媒体播放器,Office文件察看器等。这对于快速的开发一款产品相当有用。此外,互联网上有数以万计的为Windows   CE开发的应用程序。 

与其他嵌入式操作系统相比,Windows   CE可能有如下缺点:
对硬件要求高:Windows   CE要求硬件必须有32位的CPUMMU,和数MBRAM,虽然Windows   CE可以裁减到几百K,但是对于一些小型的设备(例如一些航天设备只有64KBROM和几百KBRAM),Windows   CE依然不适合这类的领域。
实时性和可靠性:虽然Windows   CE在实时性上下了非常大的功夫,并且实时性与桌面Windows相比已经有了质的提高,但是在一些实时性和高可靠性的场合,Windows   CE可能依然不适合。
授权费用:Windows   CE是按照license方式来收钱的,根据用户选择的组件不同,每个Windows   CElicense可能要到十几美元左右。

 

Q:学习Windows   CE的方向有哪些?
与桌面操作系统和服务器操作系统下的软件开发不同,为嵌入式操作系统开发软件可不只是写写应用程序那么简单。我们常常要深入到内核,甚至要深入到硬件。根据不同的开发层面,我们把Windows   CE  下的嵌入式软件开发者分为下面三类: 

第一类我们称之为应用程序开发者。此类开发人员与传统的通用操作系统下的应用开发人员比较相似。他们通常是利用操作系统提供的APIApplication   Programming   Interface,应用程序编写接口),应用程序库(例如C  运行时库,Visual   Basic  运行时库)或应用开发框架(例如J2EE  .NET   Framework)来编写代码。他们开发的代码通常运行在用户态,无需直接对硬件进行操作。他们所关注的是通常是应用功能和业务逻辑的实现。此外,他们的程序通常是直接与最终用户打交道的。 

第二类是操作系统平台的提供者。此类开发人员的主要职责是针对具体的应用环境,对嵌入式操作系统进行裁减,向第一类开发人员提供应用程序运行的平台。他们通常要对所裁减的操作系统的各个模块的功能了如指掌,这样才可以针对具体的应用环境,搭建出合适的平台,使资源达到最节省。例如,一个运行在自动取款机上的嵌入式操作系统应不应该加入MPEG4  播放模块,管理数码相机的嵌入式操作系统中蓝牙网络协议栈是否必要……。此外,为了满足应用需求,他们有可能还需要对所裁减的嵌入式操作系统进行一些扩充,增加嵌入式操作系统所不支持的功能,编写一些比较上层的驱动程序通常是必要的。例如,用于视频会议的嵌入式系统要用到USB  摄像头的支持,如果该嵌入式系统没有提供USB  摄像头的驱动程序,就需要此类开发者来提供。在现实的世界中,除了微软向外界提供Windows   MobileWindows   Automotive,还没有发现有公司专门定制操作系统。一般这类角色通常都由第一类或第三类开发人员兼任。 

第三类是内核/驱动开发者。嵌入式操作系统与通用操作系统最显著的区别之一是它的可移植性。一款嵌入式操作系统通常可以运行在不同体系结构的处理器和开发板上。为了使嵌入式操作系统可以在某块具体的开发板上运行,嵌入式操作系统的编写者通常无法一次性完成整个操作系统的代码,而把一部份与具体硬件设备相关的代码作为抽象的接口保留出来,给提供硬件的OEM  厂商来完成。这样才可以保证整个操作系统的可移植性。这些代码通常是BSPBoard   Support   Package,板级支持包)的一部分。例如,不同的处理器和开发板通常都会提供时钟支持,用来得到当前的时间日期,但是时钟的实现方式却不胜枚举,如何告诉嵌入式操作系统当前的时间,就是此类开发人员要解决的任务。这一类开发人员不但要对嵌入式操作系统提供的硬件接口了如指掌,还要对操作系统运行的硬件有极为深入的了解。有可能此类开发人员会同时身兼软件工程师和硬件工程师双种身份——让嵌入式操作系统在自己设计的硬件平台上运行起来。
通常第一类软件开发者的数目最多,第三类软件开发者的数目最为稀少。从软件角度来看,一般把应用开发称作上层开发,而把驱动等系统开发称作底层开发。所以,这三类软件开发者的结构通常呈现出倒三角型
就目前国内市场上来看,无论是应用开发还是内核/驱动开发都有良好的前途(钱途)。国内基于Windows   CE的应用程序开发主要集中在Windows   Mobile这一块,也就是给

你可能感兴趣的:(windows CE科普介绍)