本文更新中,希望大家补充,目前仅对S2C探讨,未来会加入XBee3的相关更新。
XBee S2C模块,如果仅连接电源线可以测得,在待机情况下,大约是10.5mA左右的电流,在休眠时的功耗可以低到0.5uA。可以知道,休眠几乎不耗电。在Spec上标的待机功耗会比实测只接电源线耗电更高,这时因为实际应用中我们还常接上uart等IO引脚。实际上,终级的低功耗控制往往也和通信引脚和控制引脚(比如休眠使能线)密切相关,不同的CPU串口功耗也不尽相同。一般说来,CMOS的UART省电些,TTL的耗电些。此外Digi模块内部有上拉(29K),除非为了电平转换,否则没必要在通信线上再加上拉电阻,以免并联后消耗更多静态电流。对于一些CPU本身串口比较耗电,则应在通信线上加电压型的隔离器,以尽可能减少功耗,GPIO控制线如果不需要请不要接上拉或是用管子隔离,以减少引脚休眠线的电流。
XBee ZB支持三种休眠模式:
一个ZigBee的休眠节点在醒来后马上和醒来时每隔100ms去向父节点索取缓存的数据包(这个过程我们称为polling)。当休眠节点进入睡眠模式时:
当XBee模块从睡眠中醒来:
周期休眠的参数
参数 | 名称 | 默认值 | 描述 |
---|---|---|---|
SP | 休眠周期 | 0x20,即320ms | 模块的休眠周期 |
SN | 休眠周期数量 | 配置SP的倍数以扩展休眠时间 | |
ST | 醒来时间 | 定义醒着时,在结束数据收发后保持醒着的时间 | |
SO | 休眠选项 | 定义休眠模式行为的选项: 0x02 不管有无数据总是醒ST;0x04 启用扩展休眠 SN*SP |
* commissioning按键会唤醒设备30s
* SP最大可设置28s,加上扩展休眠的设置,最长一次休眠可达21天左右
* 模块醒来后先poll数据,除非用SO强制它总是醒一定时间,否则无活动会立即休眠,ST实际上是数据活动结束后的计时器,在计时期间有数据会重置这个计时器
XCTU上的终端窗口有部分9针串口引脚电平指示和引脚电平控制,只是许多人不知道这个特性。 指示电平用深色背景时表示低电平,控制电平当选中时表示启用。当然模块也不是并不是默认有对应的引脚或是有把GPIO往串口对应信号去接。毕竟这些信号是有些类型的调制解调器和计算机通信时用的。下面更出我们有用的。
电平 | 说明 |
---|---|
/CTS | D7,由模块控制的指示电平,低电平有效,默认为低电平,表示通知电脑要送数据,休眠变高平,流控时变高电平 |
CD | 模块无对应引脚,表示有载波,无用 |
DSR | 模块无对应引脚,通知计算机,可以发信息过来,无用 |
/DTR或Sleep_RQ | D8,计算机或主控对模块的控制电平,低电平有效(默认),通知模块可进行传输,或是唤醒模块 |
/RTS | D6,计算机控制,表示请求发送,低电平有效(默认),高电平表示流控,不要再收了,模块默认不启用以防止缓冲溢出 |
*休眠时,在XCTU上对DTR/Sleep_RQ去掉勾选状态,即拉高该引脚,表示让模块进入休眠状态,此时CTS也会变高电平,说明在休眠中。
*RTS是主控的流控,不可长时间启用以防止接收数据没法发给主机,所以默认不对主控进行流控,而最多是对模块进行流控(CTS)。