日本无码免费高清在线|成人日本在线观看高清|A级片免费视频操逼欧美|全裸美女搞黄色大片网站|免费成人a片视频|久久无码福利成人激情久久|国产视频一二国产在线v|av女主播在线观看|五月激情影音先锋|亚洲一区天堂av

  • 手機站
  • 小程序

    汽車測試網(wǎng)

  • 公眾號
    • 汽車測試網(wǎng)

    • 在線課堂

    • 電車測試

AUTOSAR中的軟件架構(gòu)思考

2024-05-17 15:55:45·  來源:汽車EE架構(gòu)工程師Log  
 

01  為什么需要軟件架構(gòu)


人類喜歡看的是EXCEL/WORD/圖片這種直觀的表達方式。


計算機喜歡看的是XML/JSON格式固定的數(shù)據(jù)。


EXCEL雖然靈活機動,但是格式很難保證,實際項目里面一個EXCEL模板發(fā)出去,千千萬萬個EXCEL模板回來,事實證明只要有人類干涉的數(shù)據(jù),很難保證一致性,所以最好在數(shù)據(jù)傳遞過程中人類別參與修改和填寫。


但是想要讓XML文件成為大家都能識別的內(nèi)容,就需要大家遵循相同的SCHEMA<語法標(biāo)準>。ARXML文件就是AUTOSAR組織定義的一種標(biāo)準XML文件,里面可以包含軟件架構(gòu)+通信信息等。所有利益相關(guān)者基于該標(biāo)準可以方便地進行對話。


1.1 沒有AUTOSAR定義的軟件架構(gòu)之前的工作流是怎么的呢:


OEM>DBC/EXCEL矩陣>嵌入式工程師手擼代碼


圖片

EXCEL矩陣示例


這種工作流的好處是靈活性強,工程師很全能。對小的控制器供應(yīng)商很友好,畢竟AUTOSAR協(xié)議棧不便宜呢。


壞處是代碼質(zhì)量和工程師能力強相關(guān)。有點像咱們的中餐館,味道好的非常好,差的非常差。


1.2 基于AUTOSAR定義的軟件架構(gòu)的工作流:


OEM>ARXML>Supplier>基于AUTOSAR配置工具自動生成代碼<例如Rte_xx.h>


這種工作流的好處是減輕了代碼編寫和維護的工作量,有點像麥當(dāng)勞,味道基本是一致的。


壞處是使得嵌入式工程師的稀缺性降低,參與的公司玩家所需門檻不低。


從上面的工作流可以看到,最開始的嵌入式工程師的軟件架構(gòu)都在自己腦子里,一千個嵌入式工程師就會形成一千種軟件架構(gòu),對于OEM來說基本接觸不到軟件架構(gòu)。


AUTOSAR標(biāo)準的出現(xiàn),使得OEM在軟件設(shè)計之初就能夠參與到軟件開發(fā)中,從而慢慢提高了對于整車開發(fā)的掌控力,對應(yīng)的也削弱了供應(yīng)商的話語權(quán)。


由于ARXML文件里面可以包含軟件架構(gòu)+通信信息,我們就需要去了解其對于軟件架構(gòu)的相關(guān)定義。


02  AUTOSAR中的軟件架構(gòu)


AUTOSAR的軟件類型中從大類上來分只有兩種SWC :Atomic SWC和Compostion


Atomic SWC:SWC是原子級SWC,不可再拆分,每一個Atomic SWC都會生成對應(yīng)的一套.c /.h代碼文件。


Compostion:起到管理和組織SWC的作用,本身不會生成代碼


Atomic SWC可以分類為Application,Sensor/Acutator,Calibration等,目前的設(shè)計工作中,大部分還是用的前面兩種。


Atomic SWC的Port上需要定義Port Interface,只有持有相同Port Interface的Port才能夠進行對話。


Port和Port Interface也是有種類的,下面兩種是用得最多的:



Atomic SWC分了兩級,一個是SWC Type,另一個是SWC Prototype。SWC Type的意義是提高軟件的復(fù)用度。不同項目里面的可以用同一個SWC Type(也就是代碼框架完全一樣),不用重復(fù)造輪子了。


下圖中,左邊SWC Type需要定義SWC+Port(準確來說應(yīng)該是PortPrototype,因為SWC Type上,沒有Port Type,這個不細看標(biāo)準還真看不出來)+Port Interface(它會關(guān)聯(lián)Data Element+Adt/Idt)


右邊是將SWC Type被實例化為SWC Prototype,對于Door Sig這個SWC Type,它被實例化了兩次,分別成為Front Door Sig和Rear Door Sig。



以上紅色字體代表Port Interface;橙色字體代表Port Name


以Sender/Receiver為例,工具會自動生成相應(yīng)的應(yīng)用層代碼,生成的規(guī)則如下:


Porvide Port:Rte_Write_

_

Receiver Port:Rte_Read_

_


基于上面的信息,在藍色塊Door Control的兩個Receiver Port會生成如下代碼



上面只是考慮到SWC Type之間的連接關(guān)系,那么Compostion一般是怎么用到呢。

對于某一個控制器,由于Atomic SWC的不可拆分特性,所以至少需要一個Composition將其Atomic SWC包裹住,如下圖所示。



總結(jié):


AUTOSAR標(biāo)準的誕生是基于無數(shù)工程師的踩坑得來的,在汽車如此大量代碼的情況下,我認為軟件架構(gòu)設(shè)計是至關(guān)重要的,即便沒有AUTOSAR,肯定也需要其他架構(gòu)標(biāo)準來規(guī)范代碼開發(fā)。


我也特別希望有個工程師交流的相關(guān)標(biāo)準出臺,例如必須將問題寫下來,如何寫會議紀要,如何追蹤問題等。不然一個問題口頭描述半天都讓人聽不明白真的好累啊......。



參考:AUTOSAR_TPS_SoftwareComponentTemplate




分享到:
 
反對 0 舉報 0 收藏 0 評論 0
滬ICP備11026917號-25