说明
产品简介
RP2040-LoRa 是使用新一代 SX1262 射频芯片的 LoRa 开发板,在功耗传输距离电源效率等性能上比 SX127X 系列表现更好,LoRa 调制技术解决了传统设计方案无法同时兼顾距离、抗干扰和功耗的问题。此外,结合 LoRa 网关,可接入 TTN,ChirpStack 等服务器,方便快捷验证 LoRa 网络云服务。主板提供 LF 和 HF 两种频段版本可选择。
产品特性
- 采用 Raspberry Pi 设计的 RP2040 微控制器芯片
- 搭载双核 ARM Cortex M0 + 处理器,运行频率高达 133MHz 灵活时钟
- 内置 264KB 的 SRAM 和 2MB 的片上 Flash
- 板载 FPC 8PIN 接口,可通过转接板引出 USB Type-C 接口
- 邮票孔设计,可直接焊接集成到用户自主设计的底板上
- USB1.1 主机和设备支持
- 支持低功耗睡眠和休眠模式
- 可通过 USB 识别为大容量存储器进行拖放式下载程序,多达 20 个多功能的 GPIO 引脚
- 支持 FSK、GFSK、LoRa 调制方式,更好的抗阻塞和超长距离通信特性
- 低至 -148dBm 的高接收灵敏度和可编程调节至 22dBm 的发射功率
- 支持前导码检测,带有 CRC、高达 256 字节的数据包引擎
- 提供完善的配套资料手册 (C 示例程序和使用手册等)
产品参数
版本型号 | RP2040-LoRa-LF | RP2040-LoRa-HF |
射频芯片 | SX1262 |
工作频段 | LF:410 ~ 450MHz | HF:850 ~ 930MHz |
发射功率 | MAX@22dBm(可调) |
发射电流 | 107mA@22dBm | 118mA@22dBm |
发射电流 | 5.3mA@125KHz |
信号调制 | LoRa/(G)FSK |
工作温度 | 0 ~ 60℃ |
尺寸 | 21.00 × 41.00mm |
硬件说明
硬件连接
- RP2040-LoRa x 1 (本产品配置)
- Type-C USB线 x 1 (须自备)
RP2040和LoRa连接引脚对应关系SX1262 | Pico | 功能 |
SX1262_DIO1 | GP16 | SX1262中断输出引脚或者特殊功能引脚 |
SX1262_RST | GP23 | 复位引脚(低电平有效) |
SX1262_MISO | GP24 | SPI通信MISO引脚,从设备数据输出 |
SX1262_MOSI | GP15 | SPI通信MOSI引脚,从设备数据输入 |
SX1262_CLK | GP14 | SPI通信SCK引脚,从设备时钟输入 |
SX1262_CS | GP13 | SPI片选引脚(低电平有效) |
SX1262_BUSY | GP18 | SX1262 的 BUSY 引脚 |
SX1262_ANT_SW | GP17 | SX1262 收发切换引脚, 低电平打开发射开关 |
引脚说明
- 树莓派 RP2040 使用SPI总线读写SX1262的36个寄存器完成LoRa无线数据传输,SPI总线频率应小于18MHz,具体SPI Timing Requires查看datasheet的第8章Digital Interface and Control
- SPI总线写命令到LoRa芯片会触发内部状态机模式的切换,应注意BUSY引脚低电平表示内部空闲允许接收命令,拉高表示内部已占用不能接受SPI命令,SPI总线需等带BUSY引脚重新拉低才可继续读写操作,TswMode最长是3.5ms
- SX1262 为半双工 LoRa 射频芯片, SX1262_ANT_SW 作为收发切换引脚, 连接到 RP2040 的 GPIO17 引脚, 当 SX1262 处于发射状态时, GPIO17 引脚应保持低电平, 其它状态保持高电平状态
产品尺寸
LoRa和LoRaWAN
什么是LoRa?
Semtech 的 LoRa 是一种长距离、低功耗的物联网 (IoT) 无线平台,一般情况下泛指使用LoRa技术的射频芯片.主要特点如下
- LoRa(long range 的缩写)采用的扩频调制技术源于啁啾扩频 (CSS) 技术,是远距离无线传输技术和LPWAN通信技术中的一种.扩频技术用带宽换取灵敏度的技术,Wi-Fi,ZigBee等都使用了扩频技术,但LoRa调制的特点是接近香农定理的极限,最大效率地提高灵敏度.相比于传统FSK技术,在相同的通信速率下,LoRa比FSK灵敏度好8~12dBm.目前,LoRa 主要在Sub-GHz的ISM频段运行,
- LoRa技术融合了数字扩频、数字信号处理和前向纠错编码等技术使得在长距离通信性能层面大幅度提高,LoRa的链路预算优于其他任何标准化的通信技术,链路预算是指给定的环境中决定距离的主要因素.
- LoRa射频芯片主要有 SX127X系列,SX126X系列,SX130X系列,其中SX127X,SX126X系列用于LoRa节点,SX130X用于LoRa网关,详情可参考Semtech的产品列表
什么是LoRaWAN?
- LoRaWAN 是一种建立在 LoRa 无线电调制技术之上的低功耗广域网开放协议。旨在将电池供电的“事物”无线连接到区域、国家或全球网络中的互联网,并针对关键的物联网 (IoT) 要求,例如双向定向通信、端到端安全、移动性和本地化服务。其中节点无线连接到互联网有入网认证,相当于建立节点和服务器间的加密通信信道,LoRaWAN协议层次下图所示。
- MAC层中的Class A/B/C 三类节点设备基本覆盖了物联网所有的应用场景,三者之间不同点在于节点收发的时隙不同
- Modulation层中EU868,AS430等表明不同国家使用频段参数不同,地区参数请点击参考链接
- 实现LoRaWAN网络覆盖城市或其它区域需要由节点(LoRa节点射频芯片)、网关(或称基站,LoRa网关射频芯片)、Server和云四部分组成,如下图所示
- DEVICE(节点设备)需先发起入网请求数据包到GATEWAY(网关)再到服务器,认证通过后才可以正常和服务器收发应用数据
- GATEWAY(网关)可通过有线网络,3/4/5G无线网络与服务器进行通信
- 服务器端主要运营商有TTN等,自行搭建云端服务请参考lorawan-stack,chirpstack
- 树莓派 Pico 和 Pico-LoRa-SX1262 通过 LoRaWAN 接入互联网有两种方式,一是 OTAA(Over-The-Air-Activation),二是 ABP(Activation By Personalization) , 本文通过方式一 OTAA 入网, 入网过程参照下图所示 , 详细文档参考链接1 链接2 和源码
- 步骤1.终端设备将Join-Request消息发送到将要加入的网络,注意加入过程始终由终端设备发起,Join-Request消息可以使用任何数据速率并使用特定于区域的加入通道之一来传输.例如,在欧洲,终端设备可以通过在 868.10 MHz、868.30 MHz 或 868.50 MHz 中随机选择来发送Join-Request消息.Join-Request消息通过一个或多个网关到达网络服务器.另外注意按照当地无线电管理规定选择适用频段,频段分布具体表格点击链接查看或访问LoRa Alliance搜索, Join-Request消息由以下字段组成,而AppEUI,DevEUI由服务器端注册生成,请参考下面说明.
- AppEUI: IEEE EUI64 地址空间中的 64 位全局唯一应用标识符,唯一标识能够处理 Join-Request 帧的实体。
- DevEUI: IEEE EUI64 地址空间中唯一标识终端设备的 64 位全局唯一设备标识符。
- DevNonce: 由终端设备生成的唯一的随机的 2 字节值.网络服务器使用每个终端设备的 DevNonce 来跟踪它们的加入请求.如果终端设备使用先前使用的 DevNonce 发送加入请求(这种情况称为replay attack),网络服务器会拒绝加入请求并且不允许该终端设备向网络注册.
- 步骤2.网络服务器处理Join-Request-Message.如果允许终端设备加入网络,网络服务器将生成两个会话密钥(NwkSKey 和 AppSKey)和 Join-accept 消息.然后使用 AppKey 对加入接受消息本身进行加密.网络服务器使用 ECB 模式下的 AES 解密操作来加密 Join-accept 消息.
- 步骤3.网络服务器将加密的加入接受消息作为正常下行链路发送回终端设备.
- 步骤4.终端设备使用AES解密Join-Accept.并使用 AppKey 和 AppNonce 生成两个会话密钥 NwkSKey 和 AppSKey用于后续和 Networking 服务器通信. Network Server 同样保存了 kSKey ,Join服务器分发 AppSKey 给 Application Server.
- 作为终端设备接入互联网络的DevEUI,AppEUI参数, 需要由服务器端注册生成,其具体过程如下
- 注册并登录TTS后创建应用(Applications)
- 创建节点设备的各项参数如下图红框中的5个步骤所示,需要保存Step2的DevEUI,Step3的AppKey值以备后用
应用
LoRa 器件和网络(如 LoRaWAN)使得智能物联网应用能够帮助解决地球面临的能源管理、自然资源减少、污染控制、基础设施效率、防灾等艰巨挑战。Semtech 的 LoRa 器件已在智慧城市、家居和建筑、社区、计量、供应链和物流、农业等领域实现了数百个成功应用案例。LoRa 网络已覆盖 100 多个国家/地区的数亿台器件,致力于打造一个更智慧的地球。
环境搭建
程序下载
1. 直接点击链接下载并解压
2. github下载
例程使用
- 解压程序或使用git下载程序到与pico-sdk同一级目录下,编译环境安装参考Pico环境设置章节
- 打开VScode,在VScode选择打开pico-lorawan文件夹,在example\otaa_temperature_led\config.h文档中填写刚刚保存的DevEUI和AppKey两个值
- 若环境设置正确,点击VScode的Build按钮等待编译结束,将编译好文件下载到进入Boot模式的RaspberryPi Pico,打开串口查看日志信息
代码简析
1. 此例程在pico-lorawan基础上增加了基于Semtech SX1262的Pico-LoRa-SX1262-868M模块的适配
2. LoRaWAN协议国内用户请点击链接1或链接2参考文档,国外用户请点击链接3参考相关文档
3. 若用户自行建立云服务器,请点击参考lorawan-stack,chrpstack
邮箱:services04@spotpear.cn