当前位置:文档之家› 线传感器网络常用的通信协议

线传感器网络常用的通信协议

线传感器网络常用的通信协议(上)

通信协议是无线传感器网络实现通信的基础,无线传感器网络通信协议的设计目的是为了使具体的无线传感器网络通信机制与上层应用分离,为传感器节点提供自组织的无线网络通信功能。

与传统无线网络相比,无线传感器网络的应用环境有诸多不同。无线传感器网络是能量受限的网络,需要使用低功率、短距离的无线通信技术,以节省能源消耗,延长网络寿命。无线传感器网络的通信协议可以采用自定义的通信协议,也可以采用已经形成标准的通信协议,如ZigBee、蓝牙、Wi-Fi,这三种无线通信技术标准都是短距离的无线通信,它们在各方面性能之间有较大差异,ZigBee、蓝牙、Wi-Fi.之间的比较见表5-6。蓝牙技术所能通信的距离非常短,限制了其应用范围;Wi-Fi协议栈所占内存很大、功耗高使其在很多场合不实用。究竟选用什么通信标准,还需要根据系统需求来定。

由表5-6得知,ZigBee是比较适合无线传感器网络应用的,简单阐述自定义通信协议并对ZigBee协议栈进行分析。

1. 自定义通信协议

自定义的通信协议可以采用分层设计,参考OSI参考模型的结构,可以提高系统的灵活性,在保持各层协议之间接口不变的情况下,各层协议可以独立进行开发,并尝试不同的算法。早期提出的一个协议栈包括物理层、数据链路层、网络层、传输层和应用层,另外还有能量管理平台、移动管理平台和任务管理平台,如图5-23所示。

如图524所示的网络协议栈对原始模型进行了改进,加入了定位和时间同步子层,并用倒L型描述这两个子层。另外还增加了QoS管理及网络管理等功能。

2 ZigBee协议栈

目前已经有多家公司推出支持ZigBee的无线收发芯片、ZigBee开发套件及ZigBee协议栈等,如Microchip的PICDEMZ Demo Kit及其ZigBee协议栈、飞思卡尔的MC13191/92开发者初级套件及其协议栈、Figure8的Z-Stack ZigBee 协议栈等,国内也涌现出了不少专门从事ZigBee开发的公司。在此介绍Microchip的ZigBeel.0版协议栈。

1.Microchip ZigBee协议栈简介

Microchip的ZigBee1.0版协议栈设计得可以随着ZigBee的发展而发展,它具有以下特点。

①基于ZigBee规范的0.8版本。

②使用Chipcon CC2420 RF收发器,支持2.4GHz频带。

③支持简化功能设备(Reduced Device,RFD)和协调器。

④在协调器节点中实现对邻接表和绑定表的非易失性存储。

⑤支持非时隙的星型网络。

⑥可以在大多数PICl8系列单片机之间进行移植。

⑦协同多任务处理架构。

⑧不依赖于RTOS和应用。

⑨支持Microchip MPLAB?C18和Hi-Tech PICC-18TM C编译器。

⑩易于添加或删除特定模块的模块化设计。

当然,该协议栈也不是完全支持ZigBee标准中的所有规范,它有以下限制。

①不完全符合ZigBee协议。

②不支持群集和点对点网络。

③无安全和访问控制功能。

④无路由器功能。

⑤不提供标准的配置文件,但是包含创建配置文件所必需的所有原始函数。

⑥.不支持一对多绑定。

2.Microchip ZigBee协议栈硬件支持

Microchip协议栈设计为仅在Microchip PIC18F系列单片机上运行,它使用内部闪存程序存储器来存储可配置的MAC地址、网络表和绑定表,必须使用可自编程的闪存存储器单片机。但是,可以修改非易失性存储器(NVM)程序来支持任何其他类型的NVM,而不使用可自编程的单片机。该协议栈针对的硬件平台结构如图5-25所示,它拥有一片带SPI接口的PICl8F单片机、一个带有所需外部元件的无线收发器、一根天线,可以是PCB上的引线形成的天线或单极天线。单片机通过SPI总线和一些离散控制信号与无线收发器相连,无线收发器采用Chipcon公司的CC2420。单片机实现IEEE 802.15.4的媒体访问层和ZigBee协议层,另外还有一些特定的控制逻辑。

要掌握软件的实现,首先要知道硬件资源的分配,单片机与无线收发器之间的引脚对应关系见表5-7。

HCDEM Z演示工具包设计为用于演示Microchip ZigBee协议解决方案。PICDEM Z工具包内含两个ZigBee节点,每个节点由两块板组成:一块母板和一块RF卡。PICDEMZ母板设计为支持不同类型的无线收发器。

(1)PICDEM Z母板

配置有一个单片机插槽(提供40引脚和28脚DIP插槽供用户插入所需Microchip PIC I 8单片机)、温度传感器TC77、两个用户自定义的LED、两个用户自定义按钮、Reset按钮、RJ-11模块化接头、RS-232接头、RF卡接头、实验布线区、板上电源、测量电路和节点II)等,其实物图如图5-26所示。

(2)PICDEM Z无线射频卡

PICDEM Z母板设计为支持不同厂家无线收发器的无线射频卡。PICDEM Z 2.4GHz无线射频卡用于演示Microchip针对ZigBee协议在2.4GHz频带的解决方案。该卡使用Chipcon的CC2420无线收发器,带板上的PCB天线,其实物图如图5-27所示

3.Microchip ZigBee协议栈分析

(1)协议栈实现工具

Microchip协议栈采用C语言编写,使用Microchip C 18或Hi-Tech PICC-18编译器编译,使用在MPLAB?IDE集成开发环境进行应用程序的开发。源文件会自动根据所使用的编译器进行必要的更改。

(2)协议栈组成

Microchip协议栈由多个源文件组成,所有源文件均位于Source目录下的子目录中,目录结构见表5-8。

DemoCoordApp的应用程序项目文件见表5-9,该演示应用程序的功能如下:·与PICDEM Z演示板配合使用;

·使用RS-232终端驱动菜单命令来配置多个选项;

·通过终端菜单命令对EF收发器的性能进行测试的功能;

·创建非时隙的星型网络;

·使用D2作为指示发送/接收操作的LED;

·演示自定义绑定接口;

·自动支持MPLAB C18和 Hi-Tech PICC-18编译器。

DemoRFDApp应用程序项目文件见表5-10,该演示应用程序的功能如下:

·与PICDEM Z演示板一起使用;

·使用系统休眠和看门狗功能演示低功耗功能;

·使用RS-232终端驱动菜单命令来配置多个选项;

·通过终端菜单命令对RF收发器的性能进行测试的功能;

·在一个节点上可由用户配置的简单远程控制开关和LED应用程序;

·使用D2作为指示发送接收操作的LED;·演示自定义绑定接口;

·自动支持MPLAB C18和Hi-Tech PICC-18编译器。

(3)协议栈层次

ZigBee规范定义的ZigBee协议栈的结构如图5-28所示,分为物理层、媒体访问层、网络层、应用层(包括应用支持子层、ZigBee设备对象及应用框架)和安全服务提供。Microchip ZigBee协议栈根据ZigBee规范的定义将协议栈分为多个层,每个层为紧接着的上一层定义一组容易理解的函数,顶层总是通过定义完善的API和紧接着的下一层进行交互。特定层的C头文件(如zAPS.h)定义该层所支持的所有API,其架构如图5-29所示。实现每个层的代码位于一个独立的源文件中,而服务和应用程序接El(Application ProgramInterface,API)则在头文件中定义。1.0版的协议栈不实现安全层。

Microchip协议栈由很多模块组成。典型的应用程序总是与应用层(APL)和应用支持子层(APS)接口。但是,如果需要的话,也可以简单地将应用程序与其他模块接口并根据需要对它们进行自定义。

1)应用层(Application Layer,APL)

应用层模块提供高级协议栈管理功能。用户应用程序使用此模块来管理协议栈。zAPL.c文件实现了应用层逻辑,而zAPL.h文件定义应用层模块支持的API。用户应用程序将包含zAPL.h头文件来访问其API。

2)应用支持子层(Application Support sublayer,APS)

应用支持子层主要提供ZigBee端点接口。应用程序将使用该层打开或关闭一个或多个端点并且获取或发送数据。它还为键值对(Key Pair,KVP)和报文(MSG)数据传输提供了原语。应用支持子层同样也有绑定表,绑定表提供了端点和网络中两个节点间的群集ID对之间的逻辑链路。当首次对协调器编程时,绑定表为空。主应用程序必须调用正确的绑定API来创建新的绑定项。参阅DemoCoordApp和DemoRFDApp演示程序作为工作示例。Microchip应用支持子层把绑定表存储到闪存存储器内。闪存编程程序位于zNVM.c文件中。如果需要,可以用您的特定NVM(非易失性存储器)程序代替NVM程序以支持不同类型的NVM。

应用支持子层还有一个“间接发送缓冲器”RAM,用来存储间接帧,直到目标接收者请求这些帧为止。根据ZigBee规范,在星型网络中,RFD设备总会将这些数据帧转发到协调器中。RFD设备可能不知道该数据帧的目标接收者。数据帧的实际接收者由绑定表项决定。协调器一旦接收到数据帧,它就会查找绑定表以确定目标接收者。如果该数据帧有接收者,就会将该帧存储在间接发送帧缓冲器里,直到目标接收者明确请求该帧为止。根据请求的频率,协调器必须将数据帧保存在间接发送帧缓冲器内。zigbee.def文件中定义的MAC_MAX_DATA_REQ_PERIOD编译时间选项定义了确切的请求时间。注意,节点请求数据时间越长,数据包需要保存在间接发送缓冲器里的时间也越长。数据请求时间越长,需要的间接缓冲空间越大。间接帧缓冲器包含一个设计时分配的、固定大小的RAM堆。zigbee.def文件中MAX—HEAP_SIZE编译时间选项定义了缓冲器的大小。可通过动态分配间接发送帧缓冲器的RAM来添加新的数据帧。动态存储管理可充分利用间接发送帧缓冲空间,动态存储管理

程序位于SRAlloc.c文件中。

3)网络层(Network Layer,NWK)

网络层负责建立和维护网络连接,它独立处理传入数据请求、关联、解除关联和孤立通知请求,典型的应用不需要直接调用网络层。

4)ZigBee设备对象(ZigBee Device Object,ZDO)

ZigBee设备对象打开和处理EP O接口,负责接收和处理远程设备的不同请求。不同于其他的端点,EP O总是在启动时就被打开并假设绑定到任何发往EP O的输入数据帧。ZDO 对象允许远程设备管理服务。远程设备管理器会向EP O发出请求,ZDO会处理这些请求。

5)ZigBee设备配置层

ZigBee设备配置层提供标准的zigBee配置服务,它定义和处理描述符请求。远程设备可能通过ZDO接口请求任何标准的描述符信息,当接收到这些请求时,ZDO会调用配置对象以获取相应的描述符值。在目前的版本中,还没有完全实现设备配置层。应用程序不需要真接调用任一配置函数。

6)介质访问控制层(Medium Access Control.MAC)

介质访问控制层实现了IEEE 802.15.4规范所要求的功能。MAC层负责同物理(Physical,PHY)层进行交互。为支持不同类型的RF收发器,Microchip协议栈将不同的PHY交互归类到不同的文件中。每个支持的收发器都有一个独立的文件。注意,由于RF收发器功能上的差异,MAC和PHY文件不能完全独立。MAC文件根据当前的RF收发器调整自身的某些逻辑。

4.Microchip ZigBee协议栈使用

Microchip ZigBee协议栈对软件和硬件都有一定的限制,在此简单介绍在限定软硬件环境下的ZigBee协议栈使用步骤。

(1)准备硬件、安装源文件及开发工具

Microchip ZigBee协议栈使用的PICDEM Z演示工具包在国内可以购买到,用户可以购买一套该工具包进行ZigBee协议的测试。另外,用户也可以自己制作符合MicrochipZigBee协议栈接口规定的PIC单片机和无线收发器的实验板。

可从Microchip网站(http://http://biz.doczj.com/doc/1117695224.html,)下载完整的Microchip协议栈源文件,源代码以一个Windows安装文件形式发布。下载之后执行安装程序,按照步骤安装协议栈源文件。

安装PIC单片机的集成开发环境MPLAB IDE和C编译器Microchip C18或Hi-TechPICC-18编译器。

(2)编译演示应用程序

使用MPLAB IDE集成开发环境对应用程序进行编译,确保应用程序正确编译通过。对应用程序进行分析,了解各部分的功能。

(3)连接硬件,下载测试程序进行测试

应用程序烧写到PICDEM Z母板需要使用编程器MPLAB ICD2,将MPLAB ICD2、PICDEM Z母板和计算机三者正确连接之后,对PICDEM Z母板通电并启动MPLAB IDE,集成开发环境的编程功能对PICDEM Z母板进行编程以完成测试程序的下载。

下载之后将PICDEM Z无线射频卡与PICDEM Z母板连接,单独运行烧写有测试程序的测试板,验证测试程序功能。

(4)详细分析协议栈

对演示程序进行测试之后,需要对协议栈进行详细分析,了解协议栈的组成结构、各部分功能及实现方法等。

(5)开发新的应用程序

Microchip ZigBee协议栈只提供了两个演示程序,只是实现了简单的ZigBee功能演示,用户需要根据自己的应用需求,利用Microchip ZigBee协议栈实现的功能进行应用程序的开发。

5.Microchip ZigBee协议栈移植

Microchip ZigBee协议栈对软件和硬件都有一定的限制,但是在大多数情况下,用户都不会使用此协议栈针对的软硬件环境使得它能够在其他的软硬件平台上应用,议栈移植步骤。因此需要对Microchip ZigBee协议栈进行移植,在此简单介绍在其他软硬件环境下的ZigBee协

(1)详细了解自定义硬件平台与Microchip ZigBee协议栈支持硬件之间的异同

对用户自定义的硬件平台和Microchip ZigBee协议栈支持的硬件平台进行分析比较,了解它们的处理器在I/O端口分配,内存组成及使用、中断处理、堆栈操作等各个方面的异同。另外还要分析两者所采用的ZigBee无线收发器之间的异同,了解它们的操作时序、控制命令、各寄存器的作用等。

(2)详细分析Microchip ZigBee协议栈

对硬件有了清楚的认识之后,需要对协议栈进行详细分析,了解协议栈的组成结构、各部分功能及实现方法等,并懂得针对硬件需要对协议栈做哪些修改,目前已经有哪些功能,没有

哪些功能,需要添加哪些功能等。

(3)修改Microchip ZigBee协议栈并使用用户的编译器进行编译

以上步骤完成之后就可以对Microchip ZigBee协议栈进行修改,修改时要注意结合编译器的特性进行,需要对一些宏、常量等进行修改。在修改完成之后需要使用用户的编译器对其进行编译。

(4)编写测试程序对修改的协议栈进行测试

协议栈修改完成之后需要编写相应的测试程序对修改的协议栈进行测试,在编写测试程序时要对协议栈的每一部分功能都进行测试。

(5)开发应用程序

所有功能测试通过之后用户就可以根据自己需求开发应用程序了。

(注:本资料素材和资料部分来自网络,仅供参考。请预览后才下载,期待你的好评与关注!)

相关主题