0 术语
0.1 概述
0.2 详细解释术语
0.2.0 码片、码元(符号)
0.2.1 扩频因子 SF
0.2.2 编码率 CR
0.2.3 信号带宽 BW
0.2.4 扩散功率 power
0.2.5 载波频率 RF Fre
0.2.6 符号速率 Rs
0.2.7 数据速率 DR
0.2.8
1 LoRa调制解调器原理
2 数据帧结构体
整个物理层的数据包,是根据LoRa调制设定的扩频因子SF完成CSS调制。 前导不需要编码 直接采用CSS调制 数据包头固定4/8编码 Payload和CRC的编码格式由包头的CR参数决定 包头和CRC可通过寄存器设置进行删除
2.1 前导 Preamble
前导部分分三部分:可变前导(variable preamble),帧同步字(Sync Word),帧起始分隔符(SFD:Start Frame Delimiter)
整个物理层的数据包,是根据LoRa调制设定的扩频因子SF完成CSS调制。 前导不需要编码 直接采用CSS调制 数据包头固定4/8编码 Payload和CRC的编码格式由包头的CR参数决定 包头和CRC可通过寄存器设置进行删除
2.1.1 可变前导 Variable Preamble
可变前导部分由4-65535个长度的up-chirp符号组成,主要提供信号检测、接收机增益设置频率和采样时间同步等功能
可变前导的数据长度由芯片的寄存器设置。例如芯片SX1278可以通过地址为0x20和0x21的RegPreamble寄存器进行具体长度设置
2.1.2 帧同步字 Sync Word
可变长度前导后,是两个符号宽度的帧同步字,可用来快速识别不同的lora网络,lora会丢弃帧同步内容与预设值不同的数据包
帧同步的护具可通过地址为0x39的RegSyncWord寄存器进行具体的设置
但具体可设置的内容尚未了解清楚
2.1.3 帧起始分隔符 Start Frame Delimiter
由2.25个符号宽度的标准down-chirp信号组成
2.2 数据包头 Header
帧数据包括两种Header数据包头,1:Explicit Header mode、2:Implicit Header mode;
1 包含头内容,而2不包含头内容
可通过地址为0x1D的RegModemConfig寄存器的bit0进行配置]
包头组成:payload长度、CR、CRC存在与否、CRC
2.2.1 Payload长度
Header中的第一个Byte用于表示整个数据包中,后续payload内容的长度,占了8个bit,因此一包LoRa数据最大内容为255Byte
以字节表示有效负载长度,寄存器需要隐式设置包头。
2.2.2 CR编码率选择
通过地址为0x1D的RegModemConfig寄存器的bit1-3设置
2.2.3 Payload CRC存在与否
可选择在payload末尾传输或不传输CRC,定义在包头长度接下来半个Byte中的一个bit,如果包中存在CRC,那么payload需要额外传输2个Byte的内容
可通过地址0x1C的bit6配置
2.2.4 包头CRC
包头数据的最后添加一字节的包头数据字段的CRC校验包括:数据包长度、CR、payload内容后是否存在CRC这12bit的内容的CRC校验
2.3 Payload
需要传输的数据,如果设置了CRC则需要在末尾添加两个字节的CRC校验CRC
3 LoRa计算发送的总码元数