内容是原创的,未经本人同意,请勿转载。 联系方式:建墅_旧鞋@126.com
1 ) LoRa LoRaWAN是局域网(Lora广域网)的简称,是基于Lora技术的通信协议。 主要由三个级别的通信实体组成: LoRa终端、LoRa网关和LoRa服务。
遵循低无线共享局域网(IEEE 802.115.4-2011 )协议
2,名词分析http://www.Sina.com/maccommonpartsublayer
作用:数据传输smissionsanddatareceptions
33558 www.Sina.com/maclayermanagemententity
角色: manage the LoRaWAN network
33558 www.Sina.com/macinformationbase
作用: storeimportantruntimeinformationandholdstheconfigurationoftheloramaclayer。
MCPSLoRa扩频调制技术使用多个信息芯片来表示有效载荷信息的各个比特。 扩频信息发送速度
接下来称为符号率(Rs ),码片速率与标称符号率的比率是扩展系数,其
个信息比特发送的符号数。 LoRaTM调制解调器中扩散系数的可取范围请参照下表。MLME
MIB增加带宽可以提高有效数据速率并缩短传输时间,但会牺牲接收灵敏度。
扩频因子(SF)提高纠错编码率会产生额外的传输开销,但会提高链路的可靠性。 编码率可以根据信道条件的变化而变化。
对于特定的APP应用,可以通过调整扩频因子为6时,LoRa的数据传输速率最快这三个重要参数来平衡链路预算、抗干扰能力、频谱占用和标称数据率。
参考手册中的“LoRa调制技术”进行优化。 第《SX1276_DS_中文_v1.1.pdf》 P28页
3358 www.Sina.com/channelactivedetect通道活动检测器。
信道活动检测模式的目的是以尽可能高的功耗检测无线信道上的LoRa前导符。
CAD检查时间是扩散因子的函数
扩频调制带宽(BW)Class A B C介绍
类a
双向通信终端装置。 这种类型的终端设备可以双向通信,每个终端设备的上行链路传输都带有两个下行链路接收窗口。 终端装置的传输时隙基于自身的通信需求,其微调整基于随机的时间基准(ALOHA协议)。 a所属的终端设备在APP应用时的消耗功率最低,一旦终端发送上行发送信号,服务器就能够立即进行下行通信,服务器的下行通信必须在上行通信之后。
类b
具有默认接收时隙的双向通信终端设备。 这样的终端装置在预先设定的时间开放多余的接收窗口。 为了实现此目的,终端设备从网关同步接收纠错码率,并在Beacon上同步基站和模块的时间。 由此,服务器可以知道终端装置正在接收数据。
克拉斯c
具有最大接收时隙的双向通信终端设备。 这种终端装置持续打开接收窗口,仅在传输时关闭。
33558 www.Sina.com/adaptive datarate
whenadrisoffthissettingisthefixeddataratethatwillbeusedbytheapplication。
whenadrisonthissettingistheinitialdatarateusedbytheapplication。
打开ADR后,服务器可以通过MAC命令控制设备的速度,以匹配当前的网络状况并获得最佳的传输效果。 如果ADR=0,则服务器忽略所接收的信号质量,不调整终端的数据速率。
如果终端的数据速率由服务优化并大于默认值,则节点必须定期确保服务能够接收上载的数据。 终端的上行帧号码每增加1次(即使重发帧号码也不增加),同时ADR_ACK_CNT 1)。 在ADR_ACK_DELAY时间内收到了下行消息。 ADR_ACK_CNT=0(复位)。 否则,ADR_ACK_CNT将继续按照前面的规则处理。扩频因子,调制带宽以及纠错码率上(无线广播范围距离长) )重复上述过程,每次终端设备达到ADR_A时
CK_LIMIT 就会再次降低自己的数据速率。如果设备使用默认的数据速率就不需要设置 ADRACK Req ,这种情况下任何操作都不会改善连接范围(增加连接距离)。在此期间的下行数据不需设置ACK位,因为终端在等待接收期间收到任何应答都表示网关还能接收来自该设备的上行数据。问题:如果终端和服务器的速率不匹配,那能否进行通信??
ALOHA
class A中用的传输间隔计算算法
向MLME发送建立连接请求,等待应答
请求包含以下信息:
符号速率: R s = B W 2 S F R_s=frac{BW}{2^{SF}} Rs=2SFBW
BW 带宽
SF 扩因子
传输时间: T s = 1 R s T_s=frac 1 R_s Ts=R1s
前导码传输时间: T p r e a m p l e = ( n p r e a m p l e + 4.25 ) T s y m T_{preample} = (n_{preample}+4.25)T_{sym} Tpreample=(npreample+4.25)Tsym
n p r e a m p l e n_{preample} npreample表示前导码长度
communication between end-devices and gateways is spread out different frequency and data rates
ALOHA算法是什么?如果终端和服务器的速率不匹配,那能否进行通信??什么时候使用跳频(FHSS)单个包传输时间可能超过相关法规允许的最大传输时间,就需要跳频。433MHZ,没有跳频
// Duty cycle#if defined( USE_BAND_433 ) DutyCycleOn = false;#elif defined( USE_BAND_780 ) DutyCycleOn = false;#elif defined( USE_BAND_868 ) DutyCycleOn = true;#elif defined( USE_BAND_915 ) || defined( USE_BAND_915_HYBRID ) DutyCycleOn = false;#else #error "Please define a frequency band in the compiler options."#endif 5,协议重点 单一接收模式,只有在数据包到达时间窗口已知的情况下才使用是不是就说,如果接收窗口被设置过小,还没来得及全部接收完成就产生RxDone中断了??
支持软件设置有效数负载的前几个字节过滤,如果被成功过滤,那么芯片将切换回睡眠模式。 6,顶级定续器 (监听模式)定时唤醒,电路大部分时间处于空闲模式,即仅开启RC振荡器。定时唤醒后寻找输入信号,如果检测到有效信号则保持开启状态,并对数据进行分析。相反,则会关闭,直到下个周期唤醒
T1 空闲模式
T2 接收模式
为了最大限度的降低功耗,T2必须能够刚好满足检测前导码的要求
为确保数据包检测顺利并最大限度降低接收机功耗,接收到的数据包前导码长度应为 T 定时器
1 +2xT 定时器 2 。
接收间隔设置的时间设置的比较长,有可能导致数据收不到,因为从实测结果看,就是定时检查寻导码。如果不是正好接收的时候发送,就可能收不到。
9,基于STM8的lora透传代码代码经过测试,可以实现透传。索要代码请联系博主本人
8,参考文献中文规格书连接
Firmware Driver V3.3 and LoRaWAN Stack
LoRa标准以及代码解读
LoRa代码
各种mesh网络性能比较
Wave Mesh网络比较靠谱
LoRa全面解析–推荐阅读
OpenLoRa–协议和应用
LoRaWan协议中文版
lora比特率计算方法