作者:Jaya Kathuria Bindra,Shriram M
為了在物聯(lián)網(wǎng)市場取得成功,原始設(shè)備制造商需要能夠以更快的速度擁抱創(chuàng)新。
然而,為物聯(lián)網(wǎng)邊緣構(gòu)建強大的產(chǎn)品并非易事。隨著物聯(lián)網(wǎng)世界中越來越多的事物連接到互聯(lián)網(wǎng),對聯(lián)網(wǎng)設(shè)備的需求不僅能夠連接到云,而且還可以在邊緣處理復雜的計算。
OEM 不斷尋找新的、更有用的方法來利用傳感器的功能、監(jiān)控數(shù)據(jù)類型、處理信息、連接到云以及控制設(shè)備的生態(tài)系統(tǒng)。物聯(lián)網(wǎng)應用的可能范圍是無窮無盡的,從家庭、汽車、可穿戴設(shè)備、工業(yè)到智能城市。
MCU和連接設(shè)備是這些基于物聯(lián)網(wǎng)的產(chǎn)品的核心。為了幫助物聯(lián)網(wǎng)設(shè)計人員設(shè)計獨特、高效、安全且美觀的設(shè)備,芯片制造商正在集成更多功能和外設(shè),同時通過機器學習和人工智能等高級功能增強可用的處理能力。這些嵌入式計算和無線設(shè)備必須無縫協(xié)同工作,以降低設(shè)計復雜性。
通過現(xiàn)代軟件套件,可以隱藏或抽象復雜性,并為物聯(lián)網(wǎng)設(shè)計人員開發(fā)其應用程序提供簡單、安全和直觀的平臺,從而最大限度地降低這種復雜性。這些專門設(shè)計的軟件環(huán)境處理硬件配置,并允許跨多個設(shè)備、各種平臺和網(wǎng)絡輕松連接,以創(chuàng)建一個通信網(wǎng)絡,徹底改變我們在這個數(shù)字世界中智能交互的方式。
本文將詳細探討這些挑戰(zhàn),并解釋直觀的軟件環(huán)境如何補充優(yōu)化的物聯(lián)網(wǎng)硬件,為以更快的速度開發(fā)智能物聯(lián)網(wǎng)解決方案提供完整強大的安全平臺。作為說明,我們將以低功耗物聯(lián)網(wǎng)設(shè)備為例,使用 MQTT 協(xié)議安全地連接到云。
設(shè)計嵌入式物聯(lián)網(wǎng)系統(tǒng)的挑戰(zhàn)
讓我們首先了解設(shè)計物聯(lián)網(wǎng)應用程序的挑戰(zhàn),然后探索現(xiàn)代軟件如何幫助物聯(lián)網(wǎng)設(shè)計師克服這些挑戰(zhàn)。
上市時間
每年連接到互聯(lián)網(wǎng)的設(shè)備數(shù)量正以指數(shù)級的速度增長。為了跟上競爭的步伐,上市時間是關(guān)鍵。但是,軟件對開發(fā)時間和成本有重大影響。選擇合適的軟件和工具可以簡單而加快開發(fā)速度,從而顯著縮短生產(chǎn)時間。由于構(gòu)建實際物聯(lián)網(wǎng)應用程序涉及大量協(xié)議,因此該軟件還需要處理各種協(xié)議的底層復雜性,以幫助應用程序在物聯(lián)網(wǎng)世界中無縫交互。為了防止這些協(xié)議和不斷的變化消耗設(shè)計人員的資源,軟件需要將應用程序與硬件更改隔離開來。
易用性
為了支持物聯(lián)網(wǎng)應用的復雜計算需求,MCU變得更加復雜,以提供更高的處理能力、安全性和智能邏輯。它們還必須提供許多外圍設(shè)備以支持其他功能,如音頻、與外部存儲器接口、電機控制等。除此之外,MCU還有一個額外的任務來管理無線系統(tǒng)。在一個保護傘下同時支持嵌入式和無線系統(tǒng)的軟件工具可以節(jié)省寶貴的開發(fā)時間并增強用戶友好性。這些工具面臨的最大挑戰(zhàn)不僅是隱藏硬件復雜性,而且還要提供一個易于使用的基于 GUI 的開發(fā)平臺。為了實現(xiàn)這一目標,開發(fā)平臺通常提供許多基于 GUI 的工具和配置器來執(zhí)行應用程序開發(fā)中涉及的大多數(shù)任務——項目創(chuàng)建、導入庫、配置外圍設(shè)備等?;?GUI 的配置的基礎(chǔ)代碼是自動生成的,并與項目一起構(gòu)建,以便設(shè)計人員能夠以最少的編碼工作開發(fā)應用程序。
開發(fā)平臺
物聯(lián)網(wǎng)開發(fā)工具 - 構(gòu)建物聯(lián)網(wǎng)應用程序需要完整的軟件開發(fā)套件。這些軟件工具包括集成開發(fā)環(huán)境 (IDE)、命令行界面 (CLI)、軟件開發(fā)工具包 (SDK) 以及為 IoT 開發(fā)人員量身定制的庫或 API。這些軟件開發(fā)工具可以在物聯(lián)網(wǎng)開發(fā)平臺之上使用,也可以與它們結(jié)合使用。簡單直觀的開發(fā)平臺為物聯(lián)網(wǎng)開發(fā)人員提供了靈活性,因為它提供了完全使用供應商的IDE和工具進行開發(fā)的選項,或者在自己選擇的任何其他IDE上開發(fā)應用程序,如IAR嵌入式工作臺,Arm 微控制器開發(fā)工具包和Microsoft Visual Studio Code以及供應商提供的工具。這些平臺還提供文檔齊全的模板應用程序,使開發(fā)人員能夠快速啟動并加速應用程序開發(fā)。
操作系統(tǒng)的選擇 - 物聯(lián)網(wǎng)包括從小型傳感器到機器人等復雜系統(tǒng)的各種設(shè)備。為物聯(lián)網(wǎng)系統(tǒng)選擇操作環(huán)境是影響固件開發(fā)方法的關(guān)鍵任務之一。IoT 操作系統(tǒng)的重要要求包括優(yōu)化的內(nèi)存占用、能效、集成安全性、連接功能、與硬件無關(guān)的操作和實時處理功能。物聯(lián)網(wǎng)操作環(huán)境的范圍從裸機到嵌入式操作系統(tǒng),再到滿足物聯(lián)網(wǎng)應用不同要求的全功能操作系統(tǒng)。嵌入式物聯(lián)網(wǎng)應用有許多開發(fā)平臺可供選擇,包括Mbed OS和Amazon FreeRTOS,僅舉兩例。除了這些平臺之外,嵌入式和連接設(shè)備供應商有時會提供額外的庫來支持定制的物聯(lián)網(wǎng)功能。這些庫/平臺補充了開發(fā)操作系統(tǒng),在直觀的物聯(lián)網(wǎng)開發(fā)環(huán)境中提供嵌入式和無線功能。設(shè)備供應商提供的功能豐富的庫與基于應用選擇的操作系統(tǒng)的無縫結(jié)合,為物聯(lián)網(wǎng)開發(fā)人員提供了全面的物聯(lián)網(wǎng)解決方案開發(fā)平臺。
能夠連接到您選擇的云
隨著越來越多的嵌入式設(shè)備連接,有許多云服務可用。任何計劃開發(fā)實際物聯(lián)網(wǎng)應用程序的人都可以為各種任務選擇云服務組合。因此,嵌入式軟件必須高度靈活,以支持各種云服務(AWS,Azure,AliOS等)和平臺。軟件必須讓開發(fā)人員按照自己的方式設(shè)計系統(tǒng),而不是將他們限制在某些選項上。獨立于硬件的軟件架構(gòu)是解決此問題的關(guān)鍵,提供此功能的軟件生態(tài)系統(tǒng)為用戶提供了極大的靈活性。
安全性:不可協(xié)商的要素
連接設(shè)備后,就會引入被黑客入侵的可能性。因此,物聯(lián)網(wǎng)設(shè)備的安全性是一個不可協(xié)商的元素,無論設(shè)備是個人可穿戴設(shè)備還是聯(lián)網(wǎng)汽車。所有級別都需要數(shù)據(jù)保護,包括存儲、處理和通信期間,以確保系統(tǒng)可靠性。為物聯(lián)網(wǎng)應用設(shè)計的硬件需要具備開發(fā)安全可靠應用所需的所有元素。除了硬件安全之外,軟件還需要補充這些硬件安全元素。還需要以與應用程序的處理和成本要求相匹配的方式集成安全性。
應對嵌入式物聯(lián)網(wǎng)系統(tǒng)中的挑戰(zhàn)
讓我們以基于 MQTT 的低功耗嵌入式物聯(lián)網(wǎng)應用為例,更深入地討論上述概念。MQTT是嵌入式系統(tǒng)用來連接物聯(lián)網(wǎng)世界的流行通信協(xié)議。在典型的物聯(lián)網(wǎng)系統(tǒng)中,嵌入式設(shè)備收集各種傳感器數(shù)據(jù),對其進行處理,并使用MQTT協(xié)議將信息傳達給遠程云系統(tǒng)。
要構(gòu)建這樣的應用,您需要一個專為物聯(lián)網(wǎng)應用而設(shè)計的超低功耗微控制器(例如PSoC 6MCU)和低功耗無線連接設(shè)備(例如CYW43012Wi-Fi/BT組合設(shè)備)。為了高效開發(fā),需要一個能夠同時開發(fā)和調(diào)試這些嵌入式和無線設(shè)備的軟件平臺,例如ModusToolbox。ModusToolbox是一個完整的嵌入式和物聯(lián)網(wǎng)應用開發(fā)系統(tǒng)。圖 2 概述了 ModusToolbox。它為物聯(lián)網(wǎng)開發(fā)人員提供基于 GUI 的工具、固件、中間件、API 和文檔。借助 GitHub 中提供的板級支持包 (BSP)、中間件庫和模板應用程序,開發(fā)人員可以直接訪問所需的資源。此外,在ModusToolbox中創(chuàng)建的項目可以導出到其他IDE,如IAR Embedded Workbench,Arm Microcontroller Development Kit和Microsoft Visual Studio Code??梢栽谶@些環(huán)境中繼續(xù)進一步開發(fā),同時在用戶首選編譯器工具鏈(如 GCC、ARM、IAR)的幫助下構(gòu)建項目,如圖 2 中的白框突出顯示所示。

(圖2.ModusToolbox - 一個高級概述)
ModusToolbox提供了一系列軟件庫,稱為AnyCloud解決方案,用于快速開發(fā)Wi-Fi和藍牙應用程序(見圖3)。紫色的塊,如USB和CapSense代表MCU庫。綠色塊(如 MQTT 和低功耗助手 (LPA)是連接庫。這些 MCU 和連接庫無縫集成,以實現(xiàn)安全的物聯(lián)網(wǎng)應用開發(fā)。

(圖3.任意云軟件堆棧)
對于 MQTT 應用程序,AnyCloud 提供了一個隱藏各種復雜性的單一軟件環(huán)境,例如處理網(wǎng)絡連接、IP 地址更改等的 Wi-Fi 連接管理;網(wǎng)絡套接字創(chuàng)建;傳輸層安全性 (TLS) 等等。它為用戶提供了根據(jù)自己的風格開發(fā)應用程序的靈活性。要開發(fā)基于 MQTT 的物聯(lián)網(wǎng)系統(tǒng),物聯(lián)網(wǎng)設(shè)計人員可以從現(xiàn)有的 MQTT 應用程序開始,該應用程序可作為項目創(chuàng)建者 GUI 工具中所需設(shè)備的模板應用程序的一部分使用(參見圖 4)。

(圖4.使用模板應用程序創(chuàng)建物聯(lián)網(wǎng)項目)
擁有現(xiàn)有項目并需要將 MQTT 添加到其應用程序的物聯(lián)網(wǎng)開發(fā)人員可以使用庫管理器來執(zhí)行此操作。庫管理器管理和導入應用程序使用的庫,并處理所選庫具有的依賴項。它還以遞歸方式導入頂級應用程序所需的所有庫。對于這個低功耗 IoT 項目,IoT 設(shè)計人員將啟用“mqtt”庫,庫管理器會自動拉入所有依賴項,如下圖 5 所示。

(圖5.將 MQTT 功能添加到現(xiàn)有項目)
導入 MQTT 包后,IoT 設(shè)計人員可以使用隨 MQTT 模板應用程序和 MQTT 庫提供的非常詳細的自述文件獲取更多信息來啟動應用程序開發(fā)。圖 6 顯示了各個 README 文件的一部分,這些文件可幫助 IoT 設(shè)計人員入門并針對所需的開發(fā)流程運行其應用程序。

(圖6.用于快速啟動物聯(lián)網(wǎng)軟件的詳細自述文件)
一旦 MQTT 實施,物聯(lián)網(wǎng)開發(fā)人員的主要關(guān)注點通常是低功耗。節(jié)能物聯(lián)網(wǎng)系統(tǒng)的一個關(guān)鍵特征是“卸載”。主機卸載使主機 PSoC 6 MCU 能夠長時間進入深度睡眠狀態(tài),同時無線設(shè)備代表 MCU 主機處理任務,例如 ARP 請求、TCP 保持連接等。主機卸載在優(yōu)化主機功耗方面起著關(guān)鍵作用。此外,這些卸載使主機 CPU 能夠騰出時間執(zhí)行其他更強大的任務,例如音頻或傳感器數(shù)據(jù)處理。這反過來又提高了整體系統(tǒng)效率和功耗。在現(xiàn)實世界的物聯(lián)網(wǎng)系統(tǒng)中配置這些卸載將是一項復雜的任務。借助集成了MCU和無線設(shè)計的工具環(huán)境,可以減少開發(fā)時間和工作量。
例如,ModusToolbox 附帶的“低功耗助手”(LPA) 配置器工具使開發(fā)人員能夠通過啟用復選框并選擇必要的配置來配置低功耗卸載,如圖 7 所示。該工具根據(jù)應用程序的這些配置設(shè)置自動生成源代碼。

(圖7.低功耗助手 (LPA) 工具)
此外,為了配置MCU的各種引腳、外設(shè)和時鐘,需要編寫大量代碼。配置器提供了一種使用 GUI 執(zhí)行此類任務的簡單方法,從而消除了開發(fā)人員手動編寫這些任務的時間。配置器還可以幫助完成各種 MCU 相關(guān)設(shè)置,如 GPIO 引腳設(shè)置、外設(shè)配置、模擬路由、系統(tǒng)設(shè)置、時鐘樹設(shè)置和 DMA 路由。圖 8 顯示了其中的一些配置器:GPIO 引腳配置、外設(shè)配置和時鐘設(shè)置。項目創(chuàng)建器、庫管理器、USB 配置器、設(shè)備固件更新主機、藍牙配置器和分段 LCD 配置器等工具也顯著減少了物聯(lián)網(wǎng)開發(fā)人員的開發(fā)時間和工作量。

(圖8.(a) 引腳配置器 GUI 工具)

(圖8.(b) 外設(shè)配置器 GUI 工具)

(圖8.(c) 系統(tǒng)時鐘配置器 GUI 工具)
某些應用程序在開發(fā)中需要更大的靈活性來自定義設(shè)置。GUI 工具所做的配置可以在需要時通過手動編碼覆蓋。此外,更靈活的開發(fā)平臺提供了可與許多第三方 IDE 集成的構(gòu)建系統(tǒng),高級用戶也可以使用 CLI 工具。擁有如此強大而靈活的開發(fā)平臺可以加快生產(chǎn)時間并大大提高效率。
隨著許多云服務和平臺的可用性,OEM 需要靈活并能夠快速適應創(chuàng)新。靈活性的一個關(guān)鍵要素是使用開發(fā)工具進行設(shè)計,這些工具可以適應各種物聯(lián)網(wǎng)平臺并支持廣泛的生態(tài)系統(tǒng)。在本文中,我們探討了設(shè)計物聯(lián)網(wǎng)系統(tǒng)最重要的挑戰(zhàn),以及軟件工具如何通過隱藏物聯(lián)網(wǎng)架構(gòu)所需的底層復雜性來簡化設(shè)計復雜性。這些軟件平臺還為高級開發(fā)人員提供了靈活性,以定制物聯(lián)網(wǎng)系統(tǒng)的大部分設(shè)計方面。這是通過在硬件和軟件堆棧中主動無縫集成嵌入式和連接設(shè)備來實現(xiàn)的。MCU和無線設(shè)備的這種集成是緊湊,超低功耗和強大系統(tǒng)的基礎(chǔ),可滿足蓬勃發(fā)展/不斷增長的物聯(lián)網(wǎng)市場的需求。
審核編輯:郭婷
-
傳感器
+關(guān)注
關(guān)注
2576文章
55028瀏覽量
791246 -
嵌入式
+關(guān)注
關(guān)注
5198文章
20442瀏覽量
333986 -
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2945文章
47818瀏覽量
414838
發(fā)布評論請先 登錄
嵌入式軟件開發(fā)工具市場新動向:訂閱制趨勢下的中國開發(fā)者選擇
簡化嵌入式物聯(lián)網(wǎng)應用的軟件開發(fā)
評論