關(guān)于.NET Micro Framework
在過去幾年里,Microsoft 為嵌入式領(lǐng)域提供了 XP Embedded 和 Windows CE 兩種操作系統(tǒng)。它們已經(jīng)成為了很多設(shè)備的平臺,這些設(shè)備有PDA、智能手機、自動柜員機(ATM)和網(wǎng)絡(luò)交換機等。Microsoft 推出的.NET Framework 把強大、可靠的托管代碼從大型服務(wù)器擴展到了嵌入式設(shè)備。但是,依然有許多設(shè)備由于資源限制而無法支持這些平臺。為了響應(yīng)微型設(shè)備的市場需要,Microsoft 開發(fā)了一個叫Microsoft .NET Micro Framework. (.NET MF) 的新平臺。.NET Micro Framework 定位于這個未開發(fā)的領(lǐng)域,向微型設(shè)備提供小巧、高效的.NET 運行時的實現(xiàn)。這帶來的好處是,開發(fā)人員將能夠使用同樣的托管代碼,使用同樣的世界級的工具,繼續(xù)參與到全世界最大的開發(fā)社區(qū)。
.NET MF面向的是CPU處理能力和存儲能力極其有限的設(shè)備。雖然微軟擁有Windows CE、Windows XP Embedded和.NET Compact Framework,可以完成絕大多數(shù)嵌入式開發(fā),但對于更普遍的家用電器領(lǐng)域(如電視、手表、洗衣機等),這些平臺還是顯得太大了些??梢韵胂螅o你的電冰箱裝塊硬盤是多么搞笑的事。而.NET MF的出現(xiàn),則標(biāo)志著微軟又向百姓生活邁進了一步,讓所有家電都“智能”起來,已經(jīng)是一個不遠的夢。因為
所需要的僅僅是便宜的,ARM處理器和一些RAM、Flash存儲器。
.NET MF是微軟最新推出的嵌入式平臺、專門用于處理能力和存儲能力都更加有限的設(shè)備。既然微軟已經(jīng)擁有.NET Compact Framework(簡稱.NET CF),為什么還要再提供.NET MF呢?設(shè)備的限制是一個很重要的原因,.NET CF畢竟還是要求設(shè)備有比較強的處理和存儲能力。兩者重要的一個區(qū)別在于,.NET CF需要有Windows CE系列OS的支持才能得以運作,而.NET MF則提供了一個可引導(dǎo)的運行時環(huán)境。
既然.NET MF是可引導(dǎo)的,那么它實際上也相當(dāng)于一個帶有運行時環(huán)境的操作系統(tǒng)。那么,它又和Windows CE、Windows XP Embedded操作系統(tǒng)有哪些區(qū)別呢?下面的表格對比了幾種平臺的區(qū)別。
.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 |
從上表可以看出,無論是資源占用還是耗電,.NET MF都要優(yōu)于另外兩種OS。但是,我們也看到了,在實時性方面,.NET MF并不是一款實時的運行時環(huán)境。這可能需要我們注意的一個重要方面。
在工業(yè)應(yīng)用中,實時性往往是評判一個嵌入式系統(tǒng)的重要因素,這就意味著,.NET MF并不適用于重要的控制領(lǐng)域。不過,一般工業(yè)用系統(tǒng)都不會面臨硬件過分有限的困境,完全可以使用WinCE或XPe作為基礎(chǔ)OS。
反觀民用領(lǐng)域,嵌入式應(yīng)用正在逐漸滲透人們的生活。而當(dāng)面對普通消費者時,評判一個嵌入式系統(tǒng)的重要標(biāo)準(zhǔn)——AndersLiu認為——就應(yīng)該是:低成本。這包括兩個方面,一是低的造價(軟硬件成本,價格),另外一方面就是易用(這可以理解為學(xué)習(xí)成本和時間成本)。畢竟老百姓買不起和機床一樣價格的洗衣機,也不希望像操作機床那樣操作微波爐。
因此,民用嵌入式設(shè)備往往通過較低的硬件配置來降低價格,并通過適量(通常比較少)的按鍵和顯示內(nèi)容來降低使用復(fù)雜度。而這一切,都是.NET MF得以大顯身手的地方。
可以看出,微軟關(guān)于.NET MF的定位還是相當(dāng)明確的——面向民用低成本嵌入式市場。下圖是一兩年前流行過一陣的新聞圖片,傳聞Gates腕上的SmartWatch中安裝的,就是.NET MF的原型。
Figure 1: Microsoft Embeded Products
Figure 2: The Basic Architecture for .NET MicroFramework
在今年的MEDC大會中有簡單地介紹了.NET Micro Framework,當(dāng)時我記得是用于機器人編程大賽,其他沒有什么印象。
Daniel Moth 曾經(jīng)對.NET Micro Framework 進行了一番介紹,列出了.NET MF 的主要特性。
現(xiàn)在已經(jīng)有beta版的開發(fā)包了,但找不到從哪里下載,好像要通過SPOT(Smart Personal Objects Technology)邀請獲得開發(fā)包。沒有詳細看Introducing the Microsoft .NET Micro Framework Platform,有時間再了解清楚。
另外,.NET MicroFramework 開發(fā)團隊錄制了一個webcast:Introduction to the .NET MicroFramework webcast,介紹了.NET MF 開發(fā)的工具和技術(shù)概貌。[!--empirenews.page--]