浅谈ZigBee无线标准与XBee ZigBee模块

电子说

1.3w人已加入

描述

无线一词已成为我们日常生活的一部分,我们已被无数的无线设备所包围,例如移动(流动)电话、警报系统、闸门控制器、无线上网、无线键盘等。在主要制造商的协助下,已经有数种无线数据传输标准陆续出现——比如Bluetooth和Wi-Fi,是目前准备要征服全世界。但是一切事情似乎颇为复杂,纵使你是一位富有经验的技术人士,到底应如何解决这样问题呢?数之不尽的半导体制造商生产的IC皆可根据一些常用的技术或其他便可用作无线通信,甚至有些微控制器也可达至此目的,虽然大部分都是很昂贵及往往在电子零件店里找不到,Chipcon CFC2440就是一个很好的例子,纵使你勉强克服了一般的设计问题,作为一位设计师要预先知道在某个时间会出现完全不同类别的问题:需要一个RF输出级和适合的天线。这个输出级是困难重重的,不管你如何小心谨慎于寄生电感上,它们仍使你非常头痛,因为你的设计是好是坏都在此处反映出来。电子制造商也留意到这个问题,所以现在提供有现成的“RF方案”,尤其是支持ZigBee协议的。

ZigBee

图. 采用两个XBee模块的数据传输系统

一、ZigBee概述

ZigBee是基于无线通信标准的一个名称,基本上为工业应用而开发的。从历史角度来看,ZigBee改良早前称为“Home RF”的标准,该标准起初前景一片光明,可是因竞争对手Wireless Fidelity(Wi-Fi)标准的成功,它就被废弃了。Home RF寿命如此短促,至少发人深醒,也教人忧虑,是否历史会不断重演?这次的状况却大不相同,因为ZigBee由主要的参与者如Digi、TI、Freescale、Honeywell、Philips、Microchip及Mitsubishi等支持,并且联同大约一百家其他制造商组成“ZigBee Alliance”。

ZigBee原是依据于IEEE 802.15.4标准,并且采用与Wi-Fi同一频带(2.4GHz),它有16个分开的频道,换言之在单一位置上可提供多达16个网络而不会互相干扰。最大数据传输速率为250Kb/s(在100m范围内),相比于Wi-Fi的54Mb/s或BlueTooth的1MB/s,此数据速率实在是很低了,可视之为ZigBee的弱点。可是,这协议原意是用作工业用途,在速度上不是主要考虑的。ZigBee是为满足低电流损耗和尤其是低成本需求而开发的。表1比较上述提到三种无线通信技术。

表1 Zigbee/BlueTools/wifi比较

种类 ZigBee BlueTools Wifi
单点覆盖距离 50-1600m 10m 50m
网络扩展性 自动扩展 依赖现有网络
电池寿命 数年 数天 数小时
复杂性 简单 复杂 复杂
传输速率 250Kbps 1Mbps 1 to 54Mbps
频段 868M、916MHz、2.4GHz 2.4GHz 2.4GHz
网络节点数 65535 8 50
联网时间 30ms 10s 3s
终端设备费用
使用费用
安全性 128 bit AES 64bit,128 bit SSID
集成度和可靠性 一般
成本 一般
使用难度 简单 一般

二、ZigBee模块

MaxStream是一家非常有名的无线通信元件制造商,现在已经归于DIGI公司旗下,在其ZigBee产品上加了一个很贴切的名称XBee,XBee小型但却是一个功能完善的ZigBee收发器(即接收器/发射器),它是双向操作,在意义上来讲它可交替地发射或接收数据(半双工式)。

Digi提供有两种版本,XBee和XBee PRO两版本都是有相同的功能和引脚兼容如图二所示,唯一的差异是发射功率,XBee为最大2mW,而XBeePRO则最大50mW。发射功率当然是一个重要因素,因为最终产品的距离就决定于它的身上,但这绝不是唯一你要考虑的事情。

进一步考虑的是要符合法定的需求,最大辐射功率是由使用者当地的法律制定,在欧洲的应用限制为10mW。为要令它可以符合这个要求,Digi已在XBee内实行一个配置参数,可用来设定发射功率。

XBee带有多种不同类型的天线:

1. 整合于芯片内里,在这情况下辐射能量实际是非定向。

2. 备有天线插座,供连接外部天线。

3. 整合有垂直(鞭型)天线,给予比选择1有更佳的方向特性。

4. U.FL型按扣天线

三、软件

低成本的XBee模块很容易经标准串行接口连接,譬如常见于微控制器的UART或PC上的COM接口(RS232),在115,200 baud的最高速率上传输。可是,XBee是由3.3V电源操作,而并非像大部分数字电路的5V电源,正如在图3的方框图上所见,两类逻辑之间作直接相连是不可行的。

除此以外,你不需有使用该模块的任何特殊知识,所以无须明白ZigBee协议才去开始,模块为你做好每一样事情,它是一个“智能”系统,即是说模块含有可接受来自使用者命令的控制逻辑。这些命令乃由制造商规定。

在你可以发出一个命令之前,须将XBee置于“等待命令”状态。要使它进入此状态,便要给它一串三个+字符(hex 2B),即“+++”。之后,XBee期待收到一个以Hayes格式的命令,这命令总是以ASCII码的“AT”(代表“attention”),紧跟着的才是实际命令及任何命令参数(如有),命令串由一个Carriage Return(CR)回车字符作终结。XBee模块执行该命令,然后报告命令是否成功处理,如一切已按命令去做,XBee便回应“OK”;否则,会从模块收到一个错误信息。

ZigBee

图3:AT命令语法

另外,还有一个X-CTU软件,令到一切事情甚至更加方便,可用它来配置XBee模块的所有参数,不过先要将XBee模块连接至PC的COM接口(因信号电平不同须经适配器),另外亦可用X-CTU来测试模块和升级固件。

四、模块内的数据缓存

无线链路上总是半双工通信,用一条天线作发射或接收,但非两者在同一时间。不过,Xbee模块可以通过分时的方式达到UART端的同时发射和接收(全双工模式)。图4揭示了该原理。

ZigBee

图4 XBee模块内部框图

XBee模块内有发射(RF TX)缓存和接收(RF RX)缓存,每一缓存提供100bytes暂时存储的地方,数据可以从两个方面同时抵达。发射数据来自UART,以及接收数据来自RF链路经天线而来。当天线正在接收无线数据时,它不能在同一时间发射无线数据,因此,将要发射的数据可暂时存储在发射缓存里,而收到数据就堆放在接收缓存内。只要RF端数据流停止,XBee模块将天线从接收切换至发射,并且将发射缓存内的数据发送到大气去,与此同时,UART清空接收缓存,把里面的数据传输给应用设备。

这虽是一个单纯系统,但不是完全完美。应用上如有大量数据要发送时就很容易令发射缓存过载,关于这个问题Digi提供一个“满载”警告。只要应用设备填入数据至已届发射缓存最后的17bytes(换言之有83bytes正等待发送),第12脚即转高位,告知系统须暂时停止注入数据。发射缓冲器内容已减少至66bytes之后,第12脚再转低。

五、在实践中的XBee

ZigBee

图5 XBee模块的管脚定义,整个模块有20只引脚。

为求安全起见,再次提醒,最高电源电压是3.3V,超过这电压结果只会令你珍贵的XBee永久损坏。电源电压须经由100nF电容器退耦合,并尽可能靠近第1和10两脚之间。 第2及3两脚提供通信。第5脚很重要∶逻辑1(3.3V)启动XBee模块,而逻辑0禁止它。从第5脚接10kΩ上拉电阻至第1脚可保证模块在接通电源之时即被启动。第9脚有多种功用选择,由内部参数决定当中哪一个被使用,最重要的功能是休眠状态,只要内部SM寄存器不是在逻辑0,模块便在沉睡之中。

第7脚提供脉宽调制(PWM)信号,此是与最近收到的RF信号成比例的,它有8.32ms时期,相当于120Hz,LED发光二极管及其他光效应器件可将之转换成模拟信号,并利用它作为一个信号强度指示灯(只需一个RC网路和一个LM3914)。这亦可以由软件去做,因为最近收到的信号强度存放于内部DB参数上,正如其名称所指,这是给予dBm RF单位的数量(相对于1mW的分贝数),可用以下的方程式作dBm RF与mW(P)之间的对换;dBm = 10logP [dB] 或P = 10(dBm/10)[mW]

试举例∶0dBm = 1mW,10dbm = 10mW,20dBm = 100mW,30dBm = 1W。所有例子都是针对RF计算的。

审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分