2月12日,微软发布了.NET家族中的新成员——.NET Micro Framework(简称.NET MF)。而就在短短的几天之内,这款新品已经收到业界的广泛关注。
.NET MF面向的是CPU处理能力和存储能力极其有限的设备。虽然微软拥有Windows CE、Windows XP Embedded和.NET Compact Framework,可以完成绝大多数嵌入式开发,但对于更普遍的家用电器领域(如电视、手表、洗衣机等),这些平台还是显得太大了些。可以想象,给你的电冰箱装块硬盘是多么搞笑的事。而.NET MF的出现,则标志着微软又向百姓生活迈进了一步,让所有家电都“智能”起来,已经是一个不远的梦。因为
所需要的
仅
仅是
便宜的,ARM处理器
和
一些
RAM、Flash存储器。
够了。Anders Liu是搞技术的,至少目前还是,作评论和展望不是Anders的强项。目前很多关于.NET MF的介绍都是面向业界的新闻、评书性的,而本文中Anders Liu将从技术人员的角度上,对.NET MF进行简要介绍。本文主要介绍的是.NET MF的技术特性,暂时还不包含开发技术。因为Anders也是刚刚接触这个东西不久。
概述
.NET MF是微软最新推出的嵌入式平台、专门用于处理能力和存储能力都更加有限的设备。既然微软已经拥有.NET Compact Framework(简称.NET CF),为什么还要再提供.NET MF呢?设备的限制是一个很重要的原因,.NET CF毕竟还是要求设备有比较强的处理和存储能力。两者重要的一个区别在于,.NET CF需要有Windows CE系列OS的支持才能得以运作,而.NET MF则提供了一个可引导的运行时环境。
在.NET MF中,操作系统倒成了可选的组成部分。在本文后面内容中,Anders Liu还会提及这一点。
既然.NET MF是可引导的,那么它实际上也相当于一个带有运行时环境的操作系统。那么,它又和Windows CE、Windows XP Embedded操作系统有哪些区别呢?下面的表格对比了几种平台的区别。
|
.NET Micro Framework
|
Windows CE
|
Windows XPe
|
Example Devices
|
Sensor Nodes, Aux displays, Health Monitoring, Remote Controls, Robotics
|
GPS Handhelds, PDAs,
Automotive, Set Top Boxes
|
Thin Clients, ATMs, Kiosks
|
Device Features
|
Connected, Small, Wearable, Graphical UI
|
Connected, Graphical UI, Server, Browser, RAS, DirectX
|
PCclass performance,
PC networking
|
Footprint
|
250-500KB managed code
Full featured
|
300KB+ without managed code
12MB with managed code
|
40MB + Depending on features
|
Power
|
Very low power
|
Low power
|
Mains power
|
CPU
|
ARM7, ARM9, No MMU
|
X86, MIPS, SH4, ARM,
with MMU
|
X86
|
Real-time
|
Not Real-time
|
Hard Real-time
|
Real-time capable through 3rd party extensions
|
Managed vs. Native Code
|
Managed via .NET Micro Framework,
native code through interop only.
|
Supports both,
managed code requires .NET Compact Framework
|
Supports both, managed code
requires .NET Framework
|
表 1 各种嵌入式平台对比
(资料来源:http://msdn2.microsoft.com/en-us/embedded/bb278106.aspx)
从上表可以看出,无论是资源占用还是耗电,.NET MF都要优于另外两种OS。但是,我们也看到了,在实时性方面,.NET MF并不是一款实时的运行时环境。这可能需要我们注意的一个重要方面。
在工业应用中,实时性往往是评判一个嵌入式系统的重要因素,这就意味着,.NET MF并不适用于重要的控制领域。不过,一般工业用系统都不会面临硬件过分有限的困境,完全可以使用WinCE或XPe作为基础OS。
反观民用领域,嵌入式应用正在逐渐渗透人们的生活。而当面对普通消费者时,评判一个嵌入式系统的重要标准——AndersLiu认为——就应该是:低成本。这包括两个方面,一是低的造价(软硬件成本,价格),另外一方面就是易用(这可以理解为学习成本和时间成本)。毕竟老百姓买不起和机床一样价格的洗衣机,也不希望像操作机床那样操作微波炉。
因此,民用嵌入式设备往往通过较低的硬件配置来降低价格,并通过适量(通常比较少)的按键和显示内容来降低使用复杂度。而这一切,都是.NET MF得以大显身手的地方。
可以看出,微软关于.NET MF的定位还是相当明确的——面向民用低成本嵌入式市场。下图是一两年前流行过一阵的新闻图片,传闻Gates腕上的SmartWatch中安装的,就是.NET MF的原型。
<shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></path><lock v:ext="edit" aspectratio="t"></lock></shapetype><shape id="Picture_x0020_0" style="VISIBILITY: visible; WIDTH: 135pt; HEIGHT: 193.5pt; mso-wrap-style: square" o:spid="_x0000_i1026" type="#_x0000_t75" alt="01-08gates-ces-sm.jpg"><imagedata src="file:///C:%5CUsers%5CANDERS~1%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_image001.jpg" o:title="01-08gates-ces-sm"></imagedata></shape>
图 1 Bill Gates和Smart Watch
(资料来源:http://www.microsoft.com/presspass/press/2003/jan03/01-08ces2003overallpr.mspx)
下图给出了.NET MF的技术架构。相较于.NET Framework,.NET MF多出了CLR之下的PAL(平台适配层,Platform Adaptation Layer)和HAL(硬件适配层,Hardware Adaptation Layer,这两层使得.NET MF可以直接运行在硬件上,并提供基本的Timer、IO和内存管理等功能。而HAL也可以通过OS代替,在硬件资源相对充裕的情况下,这可以降低.NET MF的设计复杂度,并提供更多功能。
<shape id="Picture_x0020_1" style="VISIBILITY: visible; WIDTH: 415.5pt; HEIGHT: 311.25pt; mso-wrap-style: square" o:spid="_x0000_i1025" type="#_x0000_t75" alt="1.jpg"><imagedata src="file:///C:%5CUsers%5CANDERS~1%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_image002.jpg" o:title="1"><font size="3"></font></imagedata></shape>
图 2 .NET MF技术架构
(资料来源:.NET MF白皮书[1])
本文后面的部分将自下而上介绍.NET MF的各构成部分。
P.S. 因为最近工作比较忙,所以本文不能一次写完,将一部分一部分地贴出,还望各位看官见谅。本文主要参考.NET Micro Framework白皮书,下载地址:http://download.microsoft.com/download/3/1/9/319f7469-70bd-4e7c-a6cc-e5ad96939af4/net_micro_framework_whitepaper_v_1.0.doc。本文后面的部分将包括:HAL、PAL、CLR、库、应用程序开发。
分享到:
相关推荐
3. **公共语言运行库(CLR)**:CLR是.NET Micro Framework的核心组成部分之一,它负责管理代码执行、内存管理、异常处理等。 4. **基础类库(BCL)**:BCL提供了一组丰富的类库,用于实现常见的应用程序功能。 ###...
其次,课程会讲解如何设置开发环境,包括安装.NET Micro Framework SDK、配置Visual Studio以及创建第一个“Hello, World”项目。这部分内容对于初学者至关重要,因为一个良好的开发环境是成功开发的前提。 接着,...
2. **创建第一个NETMF项目**:通过一个简单的示例,学习如何使用Visual Studio或其他集成开发环境(IDE)创建.NET Micro Framework应用。 3. **使用模拟器进行调试**:掌握如何设置断点,观察变量值,跟踪程序执行...
### 第一章:简介 #### 优势 .NET Micro Framework具有以下优势: - **可靠性**:.NET平台以其强大的稳定性和安全性著称,这对于嵌入式系统尤为重要。 - **高效性**:.NETMF针对资源有限的设备进行了优化,能够在...
.NET Micro Framework 是微软为小型设备开发的一种框架,它允许开发者使用.NET语言编写应用程序,并在Windows CE 上运行。这个框架简化了开发过程,提高了代码的可移植性。 **文件名解析** 在提供的文件名列表中,...
在第一部分“用户界面”中,本书详细探讨了以下几个关键知识点: 1. Windows Forms:这是.NET Framework早期的主要UI框架,用于创建桌面应用程序。书中会讲解如何使用控件库、事件处理、布局管理等构建Windows ...
Introducing MongoDBFrictionless .NET Web App Development with Nancy Part IV – Hosting Slides from ANUG talk on Nancy扩展NoteService,支持NancyFx用Nancy和Simple.Data创建一个图片博客 第一部分:开始一...
最后,为了将理论知识付诸实践,你需要一个合适的硬件开发板,如Arduino、Raspberry Pi或兼容.NET Micro Framework的板子,以及超声波传感器和其他必要的电子元件。按照电路图连接好硬件,然后编译并上传C#程序到...
第一次将代码部署到您的 Netduino 下载或克隆源代码后,您需要重置 .NET Micro Framework 部署传输。 确保您的通过 USB 电缆连接到您的 PC。 用鼠标右键单击 MakerDen 项目,然后选择属性。 从属性页面中选择 ...
这对于想要学习M8平台开发的开发者来说是极其宝贵的,因为它提供了第一手的学习材料。 【压缩包子文件的文件名称列表】包括了两个文件:M8Money.sln和M8Money。通常在.NET开发环境中,".sln"文件是解决方案文件,它...
v1.0 Beta2版本标识表示这是该系统的第一个主要版本的第二个测试版,通常在正式版发布前用于收集用户反馈和进行性能优化。开发者可能已经完成了核心功能的开发,并在测试环境中进行了初步的稳定性和兼容性测试。 ...
这通常包括一个集成开发环境(IDE),如Visual Studio或Visual Studio Code,以及相应的.NET Micro Framework或.NET nanoFramework的SDK。这些工具会提供项目模板、编译器、调试器等功能,帮助我们编写、构建和部署...
标题中的"C#\c#课件\TP1"和描述中的"c#\c#课件TP1"都指向一个关于C#编程语言的学习资源或教学计划,可能是某个课程的第一部分(TP1)。标签也是同样的内容,进一步确认了这个主题。提供的部分内容涉及了.NET框架、...
标题中的"NIIT考试试题(J2ME, ASP.NET, UML)"指的是一个与NIIT教育机构相关的第三模块考试,涵盖了三个重要的IT技术领域:Java Micro Edition (J2ME),ASP.NET以及统一建模语言(UML)。这些知识点在软件开发和移动...
在课程的第一章中,会详细解释WinCE的构建过程,包括如何创建项目、选择BSP、配置组件以及生成映像。这一阶段的学习有助于理解WinCE的系统结构和定制机制。此外,还会介绍WinCE的开发工具,如Visual Studio集成开发...
它支持Windows桌面、Windows Phone以及.NET Micro Framework等平台,具备搜索蓝牙设备、建立连接、发送和接收数据等功能。在C#中,你可以通过引用这个库,然后调用其提供的类和方法来实现蓝牙通信。 在搜索蓝牙设备...
在单片机开发中,C#通常通过.NET Micro Framework或者通用的IoT平台如Azure IoT来实现对硬件的控制。学习C#的基础语法,包括变量、数据类型、控制流、函数等,是实现与开发板交互的第一步。 其次,了解单片机开发板...
3. **C#与硬件交互**:通过.NET Micro Framework或第三方库,如GHI Electronics的.NETMF,学习如何使用C#控制硬件设备,包括GPIO(General Purpose Input/Output)操作。 4. **单片机接口**:51单片机和MSP430...
10. **应用程序框架(Application Frameworks)**:Windows Embedded CE 6.0提供了多种应用程序框架,如.NET Micro Framework和Windows CE .NET。本章可能讨论了如何利用这些框架开发和部署应用程序。 由于提供的...