Lora空中唤醒的实现
2017-04-23 23:02
190 查看
月初接到空中唤醒功能项目,网上没有找到有关于LoRa空中唤醒功能。后面就只能在官方芯片的datasheet找,在进行多次调试,后面实现了满足客户的需求,现已在使用了。前段时间都比较忙,今天晚上在此就总结一下有关空中唤醒的经验。
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..................
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..................
相关文章推荐
- LORA 空中唤醒研究
- LoRa笔记03 LoRa sx1276 sx1278空中唤醒研究
- Android在标准linux基础上对休眠唤醒的实现(一)
- 从sys/power/state分析并实现S3C2416的睡眠和唤醒
- Android在标准linux基础上对休眠唤醒的实现(wakelock)
- LoRaWAN实战 中国470频段的代码实现
- Android在标准linux基础上对休眠唤醒的实现
- 空中下载技术的特点及其实现方式
- 笔记:linux中实现fiq模式(关于arm中断,唤醒中断)
- 根据Linux 线程挂起与唤醒原理,实现Sleep的暂停与继续
- linux中实现fiq模式(关于arm中断,唤醒中断)
- 线程的挂起与唤醒之实现app加载广告点击跳转功能
- WINCE6.0+S3C6410睡眠和唤醒的实现
- Android在标准linux基础上对休眠唤醒的实现(三)
- java定时同步类(可以实现挂起和唤醒,定时,同步于异步切换)
- 关于睡眠唤醒实现开机功能
- Android在标准linux基础上对休眠唤醒的实现(三)
- 网络唤醒的原理,及 实现 VC篇 ,网络唤醒源码
- Android在标准linux基础上对休眠唤醒的实现
- LoRaWAN之CLASS C 实现智慧停车