嵌入式系統開發演變過程概述隨著數字化轉型,嵌入式系統的開發方式發生了哪些改變呢? 1. 固定功能到靈活系統 許多嵌入式或控制系統都是以單片方式設計的;定制硬件配備了定制的操作系統,可能是一些復雜的中間件,并托管一個或多個應用程序來執行一組特定的任務。整個設備作為單個設備進行包裝和銷售,并通過經歷了類似設計周期的新一代替換整個單元來執行升級。這不僅是一種繁瑣的設計方法,需要在每個設計周期重新開發和重新測試許多非差異化組件,而且在部署新功能或修復損壞的功能(包括安全更新)時也很不靈活。 2. 自動化設備到自治系統 許多嵌入式系統旨在自動執行特定任務。例如,在工業系統中,可編程邏輯控制器 (PLC) 用于自動化制造過程,例如化學反應、裝配線或機器人設備。通常,這些設備具有高度的準確性、可重復性和可靠性,盡管它們需要單獨編程才能這樣做,并且通常在其初始設計參數之外執行的余地很小。然而,為了提高生產力并影響更大的業務成果,學習系統將越來越多地用于跨越單元、工廠或系統級別的一系列控制設備。類似的系統級方法正在自動駕駛應用中出現,學習系統還將對需要在邊緣設備上運行的計算工作負載類型產生重大影響。傳統上,嵌入式系統設計從定制硬件開始,可能包括定制的硅處理器,軟件在其上分層——一種“自下而上”的方法。對于機器學習實現來說,這個過程是完全相反的;定義的問題陳述將確定要使用的最佳學習算法類型(例如,對象分類問題可能需要不同的語音識別方法),從中選擇最佳硬件平臺來最有效地運行學習框架。例如,這可能涉及選擇具有特定指令集或加速器的 CPU,或者將 GPU 或 FPGA 與傳統處理器一起使用。在這些環境中, 3. 軟件定義一切 自主系統的出現將需要將系統設計重點從單個、資源受限的定制設備轉向更靈活和可編程的環境,這些環境可以在全球范圍內進行更改或優化。這種轉變不僅會影響構建智能系統的工程方法,還會影響各個行業長期以來圍繞特定功能“黑匣子”的生產建立的供應鏈,例如汽車中的電子控制單元 (ECU),或工業應用中的分布式控制系統 (DCS)。 類似地,構建這些系統所需的技能集將演變為包含更多以軟件為中心的方面。那些通過設計和銷售硬件來定義差異化并獲得價值的公司可能會發現他們需要開發豐富的軟件能力。這將涉及定義軟件藍圖,以及可能的工具、API 和 SDK,他們的生態系統將通過這些工具、API和SDK為底層計算平臺提供額外的增值組件。集成來自多個供應商的中間件或應用程序的責任可能會從供應鏈轉移到設備制造商本身,并帶來支持或責任模型的變化。 使開發范式現代化:IT 之旅 在過去的幾十年里,企業IT系統經歷了徹底的轉變。最開始的時候,使用大量的微型計算機,每個微型計算機都有自己獨特的操作系統風格。深入了解內部,會發現這些計算機采用獨特的、有時是定制的處理器架構。隨著臺式電腦和服務器的出現,英特爾架構成為企業IT系統無處不在的硅架構,推動了硬件、開發工具和充滿活力的軟件生態系統的標準化。 接下來,我們看到了虛擬化的變革力量,它導致了應用程序的整合并推動了更高的硬件利用率,從而進一步提高了IT環境的效率。雖然最初的動機是優化本地計算資源,但將軟件與底層硬件解耦允許計算資源的集中化,并為云計算鋪平了道路。 如今,云計算消除了硬件和軟件之間的依賴,可以快速高效地編寫應用程序或單個功能,同時對底層計算、存儲和網絡資源有很好的控制。這種解耦使開發人員能夠快速開發、部署和更新應用程序,而且規模龐大,完全無需擔心購買或管理任何硬件。 雖然IT開發人員可以快速構建和部署超大規模應用程序,通過使用豐富的應用程序框架、現代開發語言和工具以及使用由其他人管理的基礎設施來構建他人的知識,但嵌入式開發人員大多沒有這種奢侈。相反,他們的開發模式讓他們難以跟上快速變化的芯片架構,無法利用其IT同行所享受的軟件開發和部署方法方面的許多進步,因此在快速創新和系統的可負擔性方面苦苦掙扎和產品過時。他們沒有享受IT之旅帶來的進步。 為了改變這一點,人們必須認識到嵌入式系統通常與IT系統有很大不同。諸如系統性能和可靠性、成本、資源和時間限制、故障或停機的容忍度、安全需求等問題,都對系統的構建和部署方式提出了非常具體的要求。然而,通過認識到并滿足這些要求,可以利用IT領域的進步,并在構建嵌入式系統的方式中釋放更多的效率、創新和可負擔性。 |