Microsoft .NET Gadgeteer 為開發小型電子模塊或嵌入式設備的用戶,提供一個快速構建原型機的平臺。它結合了面向對象編程的優點,提供一系列電子模塊,可以快速地用這些模塊進行計算機輔助設計。
通過.NET Gadgeteer模塊可以很容易的構建簡單或復雜的設備。每個模塊都可以提供相應的功能,諸如顯示圖片、播放音樂、采集圖像、獲取環境參數等等。
該平臺構建在.NET Micro Framework平臺之上,在Visual Studio IDE環境中,采用C#開發語言對小型電子設備進行編程和調試。
這種強大的組態特性,使構建一個功能齊全設備的用時僅為幾個小時,而不是原來的幾天或幾周。
我以前就曾經說過.NET Micro Framework就是嵌入式領域內的腳本語言,就像網頁開發之于腳本語言一樣,可以大大提高開發效率,節省大量開發時間。 不過有人質疑性能問題,和匯編和C語言相比,這確實是一個問題,不過在物聯網領域,在需要互相通信交互的領域,開發語言本身的運算性能已變的不甚重要,因為最終設備的性能決定在通信鏈路(或者說通信規則本身)上,而這個目前確是一大瓶頸,就像目前制約網頁瀏覽的瓶頸在于網絡通信本身一樣。 前段時間,我對一些設備進行通信測試,發現就與設備通信而言,.NET Micro Framework的交互性能反而略好于PC系統,相關測試結果如下:
1 測試環境
嵌入式硬件平臺:Atmel sam9261-EK 開發板 主頻:200MHz
嵌入式軟件平臺:.Net Micro Framework V4.0
PC硬件配置:HP Compaq dc7800 主頻:2.33GHz
軟件平臺: Windows Vista + .Net Framework V3.5
相同的.Net C#測試程序
2 Modbus RTU通信測試
2.1 Modbus RTU Slave設備
西門子 S7-PLC 224
2.2 波特率19200 無校驗
單字節傳輸時間:10*1000/19200 = 0.52ms
2.3 波特率 115200無校驗
單字節傳輸時間:10*1000/115200 = 0.087ms
2.4 性能分析
通信時間 = 發送幀傳輸時間 + 從設備響應時間 + 返回幀傳輸時間 + 主設備處理時間
絕對傳輸時間 = 發送幀傳輸時間 + 返回幀傳輸時間
由于Modbus從設備大都是一些基于8位單片機的設備,CPU運算能力低,并且要計算CRC校驗,所以通信的瓶頸主要在從設備響應時間上,從測試結果上看,也反映了這一點。在某些測試項上,嵌入式設備甚至領先PC,這是因為嵌入式設備專注相關通信,而不像PC同時執行多任務操作。
結論:在和硬件設備通信方面,嵌入式設備和PC旗鼓相當。
3 RFID 讀卡測試
3.1 硬件設備
設備:EHUOYAN公司YHY632型號讀卡器
卡片:S50 EEROM 1K字節
3.2 波特率115200 無校驗
讀卡步驟:
1、 獲取卡的類型
2、 獲得卡號
3、 選定卡
4、 設定指定扇區的密鑰KEY
5、 讀取指定扇區、指定塊16字節的數據
3.3 性能分析
讀一次卡信息,一般需要5次交互時間,通信瓶頸來源兩個環節:
1、RFID卡和讀卡器之間
由于RFID卡上僅含控制器(無CPU模塊),還需要從EEROM上讀取數據,并且要進行加解密運算,所以相對耗時。RFID卡的響應時間是最大的時間瓶頸。
2、讀卡器和嵌入式設備或PC之間
這個和Modbus RTU通信項類似,不同的是,不同廠家讀卡器的通信協議有可能不同,讀寫時間會有些許差別,但沒有數量級上的差別。
由于嵌入式設備專注于與設備通信,其測試結果優于PC。
結論:嵌入式設備優于PC