[分享] SX1278 -数据包结构

Jacktang   2018-7-15 19:58 楼主
LoRa™ 调制解调器采用隐式和显式两种数据包格式。其中,显式数据包的报头较短,主要包含字节数、编码率及是否在数据包中使用循环冗余 (CRC)等信息,数据包格式见下图。
LoRa™ 的数据包包含以下三个组成部分:


前导码
可选报头
数据有效负载


360截图20180715200054898.jpg
前导码
     前导码用于保持接收机与输入的数据流同步。默认情况下,数据包含有12个符号长度的前导码。前导长度是一个可以通过编程来设置的变量,所以前导码的长度可以扩展。例如,在接收密集型应用中,为了缩短接收机占空比,可缩短前导码的长度。然而,前导码的最小允许长度就可以满足所有通讯需求。对于希望前导码是固定开销的情况,可以将前导码寄存器长度设置在6到65536之间来改变发送前导码长度,实际发送前导码的长度范围为6+4至65535+4个符号。这样几乎就可以发送任意长的前导码序列。接收机会定期执行前导码检测。因此,接收机的前导码长度应与发射机一致。如果前导码长
度为未知或可能会发生变化,应将接收机的前导码长度设置为最大值。
可选报头
      根据所选择的操作模式,可以选用两种报头。在RegModemConfig1寄存器上,通过设定ImplicitHeaderModeOn位选择报头类型。
显示报头模式
     显式报头模式是默认的操作模式。在这种模式下,报头包含有效负载的相关信息,包括以字节数表示的有效负载长度、前向纠错码率、是否打开可选的16位负载CRC。
报头按照最大纠错码(4/8)发送。另外,报头还包含自己的CRC,使接收机可以丢弃无效的报头。
隐式报文模式
     在特定情况下,如果有效负载长度、编码率及CRC为固定或已知,则比较有效的做法是通过调用隐式报头模式来缩短发送时间。这种情况下,需要手动设置无线链路两端的有效负载长度、错误编码率及CRC。
注意:如果将扩频因子SF设定为6,则只能使用隐式报头模式。
数据有效负载
      数据包有效负载是一个长度不固定的字段,而实际长度和纠错编码率CR则由显式模式下的报头指定或者由隐式模式下在寄存器的设置来决定。另外,还可以选择在有效负载中包含CRC码。
低数据速率优化
     由于扩频因子较高时数据包的发送时间可能较长,因此可以选择在数据包发送和接收期间提高传输对频率变化的鲁棒性。有效数据速率较低时,可通过LowDataRateOptimize位提高LoRa链路的鲁棒性。当单个符号传输时间超过16毫秒时,必须使用LowDataRateOptimize位。注意:发射机和接收机的LowDataRateOptimize位设置必须一致。

回复评论 (1)

我了解的NB 走电信平台 所有包结构都帮你处理好了 只要填数据 校验都不要
点赞  2018-7-16 13:27
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复