LoRa码元、码片、信号带宽、编码率等解析

欧侃RF/无线 2023-12-20 09:53:11 5863阅读 举报

0 术语

0.1 概述


0.2 详细解释术语

0.2.0 码片、码元(符号)

1.码片 Chip
每2^SF个码元(Symbol)组合成一个码片(Chip)

2.码元 Symbol
码元 = 符号
发送信号将调制带宽BW划分为2^SF个频率的码元(Symbol),一个码元承载SF个bit

3.码片速率
单位:Hz
LoRa调制逻辑上是恒定包络,等效与每1HZ带宽上每秒发送一个码片,所以码片速率等于BW
BW = 125kHz
码片速率 = 125000 (chips/s)

4.码元速率 Rs
单位:bps
Rs = BW/(2^SF)

0.2.1 扩频因子 SF

有1bit需要传输,数据为a,扩频因子为6时,需要发送aaaaaa,数据量变大了6倍,降低了信噪比,但传输的数据速率就越小

编码率是数据流中有用部分的比例,编码率是k/n 则对每k位有用信息,编码器总共产生n位数据,其中n-k是多余的
开销:

0.2.2 编码率 CR

例如配置为CR=1,SF=7,有效数据比特流为00000001 00100011 01000101 01100111。
按4bit,一组 0000 0001 0010 0011 0100 0101 0110 0111
在每组后加1bit 00000 00011 00101 00110 01001 01010 01100 01111

0.2.3 信号带宽 BW

信号带宽是限定允许通过该信道的信号下限频率和上限频率,可以理解为一个频率通带。
如果一个信道允许的通带为1.5kHz至15kHz,则其带宽为13.5kHz

在LoRa中,增加信号带宽,可以提高有效数据速率以及缩短传输时间,但是以牺牲部分接收灵敏度为代价

0.2.4 扩散功率 power

0.2.5 载波频率 RF Fre

0.2.6 符号速率 Rs

即码元速率:
Rs = BW / (2^SF)

例如:BW = 125kHz SF=7
Rs = 125000 / 128 = 976.5625 bps

0.2.7 数据速率 DR

DR = SF*(BW/2^SF)*CR

例如:BW = 125kHz CR = 4/5 SF = 7

DR = 7 * (125000 / 128) * 4/5 = 5.46875 kbps

0.2.8

1 LoRa调制解调器原理

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计算发送的总码元数






版权声明:
作者:欧侃
链接:https://www.dianziwang.net/p/20e69cb5f732dd.html
来源:RF/无线
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以点击 “举报”


登录 后发表评论
0条评论
还没有人评论过~