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

简介: Zigbee是IEEE 802.15.4协议的代名词。根据这个协议规定的技术是一种短距离、低功耗的无线通信技术。这一名称来源于蜜蜂的八字舞,由于蜜蜂(bee)是靠飞翔和“嗡嗡”(zig)地抖动翅膀的“舞蹈”来与同伴传递花粉所在方位信息,也就是说蜜蜂依靠这样的方式构成了群体中的通信网络。
+关注继续查看

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指令模式只能本地配置;透传模式虽然好用,但是多点通信时并不灵活;二进制模式不仅本地可以配置,也可以透过网络远程配置,并且可以获取路由表及相关链路通信质量。

软件配置界面:

image.png

目前已经编写出支持全部的二进制模式指令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;      //本地唤醒

image.png
image.png

相关文章
.Net Micro Framework研究—Digi开发板初探
写的比较基础全面,由于我们北航的研发团队先研究了Digi的开发板,所以直到今天Digi开发板才到我的手上,我的《Micro Framework研究》系列文章以后也会陆续推出
670 0
.Net Micro Framework研究—串口操作
试验平台:Digi MF开发板,Digi提供的示例中包含了串口的示例程序
533 0
.Net Micro Framework研究—带I2C总线的模拟器
I2C以前没有怎么接触过,所以做它的模拟功能,只能靠着感觉走,有不妥之处,还望方家指正。做出了spi相关的模拟功能,做I2C相对也就不难了,只不过用户操作I2C总线读写数据的时候要稍微麻烦一点。
575 0
|
前端开发
【.Net Micro Framework PortingKit - 06】设置芯片时钟
上两篇《修改启动代码&重写向量表》《SRAM初始化&设置NVIC中断表偏移》文章中,我们设置了中断向量表,初始化了RAM,并重设了向量表的地址,本篇文章是相对重要的一篇,我们将设置芯片时钟
533 0
【.Net Micro Framework PortingKit – 09】串口驱动
虽然在PC机中,串口渐行渐远,但是在嵌入式领域,串口仍可以说是如日中天,因为它造价低廉、并且编程也比较方便,在没有显示屏或输入设备的系统上,串口更是不可或缺,和超级终端一道,共同解决了信息显示和输入问题。
509 0
|
内存技术 移动开发
【.Net Micro Framework PortingKit–11】NandFlash驱动开发
对.Net Micro Framework系统来说,正常情况下Flash(包括NandFlash和NORFlash)分为六个区
577 0
|
Windows
在Corex-M3开发板上移植.Net Micro Framework系列文章
.NET Micro Framework 将 .NET 的可靠性和效率与 Visual Studio® 的高生产率结合起来,以针对价格较低、资源受限的小型设备开发应用程序,可帮助人们使用熟悉的 Visual Studio 工具来构建托管的嵌入式应用程序。
599 0
|
物联网 芯片 数据安全/隐私保护
RFID技术在.Net Micro Framework中的应用
RFID射频识别是一种非接触式的自动识别技术,它通过射频信号自动识别目标对象并获取相关数据,识别工作无须人工干预,可工作于各种恶劣环境。RFID技术可识别高速运动物体并可同时识别多个标签,操作快捷方便。
767 0
|
存储 物联网 芯片
Zigbee在.Net Micro Framework系统中的应用
Zigbee是IEEE 802.15.4协议的代名词。根据这个协议规定的技术是一种短距离、低功耗的无线通信技术。
690 0
|
内存技术
【.Net Micro Framework PortingKit - 02】STM3210E平台构建
在上一篇《移植初步:环境搭建》文章中,我们介绍了环境搭建的相关工作,下一步我们将要为STM3210E开发板构建平台代码。
556 0
推荐文章
更多