得益于硬件制造商和蜂窩服務(wù)提供商的新興解決方案,蜂窩技術(shù)為物聯(lián)網(wǎng)連接提供的選擇日益受到青睞。盡管蜂窩硬件模塊的可獲得性不斷提升,但由于開發(fā)人員需設(shè)法應(yīng)對低級握手協(xié)議和更高級別的服務(wù)協(xié)議,且同時要確保安全實現(xiàn),物聯(lián)網(wǎng)開發(fā)仍面臨嚴(yán)重延遲。
本文簡要回顧了蜂窩技術(shù)作為物聯(lián)網(wǎng)應(yīng)用的有效連接選項而興起的背后因素,并討論了其實現(xiàn)面臨的挑戰(zhàn)。然后會介紹 STMicroelectronics 提供的一個現(xiàn)成的蜂窩開發(fā)平臺,并展示它如何用于解決實際連接問題,包括對物聯(lián)網(wǎng)設(shè)備越來越重要的高級通信和安全性。
物聯(lián)網(wǎng)的無線選擇
無線連接已成為許多物聯(lián)網(wǎng)應(yīng)用的基本要求。盡管存在各種可用無線技術(shù),但技術(shù)的選擇通常主要取決于對數(shù)據(jù)速率和傳輸范圍的要求(圖 1)。
雖然藍牙、Zigbee 和 Wi-Fi 繼續(xù)在短距離通信中占據(jù)主導(dǎo)地位,但許多物聯(lián)網(wǎng)應(yīng)用需要達到的物理距離遠非這些技術(shù)所能及。對于這些應(yīng)用,新興的低功耗廣域網(wǎng) (LPWAN) 技術(shù)(如 LoRaWAN,Sigfox 等)可滿足范圍要求,但通常無法支持更高的數(shù)據(jù)速率。
面向物聯(lián)網(wǎng)的 LTE
商用蜂窩提供商通過擴充 LTE 網(wǎng)絡(luò)迅速進軍物聯(lián)網(wǎng)領(lǐng)域,提供的帶寬和范圍遠遠超出其他常用無線連接選項。它們還具有使用許可頻帶的優(yōu)勢,這些頻帶不易受到干擾。隨著第三代合作伙伴計劃 (3GPP) LTE 版本 13 中定義的窄帶 LTE 服務(wù)變得可用,即使對于功率受限的設(shè)備,蜂窩也已經(jīng)成為可行的選擇。
更為人所熟悉的 LTE 服務(wù)滿足了對視頻流所需的高帶寬網(wǎng)絡(luò)日益增長的需求,而包括 LTE CAT M1 和窄帶物聯(lián)網(wǎng) (NB-IoT) 在內(nèi)的窄帶 LTE 服務(wù)對帶寬和功能性的要求較為適中。這些更簡單的要求進而使 LTE 收發(fā)器制造商能夠構(gòu)建出相應(yīng)的解決方案,以滿足物聯(lián)網(wǎng)設(shè)計人員對更易于在資源受限型設(shè)計中集成的低功耗設(shè)備的需求。
LTE 收發(fā)器制造商提供了更有效的解決方案,而蜂窩提供商的 CAT M1 和 NB-IoT 服務(wù)則實現(xiàn)了更廣泛的地理覆蓋范圍,這兩者相結(jié)合,使得蜂窩連接成為物聯(lián)網(wǎng)設(shè)計人員的可行選擇。實際上,開發(fā)人員可以利用的窄帶 LTE 模塊選擇越來越多,例如 u-blox 的 SARA-R410M 或 Link Labs 的 LL-LTE-M-VZN-SE,這些模塊已通過運營商認證,可以為物聯(lián)網(wǎng)設(shè)備和其他連接應(yīng)用快速開發(fā)蜂窩連接。這些 CAT M1 和 NB-IoT 模塊將嵌入式處理器與收發(fā)器和完整的 RF 信號路徑結(jié)合在了一起,包括了輸出功率放大器 (PA)、輸入放大器、交換機和濾波器(圖 2)。
對于開發(fā)人員而言,將這些高度集成的設(shè)備整合至定制設(shè)計中時,在硬件和軟件層面都相對簡單。這些模塊通常支持一個或多個標(biāo)準(zhǔn)串行接口,并支持 GPIO、天線檢測和 SIM 卡接口等。因此,開發(fā)人員只需添加合適的天線并將模塊連接到主處理器的 SPI 或 I2C 總線,或使用基本的 UART 控制,即可快速完成硬件集成。
這些模塊的軟件控制要求也同樣簡單。與大多數(shù)收發(fā)器模塊一樣,自最早期的計算機調(diào)制解調(diào)器開始,窄帶 LTE 模塊就能響應(yīng)所用的相同類型 AT 命令序列協(xié)議。但是,這些 LTE 模塊的功能性獲得了明顯提升,允許開發(fā)人員使用單個 AT 命令執(zhí)行更復(fù)雜的操作。使用 u-blox 的 SARA-R410M 模塊,開發(fā)人員可以從主機發(fā)送 AT + USOCO = 0、“8.8.8.8”、1111 等命令,以建立與遠程服務(wù)器的對等網(wǎng)絡(luò)連接。在這種情況下,模塊將完成在端口 1111 上與遠程主機 8.8.8.8 建立連接(識別為套接字 0)所需的事務(wù)處理序列,自動執(zhí)行 TCP 連接的握手協(xié)商。
雖然硬件和命令接口在基礎(chǔ)級別很簡單,但在更高級別的通信協(xié)議中使用它們時要復(fù)雜得多。物聯(lián)網(wǎng)開發(fā)人員可能發(fā)現(xiàn)自己很難實現(xiàn)許多應(yīng)用所需的高級協(xié)議和服務(wù)。但是,使用 STMicroelectronics 的 P-L496G-CELL02 開發(fā)套件和相關(guān)軟件,開發(fā)人員可以更快速地在物聯(lián)網(wǎng)設(shè)備中部署蜂窩連接。
蜂窩開發(fā)平臺
P-L496G-CELL02 套件提供完整的蜂窩物聯(lián)網(wǎng)開發(fā)平臺,包括 MCU 主機板、LTE 模塊擴展板、天線和 SIM 卡。作為 STMicro 的 Discovery 開發(fā)板系列的一員,主機板基于 STMicro STM32L496AGI6P MCU 構(gòu)建而成,并提供板載調(diào)試器以及麥克風(fēng)、LED 和用作基本用戶界面功能的按鈕。
雖然該開發(fā)板相對簡單,但 STM32L496 MCU 可提供廣泛的功能。MCU 基于帶浮點單元 (FPU) 的 Arm? Cortex?-M4 32 位內(nèi)核,集成了 1 MB 閃存和 320 KB SRAM。這為代碼映像,甚至為固件更新過程中經(jīng)常使用的多個代碼映像提供了充足的容量。全套集成模擬和數(shù)字外設(shè)支持數(shù)據(jù)采集、電機控制等一系列典型的物聯(lián)網(wǎng)應(yīng)用需求。
為了滿足 MCU 本身無法提供的要求,開發(fā)人員可以使用主機板的 Arduino 接口,通過各種可用的 Arduino 盾板所具備的功能來增強主機板。物聯(lián)網(wǎng)應(yīng)用中蜂窩連接的新興應(yīng)用之一是將本地物聯(lián)網(wǎng)設(shè)備的小型網(wǎng)絡(luò)連接到云端。對于這種使用場景,開發(fā)人員可以使用 P-L496G-CELL02 套件作為網(wǎng)關(guān),通過蜂窩服務(wù)連接到云端,并通過 Arduino 盾板提供的短距離無線連接選項連接到本地設(shè)備。
例如,開發(fā)人員可以通過添加 Inventek Systems 的 ISMART43340-C 盾板來支持 Wi-Fi 和藍牙連接,或通過添加 DFRobot 的 DFR0015 XBee 適配器盾板和 Digi International 帶集成天線的 XBP24CZ7WIT-004 XBee 模塊,來支持 Zigbee 連接。
當(dāng)然,此類蜂窩網(wǎng)關(guān)的關(guān)鍵部分是蜂窩連接。借助 STMicro 的 P-L496G-CELL02 套件,開發(fā)人員只需將 LTE 模塊擴展板插入主機板的 STMod+ 連接器,即可使用 LTE CAT M1 或 LTE NB-IoT 運營商服務(wù)支持蜂窩連接。為了補充此蜂窩硬件平臺,STMicro 提供了一個廣泛的軟件環(huán)境,可演示蜂窩連接,并成為構(gòu)建定制應(yīng)用的基礎(chǔ)。
軟件環(huán)境
STMicro 的軟件環(huán)境建立在其 STM32Cube 軟件架構(gòu)之上,該架構(gòu)提供基于中間件組件的應(yīng)用軟件支持,包括實時操作系統(tǒng)、USB 支持、文件系統(tǒng)服務(wù)等。中間件層位于硬件抽象層 (HAL) 之上,可實現(xiàn)跨越不同 STMicro MCU 系列的可移植性。在開發(fā)期間,開發(fā)人員可使用 STMicro 的 STM32CubeMX 工具中的圖形向?qū)碇付ㄅ渲茫摴ぞ呖勺詣由?C 語言初始化代碼。
開發(fā)人員可在 STM32Cube 環(huán)境基準(zhǔn)功能的基礎(chǔ)之上,進一步添加擴展包,從而提供所需的庫和軟件示例以支持特定功能區(qū)域。值得一提的是,對于物聯(lián)網(wǎng)開發(fā)人員來說,兩個 STM32Cube 擴展包所支持的功能對任何連網(wǎng)的應(yīng)用都很重要:STMicro X-CUBE-CLD-GEN 物聯(lián)網(wǎng)云軟件擴展和 STMicro X-CUBE-SBSFU(安全引導(dǎo)和安全固件更新)軟件擴展。
為了支持通信,X-CUBE-CLD-GEN 軟件包添加了全套中間件組件,包括 Eclipse Paho 項目的 MQTT 服務(wù)、mbed TLS 和 lwIP TCP/IP 堆棧(圖 3)。該擴展包還提供樣例應(yīng)用程序,演示如何使用 MQTT 和 HTTP 協(xié)議連接到物聯(lián)網(wǎng)云平臺,包括 Eclipse Mosquitto、Litmus Automation 和 Ubidots。
包含在 X-CUBE-CLD-GEN 發(fā)行版中的 MQTT 樣例應(yīng)用程序 GenericMQTTXcubeSample.c 提供了實現(xiàn)基于 MQTT 的云連接所需代碼的詳細示例。除了各種輔助函數(shù)外,該模塊還演示了打開 MQTT 連接、構(gòu)建消息以及將消息發(fā)布到 MQTT 服務(wù)器所需的軟件設(shè)計模式。
STMicro 使設(shè)置基于 MQTT 的基礎(chǔ)網(wǎng)絡(luò)變得更加容易。P-L496G-CELL02 套件配有 EMnify 蜂窩 SIM 卡,并可免費訂購 EMnify 網(wǎng)絡(luò)三個月。使用此 SIM 卡,開發(fā)人員可以將 CELL02 套件連接到通過 EMnify 網(wǎng)絡(luò)與應(yīng)用服務(wù)器相連的虛擬專用網(wǎng)絡(luò) (VPN)。在此,可使用一個在開發(fā)環(huán)境中的實驗室計算機上或生產(chǎn)環(huán)境中的公共網(wǎng)絡(luò)主機上運行的 VPN 網(wǎng)關(guān),通過 OpenVPN 隧道直接在連網(wǎng)設(shè)備和應(yīng)用服務(wù)器之間進行數(shù)據(jù)交換(圖 4)。通過配置 VPN 網(wǎng)關(guān)以重定向流量,這些連接可以直接在應(yīng)用服務(wù)器和設(shè)備之間進行,而無需網(wǎng)絡(luò)地址轉(zhuǎn)換 (NAT)。
X-CUBE-CLD-GEN 擴展解決了物聯(lián)網(wǎng)設(shè)備中云連接的基本要求,而 X-CUBE-SBSFU 軟件擴展則可減輕與云連接相關(guān)的常見來源威脅。STMicro X-CUBE-SBSFU 擴展提供了所需的安全固件更新和安全引導(dǎo)功能,阻止意在用受損代碼替換設(shè)備固件的攻擊,這些代碼可使物聯(lián)網(wǎng)設(shè)備淪為進一步攻擊物聯(lián)網(wǎng)網(wǎng)絡(luò)和應(yīng)用的工具。
除樣例應(yīng)用程序外,X-CUBE-SBSFU 軟件包還通過兩個額外的中間件組件(安全引擎和加密庫)擴展了 STM32Cube 環(huán)境(圖 5)。安全引擎組件提供處理受保護代碼和數(shù)據(jù)的服務(wù),而加密庫則提供用于固件驗證和解密的基于軟件的非對稱和對稱加密機制。
在大多數(shù)系統(tǒng)中,基于軟件的加密可能會為能夠滲透底層機制的黑客提供攻擊面。因此,安全專家通常建議使用基于硬件的機制來提高安全性。但是,對于 STMicro X-CUBE-SBSFU 軟件包,其基于軟件的機制會受到內(nèi)置于 MCU 硬件的硬件式基本安全功能的保護。
STM32L496 MCU 具有多種基于硬件的存儲器保護機制,其中包括存儲器保護單元 (MPU),允許開發(fā)人員為不同的閃存和 SRAM 區(qū)域指定不同的訪問權(quán)限。例如,SBSFU 代碼會配置 MPU,以確保在執(zhí)行 SBSFU 代碼時不執(zhí)行來自其他存儲器區(qū)域的代碼。舉例來說,在執(zhí)行用于固件驗證或安全引導(dǎo)加載的代碼之后,SBSFU 擴展會重新配置 MPU,以允許正常執(zhí)行用戶應(yīng)用程序。
除了 MPU 功能外,STM32L496 MCU 還提供寫保護機制,以保護受信任代碼免受外部或內(nèi)部來源的修改,包括意外或故意的運行代碼嘗試。此外,STM32L496 MCU 的專有代碼讀出保護 (PCRP) 機制允許開發(fā)人員將閃存區(qū)域定義為“僅執(zhí)行”。該 PCRP 機制確保不能通過正常的讀寫操作訪問此“僅執(zhí)行”代碼區(qū)域。
作為進一步的安全措施,STM32L496 MCU 包含一個內(nèi)置防火墻機制,可保護受信任的代碼和數(shù)據(jù)免受防火墻之外代碼的任何訪問。通過防火墻訪問受保護區(qū)域僅能通過單個調(diào)用門進行,該調(diào)用門是位于代碼段基址第二個字的單個入口點。調(diào)用門機制提供可訪問受保護代碼和數(shù)據(jù)的唯一途徑,任何通過調(diào)用門之外的途徑訪問受保護存儲器的嘗試都會導(dǎo)致系統(tǒng)復(fù)位。
SBSFU 擴展使用這些硬件機制來保障基于軟件的中間件,能夠可靠地確保固件驗證和安全引導(dǎo)。例如,要加載加密認證機制所需的密鑰,SBSFU 代碼使用調(diào)用門函數(shù)打開防火墻,并運行受 PCRP 保護的僅執(zhí)行代碼,該代碼將密鑰從閃存移動到受保護的 SRAM 區(qū)域,供庫的加密算法使用(圖 6)。
開發(fā)人員使用 SBSFU 安全引擎 (SE) 應(yīng)用編程接口 (API) 來激活這些均基于硬件的安全機制,以訪問受保護的代碼和數(shù)據(jù)。SE 接口本質(zhì)上是此調(diào)用門機制的包裝器,提供了一種相對簡單的機制,以在應(yīng)用中實現(xiàn)安全功能。要訪問受保護的閃存,用戶應(yīng)用會調(diào)用 SE 接口,該接口可確保關(guān)于使用調(diào)用門、訪問安全引擎、清理堆棧和恢復(fù)防火墻的正確操作順序(圖 7)。開發(fā)人員唯一的責(zé)任是確保在進入此受保護空間之前已禁用中斷,并在退出時重新啟用中斷。
開發(fā)人員可以檢查 X-CUBE-SBSFU 說明文檔和源代碼,以查找關(guān)鍵設(shè)計模式,包括使用調(diào)用門機制的基本方法。對受保護存儲器區(qū)域的任何調(diào)用均以調(diào)用 SE 接口 SET_CALLGATE() 函數(shù)開始,該函數(shù)將指針設(shè)置為 CallGate 函數(shù),然后調(diào)用 SE_EnterSecureMode() 以禁用系統(tǒng)中斷。從這一點開始,對 SE 接口的后續(xù)調(diào)用使用調(diào)用門指針來訪問受保護的代碼和數(shù)據(jù)。最后,調(diào)用序列以對 SE_ExitSecureMode() 的調(diào)用來結(jié)束,其中至少包括啟用系統(tǒng)中斷。
除了這些低級別機制外,X-CUBE-SBSFU 還包含更高級別的功能,旨在簡化安全固件更新和安全引導(dǎo)的實現(xiàn)。開發(fā)人員可以利用這些相同的代碼模式,使用 SE API 函數(shù)(如 SE_CRYPTO_Encrypt_Init,SE_CRYPTO_Decrypt_Init 和 SE_CRYPTO_AuthenticateFW_Init 及相關(guān)函數(shù))實現(xiàn)自定義身份驗證和加密功能。
總結(jié)
LTE 蜂窩技術(shù)正迅速成長為長距離、高可用性物聯(lián)網(wǎng)連接的首選方案。盡管高級 LTE 模塊簡化了硬件設(shè)計,但實現(xiàn)更高級別的功能仍然是一項挑戰(zhàn)。使用 ST P-L496G-CELL02 LTE 蜂窩開發(fā)套件和附帶的軟件,開發(fā)人員可以快速利用窄帶 LTE 連接實現(xiàn)安全的物聯(lián)網(wǎng)應(yīng)用。
-
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2909文章
44635瀏覽量
373361 -
蜂窩技術(shù)
+關(guān)注
關(guān)注
0文章
45瀏覽量
21151
發(fā)布評論請先 登錄
相關(guān)推薦
評論