随笔 - 70  文章 - 2 评论 - 1075 trackbacks - 22

我的小工具
.NET正则表达式库

广告


北京狼烟网络科技有限公司
北京市朝阳区曙光西里甲6号 时间国际A座1505&msg=2007101111175778000" frameBorder=0 scrolling=no>
要当爸爸了 6-27 14:20

与我联系

常用链接

留言簿(5)

我参与的团队

我的标签

随笔分类

随笔档案

文章档案

相册

技术社区

搜索

  •  

积分与排名

  • 积分 - 188200
  • 排名 - 163

最新评论

阅读排行榜

评论排行榜

60天内阅读排行

  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的原型。

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的设计复杂度,并提供更多功能。

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、库、应用程序开发。

posted on 2007-02-28 13:52 Anders Liu 阅读(3709) 评论(9)  编辑 收藏

FeedBack:
#1楼  2007-02-28 14:43 JesseZhao      
大约十多天前我看到了
感觉应该很有发展前途
  回复  引用  查看    
#2楼  2007-02-28 14:44 JesseZhao      
具体在谁的博客上看到的,忘记了
最近的记性越来越差了
  回复  引用  查看    
#3楼  2007-02-28 16:51 Pvistely      
能用.NET做嵌入式了。。。
但效率感觉不会怎么搞,
  回复  引用  查看    
#4楼 [楼主] 2007-02-28 17:02 Anders Liu (lover_P)      
@JesseZhao
的确,最早的版本06年6月就有了,不过好像微软没有大规模推广。
这是07年2月再发布的一个版本,版本号已经是2.0了(原来是多少我不清楚)。
  回复  引用  查看    
#5楼 [楼主] 2007-02-28 17:03 Anders Liu (lover_P)      
@Pvistely
直接访问硬件,效率应该还是凑合的。毕竟硬件太简陋了。不过实时性肯定是没戏的,但放在手表上看个天气、收个邮件肯定是不成问题。
  回复  引用  查看    
#6楼  2007-03-01 10:20 yaoyulin [未注册用户]
-------NET CF需要有Windows CE系列OS的支持才能得以运作------

不具备通用性,Windows CE还是太大,实时性不及Tron。
微软用.net把有技术难度的东西全给封装了,留给用户一些使用接口,真是恶毒,以后全中国干IT的就只会使用微软的工具,丝毫不懂计算机科学与技术。这种情况对于民族技术发展是致命性的,愿我们的华为中兴能在计算机技术领域保有自己的一块领地。
  回复  引用    
#7楼  2007-03-02 00:44 laughterwym      
本来看说是能够运行在8位单片机上的挺有看头,现在这么一看居然上32位的arm9了,MF的开销估计还是挺高的。。。
  回复  引用  查看    
#8楼  2007-03-02 05:58 Anders Liu      
@yaoyulin

我得好好批评你一下。:D
不是说把什么都控制在手中才是最好的。你的潜意识告诉我,幸好你没有微软的势力,要不然你只会比微软更恶毒——毕竟微软还是给用户留了很多接口的,要是你做,你是不是会把什么都隐藏起来,然后丢给用户一堆根本看不懂的代码,谓之“开源”?开源不如开放文档,微软的文档是他成功的秘诀。

另外,硬件平台的发展依赖于软件,而系统软件和基础设施软件的发展依赖于其上第三方软件的多寡,第三方软件多了,再“烂”的平台也会占有很大市场份额。这就是为什么微软一直大力开发“简单”的软件平台和高超的开发环境、为什么别的应用都要反盗版而vs甚至帮你把序列号都填好。这就是为了让你很轻易地进行开发,然后各种各样的应用多了,他的OS自然好卖。这就是微软的“生态环境”。

试想,如果你生产了一种CPU,你是希望提出一套全新的架构,和“高深”的开发工具/语言,以至于很少有人能掌握、愿意掌握;还是希望兼容现有架构,让开发者能轻易使用你的平台?
换个角度,如果能把.NET移植到你的硬件上,让那些“丝毫不懂计算机科学与技术”也能为你开发应用,何乐而不为呢?

再说一句,MS技术领域的人技术未必比其他领域的差。只是他们把上网争论的时间放在了学习上(我看来要排除在外了)。《侠客行》看过么?大家都在山洞里研究技艺呢,无暇顾及江湖上的恩恩怨怨。虽然研究成功的人很少,但至少大家都在研究。
  回复  引用  查看    
#9楼  2007-03-02 06:03 Anders Liu      
@laughterwym

微软的文档说得不是很清楚,我也忘记表述了。首先,.NET MF和XPe有些类似,对于不同的硬件可以单独为其定制一个运行环境。通过重写HAL和PAL,完全可以让.NET MF运行在8位单片机上,相信不久以后,就会有厂商推出诸如8051之类单片机上运行的.NET MF的。
只是.NET MF发布时,微软除了给出基本工具以外,还,并且仅仅给出了基于ARM的一个实例实现而已。
  回复  引用  查看    

标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
 
另存  打印