自動駕駛的應用有著高可靠、高性能、高并發以及模塊化的需求特征,而實時、安全、開放的自動駕駛平臺是實現這些的關鍵之一,同時也是推動“軟件定義汽車”的重要基礎。推動實現SOA所倡導的軟件定義汽車的自動駕駛系統方案。
?SOA 應用在車端開發環境中,是一種從設計、開發、部署到管理離散邏輯單元(服務)模型。對于整個SOA開發過程而言,最主要的就是涉及從車輛特性、系統需求、系統開發、子系統開發、傳感控制器總成開發。
在 SOA 模型中,所有的功能都定義成了獨立的服務。服務之間通過交互和協調完成業務的整體邏輯。所有的服務通過服務總線或流程管理器來連接。這種松散耦合的架構使得各服務在交互過程中無需考慮雙方的內部實現細節,以及部署在什么平臺上。
SOA的細顆粒度、松耦合、服務可重用及標準化的服務接口等特性有利于OEM快速推出新功能,靈活迭代,支持軟件定義汽車。利于更多方參與軟件開發,以OEM為核心建立汽車生態系統。同時,精確定義的服務契約,獨立于硬件、操作系統和編程語言的開發模式有利于更多方參與軟件開發,以OEM為核心建立汽車生態系統。
此外,便捷的云端訪問,服務于精確封裝,可有效地保證數據安全,使得車輛不在是信息孤島,而是物聯網中的一個節點,建立了真正的車-云通道。
可以說SOA完美的解決了汽車軟件架構面臨的各種挑戰,并且為迎接汽車產業的變革打下必備的基礎。
SOA車端E/E架構設計要素
SOA的開發過程相對于傳統開發模式而言,仍然是以需求為輸入,將需求以全面服務的模式進行細化,最終將定義的服務映射到軟硬件架構中。
?
如上圖所示,面向服務SOA架構的基本工作流程包括在底層設計過程中需要面向對象進行服務設計、服務分組以及服務映射。其中需要根據服務列表及服務接口設計服務,從而根據功能邏輯將服務映射值不同的模型,最后以服務組件到軟件組件(SWC)的映射服務接口到軟件接口。
SOA在自動駕駛架構設計中需要重點考慮基于服務設計的完整性和功能安全設計的完整性。以標準的ASPICE軟件認證開發流程為基礎藍本,傳統的開發流程以系統驗證為SOP節點,后續運行維護及上市后不再進行軟件更新,而基于SOA的軟件開發模式需要在系統驗收后持續不斷的更新軟件,迭代更多實用性功能,提升已有軟件性能。SOP Release需要包括所有可能的Basic Service,不需要所有的Service都一次開發完成。
利用 SOA的思維架構進行自動駕駛設計過程中,需要根據SOA設計原則定義服務接口,統一開發基礎共用的軟硬件平臺及開發環境,從而提高軟件復用度。開發過程考慮繼承系統層級到零部件層級設計的實現原則,例如,功能子模塊需要進行封裝,功能之間需要進行自我包含等。
整個SOA在其硬件設計中主要實現了從模塊化、單域控制器、冗余計算平臺再到中央計算平臺的整體演進。其中各自體現在如下一些方面:
1)模塊化分割:梳理自動駕駛各子功能模塊的各自功能,形成模塊化的分子架構模型;
2)域控制單元:將如上分子架構模型中的ECU合并至中央域控制器,從而減少成本、重量和功耗,利用半導體及軟件技術革新優化域控能力。
3)冗余計算平臺:SOA可直接訪問存儲單元,并行計算載體提供冗余和安全算法,并在開放的可裁剪平臺上進行搭載;
4)中央計算平臺:SOA通過網絡訪問、動態配置及無縫冗余,注入刀片式服務設計策略,實現真正的自動駕駛演進。
對于SOA的開發應用模式,在其軟件設計中實現了更加靈活的軟件架構,集成第三方生態合作伙伴應用,服務拓展更新更加便捷,實現插拔式軟件設計。最終目標是實現如下多個交互實體的關系解耦:
I/O接口與計算解耦、計算平臺與區域架構解耦、軟件與硬件解耦、整車級抽象能力、軟件與軟件解耦、基于微服務的軟件架構、配置數據與代碼解耦、數據驅動I/O設備。
安全設計在SOA中的應用思考
SOA在重構軟件生態時,其功能安全實現難度大幅增加。OEM開放3party開發平臺,如何保證其不影響整車的功能安全,對于3party開發的服務,如何確保其不級聯失效影響其它已有ASIL等級的服務,服務客戶端 的ASIL等級的不確定性等問題都將是制約SOA能夠有效實現的關鍵因素。
SOA 系統設計層面考慮應考慮進行服務分層(如下圖),其中SOA的功能安全設計需要考慮到整個層面的設計過程。
SOA 系統設計層面考慮應充分考慮服務分層。結合安全因素將服務合理分層,針對不同開發主體確定不同限制策略。同時,還應該基于服務進行有效分類,基于服務的安全相關性對開發的服務和OEM服務進行分區,過程中需要考慮嚴格的安全審核機制。為了實現物理隔離,需要考慮將供應商開發的底層服務和OEM自己開發的頂層服務進行高性能計算分區和安全計算分區。
此外,SOA在安全機制上可以分為3層架構設計,因此其軟件運行期間的動態監控是必不可少的。
整體來講,構建面向服務的安全分析流程及框架包含如下幾個關鍵部分:
首先是進行有效的服務過程建模(BPMN),隨后是進行安全分析中的服務Hazard分析(SHA)和服務Failure分析(SFA),最后是進行SOA的錯誤分類。在后續開發層面主要通過安全案例和服務層一致性構建安全保障體系,實現高度自動化的模型集成環境。
SOA的軟件應用局限及應對策略
SOA在智能駕駛的不斷滲透,意味著汽車軟件的競爭力將會成為其核心競爭力,它關乎所有關鍵商業指標,如TTM、生產率、成本以及創新。而軟件研發過程中就意味著其復雜性帶來的巨大挑戰。比如如何應用有效的軟件管理以及系統集成核心工具,發揮多核性能最有效方法,使得滿足功能安全、信息安全要求,降解軟件復雜度,提高軟件重用率,使軟硬件解耦。通過降解復雜度,使得軟軟解耦,通過零代碼修改使得系統集成更加有效。通過健康監控使得軟件可見可管理。
SOA挑戰 | 問題解析 | 有效對策 |
軟件產品管理 | 軟件產品必然面臨如何核算成本,如何管理開發,如何管理供應商,如何定義業務等。 | 擁抱開源、融入生態,專注產生差異化價值的軟件開發,業務相關軟件開發。盡量減少企業私有的軟件,降低軟件產品管理的不確定性和復雜度,減少軟件的生命周期成本。 |
全生命周擁有成本 | 軟件開發的一個重要特點是長期維護,長期更新,這為開發者帶來持續改進的可能性,同時,應意識到這也是長期成本。 | |
復雜性 協作開發 |
汽車軟件代碼體量已經超過1億行,考慮到車型變型就更加復雜,人工智能算法、第三方軟件集成等新需求讓協作開發是發展的必然。 | 通過虛擬技術和容器等技術實現軟硬解耦、軟軟解耦,管理軟件的復雜性,支持多供應商同步開發,不同項目復用軟件模型組。 |
兼顧實時、安全性需求 | 尤其自動駕駛領域和網絡安全。 | 將實時性、安全性要求高的軟件運行在實時操作系統上。 |
軟件可維(護)可測(試) | 為了驗證復雜軟件的可靠性,對代碼有效管理,甚至必須犧牲一定的性能! |
1、基于開源軟件開發的代碼,盡量通過開源社區維護,企業自身維護的代碼盡量少,底層通過代碼維護可以交給專業軟件供應商維護。 2、使用自動化測試工具。 |
動態性 | 新技術的發展、半導體資源的升級、汽車開發越來越貼近消費端,都帶來軟件開發需求的變動加速和動態性。 | 敏捷流程,小步快跑的方式持續集成、持續發布(CI/CD),一體化開發、運維(DevOps) |
SOA設計中的關鍵環節-中間件
下一代自動駕駛著力于基于服務開發相應的軟件架構(SOA),其對于其從傳感器,控制器到執行器所呈現的井噴式增長,對于開發者而言最直觀的感受就是,軟件系統日益龐大,代碼行數快速增長;硬件的類型、數量和規格明顯提升,電子系統的復雜性成倍增加;軟件、硬件組合在一起所需克服的挑戰,也像做乘法一樣地被急劇放大。
這就大幅提升了汽車對軟硬件架構的要求。實際是該類型的軟件架構需要同時解決當下系統開發難題,又要具備足夠的前瞻性、兼容性和擴展性,后續可以有效的實現軟件升級,硬件換代,模塊增減和更替等。
自動駕駛的中間件,可以按需調整、滿足各樣自動駕駛過程中的開發需求??梢詾樯蠈拥膽密浖峁╅_發和運行所需的環境,方便開發者快速、高效、靈活地開發和集成自動駕駛軟件。自動駕駛的中間件,也屬于廣義上的操作系統,但是它和QNX、Linux這些底層系統并不一樣。本質上它是介于上層應用和底層系統之間的一套軟件框架,是對軟硬件資源進行管理、分配和調度的平臺,充當著軟件和硬件解耦的關鍵角色。
具體來說,中間件通常對傳感器、計算平臺等資源進行抽象,對算法、子系統、功能采取模塊化的管理,通過提供的統一接口,讓開發人員能夠專注于各自業務層面的開發,而無需了解無關的細節。這樣最直接的好處就是,整個系統的開發效率得到提高,軟件部署得以簡化,整體的擴展性也獲得了提升。
常規的計算機操作系統對計算機的硬件和軟件進行管理,會涉及處理器管理、存儲管理、設備管理、文件管理、進程管理,比如Android、iOS、Windows、Linux,就是其中的典型代表。那自動駕駛中間件,對于軟硬件的管理又會有哪些內容呢?自動駕駛需要接收不同的傳感器信號,然后進行感知、規劃和控制,并由轉向、油門和制動這些硬件系統來完成整個過程。所以自動駕駛的中間件會涉及到ECU管理、傳感器管理、車輛模型管理、通信管理、任務管理、數據管理、安全管理、診斷管理、OTA管理、可視化管理。
對于SOA來講一個典型的例子就是,不同車型配置存在巨大差異。我們可以借助于中間件平臺,插拔式設計在系統開發過程中根據需求進行不同程度的拓展。主要包含如下三個方面:
系統設計階段,有效的適配不同的傳感器、域控制器芯片、車端平臺等硬實體;
軟件開發階段,提升開發效率并及時優化各類軟件算法模塊,升級低級別的自動駕駛功能;
系統驗證階段,進行快速高效地軟件迭代,并能夠提供不同的優化方案,而不依賴任何第三方的組件。
SOA在汽車自動駕駛產品設計中,力爭做到通過打造爆款車型,開發迭代的軟件實現有效的升級盈利。其中軟件靈活的迭代模式可以有效的縮短開發周期,硬件實現算力大幅擴展,傳感器/執行器即插即用,打造可靠性高的安全架構體系,確保整車額功能安全、信息安全能力,最后是實現低成本,高品質的架構設計和軟件研發,使主機廠、供應商共同受益。
審核編輯:劉清
評論
查看更多