Zigbee应用程序外文翻译资料

 2022-08-19 15:28:55

ZigBee Applications

The chapter 4 from “Zigbee Network”
This chapter describes how ZigBee applications interact with other ZigBee applications.It describes what constitutes a ZigBee network, how individual nodes are addressed, and how to address application objects within a node. Terms such as PAN ID, extended PAN ID, network address, profile ID, cluster, endpoint, attribute, and command will become clear (if I have done my job). This chapter is filled with plenty of examples. If yoursquo;re a developer and read only one chapter in this book, read this one.
But first, as usual, thereal truth about how ZigBee gained its name.ZigBee. Zig hellip; Bee hellip;
Bees. The origin of ZigBee came from the peculiar behavior of bees, first noted in
the 1960s by Nobel Prize-winner Karl von Frisch. Bees, after zigging and zagging
around in the fields, return to the hive, and perform what some call the Waggle Dance
to communicate the distance, direction and type of food to others in the hive. After receiving a WAGGLE-DANCE.indication, bees fly off directly to the source of food.
“ We have solved it once and for all, ” said Professor Joe Riley, team leader at Rothamsted Research, an agricultural research center. The team tracked a group of bees as they flew to a food source. To track bees by radar, the researchers first had to create a transponder small enough and light enough so that a bee could carry it. The transponder weighed approximately 10 to 12 milligrams, a fraction of the pollen load bees are accustomed to carrying.
Opponents to the Frisch theory have suggested that while the bees dance, itrsquo;s not to convey information. They believe bees are actually guided to the food source by odor conveyed by the scout bee. Von Frisch, on the other hand, claimed that recruits understood the dance and flew directly to the food source. But “ the bees take five to 10 minutes, not one minute, ” said Riley.
To make sure bees were not following a scent, a control group of bees was transported 250 meters after seeing a Waggle Dance. When released, the bees flew off in the direction indicated by the dance, the team at Rothamsted Research found.
The teamrsquo;s results show that bees do decode the dance and fly off immediately in the
direction indicated. But, “ they very rarely get it absolutely right, ” said Riley. “ The mean error is about 5 to 6 meters. ” Once the bees get to the end of the flight, they change their flight pattern, and start zigging and zagging, looking for the food they were instructed to find. That takes time, Riley said, sometimes up to 20 minutes.
ZigBee chips do not currently fit onto the back of a Bee, but they do come in 5 5 mm packages, and consume so little power they can last longer than the lifetime of a bee on a couple of AAA batteries.
4.1 Sending and Receiving Data
The whole point of a wireless network is to send reliable data between nodes in the network, and ZigBee makes it easy. The ZigBee network automatically figures out how to route the data from one node to another with the maximum chance of success.
To send data from one node to another in the Freescale platform, for example, simply call:
AF_DataRequest(amp;addrInfo, iDataSize, pPtrToData, NULL);
Thatrsquo;s it. ZigBee takes care of the rest!
ZigBee uses standard networking terms for data transmission, as defined by IEEE. This includes:
● Data Request (which means to transmit data)
● Data Confirm (which means the acknowledgment of a data request)
● Data Indication (which means to receive data)
Data requests are initiated by the application, as shown inFigure 4.1 . A data confirm is the direct result of a data request: Each time an application generates a data request, it will receive exactly one data confirm to indicate the success (or failure) of that request. A data indication, however, may arrive at any time.
Data requests come in a variety of flavors. The options include:
● Unicast with end-to-end acknowledgment
● Unicast without end-to-end acknowledgment

● Broadcast
● Groupcast/Multicast
Unicasts are transmitted from one node to exactly one other node. Unless the nodes are neighbors (within radio range of each other), route discovery takes place the first time these nodes speak together. If end-to-end is acknowledged, the unicast will be retried up to three times, perhaps even initiating a new route discovery if the old route is broken.
Broadcasts are transmitted from one node to all of the nodes in the network, within a sender-definable radius.
Groupcasts, and the upcoming Multicast in ZigBee 2007, broadcast to a specific set of nodes. Any node (actually, any endpoint, but Irsquo;ll explain it in detail later) not part of the group will discard the packet. For example, assume the dark nodes in Figure 4.2 all belong to group A. If a node groupcasts to group A, the packet will reach the applications in these specific nodes and no others.
The example in the next subsection,Example 1-1 ZigBee Data Requests, demonstrates how to initiate all these various data request mechanisms, and how it looks from the standpoint of data indication.
While this chapter describes how to use ZigBee unicasts, broadcasts, and groupcasts, if you would like to understand how they work from a stack standpoint, see Chapter 7, “ The ZigBee Networking Layer. ”
ZigBee is an asynchronous protocol; any node may transmit or receive data at any time.When a user flips a light switch, the data is sent immediately, even if

that light switch is a battery-powered device designed to run for years on a couple of AAAs. If you have read the 802.15.4 specification, you may have read about beacons. ZigBee is beacon

剩余内容已隐藏,支付完成后下载完整资料


本文原文摘录自《Zigbee Wireless Network》第四章。

Zigbee应用程序

本章描述了Zigbee应用程序之间是如何相互通信的的,本章同时也讲述了是什么构成了Zigbee网络,如何给单独的节点分配地址还有如何去给同一个节点里的应用目标分配地址,例如PAN ID,延伸性的PAN ID,网络地址,文件ID,簇群,端点,属性和命令等名词的意思将会很容易理解(如果我已经尽职的话)这章学习中将有大量的实例。如果你是程序员并且只想读书上的某一章的话,那就读这章吧。

但首先,像往常一样,有关Zigbee如何获得此名的真实故事是这样的:

ZigBee,分开来就是Zig:之字形,Bee:蜜蜂。

Zigbee源于蜂群特有的行为,这是在上世纪六十年代有诺贝尔奖获得者卡尔.冯.弗里希首先发现的。蜜蜂在田野里之字形飞行之后回到了蜂巢,并且跳起了一些人称之为摇摆舞的舞蹈去与蜂巢的其他伙伴交流食物所在地离蜂巢的距离,方向以及食物的类型。收到摇摆舞的提示后,蜂群直接往事物的源头飞去。

作为英国洛桑研究所,一所农业研究中心的团队领导人,乔.瑞雷教授说:“我们已经永远地解决了这个问题。”这支团队在一个蜂群飞往食物源时追踪了他们。要通过雷达来追寻蜜蜂的轨迹,研究人员首先得制作一个相当小且轻的收发器,这样蜜蜂就可以携带着它。一台信号收发器重大约10到12毫克,一部分采花粉的蜜蜂适应了这个任务。

弗里希理论的反对者则认为当蜜蜂在跳舞时,他们不是在传递信息。他们的观点是蜂群实际上是由味蜂传递的气味而被指引到食物源的。而另一方面,冯.弗里希则称工蜂团队知道这种舞蹈的含义,然后直接飞往了食物源。但是瑞雷说:“蜜蜂在这一过程中花了五到十分钟,而不是一分钟。”

为了确定蜂群不是跟随气味的,在看到了摇摆舞之后,一组实验组里的蜜蜂被转移了250米。这支洛桑研究所团队发现,当这群蜜蜂被释放时,它们朝了这支舞所指示的方向飞去。

这支团队的实验结果表明蜜蜂的确破解了这支舞的含义并且立即向这支舞指示的方向飞去。但是瑞雷教授说:“它们很少能够相当精确地到达食物源处,平均的误差有大约5米到6米。”这些蜜蜂一到路程的尽头就改变它们的飞行轨迹,并且按照之字形去运动,寻找它们被指引去寻找的食物。瑞雷说这一过程有时候长达20分钟。

目前来看Zigbee芯片不适合捆绑在蜜蜂的背上,但是他们确实只需要25平方毫米的封装,这种芯片消耗极其微小的能量,在几节3A电池的支持下,它们的工作寿命比蜜蜂还长。

4.1传输与接收数据

一个无线网的全局观就在于要在网络的节点节点间接收可靠的数据,zigbee使得这一过程变得简单。Zigbee网络能够自动解决如何数据从一个节点最有可能成功地传输至另一个节点这一问题。

假如你想在飞思卡尔的平台上将数据从一个节点传输至另一个节点,只需要作出以下指令:

AF_DataRequest(amp;addrInfo, iDataSize, pPtrToData, NULL);

就这么简单,剩下来的工作将有Zigebee来接手。

Zigbee使用由国际电气和电子工程协会制定的标准的网络术语进行数据的传递。这其中包括:

  1. 数据的请求(意味着将要传输数据)
  2. 数据确认(数据请求的确认)
  3. 数据指示(意味着要接收数据)

如图4.1所示,数据请求是由应用程序发出的。数据的确认是数据请求的直接结果:每次有应用程序发出数据请求,它都将会收到一个数据确认来提示该次请求是否成功。然而数据只是到达的时间却不能够确定。

数据请求的发出有多种形式,包括以下的:

  1. 带有端点至端点确认的单播
  2. 不带有端点至端点的单播
  3. 广播
  4. 组播/多播

单播是将数据由一个节点准确地传输到另一个节点。除非节点相邻(在互相的信号范围内),不然这些节点第一次在一起通讯时会有路径寻找这一过程发生。如果端点到端点的形式被承认,那么单播发送的数据将会巡回传输至少三次,如果旧的路径遭到破坏,那么接下来可能甚至会开始新的路径寻找。

广播是将数据从一个节点往在收发机定义范围内的所有节点传输。

组播以及以及在Zigbee2007版本中即将出现的多播,是向一些指定的节点传输数据。任何不属于这个小组的节点将会丢掉接收到的数据包裹。例如,假设图4.2中的黑色节点都属于A组,如果某个节点向A组组播数据,那么这个数据包裹将会到达这些指定节点的应用程序中,而另外的节点不会接收到。

在下一个部分的例子,示例1-1zigbee数据请求展示了如何开启不同类别的数据请求机制以及在数据指示的角度看这一过程是什么效果。

虽然本章描述了如何使用zigbee单播,广播,组播,如果你想从堆栈的角度去理解它们是如何工作的,请看第七章“zigbee网络层”。

Zigbee是一个异步的协议;如何节点既可以在任意的时间发送数据也可以在任意时间接收数据。

当用户按下了一个灯光开关,这个数据指令将会被立刻传送出去,即使这个灯光开关是为了设计能够在AAA电池的支持下工作数年的电池供电的设备。如果你已经阅读了802.15.5的说明书,你或许以及读到有关无线发射站的内容。而Zigbee是没有发射站的。

由于zigbee的本质,一个令人难以预测的事情就是数据包裹传递的延时。一个好的办法就是假定传递一个数据包裹每次信号跳跃所需要的时间大约为10微妙。困难出现在需要巡回和路径寻找时。路径寻找需要网络内的一次广播并且初始化代码必须达到结果已经被接受到才能传送。巡回是以每次跳跃的物理地址巡回和端对端的APS巡回。

在图4.3中一个节点正在往距离四个跳跃的节点传输数据。预计一般将会在40微秒之后被接收到,要是带有确认功能那就需要80微秒。

当使用以及经过确认的单播数据请求时,中间将会发生达到三次的端到端巡回,两次巡回之间有1.5秒的延迟。这就意味着最严重的情况下,一个数据包裹要被顺利地传送到,延迟会接近5秒,同样的,指示该次传输失败也需要接近5秒的时间。飞思卡尔Beestack通过BeeStackConfiguration.h里的gApsAckWaitDuration_c 使得两次巡回间的延时得到调整。

如果传输的通道十分顺畅,那么数据包的大小不会影响延时很多。但是如果通道里充满了噪音,那数据包的大小会使得巡回的几率呈指数形式增长,这也就意味着延时的增加。

一个好主意就是在给定的传输条件下让数据包尽可能的小。让数据包变小是个好的办法,由两个理由支持着它:第一就是减少了延时,第二就是降低了带宽的使用率,这样能够使得更多的应用程序得以运行。当然如果你要是传输大量的数据,那么就要尽可能地减少数据包的个数,但是对于其他类型的数据,你得想想如何让它变得短小。

总结:

  1. zigbee的数据传输的类型有四种:单播,广播,多播,组播。
  2. 请尽量让传输的数据变得短小。

4.1.1 示例1-1:zigbee数据请求

在飞思卡尔的Beestack中,执行数据请求,数据确认,数据指示的c语言程序反映了Zigbee的专业用语:

  1. AF_DataRequest( )
    2.BeeAppDataConfirm( )
    3.BeeAppDataIndication( )

作为一个数据请求,不管是用单播,广播还是组播模式传输,都是通过发送AF_DataRequest()这一程序开启的。这个程序立刻带着将被由无线发送出去的排列好的数据和gZbSuccess_c这一回复返回。返回时gZbNoMem_c的出现意味着由于存储记忆的缺少或者其他内部资源的缺少信息无法得到排列。返回时得到gZbInvalidEndpoint_c则表示源端点没有登记在Beestack上。

AF_DataRequest()的C语言格式如下:

typedef struct afAddrInfo_tag
{
zbAddrMode_t dstAddrMode;
zbApsAddr_t dstAddr;
zbEndPoint_t dstEndPoint;
zbClusterId_t aClusterId;
zbEndPoint_t srcEndPoint;
zbApsTxOption_t txOptions;
uint8_t radiusCounter;
} afAddrInfo_t;
zbStatus_t AF_DataRequest
(
afAddrInfo_t *pAddrInfo,
uint8_t payloadLen,
void *pPayload,
zbApsCounter_t *pConfirmId
);

数据请求程序的第一个参数afAddrInfo_t 包括了所有的地址信息,这样就可以显示这个数据包来自哪里,和这个数据包会去哪儿。afAddrInfo_t也包含了传输的选择,传输的选择定义了这个数据包是否被承认,这一参数还包含了距离,这样可以显示这个数据包将会在网络中被传输

多远。

在afAddrInfo_t参数中的dstAddrMode 术语与该词在zigbee的说明书中有着相同的含义,它可能是以下几个中的一个:

  1. gZbAddrModeIndirect_c
    2.gZbAddrModeGroup_c
    3.gZbAddrMode16Bit_c
    4.gZbAddrMode64Bit_c

gZbAddrModeIndirect_c用来指示本地的链接表是否被用到。gZbAddrModeGroup_c模式会在数据向组范围传播时被用到,dstAddr 目前用来作为一个组的身份标识。gZbAddrMode16Bit_c模式由于将数据直接传输到一个节点中,dstAddr用于显示16位的节点地址。gZbAddrMode64Bit_c用来向64位的地址的节点传输数据,dstAddr 会反映出其地址。

AF_DataRequest()程序的第二个和第三个参数定义了应用程序的数据,其有效载荷可以是80字节以上的任意数据,也可以包含任意的内容。

最后一个参数pConfirmId将需要更多的解释。网络的传输状况很难预测,在应用程序中你要注意去同步数据或者让数据能够异步地被一个节点接收到。例如,要是一个应用程序发送了两个数据请求,如图4.4所示一个发往节点A,一个发往节点B。

由于多次跳跃、巡回,可能还有路径寻找这一必要性的存在,向节点B发出的数据请求所得到的确认可能实际上比向A发出的数据请求所得到的确认更快到达。

飞思卡尔Beestack使用一个指针去确认一个不停变化的8位的身份认证,这可以让应用程序

去追逐应该追踪的数据请求指令。对于诸位Zigbee专家而言,这个确认的身份认证只是一个APS计数器 ,APS计数器是一个具有同样目的东西 。一些zigbee堆栈通过一次只允许发送一条信息解决了这个问题,因此就不需要确认的身份认证。

数据确认指令进入了一个叫做BeeAppDataConfirm()的回叫程序。这个程序的形式如下所示:

typedef struct zbApsdeDataConfirm_tag
{
zbAddrMode_tdstAddrMode;
zbApsAddr_tdstAddr;
zbEndPoint_tdstEndPoint;
zbEndPoint_tsrcEndPoint;
zbStatus_tstatus;
zbApsCounter_tconfirmId;
} zbApsdeDataConfirm_t;

除了状态和确认的身份认证,其余的源信息和目的信息都包括在了这结构当中,这简化了应用程序中的代码逻辑。飞思卡尔方案的传统在于它为APSDE-DATA.确认指令反映了Zigbee的要求。

一个数据指示表明一个节点正在从另一个节点接收到数据,不管数据请求的方式是单播、广播还是组播。通常飞思卡尔的启动程序专用语中反映了Zigbee要求中的术语

APSDE-DATA.指示:

typedef struct zbApsdeDataIndication_tag
{
zbAddrMode_tdstAddrMode;
zbNwkAddr_taDstAddr;
zbEndPoint_tdstEndPoint;
zbAddrMode_tsrcAddrMode;
zbNwkAddr_taSrcAddr;
zbEndPoint_tsrcEndPoint;
zbProfileId_taProfileId;
zbClusterId_taClusterId;
uint8_tasduLength;
uint8_t*pAsdu;
bool_tfWasBroadcast;
zbApsSecurityStatus_t fSecurityStatus;
uint8_tlinkQuality;
} zbApsdeDataIndication_t;

在数据指示程序中的dstAddrMode也可以是gZbAddrModeGroup_c或者gZbAddrMode16Bit_c。所以为什么不使用非直接或者64位

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[501422],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。