打印
[物联网]

Lora空中唤醒的实现(转)

[复制链接]
1798|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xiaoqizi|  楼主 | 2018-7-10 14:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

  LoRa最大的亮点就是长距离、低功耗。怎么最大的实现低功耗,就是冬眠睡觉。但是不能一直睡觉,要隔断时间醒来,看一下是否有事情,没事情的话继续睡觉,有事情要先处理完,在睡觉。那你在睡觉的时候,突然有人来找你,有事情等待你处理,但是你又在睡懒觉,等你醒来人家已经走了,你又不知道在你睡觉的时候有人来找过你处理事情。这样就错过了一些事情(丢包)。怎么处理这种情况,有一种办法就是preamble,在你睡觉的时候,一直发信息给你,告诉你有客人来,等你醒来后,看到信息就不睡觉了,开始接待客人,客人来了接待完继续睡觉,没有来等一段时间也继续睡觉。所以,这个preamble的时间就是要大于你睡觉的时间。直接粗暴的介绍了大概的思路,下面就介绍如何实现空中唤醒。

    空中唤醒功能:主要是在发送端设置足够的前导码,前导码的大小要根据接受端的睡眠时间来定。loRa在长时间进入睡眠,醒来后判断是否有数据,没数据就继续睡觉。有数据就处理数据,处理完继续睡。

Lora数据包结构包含三个部分:前导码、可选报头、数据有效负载。


我们看得到的摸得到的就只有Payload,其他部分就通过配置寄存器去配置了。配置完,lora底层的通信自动去校验。

空中唤醒功能实现的相关配置:

Preamble前导码寄存器地址 0x20,0x21

应用到的公式:

Rs为速率,BW为带宽,SF表示扩频因子

Ts为发一个symbol的时间,Rs为速率


Tpreamble发送前导码所需的总时间,npreamble表示已设定的前导码长度大小,Tsym为发每个preamble symbol的时间。

至于怎么检查前导码这个就要用CAD检测,用到CAD检测这个就要用到

            

实现注意点:

在实现CAD检测的时候要一定要根据官方的流程图,少走一些弯路。

前导码大于接受端睡眠时间长度。

前导码的接受端长度与前导码的发生端长度要配置好,接收端的前导码长度要大于等于发生端的前导码。(非常重要)前导码大小设置要根据项目希求来,太大时效太差。

中断标志位记得清零。

end..................


相关帖子

沙发
paotangsan| | 2018-7-11 08:41 | 只看该作者
长距离和低功耗的具体数值是多少呢

使用特权

评论回复
板凳
xiaoqizi|  楼主 | 2018-7-11 14:22 | 只看该作者
这个我美欧查过

使用特权

评论回复
地板
577470826| | 2018-8-9 16:18 | 只看该作者
paotangsan 发表于 2018-7-11 08:41
长距离和低功耗的具体数值是多少呢

空旷的地方测试大概距离为4.2公里,低功耗的话睡眠电流大概300na(单芯片lora模组),TX的电流在SF12 20DBM下为110ma左右,待机电流为1.9ma

使用特权

评论回复
5
577470826| | 2018-8-9 16:19 | 只看该作者
577470826 发表于 2018-8-9 16:18
空旷的地方测试大概距离为4.2公里,低功耗的话睡眠电流大概300na(单芯片lora模组),TX的电流在SF12 20DBM ...

rx电流为11.5左右,以上为实测数据

使用特权

评论回复
6
晓伍| | 2018-8-10 12:02 | 只看该作者
577470826 发表于 2018-8-9 16:18
空旷的地方测试大概距离为4.2公里,低功耗的话睡眠电流大概300na(单芯片lora模组),TX的电流在SF12 20DBM ...

大拿啊 感谢回答

使用特权

评论回复
7
paotangsan| | 2018-8-10 12:54 | 只看该作者
577470826 发表于 2018-8-9 16:19
rx电流为11.5左右,以上为实测数据

哦  非常感谢解答啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

95

主题

4129

帖子

3

粉丝