【物聯網智能網關-10】構建.NET MF平台下的流式驅動模型

來源:互聯網
上載者:User

無論是做linux下的驅動開發,還是Windows CE平台下的驅動開發,對流式驅動模型一定非常熟悉。在此架構下,把所有的硬體裝置都看成檔案,和裝置的互動其實就是讀寫檔案,也就是資料流動。這樣開發驅動不僅簡單實用,並且使用者也用一致的介面訪問硬體,大大降低了學習代價。但是在.NET Micro Framework平台下,卻沒有提供這樣的驅動開發介面,使用者如果想在應用程式層操作硬體,必須要做一個專門的介面庫(Interop),如果有n個裝置,對應的驅動介面庫檔案也必須n個,如果一個應用程式和n個裝置通訊,那就必須引用n個庫了。另外如果庫介面有更改,那麼上層和底層代碼還必須重新編譯才能使用。

正是基於流式驅動的一些優點和Interop驅動介面開發的繁雜,所以我在.NET Micro Framework系統上構建了一套流式驅動架構。尤為值得一提的是,在流式驅動架構的基礎上,還實現了的使用者可以在MDK IDE環境下,採用C++開發流式驅動(參見相關文章《.NET Micro Framework動態調用C/C++底層代碼》)。

流式驅動應用程式層的C#介面代碼如下:

public sealed class GeneralStream    {        publicGeneralStream();        public event GeneralStreamEventHandlerNotice;        public int Close();        public int IOControl(intcode);        public int IOControl(intcode, int parameter);        public int IOControl(intcode, byte[] inBuffer, intinCount, byte[] outBuffer, int outCount);        public int Open(stringname);        public int Open(string name,int config);        public int Open(string name,string config);        public int Read(byte[]buffer, int offset, intcount);        public int Write(byte[]buffer, int offset, intcount);    }

以上介面其實和WinCE平台下的流式介面非常類似了,但是比較有特色的是,還提供了一個事件通知介面,這樣就為各種硬體驅動開發提供了更靈活的支援。有了這個流式介面,一般情況下,為上層C#語言提供專有的硬體底層功能,就不需要再編寫介面相關的代碼了,直接寫相關的C/C++代碼,然後編譯連結即可。 

當前已經基於流式驅動介面,實現了10個裝置和功能模組的驅動,下面先簡單介紹一下,後續將詳細寫文章一一介紹。

序號

名稱

說明

備忘

000

UserDriver

使用者流式驅動開發介面

MDK下的C++開發

001

Watchdog

看門狗驅動

 

002

Ultrasonic

超聲波模組驅動

測距

003

DHT11

溫濕度模組驅動

 

004

GPIO

GPIO特殊功能驅動

比如可以配置開漏

005

Counter

高速計數器

 

006

ADIS16227

ADIS16227模組驅動

基於特殊的SPI介面

007

MAX7219

MAX71219晶片驅動

LED和點陣控制

008

PCD8544

Norkia5110顯示模組驅動

 

009

LCD1602

LCD1602模組驅動

 

   在開發ADIS16227、Norkia5110和LCD1602模組驅動的過程中,深切感受到,給使用者留一個C++驅動開發介面非常重要,因為這類驅動,上層應用一是沒有現成的介面,二是直接用C#是不能實現的,所以必須底層移植,如果沒有現成使用者介面,就必須依賴廠商了,這很大層度上限制了使用者的開發的主動性和靈活性,還有對產品及項目的把控性。

   關於這部分內容,我在使用者流式驅動開發介面(UserDriver)的文章中會詳細介紹。

 -----------------------------------------------------------

MF簡介:http://blog.csdn.net/yefanqiu/article/details/5711770

MF資料:http://www.sky-walker.com.cn/News.asp?Id=25

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.