使用全球蜂窩無線電模塊快速安全地將物聯網設備連接到云


作者:Jens Wallmann
要將便攜式或遠程網絡終端設備連接到物聯網 (IoT),或使用機器對機器通信 (M2M) 遠程控制機器,通過云進行數據交換的移動無線電連接是一個不錯的選擇。然而,此選項給開發人員帶來了障礙,例如確定哪些無線網絡可以支持全球所需的數據吞吐量以及無線調制解調器必須能夠處理哪些協議。系統可擴展性、數據安全性、成本、上市時間以及用戶產生的購置和運營成本也必須考慮。
本文簡要介紹了 LTE Cat 1 為 IoT 和 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 使用單個天線。
表 1:LPWA 協議的性能比較。 LTE CAT 1 使用兩個天線實現接收分集; LTE Cat 1bis 使用一根天線。
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 Release 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)
RF 收發器的工作頻段為 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 伏的電源電壓,空閑電流消耗約為 1.1 毫安 (mA)。在 2G 操作中,單個 TDMA 時隙可達到超過 33 分貝的峰值傳輸功率(以 1 毫瓦 (mW) (dBm)(> 2.0 瓦)為參考),所有其他 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 EVB (EVK-R6) 附帶 LARA-R6 適配器板(底部)和 GNSS 板(左上)。 (圖片來源: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)
每個套件包含一個 EVB(附帶 LTE Cat 1 LARA-R6 適配器板和 u-blox 的 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,用戶可以通過兩種方式建立無線 Internet 連接:
1:低速分組數據連接:通過 LARA-R6 模塊的 UART 接口使用 Windows PC 的 TCP/IP 堆棧。 PC和EVK按照方法4a連接。開發人員必須使用 Windows 控制面板選擇電話和調制解調器 > 調制解調器 > 添加。下一步是選中“不檢測我的調制解調器”復選框,選擇“標準 33.6 kbps 調制解調器”,然后分配 COM 端口。如有必要,開發人員可以添加“屬性”>“高級”>“額外初始化”命令。
2:高速分組數據連接:通過 LARA-R6 模塊的蜂窩本機 USB 接口,使用 Windows PC 的 TCP/IP 堆棧訪問互聯網。 PC和EVK按照方法4c連接。開發者必須通過 Windows 控制面板選擇“網絡和共享中心”>“設置新連接或網絡”,然后單擊“連接到 Internet”。下一步是選擇“撥號”和 AT USB 端口之一。最后一步是輸入撥號參數(撥入號碼、提供商名稱、用戶 ID 和密碼)。
向移動運營商注冊 SIM 卡
一旦配置了SIM卡和MNO參數,蜂窩模塊上電后會自動在蜂窩網絡上注冊。如果出現問題,可以使用表2所示的AT命令手動檢查注冊情況。
表 2:AT 注冊命令。 (表格來源:u-blox,作者修改)
通過AT命令與遠程HTTP服務器通信
GitHub 存儲庫“ Firechip_u-blox_LARA-R6_Arduino_Library ”包含用于 LARA-R6 模塊的廣泛 AT 命令庫,以 C++ 編寫,適用于Arduino控制器。包括 ping 測試、注冊、數據包交換、SMS、GNSS 和物聯網云在內的 16 個應用示例為自定義代碼結構提供了建議。
AT 命令還可以在活動連接期間向遠程 HTTP 服務器發送請求、接收服務器響應并將該響應透明地存儲在本地文件系統中。支持的方法有 HEAD、GET、DELETE、PUT、POST 文件和 POST 數據。
Lara_R6_Example9 使用 HTTP POST 或 GET 將隨機溫度發送到 RemoteHTTP 服務器ThingSpeak.com。 ThingSpeak 是 MathWorks 提供的物聯網分析平臺服務,有助于聚合、可視化和分析云中的實時數據流。表 3 顯示了 HTTP 命令“POST data”的語法。
表 3:“POST 數據”是 HTTP 命令編號 5,格式如下所示。 (表格來源:u-blox,作者修改)
該示例可以在 Arduino 主機控制器上進行編程,該控制器通過 AT 命令控制 EVK 板上的 LARA-R6 模塊。此外,還需要一張已配置的 SIM 卡。
程序員必須創建一個 ThingSpeak 用戶帳戶,并通過菜單項 Channels > My Channels > New Channel 將字段 1 設置為隨機溫度測量值。在主程序中,在變量“LARA-R6_Example9_ThingSpeak.ino”中輸入相應的“Write API Key” myWriteAPIKey。
C++ 主程序生成隨機溫度值,形成云特定數據字符串,并sendHTTPPOSTdata每 20 秒調用庫函數(清單 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:該主程序生成一個隨機溫度值,并sendHTTPPOSTdata每 20 秒調用一次庫函數。 (代碼來源: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 命令字符串的簡單選項。
責任編輯:David
【免責聲明】
1、本文內容、數據、圖表等來源于網絡引用或其他公開資料,版權歸屬原作者、原發表出處。若版權所有方對本文的引用持有異議,請聯系拍明芯城(marketing@iczoom.com),本方將及時處理。
2、本文的引用僅供讀者交流學習使用,不涉及商業目的。
3、本文內容僅代表作者觀點,拍明芯城不對內容的準確性、可靠性或完整性提供明示或暗示的保證。讀者閱讀本文后做出的決定或行為,是基于自主意愿和獨立判斷做出的,請讀者明確相關結果。
4、如需轉載本方擁有版權的文章,請聯系拍明芯城(marketing@iczoom.com)注明“轉載原因”。未經允許私自轉載拍明芯城將保留追究其法律責任的權利。
拍明芯城擁有對此聲明的最終解釋權。