Page15/31/2007ZigBee软件开发人员指南(基于JennicJN5121)2007.5.25BOCCN张宏亮北京博讯科技有限公司ZigBee软件开发人员指南(基于JennicJN5121)Page25/31/2007第一章基础概念.............................................3第二章平台介绍.............................................5硬件环境................................................5软件平台:..............................................7第三章快速入门.............................................9软件安装................................................9编译和下载.............................................11WSN例程的代码解释.......................................13修改代码...............................................18第四章基于ZigBee协议栈进行开发.............................23第一节协议栈架构简介。..................................23第二节ZigBee协议栈的开发接口API........................28第三节应用框架接口函数..................................36第四节ZigBeeDeviceProfileAPI.......................42第五章基于802.15.4协议栈进行开发...........................49第一节:IEEE802.15.4协议栈的架构,接口和中断说明.........50第二节:IEEE802.15.4网络的建立过程.....................53第三节:应用程序的代码框架................................57第六章外围部件的操作.......................................68如何实现定时休眠唤醒.....................................68如何使用SPI接口........................................69如何使用UART...........................................69北京博讯科技有限公司ZigBee软件开发人员指南(基于JennicJN5121)Page35/31/2007第一章基础概念为了使我们更好的完成ZigBee开发技术的学习,首先我们希望通过概念的介绍在大家的头脑中形成一些统一的概念,这样在我们下面的文档中提到这些概念的时候我们可以不用再进行解释。ZigBee“ZigBee”是一个协议的名称,这一协议基于IEEE802.15.4标准,其目的是为了适用于低功耗,无线连接的监测和控制系统。这一协议标准由ZigBee联盟维护。IEEE802.15.4标准IEEE802.15.4是ZigBee协议的底层标准,主要规范了物理层和MAC层的协议,其标准由国际电工学协会IEEE组织制定并推广。2.4G免费频段免费频段,是指各个国家根据各自的实际情况,并考虑尽可能与世界其他国家规定的一致性,而划分出来的一个频段,专门用于工业,医疗以及科学研究使用的,不需申请就可以免费使用的频段。我们国家的2.4G频段就是这样一个频段。PANPersonalAreaNetwork的缩写,用于区别同一Channel中,不同的节点群组,只有属于同一个PAN的节点之间才能相互通讯。Channel通常翻译成通道,ZigBee所使用的频率范围从2400MHz到2483.5MHz共16个通道,同一个网络的设备必须位于同一个通道中。MAC地址/ExtendedAddressMAC地址是网络设备的一个唯一标识码,这一编码具有全球唯一性,由IEEE进行管理。短地址/NetworkAddress当ZigBee装置加入一个PAN中时,会由上一层父节点分配一个16位地址,用于网络内节点之间的标识和通讯,以减小包的大小。CoordinatorZigBee网络中的一种网络设备的角色定义,用以控制整个PAN,每一个PAN都必北京博讯科技有限公司ZigBee软件开发人员指南(基于JennicJN5121)Page45/31/2007须有一个CoordinatorRouterZigBee网络中的一种网络设备的角色定义,用以转发数据,延伸ZigBee网络的规模。End-DeviceZigBee网络中的一种网络设备的角色定义,作为网络的昀终端节点。北京博讯科技有限公司ZigBee软件开发人员指南(基于JennicJN5121)Page55/31/2007第二章平台介绍硬件环境JN5121芯片JN5121是一款兼容IEEE802.15.4的低功耗SoC芯片。虽然在笔者撰写这个培训手册的时候已经有消息Jennic将要推出更加经济和性能更高的5139芯片,但是考虑到产品的稳定性和5139与5121全面兼容的特性,在本教材中我们仍然以5121作为硬件基础。如果您需要了解JN5121芯片的管脚和更多的参数细节,您可以参考JN5121的DataSheetJN-DS-JN5121.这个文档可以从Jennic的网站或者我们公司的ftp()上下载到.JN5121-Z01-M模块JN5121-Z01模块是基于JN5121芯片所开发的一系列表帖形式的模块产品。该系列模块集成了所有的射频组件和无线微控制器。采用模块进行开发可以大大的减少开发人员的工作量,缩短产品的开发周期。这一系列的模块包含下列不同的型号JN5121-Z01-M00内置陶瓷天线JN5121-Z01-M01带有天线连接接口JN5121-Z01-M02带有功率放大器和天线连接接口如果您需要了解关于模块产品的更多细节,可以参考模块产品的DataSheetJN-DS-JN5121MO。开发包基于Jennic产品的ZigBee开发包有很多种型号,包括Jennic原产的EK系列,和BOCCN生产的DK系列,您还可以从其他的供货商查到更多的开发包型号,不过北京博讯科技有限公司ZigBee软件开发人员指南(基于JennicJN5121)Page65/31/2007在本手册中我们选择BOCCN的原产开发包系列中的JN5121-DK103作为学习的硬件基础。如图所示:DK103包含三个传感器板,软件和文档光盘以及两根串口连接线和电池。该款开发包的售价是1990元整,非常适合用来开发基于802.15.4或者ZigBee的应用。传感器板开发包中的主要部件就是传感器板,之所以叫做传感器板是因为每一个板子上都集成了相应的温湿度一体传感器,这样用户就可以直接利用传感器板进行一些应用的测试和开发。传感器板包含的部件如下所介绍:JN5121模块板载温湿度传感器RS232接口:用于编程或者连接其他的串口设备JN5121的I/O扩展端口RS485J1CMOSProgram北京博讯科技有限公司ZigBee软件开发人员指南(基于JennicJN5121)Page75/31/2007J2ProgRunJ3FlashJ4I/O脚J5RS232/ProgramPortJ6J1和J5编程/串口选择J7RS485端电阻J8如图标注SW1,SW2可编程按键SW3开关(可选择外供电或电池)PWR电源指示灯LED1,LED2可编程LED在本手册中我们就将使用这一款传感器板进行各种应用的开发和测试。软件平台:需要说明的是,在笔者撰写这个文档的时候,Jennic正在为改进他的软件开发平台做着巨大的努力,所以以下所提到的各种软件都频繁的推出新的版本,但是为了不至于对我们的读者造成混乱,我将所有的软件版本锁定到一个稍老的版本号上,如果有特殊的需要我将在文档的部分特别的说明。如果没有特别的说明本手册的所有范例代码都以此处提到的软件版本为准:Cygwin2v0这个软件是一个Linux的模拟环境,之所以要安装这个程序是因为昀初Jennic的开发环境是基于LinuxGcc编译器的。Codeblocks1v0这个软件是Jennic所提供的代码编辑和编译环境,这个软件和上面提到的cygwin的gcc编译器进行连接完成代码的编译工作。Codeblocks是一款开源的C/C++开发工具,Jennic基于这个工具对其进行扩展形成了自己的开发平台,所以您必须使用从我们网站或者Jennic网站下载codeblocks才能进行开发。Flashprogrammer1.4这个程序是用来将编译好的代码下载到传感器板中的工具。1.4版本是相对稳定的北京博讯科技有限公司ZigBee软件开发人员指南(基于JennicJN5121)Page85/31/2007版本。macstack2.6.1这个安装包是mac协议栈的安装包。请注意我们所选用的协议栈的版本号。zigbeestack1.5.1zigbee协议栈的安装包。请同样安装和我们一样的版本。这个安装包是北京博讯科技有限公司ZigBee软件开发人员指南(基于JennicJN5121)Page95/31/2007第三章快速入门现在我们有了一些共同的概念认识和共同的软硬件平台,那么接下来我们就可以开始一点儿修改代码的工作,让东西转起来。软件安装首先我们需要把所有的软件安装好。先从cygwin开始运行Setup.exe选择安装目录北京博讯科技有限公司ZigBee软件开发人员指南(基于JennicJN5121)Page105/31/2007选择源目录:注意,请点击浏览选择压缩包解压目录下的Jennic目录点击这一图标All,使所有的安装内容为install状态如图点击下一步完成软件的安装北京博讯科技有限公司ZigBee软件开发人员指南(基于JennicJN5121)Page115/31/2007安装完成后,桌面将出现上图所示的图标,其中JN5121FlashProgrammer为程序下载程序,详细的使用方法请参考文档光盘中[用户手册]JN-UG-3007FlashLoader接下来是codeblocks运行JN-SW-4024-JennicCodeblocks-1v0.msi然后按照安装指示完成软件的安装,这个过程很简单,一路next基本就可以了。接下来升级你的JennicFlashProgrammer到1.4.0版本,老版本的FlashProgrammer有一些问题,会把模块的MAC址刷掉。如果开发包的光盘中没有,请从我们的FTP上下载/Jennic/Software/JN-SW-4007-FlashLoader-1v4.msi运行后一路NEXT完成安装。然后是协议栈JN-SW-4011-ZigbeeStack-1v5v1.msiJN-SW-4013-MAC-Setup-2v6v1.msi这两个都需要安装我们指定的版本。新版本的协议栈可能和本手册的部分范例有冲突。另外需要说明的是,昀好将上面的软件都安装到默认的C盘目录,尽量不要修改。虽然这不会造成什么大的问题,但是如果您安装在默认的目录,在接下来的教程中凡是提到目录的地方您就都可以按图索骥了。编译和下载软件安装完成后,我们就可以开始调试一个例程了。现在我们从一个很有意思的例子入手,无线传感器网络例程,也叫做WSN例程。这个范例的源代码可以从开发包的光盘ApplicationNotes目录下,或者我们的FTP相应的目录下找到,JN-AP-1015-Zigbee-Wire