电子说
无线一词已成为我们日常生活的一部分,我们已被无数的无线设备所包围,例如移动(流动)电话、警报系统、闸门控制器、无线上网、无线键盘等。在主要制造商的协助下,已经有数种无线数据传输标准陆续出现——比如Bluetooth和Wi-Fi,是目前准备要征服全世界。但是一切事情似乎颇为复杂,纵使你是一位富有经验的技术人士,到底应如何解决这样问题呢?数之不尽的半导体制造商生产的IC皆可根据一些常用的技术或其他便可用作无线通信,甚至有些微控制器也可达至此目的,虽然大部分都是很昂贵及往往在电子零件店里找不到,Chipcon CFC2440就是一个很好的例子,纵使你勉强克服了一般的设计问题,作为一位设计师要预先知道在某个时间会出现完全不同类别的问题:需要一个RF输出级和适合的天线。这个输出级是困难重重的,不管你如何小心谨慎于寄生电感上,它们仍使你非常头痛,因为你的设计是好是坏都在此处反映出来。电子制造商也留意到这个问题,所以现在提供有现成的“RF方案”,尤其是支持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”;否则,会从模块收到一个错误信息。
图3:AT命令语法
另外,还有一个X-CTU软件,令到一切事情甚至更加方便,可用它来配置XBee模块的所有参数,不过先要将XBee模块连接至PC的COM接口(因信号电平不同须经适配器),另外亦可用X-CTU来测试模块和升级固件。
四、模块内的数据缓存
无线链路上总是半双工通信,用一条天线作发射或接收,但非两者在同一时间。不过,Xbee模块可以通过分时的方式达到UART端的同时发射和接收(全双工模式)。图4揭示了该原理。
图4 XBee模块内部框图
XBee模块内有发射(RF TX)缓存和接收(RF RX)缓存,每一缓存提供100bytes暂时存储的地方,数据可以从两个方面同时抵达。发射数据来自UART,以及接收数据来自RF链路经天线而来。当天线正在接收无线数据时,它不能在同一时间发射无线数据,因此,将要发射的数据可暂时存储在发射缓存里,而收到数据就堆放在接收缓存内。只要RF端数据流停止,XBee模块将天线从接收切换至发射,并且将发射缓存内的数据发送到大气去,与此同时,UART清空接收缓存,把里面的数据传输给应用设备。
这虽是一个单纯系统,但不是完全完美。应用上如有大量数据要发送时就很容易令发射缓存过载,关于这个问题Digi提供一个“满载”警告。只要应用设备填入数据至已届发射缓存最后的17bytes(换言之有83bytes正等待发送),第12脚即转高位,告知系统须暂时停止注入数据。发射缓冲器内容已减少至66bytes之后,第12脚再转低。
五、在实践中的XBee
图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计算的。
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !