分类: 系统运维
2008-03-19 09:31:18
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://)下载完整的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)开发应用程序
所有功能测试通过之后用户就可以根据自己需求开发应用程序了。