您现在的位置是:Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款 > 

04 訂閱 英文縮寫名為雙14(如何在c++定義一個學生類以實現平均成績的計算和查詢功能?)

Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款2024-05-16 06:20:58【】8人已围观

简介、CyberRT、DDS等。(3)未動科技VP蕭猛認為,“中間”一詞是相對的,當有多層堆疊的時候,每一層都是其上下兩層的中間層,因此,在用“中間件”這個詞的時候,我們需要特別指明它究竟位于“哪兩層之間

、Cyber RT、DDS等。

(3)未動科技VP蕭猛認為,“中間”一詞是相對的,當有多層堆疊的時候,每一層都是其上下兩層的中間層,因此,在用“中間件”這個詞的時候,我們需要特別指明它究竟位于“哪兩層之間”。按蕭猛的說法,當我們稱“ROS/ROS2 為中間件”時,其含義與 “AUTOSAR AP為中間件”并不是對等的關系。

(4)Vector產品專家蔡守群說,他理解的中間件,“是給App開發提供功能支撐的,對外是沒有功能表征的;但是站在操作系統內核的角度,中間件跟App并沒有本質的區別”。

2.中間件的作用

汪浩偉說:“專用中間件原本是應用程序的一部分,只是很多公司做自動駕駛都需要用到,就被抽象出來了。”

那么,它究竟有什么用?

畢曉鵬認為,自動駕駛中間件最主要的作用是:對下,它能夠去適配不同的OS內核和架構;對上,它能夠提供一個統一的標準接口,負責各類應用軟件模塊之間的通信以及對底層系統資源的調度。

據畢曉鵬解釋,前者,使開發者們無需考慮底層的OS內核是什么,也無需考慮硬件環境是什么,即不僅實現了應用軟件與OS的解耦,也實現了應用軟件與硬件的解耦;而后者則確保了數據能夠安全實時地傳輸、資源進行合理的調度。

為什么要通過中間件來支持軟硬件解耦?畢曉鵬解釋道:

我開發一個應用軟件,其中很多內容都是與具體應用邏輯無關的,包括數據通信、通信安全、系統資源調度等,比如,有十個進程需要數據交互,完全沒有必要在十個程序的軟件代碼里各自進行實現和配置。針對這種情況,我們就可以把重復的部分抽象成一種服務,單獨封成一層東西(這就是中間件),并提供統一的庫、接口和配置方法,供上層去調用。這樣的話,有一部分人專門去做中間件的,而做上層應用的人也不需要考慮跟底層交互的事情。

舉例說,如果要做一個自動泊車系統,它有各個模塊或業務邏輯獨立的不同軟件,在進行通信、數據交互,或者調用底層資源時,只需要中間件的一個接口就可以實現,其他事情不需要考慮,這樣開發人員就可以專注于自己的業務邏輯。

又比如,一個攝像頭需要感知前面的車道線、紅綠燈等,開發人員就專門做紅綠燈和車道線檢測算法,與外界的數據交互只需要使用中間件的通信服務(例如訂閱攝像頭信息,發布檢測結果),而不必關心數據從哪里來、發給誰。

Nullmax紐勱科技系統平臺總監苗乾坤博士在此前的一篇文章中寫道:

“所以我們也可以看到,汽車對軟硬件架構的要求也越來越高,既要能滿足當下的需求,還要具備相當的前瞻性、兼容性和擴展性,能夠支持接下來軟硬件升級換代、增減模塊的需求。而自動駕駛的中間件,就正是這樣一個可以按需調整、滿足各樣需求的現代溫室。

“在早期開發中,中間件可以化整為零,將巨大的軟件工程分解成若干小任務,分散解決。在后期應用時,它又可以化零為整,像拼積木一樣,根據需求將一個個模塊組合成一個整體,嚴絲合縫。”

在春節前的一場直播中,東軟睿馳產品銷售總監安志鵬說,在軟硬件解耦、模塊化管理后,再遇到問題,就不用整個系統都改,只改相對應的部分就行了。這樣,軟件的可復用程度就極大地提升了,同時,驗證的工作量也會減少許多,整體開發效率也會因此提升。

相反,沒有中間件的話,應用層就得直接調用操作系統的接口,后期要是換了操作系統,應用層的代碼和算法可能就要推倒重來。

簡言之,中間件通過對計算平臺、傳感器等資源進行抽象,對算法、子系統、功能采取模塊化的管理,并提供統一接口,讓開發人員能夠專注于各自業務層面的開發,無需了解無關細節。

按東軟睿馳產品銷售總監安志鵬的說法,搞AUTSOAR這樣的中間件,并不是只對OEM有利,“零部件供應商的選擇面也大了——應用做好了,下面的軟件、芯片可以選好幾家供應商的,要比傳統的開發模式快很多,因而,零部件供應商也是受益者”。

用蕭猛的話說,中間件最直接的好處就是“為上層屏蔽底層的復雜性”,軟件開發人員可以忽略芯片、傳感器等硬件的差異,從而高效、靈活地將上層應用及功能算法在不同平臺上實現、迭代、移植。蕭猛認為,中間件可以看做是自動駕駛應用背景下的一項“新基建”。

(圖片摘自馮占軍博士的《AUTOSAR對基礎軟件開發是喜還是憂?》一文。AUTOSAR只是中間件的一種,但這里寫的“AUTOSAR開發優勢”基本也適用于其他中間件。)

不過,站在開發者的角度看,中間件的意義也未必全部是正面的。如馮占軍博士在《AUTOSAR對基礎軟件開發是喜還是憂?》一文中就提到了如下兩點:

底層軟件工程師變成了工具人,“只要你去點點鼠標,用工具配合就可以了”,很多原本由自己做的測試也改由供應商來做,進而導致工程師的成就感嚴重降低;時間久了,工程師從0到1開發的能力也會降低。

(圖片摘自馮占軍博士的文章。盡管文章說的是Autosar,但實際上這些問題在ROS等其他中間件的使用過程中也會存在。)

對軟件工程師來說,中間件造成的“能力退化”這一問題幾乎是無解的。但馮占軍博士認為,“如果這個中間件在開發過程中,有使用公司的工程師深度參與,提出需求并一起實施,會好一些”。

此外,殷瑋在一篇文章提到,使用AUTOSAR這樣的中間件,Tier 1們應該是很不情愿的,“因為不到增加了成本,還有可能逐步淪為硬件生產商”。但這個也不能說是中間件的鍋,在軟件定義汽車大大趨勢下,這幾乎是必然的。

二.常見的基本概念

1. AUTOSAR CP 與 AUTOSAR AP

在所有的中間件方案中,最著名的非AUTOSAR莫屬了。

嚴格地說,AUTOSAR并非特指由某一家軟件公司開發出來的某款操作系統或中間件產品,而是由全球的主要汽車生產廠商、零部件供應商、軟硬件和電子工業等企業共同制定的汽車開放式系統架構標準。不過,在實踐中,各公司基于AUTOSAR標準開發出來的中間件也被被稱為“AUTOSAR”。

當前,AUTOSAR可分為Classic Platform和Adaptive Platform兩個平臺,兩者分別被簡稱為AUTOSAR CP與AUTOSAR AP。

簡單地說,AUTOSAR CP主要跑在8bit、16bit、32bit的MCU上,對應傳統的車身控制、底盤控制、動力系統等功能,如果涉及到自動駕駛的話,AUTOSAR CP可能無法實現;而AUTOSAR AP主要跑在64bit以上的高性能MPU/SOC上,對應自動駕駛的高性能電子系統。

嚴格地說,AUTOSAR CP并不只是個“中間件”,它是相當于“OS內核+中間件”的一套完整的“操作系統”。 AUTOSAR CP定義了基本的上層任務調度、優先級調度等。

在基于分布式架構的ADAS功能中,AUOTSAR CP便是最常見的“操作系統”。在AUTOSAR的生態形成后,很多芯片廠商的MCU上標配的就是AUTOSAR CP,主機廠沒有什么選擇權。

由于分布式架構下的芯片主要是MCU,因此,便有了“AUTOSAR CP主要跑在MCU上”的說法。

在分布式架構下,不同的功能對應著不同的MCU,而每一個MCU上都需要跑一套AUTOSAR CP,若傳感器的類型比較多,則僅ADAS相關功能就需要很多套AUTOSAR CP,那怎么收費呢?

常規的做法是:根據MCU的類型來收費——如果MCU是兩個異構的MCU,那AUTOSAR CP就按兩套來收費;如果MCU是同構的,那AUTOSAR CP就按一套來收費。

隨著EE架構從分布式向集中式演進、芯片由MCU向SOC演進,計算量及通信量成數量級地上升,另外,多核處理器、GPU、FPGA以及專用買粉絲的需求,還有OTA等,都超出了AUTOSAR CP的支持范圍。

(圖片摘自安志鵬的直播課)

2017年,為更好地滿足集中式架構+SOC時代的高等級自動駕駛對中間件的需求,AUTOSAR聯盟推出了通信能力更強、軟件可配置性更靈活、安全機制要求更高的AUTOSAR AP平臺。

需要強調的是,不同于AUTOSAR CP自身已經包含了基于OSEK標準的OS,AUTOSAR AP只是一個跑在Lunix、QNX等基于POSIX標準的OS上面的中間件——它自身并不包含OS。

結合aFakeProgramer于2020年發表在CSDN上的《為什么要用AP?Adaptive AutoSAR到底給企業提供了一些什么?》一文及東軟睿馳安志鵬在2022年春節前的一場直播中講的內容,AUTOSAR CP與AUTOSAR AP最主要的區別有如下幾點:

1).編程語言不同——AUTOSAR CP基于C語言,而AUTOSAR AP基于C++語言;

2).架構不同——AUTOSAR CP 采用的是FOA架構(function-oriented architecture),而AUTOSAR AP采用的則是SOA架構(service-oriented architecture);

3).通信方式不同——AUTOAR CP采用的是基于信號的靜態配置通信方式(LIN\CAN...通信矩陣),而AUTOSAR AP采用的是基于服務的SOA動態通信方式(SOME/IP);

4).連接關系不同——在AUTOSAR CP中,硬件資源的連接關系受限于線束的連接,而在AUTOSAR AP中,硬件資源間的連接關系虛擬化,不局限于通信線束的連接關系;

5).調度方式不同——AUTOSAR CP采用固定的任務調度配置,模塊和配置在發布前進行靜態編譯、鏈接,按既定規則順序執行,而AUTOSAR CP則支持多種動態調度策略,服務可根據應用需求動態加載,并可進行單獨更新。

6).代碼執行和地址空間不同——AUTOSAR CP中,大部分代碼靜態運行在ROM,所有application共用一個地址空間,而在AUTOSAR AP中,應用加載到RAM運行,每個application獨享(虛擬)一個地址空間。

這些區別,帶給AUTOSAR AP的優勢有如下幾點——

1).ECU更加智能:基于SOA通信使得AP中ECU可以動態的同其他ECU同其他ECU進行連接,提供或獲取服務;

2).更強大的計算能力:基于SOA架構使得AP能夠更好地支持多核、多ECU、多SoCs并行處理,從而提供更強大的計算能力;

3).更加安全:基于SOA架構使得AP中各個服務模塊獨立,可獨立加載,IAM管理訪問權限;

4).敏捷開發:Adaptive AUTOSAR服務不局限于部署在ECU本地可分布于車載網絡中,使得系統模塊可靈活部署,后期也能靈活獨立更新(FOTA);

5).高通信帶寬:可實現基于Ether買粉絲等高通信帶寬的總線通信;

6).更易物聯:基于以太網的SOA通信,更易實現無線、遠程、云連接,方便部署V-2-X應用。

(圖片摘自東軟睿馳)

當然了,在某些方面,AUTOSAR AP與AUTOSAR CP相比是有一些“劣勢”的。比如,AUTOSAR CP的時延可低至微秒級、功能安全等級達到了ASIL-D,硬實時;而AUTOSAR AP的時延則在毫秒級,功能安全等級則為ASIL-B,軟實時。

上述區別也導致了兩者應用領域的不同:AUTOSAR CP一般應用在對實時性和功能安全

很赞哦!(47283)

Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款的名片

职业:程序员,设计师

现居:江西宜春宜丰县

工作室:小组

Email:[email protected]