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

简介: Zigbee是IEEE 802.15.4协议的代名词。根据这个协议规定的技术是一种短距离、低功耗的无线通信技术。

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

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

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

目前Zigbee有如下两种方案供最终用户使用,一是Zigbee芯片(扩展阅读《Zigbee芯片厂家对比),如Ti提供的芯片CC2420CC2430CC2530,其中CC2430CC2530片上集成了C8051内核,并提供了Zigbee协议栈,通过SPII2C或串口和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类,相关指令如下,详细通信协议请参见赫立讯公司相关的说明文档。

private static byte CMD_ReadADC = 0x81;              //读模拟通道值

    private static byte CMD_ReadADC = 0x81;              //读模拟通道值

    private static byte CMD_ReadRSSI = 0x82;             //读发射频率

    private static byte CMD_ReadTemperature = 0x83;      //读温度

    private static byte CMD_ReadSRegister = 0x86;        //S寄存器值

    private static byte CMD_WriteSRegister = 0x87;       //S寄存器值

    private static byte CMD_ReadMAC = 0x8B;              //MAC地址

    private static byte CMD_ReadVer = 0x8C;              //读内核版本

    private static byte CMD_BatterySavingMode = 0x8D;    //节电(停机)

    private static byte CMD_Hibernation = 0x8E;          //休眠

    private static byte CMD_SoftReboot = 0x8F;           //软重启

    private static byte CMD_HardwareReboot = 0xC0;       //硬重启

    private static byte CMD_Reset = 0x90;                //恢复出厂设置

    private static byte CMD_ReadRoute = 0x95;            //读取路由表

    private static byte CMD_ReadBlacklist = 0x9C;        //读取黑名单   

    private static byte CMD_WriteBlacklist = 0x9D;       //写黑名单  

    private static byte CMD_TrackerRoute = 0xAA;         //跟踪路由  

    private static byte CMD_TrackerLQIRoute = 0xBB;      //带信号强度的跟踪路由

    private static byte CMD_ReadIO = 0xAC;               //IO状态

    private static byte CMD_WriteIO = 0xAD;              //IO状态

    private static byte CMD_ScanNeighbour = 0xBC;        //扫描邻居列表

    private static byte CMD_ReadDeviceType = 0xC3;       //获得设备类型    

private static byte CMD_LocalHibernation = 0xB1;     //本地休眠

    private static byte CMD_LocalAwaikening = 0xB2;      //本地唤醒

 

 

相关文章
|
3月前
使用的是.NET Framework 4.0,并且需要使用SMTP协议发送电子邮件
使用的是.NET Framework 4.0,并且需要使用SMTP协议发送电子邮件
62 1
|
9天前
|
前端开发 C# 开发者
.NET使用Umbraco CMS快速构建一个属于自己的内容管理系统
.NET使用Umbraco CMS快速构建一个属于自己的内容管理系统
26 12
|
9天前
|
Web App开发 前端开发 调度
一款基于 .NET + Blazor 开发的智能访客管理系统
一款基于 .NET + Blazor 开发的智能访客管理系统
|
9天前
|
开发框架 JavaScript 前端开发
精选2款.NET开源的博客系统
精选2款.NET开源的博客系统
|
9天前
|
前端开发 JavaScript C#
基于.NET8+Vue3开发的权限管理&个人博客系统
基于.NET8+Vue3开发的权限管理&个人博客系统
|
2月前
|
开发框架 安全 Java
.NET技术的独特魅力与优势,涵盖高效的开发体验、强大的性能表现、高度的可扩展性及丰富的生态系统等方面,展示了其在软件开发领域的核心竞争力
本文深入探讨了.NET技术的独特魅力与优势,涵盖高效的开发体验、强大的性能表现、高度的可扩展性及丰富的生态系统等方面,展示了其在软件开发领域的核心竞争力。.NET不仅支持跨平台开发,具备出色的安全性和稳定性,还能与多种技术无缝集成,为企业级应用提供全面支持。
38 3
|
2月前
|
开发框架 监控 .NET
【Azure App Service】部署在App Service上的.NET应用内存消耗不能超过2GB的情况分析
x64 dotnet runtime is not installed on the app service by default. Since we had the app service running in x64, it was proxying the request to a 32 bit dotnet process which was throwing an OutOfMemoryException with requests >100MB. It worked on the IaaS servers because we had the x64 runtime install
|
2月前
|
JSON 算法 安全
JWT Bearer 认证在 .NET Core 中的应用
【10月更文挑战第30天】JWT(JSON Web Token)是一种开放标准,用于在各方之间安全传输信息。它由头部、载荷和签名三部分组成,用于在用户和服务器之间传递声明。JWT Bearer 认证是一种基于令牌的认证方式,客户端在请求头中包含 JWT 令牌,服务器验证令牌的有效性后授权用户访问资源。在 .NET Core 中,通过安装 `Microsoft.AspNetCore.Authentication.JwtBearer` 包并配置认证服务,可以实现 JWT Bearer 认证。具体步骤包括安装 NuGet 包、配置认证服务、启用认证中间件、生成 JWT 令牌以及在控制器中使用认证信息
132 2
|
3月前
|
关系型数据库 C# 数据库
.NET 8.0 开源在线考试系统(支持移动端)
【10月更文挑战第27天】以下是适用于 .NET 8.0 的开源在线考试系统(支持移动端)的简介: 1. **基于 .NET Core**:跨平台,支持多种数据库,前后端分离,适用于多操作系统。 2. **结合 Blazor**:使用 C# 开发 Web 应用,支持响应式设计,优化移动端体验。 3. **基于 .NET MAUI**:跨平台移动应用开发,一套代码多平台运行,提高开发效率。 开发时需关注界面设计、安全性与稳定性。
|
3月前
|
开发框架 缓存 监控
NET Framework 到 .NET 5/6 的迁移是重大的升级
本文详细介绍了从 .NET Framework 4.8 迁移到 .NET 5/6 的过程,通过具体案例分析了迁移策略与最佳实践,包括技术栈评估、代码迁移、依赖项更新及数据库访问层的调整,强调了分阶段迁移、保持代码可维护性及性能监控的重要性。
70 3