休眠后gpio状态_浅谈Digi XBee模块的休眠模式

浅谈Digi XBee模块的休眠模式

2020-3-25

Digi XBee S2C模块,如果仅连接电源线可以测得,在待机情况下,大约是10.5mA左右的电流,在休眠时的功耗可以低到0.5uA。可以知道,休眠几乎不耗电。在Spec上标的待机功耗会比实测只接电源线耗电更高,这时因为实际应用中我们还常接上UART等IO引脚。实际上,终级的低功耗控制往往也和通信引脚和控制引脚(比如休眠使能线)密切相关,不同的CPU串口功耗也不尽相同。一般说来,CMOS的UART省电些,TTL的耗电些。此外Digi模块内部有上拉电阻(29K),除非为了电平转换,否则没必要在通信线上再加上拉电阻,以免并联后消耗更多静态电流。对于一些CPU本身串口比较耗电,则应在通信线上加电压型的隔离器,以尽可能减少功耗,GPIO控制线如果不需要请不要接上拉或是用管子隔离,以减少引脚休眠线的电流。

XBee ZB支持三种休眠模式:

  • 引脚休眠 (SM = 1);

  • 周期休眠 (SM = 4);

  • 周期休眠加引脚唤醒 (SM = 5)。

一个ZigBee的休眠节点在醒来后马上和醒来时每隔100ms去向父节点索取缓存的数据包(这个过程我们称为polling)。

当休眠节点进入睡眠模式时:

  • On/Sleep拉低(de-asserted)以宣示模块进入睡眠模式;

  • 如果CTS硬件流控被启用,CTS拉高(de-asserted)来提示串口数据不该再送往模块;

  • 如果入网指示Associate引脚被配置使用,它将被拉低以防止电源用于点亮联网提示灯;

  • 如果用到引脚唤醒,睡眠请求引脚Sleep_RQ(D8)被配置为下拉输入口以便外部设备可以拉高来使模块休眠(仅用于 SM = 1 或 SM =5);

  • 其它引脚则不会有任何变化,以便按用户配置方式应用。

当XBee模块从睡眠中醒来:

  • On/Sleep引脚被拉高以宣示模块醒来;

  • 如果CTS流控被启用,CTS引脚拉低表示模块准备好接收串口数据;

  • 如果入网指示Associate引脚被配置使用,它拉高继续之前的预配置行为;

  • 其它引脚则不会有任何变化,以便按用户配置方式应用。

休眠指令:

命令

描述

参数范围

默认值

SM

Sleep mode:

0-不休眠;

1-管教休眠;通过SLEEP_SQ管脚来控制模块的休眠/唤醒状态SLEEP_SQ Line。

4-异步周期休眠;

5-异步周期休眠;

6-7-休眠支持模式;

7-8-同步周期休眠模式

SO

Sleep option休眠选型

对于同步休眠模式:

Bit0=首选休眠协调器;

Bit1=非休眠协调器;

Bit2=使能API休眠状态消息;

Bit3=关闭提早唤醒;

Bit4=开启节点类型平等;

Bit5=关闭单独协调器同步重发;

对于异步休眠节点:

Bit8=总是在ST时间内唤醒。

SN

Number of sleep periods休眠周期数

1~0xFFFF

1

SP

Sleep period休眠周期

此命令定义了每个轮换周期内模块休眠的时间。

1~1440000

2s

ST

Wake time唤醒时间

0x45~0x36EE80

0xD0(2s)

WH

Wake host唤醒主机

0~0xFFFF

0

休眠诊断命令:

SS

Sleep status休眠状态:

bit0:

Bit1:

Bit2:

Bit3:

Bit4:

Bit5:

Bit6:

只读

0x40

OS

Operational sleep period运行的休眠周期

只读

0x12C

OW

Operational wake period运行的唤醒周期

只读

0

MS

Number of missed syncs丢失同步数

只读

0

和休眠相关的IO设置命令:

D8

DIO8/SLEEP_RQ配置:

0=输入,不监测;

1=休眠请求;

3=数字输入,监测;

4=数字输出低;

5=数字输出高。

D9

DIO9配置:

0=输入,不监测;

1=ON/SLEEP;

3=数字输入,监测;

4=数字输出低;

5=数字输出高。

周期休眠的参数

参数

名称

默认值

描述

SP

休眠周期

0x20,即320ms

模块的休眠周期

SN

休眠周期数量

配置SP的倍数以扩展休眠时间

ST

醒来时间

定义醒着时,在结束数据收发后保持醒着的时间

SO

休眠选项

定义休眠模式行为的选项: 0x02 不管有无数据总是醒ST;0x04 启用扩展休眠 SN*SP

* commissioning按键会唤醒设备30s * 模块醒来后先poll数据,除非用SO强制它总是醒一定时间,否则无活动会立即休眠,ST实际上是数据活动结束后的计时器,在计时期间有数据会重置这个计时器。 

关于睡眠的几个常见问题:

1、xbee 短睡眠周期(SP)是多少?

SP的范围值是320毫秒到28秒。

2、xbee 最长睡眠周期是多少?

SP最大可设置28s,加上扩展休眠的设置,最长一次休眠可达21天左右,计算如下:T=SN*SP=FFFF*AF0*10MS=65535*2800*10=1,834,980,000毫秒=1834980秒=509.7小时=21.2天。

3、xbee 引脚休眠相关的管脚是什么状态?

Sleep_RQ(pin9 置高),CTS(pin12 置高),On/Sleep(pin13置低)指示模块处于休眠状态。

4、xbee唤醒期间多长时间轮询一次父节点?

digi 的xbee从休眠到唤醒后,每100毫秒轮询一次父节点,轮询一次要用10毫秒。

5、如何让Xbee模块快速进入休眠模式?

Xbee 模块在接收完数据后,发送SI这个指令,进入休眠,节约功耗。

6、Digi ZB引脚休眠切换到唤醒发数据要多长时间?

ZB引脚休眠的时候,从休眠到唤醒发送数据,要有一个时间的过程。就是有的客户反映的是:发送数据慢。

测试结果一:5秒

测试条件:

协调器:VERSION =2164;SC=4;PANID=1234;AR=0

节点:VERSION=2864;SC=4;PANID=1234;SM=1

软件:X-CTU; 秒表

测试结果二:10秒

协调器:VERSION =2164 缺省值

节点:VERSION=2864;SM=1

软件:X-CTU; 秒表

测试方法一:

1.   按上述条件,配置好两个模块的参数,并且能正常通讯。

2.   节点这端,从Modem Configuration 切换到Terminal,并敲字符”a” ,同时秒表开始计时。

3.   协调器这端,始终在Terminal这栏内,等待接收字符

4.   等协调器这端收到字符,立即停止秒表,就是这次测试从休眠到唤醒后能发数据的时间。

测试方法二:

利用JN=1,节点切换到唤醒,协调器收到节点上电通知。

用XCTU来测试休眠行为:

XCTU上的终端窗口有部分9针串口引脚电平指示和引脚电平控制,只是许多人不知道这个特性。 

指示电平用深色背景时表示低电平,控制电平当选中时表示启用。当然模块也不是并不是默认有对应的引脚或是有把GPIO往串口对应信号去接。毕竟这些信号是有些类型的调制解调器和计算机通信时用的。

电平

说明

/CTS

D7,由模块控制的指示电平,低电平有效,默认为低电平,表示通知电脑要送数据,休眠变高平,流控时变高电平

CD

模块无对应引脚,表示有载波,无用

DSR

模块无对应引脚,通知计算机,可以发信息过来,无用

/DTR或

Sleep_RQ

D8,计算机或主控对模块的控制电平,低电平有效(默认),通知模块可进行传输,或是唤醒模块

/RTS

D6,计算机控制,表示请求发送,低电平有效(默认),高电平表示流控,不要再收了,模块默认不启用以防止缓冲溢出

*休眠时,在XCTU上对DTR/Sleep_RQ去掉勾选状态,即拉高该引脚,表示让模块进入休眠状态,此时CTS也会变高电平,说明在休眠中。

*RTS是主控的流控,不可长时间启用以防止接收数据没法发给主机,所以默认不对主控进行流控,而最多是对模块进行流控(CTS)。

149ec369c687438a34996cb37901ed08.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/534507.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

xodo上的笔记不见了_一起来“终极笔记名场面批发市场”进货吗

俗话说得好,谁都逃不过“真香定律”,三天不见小笔记,想他。不对,不应该叫小笔记,应该叫粉丝起的名字——“【瓶邪黑花】《终极笔记》(原著风/连载)”下面请接受来自粉丝的疯狂打call~自上周《终极笔记》播出&#xff0…

python3学习笔记 雨痕_Python 3 学习笔记:数字和布尔

数字基本类型整数在 Python 编程中,整数就是数学意义上的整数,包括正整数、负整数和零,且它的位数是任意的。根据表示方法的不同,可以分为:二进制整数八进制整数十进制整数十六进制整数浮点数浮点数,即数学…

不越狱换壁纸_那些不舍得换的手机插画壁纸,你还差几张?

酷爱收藏美作的微课菌可以大展拳脚了!分享3位自己收藏的画师作品,绝对每一张都让你舍不得换,手机可以扔,壁纸得先拷贝存起来!开始吧!!多图预警!NO.1:Atey Ghailan&#x…

程序员绩效总结_年终总结怎么写?

每年这时候,都有必要写一下一年的个人工作总结。年终总结或工作总结是个挺重要的事。写好的话,有助于说明自己的工作绩效,绩效好可以多拿年终奖,还有机会争取晋升。另外,一年下来的个人生活也需要总结,这一…

线程停止继续_线程不是你想中断就能中断

这是我2021年的第2篇原创文章,原汁原味的技术之路尽在Jerrycodes为什么不强制停止如何用 interrupt 停止线程sleep 期间能否感受到中断停止线程的方式有几种总结启动线程需要调用 Thread 类的 start() 方法,并在 run() 方法中定义需要执行的任务。启动一…

倒序查10条数据_10 | 怎么给字符串字段加索引?

现在,几乎所有的系统都支持邮箱登录,如何在邮箱这样的字段上建立合理的索引,是我们今天要讨论的问题。假设,你现在维护一个支持邮箱登录的系统,用户表是这么定义的:mysql> create table SUser( ID bigin…

保留小数点后三位_【Meta分析】Stata制作森林图时,如何保留三位小数?

系统评价/Meta分析指全面收集所有相关研究并逐个进行严格评价和分析,再用定性或定量合成的方法对资料进行处理得出综合结论的研究方法。在指导学员的过程中发现初学者在学习过程中常常会碰到许多共性问题,本公众号特此开设专栏解答,希望能够和…

Redis小计(2)

目录 1.exists命令 2.del命令 3.expire/pexpire命令 4.ttl命令 5.redis对于key过期的删除策略 1.exists命令 exists X1 X2 X3 X4:返回四个key存在的个数。 2.del命令 del X1 X2:删除key。 3.expire/pexpire命令 给key设置超时时间。 expire key…

一秒执行一次_《一秒钟》:一贯的粗旷式抓大放小,张艺谋的自命题作业总是要观众自己再做一遍...

还有不变的永远在奔跑的大棉裤花棉袄的圆脸妮子,这是导演张艺谋最新作品《一秒钟》的最直接观感。张艺谋是个善于从普世情怀处挖掘题材的导演。之前诸多现实题材类型作品,诸如讲父子和解的《千里走单骑》、夫妻爱情的《归来》以及《我的父亲母亲》&#…

unity 畸变_unity3d 几种镜头畸变

1.Fisheye distortion 鱼眼镜头解释来自百度百科:鱼眼镜头是一种焦距为16mm或更短的并且视角接近或等于180。 它是一种极端的广角镜头,“鱼眼镜头”是它的俗称。为使镜头达到最大的摄影视角,这种摄影镜头的前镜片直径很短且呈抛物状向镜头前…

mysql 5.5.18下载_MySQL5.7.18下载和安装过程图文详解

MySql下载1、打开官网找到下载路口,这里直接给出下载的地址2、选择64位版本3、直接下载MySql5.7.18.1安装过程1 、运行安装软件,接受协议2、选择默认安装3、下一步到检查环境界面,点击“Execute”执行检查 (可以后面单独下载插件安装)&…

mysql数据库sql注入原理_SQL注入原理解析以及举例1

sql注入是指web应用程序对用户输入数据的合法性没有判断,导致攻击者可以构造不同的sql语句来实现对数据库的操作。sql注入漏洞产生满足条件:1;用户能够控制数据的输入。2;原本需要执行的代码,拼接了用户的输入。举例&a…

mysql存储map数据结构_map数据结构

Go map实现原理 - 恋恋美食的个人空间 - OSCHINA - 中文开源技术交流社区 https://my.oschina.net/renhc/blog/2208417// A header for a Go map.type hmap struct {// Note: the format of the hmap is also encoded in cmd/compile/internal/gc/reflect.go.// Make sure this…

四因素三水平正交表_做论文要用正交表?我打包送给你

正交试验目前在国内的应用量仍然是比较高的,许多高校毕业生喜欢利用正交试验来获取研究数据,最终完成毕业论文的撰写或者期刊投稿。正交试验方案的设计,必然要用到(标准)正交表。那么大家都是从哪里获取正交表的呢?小兵给这方面的…

plsql视图添加表字段_Oracle-单表多字段查询(不使用*)

环境:Oracle 11g,plsql 14目的:不使用*,查询拥有上百个字段的表的所有字段。懒人大法:在文章末尾。sql实现逻辑:1、首先建一张100个字段以上的表,通过excel的方式将表建好后直接复制粘贴到plsql的建表界面。…

lableimg闪退_CV学习笔记(二十五):数据集标注与制作

最近在做一些数据标注的工作,虽然标注数据比较枯燥,但这也是每个做算法的工程师升级打怪的必由之路。使用一些合适的工具往往可以事半功倍,效率UP。一:数据标注流程二:数据处理的一些小代码1:重命名当得到这…

java线程堆栈_深入JVM剖析Java的线程堆栈

在这篇文章里我将教会你如何分析JVM的线程堆栈以及如何从堆栈信息中找出问题的根因。在我看来线程堆栈分析技术是Java EE产品支持工程师所必须掌握的一门技术。在线程堆栈中存储的信息,通常远超出你的想象,我们可以在工作中善加利用这些信息。我的目标是…

java文件 linux_Linux执行Java文件

最近学习shell脚本,写个简单java类让linux去执行java类没别的东西,就引了一个fastjson的jar,写了个main方法 序列化一个User对象 打印package com.lws.demo;import java.util.Date;import com.alibaba.fastjson.JSONObject;import com.lws.mo…

java 刽子手游戏_java基础(九):容器

集合的引入List (ArrayList LinkedList)Set (HashSet LinkedHashSet TreeSet )Map (HashMap LinkedHashMap TreeMap)CollectionsIterator使用泛型1.为什么使用集合而不是数组?集合和数组相似点都可以存储多个对象,对外作为一个整体存在数组的缺点长度必须…

java异常处理方式推荐做法_谈谈Java异常处理这件事儿

此文已由作者谢蕾授权网易云社区发布。欢迎访问网易云社区,了解更多网易技术产品运营经验。前言我们对于“异常处理”这个词并不陌生,众多框架和库在异常处理方面都提供了便利,但是对于何种处理才是最佳实践,也是众说纷纭。异常处…