然而,為物聯網邊緣構建強大的產品并非易事。隨著物聯網世界中越來越多的事物連接到互聯網,對聯網設備的需求不僅可以連接到云,還可以在邊緣處理復雜的計算。
OEM 不斷尋找新的、更有用的方法來利用傳感器的功能、監控數據類型、處理信息、連接到云以及控制設備的生態系統。物聯網應用的可能范圍是無窮無盡的,從家庭、汽車、可穿戴設備、工業到智能城市。
MCU 和連接設備是這些基于物聯網的產品的核心。為了幫助物聯網設計師設計獨特、高效、安全和美觀的設備,芯片制造商正在集成更多功能和外圍設備,同時通過機器學習和人工智能等高級功能增強可用處理能力。這些嵌入式計算和無線設備必須無縫協同工作以降低設計復雜性。
通過隱藏或抽象復雜性并為物聯網設計人員開發應用程序提供簡單、安全和直觀的平臺的現代軟件套件,使這種復雜性最小化的關鍵部分成為可能。這些專門設計的軟件環境處理硬件配置,并允許跨多個設備、各種平臺和網絡輕松連接,以創建一個通信網絡,從而徹底改變我們在這個數字世界中智能交互的方式。
本文將詳細探討這些挑戰,并解釋直觀的軟件環境如何與優化的物聯網硬件相得益彰,以提供完整強大的安全平臺,以更快的速度開發智能物聯網解決方案。作為說明,我們將以低功耗物聯網設備為例,使用 MQTT 協議安全連接到云端。
設計嵌入式物聯網系統的挑戰
讓我們首先了解設計物聯網應用程序的挑戰,然后探索現代軟件如何幫助物聯網設計師克服這些挑戰。圖 1 顯示了主要挑戰。
上市時間
每年連接到 Internet 的設備數量都在以指數速度增長。為了跟上競爭,上市時間是關鍵。但是,軟件對開發時間和成本有重大影響。選擇正確的軟件和工具可以簡單地加快開發速度,從而顯著縮短生產時間。由于構建現實世界的物聯網應用程序涉及大量協議,該軟件還需要處理各種協議的底層復雜性,以幫助應用程序在物聯網世界中無縫交互。為了防止這些協議和不斷變化成為設計人員資源的消耗,軟件需要將應用程序與硬件變化隔離開來。
使用方便
為了支持物聯網應用的復雜計算需求,MCU 變得更加復雜,以提供更多的處理能力、安全性和智能邏輯。他們還必須提供許多外圍設備來支持額外的功能,如音頻、與外部存儲器的接口、電機控制等。除此之外,MCU 還具有管理無線系統的額外任務。同時支持嵌入式和無線系統的軟件工具可以節省大量的開發時間并增強用戶友好性。這些工具面臨的最大挑戰不僅在于隱藏硬件復雜性,還在于提供易于使用、基于 GUI 的開發平臺。為達到這個,
開發平臺
IoT 開發工具 - 構建 IoT 應用程序需要完整的軟件開發套件。這些軟件工具包括集成開發環境 (IDE)、命令行界面 (CLI)、軟件開發工具包 (SDK) 以及為物聯網開發人員量身定制的庫或 API。這些軟件開發工具可以在物聯網開發平臺之上使用或與它們結合使用。簡單直觀的開發平臺通過提供完全使用供應商的 IDE 和工具進行開發的選項或在您選擇的任何其他 IDE(如 IAR Embedded Workbench、Arm 微控制器開發套件和 Microsoft Visual Studio Code)上開發應用程序,為物聯網開發人員提供了靈活性使用供應商提供的工具。
操作系統的選擇——物聯網包括從小型傳感器到機器人等復雜系統的各種設備。為物聯網系統選擇操作環境是影響固件開發方法的關鍵任務之一。物聯網操作系統的重要要求包括優化內存占用、能源效率、集成安全性、連接功能、硬件無關操作和實時處理能力。物聯網操作環境從裸機到嵌入式操作系統,再到滿足物聯網應用不同需求的全功能操作系統。嵌入式物聯網應用程序的開發平臺有多種選擇,包括 Mbed OS 和 Amazon FreeRTOS,僅舉兩例。除了這些平臺,嵌入式和連接設備供應商有時會提供額外的庫來支持定制的物聯網功能。這些庫/平臺補充了開發操作系統,以在直觀的物聯網開發環境中提供嵌入式和無線功能。設備供應商提供的功能豐富的庫與基于應用程序選擇的操作系統的無縫組合為物聯網開發人員提供了一個全面的物聯網解決方案開發平臺。
能夠連接到您選擇的云
隨著更多嵌入式設備的連接,有許多可用的云服務。任何計劃開發現實世界物聯網應用程序的人都可以為各種任務挑選云服務組合。因此,嵌入式軟件必須高度靈活,以支持各種云服務(AWS、Azure、AliOS等)和平臺。該軟件必須讓開發人員按照自己的方式設計系統,而不是將其限制在某些選項中。獨立于硬件的軟件架構是解決此問題的關鍵,提供此功能的軟件生態系統為用戶提供了極大的靈活性。
安全性:不可協商的元素
一旦連接了設備,就會引入被黑客入侵的可能性。因此,物聯網設備的安全性是不可協商的因素,無論設備是個人可穿戴設備還是聯網汽車。所有級別都需要數據保護,包括存儲、處理和通信期間,以確保系統可靠性。為物聯網應用程序設計的硬件需要具備開發安全和安全應用程序的所有元素。除了硬件安全之外,軟件還需要補充這些硬件安全元素。還需要以與應用程序的處理和成本要求相匹配的方式集成安全性。
應對嵌入式物聯網系統中的挑戰
讓我們以基于 MQTT 的低功耗嵌入式 IoT 應用程序為例,更深入地討論上述概念。MQTT 是嵌入式系統用于連接物聯網世界的流行通信協議。在典型的物聯網系統中,嵌入式設備收集各種傳感器數據,對其進行處理,并使用 MQTT 協議將信息傳送到遠程云系統。
要構建這樣的應用程序,您需要一個專為物聯網應用程序設計的超低功耗微控制器(例如PSoC 6 MCU)和一個低功耗無線連接設備(例如CYW43012 Wi-Fi/BT 組合設備)。為了進行高效開發,需要一個能夠同時開發和調試這些嵌入式和無線設備的軟件平臺,例如 ModusToolbox。模式工具箱是一個完整的嵌入式和物聯網應用開發系統。圖 2 概述了 ModusToolbox。它為物聯網開發人員提供基于 GUI 的工具、固件、中間件、API 和文檔。借助 GitHub 中提供的板級支持包 (BSP)、中間件庫和模板應用程序,開發人員可以直接訪問他們需要的資源。此外,在 ModusToolbox 中創建的項目可以導出到其他 IDE,例如 IAR Embedded Workbench、Arm 微控制器開發套件和 Microsoft Visual Studio Code。可以在這些環境中繼續進行進一步的開發,同時在用戶首選的編譯器工具鏈(如 GCC、ARM、IAR)的幫助下構建項目,如圖 2 中的白框突出顯示的那樣。
(圖 2. ModusToolbox - 高級概述)
ModusToolbox 提供了一系列稱為AnyCloud 解決方案的軟件庫,用于快速開發 Wi-Fi 和藍牙應用程序(參見圖 3)。USB 和 CapSense 等紫色塊代表 MCU 庫。MQTT 和 Low Power Assistant (LPA) 等綠色塊是連接庫。這些 MCU 和連接庫無縫集成以實現安全的物聯網應用程序開發。
(圖 3. AnyCloud 軟件堆棧)
對于 MQTT 應用,AnyCloud 提供單一軟件環境,隱藏各種復雜性,例如處理網絡連接、IP 地址更改等的 Wi-Fi 連接管理;網絡套接字創建;傳輸層安全 (TLS) 等等。它為用戶提供了根據自己的風格開發應用程序的靈活性。要開發基于 MQTT 的物聯網系統,物聯網設計人員可以從現有的 MQTT 應用程序開始,該應用程序可作為 Project Creator GUI 工具中所需設備的模板應用程序的一部分(參見圖 4)。
(圖 4. 使用模板應用程序創建 IoT 項目)
擁有現有項目并需要將 MQTT 添加到其應用程序的 IoT 開發人員可以使用 Library Manager 來執行此操作。庫管理器管理和導入應用程序使用的庫,并處理所選庫所具有的依賴關系。它還遞歸地導入頂級應用程序所需的所有庫。對于這個低功耗物聯網項目,物聯網設計人員將啟用“mqtt”庫,庫管理器會自動引入所有依賴項,如下圖 5 所示。
(圖 5. 將 MQTT 功能添加到現有項目)
導入 MQTT 包后,IoT 設計人員可以使用 MQTT 模板應用程序和 MQTT 庫提供的非常詳細的 README 文件來獲取更多信息以啟動應用程序開發。圖 6 顯示了各個 README 文件的一部分,這些文件可幫助物聯網設計人員開始并按照他們想要的開發流程運行他們的應用程序。
(圖 6. 用于快速啟動 IoT 軟件的詳細自述文件)
一旦 MQTT 實施,物聯網開發人員的主要關注點通常是低功耗。節能物聯網系統的一個關鍵特征是“卸載”。主機卸載使主機 PSoC 6 MCU 能夠長時間進入深度睡眠,同時無線設備代表 MCU 主機處理諸如 ARP 請求、TCP 保活等任務。主機卸載在優化主機功耗方面發揮著關鍵作用。 此外,這些卸載可以釋放主機 CPU 以執行其他更強大的任務,例如音頻或傳感器數據處理。這反過來又提高了整個系統的效率和功率。在現實世界的物聯網系統中配置這些卸載將是一項復雜的任務。借助集成了 MCU 和無線設計的工具環境,可以減少開發時間和工作量。
例如,ModusToolbox 附帶的“低功耗助手”(LPA) 配置器工具使開發人員能夠通過啟用復選框并選擇必要的配置來配置低功耗卸載,如圖 7 所示。該工具會根據應用程序的這些配置設置自動生成源代碼。
(圖 7. 低功耗助手 (LPA) 工具)
此外,需要編寫大量代碼才能為 MCU 配置各種引腳、外設和時鐘。配置器提供了一種使用 GUI 執行此類任務的簡單方法,從而消除了開發人員手動編寫這些任務的時間。配置器還可以幫助進行各種 MCU 相關設置,例如 GPIO 引腳設置、外設配置、模擬路由、系統設置、時鐘樹設置和 DMA 路由。圖 8 顯示了其中一些配置器:GPIO 引腳配置、外設配置和時鐘設置。項目創建者、庫管理器、USB 配置器、設備固件更新主機、藍牙配置器和分段 LCD 配置器等工具也顯著減少了物聯網開發人員的開發時間和工作量。
(圖 8. (a) 引腳配置器 GUI 工具)
(圖 8. (b) 外設配置器 GUI 工具)
(圖 8. (c) 系統時鐘配置器 GUI 工具)
一些應用程序在開發中需要更大的靈活性來自定義設置。需要時,可以使用手動編碼覆蓋 GUI 工具所做的配置。此外,更靈活的開發平臺提供了可以與許多第三方 IDE 集成的構建系統,高級用戶也可以使用 CLI 工具。擁有如此強大而靈活的開發平臺可以加快生產時間并大大提高效率。
隨著許多云服務和平臺的出現,OEM 需要靈活并能夠快速適應創新。靈活性的一個關鍵要素是使用能夠適應各種物聯網平臺并支持廣泛生態系統的開發工具進行設計。在本文中,我們探討了設計物聯網系統的最重要挑戰,以及軟件工具如何通過隱藏物聯網架構所需的底層復雜性來簡化設計復雜性。這些軟件平臺還為高級開發人員提供了定制物聯網系統大部分設計方面的靈活性。這是通過在硬件和軟件堆棧中主動和無縫集成嵌入式和連接設備來實現的。MCU 和無線設備的這種集成是緊湊型。
關于作者
Jaya Kathuria Bindra 在英飛凌科技公司擔任高級應用工程師經理,負責管理嵌入式應用組和使用 PSoC 和 WiFi/BT 平臺的解決方案開發。她在半導體行業擁有 16 年以上的經驗。她獲得了班加羅爾 IIM 的 MBA 證書,并擁有 Kurukshetra 大學的電子工程學士學位。
Shriram M 是英飛凌科技公司的應用工程師。他致力于使用英飛凌的 PSoC 和 WiFi/BT 平臺進行嵌入式應用和解決方案開發。他擁有班加羅爾 RV 工程學院的電子和通信學士學位。
審核編輯:郭婷
-
半導體
+關注
關注
334文章
27503瀏覽量
219737 -
應用程序
+關注
關注
37文章
3283瀏覽量
57750 -
GUI
+關注
關注
3文章
662瀏覽量
39758
發布評論請先 登錄
相關推薦
評論