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