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