LoRaWAN介绍13 SX1301
“要以坦克为核心组织部队,而不是以步兵为核心。”--古德里安
如果说LoRaWAN是闪电战,那么SX1301就是坦克,前者是建立在后者的基础上。SX1301是基于LoRa调制的基带芯片,它的目标是为广域范围的众多无线节点提供健壮的星型基站。
SX1301有一些关键的技术特征:高达-142.5dBm的接收灵敏度、49个LoRa“虚拟”通道和ADR技术。
1 整体结构
如下图所示,SX1301一般外接2片SX1257(或SX1255)。SX125x是射频前端芯片,它负责将I/Q(In-phase / Quadrature,同相正交数字信号)转换成无线电模拟信号。
仔细查看SX1301的结构图,它是由2个MCU和ASIC(ApplicationSpecific Integrated Circuit,专用集成电路)的综合体。主要部件包括:
射频MCU:该MCU通过SPI总线连接2片SX125x,主要负责实时自动增益控制、射频校准和收发切换。
数据包MCU:该MCU负责分配8个LoRa调制解调器给多个通道,它仲裁数据包的机制包括速率、通道、射频和信号强度。
IF0~IF7的LoRa通道:它们的带宽固定为125kHz,每个通道可以设置中心频率,每个通道可以接收SF7~SF12共6种速率的LoRa信号。
IF8通道:带宽支持125 / 250 / 500kHz,希望用于网关之间的高速通信。
IF9通道:收发(G)FSK信号,LoRaWAN在欧洲地区使用了该通道。
2 实现ADR技术
ADR(Adaptive Data Rate,速率自适应)是LoRaWAN核心优势,它的原理是:依赖End Nodes和Gateway的距离,越近,End Nodes将采用高速率;越远,End Nodes将采用低速率。
其实,ADR是SX1301的“贡献”。
如下图所示,SX1301的IF0~IF7的8通道,它们设置了8个中心频率,但每一个通道都能接收SF7~SF12共6种速率的LoRa信号。这样一来,一个End Node可以根据信号强度,自由选择SF(即速率)来发送数据。
它至少具备3个优势:
End Node可以切换到8个频率中任意一种,有效降低同频干扰;
End Node可以使用6种速率中任意一种,Gateway不用记录它的速率,简单化;
Gateway可以实现天线分集,有效改善移动End Node的多径衰退;
特别注意:8个通道最多同时解调8个LoRa数据包,因为“前导码搜索引擎”和“解调引擎”是分离的,同时解调引擎为8个单元。
3 多通道频谱
2片SX125x和共10个通道,都可以灵活配置频率。一起看上图的实例:
射频前端A配置中心频率=867.0MHz
射频前端B配置中心频率=868.4MHz
10通道频率配置如下表所示
通道 |
频率 |
射频前端 |
频偏 |
属性 |
IF1 |
866.875MHz |
A |
-125kHz |
固定速率LoRa |
IF2 |
868.400MHz |
B |
0kHz |
64kbps的GFSK |
IF3 |
866.6875MHz |
A |
-312.5kHz |
6速率LoRa通道 |
IF4 |
867.0625MHz |
A |
62.5kHz |
6速率LoRa通道 |
IF5 |
867.1875MHz |
A |
187.5kHz |
6速率LoRa通道 |
IF6 |
867.3125MHz |
A |
312.5kHz |
6速率LoRa通道 |
IF7 |
868.0875MHz |
B |
-312.5kHz |
6速率LoRa通道 |
IF8 |
868.2125MHz |
B |
-187.5kHz |
6速率LoRa通道 |
IF9 |
868.5875MHz |
B |
187.5kHz |
6速率LoRa通道 |
IF10 |
868.7125MHz |
B |
312.5kHz |
6速率LoRa通道 |
4 控制接口
SX1301依赖microcode(微代码)来运行,上电后MCU负责发送microcode给SX1301,semtech提供该microcode的二进制文件。MCU和SX1301的通信总线是SPI。
考虑多种射频通道和收发设备(如:SX1257或SX1255)和不同的硬件实现方式(如:1个SX1301或8个SX1301),为简化设计和方便移植,组织了HAL(Hardware AbstractionLayer,硬件抽象层)接口。
数据结构 |
调用函数 |
参数定义 |
lgw_conf_rxrf_s | lgw_rxrf_setconf() | 设置SX125x的中心频率和开启/停止 |
lgw_conf_rxif_s | lgw_rxif_setconf() | 设置IF通道中心频率,射频芯片等参数 |
lgw_pkt_rx_s | lgw_receive() | 接收数据包的有效数据和元数据 |
lgw_pkt_tx_s | lgw_send() | 发送数据包的有效数据和射频参数 |
函数 |
功能 |
定义 |
lgw_rxrf_setconf() | 配置射频参数 | 按用户要求设置SX125x的射频参数 |
lgw_rxif_setconf() | 按用户要求设置IF调制解调器参数 | |
lgw_start() | 硬件管理 | 启动SX1301 |
lgw_stop() | 停止SX1301,节能或重新配置 | |
lgw_receive() | 收发数据包 | 从RX FIFO提取接收数据包 |
lgw_send() | 通过指定IF通道,发送一个数据包 |
5 电气与资源
项目 |
最小值 |
典型值 |
最大值 |
单位 |
供电电压 |
3.0 |
/ |
3.6 |
V |
工作温度 |
-40 |
/ |
85 |
℃ |
全速功耗 |
/ |
990 |
1350 |
mW |
SPI时钟速率 |
/ |
/ |
10 |
MHz |
射频晶振频率 |
/ |
32 |
/ |
MHz |
射频晶振精度 |
-10 |
/ |
+10 |
ppm |
高速处理晶振 |
130 |
133 |
150 |
MHz |
您的留言或需求: