歡迎來(lái)到培訓(xùn)無(wú)憂網(wǎng)!

全國(guó)切換

咨詢熱線 400-001-5729

位置:培訓(xùn)無(wú)憂網(wǎng) > 新聞資訊 > 電腦/IT > 程序開(kāi)發(fā) >  基于Autosar的SOA軟件開(kāi)發(fā)設(shè)計(jì)詳解

基于Autosar的SOA軟件開(kāi)發(fā)設(shè)計(jì)詳解

來(lái)源:m.universityresearchassociates.com 發(fā)布人:彭二胖

2022-01-09 10:20:58|已瀏覽:154次

       面向服務(wù)的架構(gòu)SOA的出現(xiàn)可以打破車(chē)內(nèi)靜態(tài)交互模型,并且建立功能靈活治理的系統(tǒng)架構(gòu)。確保新增功能的實(shí)現(xiàn)可以與車(chē)輛原有的系統(tǒng)架構(gòu)、驅(qū)動(dòng)方式、通信方式相匹配。(SOA)總體思路是設(shè)計(jì)組件模型,將不同的應(yīng)用功能服務(wù)進(jìn)行拆分,并通過(guò)定義恰當(dāng)?shù)耐ㄐ沤涌趯⑾鄳?yīng)的服務(wù)串聯(lián)起來(lái)。接口定義是獨(dú)立于實(shí)現(xiàn)服務(wù)的硬件平臺(tái)、操作系統(tǒng)和編程語(yǔ)言。確保構(gòu)建在不同系統(tǒng)中的服務(wù)可以以一種統(tǒng)一和通用的方式進(jìn)行交互。
       SOA是基于系統(tǒng)的概念,這種系統(tǒng)是由一組服務(wù)組成的,其中一個(gè)服務(wù)可以輪流使用另一個(gè)服務(wù),應(yīng)用程序可以根據(jù)各自的需要調(diào)用一到多個(gè)服務(wù)。這一點(diǎn)上,SOA與Autosar的工作方式是一致的,因此,當(dāng)前自動(dòng)駕駛系統(tǒng)的開(kāi)發(fā)中往往采用了基于Autosar的SOA設(shè)計(jì)模式。
       基于Autosar的SOA軟件架構(gòu)
       基于SOA開(kāi)發(fā)模式的軟件架構(gòu)(見(jiàn)下圖)主要在于通過(guò)軟件抽象層——運(yùn)行時(shí)環(huán)境 (RTE) 拆分獨(dú)立于硬件的應(yīng)用軟件(ASW)和面向硬件的基礎(chǔ)軟件 (BSW)。一方面,這個(gè)抽象層能夠?yàn)镺EM自動(dòng)駕駛系統(tǒng)開(kāi)發(fā)特定的、有競(jìng)爭(zhēng)力的軟件應(yīng)用程序。另一方面,它簡(jiǎn)化了獨(dú)立于 OEM 的 基礎(chǔ)軟件標(biāo)準(zhǔn)化,其中,基礎(chǔ)軟件進(jìn)一步分為以下幾層,“服務(wù)”、“ECU 抽象”、“微控制器抽象”。此外,它是 ECU 軟件可擴(kuò)展性的前提條件。 
       運(yùn)行時(shí)環(huán)境RTE是從基礎(chǔ)軟件中抽象出應(yīng)用層,并組織它們之間的數(shù)據(jù)和信息流量。這構(gòu)成了在應(yīng)用層面向組件、獨(dú)立于硬件的軟件結(jié)構(gòu)的基礎(chǔ),軟件模塊可以作為獨(dú)立的單元存在。
       例如,下一代自動(dòng)駕駛系統(tǒng)采用SOA軟件模塊架構(gòu),其所有頂層功能都由底層軟件模塊實(shí)現(xiàn)。這些軟件模塊共同構(gòu)成了應(yīng)用程序。各個(gè)軟件模塊僅直接與 RTE 通信。因此,無(wú)論是在 ECU 內(nèi)還是超出 ECU 邊界,都設(shè)計(jì)了清晰的通信邊界。通過(guò)這種獨(dú)立性,可以在不了解使用或計(jì)劃的硬件情況下開(kāi)發(fā)軟件組件,或者更確切地說(shuō)是在 ECU 之間分配現(xiàn)有軟件模塊。
       基于SOA構(gòu)建軟件設(shè)計(jì)方法
       除了基于SOA的軟件架構(gòu)模塊設(shè)計(jì)外,AUTOSAR針對(duì)汽車(chē)軟件開(kāi)發(fā)提出了一套標(biāo)準(zhǔn)化的方法論,構(gòu)建 ECU 中的軟件模塊,將各種 ECU 集成到具有不同總線系統(tǒng)的車(chē)輛通信網(wǎng)絡(luò)。它定義了通用工件和相關(guān)活動(dòng),特別是活動(dòng)的依賴(lài)關(guān)系。
       在 SOA的設(shè)計(jì)方法中可以使用AUTOSAR的相關(guān)信息,定義了一種具有語(yǔ)義約束的正式數(shù)據(jù)交換格式,這種數(shù)據(jù)信息作為標(biāo)準(zhǔn)描述了存儲(chǔ)在 AUTOSAR XML (.arxml) 文件中,這種ARXML文件實(shí)際是由頂層SOA系統(tǒng)架構(gòu)設(shè)計(jì)者通過(guò)構(gòu)建相應(yīng)的SWC組件接口來(lái)生成的。軟件組件描述為應(yīng)用軟件提供了標(biāo)準(zhǔn)化的組件模型,系統(tǒng)描述定義了系統(tǒng)上的純軟件層與物理系統(tǒng)架構(gòu)之間的關(guān)系,許多工具使用這些描述來(lái)配置和生成AUTOSAR 中RTE的基礎(chǔ)軟件。
       基于SOA架構(gòu)的流程設(shè)計(jì)方法的原理如下圖所示。其中各框圖表示了帶有交叉鏈接的 ECU 實(shí)例。它描述了網(wǎng)絡(luò)拓?fù)、每個(gè)通道的通信以及各種 ECU 上軟件模塊的分配。基于Autosar的SOA軟件架構(gòu)設(shè)計(jì)方法
       除了具備描述汽車(chē)行業(yè) E/E 系統(tǒng)的基本能力外,還有許多方面需要實(shí)際交換格式的支持,例如可以通過(guò)技術(shù)文檔(包括規(guī)范、定義、技術(shù)要求等)、接口需求表等可追溯性來(lái)貫穿整個(gè)軟件生命周期。這種集成的變體管理允許 OEM 和供應(yīng)商共同深入到基本的 AUTOSAR 產(chǎn)品線,并在必要時(shí)與其合作伙伴交換相互的信息,對(duì)這些變體的共同理解和一致解釋是聯(lián)合開(kāi)發(fā)項(xiàng)目成功合作的關(guān)鍵因素。 
       SOA中的應(yīng)用程序接口用于確保應(yīng)用程序模塊與 RTE 進(jìn)行有效鏈接。其中,AP Autosar并未標(biāo)準(zhǔn)化應(yīng)用程序的內(nèi)部功能流程,例如算法,而是將在應(yīng)用程序之間交換的信息。
       一方面Autosar使用專(zhuān)用語(yǔ)法將基本接口機(jī)制進(jìn)行了標(biāo)準(zhǔn)化。這種標(biāo)準(zhǔn)化接口規(guī)范允許軟件設(shè)計(jì)人員和開(kāi)發(fā)人員獨(dú)立于任何特定硬件或 ECU 來(lái)開(kāi)發(fā)軟件模塊,這種軟件模塊可以在包含其使用的數(shù)據(jù)類(lèi)型、單位和縮放因子下進(jìn)行擴(kuò)展或重用。另一方面對(duì)車(chē)輛域主體中應(yīng)用程序接口的語(yǔ)義、內(nèi)涵、舒適性、動(dòng)力傳動(dòng)系、底盤(pán)以及乘客和行人保護(hù)進(jìn)行了標(biāo)準(zhǔn)化。重點(diǎn)是廣泛引入應(yīng)用程序的接口規(guī)范,以重點(diǎn)突破軟件模塊的重用和交換。最后,標(biāo)準(zhǔn)化應(yīng)用程序接口的使用對(duì)于應(yīng)用程序的重用至關(guān)重要。
       系統(tǒng)架構(gòu)-虛擬功能總線
       為了開(kāi)發(fā)功能系統(tǒng)架構(gòu),AUTOSAR 引入了虛擬功能總線的概念——VFB(Virtual FunctionBus)。為了避免誤解,應(yīng)該明確指出:AUTOSAR 已經(jīng)指定了 VFB 概念。這個(gè)概念在市場(chǎng)上可用的各種系統(tǒng)架構(gòu)工具中實(shí)現(xiàn)。
       VFB 允許描述整個(gè)系統(tǒng)中應(yīng)用模塊之間的功能交互,此描述獨(dú)立于實(shí)際 ECU 的架構(gòu)和實(shí)施的網(wǎng)絡(luò)。通過(guò)這種方式,VFB 將應(yīng)用程序從硬件中抽象出來(lái),在這里,軟件組件被分配給 ECU,在每個(gè) ECU 中,VFB 的功能由 RTE 和底層基礎(chǔ)軟件實(shí)現(xiàn)。在進(jìn)一步架構(gòu)構(gòu)建過(guò)程中,功能系統(tǒng)架構(gòu)被映射到物理架構(gòu)上或者說(shuō)在 ECU 和網(wǎng)絡(luò)拓?fù)渖。SOA中 將單個(gè)應(yīng)用程序描述為軟件組件 (SWC)。VFB 既提供了它們之間的通信機(jī)制,也提供了使用基本軟件服務(wù)到軟件組件的機(jī)制,各種機(jī)制由所謂的端口表示。 
       SOA軟件分層
       1、應(yīng)用軟件
       SOA軟件架構(gòu)的層模型將應(yīng)用軟件以軟件組件的形式放置在應(yīng)用層中,可以將軟件組件分組為在外部再次充當(dāng)軟件組件的組合。通過(guò)這個(gè)通用組件概念,可以將軟件組件的任何嵌套層次結(jié)構(gòu)實(shí)現(xiàn)為一個(gè)系統(tǒng)。應(yīng)用軟件可以獨(dú)立于硬件進(jìn)行設(shè)計(jì)和開(kāi)發(fā)。
       軟件組件通過(guò)端口進(jìn)行通信,每個(gè)端口代表某種通信機(jī)制。應(yīng)用程序之間通信中最重要的機(jī)制是“發(fā)送方-接收方”用于由數(shù)據(jù)發(fā)送方發(fā)起的通信,以及“客戶端-服務(wù)器”用于接收方發(fā)起的通信。除此之外,還有用于過(guò)程控制(外部觸發(fā)事件)或用于訪問(wèn)某些參數(shù)(校準(zhǔn)、操作模式、非易失性存儲(chǔ)器)的更多端口。每個(gè)端口都有一個(gè)接口,用于確定要通信的數(shù)據(jù)類(lèi)型。AUTOSAR 已在編程語(yǔ)言 C 中定義了端口的精確映射。下圖顯示了 ECU 內(nèi)以及不同 ECU 中的應(yīng)用程序之間的通信路徑。 
       軟件組件在 AUTOSAR中由 “軟件組件模板”做特定描述。除了端口和接口的描述之外,這還包含所謂的內(nèi)部行為。在 AUTOSAR 的上下文中,“內(nèi)部行為”是描述與時(shí)間或事件相關(guān)的過(guò)程控制(事件和調(diào)度)相關(guān)的組件。這包括“可運(yùn)行實(shí)體”的定義,即底層操作系統(tǒng)可在事件或時(shí)間上調(diào)度的最小軟件實(shí)體。需要說(shuō)明的是,要在組件中明確實(shí)現(xiàn)的算法不屬于“內(nèi)部行為”。
       在實(shí)踐中,有幾種典型的方法來(lái)填寫(xiě)或編輯軟件組件描述。許多基于模型開(kāi)發(fā)的設(shè)計(jì)工具如EA、Rapshody等,可以從圖形模型中生成軟件組件描述,并允許編輯相應(yīng)的條目。此外,RTE 生成器通常允許編輯軟件組件描述。對(duì)于具有特定硬件要求的應(yīng)用程序,例如作為依賴(lài)于某些傳感器或執(zhí)行器的軟件,AUTOSAR 提供了所謂的傳感器/執(zhí)行器軟件組件,其中可以在軟件組件描述中注明此類(lèi)約束。  
       2、實(shí)時(shí)運(yùn)行環(huán)境
       AUTOSAR 運(yùn)行時(shí)環(huán)境 (RTE) 從基本軟件的任何實(shí)現(xiàn)細(xì)節(jié)和控制設(shè)備的硬件中提取應(yīng)用程序。它表示特定 ECU 上 VFB的運(yùn)行時(shí)實(shí)現(xiàn)。RTE 提供應(yīng)用程序之間的通信機(jī)制和訪問(wèn)基礎(chǔ)軟件服務(wù)的機(jī)制。這還包括為通信提供數(shù)據(jù)緩沖和排隊(duì)。RTE 的實(shí)際程序代碼取決于應(yīng)用程序及其通信、使用的基礎(chǔ)軟件服務(wù)和調(diào)度。在實(shí)踐中,代碼是由 RTE 生成器根據(jù)軟件組件描述信息創(chuàng)建的。
       嚴(yán)格來(lái)說(shuō),RTE 是一種“中間件”層技術(shù),它可以通過(guò)去中心化網(wǎng)絡(luò)實(shí)現(xiàn)應(yīng)用層組件的重新定位。
       3、基礎(chǔ)軟件
       基礎(chǔ)軟件通過(guò) RTE 為應(yīng)用程序提供所有系統(tǒng)服務(wù)和功能。盡管基本軟件的功能對(duì)于應(yīng)用程序來(lái)說(shuō)是必不可少的,但車(chē)輛用戶通常不會(huì)很好地注意到這些功能。隨著對(duì)硬件的依賴(lài)性越來(lái)越大,基本軟件進(jìn)一步劃分為多個(gè)層次:即服務(wù)層、ECU 抽象層和微控制器抽象層。反過(guò)來(lái),每一層都包含代表精確指定功能范圍的單獨(dú)模塊。AUTOSAR 基礎(chǔ)軟件總共包含大約 80 個(gè)不同的模塊,標(biāo)準(zhǔn)對(duì)每個(gè)模塊都有一個(gè)要求和軟件規(guī)范。其中模塊的功能行為及其接口是用 C 定義的,因此一個(gè)模塊的兩種不同但符合標(biāo)準(zhǔn)的實(shí)現(xiàn)可以直接互換;拒浖K的功能行為參數(shù)化及其配置使用與應(yīng)用程序組件相同的形式描述機(jī)制?刂茊卧拒浖K的配置描述總結(jié)在ECU配置描述中。
       基于Autosar的SOA 服務(wù)
       服務(wù)層包括通信服務(wù)、診斷協(xié)議、存儲(chǔ)服務(wù)、ECU工作模式管理等系統(tǒng)服務(wù),以及作為獨(dú)立模塊的AUTOSAR操作系統(tǒng)(OS)。AUTOSAR OS 基于實(shí)時(shí)系統(tǒng)標(biāo)準(zhǔn)OSEK/VDX,在某些領(lǐng)域得到擴(kuò)展,但在其他領(lǐng)域也受到限制。它是靜態(tài)配置和縮放的,并提供基于優(yōu)先級(jí)的實(shí)時(shí)行為和中斷處理。在運(yùn)行時(shí),可以使用各種用于內(nèi)存訪問(wèn)或時(shí)間行為的保護(hù)機(jī)制。AUTOSAR OS 也適用于小型和較低性能的微控制器,同時(shí)也支持多核對(duì)代碼、數(shù)據(jù)使用和使用多個(gè)內(nèi)存分區(qū),服務(wù)的模塊是獨(dú)立于硬件的操作系統(tǒng)。這些系統(tǒng)服務(wù)可通過(guò) RTE 提供給應(yīng)用程序,應(yīng)用程序不能直接訪問(wèn)底層的基本軟件模塊。這是保留提供服務(wù)作為其功能的一部分從而訪問(wèn) ECU 或微控制器資源。服務(wù)模塊及其底層模塊也稱(chēng)為功能棧,例如 FlexRay 的通信棧。此類(lèi)堆棧有時(shí)會(huì)作為一個(gè)大型軟件單元來(lái)實(shí)現(xiàn)和集成,而沒(méi)有 AUTOSAR 定義的底層模塊結(jié)構(gòu)。雖然這破壞了抽象原則并降低了靈活性,但由于實(shí)現(xiàn)的效率和性能可能更高,因此在 AUTOSAR 中使用函數(shù)堆棧進(jìn)行處理很普遍。
       硬件抽象
       服務(wù)層主要用于硬件抽象。首先,ECU 抽象層將 ECU 布局(即外圍模塊如何與微控制器連接)與上層分離。盡管這一層是特定于 ECU 的,但它獨(dú)立于微控制器。下一級(jí)抽象是由微控制器抽象層實(shí)現(xiàn)的,其中包括微控制器特定的驅(qū)動(dòng)程序。例如,這些驅(qū)動(dòng)程序是用于數(shù)字輸入和輸出的 I/O 驅(qū)動(dòng)程序,或用于將模擬信號(hào)轉(zhuǎn)換為數(shù)字值的 ADC 驅(qū)動(dòng)程序。因此,AUTOSAR 標(biāo)準(zhǔn)直接支持標(biāo)準(zhǔn)化硬件。
       復(fù)雜驅(qū)動(dòng)層用于處理特殊情況,例如,用于控制具有特殊實(shí)時(shí)要求或具有特定機(jī)電硬件要求的復(fù)雜傳感器或執(zhí)行器。此類(lèi)模塊并未標(biāo)準(zhǔn)化為 AUTOSAR 基本軟件模塊,因?yàn)檫@里需要汽車(chē)制造商或供應(yīng)商的特定專(zhuān)業(yè)知識(shí)和知識(shí)產(chǎn)權(quán)。然而,復(fù)雜的驅(qū)動(dòng)程序和標(biāo)準(zhǔn)化的模塊必須滿足 AUTOSAR 基礎(chǔ)軟件中接口機(jī)制的要求。
       基于Autosar的SOA系統(tǒng)配置
       在 AUTOSAR 的上下文中,系統(tǒng)是指網(wǎng)絡(luò)控制單元的組合或集成,其中可能包括車(chē)輛的所有 ECU。系統(tǒng)配置遵循 VFB 級(jí)功能系統(tǒng)架構(gòu)的開(kāi)發(fā)。在設(shè)計(jì)系統(tǒng)配置時(shí),會(huì)根據(jù)系統(tǒng)的實(shí)際物理架構(gòu)做出決定。這些決定主要與系統(tǒng)拓?fù)溆嘘P(guān),即哪些控制單元可用以及它們?nèi)绾芜B接。對(duì)于每個(gè)控制單元,都有關(guān)于處理器架構(gòu)、處理器容量、內(nèi)存、接口和外圍設(shè)備或信號(hào)方法的資源描述。網(wǎng)絡(luò)拓?fù)涞拿枋龇秶鷱目偩系統(tǒng)到各個(gè)通道的通信矩陣。此外,它還包括確定哪個(gè)應(yīng)用軟件組件應(yīng)該在哪個(gè)控制單元上運(yùn)行,所有這些信息都記錄在系統(tǒng)描述中。在實(shí)踐中,這可以通過(guò)系統(tǒng)架構(gòu)設(shè)計(jì)工具以及 VFB 設(shè)計(jì)(也稱(chēng)為系統(tǒng)生成器)或通過(guò)基本軟件模塊的配置工具來(lái)完成。 
       系統(tǒng)配置成功需要通過(guò)對(duì)各個(gè)控制單元的進(jìn)一步配置,最后通過(guò)軟件集成來(lái)完成,每個(gè) ECU 都是獨(dú)立的,即如果需要,它可以并行運(yùn)行。此外,某個(gè)控制單元的所有相關(guān)信息都被復(fù)制到系統(tǒng)配置之外的 ECU 描述中。這被命名為系統(tǒng)描述的 ECU 摘錄。ECU 描述還匯總了每個(gè)基本軟件模塊的配置描述;拒浖渲玫脑S多參數(shù)直接來(lái)自系統(tǒng)描述或軟件組件的描述。其余的自由參數(shù)通過(guò)使用基本的軟件配置工具來(lái)設(shè)置。在幾乎所有基本軟件模塊的配置步驟之后,屬于配置的代碼由生成器生成——就像在 RTE 中一樣。
       應(yīng)用軟件組件的實(shí)現(xiàn)是算法和編碼的創(chuàng)建,可以與系統(tǒng)配置完全并行完成,因?yàn)檫@一步獨(dú)立于硬件。最終,基礎(chǔ)軟件的整個(gè)代碼連同 RTE 代碼以及所有應(yīng)用軟件組件的代碼都集成到每個(gè)控制單元的 ECU 軟件中。
       總結(jié)
       整體上講,面向服務(wù)的SOA架構(gòu)設(shè)計(jì)主要包含五個(gè)步驟:梳理整車(chē)功能、規(guī)劃SOA架構(gòu)、服務(wù)定義、服務(wù)矩陣和ARXML設(shè)計(jì)、服務(wù)驗(yàn)證和仿真;SOA不是一種具體的技術(shù)實(shí)現(xiàn),而是一種模板軟件架構(gòu),而AP AUTOSAR則稱(chēng)是一個(gè)模板SOA。如何利用Autosar構(gòu)建好的SOA模型是我們需要特別關(guān)注的。本文詳細(xì)闡述了面向服務(wù)的SOA軟件設(shè)計(jì)過(guò)程,以Autosar為基礎(chǔ)分析軟件架構(gòu)及其設(shè)計(jì)方法、系統(tǒng)配置、硬件抽象、軟件分層等。

       本文由培訓(xùn)無(wú)憂網(wǎng)長(zhǎng)沙牛耳教育課程顧問(wèn)老師整理發(fā)布,希望能夠?qū)ο朐陂L(zhǎng)沙參加影視動(dòng)漫培訓(xùn)的學(xué)生有所幫助。更多課程信息可關(guān)注培訓(xùn)無(wú)憂網(wǎng)電腦IT培訓(xùn)頻道或添加老師微信:15033336050

      注:尊重原創(chuàng)文章,轉(zhuǎn)載請(qǐng)注明出處和鏈接 http://m.universityresearchassociates.com/news-id-13951.html 違者必究!部分文章來(lái)源于網(wǎng)絡(luò)由培訓(xùn)無(wú)憂網(wǎng)編輯部人員整理發(fā)布,內(nèi)容真實(shí)性請(qǐng)自行核實(shí)或聯(lián)系我們,了解更多相關(guān)資訊請(qǐng)關(guān)注程序開(kāi)發(fā)頻道查看更多,了解相關(guān)專(zhuān)業(yè)課程信息您可在線咨詢也可免費(fèi)申請(qǐng)?jiān)囌n。關(guān)注官方微信了解更多:150 3333 6050

留下你的信息,課程顧問(wèn)老師會(huì)一對(duì)一幫助你規(guī)劃更適合你的專(zhuān)業(yè)課程!
  • 姓名:

  • 手機(jī):

  • 地區(qū):

  • 想學(xué)什么:

  • 培訓(xùn)無(wú)憂網(wǎng)
免 費(fèi) 申 請(qǐng) 試 聽(tīng)
提交申請(qǐng),《培訓(xùn)無(wú)憂網(wǎng)》課程顧問(wèn)老師會(huì)一對(duì)一幫助你規(guī)劃更適合你的專(zhuān)業(yè)課程!