`
mmdev
  • 浏览: 13245330 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

.NET Micro Framework简介(第一部分)

阅读更多

  212日,微软发布了.NET家族中的新成员——.NET Micro Framework(简称.NET MF)。而就在短短的几天之内,这款新品已经收到业界的广泛关注。

  .NET MF面向的是CPU处理能力和存储能力极其有限的设备。虽然微软拥有Windows CEWindows XP Embedded.NET Compact Framework,可以完成绝大多数嵌入式开发,但对于更普遍的家用电器领域(如电视、手表、洗衣机等),这些平台还是显得太大了些。可以想象,给你的电冰箱装块硬盘是多么搞笑的事。而.NET MF的出现,则标志着微软又向百姓生活迈进了一步,让所有家电都“智能”起来,已经是一个不远的梦。因为

所需要的

仅是

便宜的,ARM处理器

一些

RAMFlash存储器。

  够了。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 CEWindows 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并不适用于重要的控制领域。不过,一般工业用系统都不会面临硬件过分有限的困境,完全可以使用WinCEXPe作为基础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 GatesSmart 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可以直接运行在硬件上,并提供基本的TimerIO和内存管理等功能。而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、库、应用程序开发。

分享到:
评论

相关推荐

    .Net Micro Framework 移植说明文档

    3. **公共语言运行库(CLR)**:CLR是.NET Micro Framework的核心组成部分之一,它负责管理代码执行、内存管理、异常处理等。 4. **基础类库(BCL)**:BCL提供了一组丰富的类库,用于实现常见的应用程序功能。 ###...

    Windows Embedded从入门到精通系列课程(6):深入探索 .NET Micro Framework 应用开发

    其次,课程会讲解如何设置开发环境,包括安装.NET Micro Framework SDK、配置Visual Studio以及创建第一个“Hello, World”项目。这部分内容对于初学者至关重要,因为一个良好的开发环境是成功开发的前提。 接着,...

    Windows Embedded从入门到精通系列课程(18):.NET Micro Framework——用模拟器零成本体验MF开发

    2. **创建第一个NETMF项目**:通过一个简单的示例,学习如何使用Visual Studio或其他集成开发环境(IDE)创建.NET Micro Framework应用。 3. **使用模拟器进行调试**:掌握如何设置断点,观察变量值,跟踪程序执行...

    GHI .NET MICRO FRAMEWORK入门教程

    ### 第一章:简介 #### 优势 .NET Micro Framework具有以下优势: - **可靠性**:.NET平台以其强大的稳定性和安全性著称,这对于嵌入式系统尤为重要。 - **高效性**:.NETMF针对资源有限的设备进行了优化,能够在...

    Microsoft内部关于WinCE培训资料

    .NET Micro Framework 是微软为小型设备开发的一种框架,它允许开发者使用.NET语言编写应用程序,并在Windows CE 上运行。这个框架简化了开发过程,提高了代码的可移植性。 **文件名解析** 在提供的文件名列表中,...

    .net开发人员手册

    在第一部分“用户界面”中,本书详细探讨了以下几个关键知识点: 1. Windows Forms:这是.NET Framework早期的主要UI框架,用于创建桌面应用程序。书中会讲解如何使用控件库、事件处理、布局管理等构建Windows ...

    .NET开源的微型Web框架Nancy.zip

    Introducing MongoDBFrictionless .NET Web App Development with Nancy Part IV – Hosting Slides from ANUG talk on Nancy扩展NoteService,支持NancyFx用Nancy和Simple.Data创建一个图片博客 第一部分:开始一...

    第三节:基于C#使用开发板避障模块实验.zip

    最后,为了将理论知识付诸实践,你需要一个合适的硬件开发板,如Arduino、Raspberry Pi或兼容.NET Micro Framework的板子,以及超声波传感器和其他必要的电子元件。按照电路图连接好硬件,然后编译并上传C#程序到...

    Maker-Den-NETMF:Maker Den 物联网框架提供了一个可插拔的基础来支持传感器、执行器、数据序列化、通信以及命令和控制

    第一次将代码部署到您的 Netduino 下载或克隆源代码后,您需要重置 .NET Micro Framework 部署传输。 确保您的通过 USB 电缆连接到您的 PC。 用鼠标右键单击 MakerDen 项目,然后选择属性。 从属性页面中选择 ...

    m8程序源码M8Money源程序_090325

    这对于想要学习M8平台开发的开发者来说是极其宝贵的,因为它提供了第一手的学习材料。 【压缩包子文件的文件名称列表】包括了两个文件:M8Money.sln和M8Money。通常在.NET开发环境中,".sln"文件是解决方案文件,它...

    ASP.NET-[博客空间]mBlog个人博客系统v1.0Beta2.zip

    v1.0 Beta2版本标识表示这是该系统的第一个主要版本的第二个测试版,通常在正式版发布前用于收集用户反馈和进行性能优化。开发者可能已经完成了核心功能的开发,并在测试环境中进行了初步的稳定性和兼容性测试。 ...

    第十节:基于C#使用开发板呼吸灯实验.zip

    这通常包括一个集成开发环境(IDE),如Visual Studio或Visual Studio Code,以及相应的.NET Micro Framework或.NET nanoFramework的SDK。这些工具会提供项目模板、编译器、调试器等功能,帮助我们编写、构建和部署...

    c#\c#课件\TP1

    标题中的"C#\c#课件\TP1"和描述中的"c#\c#课件TP1"都指向一个关于C#编程语言的学习资源或教学计划,可能是某个课程的第一部分(TP1)。标签也是同样的内容,进一步确认了这个主题。提供的部分内容涉及了.NET框架、...

    NIIT考试试题(J2ME, ASP.NET ,UML)

    标题中的"NIIT考试试题(J2ME, ASP.NET, UML)"指的是一个与NIIT教育机构相关的第三模块考试,涵盖了三个重要的IT技术领域:Java Micro Edition (J2ME),ASP.NET以及统一建模语言(UML)。这些知识点在软件开发和移动...

    嵌入式系统应用开发(WinCE版)——课件

    在课程的第一章中,会详细解释WinCE的构建过程,包括如何创建项目、选择BSP、配置组件以及生成映像。这一阶段的学习有助于理解WinCE的系统结构和定制机制。此外,还会介绍WinCE的开发工具,如Visual Studio集成开发...

    C#蓝牙检索、通讯.rar

    它支持Windows桌面、Windows Phone以及.NET Micro Framework等平台,具备搜索蓝牙设备、建立连接、发送和接收数据等功能。在C#中,你可以通过引用这个库,然后调用其提供的类和方法来实现蓝牙通信。 在搜索蓝牙设备...

    第九节:基于c#使用开发板数据存储与运用.zip

    在单片机开发中,C#通常通过.NET Micro Framework或者通用的IoT平台如Azure IoT来实现对硬件的控制。学习C#的基础语法,包括变量、数据类型、控制流、函数等,是实现与开发板交互的第一步。 其次,了解单片机开发板...

    lcd.zip_c# led screen_led屏

    3. **C#与硬件交互**:通过.NET Micro Framework或第三方库,如GHI Electronics的.NETMF,学习如何使用C#控制硬件设备,包括GPIO(General Purpose Input/Output)操作。 4. **单片机接口**:51单片机和MSP430...

    Professional Microsoft Windows Embedded CE 6.0第11章

    10. **应用程序框架(Application Frameworks)**:Windows Embedded CE 6.0提供了多种应用程序框架,如.NET Micro Framework和Windows CE .NET。本章可能讨论了如何利用这些框架开发和部署应用程序。 由于提供的...

Global site tag (gtag.js) - Google Analytics