zigbee入门级文章

[导言]
  本人做过几年单片机的开发工作,主要用的是8051内核的和瑞萨740系列的,在这个ARM大行其道的时代,也曾经试着接触过,不过很容易在复杂的内核中迷失了自己~~~一直对这种能全局掌控的小系统痴迷,一个国外朋友无意间提到Zigbee这种技术,从百度百科开始了解,然后疯狂搜集资料,对这种技术甚是感兴趣,加上最近媒体对物联网的吹捧,终于坐不住了,买书,买开发板,动工啦~~~~

  此笔记将从零开始,记录本人的学习过程里遇到的问题及答案,希望对大家能有所帮助,也希望得到高手的指点。

[注:本文源自www.feibit.com--“飞比”Zigbee论坛,为尊重劳动者成果,如需转载请保留此行]


[
问题记录]
1. 
买开发板之前的先略去不写了,以后有空补上。第一个问题就是开发板到手了,从哪开始?
  毕竟对单片机有些了解,基础实验只是大概跑了下看了看结果,心里大概对开发板的外设有个底。然后进入最关键的通信部分,不知道有没有大跃进了,后面如果学起来有难度,再把课补上。下载了数据传输实验的程序到开发板,看了下运行结果,然后下一步就是读程序,看下这个结果是如何产生的?

2. 
source insight如何阅读IAR的项目源码?
   
答案见本版如何用source insight编辑IAR项目源码?“IARworkspace文件组织

3. 
多年来学习单片机的习惯,从"main"函数开始,但是"main"在哪里?
..\Projects\zstack\ZMain\TI2430DB\ZMain.c


4. "ROOT"
是什么意思?
以下是“8051 IAR Assembler”中对此的解释:
NOROOT, ROOT
NOROOT means that the segment part may be discarded by the linker
if no symbols in this segment part are referred to. Normally all
segment parts except startup code and interrupt vectors should set this
flag. The default mode is ROOT which indicates that the segment part
must not be discarded.
简单翻译下:
NOROOT
表示如果此部分代码从来没有被调用到,那么这部分代码会被linker抛弃。一般来讲,除了startup和中断的代码都应该设为NOROOT。默认的模式为ROOT,即linker不会抛弃。
--by outman from feibit.com 2010.4.7

5. 
到底学习zigbee应该从哪开始?
  走马观花地看过一本入门书,本以为买了开发板,调试一下里面的通信程序就能快速入门了。昨天看了一天的程序才发现这种想法太急功近利了,有句古话怎么讲来着--欲速则不达,古人的话还是有道理的,于是决定调整思路,放平心态。但是到底从哪开始呢?国内Zigbee方面的书寥寥无几,大多数又总感觉有种功利色彩。罢了,读英文的吧(借机感谢下我大学良师albert,亏着他当时的提点,现在读英文书还不算吃力)。近期准备从两个地方下手,一个是TIZstack手册,另外一个是国外的朋友推荐的一本叫Newnes.ZigBee.Wireless.Networks.and.Transceivers的电子书,不想读电子版的,只是在深圳的书店还没找到。这是一本360多页的大部头,个人比较欣赏国外这种风格的书,往往深入浅出,让一个没太有基础的人也容易读得懂,不用搞一大堆书去看同一个东西。国内的大部头也不少,但很多感觉像我小时候写作文的风格--扯远了,抓紧时间吧~~~
--by outman from feibit.com  2010.4.8

6. cc2430
后面的的DB,BB,EB代表什么意思?
BB: Battery Board
DB: Development Board
EB: Evaluation Board
分别对应TI公司开发的三种板型,其功能按上顺序依次变强。可以参看"Z-Stack User's Guide for CC2430"的图片,以获得直观认识(具体位置在:开始==》程序==》Texas Instruments ==》ZStack-1.4.3-1.2.1
--by outman 2010.4.8






7. Coordinator, Router
End Device有什么区别?
好本与烂书的区别在于,好书在开头的时候就知道你在想什么,而烂书呢,到读到最后你也不知道他在想什么。。。
这个问题的答案在那本英文大部头的前面章节:
1.7 Device Types
There are two types of devices in an IEEE 802.15.4 wireless network: full-function devices (FFDs) and reduced-function devices (RFDs). An FFD is capable of performing all the duties described in the IEEE 802.15.4 standard and can accept any role in the network. An RFD, on the other hand, has limited capabilities. For example, an FFD can communicate with any other device in a network, but an RFD can talk only with an FFD device. RFD devices are intended for very simple applications such as turning on or off a switch. The processing power and memory size of RFD devices are normally less than those of FFD devices.

1.8 Device Roles
In an IEEE 802.15.4 network, an FFD device can take three different roles: coordinator, PAN coordinator, and device. A coordinator is an FFD device that is capable of relaying messages. If the coordinator is also the principal controller of a personal area network (PAN), it is called a PAN coordinator . If a device is not acting as a coordinator, it is simply called a device .

The ZigBee standard uses slightly different terminology (see Figure 1.5 ). A ZigBee coordinator is an IEEE 802.15.4 PAN coordinator. A ZigBee router is a device that can act as an IEEE 802.15.4 coordinator. Finally, a ZigBee end device is a device that is neither a coordinator nor a router. A ZigBee end device has the least memory size and fewest processing capabilities and features. An end device is normally the least expensive device in the network.
 

咦,那位同学举手干吗?~~~什么?翻译一下?唉,都说了让你上学的时候读好英文的~~~
那好吧,不过俺也是非专业水平,写得不好别扔砖啊。。。。


1.7 
设备类型
IEEE 802.15.4
无线网络协议中定义了两种设备:全功能设备(FFDs)和半功能设备(RFDs)FFD可以执行IEEE 802.15.4标准中的所有功能,并且可以在网络中扮演任何角色,那反过来讲,RFD就有功能限制啦。比如FFD能与网络中的任何设备说话,而RFD就只能和FFD“私聊啦。RFD设备的用途是为了做一些简单功能的应用,比如做个开关之类的。而其功耗与内存大小都比FFD要小很多。

1.8 
设备角色
IEEE 802.15.4
网络中,一个FFD可以扮演三个角色-协调器(Coordinator)、PAN协调器(PAN coordinator)和设备(device),其中协调器是一个全功能设备(FFD),它可以在网络中传递信息(做传话筒)。如果一个协调器在一个PANpersonal area network,个人区域网络)网络中做主控制器(老大的位置呃),那我们把它叫做PAN协调器。除此之外,就不用多说啦,就叫设备(你我一样的平头百姓)

Zigbee
协议中的定义与IEEE 802.15.4的定义大同小异,Zigbee中的“Coordinator”IEEE 802.15.4中的“PAN Coordinator"Zigbee中的“router”就是IEEE 802.15.4中的“Coordinator”,而“end device”就是指上面的平头百姓“device”啦。。。end device的内存、处理能力及功能都是最小的,当然也是网络中最便宜的了--这不是说我吗~~~
--by outman from feibit.com  2010.4.8

8. 
网络拓扑结构
这算是个问题吗?星形、网形、树形。。。很多人是不是能脱口而出?对于俺们这些非网络专家又对这个有点了解的人来说,脑子里好像总有那么点印象,又有点模糊。学问来不得半点虚假,这是谁说的来?我们可是要做网络专家的人哪,来一起把它弄清楚吧。。。
葵花宝典第一式第9节(大部头有新名字了,这本书写得真不错,免费打个广告~~
再扯一句,这个世界本来没有规则,规则都是上级定的~
End device==>Router==>Coordinator==>
==>?
言归正传:
网络结构是由zigbee网络层来管理的,它必须是IEEE 802.15.4中规定的两种(知道谁是上级了~)--星形和点对点形(这个名字怎么没太听过。。。)
1.6所示的星形结构中,每个节点都只能和PAN Coordinator(以后这种名字都不叫中文了,作为一个程序员见得多的其实是英文)通讯。一个典型的星形网络构建过程是这样的:一个被注入PAN coordinator程序(软件)的FFD(硬件)开始工作后,开始着手构建网络,他要做的第一件事就是要在他无线电波所覆盖到的空间区域内,先选择一个唯一的PAN网络标识号--他也有上级啊,不能乱搞~~,这个标识号一定要是附近其他网络没用到的。

在图1.7所示的点对点形的拓扑结构中,任意两个节点只要靠得足够近,都可以建立连接并通讯。在点对点形的网络结构中,任何FFD都可以扮演PAN coordinator的角色,大家都是老大?那到底谁是真正的老大呢?那就看谁是这个网络的创史人了--谁第一个建的这个网络,谁就是老大!在点对点网络中,所有担任传话筒的设备都是FFD,因为RFD没有这个功能(被阉割了嘛~),但RFD也可以作为网络的一员,他只能和指定设备(coordinator或者 router)通讯。

一个点对点的网络可以通过限制设备的一些功能,实现不同形状的网络。如果完全没有限制,那就是一个网状拓扑,另外一种是图1.8所示的树状拓扑,在这种结构中,Zigbee coordinator搭建了原始网络,router形成了树枝进行信息传递(传话筒),end device就是最后的树叶了,不能往下级传递信息了(它本来就是最下级嘛)。而router可以扩展coordinator所搭建的网络。

1.8也展示了router是如何扩展网络,甚至如何绕过障碍物的。比如A想和B说话,但是中间有墙挡的,信号强度又穿透不了,这个时候树形的网络结构就可以通过其它router传递信息,并最终到达B。我们有时把这种方式叫多次反射”(multihopping),因为信息从一个节点反射到另外一个节点,最终到达目的地。这样就扩大了整个网络的信息覆盖面。

在一个IEEE 802.15.4网络中,无论是哪种拓扑结构,网络总是由PAN coordinator来创建,PAN coordinator控制整个网络,并至少完成以下任务:
给本网络中每个设备指定一个16位或者64位的地址
通过网络发起、结束和传递信息
为本网络选定唯一的PAN网络标识号,这个标识号允许本网络内的设备使用16位的短地址方式,并且可以与其他的独立网络进行通讯

在整个网络中,只有一个PAN coordinator,所以PAN coordinator往往需要长时间在工作状态,所以它常需要连接稳压电源,而不是电池。但其他设备往往都是用电池来供电的,一个最小的网络包括两个设备,一个PAN coordinator与一个device.
-- by outman 2010.4.8 from feibit.com
 

附英文原文:
1.9 ZigBee Networking Topologies
The network formation is managed by the ZigBee networking layer. The network must be in one of two networking topologies specified in IEEE 802.15.4: star and peer-to-peer.
 

In the star topology , shown in Figure 1.6 , every device in the network can communicate only with the PAN coordinator. A typical scenario in a star network formation is that an FFD, programmed to be a PAN coordinator, is activated and starts establishing its network. The first thing this PAN coordinator does is select a unique PAN identifier that is not used by any other network in its radio sphere of influence —the region around the device in which its radio can successfully communicate with other radios. In other words, it ensures that the PAN identifier is not used by any other nearby network.

In a peer-to-peer topology (see Figure 1.7 ), each device can communicate directly with any other device if the devices are placed close enough together to establish a successful communication link. Any FFD in a peer-to-peer network can play the role of the PAN coordinator. One way to decide which device will be the PAN coordinator is to pick the first FFD device that starts communicating as the PAN coordinator. In a peer-to-peer network, all the devices that participate in relaying the messages are FFDs because RFDs are not capable of relaying the messages. However, an RFD can be part of the network and communicate only with one particular device (a coordinator or a router) in the network.



A peer-to-peer network can take different shapes by defining restrictions on the devices that can communicate with each other. If there is no restriction, the peer-to-peer network is known as a mesh topology . Another form of peer-to-peer network ZigBee supports is a tree
topology (see Figure 1.8 ). In this case, a ZigBee coordinator (PAN coordinator) establishes the initial network. ZigBee routers form the branches and relay the messages. ZigBee end devices act as leaves of the tree and do not participate in message routing. ZigBee routers
can grow the network beyond the initial network established by the ZigBee coordinator.

Figure 1.8 also shows an example of how relaying a message can help extend the range of the network and even go around barriers. For example, device A needs to send a message to device B, but there is a barrier between them that is hard for the signal to penetrate. The tree topology helps by relaying the message around the barrier and reach device B. This is sometimes referred to as multihopping because a message hops from one node to another until it reaches its destination. This higher coverage comes at the expense of potential high message latency.

An IEEE 802.15.4 network, regardless of its topology, is always created by a PAN coordinator. The PAN coordinator controls the network and performs the following minimum duties:
● Allocate a unique address (16-bit or 64-bit) to each device in the network.
● Initiate, terminate, and route the messages throughout the network.
● Select a unique PAN identifier for the network. This PAN identifier allows the devices within a network to use the 16-bit short-addressing method and still be able to communicate with other devices across independent networks.

There is only one PAN coordinator in the entire network. A PAN coordinator may need to have long active periods; therefore, it is usually connected to a main supply rather than a battery. All other devices are normally battery powered. The smallest possible network includes two devices: a PAN coordinator and a device.


Zigbee入门开发 Zigbee是一种新型的短距离无线通信技术。其特点是低功耗,低成本,组网灵活。Zigbee协议由zigbee联盟指定,包括应用层,和网络层,其下层采用IEEE802.15.4协议。 无论是学习zigbee技术,还是利用zigbee技术开发产品,都需要较好的掌握zigbee协议,并比较深入的了解IEEE802.15.4协议.然而仅zigbee协议就接近400页,而IEEE802.15.4协议多达600页,全部是英文。如果从来没有接触过无线通信的开发,要迅速掌握这么多内容确实有一些难度,笔者考虑到广大急切进入zigbee的同仁者,结合自己开发中总结出的理解协议的特定方法,从开发的角度,阐述协议内容,以达到抛砖引玉的效果,同时和广大同仁交流,共同提高,并希望zigbee技术能够在中国发扬光大。 协议从功能实现来讲,ZigBee协议层共包括物理层(又称实体层)、MAC层、数据链接层、网络层和应用支持层五个主要层次。在标准制定的分工上,ZigBee协议层是由ZigBee联盟和IEEE802.15.4的任务小组共同完成的。其中,物理层(又称实体层)、MAC层、数据链接层,以及传输过程中的资料加密机制等都是由IEEE所主导的。网络层和应用支持层则由ZigBee联盟来完成。IEEE802.15.4小组与ZigBee联盟共同针对ZigBee协议栈的发展进行研究,而未来还能依据系统客户的要求来修正其所需的应用界面。如图1所示: Zigbee协议整体架构 作为理解协议,从开发者的角度来讲,这样学习协议是比较费时间的,也较难掌握。笔者从自己长期开发的经验来看,对无线通信,最重要的就是在发送端根据用户的要求,把数据能够扔出去,并且是扔到指定的设备,在接收端,能够把发送到该设备的数据捡起来。并根据用户要求的作特定的处理。如果考虑在一个无线网路中的话,就得首先建立网络,其他得设备加入网络。最后是才是一些其他的问题,如设备离开网络,设备重新加入网络,等等。 这样从通信过程去理解协议,将会使得协议的内容非常明了,也可以很好的知道利用协议开发产品,达到事半功倍的效果。 本人将根据这样的思路,分五期具体讲述协议内容: 第一期:设备建立网络过程 第二期:设备加入网络过程 第三期:数据发送过程 第四期:数据接收过程 第五期:其他的问题 zigbee设备建立网络过程 在一个zigbee网络中,只有协调器(coordinator)设备可以建立网络,在建立网络过程中,所有的实现过程都是通过原语实现的(具体在程序中,如用c语言,就是调用一个一个函数,或者是一个一个任务来实现(不要刻意最求这句话的准确性,本来好的协议就是只要达到这样的结果,不管具体实现)),首先协调器设备的应用层调用NLME_NETWORK_FORMATION.request原语,发出建立网络请求,网络层收到这个原语,就要求MAC层执行信道能量扫描(在IEEEE802.15.4协议中规定,在2.4G频段,共有16个信道,每个信道的带宽为5M,深入理解,可以看协议和通信原理的相关资料)。这调用MLME_SCAN.request,主要找到信道能量低于设定能量值的信道,并且标注这些信道是可用信道,下 一步就在可用信道中执行活动情况扫描(active scan),就是在可接受的信道
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值