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
操作方式
|
.Net Micro Framework
|
Net Framework
|
差异
|
绝对传输时间
|
读2字节
|
32 ms
|
31 ms
|
1 ms
|
7.8 ms
|
写2字节
|
33 ms
|
31 ms
|
2 ms
|
9.88 ms
|
读128字节
|
195 ms
|
187 ms
|
8 ms
|
73.32 ms
|
写128字节
|
204 ms
|
187 ms
|
17 ms
|
75.4 ms
|
2.3 波特率 115200无校验
单字节传输时间:10*1000/115200 = 0.087ms
操作方式
|
.Net Micro Framework
|
Net Framework
|
差异
|
绝对传输时间
|
读2字节
|
22 ms
|
31 ms
|
-9 ms
|
1.31 ms
|
写2字节
|
24 ms
|
31 ms
|
-7 ms
|
1.65 ms
|
读128字节
|
132 ms
|
124 ms
|
8 ms
|
12.27 ms
|
写128字节
|
135 ms
|
124 ms
|
11 ms
|
12.62 ms
|
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字节的数据
操作方式
|
.Net Micro Framework
|
Net Framework
|
差异
|
读卡
|
124 ms
|
171ms
|
-47 ms
|
3.3 性能分析
读一次卡信息,一般需要5次交互时间,通信瓶颈来源两个环节:
1、RFID卡 和 读卡器之间
由于RFID卡上仅含控制器(无CPU模块),还需要从EEROM上读取数据,并且要进行加解密运算,所以相对耗时。RFID卡的响应时间是最大的时间瓶颈。
2、读卡器和嵌入式设备或PC之间
这个和Modbus RTU通信项类似,不同的是,不同厂家读卡器的通信协议有可能不同,读写时间会有些许差别,但没有数量级上的差别。
由于嵌入式设备专注于与设备通信,其测试结果优于PC。
结论:嵌入式设备优于PC
------------------------
演示视频:http://research.microsoft.com/apps/video/default.aspx?id=139105
相关网址:
http://research.microsoft.com/en-us/projects/gadgeteer/default.aspx
http://blogs.msdn.com/b/netmfteam/archive/2010/09/28/net-gadgeteer.aspx
http://blogs.msdn.com/b/netmfteam/archive/2010/08/30/making-the-robot-arm-move-again.aspx
分享到:
相关推荐
Getting Started with .NET Gadgeteer 英文无水印pdf pdf所有页面使用FoxitReader和PDF-XChangeViewer测试都可以打开 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请...
Getting Started with .NET Gadgeteer
Learning To Program With Visual Basic And .Net Gadgeteer
GSM Gadgetry 项目旨在演示使用 .NET Gadgeteer 平台和 .NET Micro Framework 与 SIM900 GSM/GPRS 调制解调器的简单集成。 示例程序显示了使用Sim900Client 通过SMS 发送文本消息,该程序基于SIM900 AT 命令手册v...
输出接口:TTL串口(兼容.NET Gadgeteer接口、Arduino FTDI下载接口、Cheapduino接口) 波特率:9600 双轴倾角测量(X轴、Y轴) 测量范围:± 90° 数字输出分辨率: 0.07° 精度:0~30°时,精度为0.1°;30~86°时,...
nRF2401Plus 用于 Gadgeteer 的 nRF2401Plus 模块
简单示例如何使用 Gadgeteer、Web-API 和 SignalR 使用免费的 Azure 网站创建简单的仪表板。 解决方案结构 此解决方案中有两个项目: Gadgeteer Sender - 适用于 Fez Spider 1.0 主板 (NETMF 4.3) 的 Gadgeteer ...
nRF24L01Plus 示例 nRF24L01Plus 与 Gadgeteer 的使用示例
Twidget - 教 Gadgeteer 如何发推文 - Blogpost repo 此存储库包含用于演示如何使用 Fez Spider 主板、Azure 和 Web API 从 NETMF 发推文的 smaple 源。 你可以在我的博客上阅读更多:
多输入只有 4 个引脚和 74HC595 和 Gadgeteer 的多个输入
此存储库与我的博客文章 此示例展示了如何将 Azure 服务总线用作连接设备的中间服务,以简化有关安全性、寻址和消息传递可靠性的问题。
CortanaAllJoynDemo
这是使用arduino光线感应控制...http://wiki.dfrobot.com.cn/index.php?title=BH1750_light_sensor(Gadgeteer_Compatible)_(SKU:TOY0043) http://wiki.dfrobot.com.cn/index.php?title=(SKU:DFR0332)FAN_Module风扇模块
餐巾纸参考物其中大多数功能将小型Linux机器与功能较弱的Gadgeteer或Arduino系统结合在一起,该系统可驱动传感器,灯,按钮,显示器等。 (已过期: )餐巾服务器Napkin服务器在 和图形数据库上运行。 核心插件负责...
该模块采用Gadgeteer接口,同时很好的兼容Arduino(UNO、MegaDue等)和Maple系列控制板,也可与其他微控制器协同使用。 SD2405AL实时时钟模块特性: 低功耗: 1.0μA 典型值(时钟电路部分,Ta=25℃)。 工作电压:3.3V~...