1產業背景
2024年2月IDC發布的數據顯示,2023年中國物聯網(IoT)連接量超66億個,未來5年復合增長率約16.4%[1]。隨著物聯網設備數量的增加和應用場景的擴展,嵌入式系統在連接和管理大規模物聯網設備方面將發揮更加重要的作用。嵌入式系統需要能夠處理大規模的數據,并提供安全、可靠的連接和通信功能,以支持各種物聯網應用,包括智能城市、工業自動化、智能健康等。
在物聯網發展過程中,邊緣計算正在快速興起。隨著對實時性和隱私性要求的加強,邊緣計算作為一種在本地處理和分析數據的方式變得越來越受歡迎。邊緣計算能夠實現快速響應和即時決策,同時減少對云端資源的依賴。嵌入式系統在邊緣設備上正扮演著重要角色,邊緣計算的發展趨勢要求嵌入式系統的性能和能效不斷提升,以滿足邊緣計算場景下的需求。
隨著人工智能(AI)和機器學習(ML)在各個領域的應用不斷深入,物聯網和邊緣計算的普及,嵌入式系統將有能力更加普遍地整合人工智能技術。這種能力包括在嵌入式設備上實現復雜的AI算法和模型推理,以提供更智能、更自適應的功能和服務,例如在自動駕駛汽車、智能機器人和醫療設備等領域應用。
2近期市場研究
關于嵌入式軟件開發趨勢的研究和討論一直在積極進展中,VDC Research的多位分析師撰寫了一份關于2024年物聯網、嵌入式和工業技術預測的報告,報告概述了影響硬件和軟件市場的關鍵主題和趨勢,并對未來的技術發展做出了一系列預測[2]。報告中預測AI正在從云端數據中心穩步遷移到網絡邊緣,包括嵌入式設備。嵌入式和邊緣AI市場對特定行業應用部署的優化需求日益增長,這種趨勢推動邊緣AI硬件變得更加面向應用。報告還預測云原生(Cloud Native)開發解決方案未來將得到普及,新冠疫情期間云原生軟件開發解決方案取得了巨大的成功,嵌入式工程社區正迅速適應這一開發模式,逐漸擺脫傳統的本地開發方式。
知名的嵌入式軟件專家和培訓師,Beningo Embedded Group的創始人Jacob Beningo,在2024年1月嵌入式軟件的五個趨勢的文章中指出,嵌入式軟件團隊正在快速采用DevOps。它為團隊提供了自動化構建、測試和部署過程的方法[3]。Integrated Computer Solutions(ICS)的CEO Peter Winston在2024年3月一篇博客文章中指出:未來六大趨勢對嵌入式開發將產生深遠影響,它們是網絡安全要求、設備的共存和互操作性、新芯片架構、連接技術、AI/ML集成,和面向服務的架構。這些趨勢肯定會在短期內迅速重塑產品開發過程,并在未來持續產生影響[4]。
綜合以上的觀點,在本文中我們將重點討論AI/ML集成與邊緣智能,虛擬化/容器和混合部署,以及CI/CD和DevOps這三大嵌入式軟件開發趨勢。
3趨勢之一:AI/ML集成與邊緣智能
3.1邊緣計算與邊緣AI
微軟對邊緣計算的定義是:邊緣計算是一種分布式計算框架,允許IoT設備快速處理網絡邊緣的數據并對其采取行動[5]。微軟給出了一個邊緣計算示例:遠程倉庫中的安全相機使用AI識別可疑活動,并且僅將該特定數據發送到主數據中心進行即時處理。相機不會不斷傳輸拍攝的全部視頻片段,而是只發送相關的片段,避免每天24小時傳輸給網絡帶來負擔,從而釋放公司的網絡帶寬和計算處理資源用于其他用途。
邊緣AI正在將智能計算從以云為中心的模型中轉移出來,并使其更接近數據源。推動這一轉變的動機是減少網絡流量,允許時間關鍵型應用(例如制造、自主系統)進行實時決策,以及通過本地處理數據來加強隱私性。
邊緣AI減少了對超大規模AI提供商的依賴,并促進了更廣泛的AI應用。它在醫療保健、汽車和機器人技術領域具有推動變革的潛力,能夠重塑這些行業的運營范式。展望未來,AI將對不同類型的邊緣產生不同的影響。不同類型的邊緣計算如圖1所示[6]。
圖1三種類型的邊緣和常見的相關設備
厚邊緣(Thick Edge)是指配備了高性能計算部件(例如高端中央或圖形處理單元)的計算資源,通常位于數據中心,旨在處理計算密集型任務/工作負載,例如數據存儲和分析。薄邊緣(Thin Edge)是指智能控制器、網絡設備和計算機,它們聚合了來自傳感器的數據。微邊緣(Micro Edge)是指生成數據的智能傳感器和設備。
3.2邊緣AI的細分
邊緣AI是在邊緣計算的設備上部署AI模型,從而在不依賴云連接的情況下實現AI推理和決策。邊緣AI也分為厚邊緣AI、薄邊緣AI和微邊緣AI。
厚邊緣AI的定位是在邊緣服務器支持執行多個AI推理模型,包括針對本地敏感數據場景的AI模型訓練或再訓練。薄邊緣AI則是利用網關、IPC(工業計算機)和PLC(可編程邏輯控制器)在網絡邊緣進行AI處理,增強現有傳感器和設備的智能化能力。微邊緣AI支持將AI直接集成到傳感器中,提高智能系統的可擴展性,并使日常設備能夠做出自主決策。
在微邊緣,微型機器學習(Tiny Machine Learning, TinyML)是重要的技術。這個技術讓在MCU等資源受限(如內存、計算和能耗限制)的小芯片上運行機器學習模型和算法成為可能。區別于現在流行的大模型,TinyML的尺寸遠遠小于一般的機器學習模型,和大模型更是相差甚遠。現在很多的物聯網設備上都已經用上了TinyML這項技術,例如智能家居(恒溫器和智能燈光系統)和健康監測(心率和睡眠質量)等[7]。在Embedded World 2024展會上TinyML基金會展區展示的一個案例中,TinyML被集成到日常物品和工具中,使他們能夠自主執行決策功能,而無需云連接(如圖2所示)。這種方法能增強隱私性和數據安全性。
圖2基于ESP32、用于邊緣傳感的物聯網開發套件中的電鉆和TinyML開發工具
3.3 邊緣AI的三個趨勢
今天邊緣AI呈現出三大發展趨勢:厚邊緣AI訓練、薄邊緣和微邊緣NPU(神經處理單元)加速,以及微邊緣TinyAI賦能。第一個趨勢是AI模型訓練正在從云轉移到數據中心或微服務器等厚邊緣位置。從技術上看這是可能的,因為邊緣微服務器集成了高性能CPU和GPU,可在邊緣實現強大的計算,包括AI訓練和多種AI推理功能。人工智能訓練也可以在地端數據中心進行,這樣做有四大好處:減少對云基礎設施的依賴,降低成本,增強隱私性,以及提高人工智能應用程序在邊緣設備上的響應能力。
在邊緣設備中集成專用NPU可大大增強AI推理能力。NPU可以降低功耗,改進能耗管理,并助推高效的多任務處理,這使AI能夠在功耗敏感和延遲的關鍵型應用(如可穿戴設備和傳感器節點)中部署。arm的數據表明,用于AI推理的ARM CortexA55配置和Arm Cortex A55+Arm Ethos U65 NPU比較,后者將70%的AI推理從CPU轉移到NPU,推理性能提高了11倍。
微邊緣和薄邊緣AI實現了自主決策的本地化。將持AI的芯片組直接集成到蜂窩物聯網設備中的趨勢正在興起,這標志著物聯網設備正在向能夠進行本地化決策的智能、自主物聯網系統轉變。這一趨勢預計會對智慧城市和工廠等行業產生重大影響,并帶來顯著優勢,包括實時數據處理、減少延遲以及通過更小的外形尺寸提高效率。
嵌入式開發者對人工智能的開發非常重視。2023年Embedded.com嵌入式開發現狀調查報告顯示,針對在嵌入式開發中利用先進的技術能力這一問題,嵌入式人工智能和機器學習最受關注,緊隨其后的是嵌入式視覺和語音功能(如圖3所示)[8]。
圖3在嵌入式開發中利用先進的技術能力
4趨勢之二:虛擬化、容器和混合部署
4.1 虛擬化
虛擬化技術是操作系統的一個重要技術,在嵌入式系統中呈現蓬勃發展的趨勢。借助于對底層處理器內核、內存和外設的抽象,這種技術使得多個虛擬機可以運行在同一個物理處理器上。虛擬化提供了多操作系統的運行環境,例如可以在同一個設備中同時運行高實時性操作系統(如FreeRTOS)和通用的操作系統(如Linux)。虛擬化技術是今天高算力多核處理器計算系統采用的全新解決方案,它平衡了通用性與可靠性兩方面需求。嵌入式虛擬化的典型應用在智能汽車電子系統中,比如在一個智能座艙系統中同時運行高實時性操作系統和人機交互操作系統[9]。
智能工業場景下的混合關鍵系統應用可以借助多核處理器系統以及虛擬化技術部署,一個國產的虛擬化操作系統解決方案見圖4。該方案基于Intewell實時操作系統,是一個針對數控系統、面向低成本硬件的可配置混合異構系統解決方案[10]。
圖4 Intewell可配置混合異構系統體系結構
4.2容器
容器是一種輕量級、可移植、隔離的軟件環境。通過容器技術,開發人員可以將應用程序及其依賴項打包在一起,確保應用在不同平臺上的一致性運行,簡化應用開發、部署和管理流程。容器和虛擬機具有相似的資源隔離和分配功能,容器虛擬化軟件環境,而虛擬化則是虛擬化硬件。
編排器在容器技術中起到重要的作用,像Kubernetes這樣的編排器旨在自動執行容器化應用程序的部署、擴展和管理。Docker是Linux環境下最常見的容器平臺,隨著云計算和大數據的廣泛應用,一部分虛擬化正在被輕量級的容器技術替代,編排器的作用也變得越來越重要。有關于編排器性能和能耗的研究受到關注,例如鄭忠斌等提出利用線性規劃在提高資源利用率的同時降低碳足跡[11]。
4.3實時容器及其應用
實時容器是基于實時操作系統(RTOS)實現的容器機制,貼近Docker用戶習慣,符合開放容器規范(OCI-Open Container Initiative),實現輕量化、安全和便捷的容器部署。
目前,國內針對實時容器對外公開的研究較少,比較有代表性的有翼輝基于SylixOS開發的實時容器ECS (Edge Container Stack) [12]。ECS是輕量級實時容器技術,使用ECS實時容器的SylixOS內核依然有著與標準版本SylixOS相當的性能。ECS實時容器提供給每個容器隔離的運行環境。完整獨立的容器運行環境保證了容器內的應用免受環境和其它應用的影響,使容器的運行環境符合預期,提升容器內應用的安全性。
鄧廣宏等指出,受限于開發時間以及軟件生態支持,ECS實時容器尚不成熟,難以應對構建大型容器云的需求[13]。國外對于實時容器的研究相對豐富,大多基于實時Linux補丁與Docker的組合實現實時容器。NXP的專家[14]重點研究了資源和成本受限的MCU/MPU領域的容器解決方案,提出了借鑒Android容器技術的一種解決方案——MICROEJ VEE,該方案可用于運動手表、智能洗衣機、智能電表和工業打印機等場景,其軟件架構如圖5所示。
圖5一種小型實時容器方案:microeJ VEE
總之,容器技術可通過簡化嵌入式軟件開發、部署和維護來助力復雜嵌入式系統的管理。開發者在使用容器時需要注意平衡容器的優勢和容器之間通信帶來的復雜性和性能損失。
4.4混合關鍵系統部署
什么是混合關鍵系統(Mixed Criticality Systems,簡稱MCS)?英國約克大學的專家給出了下面的定義;混合關鍵系統是指包含兩個或更多不同關鍵性級別的組件的系統[15],例如安全關鍵、任務關鍵和非關鍵組件。這些系統通常存在于汽車和航空電子領域中的復雜嵌入式系統中,它們正在向MCS發展,以滿足與成本、空間、重量和功耗等非功能需求相關的嚴格標準。
混合關鍵系統的研究和工程實踐旨在通過部署、隔離和調度等技術手段,實現多系統混合部署,并實現系統間彼此隔離保護,通過調度提升資源利用率。具體在技術層面,學術界側重調度方法研究,西北工業大學的一項研究中作者提出了一種基于異構多核系統的混合關鍵任務調度算法[16]。工業界更多關注時空隔離下的混合關鍵性部署,保證各子系統間互相隔離,資源采用靜態分配,因此整體資源利用率不高。為了解決這一問題,華為提出基于openEuler的混合關鍵性系統解決方案[17],其架構如圖6所示。
圖6混合關鍵性系統架構
混合關鍵系統的實現可以依托彈性融合底座,底座的核心是容器和虛擬化技術。該解決方案中推薦使用輕量級容器isula,嵌入式虛擬化推薦使用ZVM和Jailhouse。ZVM(Zephyr-based Virtual Machine)是基于Zephyr實時操作系統實現虛擬化功能的開源項目,該項目是由湖南大學嵌入式與網絡計算湖南省重點實驗室主導,目前可以實現同時啟動一個Linux與多個Zephyr RTOS,從而在同一硬件平臺上實現混合內核部署[18]。混合關鍵系統目前主要應用在智能制造、機器人、能源、軍工和航空航天等強實時和高安全領域。
5趨勢之三:CI/CD和DevOps
5.1概述
DevOps是一種軟件開發實踐,可促進開發與運維之間的協作,從而更快、更可靠地交付軟件。DevOps通常被理解一種文化,將開發者、流程和方法連接在一起來提供持續價值[19]。DevOps在IT產業被廣泛地使用,其具體做法是CI/CD(持續集成/持續交付),這是一種通過在應用開發階段引入自動化技術快速迭代向客戶交付應用的方法。與CI/CD關聯的步驟通常被統稱為CI/CD管道(Pipeline),由開發和運維團隊以敏捷開發方式協同完成。
隨著云計算、容器、微服務等技術的蓬勃發展,云原生的概念已被市場普遍接受。云原生技術是DevOps實踐的核心組成部分,通過使用云原生工具和流程,可以實現自動化的應用程序開發、測試和部署,從而加快軟件交付速度,提高應用程序質量和穩定性。DevOps一站式平臺則將云原生開發模式融合到產品中,為廣大開發者提供好用易用的云原生研發管理解決方案,包含敏捷項目管理、代碼管理、自動化測試管理,CI/CD流水線等功能,讓開發、測試、部署全流程與云原生底座平臺無縫結合,降低嵌入式開發者上手的門檻,加快CI/CD和DevOps云原生技術在嵌入式開發中的落地。
5.2CI/CD和DevOps在嵌入式開發中的實踐
蘇黎世應用科技大學嵌入式系統學院(InES)在工業協議認證測試中,采用基于云原生的CI/CD管道技術的自動化編排方法。具體步驟有以下幾個:測試用例與測試環境與Azure DevOps CI/CD結合,Pipelines(編排)的集成,PROFINET(工業以太網)的概念驗證,以及創建、驗證單元測試環境。最后的結論是這種方法改變了傳統的V模型(驗證模型)開發流程,即從瀑布式轉變到敏捷開發,加快開發周期,提高效率[20]。
西門子對當前汽車電子產業的軟件工程開發做了詳盡分析,西門子的研究員指出車廠OEM和OEM的許多一級供應商正在采用軟件工廠的開發方法,比如從傳統的汽車開發中分離出來的大眾集團軟件公司CARIAD和捷豹路虎的愛爾蘭香農和英國曼徹斯特軟件開發團隊[21]。汽車軟件開發正在擁抱CI/CD,支持多個車型和平臺上整個生命周期的持續的軟件更新。典型的CI/CD開發過程如圖7所示。
圖7典型的CI/CD開發過程
5.3嵌入式CI/CD和 DevOps工具
傳統的嵌入式軟件開發工具是一個集成開發環境,將編輯、編譯、構建和調試合成在一個以工程包為核心的開發環境中,具有入門門檻低、集成度高以及針對性強等特點,缺點也很明顯:跨平臺、升級和第三方集成不方便。典型的傳統開發工具如IAR Embedded Workbench。
過去十年來,在高端微控制器中運行的軟件的復雜性顯著增加,比如實時操作系統(RTOS)和通信堆棧已經取得了廣泛應用。隨著物聯網的普及,附加軟件層通信協議(MQTT)和高級安全性管理(例如基于云的設備管理)在物聯網應用中是必需的。同時,GUI庫、DSP庫、機器學習軟件框架等中間件也增加了手動集成軟件組件的復雜性。
為了改善嵌入式開發過程,Arm開發了CMSIS-Toolbox實用程序,它是一個開源項目,也是Open-CMSIS-Pack的一部分[22]。Arm于2014年推出了CMSIS-Pack,它是CMSIS(通用微控制器軟件接口標準)版本4的一部分。CMSIS-Toolbox支持使用不同工具和不同工作流程,幫助嵌入式軟件開發人員更輕松地協作,如圖8所示。
圖8 CMSIS-Toolbox開放的工作流程
市面上已經出現了整合云和CI/CD的嵌入式開發平臺,如Wind River Studio(下文中簡稱為Studio)。Studio是一個云原生工具集,用于開發、部署、運營和服務關鍵任務智能系統[23]。它為開發嵌入式設備軟件平臺和應用程序而構建,包括交叉編譯系統和嵌入式設備測試系統,可查看端到端工作流程的狀態,以便診斷定制化流水線中的復雜問題。Studio在基于云的基礎設施上提供一套高度集成的工具,實現嵌入式軟件開發的自動化,并針對平臺開發人員、應用程序開發人員和測試人員實現自定義的CI/CD流程。
Wind River(風河)是全球知名的嵌入式軟件企業,產品包括邊緣設備的實時操作系統、實時Linux和虛擬化技術,以及邊緣開發和云計算解決方案,應用覆蓋航空、航天、工業、汽車和通信。風河在嵌入式系統耕耘數十年,是嵌入式操作系統業界的常青樹[24]。
6 結語
在智能系統時代,嵌入式系統重要挑戰來自軟件開發。過去40年,集成電路在摩爾定律推動下快速發展,遺憾的是軟件發展遠遠滯后了。當前,嵌入式軟件開發面臨巨大挑戰。以自動駕駛為代表的智能應用,一方面必須以高安全等級為基礎,另一方面,由于高算力多核芯片的超速發展,基礎軟件需不斷更新以適配新型異構多核、包含AI/GPU等不同芯片的處理器體系架構。此外,微內核操作系統發展提速,混合部署應用需要虛擬化和容器技術支撐[25]。
展望未來,業界需要研究嵌入式軟件開發趨勢,把握電子信息產業最新需求,梳理軟件工程實踐經驗,改進嵌入式軟件開發方法,勇于采用新技術新平臺,從而迎接人工智能時代嵌入式軟件的新機遇。
參考文獻
[1]IDC.5G引領物聯網連接增長,IDC發布中國物聯網連接量預測[EB/OL].
https://www.idc.com/getdoc.jsp?containerld=prCHC51842824, 2023-02-02.
[2] Rommel, C., Hoffenberg, S., Mandell, D., et al. (2024) 2024 loT, Embedded &I ndustrial Technology Predictions.
https://www.vdcresearch.com/vdcc/wp-content/uploads/2024/01/2024-loT-Embedd ed-Industrial-Tech-VDC.pdf
[3] Beningo, J. (2024) 5 Embedded Software Trends to Watch in 2024
https://www.designnews.com/embedded-systems/5-embedded-software-trends-to-watch-in-2024
[4]微軟公司.什么是邊緣計算?[EB/OL].
https://azure.microsoft.com/zh-cn/resources/cloud-computing-dictionary/what-is-ed ge-computing/, 2024-01-03.
[5] Winston, P.(2024) 6 Embedded Software Development Trends to Watch in 2024.
https://www.ics.com/blog/6-embedded-software-development-trends-watch-2024
[6] loT Business News (2024) The Top 6 Edge Al Trends-As Showcased at Emb edded World 2024.
https://iotbusinessnews.com/2024/04/30/34354-the-top-6-edge-ai-trends-as-show cased-at-embedded-world-2024
[7] Lin, J., Zhu, L.G., Chen, W.-M., et al. (2024) Tiny Machine Learning Projects.https://hanlab.mit.edu/projects/tinyml
[8]Embedded.com (2023) The Current State of Embedded Development.https://www.embedded.com/wp-content/uploads/2023/05/Embedded-Market-Study -For-Webinar-Recording-April-2023.pdf
[9]何小慶.嵌入式實時操作系統的昨天、今天和明天[J].中國計算機學會通訊,2023(2):80-85.
[10]郭建川,殷燦菊.面向數控機床異構系統架構設計的操作系統[J].單片機與嵌入式系統應用,2022(3):8-10.
[11]鄭忠斌,李世強,費海平.一種基于Kubernetes的工業物聯網的新型調度[J].單片機與嵌入式系統應用,2021,21(6):8-10.
[12]翼輝信息.ECS實時容器[EB/OL].
https://www.acoinfo.com/product/5328/?category=42&subCategory=7350&curCateg ory=5328, 2022-05-07.
[13]鄧廣宏,張棋恒.基于混合關鍵系統的容器調度架構設計[J].計算機科學,2023,50(z1): 901-905.
[14] Patel, M. (2024) Containers for Cost Optimized MCUs and MPUs: A Game-Ch anger for Embedded Systems.
https://www.linkedin.com/posts/maulin-patel-6a927a9_containers-for-cost-optimize d-mcus-and-mpus-activity-7193335080805715971-BeMp
[15] Burns, A. and Davis, R.I. (2017) A Survey of Research into Mixed Criticality S ystems. ACM Computing Surveys (CSUR), 50,1-37.
https://doi.org/10.1145/3131347
[16]趙瑞姣,朱怡安,李聯.基于異構多核系統的混合關鍵任務調度算法[J].計算機工程,2018, 44(2): 51-55.
[17]余德釗.實時內核UniProton及其混合關鍵性部署的實踐[EB/OL].
https://www.esbf.org/wp-content/uploads/2023/08/202308_YDZ.pdf, 2023-08.
[18] openEuler. openEuler開源新項目,嵌入式實時虛擬機ZVM介紹[EB/OL].https://www.openeuler.org/zh/blog/20230325-ZVM/20230325-ZVM.html,2023-03-23.
[19]微軟公司.DevOps教程——簡介[EB/OL].
https://azure.microsoft.com/zh-cn/solutions/devops/tutorial/, 2024-07-01.
[20]Lone,O.,Stasiak, T., Meisterhan, J., et al. (2024) The Future of Industrial Pro tocol Certification Testing: CI/CD Pipelines, Cloud-Based, Automated and Orchestr ated. Embedded World Conference, Nuremberg, 9-11 April 2024, 399-402.
[21]Morris, B. (2024) What Is Coming Next with Software Defined Vehicles? An E xamination of the Trends Predicted over the Coming Years. Embedded World Co nference, Nuremberg, 9-11 April 2024, 304-309.
[22]Yiu, J. (2024) Simplifying the Integration of Software Components in Modern Microcontroller Systems. Embedded World Conference, Nuremberg, 9-11 April 2024,29-35.
[23] Wind River. Wind River Studio.
https://www.windriver.com/studio
[24]何小慶.嵌入式操作系統風云錄——歷史演進與物聯網未來[M].北京:機械工業出版社,2016:18-19.
[25]何小慶.AloT時代的嵌入式技術與人才培養[J].單片機與嵌入式系統應用,2020,20(9):6
-
嵌入式
+關注
關注
5082文章
19104瀏覽量
304801 -
AI
+關注
關注
87文章
30728瀏覽量
268886 -
虛擬化
+關注
關注
1文章
371瀏覽量
29790 -
ML
+關注
關注
0文章
149瀏覽量
34642
原文標題:嵌入式軟件開發的三個趨勢
文章出處:【微信號:麥克泰技術,微信公眾號:麥克泰技術】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論