作者: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)。
圖 1:LARA-R6 模塊有三個地區版本,可覆蓋全球。(圖片來源:DigiKey,由作者修改)
LARA-R6 特殊功能一覽
LARA-R6 模塊集成了帶有外部接口的蜂窩基帶處理器、帶有放大器和濾波器的射頻收發器、存儲器和電源管理單元(圖 2)。
[])圖 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。蜂窩基帶處理器的所有數據傳輸協議均可使用外部 UART 和 USB 接口通過 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)。
[]圖 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)。
[]圖 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 調制解調器,并通過系統設置簡化連接設置。首先,開發人員需要:
- 插入 SIM 卡并連接蜂窩天線和 GNSS 天線。
- 仔細配置 EVK 的跳線和開關。
- 施加供電電壓并打開 EVB 上的主開關 SW400。
- 如需通過“主 UART”接口作為低數據速率調制解調器運行,可將 PC 連接到 EVK 上的 MiniUSB 插孔 J501 或 RS232 插孔 J500。
- 如需通過“兩個 UART”作為低數據速率調制解調器運行,可將 PC 連接到 ADP 上的蜂窩 USB 插孔 J201 接口。
- 如需通過“本機蜂窩 USB”作為高數據速率調制解調器運行,可將 PC 連接到 ADP 上的 MiniUSB 插孔 J105。
- 按下 EVB 上的蜂窩模塊開機按鈕 SW302。
- 運行終端應用軟件(例如 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=
,,,
[,
表 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 命令字符串。
-
物聯網
+關注
關注
2909文章
44557瀏覽量
372760 -
LTE
+關注
關注
15文章
1358瀏覽量
177858 -
M2M
+關注
關注
10文章
210瀏覽量
82337 -
蜂窩
+關注
關注
0文章
122瀏覽量
25157 -
無線電模塊
+關注
關注
0文章
7瀏覽量
6655
發布評論請先 登錄
相關推薦
評論