0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用全球蜂窝无线电模块将物联网设备快速安全地连接到云端

海阔天空的专栏 来源:Jens Wallmann 作者:Jens Wallmann 2024-01-01 17:04 次阅读

作者:Jens Wallmann
如需将便携式或远程网络终端设备连接到物联网 (IoT),或使用机对机通信 (M2M) 远程控制机器,通过云端进行数据交换的移动无线电连接是一个不错的选择。然而,这一方案却给开发人员带来了一些难题,例如要确定哪些无线网络可以支持全球所需的数据吞吐率,以及无线调制解调器必须能够处理哪些协议。此外,还必须考虑系统可扩展性、数据安全性、成本、上市时间以及用户的购置和运营成本。

本文简要介绍了 LTE Cat 1 可为物联网和 M2M 应用开发人员提供哪些功能。随后介绍了 [u-blox]的 [LARA-R6] 系列无线电模块,这些模块具有通用连接性和可靠的性能。最后,本文还展示了开发人员如何使用评估板 (EVB) 通过 AT 命令轻松配置和控制模块,以及如何通过库函数生成 AT 命令字符串。

LTE Cat 1 与 LTE Cat 1bis、LTE Cat M 和 LTE Cat NB 的比较

虽然 LTE 蜂窝无线电现已实现千兆位传输速率,但是像 LTE Cat 1、LTE Cat 1bis、LTE Cat M 和 LTE Cat NB 这样的低功耗、广域 (LPWA) 协议经过设计,在能耗、网络资源和成本方面都特别高效。这对于物联网设备至关重要。

LTE Cat 1 可在全双工模式下提供高达 20 MHz 的信道带宽,下载数据速率可达 10 Mbps,上传数据速率可达 5 Mbps。使用两根天线支持接收 (Rx) 分集,性能更佳(表 1)。而 LTE Cat 1bis 仅使用一根天线。

| | | LTE CAT1/CAT 1BIS | LTE CAT M1 | LTE CAT NB1 |
| ---------------------------- | -------------------------------- | ---------------- | --------------------------------------- |
| 3GPP 版本 | 版本 8 | 版本 13 | 版本 13 |
| 下行链路峰值速率 | 10 Mpbs | 1 Mbps | 26 kbps |
| 上行链路峰值速率 | 5 Mbps | 1 Mbps | 66 kbps(多音调)
16.9 kbps(单音调) |
| 延时 | 50 ms 到 100 ms | 10 ms 到 15 ms | 1.6 s 到 10 s |
| 天线数量 | 2 (LTE Cat 1)
1 (LTE Cat 1bis) | 1 | 1 |
| 双工模式 | 全双工 | 全双工或半双工 | 半双工 |
| 设备接收带宽 | 1.4 MHz 到 20 MHz | 1.4 | 180 kHz |

表 1:LPWA 协议的性能比较。LTE CAT 1 使用两根天线支持接收分集;而 LTE Cat 1bis 仅使用一根天线。(图片来源:维基百科,Jens Wallmann)

LTE Cat 1 移动无线电的全球可用性

u-blox 的 LARA-R6 系列由坚固耐用的蜂窝无线电模块组成,专为无线电接入技术 (RAT) LTE Cat 1 频分双工 (FDD) 和时分双工 (TDD) 标准而设计。该系列支持 3G UMTS/HSPA 和 2G GSM/GPRS/EGPRS,作为后备解决方案。这些模块是实现全球/多地区覆盖的出色解决方案,采用 26 x 24 mm 的小型 LGA 封装。

LARA-R6 模块配备多功能接口、各种不同的特性以及多频段和多模功能,适用于需要中速数据传输、无缝连接、出色的覆盖能力和低延时的应用。这些应用包括资产跟踪、远程信息处理、远程监控、警报中心视频监视、互联健康和收银机终端。

所有模块均支持接收分集,可在覆盖条件差或需要基于 LTE 的语音传输 (VoLTE) 时提供可靠的性能。程序员可以利用嵌入式物联网协议(LwM2M、MQTT)和安全特性(TLS/DTLS、安全更新/安全启动)来实施各种功能,包括设备管理、远程设备控制以及安全的空中固件下载 (FOTA) 更新。

LARA-R6 系列支持符合 3GPP 版本 10 标准的 LTE Cat 1,并通过三个地区版本实现全球覆盖:

  • [LARA-R6001-00B](数据和语音)和 [LARA-R6001D-00B](仅数据)模块支持 18 个 LTE FDD/TDD 频带以及 3G/2G 回退功能,可实现全球连接。
  • [LARA-R6401-00B](数据和语音)和 [LARA-R6401D-00B](仅数据)模块为北美地区提供理想的 LTE Cat 1 解决方案,支持 AT&T、FirstNet、Verizon 和 T-Mobile 的 LTE 频带。
  • [LARA-R6801-00B](数据和语音)和 [LARA-R6801D-01B](仅数据)模块专为以下地区的部署而设计:欧洲和中东 (EMEA)、亚太地区 (APAC)、日本 (JP) 和拉丁美洲 (LATAM)(图 1)。

LARA-R6 模块的地区版本地图图 1:LARA-R6 模块有三个地区版本,可覆盖全球。(图片来源:DigiKey,由作者修改)

LARA-R6 特殊功能一览

LARA-R6 模块集成了带有外部接口的蜂窝基带处理器、带有放大器滤波器射频收发器、存储器和电源管理单元(图 2)。

[u-blox 的 LARA-R6 模块内部结构图(点击放大)])图 2:LARA-R6 模块的内部结构。(图片来源:u-blox)

射频收发器的工作频带为 700 MHz、800 MHz、850 MHz、900 MHz、1.7 GHz、1.8 GHz、1.9 GHz、2.1 GHz 和 2.6 GHz。蜂窝基带处理器的所有数据传输协议均可使用外部 UARTUSB 接口通过 AT 命令进行控制和配置。

协议

  • 双堆栈 IPv4 和 IPv6
  • 嵌入式 TCP/IP、UDP/IP、FTP 和 HTTP
  • 嵌入式 MQTT 和 MQTT-SN
  • 嵌入式 LwM2M
  • eSIM 和独立承载协议 (BIP)

LARA-R6 模块需要 3.1 到 4.5 V 的供电电压,待机电流消耗约为 1.1 mA。在 2G 运行中,单个 TDMA 时隙的峰值传输功率可超过 33 dBm(> 2.0 瓦,分贝数基准为 1 mW),而所有其他 RAT 的峰值传输功率均超过 24 dBm(> 0.25 瓦)。

小于 -100 dBm 的出色天线灵敏度,对应于小于 0.1 pW 的信号功率,可在移动网络边缘实现稳定的无线电连接。

评估和编程

开始 LARA-R6 模块评估和编程的最快方法是使用 R6 EVB (EVK-R6) 和相应地区的插入式 LARA-R6 适配器板 (ADP-R6)。例如,适用于全球应用的 [EVK-R6001-00B] 包括插入式适配器板 [ADP-R6001-00B](语音 + 数据)和 GNSS 适配器板(图 3)。

[u-blox 安装了 LARA-R6 适配器板的 LARA-R6 EVB (EVK-R6) 图片(点击放大)]图 3:安装了 LARA-R6 适配器板(下方)和 GNSS 板(左上)的 LARA-R6 EVB (EVK-R6)。(图片来源:u-blox)

适用于北美地区的 [EVK-R6401-00B]版本包括 [ADP-R6401-00B]适配器,而适用于 EMEA/APAC/JP/LATAM 地区的 [EVK-R6801-00B] 则包括 [ADP-R6801-00B] 适配器。前文提到的适用于语音和数据传输的三个适配器板也可单独提供,还有仅适用于数据传输的版本,包括 [ADP-R6401D-00B](北美)和 [ADP-R6001D-00B](全球)。

R6 适配器板通过两根天线和两个 MiniUSB 连接器扩展 LARA-R6 模块。R6 EVB 则增加了一个 GNSS 模块、一个 SIM 卡插槽、额外的插入式连接器、跳线、开关和模块外设的电源(图 4)。

[u-blox 插入了 GNSS 和 LARA-R6 适配器的 R6 EVB 功能框图(点击放大)]图 4:插入了 GNSS 和 LARA-R6 适配器的 R6 EVB 功能框图。(图片来源:u-blox)

每个套件包含一个 u-blox 的 EVB(安装了 LTE Cat 1 LARA-R6 适配器板和 GNSS 模块)、一根 USB 电缆、两根 LTE 移动无线电天线、一根 GPS/GLONASS 天线和一个电源单元。

调试 EVK

u-blox 推出的 EVK-R6 套件易于使用、功能强大,可简化多模 LTE Cat 1/3G/2G 蜂窝模块的评估工作。安装了 LARA-R6 [USB 驱动程序]的 Windows PC 可通过 USB 连接器控制 LARA-R6 调制解调器,并通过系统设置简化连接设置。首先,开发人员需要:

  1. 插入 SIM 卡并连接蜂窝天线和 GNSS 天线。
  2. 仔细配置 EVK 的跳线和开关。
  3. 施加供电电压并打开 EVB 上的主开关 SW400。
    1. 如需通过“主 UART”接口作为低数据速率调制解调器运行,可将 PC 连接到 EVK 上的 MiniUSB 插孔 J501 或 RS232 插孔 J500。
    2. 如需通过“两个 UART”作为低数据速率调制解调器运行,可将 PC 连接到 ADP 上的蜂窝 USB 插孔 J201 接口。
    3. 如需通过“本机蜂窝 USB”作为高数据速率调制解调器运行,可将 PC 连接到 ADP 上的 MiniUSB 插孔 J105。
  4. 按下 EVB 上的蜂窝模块开机按钮 SW302。
  5. 运行终端应用软件(例如 m-center),进入 COM 端口设置菜单,选择与 4a、4b 或 4c 相对应的 AT 端口,然后设置以下值:数据速率:115,200 bps;数据位:8;奇偶校验:N;停止位:1。

如需了解更多详情,请参阅 [EVK-R6_UserGuide_UBX-21035387]。m-center 工具可帮助评估、配置和测试 u-blox 蜂窝产品,其中包括一个 AT 命令终端。

使用 Windows PC 进行简单的互联网连接

将 Windows PC 连接到 EVK 后,用户即可通过两种方式建立无线互联网连接:

1:低速分组数据连接: 该方式通过 LARA-R6 模块的 UART 接口,使用 Windows PC 的 TCP/IP 协议栈。按照方法 4a 连接 PC 和 EVK。开发人员必须使用 Windows 控制面板选择“电话和调制解调器”>“调制解调器”>“添加”。下一步是勾选“不要检测我的调制解调器”复选框,选择“标准 33.6 kbps 调制解调器”,并分配一个 COM 端口。如有必要,开发人员可以添加“属性”>“高级”>“额外的初始化命令”。

2:高速分组数据连接: 该方式通过 LARA-R6 模块的本机蜂窝 USB 接口,使用 Windows PC 的 TCP/IP 协议栈访问互联网。按照方法 4c 连接 PC 和 EVK。开发人员必须通过 Windows 控制面板选择“网络和共享中心”>“设置新的连接或网络”,然后点击“连接到 Internet”。下一步是选择“拨号”和其中一个 AT USB 端口。最后一步是输入拨号参数(拨号号码、提供商名称、用户 ID 和密码)。

向移动运营商注册 SIM 卡

SIM 卡和 MNO 参数配置完成后,蜂窝模块会在开机后自动在蜂窝网络上进行注册。如果出现问题,可使用表 2 所示的 AT 命令手动检查注册情况。

| | 由 DTE(用户)发送的命令 | DCE 响应(模块) | 说明 |
| -------------------------- | ------------------------- | -------------------------------------------------------------- |
| AT+CREG? | +CREG: 0,1 OK | 验证网络注册情况。 |
| AT+COPS=0 | OK | 仅当自动注册失败时才会在网络上注册模块(AT+CREG?返回 0.0)。 |
| AT+COPS? | +COPS: 0,0,"I TIM",7 OK | 读取运营商名称和无线电接入技术 (RAT)。 |

表 2:AT 注册命令。(表格来源:u-blox,由作者修改)

通过 AT 命令与远程 HTTP 服务器通信

GitHub 存储库“[Firechip_u-blox_LARA-R6_Arduino_Library]”包含一个广泛的 LARA-R6 模块 AT 命令库,使用 C++ 编写,适用于 [Arduino] 控制器。16 个应用示例(包括 ping 测试、注册、分组交换、SMS、GNSS 和物联网云)可为自定义代码结构提供建议。

AT 命令还可以在主动连接期间向远程 HTTP 服务器发送请求,接收服务器响应,并将该响应透明地存储在本地文件系统中。受支持的方法有 HEAD、GET、DELETE、PUT、POST file 和 POST data。

Lara_R6_Example9 使用 HTTP POST 或 GET 向远程 HTTP 服务器 [ThingSpeak.com]发送随机温度。ThingSpeak 是 MathWorks 提供的物联网分析平台服务,可帮助在云端聚合、可视化和分析实时数据流。表 3 显示了 HTTP 命令“POST data”的语法。

| | 类型 | 语法 | 响应 | 示例 |
| ------ | -------------------------------------------------------------------------------------------------------- | ------ | ----------------------------------------------------------------- |
| 设置 | AT+UHTTPC=,5,
,,,

[,] | OK | AT+UHTTPC=0,5,"/path/file.html", "responseFilename","data",0 OK |

表 3:“POST data”是 HTTP 命令 5,格式如上所示。(表格来源:u-blox,由作者修改)

该示例可在 Arduino 主机控制器上编程,通过 AT 命令控制 EVK 板上的 LARA-R6 模块。此外,还需要配置 SIM 卡。

程序员必须创建 ThingSpeak 用户帐户,并通过菜单项“Channels(通道)”>“My Channels(我的通道)”>“New Channel(新通道)”为随机温度测量值设置字段 1。在变量 myWriteAPIKey 中,相应的“写入 API 密钥”被输入到主程序“LARA-R6_Example9_ThingSpeak.ino”。

C++ 主程序生成了一个随机温度值,形成特定于云端的数据字符串,并每隔 20 秒调用一次库函数 sendHTTPPOSTdata(清单 1)。

复制
...
1  String myWriteAPIKey = "PFIOEXW1VF21T7O6"; // Change this to your API key
2  String serverName = "api.thingspeak.com"; // Domain Name for HTTP POST/GET
3  [...]




4  void loop()
5  {
6    // Create a random temperature between 20 and 30  
7    float temperature = ((float)random(2000,3000)) / 100.0; 
8
9
10   // Send data using HTTP POST
11   String httpRequestData = "api_key=" + myWriteAPIKey + "&field1=" + 

                                String(temperature);
12
13   Serial.print(F("POSTing a temperature of "));
14   Serial.print(String(temperature));
15   Serial.println(F(" to ThingSpeak"));
16        
17   // Send HTTP POST request to /update. The reponse will be written to 

        post_response.txt in the LARA's file system
18   myLARA.sendHTTPPOSTdata(0, "/update", "post_response.txt", httpRequestData,

                             LARA_R6_HTTP_CONTENT_APPLICATION_X_WWW);
19
20
21   // Send data using HTTP GET 
22      ==> see original code on Github
23
24   for (int i = 0; i < 20000; i++) // Wait for 20 seconds    
25   {
26     myLARA.poll(); // Keep processing data from the LARA so we can catch 

                            the HTTP command result
27     delay(1);
28   }
29  }
...

清单 1:该主程序生成了一个随机温度值,并每隔 20 秒调用一次库函数 sendHTTPPOSTdata。(代码来源:Github 上的 Firechip)

生成调用库函数的 AT 命令字符串

库头“Firechip_u-blox_LARA-R6_Arduino_Library.h”将函数调用 sendHTTPPOSTdata 转发到库过程“Firechip_u-blox_LARA-R6_Arduino_Library.cpp”,在该过程中生成和发送了完整格式的 AT 命令字符串(清单 2)。

复制
...
1  LARA_R6_error_t LARA_R6::sendHTTPPOSTdata(int profile, String path, 

                              String responseFilename, String data,  

                              LARA_R6_http_content_types_t httpContentType)
2  {
3    LARA_R6_error_t err;
4    char *command;
5
6    if (profile >= LARA_R6_NUM_HTTP_PROFILES)
7     return LARA_R6_ERROR_ERROR;
8
9    command = lara_r6_calloc_char(strlen(LARA_R6_HTTP_COMMAND) + 24 +

                                  path.length() + responseFilename.length()

                                  + data.length());
10   if (command == nullptr)
11     return LARA_R6_ERROR_OUT_OF_MEMORY;
12   sprintf(command, "%s=%d,%d,"%s\","%s\","%s\",%d",

             LARA_R6_HTTP_COMMAND, profile, LARA_R6_HTTP_COMMAND_POST_DATA,

             path.c_str(), responseFilename.c_str(), data.c_str(),

             httpContentType);
13
14   err = sendCommandWithResponse(command, LARA_R6_RESPONSE_OK_OR_ERROR,

                                 nullptr, LARA_R6_STANDARD_RESPONSE_TIMEOUT);
15
16   free(command);
17   return err;
18 }
...

清单 2:该 C++ 库过程生成并发送了完整格式的 AT 命令字符串(第 12 行)。(代码来源:Github 上的 Firechip)

库过程 LARA_R6::sendHTTPPOSTdata(清单 2)使用函数调用 myLARA.sendHTTPPOSTdata()(清单 1)中传递的参数和库头中额外声明的变量,根据表 3 生成了完整的 HTTP 命令字符串。最后,LARA-R6 调制解调器将生成的 AT 命令字符串发送到 ThingSpeak RemoteHTTP 服务器:

AT+UHTTPC=0,5,"/update","post_response.txt","api_key=PFIOEXW1VF21T7O6&field1=21.54",0

总结

对于低功耗物联网和 M2M 应用的全球联网,LARA-R6 系列的 LTE Cat 1 多模无线电模块既高效又经济。如图所示,开发人员可以使用 EVK 访问所有接口,并通过 AT 命令轻松配置和控制模块的协议和功能。该产品提供简单的选项,可用作 PC 调制解调器、向云端发送数据以及通过库函数生成 AT 命令字符串。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 物联网
    +关注

    关注

    2903

    文章

    44240

    浏览量

    371002
  • LTE
    LTE
    +关注

    关注

    15

    文章

    1356

    浏览量

    177710
  • M2M
    M2M
    +关注

    关注

    10

    文章

    210

    浏览量

    82297
  • 蜂窝
    +关注

    关注

    0

    文章

    121

    浏览量

    25145
  • 无线电模块
    +关注

    关注

    0

    文章

    7

    浏览量

    6653
收藏 人收藏

    评论

    相关推荐

    如何快速安全地联网应用连接到 Google Cloud

    确保联网设备与远程主机服务器之间安全连接的能力,是全面保护
    的头像 发表于 08-13 10:46 1.1w次阅读
    如何<b class='flag-5'>快速</b><b class='flag-5'>安全地</b><b class='flag-5'>将</b><b class='flag-5'>物</b><b class='flag-5'>联网</b>应用<b class='flag-5'>连接到</b> Google Cloud

    联网设备连接到云端安全解决方案

    尽管人们越来越意识到需要安全性,但开发人员经常发现自己在安全性方面采取了快捷方式,联网设备
    的头像 发表于 03-19 08:27 5424次阅读
    <b class='flag-5'>将</b><b class='flag-5'>物</b><b class='flag-5'>联网</b><b class='flag-5'>设备</b><b class='flag-5'>连接到</b><b class='flag-5'>云端</b>的<b class='flag-5'>安全</b>解决方案

    全球联网设备超百亿,联网卡需求与日俱增

    硬件产品、可穿戴设备、智能传感器的面世,车联网、智慧物流、智能家居等细分市场也开始快速成长。  联网
    发表于 04-03 11:30

    硅传科技联网无线模块:什么是组合模块

    用户体验为核心的创新2.0是联网发展的灵魂。简而言之,联网就是现实世界中的物体连到互联网
    发表于 05-31 10:59

    快速开发采用安全蜂窝连接联网应用

    Link Labs 的 LL-LTE-M-VZN-SE,这些模块已通过运营商认证,可以为联网设备和其他连接应用
    发表于 09-12 14:18

    SKYLAB无线模块联网应用中有什么优势

    联网中需要的大量设备不在依赖人与人之间的交互产生联系,更多通过协议、通信、程序设计等方式连接到一处,即“
    发表于 06-25 01:54

    为什么蜂窝联网需要嵌入式SIM(eSIM)

    欧洲电信标准协会(ETSI)开发用于GSM网络,如今,几乎所有连接到LTE(4G)网络的移动设备都使用SIM技术。未来的蜂窝联网
    发表于 06-18 13:26

    如何选择合适的联网模块

    中的小型电子设备,它们连接到无线网络并发送和接收数据。有时 被称为“无线电芯片”,联网
    发表于 09-08 17:55

    常见的联网连接方法分享

      联网(IoT)由连接到同一网络的数百或数千个设备组成下面我们一起来看看IoT应用程序中最常用的6种连接方法。  1、以太网  以太网是
    发表于 12-11 13:53

    如何通过蜂窝网络建立快速联网连接

    我想使用 ESP-32 从相机拍摄图像并通过蜂窝网络将它们发送到我的手机。我遇到的问题是我不确定是否存在任何库 ESP-32 连接到蜂窝模块
    发表于 03-01 08:05

    WiFi如何连接到蜂窝模块

    技术解释的链接。我遇到了网络共享这个词,我想也许这就是我想做的,然后我遇到了热点路由器这个词,还有无线接入点,我搜索了诸如“蜂窝连接到 wifi”、“从
    发表于 05-24 08:41

    谁将吃到50亿全球蜂窝联网连接大蛋糕?

    到2025年,全球蜂窝联网连接突破50亿,中国三大运营商
    的头像 发表于 10-25 16:12 3382次阅读

    如何实现联网设备的能耗管理

    联网设备在运行期间可以远程发送和接收数据。通常,几个联网设备
    发表于 02-26 15:36 2424次阅读

    全球蜂窝连接进入低功耗联网设备

    在挪威预览的紧凑型模块有望为小型联网设备提供 LTE-M 蜂窝连接
    发表于 08-12 11:48 459次阅读
    <b class='flag-5'>全球</b><b class='flag-5'>蜂窝</b><b class='flag-5'>连接</b>进入低功耗<b class='flag-5'>物</b><b class='flag-5'>联网</b><b class='flag-5'>设备</b>

    使用UIFlowLoRaWAN模块连接到联网的方法

    M5Stack 最近发布了更新的 LoRaWAN 模块。本文教你如何使用 UIFlow 将其连接到联网
    的头像 发表于 09-05 14:52 2071次阅读
    使用UIFlow<b class='flag-5'>将</b>LoRaWAN<b class='flag-5'>模块</b><b class='flag-5'>连接到</b><b class='flag-5'>物</b><b class='flag-5'>联网</b>的方法