嵌入式系統的軟體和硬體通常緊密相連,錯綜複雜。開發人員面對有限資源和緊迫截止日期等限制,還要確保無縫整合,這需要進行許多回合的器件測試。
然而這種方法對於快速的產品開發生命週期並不適用,也不符合以服務為導向的商業模式要求。汽車製造商正在逐步接受軟體定義汽車(SDV)的概念,而不是僅僅依靠維修期間進行的關鍵或有限的韌體(firmware)更新。SDV的目標是在其整個生命週期內持續發展和增強。
實現SDV必須採取平台的方法。通過將硬體和軟體解耦(decoupling),能夠讓應用程式和架構設計變得更加靈活,並且可以隨著時間的推移添加其他功能。解耦還有助於在不同車型中增加軟體複用,減少平台之間的適應成本。此外,車主還將享受到更高的安全性和可靠性,同時降低能耗。
這種方法將徹底顛覆汽車軟體發展。我們將看到行業「向左移動」,即使在原型硬體未量產的情況下,軟體也能在產品開發生命週期的早期完成。同時,該行業還可以「向右延伸」,在車輛售出後繼續進行更新。這讓汽車製造商能夠通過基於雲端的服務尋找新的收入源,讓不同車型的車主都可以享用他們的服務,並通過空中編程(Over-the-air programming;OTA)更新在汽車的整個生命週期內添加功能。
在持續整合和部署的基礎上建構
持續整合和持續部署(或近持續部署)概念在企業領域已經成功應用多年。「向左移動」(Shift Left)和「向右延伸」(Stretch right)是合乎邏輯的下一步。如果開發團隊選擇了正確的軟體發展方法,這兩者的要求在很大程度上是一致的。
SDV與其他嵌入式系統和支援技術沒有本質的區別。例如,虛擬化和軟體容器可以隔離軟體模組,並將其從底層硬體中抽象出來。這種方法的優勢是能更加輕鬆地與多項增值服務的雲流程整合。這類服務通常將核心汽車功能與人工智慧(AI)和基於雲端的分析相結合。
嵌入式系統的核心變化在於不再需要在物理硬體上進行大量的原型製作,或者至少儘量減少相關工作,以確保對時序和硬體行為的假設符合實際情況。然而,嵌入式系統確實需要一個額外的元件。
虛擬化和模擬如何助力開發
容器化是在雲端環境中採用持續整合和部署方法的重要要素,能夠減少應用程式對硬體的依賴性。應用程式可以與測試所用的支援函式庫和設備驅動程式一起封包,從而與底層作業系統隔離開。在嵌入式環境中,需要額外的隔離和保護層,由虛擬化技術提供。在虛擬化環境下,管理程式將I/O消息映射到底層硬體。管理程式對虛擬平台的管理還有助於安全隔離在同一處理器複合體上運行的獨立任務。
容器化提高了汽車製造商部署更新的靈活性和能力。這對於需要頻繁進行OTA更新的系統部分特別有?明,例如車艙內的娛樂中控模組。儘管這些模組將更加獨立,但硬體介面及其依賴關係對汽車的即時控制和安全系統仍然非常重要。開發人員需要瞭解硬體變化如何影響他們的軟體,而數位分身(Digital twin)技術能夠解決這個問題。
數位分身是一種複製硬體和韌體行為的虛擬模型。在數位分身技術的加持下,開發人員無需訪問硬體即可完成大部分測試。數位分身可以在互動式調試的模式或高度自動化的回歸測試套件中運行,既可以在桌面工具上,也可以在基於雲端的容器中進行。回歸測試通過執行多種測試,加速了在進行變更時的品質控制檢查。另外,開發設計團隊還能利用分析和機器學習技術,更快地發現bug。
可以針對任何代碼模組或子系統進行更新測試,查看變更是否會導致意外的交互或問題。數位分身並不能在專案中完全取代硬體。傳統的硬體在環(HIL)測試仍然是檢查數位分身類比在實際條件下的行為的必要手段,但一旦解決了行為差異,數位分身可以廣泛用於支援中期更新。廣泛的硬體前測試可以通過雲端在多台伺服器上高速運行,使汽車製造商有信心在準備就緒後立即大規模部署基於新功能的OTA更新。
使用精細和詳細的模型
模型的準確性非常重要,儘管許多測試並不需要完全精確定時的模型。高度精細和詳細的模型通常運行速度較慢,而那些為分析目標處理器的指令輸送量和應用邏輯而優化的模型則更快。通過僅運行需要完全詳細類比的元件或子系統模型的分區,可以簡化測試時間和驗證流程。
儘管汽車製造商和子系統供應商可以自行建構數位分身模型,但與合適的半導體供應商建立合作關係具有顯著的優勢。恩智浦半導體等供應商承諾,在產品交付給汽車製造商組裝成原型和最終產品之前,提前一年開發其晶片平台模型。
數位模型還可以?明汽車製造商和子系統供應商瞭解架構創新能夠為目標應用帶來哪些優勢。磁阻隨機存取記憶體(MRAM)就是一個很好的例子,它是快閃記憶體的高性能替代方案,同時克服了易失性DRAM和SRAM在持久資料方面的局限性。基本模型可以將快閃記憶體和MRAM等非易失性記憶體視為等效記憶體,在延遲或頻寬方面並沒有區別,而更準確的模型則可以反映出它們在讀寫時間和其他行為方面的差異。
這些差異可以通過更改代碼庫來加以利用,從而充分發揮現有技術的優勢。因此,通過採用以模型為中心的開發方法,軟體團隊可以?明指定未來的硬體實現方案,以提升多代產品的性能。
持續改進
支援「向右延伸」的方法將不斷提高產品品質和服務收入。除了對於汽車本身進行OTA更新外,汽車製造商還可以從運行系統中收集感測器資料,並將其應用於多種機器學習和分析系統,這些資訊可以在篩選後應用於數位分身類比,以評估現實世界中的性能。
如此一來,在新的OTA更新部署之前,就可以在回歸環境中測試改進,從而減少開發和部署之間的時間,加快產品改進的週期。這不僅能增強現有硬體,還能為未來的技術變革奠定基礎。這也進一步證明,包含持續整合和數位分身的整體開發方法有助於簡化產品設計和支援。
(本文作者Andy Birnie為恩智浦半導體汽車系統工程主管)