物联网智能网关-10构建.NET MF平台下的流式驱动模型

少年意气强不羁,虎胁插翼白日飞。这篇文章主要讲述物联网智能网关-10构建.NET MF平台下的流式驱动模型相关的知识,希望能为你提供帮助。
  无论是做linux下的驱动开发,还是Windows CE平台下的驱动开发,对流式驱动模型一定非常熟悉。在此架构下,把所有的硬件设备都看成文件,和设备的交互其实就是读写文件,也就是数据流动。这样开发驱动不仅简单实用,并且用户也用一致的接口访问硬件,大大降低了学习代价。但是在.NET Micro Framework平台下,却没有提供这样的驱动开发接口,用户如果想在应用层操作硬件,必须要做一个专门的接口库(Interop),如果有n个设备,对应的驱动接口库文件也必须n个,如果一个应用程序和n个设备通信,那就必须引用n个库了。另外如果库接口有更改,那么上层和底层代码还必须重新编译才能使用。
正是基于流式驱动的一些优点和Interop驱动接口开发的繁杂,所以我在.NET Micro Framework系统上构建了一套流式驱动架构。尤为值得一提的是,在流式驱动架构的基础上,还实现了的用户可以在MDK IDE环境下,采用C++开发流式驱动(参见相关文章《.NET Micro Framework动态调用C/C++底层代码》)。
流式驱动应用层的C#接口代码如下:

物联网智能网关-10构建.NET MF平台下的流式驱动模型

文章图片
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); }

物联网智能网关-10构建.NET MF平台下的流式驱动模型

文章图片
以上接口其实和WinCE平台下的流式接口非常类似了,但是比较有特色的是,还提供了一个事件通知接口,这样就为各种硬件驱动开发提供了更灵活的支持。有了这个流式接口,一般情况下,为上层C#语言提供专有的硬件底层功能,就不需要再编写接口相关的代码了,直接写相关的C/C++代码,然后编译链接即可。 
物联网智能网关-10构建.NET MF平台下的流式驱动模型

文章图片

当前已经基于流式驱动接口,实现了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
【物联网智能网关-10构建.NET MF平台下的流式驱动模型】
物联网智能网关-10构建.NET MF平台下的流式驱动模型

文章图片


    推荐阅读