本文主要是介绍zigbee协议及开发(1)- 基础知识,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
说明:本系列文章中,部分内容来自于网络及图书,版权归原作者所有,其中加入我个人学习的体会及理解,算是个人的学习笔记。
准备学习这个方面内容原因是因为申请了一个学生的课题,本来是由学生做的,但是诸多原因,最后只得由我亲自操刀,既然做就做好吧。本系列相关实验用到的硬件是Feibit公司基于TICC2530开发系列节点。
申请的课题是关于无线传感器网络室内环境监测的,原本打算购买一套(中科院宁波)深联科技的GAINS和GAINZ套件或者是XcrossBow的套件,不过一查价格高得吓人,而经费项目少得可怜,只好作罢。最后,经过搜索,得知基于Zigbee技术的低功耗节点也是可选途径之一。
Zigbee是一个技术联盟,其目的是支持近距个人通信,即PAN(Personal Area Network)。一个简单的比方,现在大家可能都有手提电脑、手机、还有MP3之类的,这些设备之间通信可以看成一个PAN。从学术角度,IEEE802.15.4即是描述个人通信的规范,而遵从Zigbee的产品是完全与IEEE802.15.4兼容的。当然,日常提得比较多的是蓝牙和WIFI,也是一种近距通信技术,但是Zigbee强在其低功耗、低数据率,实际上Zigbee理论最高速率不超过250kb/s。下面这个图说明了问题:
IEEE802.15.4规范只涉及到网络的低两层,即PHY和MAC层。但是一般的Zigbee协议栈都实现了一整套完整的协议,即包括网络层(NWK)及应用层(APS,APL)。
以TI的Zigbee协议ZStack为例,其实现涉及到硬件层(HAL),MAC层,网络层(NWK)及应用层(APL),这几个在用IAR WORKBench打开Zigbee的工程后都可以找得到相关的目录,如:
其中,有一个目录OSAL,全称OS Abstract Layer,这个是Z-Stack1.4.3及以后的版本中引入了一个类OS的概念,即把应用层和堆栈层进行了分离,但是这个操作系统并不是时实的操作系统(如UCos,RTOS)。OSAL与Zstack关系好比Windows与TCP/IP关系,协议栈只负责网络数据传输相关工作(蓝牙也是用这个协议栈的,Wifi是用RTOS实时协议栈),OSAL完成以下相关工作:
一般来说提供如下几个功能:
· 任务的注册、初始化、开始(即注册ID号,注册端点,硬件初始化,任务就开始)
· 任务间的消息交换(通过任务和事件-来传递消息)
· 任务同步--(目前不知道在哪里)
· 中断处理--—(如按键中断,串口DMA中断)
· 时间管理--(time-update)
· 内存分配--(NV这个貌似很重要的了,不知所云)。
参考:http://www.zdh1909.com/html/RIFI/6491.html
参考:《Zigbee Wireless Networks and Transceivers》Shahin Farahani
参考:www.feibit.com/bbs
这篇关于zigbee协议及开发(1)- 基础知识的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!