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