使用全球蜂窩無(wú)線電模塊快速安全地將物聯(lián)網(wǎng)設(shè)備連接到云


作者:Jens Wallmann
要將便攜式或遠(yuǎn)程網(wǎng)絡(luò)終端設(shè)備連接到物聯(lián)網(wǎng) (IoT),或使用機(jī)器對(duì)機(jī)器通信 (M2M) 遠(yuǎn)程控制機(jī)器,通過(guò)云進(jìn)行數(shù)據(jù)交換的移動(dòng)無(wú)線電連接是一個(gè)不錯(cuò)的選擇。然而,此選項(xiàng)給開(kāi)發(fā)人員帶來(lái)了障礙,例如確定哪些無(wú)線網(wǎng)絡(luò)可以支持全球所需的數(shù)據(jù)吞吐量以及無(wú)線調(diào)制解調(diào)器必須能夠處理哪些協(xié)議。系統(tǒng)可擴(kuò)展性、數(shù)據(jù)安全性、成本、上市時(shí)間以及用戶產(chǎn)生的購(gòu)置和運(yùn)營(yíng)成本也必須考慮。
本文簡(jiǎn)要介紹了 LTE Cat 1 為 IoT 和 M2M 應(yīng)用程序開(kāi)發(fā)人員提供的功能。然后介紹了u-blox 的 LARA-R6系列無(wú)線電模塊,該模塊提供通用連接和可靠的性能。本文最后展示了開(kāi)發(fā)人員如何使用評(píng)估板 (EVB) 通過(guò) AT 命令輕松配置和控制模塊,并通過(guò)庫(kù)函數(shù)生成 AT 命令字符串。
LTE Cat 1 與 LTE Cat 1bis、LTE Cat M 和 LTE Cat NB 的比較
雖然 LTE 蜂窩無(wú)線電現(xiàn)已實(shí)現(xiàn)千兆位傳輸速率,但 LTE Cat 1、LTE Cat 1bis、LTE Cat M 和 LTE Cat NB 等低功耗廣域 (LPWA) 協(xié)議的設(shè)計(jì)在能耗方面特別高效,網(wǎng)絡(luò)資源和成本。這對(duì)于物聯(lián)網(wǎng)設(shè)備至關(guān)重要。
LTE Cat 1 在全雙工模式下提供高達(dá) 20 兆赫 (MHz) 的信道帶寬,可實(shí)現(xiàn)高達(dá) 10 兆比特每秒 (Mbps) 的下載數(shù)據(jù)速率和高達(dá) 5 Mbps 的上傳數(shù)據(jù)速率。兩個(gè)天線可實(shí)現(xiàn)接收器 (Rx) 分集以獲得更好的性能(表 1)。 LTE Cat 1bis 使用單個(gè)天線。
表 1:LPWA 協(xié)議的性能比較。 LTE CAT 1 使用兩個(gè)天線實(shí)現(xiàn)接收分集; LTE Cat 1bis 使用一根天線。
LTE Cat 1 移動(dòng)無(wú)線電可在全球范圍內(nèi)使用
u-blox 的 LARA-R6 系列由強(qiáng)大的蜂窩無(wú)線電模塊組成,專為無(wú)線電接入技術(shù) (RAT) LTE Cat 1 頻分雙工 (FDD) 和時(shí)分雙工 (TDD) 標(biāo)準(zhǔn)而設(shè)計(jì)。它們支持 3G UMTS/HSPA 和 2G GSM/GPRS/EGPRS 作為后備解決方案。這些模塊是全球/多區(qū)域覆蓋的出色解決方案,采用尺寸為 26 x 24 毫米 (mm) 的小型 LGA 外形。
LARA-R6 模塊配備多功能接口、多種功能以及多頻段和多模式功能,適用于需要中等數(shù)據(jù)速度、無(wú)縫連接、出色覆蓋和低延遲的應(yīng)用。此類應(yīng)用包括資產(chǎn)跟蹤、遠(yuǎn)程信息處理、遠(yuǎn)程監(jiān)控、報(bào)警中心、視頻監(jiān)控、互聯(lián)健康和銷售點(diǎn)終端。
所有模塊都支持接收分集,以便在困難的覆蓋條件下或需要 LTE 語(yǔ)音 (VoLTE) 時(shí)提供可靠的性能。程序員可以利用嵌入式物聯(lián)網(wǎng)協(xié)議(LwM2M、MQTT)和安全功能(TLS/DTLS、安全更新和安全啟動(dòng))來(lái)實(shí)現(xiàn)各種功能,包括設(shè)備管理、遠(yuǎn)程設(shè)備控制和安全固件無(wú)線傳輸(FOTA)更新。
LARA-R6 系列支持 3GPP Release 10 規(guī)定的 LTE Cat 1,并通過(guò)三個(gè)區(qū)域變體實(shí)現(xiàn)全球覆蓋:
LARA -R6001-00B(數(shù)據(jù)和語(yǔ)音)和LARA-R6001D-00B(僅數(shù)據(jù))模塊支持 18 個(gè) LTE FDD/TDD 頻段以及用于全球連接的 3G/2G 回退。
LARA -R6401-00B(數(shù)據(jù)和語(yǔ)音)和LARA-R6401D-00B(僅數(shù)據(jù))模塊為北美提供理想的 LTE Cat 1 解決方案,支持 AT&T、FirstNet、Verizon 和 T-Mobile 的 LTE 頻段。
LARA -R6801-00B(數(shù)據(jù)和語(yǔ)音)和LARA-R6801D-01B(僅數(shù)據(jù))模塊設(shè)計(jì)用于在以下區(qū)域部署:歐洲和中東 (EMEA)、亞太地區(qū) (APAC)、日本 (JP)和拉丁美洲 (LATAM)(圖 1)。

圖 1:LARA-R6 模塊的三個(gè)區(qū)域變體覆蓋全球。 (圖片來(lái)源:DigiKey,作者修改)
LARA-R6 特色一覽
LARA-R6 模塊集成了帶有外部接口的蜂窩基帶處理器、帶有放大器和濾波器的射頻收發(fā)器、存儲(chǔ)器以及電源管理單元(圖 2)。

圖 2:LARA-R6 模塊的內(nèi)部結(jié)構(gòu)。 (圖片來(lái)源:u-blox)
RF 收發(fā)器的工作頻段為 700 MHz、800 MHz、850 MHz、900 MHz、1.7 GHz、1.8 GHz、1.9 GHz、2.1 GHz 和 2.6 GHz。蜂窩基帶處理器的所有數(shù)據(jù)傳輸協(xié)議都可以使用外部UART和USB接口通過(guò)AT命令進(jìn)行控制和配置。
協(xié)議
雙棧 IPv4 和 IPv6
嵌入式 TCP/IP、UDP/IP、FTP 和 HTTP
嵌入式 MQTT 和 MQTT-SN
嵌入式LwM2M
eSIM 和承載獨(dú)立協(xié)議 (BIP)
LARA-R6 模塊需要 3.1 至 4.5 伏的電源電壓,空閑電流消耗約為 1.1 毫安 (mA)。在 2G 操作中,單個(gè) TDMA 時(shí)隙可達(dá)到超過(guò) 33 分貝的峰值傳輸功率(以 1 毫瓦 (mW) (dBm)(> 2.0 瓦)為參考),所有其他 RAT 達(dá)到超過(guò) 24 dBm(> 0.25 瓦)的水平。
低于 -100 dBm 的出色天線靈敏度(對(duì)應(yīng)于低于 0.1 皮瓦 (pW) 的信號(hào)功率)可在移動(dòng)網(wǎng)絡(luò)邊緣實(shí)現(xiàn)穩(wěn)定的無(wú)線電連接。
評(píng)估和編程
開(kāi)始評(píng)估和編程 LARA-R6 模塊的最快方法是使用適用于相應(yīng)區(qū)域的 R6 EVB (EVK-R6) 和插入式 LARA-R6 適配器板 (ADP-R6)。例如,面向全球應(yīng)用的EVK-R6001-00B包括插入式適配器板ADP-R6001-00B(語(yǔ)音 + 數(shù)據(jù))和 GNSS 適配器板(圖 3)。

圖 3:LARA-R6 EVB (EVK-R6) 附帶 LARA-R6 適配器板(底部)和 GNSS 板(左上)。 (圖片來(lái)源:u-blox)
適用于北美的 EVK-R6401-00B 型號(hào)包括ADP - R6401-00B適配器,而適用于 EMEA/APAC/JP/LATAM 的EVK-R6801-00B包括ADP-R6801-00B適配器。已經(jīng)提到的用于語(yǔ)音和數(shù)據(jù)傳輸?shù)娜齻€(gè)適配器板也可以單獨(dú)提供,以及僅用于數(shù)據(jù)傳輸?shù)陌姹?,包? ADP -R6401D-00B(北美)和ADP-R6001D-00B(全球)。
R6 適配器板通過(guò)兩個(gè)天線和兩個(gè) MiniUSB 連接器擴(kuò)展了 LARA-R6 模塊。 R6 EVB 為模塊外設(shè)添加了 GNSS 模塊、SIM 卡插槽、額外的插入式連接、跳線、開(kāi)關(guān)和電源(圖 4)。

圖 4:插入 GNSS 和 LARA-R6 適配器的 R6 EVB 的功能框圖。(圖片來(lái)源:u-blox)
每個(gè)套件包含一個(gè) EVB(附帶 LTE Cat 1 LARA-R6 適配器板和 u-blox 的 GNSS 模塊)、一根 USB 電纜、兩根 LTE 移動(dòng)無(wú)線電天線、一根 GPS/GLONASS 天線和一個(gè)電源裝置。
EVK 的調(diào)試
u-blox 易于使用且功能強(qiáng)大的 EVK-R6 套件簡(jiǎn)化了多模 LTE Cat 1 / 3G / 2G 蜂窩模塊的評(píng)估。安裝了 LARA-R6 USB 驅(qū)動(dòng)程序的 Windows PC通過(guò) USB 連接器控制 LARA-R6 調(diào)制解調(diào)器,并通過(guò)系統(tǒng)設(shè)置簡(jiǎn)化連接設(shè)置。首先,開(kāi)發(fā)人員需要:
插入 SIM 卡并連接蜂窩天線和 GNSS 天線。
仔細(xì)配置 EVK 的跳線和開(kāi)關(guān)。
施加電源電壓并打開(kāi) EVB 上的主開(kāi)關(guān) SW400。
要通過(guò)“主 UART”接口作為低數(shù)據(jù)速率調(diào)制解調(diào)器運(yùn)行,請(qǐng)將 PC 連接到 EVK 上的 MiniUSB 插孔 J501 或 RS232 插孔 J500。
要通過(guò)“兩個(gè) UART”作為低數(shù)據(jù)速率調(diào)制解調(diào)器運(yùn)行,請(qǐng)將 PC 連接到 ADP 上的蜂窩 USB 插孔 J201 接口。
要通過(guò)“本機(jī)蜂窩 USB”作為高數(shù)據(jù)速率調(diào)制解調(diào)器運(yùn)行,請(qǐng)將 PC 連接到 ADP 上的 MiniUSB 插孔 J105。
按下 EVB 上的蜂窩開(kāi)機(jī)按鈕 SW302。
運(yùn)行終端應(yīng)用軟件(如m-center),進(jìn)入COM口設(shè)置菜單,選擇4a、4b、4c對(duì)應(yīng)的AT口,并設(shè)置以下值: 數(shù)據(jù)速率:115,200 bps;數(shù)據(jù)位:8;奇偶校驗(yàn):N;停止位:1。
有關(guān)更多詳細(xì)信息,請(qǐng)參閱EVK-R6_UserGuide_UBX-21035387。 m-center 工具可幫助評(píng)估、配置和測(cè)試 u-blox 蜂窩產(chǎn)品,并且包含一個(gè) AT 命令終端。
使用 Windows PC 進(jìn)行簡(jiǎn)單的互聯(lián)網(wǎng)連接
通過(guò)將 Windows PC 連接到 EVK,用戶可以通過(guò)兩種方式建立無(wú)線 Internet 連接:
1:低速分組數(shù)據(jù)連接:通過(guò) LARA-R6 模塊的 UART 接口使用 Windows PC 的 TCP/IP 堆棧。 PC和EVK按照方法4a連接。開(kāi)發(fā)人員必須使用 Windows 控制面板選擇電話和調(diào)制解調(diào)器 > 調(diào)制解調(diào)器 > 添加。下一步是選中“不檢測(cè)我的調(diào)制解調(diào)器”復(fù)選框,選擇“標(biāo)準(zhǔn) 33.6 kbps 調(diào)制解調(diào)器”,然后分配 COM 端口。如有必要,開(kāi)發(fā)人員可以添加“屬性”>“高級(jí)”>“額外初始化”命令。
2:高速分組數(shù)據(jù)連接:通過(guò) LARA-R6 模塊的蜂窩本機(jī) USB 接口,使用 Windows PC 的 TCP/IP 堆棧訪問(wèn)互聯(lián)網(wǎng)。 PC和EVK按照方法4c連接。開(kāi)發(fā)者必須通過(guò) Windows 控制面板選擇“網(wǎng)絡(luò)和共享中心”>“設(shè)置新連接或網(wǎng)絡(luò)”,然后單擊“連接到 Internet”。下一步是選擇“撥號(hào)”和 AT USB 端口之一。最后一步是輸入撥號(hào)參數(shù)(撥入號(hào)碼、提供商名稱、用戶 ID 和密碼)。
向移動(dòng)運(yùn)營(yíng)商注冊(cè) SIM 卡
一旦配置了SIM卡和MNO參數(shù),蜂窩模塊上電后會(huì)自動(dòng)在蜂窩網(wǎng)絡(luò)上注冊(cè)。如果出現(xiàn)問(wèn)題,可以使用表2所示的AT命令手動(dòng)檢查注冊(cè)情況。
表 2:AT 注冊(cè)命令。 (表格來(lái)源:u-blox,作者修改)
通過(guò)AT命令與遠(yuǎn)程HTTP服務(wù)器通信
GitHub 存儲(chǔ)庫(kù)“ Firechip_u-blox_LARA-R6_Arduino_Library ”包含用于 LARA-R6 模塊的廣泛 AT 命令庫(kù),以 C++ 編寫,適用于Arduino控制器。包括 ping 測(cè)試、注冊(cè)、數(shù)據(jù)包交換、SMS、GNSS 和物聯(lián)網(wǎng)云在內(nèi)的 16 個(gè)應(yīng)用示例為自定義代碼結(jié)構(gòu)提供了建議。
AT 命令還可以在活動(dòng)連接期間向遠(yuǎn)程 HTTP 服務(wù)器發(fā)送請(qǐng)求、接收服務(wù)器響應(yīng)并將該響應(yīng)透明地存儲(chǔ)在本地文件系統(tǒng)中。支持的方法有 HEAD、GET、DELETE、PUT、POST 文件和 POST 數(shù)據(jù)。
Lara_R6_Example9 使用 HTTP POST 或 GET 將隨機(jī)溫度發(fā)送到 RemoteHTTP 服務(wù)器ThingSpeak.com。 ThingSpeak 是 MathWorks 提供的物聯(lián)網(wǎng)分析平臺(tái)服務(wù),有助于聚合、可視化和分析云中的實(shí)時(shí)數(shù)據(jù)流。表 3 顯示了 HTTP 命令“POST data”的語(yǔ)法。
表 3:“POST 數(shù)據(jù)”是 HTTP 命令編號(hào) 5,格式如下所示。 (表格來(lái)源:u-blox,作者修改)
該示例可以在 Arduino 主機(jī)控制器上進(jìn)行編程,該控制器通過(guò) AT 命令控制 EVK 板上的 LARA-R6 模塊。此外,還需要一張已配置的 SIM 卡。
程序員必須創(chuàng)建一個(gè) ThingSpeak 用戶帳戶,并通過(guò)菜單項(xiàng) Channels > My Channels > New Channel 將字段 1 設(shè)置為隨機(jī)溫度測(cè)量值。在主程序中,在變量“LARA-R6_Example9_ThingSpeak.ino”中輸入相應(yīng)的“Write API Key” myWriteAPIKey。
C++ 主程序生成隨機(jī)溫度值,形成云特定數(shù)據(jù)字符串,并sendHTTPPOSTdata每 20 秒調(diào)用庫(kù)函數(shù)(清單 1)。
復(fù)制
...
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:該主程序生成一個(gè)隨機(jī)溫度值,并sendHTTPPOSTdata每 20 秒調(diào)用一次庫(kù)函數(shù)。 (代碼來(lái)源:Github 上的 Firechip)
生成調(diào)用庫(kù)函數(shù)的AT命令串
庫(kù)頭文件“Firechip_u-blox_LARA-R6_Arduino_Library.h”將函數(shù)調(diào)用 sendHTTPPOSTdata 轉(zhuǎn)發(fā)到庫(kù)過(guò)程“Firechip_u-blox_LARA-R6_Arduino_Library.cpp”,其中生成并發(fā)送完全格式化的 AT 命令字符串(清單 2)。
復(fù)制
...
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++ 庫(kù)過(guò)程生成并發(fā)送完全格式化的 AT 命令字符串(第 12 行)。 (代碼來(lái)源:Github 上的 Firechip)
庫(kù)過(guò)程LARA_R6::sendHTTPPOSTdata(清單 2)使用函數(shù)調(diào)用傳遞的參數(shù)myLARA.sendHTTPPOSTdata()(清單 1)以及庫(kù)標(biāo)頭中另外聲明的變量,根據(jù)表 3 生成完整的 HTTP 命令字符串。最后,LARA-R6 調(diào)制解調(diào)器發(fā)送生成的 AT發(fā)送至 ThingSpeak RemoteHTTP 服務(wù)器的命令字符串:
AT+UHTTPC=0,5,"/update","post_response.txt","api_key=PFIOEXW1VF21T7O6&field1=21.54",0
結(jié)論
對(duì)于低功耗物聯(lián)網(wǎng)和 M2M 應(yīng)用的全球網(wǎng)絡(luò),LARA-R6 系列的 LTE Cat 1 多模無(wú)線電模塊高效且經(jīng)濟(jì)高效。如圖所示,開(kāi)發(fā)人員可以使用 EVK 輕松訪問(wèn)所有接口,并可以通過(guò) AT 命令輕松配置和控制模塊的協(xié)議和功能。這提供了作為 PC 調(diào)制解調(diào)器運(yùn)行、將數(shù)據(jù)發(fā)送到云端以及通過(guò)庫(kù)函數(shù)生成 AT 命令字符串的簡(jiǎn)單選項(xiàng)。
責(zé)任編輯:David
【免責(zé)聲明】
1、本文內(nèi)容、數(shù)據(jù)、圖表等來(lái)源于網(wǎng)絡(luò)引用或其他公開(kāi)資料,版權(quán)歸屬原作者、原發(fā)表出處。若版權(quán)所有方對(duì)本文的引用持有異議,請(qǐng)聯(lián)系拍明芯城(marketing@iczoom.com),本方將及時(shí)處理。
2、本文的引用僅供讀者交流學(xué)習(xí)使用,不涉及商業(yè)目的。
3、本文內(nèi)容僅代表作者觀點(diǎn),拍明芯城不對(duì)內(nèi)容的準(zhǔn)確性、可靠性或完整性提供明示或暗示的保證。讀者閱讀本文后做出的決定或行為,是基于自主意愿和獨(dú)立判斷做出的,請(qǐng)讀者明確相關(guān)結(jié)果。
4、如需轉(zhuǎn)載本方擁有版權(quán)的文章,請(qǐng)聯(lián)系拍明芯城(marketing@iczoom.com)注明“轉(zhuǎn)載原因”。未經(jīng)允許私自轉(zhuǎn)載拍明芯城將保留追究其法律責(zé)任的權(quán)利。
拍明芯城擁有對(duì)此聲明的最終解釋權(quán)。