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