Zigbee在.Net Micro Framework系统中的应用

简介:

Zigbee是IEEE 802.15.4协议的代名词。根据这个协议规定的技术是一种短距离、低功耗的无线通信技术。这一名称来源于蜜蜂的八字舞,由于蜜蜂(bee)是靠飞翔和“嗡嗡”(zig)地抖动翅膀的“舞蹈”来与同伴传递花粉所在方位信息,也就是说蜜蜂依靠这样的方式构成了群体中的通信网络。其特点是近距离、低复杂度、自组织、低功耗、低数据速率、低成本。主要适合用于自动控制和远程控制领域,可以嵌入各种设备。简而言之,ZigBee就是一种便宜的,低功耗的近距离无线组网通讯技术。详情请参见百度百科《Zigbee》。

而.NET Micro Framework对存储器和处理器的要求很低,开发人员可以在低功耗、低成本的ARM7、ARM9、Blackfin和Cortex-M3处理器上使用该框架(不需要MMU支持),所开发出来的软件仅需要几百Kbytes的RAM或Flash/ROM存储空间。而Windows Embedded CE的托管代码环境需要约10~12Mbytes的存储空间,基于.NET的应用编程设备只需要较少的存储空间,降低了产品成本。详情请参见《.Net Micro Framework 快速入门》。

两者都是低复杂度,低功耗,低成本(.Net MF开源且免费)的解决方案,二者结合对构建物联网无线方案来说,真是珠联璧合。

目前Zigbee有如下两种方案供最终用户使用,一是Zigbee芯片(扩展阅读《Zigbee芯片厂家对比》),如Ti提供的芯片CC2420、CC2430及CC2530,其中CC2430和CC2530片上集成了C8051内核,并提供了Zigbee协议栈,通过SPI、I2C或串口和CPU通信;二是Zigbee模块,如周立功公司的ZICM2410模块(美国CEL公司的MeshConnectTM模块,集成语音编码解码器)和赫立讯公司的IP-Link1223模块,模块集成C8051内核,支持多路GPIO/AD,通过串口或SPI和外围设备通信,使用虽然简单,但价格较高,大概是前者的3~5倍。

目前.Net Micro Framework V4.0的源码中已经提供了CC2420的驱动程序(源码在\framework\core\drivers\802_15_4\stack\physical\cc2420),硬件通过SPI方式访问CC2420芯片,在酒窖存储监控中已有相关应用,有兴趣的朋友可以参考一下。

芯片级方案由于没有合适的开发板,所以暂且不作介绍,我今天仅介绍模块级解决方案,其平台是赫立讯公司的IP-Link1223模块。

IP-Link1223模块提供三种组网模式:线性网络、全Mesh网络、星型拓扑,其中全Mesh网络最为常用。三种指令模式:AT指令模式、透传模式、二进制模式,AT指令模式只能本地配置;透传模式虽然好用,但是多点通信时并不灵活;二进制模式不仅本地可以配置,也可以透过网络远程配置,并且可以获取路由表及相关链路通信质量。

软件配置界面:

 


目前已经编写出支持全部的二进制模式指令Helicomm_IPLink1223类,相关指令如下,详细通信协议请参见赫立讯公司相关的说明文档。


 
 
  1. private static byte CMD_ReadADC = 0x81;              //读模拟通道值  
  2.  
  3.     private static byte CMD_ReadADC = 0x81;              //读模拟通道值  
  4.  
  5.     private static byte CMD_ReadRSSI = 0x82;             //读发射频率  
  6.  
  7.     private static byte CMD_ReadTemperature = 0x83;      //读温度  
  8.  
  9.     private static byte CMD_ReadSRegister = 0x86;        //读S寄存器值  
  10.  
  11.     private static byte CMD_WriteSRegister = 0x87;       //写S寄存器值  
  12.  
  13.     private static byte CMD_ReadMAC = 0x8B;              //读MAC地址  
  14.  
  15.     private static byte CMD_ReadVer = 0x8C;              //读内核版本  
  16.  
  17.     private static byte CMD_BatterySavingMode = 0x8D;    //节电(停机)  
  18.  
  19.     private static byte CMD_Hibernation = 0x8E;          //休眠  
  20.  
  21.     private static byte CMD_SoftReboot = 0x8F;           //软重启  
  22.  
  23.     private static byte CMD_HardwareReboot = 0xC0;       //硬重启  
  24.  
  25.     private static byte CMD_Reset = 0x90;                //恢复出厂设置  
  26.  
  27.     private static byte CMD_ReadRoute = 0x95;            //读取路由表  
  28.  
  29.     private static byte CMD_ReadBlacklist = 0x9C;        //读取黑名单      
  30.  
  31.     private static byte CMD_WriteBlacklist = 0x9D;       //写黑名单     
  32.  
  33.     private static byte CMD_TrackerRoute = 0xAA;         //跟踪路由     
  34.  
  35.     private static byte CMD_TrackerLQIRoute = 0xBB;      //带信号强度的跟踪路由  
  36.  
  37.     private static byte CMD_ReadIO = 0xAC;               //读IO状态  
  38.  
  39.     private static byte CMD_WriteIO = 0xAD;              //写IO状态  
  40.  
  41.     private static byte CMD_ScanNeighbour = 0xBC;        //扫描邻居列表  
  42.  
  43.     private static byte CMD_ReadDeviceType = 0xC3;       //获得设备类型       
  44.  
  45. private static byte CMD_LocalHibernation = 0xB1;     //本地休眠  
  46.  
  47.     private static byte CMD_LocalAwaikening = 0xB2;      //本地唤醒  
  48.  

 

 

 









本文转自yefanqiu51CTO博客,原文链接:http://blog.51cto.com/yfsoft/321206,如需转载请自行联系原作者

相关文章
|
4天前
|
C++ Windows
.NET Framework安装不成功,下载`NET Framework 3.5`文件,Microsoft Visual C++
.NET Framework常见问题及解决方案汇总,涵盖缺失组件、安装失败、错误代码等,提供多种修复方法,包括全能王DLL修复工具、微软官方运行库及命令行安装等,适用于Windows系统,解决应用程序无法运行问题。
31 3
|
12天前
|
C++ Windows
WindowsDLL修复专家,MSVCP**、DLL修复vcruntime**、DLL修复、`.Net Framework`缺失、DirectX类DLL修复、VC运行库修复
Windows DLL修复专家是一款专为解决因DLL文件缺失、版本错误导致的软件或游戏无法运行问题的系统工具。它支持一键扫描和修复各类DLL异常,涵盖MSVCP、vcruntime、.NET Framework、DirectX等多种常见问题。具备自动检测、备份还原功能,确保修复过程安全可靠。适用于软件报错、系统异常及新系统适配场景,降低用户手动修复门槛,提升系统稳定性与兼容性。
48 3
|
9月前
使用的是.NET Framework 4.0,并且需要使用SMTP协议发送电子邮件
使用的是.NET Framework 4.0,并且需要使用SMTP协议发送电子邮件
127 1
|
9月前
|
开发框架 缓存 监控
NET Framework 到 .NET 5/6 的迁移是重大的升级
本文详细介绍了从 .NET Framework 4.8 迁移到 .NET 5/6 的过程,通过具体案例分析了迁移策略与最佳实践,包括技术栈评估、代码迁移、依赖项更新及数据库访问层的调整,强调了分阶段迁移、保持代码可维护性及性能监控的重要性。
126 3
|
9月前
|
机器学习/深度学习 编解码 算法
【小样本图像分割-4】nnU-Net: Self-adapting Framework for U-Net-Based Medical Image Segmentation
《nnU-Net: 自适应框架用于基于U-Net的医学图像分割》是一篇2018年的论文,发表在Nature上。该研究提出了一种自适应的医学图像分割框架nnU-Net,能够自动调整模型的超参数以适应不同的数据集。通过2D和3D U-Net及级联U-Net的组合,nnU-Net在10个医学分割数据集上取得了卓越的性能,无需手动调整。该方法强调数据增强、预处理和训练策略等技巧,为医学图像分割提供了一个强大的解决方案。
316 0
【小样本图像分割-4】nnU-Net: Self-adapting Framework for U-Net-Based Medical Image Segmentation
|
10月前
|
C#
winform .net6 和 framework 的图表控件,为啥项目中不存在chart控件,该如何解决?
本文讨论了在基于.NET 6和.NET Framework的WinForms项目中添加图表控件的不同方法。由于.NET 6的WinForms项目默认不包含Chart控件,可以通过NuGet包管理器安装如ScottPlot等图表插件。而对于基于.NET Framework的WinForms项目,Chart控件是默认存在的,也可以通过NuGet安装额外的图表插件,例如LiveCharts。文中提供了通过NuGet添加图表控件的步骤和截图说明。
winform .net6 和 framework 的图表控件,为啥项目中不存在chart控件,该如何解决?
|
11月前
|
开发框架 缓存 前端开发
实战.NET Framework 迁移到 .NET 5/6
从.NET Framework 迁移到.NET 5/6 是一次重要的技术革新,涵盖开发环境与应用架构的全面升级。本文通过具体案例详细解析迁移流程,包括评估现有应用、利用.NET Portability Analyzer 工具识别可移植代码、创建新项目、逐步迁移代码及处理依赖项更新等关键步骤。特别关注命名空间调整、JSON 序列化工具更换及数据库访问层重构等内容,旨在帮助开发者掌握最佳实践,确保迁移过程平稳高效,同时提升应用性能与可维护性。
293 2
|
11月前
|
开发框架 JSON 监控
实战指南:从 .NET Framework 迁移到 .NET 5/6 的策略与最佳实践
【8月更文挑战第28天】从 .NET Framework 迁移到 .NET 5/6 是一次重要的技术升级,涉及开发环境与应用架构的改进。本文通过具体案例分析,介绍迁移策略与最佳实践,帮助开发者顺利完成转变。
188 1
|
11月前
|
缓存 程序员
封装一个给 .NET Framework 用的内存缓存帮助类
封装一个给 .NET Framework 用的内存缓存帮助类
103 1
|
12月前
|
开发框架 前端开发 JavaScript
基于SqlSugar的数据库访问处理的封装,支持.net FrameWork和.net core的项目调用
基于SqlSugar的数据库访问处理的封装,支持.net FrameWork和.net core的项目调用

热门文章

最新文章