作者:Jaya Kathuria Bindra,Shriram M
為了在物聯網市場取得成功,原始設備制造商需要能夠以更快的速度擁抱創新。
然而,為物聯網邊緣構建強大的產品并非易事。隨著物聯網世界中越來越多的事物連接到互聯網,對聯網設備的需求不僅能夠連接到云,而且還可以在邊緣處理復雜的計算。
OEM 不斷尋找新的、更有用的方法來利用傳感器的功能、監控數據類型、處理信息、連接到云以及控制設備的生態系統。物聯網應用的可能范圍是無窮無盡的,從家庭、汽車、可穿戴設備、工業到智能城市。
MCU和連接設備是這些基于物聯網的產品的核心。為了幫助物聯網設計人員設計獨特、高效、安全且美觀的設備,芯片制造商正在集成更多功能和外設,同時通過機器學習和人工智能等高級功能增強可用的處理能力。這些嵌入式計算和無線設備必須無縫協同工作,以降低設計復雜性。
通過現代軟件套件,可以隱藏或抽象復雜性,并為物聯網設計人員開發其應用程序提供簡單、安全和直觀的平臺,從而最大限度地降低這種復雜性。這些專門設計的軟件環境處理硬件配置,并允許跨多個設備、各種平臺和網絡輕松連接,以創建一個通信網絡,徹底改變我們在這個數字世界中智能交互的方式。
本文將詳細探討這些挑戰,并解釋直觀的軟件環境如何補充優化的物聯網硬件,為以更快的速度開發智能物聯網解決方案提供完整強大的安全平臺。作為說明,我們將以低功耗物聯網設備為例,使用 MQTT 協議安全地連接到云。
設計嵌入式物聯網系統的挑戰
讓我們首先了解設計物聯網應用程序的挑戰,然后探索現代軟件如何幫助物聯網設計師克服這些挑戰。
上市時間
每年連接到互聯網的設備數量正以指數級的速度增長。為了跟上競爭的步伐,上市時間是關鍵。但是,軟件對開發時間和成本有重大影響。選擇合適的軟件和工具可以簡單而加快開發速度,從而顯著縮短生產時間。由于構建實際物聯網應用程序涉及大量協議,因此該軟件還需要處理各種協議的底層復雜性,以幫助應用程序在物聯網世界中無縫交互。為了防止這些協議和不斷的變化消耗設計人員的資源,軟件需要將應用程序與硬件更改隔離開來。
易用性
為了支持物聯網應用的復雜計算需求,MCU變得更加復雜,以提供更高的處理能力、安全性和智能邏輯。它們還必須提供許多外圍設備以支持其他功能,如音頻、與外部存儲器接口、電機控制等。除此之外,MCU還有一個額外的任務來管理無線系統。在一個保護傘下同時支持嵌入式和無線系統的軟件工具可以節省寶貴的開發時間并增強用戶友好性。這些工具面臨的最大挑戰不僅是隱藏硬件復雜性,而且還要提供一個易于使用的基于 GUI 的開發平臺。為了實現這一目標,開發平臺通常提供許多基于 GUI 的工具和配置器來執行應用程序開發中涉及的大多數任務——項目創建、導入庫、配置外圍設備等?;?GUI 的配置的基礎代碼是自動生成的,并與項目一起構建,以便設計人員能夠以最少的編碼工作開發應用程序。
開發平臺
物聯網開發工具 - 構建物聯網應用程序需要完整的軟件開發套件。這些軟件工具包括集成開發環境 (IDE)、命令行界面 (CLI)、軟件開發工具包 (SDK) 以及為 IoT 開發人員量身定制的庫或 API。這些軟件開發工具可以在物聯網開發平臺之上使用,也可以與它們結合使用。簡單直觀的開發平臺為物聯網開發人員提供了靈活性,因為它提供了完全使用供應商的IDE和工具進行開發的選項,或者在自己選擇的任何其他IDE上開發應用程序,如IAR嵌入式工作臺,Arm 微控制器開發工具包和Microsoft Visual Studio Code以及供應商提供的工具。這些平臺還提供文檔齊全的模板應用程序,使開發人員能夠快速啟動并加速應用程序開發。
操作系統的選擇 - 物聯網包括從小型傳感器到機器人等復雜系統的各種設備。為物聯網系統選擇操作環境是影響固件開發方法的關鍵任務之一。IoT 操作系統的重要要求包括優化的內存占用、能效、集成安全性、連接功能、與硬件無關的操作和實時處理功能。物聯網操作環境的范圍從裸機到嵌入式操作系統,再到滿足物聯網應用不同要求的全功能操作系統。嵌入式物聯網應用有許多開發平臺可供選擇,包括Mbed OS和Amazon FreeRTOS,僅舉兩例。除了這些平臺之外,嵌入式和連接設備供應商有時會提供額外的庫來支持定制的物聯網功能。這些庫/平臺補充了開發操作系統,在直觀的物聯網開發環境中提供嵌入式和無線功能。設備供應商提供的功能豐富的庫與基于應用選擇的操作系統的無縫結合,為物聯網開發人員提供了全面的物聯網解決方案開發平臺。
能夠連接到您選擇的云
隨著越來越多的嵌入式設備連接,有許多云服務可用。任何計劃開發實際物聯網應用程序的人都可以為各種任務選擇云服務組合。因此,嵌入式軟件必須高度靈活,以支持各種云服務(AWS,Azure,AliOS等)和平臺。軟件必須讓開發人員按照自己的方式設計系統,而不是將他們限制在某些選項上。獨立于硬件的軟件架構是解決此問題的關鍵,提供此功能的軟件生態系統為用戶提供了極大的靈活性。
安全性:不可協商的要素
連接設備后,就會引入被黑客入侵的可能性。因此,物聯網設備的安全性是一個不可協商的元素,無論設備是個人可穿戴設備還是聯網汽車。所有級別都需要數據保護,包括存儲、處理和通信期間,以確保系統可靠性。為物聯網應用設計的硬件需要具備開發安全可靠應用所需的所有元素。除了硬件安全之外,軟件還需要補充這些硬件安全元素。還需要以與應用程序的處理和成本要求相匹配的方式集成安全性。
應對嵌入式物聯網系統中的挑戰
讓我們以基于 MQTT 的低功耗嵌入式物聯網應用為例,更深入地討論上述概念。MQTT是嵌入式系統用來連接物聯網世界的流行通信協議。在典型的物聯網系統中,嵌入式設備收集各種傳感器數據,對其進行處理,并使用MQTT協議將信息傳達給遠程云系統。
要構建這樣的應用,您需要一個專為物聯網應用而設計的超低功耗微控制器(例如PSoC 6MCU)和低功耗無線連接設備(例如CYW43012Wi-Fi/BT組合設備)。為了高效開發,需要一個能夠同時開發和調試這些嵌入式和無線設備的軟件平臺,例如ModusToolbox。ModusToolbox是一個完整的嵌入式和物聯網應用開發系統。圖 2 概述了 ModusToolbox。它為物聯網開發人員提供基于 GUI 的工具、固件、中間件、API 和文檔。借助 GitHub 中提供的板級支持包 (BSP)、中間件庫和模板應用程序,開發人員可以直接訪問所需的資源。此外,在ModusToolbox中創建的項目可以導出到其他IDE,如IAR Embedded Workbench,Arm Microcontroller Development Kit和Microsoft Visual Studio Code。可以在這些環境中繼續進一步開發,同時在用戶首選編譯器工具鏈(如 GCC、ARM、IAR)的幫助下構建項目,如圖 2 中的白框突出顯示所示。
(圖2.ModusToolbox - 一個高級概述)
ModusToolbox提供了一系列軟件庫,稱為AnyCloud解決方案,用于快速開發Wi-Fi和藍牙應用程序(見圖3)。紫色的塊,如USB和CapSense代表MCU庫。綠色塊(如 MQTT 和低功耗助手 (LPA)是連接庫。這些 MCU 和連接庫無縫集成,以實現安全的物聯網應用開發。
(圖3.任意云軟件堆棧)
對于 MQTT 應用程序,AnyCloud 提供了一個隱藏各種復雜性的單一軟件環境,例如處理網絡連接、IP 地址更改等的 Wi-Fi 連接管理;網絡套接字創建;傳輸層安全性 (TLS) 等等。它為用戶提供了根據自己的風格開發應用程序的靈活性。要開發基于 MQTT 的物聯網系統,物聯網設計人員可以從現有的 MQTT 應用程序開始,該應用程序可作為項目創建者 GUI 工具中所需設備的模板應用程序的一部分使用(參見圖 4)。
(圖4.使用模板應用程序創建物聯網項目)
擁有現有項目并需要將 MQTT 添加到其應用程序的物聯網開發人員可以使用庫管理器來執行此操作。庫管理器管理和導入應用程序使用的庫,并處理所選庫具有的依賴項。它還以遞歸方式導入頂級應用程序所需的所有庫。對于這個低功耗 IoT 項目,IoT 設計人員將啟用“mqtt”庫,庫管理器會自動拉入所有依賴項,如下圖 5 所示。
(圖5.將 MQTT 功能添加到現有項目)
導入 MQTT 包后,IoT 設計人員可以使用隨 MQTT 模板應用程序和 MQTT 庫提供的非常詳細的自述文件獲取更多信息來啟動應用程序開發。圖 6 顯示了各個 README 文件的一部分,這些文件可幫助 IoT 設計人員入門并針對所需的開發流程運行其應用程序。
(圖6.用于快速啟動物聯網軟件的詳細自述文件)
一旦 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和無線設備的這種集成是緊湊,超低功耗和強大系統的基礎,可滿足蓬勃發展/不斷增長的物聯網市場的需求。
審核編輯:郭婷
-
傳感器
+關注
關注
2550文章
51037瀏覽量
753085 -
嵌入式
+關注
關注
5082文章
19105瀏覽量
304829 -
物聯網
+關注
關注
2909文章
44561瀏覽量
372800
發布評論請先 登錄
相關推薦
評論