如果说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
|
|