zigbee协议无线通信的实现

zigbee协议无线通信的实现

ID:11752556

大小:136.00 KB

页数:0页

时间:2018-07-13

zigbee协议无线通信的实现_第页
预览图正在加载中,预计需要20秒,请耐心等待
资源描述:

《zigbee协议无线通信的实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Zigbee无线网络通信的软件实现ZigBee是一种新兴的短距离、低功耗、低数据速率、低成本无线网络技术。ZigBee采取了IEEE802.15.4强有力的无线物理层所规定的全部优点:省电、简单、成本又低的规格;在此基础上,ZigBee增加了网络层和应用层。它的主要应用领域包括工业控制、消费性电子设备、精准农业,汽车自动化、家庭和楼宇自动化、医用设备控制等。ZIGBEE的组网方式有三种:星型网,树状网,网状网。星型网络的各节点只能通过协调器相互通信。树状网把各个通信节点串成了一条线路,各节点只能延着这条线路,以传递的方式进行通信。前两种通信方式只能进行一些简单

2、的应用,这里不加讨论。网状网具有强大的功能,网络各节点之间可灵活的进行相互通信,网络可以通过“多级跳”的方式来通信;该拓扑结构还可以组成极为复杂的网络;网络还具备自组织、自愈功能。充分发挥了无线网络通信的优势。下面以ZIGBEE协议建立网状网络的工作流程来说明其通信的具体实现。ZIGBEE协议栈较复杂,但ZIBEE联盟为我们的具体应用封装了一些编程接口。如APS层,ZDO层,AF层,OSAL操作系统层。我们的具体应用大部分功能都可以通过这些高层接口来实现,它们封装了网络层及物理层的实现细节。这些复杂的工作对程序开发变得透明和方便。ZIGBEE2006协议栈为应

3、用开发提供了程序框架,就象使用VC++一样,我们只须关心应用的建立。先让我们认识一下ZIGBEE2006协议栈,打开协议栈,在工程文件的左边Workspace中可以看到整个协议栈的构架,如图所示:APP:应用层目录,这是用户创建各种不同工程的区域,在这个目录中包含了应用层的内容和这个项目的主要内容,在协议栈里面一般是以操作系统的任务实现的。HAL:硬件层目录,包含有与硬件相关的配置和驱动及操作函数。MAC:MAC层目录,包含了MAC层的参数配置文件及其MAC的LIB库的函数接口文件。MT:实现通过串口可控各层,于各层进行直接交互。NWK:网络层目录,含网络层配

4、置参数文件及网络层库的函数接口文件,APS层库的函数接口OSAL:协议栈的操作系统。Profile:AF层目录,包含AF层处理函数文件。Security:安全层目录,安全层处理函数,比如加密函数等。Services:地址处理函数目录,包括着地址模式的定义及地址处理函数。Tools:工程配置目录,包括空间划分及ZStack相关配置信息。ZDO:ZDO目录ZMac:MAC层目录,包括MAC层参数配置及MAC层LIB库函数回调处理函数。ZMain:主函数目录,包括入口函数及硬件配置文件。Output:输出文件目录,这个EW8051IDE自动生成的。从上面的描述中可以

5、看出,整个协议栈中,对于Zigbee的功能已经全部体现,在此基础上建立一个项目的方法主要是改动应用层。程序首先从入口主函数MAIN迈出了建立网络的第一步。在主函数里初始化了硬件设备,包括时钟,中断,接口,外部设备等等。部分代码如下:ZSEGintmain(void){SET_MAIN_CLOCK_SOURCE(CRYSTAL);//初始化时钟InitLcd();//液晶屏初始化osal_int_disable(INTS_ALL);//中断关闭,为了初始化中断设备zmain_vdd_check();//电压检查zmain_ram_init();//堆栈初始化In

6、itBoard(OB_COLD);//I0口初始化HalDriverInit();//硬件设备驱动初始化osal_nv_init(NULL);//初始化内存zmain_ext_addr();//64位扩展地址初始化zgInit();//初始化基本的FLASH数据ZMacInit();//介质介入控制层初始化#ifndefNONWKafInit();//应用AF层初始化#endifosal_init_system();//操作系统曾初始化osal_int_enable(INTS_ALL);//硬件初始化后,打开所有中断osal_start_system();//

7、所有的初始化结束,从这个函数进入主循环,它不在//返回}整个协议栈是以一个操作系统贯穿的,我们要加入自己的应用,就要添加一个任务。在协议栈中的OSAL.c文件中,byteosal_init_system(void)函数的功能是初始化操做系统。在函数osal_start_system()中实现了添加任务到操作系统任务表中。在这个函数中通过调用osalAddTasks()函数来定制项目所需要应用的任务,该函数属于应用层和操作系统层之间的接口函数,一般项目的建立需要根据系统的需要自己编写改函数,并将函数放到应用层。osalAddTasks()函数是通过osalTas

8、kAdd()函数完成任务添加。首先,将

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。