物聯網項目需要可靠的基礎設施,以保持您的設備連接、安全,理想情況下還可以永久訪問無線固件更新,以支持持續的維護和功能開發——所有這些都可以在您從幾個原型擴展到可能數十萬個單元時完成。
然而,建立和維護這種基礎設施是困難的!特別是如果您的專業領域不是連接和通信,而是嵌入式系統。隨著公司向物聯網平臺尋求幫助,他們面臨著一個難題:外包所需物聯網基礎設施的運營有望縮短上市時間,但代價高昂的是將自己鎖定在整個供應商和工具生態系統中,或者至少鎖定在操作系統和編程語言的任務中。
您的嵌入式軟件工程團隊可能會告訴您,在物聯網軟件架構方面,您做出的最重要的決定是圍繞操作系統和編程語言做出的選擇,以編寫設備端應用程序。這種選擇可能會影響您需要的團隊的規模和經驗、您必須編寫的新代碼的數量、雇用新工程師的難易程度,最重要的是,交付項目或產品所需的時間。從歷史上看,這個決定一直是一個重大決定,因為一旦你做出了這個決定,你基本上就會永遠堅持下去——或者至少在未來改變這個決定是非常困難的。
除了操作系統和語言之外,您可能還需要考慮第三方代碼進行集成,或者您可能已經為想要重用的傳感器等內容預先存在代碼和驅動程序。您確實希望能夠選擇您的開發環境,而不是將其強加給您。
在本文中,我們將探討一種新的、開放的物聯網軟件架構方法的好處,稱為基于微管理程序的方法。我們將討論為什么自由地以自己的方式編寫代碼如此有價值,以及為什么能夠進一步改變方法的靈活性會為您的產品帶來重大好處,并最終為您的團隊取得成功帶來重大好處。
面向未來的物聯網架構的重要性
可以公平地說,沒有人愿意最終成為維護舊產品的團隊,不斷耗盡資源(例如閃存和RAM),永遠優化代碼以使其適合,反復不得不將補丁移植回舊產品,而新產品在更現代的操作系統上并獲得所有新功能。
有時,您甚至可能最終被迫做出錯誤的選擇來妥協新產品 - “讓我們使用與舊產品相同的操作系統和代碼”以使其保持一致,即使您知道這不是正確的選擇。
作為圍繞要使用的體系結構、操作系統和編程語言決策的一部分,您真的希望確保為“未來的你”提供最大的成功機會。這通常意味著在做出設計決策時,不會把你逼到墻角,也不會讓你在以后留下大量的技術債務。你可能會覺得你需要一個水晶球來計算未知的未知,你必須在不完全知道未來的情況下這樣做:
你會發現一個不可預見的問題,迫使你改變你的計劃嗎?
是否會有具有更多要求的下一個產品版本?
定義 V2 產品時是否需要支持不同的硬件體系結構?
因此,鑒于操作系統和編程語言的選擇是一個很大的選擇,您可以做些什么來為未來提供最廣泛的選擇,并使您的設備最適合未來并保護您的軟件團隊?
如果您能更輕松地做出此選擇,那不是很好嗎?如果您今天可以選擇一種設備端方法,讓您能夠根據當前擁有的信息自由地快速、立即地進行創新。也許使您能夠盡快推出最小可行產品 (MVP) 或 V1 產品,在此過程中以最有效和最敏捷的方式進行開發。
如果您能夠構建在 V1 產品中進一步改變方向的能力,確保您永遠不會面臨舊產品運行與新產品不同的環境的情況,那不是更好嗎?
這種完全的靈活性和控制力就是我所說的“開放方法”,讓您的物聯網軟件架構面向未來,在邊緣運行。
以 RUST 作為首選的嵌入式編程語言的出現為例。您今天可能還沒有準備好在邊緣設備上采用 RUST 環境,但您非常確定,很快,您可能會想要這樣做。借助邊緣設備上的開放式架構,您可以選擇在像 FreeRTOS 這樣的東西上構建用 C 編寫的應用程序,因為您知道將來可以輕松地將其切換為基于 RUST 的應用程序。您現在可以為您的設備構建“與時俱進”的功能。
最終,能夠在時機成熟時改變您的方法將帶來更好的整體團隊和設備性能,以及更敏捷和高效的開發過程。這反過來將有助于顯著降低傳統產品的維護成本,并縮短上市時間。這也意味著您可以立即進行優化,而無需過多地為未來而煩惱 - 無論是在開發應用程序時優化代碼的功能、性能、可靠性還是安全性。今天好的東西不會永遠好。
微管理程序架構如何實現自由選擇
如果您已經閱讀了本系列的前幾篇文章,您就會知道微監控程序是一種物聯網方法,它利用微控制器的虛擬機管理程序,在互聯網連接的設備上實現可靠和安全的遠程操作,例如故障安全的無線固件更新和安全的實時遠程調試。它通過利用微控制器內的硬件分離(例如意法半導體的STM32U585)在啟動時將其分為兩個部分來實現這一點,例如利用Arm? Trustzone?。
此微管理程序不僅分離了設備的安全組件(通常是 TrustZone 傳統上可能用于的組件),還分離了連接組件,這意味著您的設備在線和保持在線所需的一切都是微管理程序本身的屬性。
微管理程序架構中的這種拆分意味著,現在只需在您的設備上使用基于微管理程序的方法,就可以滿足軟件團隊的未來需求和產品軟件架構的挑戰,因為這種方法本質上分離了設備端代碼架構決策的持久性,以防止供應商或架構鎖定。
在基于微管理程序的架構中,對嵌入式開發中使用的操作系統或編程語言沒有任何限制。只要您要使用的操作系統或環境可以在您的MCU上運行(在Twilio微監控器的情況下,最初是STM32U585),那么您就可以將其部署在微管理程序世界中。這適用于嵌入式開發中的任何方法,無論是自定義裸機方法,還是構建在“現成”操作系統(例如 FreeRTOS 或 Azure RTOS)之上。
與傳統物聯網平臺的方法相比,這種自由和靈活性是新的。很少有完全自由選擇使用什么操作系統和編程語言的情況。使用微管理程序方法,應用程序開發人員和固件工程師不會被鎖定在任何特定的軟件平臺中。開發人員可以選擇最適合他們的工具,而不是被迫使用特定的平臺方法,因為它是唯一受支持的方法。
在創建面向未來的物聯網解決方案時,缺乏平臺“鎖定”可能是最大的幫助。即使在最壞的情況下,您的提供商之一可能會倒閉,使用基于微監控程序的方法編寫代碼的事實意味著開發人員不會在特定于平臺的工作上浪費任何時間。您可以輕松地將代碼移植到另一個操作系統或環境,而不會有太多麻煩,使用微管理程序FOTA功能將此“全新映像”推送到現場的現有設備,最終用戶甚至不需要知道潛在的災難已被避免。
但可以說,最大的好處是,這確實有助于確保您的物聯網解決方案隨著時間的推移保持適應性和面向未來,即使技術和市場條件發生變化也是如此。
如何了解有關 Twilio Microvisor 的更多信息?
微管理程序提供了一種強大而靈活的物聯網方法,使開發人員能夠構建安全、可靠和高效的物聯網應用程序。通過利用硬件分離,微管理程序可以為物聯網設備提供額外的安全層,同時支持遠程調試、OTA 固件更新,并且至關重要的是支持具有本機代碼執行的多個操作系統和多種編程語言。憑借其眾多優勢和優勢,微管理程序有望在物聯網應用的開發和部署中發揮越來越重要的作用。
審核編輯:郭婷
-
傳感器
+關注
關注
2551文章
51104瀏覽量
753609 -
mcu
+關注
關注
146文章
17149瀏覽量
351215 -
物聯網
+關注
關注
2909文章
44637瀏覽量
373401
發布評論請先 登錄
相關推薦
評論