<p>Semtech并没有开发LoRa物理层技术细节,只能从找到的一些文档及semtech产品的datasheet中找到一些相关信息。LoRa用于物联网无线传输的通信技术,LoRA设计用于低功耗,低速率,远距离传输,LoRa的速率范围从0.3kbps到50kbps,ADR(adaptive data rate)调度算法可以根据环境条件修改数据速率及发射功率。</p>
<p><strong>物理技术</strong><br />
LoRa使用扩频技术来发送数据,可有效对抗多普勒频移,不同直扩序列DSSS,而是使用啁啾扩频CSS(Chirp spreatrum Spread Spectrum)技术进行数据发送。调制模式可选为GFSK或是OOK(On-Off Keying),OOK又名而进制控幅键控ASK,0、1通过幅度来体现;FSK频移键控控制,同步不同频率来区分0和1,而GFSK是在FSK之前通过一个高斯滤波器来限制信号的频谱密度。CSS与DSSS的解扩原理也有相似之处,DSSS是通过PN序列扩频的,DSSS比较好理解,PN序列自相关性很强,而远大于互相关性,CSS通过匹配滤波一定程度也可以看做自相关性。在工作频率方面,LoRa使用未授权免费的公共ISM频率,终端使用伪随机接入方式来减少设备间的相关干扰,而LoRa中亦引入跳频发送技术。</p>
<p><strong>物理帧结构</strong><br />
找到两个物理层帧结构说明,两个有些类似。前一个是反解LoRa信号的文档说明中找到的,另个是semtech 1272 datasheet 参考SX1272_settings_for_LoRaWAN_v2.0.pdf上的说明。</p>
<img alt="物理帧结构" data-align="center" data-entity-type="file" data-entity-uuid="01edf208-9a62-4eca-a006-7106c7c15765" height="131" src="/sites/default/files/inline-images/%E5%9B%BE1%EF%BC%9A%E7%89%A9%E7%90%86%E5%B8%A7%E7%BB%93%E6%9E%84.png" width="726" />
<p>参考SX1272的datasheet</p>
<img alt="图中的CR为码率code rate,CRC循环冗余校验" data-align="center" data-entity-type="file" data-entity-uuid="2b75d876-a8b0-4563-b8d2-40e8305e038c" height="356" src="/sites/default/files/inline-images/%E5%9B%BE2%EF%BC%9Adatasheet.png" width="685" />
<p>注:图中的CR为码率code rate,CRC循环冗余校验</p>
<p><strong>可配参数</strong><br />
可定制的参数包括:BandWidth/频点频宽、Spreading Factor(SF,扩频)和Code Rate(CR),这些参数设置能够影响LoRa的发送速率,影响解码的灵敏度等,简单讲增加带宽会降低灵敏度,而增加扩频因子SF则可增加灵敏度。。CR(Code Rate)可以设置为4/(4+n) n为1、2、3、4中的某一个值。</p>
<p>Symbol的时间长度: Ts = 2^SF/BW</p>
<p>比特速率为:Rb=SF*(BW/2^SF)*CR</p>
<p>需要发送的符号数目计算公式如下:</p>
<img alt="需要发送的符号数目计算公式" data-align="center" data-entity-type="file" data-entity-uuid="23207c74-c78c-4c17-8c8f-aa97ead2ac05" height="70" src="/sites/default/files/inline-images/%E5%9B%BE3%EF%BC%9A%E9%9C%80%E8%A6%81%E5%8F%91%E9%80%81%E7%9A%84%E7%AC%A6%E5%8F%B7%E6%95%B0%E7%9B%AE%E8%AE%A1%E7%AE%97%E5%85%AC%E5%BC%8F.png" width="591" />
<p>可以看到最短为8个symbols,其中PL为payload长度,单位为字节,CRC存在时为16,否则CRC为0,SF为扩频码长度,如果存在Header则H为20,DE在低数据速率优化情况下为2,否则为0.</p>
<p>在SX1272文档中提供的寄存器信息:可以配置Preamble字节数为16比特,SyncSizewei 3个比特,SynOn使能位1个,Preamble的Polarity等等,SYNC word的数值可以配置,另外可以配置8个byte的PayloadMaxLength,可以配置codeRate CR、CRC选择、Syncword选择、BW(bandwidth)、SF、Modulation等等。</p>
<p>preamble是常数序列,其后为sync word,一个字节用于区分同频的不同LoRa网络,需要与配置相同网络数据才进行接收。Header是可选的,码率固定为4/8,内容含有一个字节指示的为载荷字节长度,同时指示是否有一个长度16的CRC,以及发送数据的码率CodeRate。Header本身带有CRC可以用来检查Header本身是否正确,而在知道长度、CRC、码率CR的情况下,Header是可以省略掉的。</p>
<p>文章转载自:<a href="https://blog.csdn.net/DreamBitByBit/article/details/79889384">CSDN</a><…;