前言
2021年,汽車界的熱門話題層出不窮:互聯(lián)網(wǎng)企業(yè)進軍汽車界,軟件定義汽車,某斯拉事件,全球芯片短缺等等。
這次文章的關(guān)鍵詞與軟件定義汽車有關(guān):SOA。
我們這次來聊一聊怎么通過我們熟悉的CANoe工具去實現(xiàn)SOA的相關(guān)功能。
什么是SOA
SOA的全稱是面向服務(wù)架構(gòu),它可以根據(jù)需求通過網(wǎng)絡(luò)對松散耦合的粗粒度應(yīng)用組件進行分布式部署、組合和使用。服務(wù)層是SOA的基礎(chǔ),可以直接被應(yīng)用調(diào)用,從而有效控制系統(tǒng)中與軟件代理交互的人為依賴性。(來源:百度百科)
SOA里面涉及服務(wù),接口、服務(wù)提供者、服務(wù)消費者等概念。
- 服務(wù):實現(xiàn)某種功能的函數(shù)或方法,是一個可遠程訪問并獨立執(zhí)行和更新的離散功能單元;
- 接口:能夠被其他模塊調(diào)用的函數(shù)名稱或一個封裝的API;
- 服務(wù)提供者:提供服務(wù)功能 如算法,數(shù)據(jù)源;
- 服務(wù)消費者:如消費數(shù)據(jù),使用功能。
但是SOA的架構(gòu)為什么要在汽車上應(yīng)用?
我們可以通過下面的例子進行思考,并分析傳統(tǒng)架構(gòu)與面向服務(wù)架構(gòu)的異同。

根據(jù)上面的例子我們可以清晰的看出:
對于傳統(tǒng)面向信號的架構(gòu)來說,增加新功能所需要的步驟更加繁瑣,增加了我們對于開發(fā)本身的成本,也可以透過整個流程看出,面向信號的架構(gòu)對于系統(tǒng)本身的利用率并不高。
面向服務(wù)的架構(gòu)對于ECU的更新版本、更新信號庫、代碼修改等過程更加簡便和靈活。簡化成了注冊服務(wù)與調(diào)用API。節(jié)約了時間成本,讓整個系統(tǒng)的功能可擴展性極大擴張。
汽車在不斷提高智能化水平;引入智能駕駛,V2X等技術(shù)的同時,也更加關(guān)注用戶的體驗與需求。軟件的迭代、OTA等功能的使用也越來越廣泛和頻繁。在我們傳統(tǒng)的電子電氣架構(gòu)下,我們可擴展的功能越來越有限,我們需要一個功能可擴展性強、軟硬件松散耦合、標準化接口、支持異構(gòu)系統(tǒng)集成的電子架構(gòu)。這也就是為什么我們要在汽車上使用SOA架構(gòu)。
System and Communication Setup功能介紹
CANoe中System and Communication Setup功能主要的使用場景是建立SOA仿真通信。SOA的核心是服務(wù),任何功能都可以鏈接到“服務(wù)”,并且服務(wù)的提供者和消費者都可以自由地改變。因此Communication Setup功能主要是在環(huán)境中實現(xiàn)不同的服務(wù)的鏈接,這些服務(wù)鏈接不僅局限于數(shù)據(jù)庫中的定義,可以在CANoe仿真環(huán)境中動態(tài)地建立連接。
在Communication Setup中將應(yīng)用層與實際傳輸介質(zhì)分離。我們在這里使用通信對象來描述應(yīng)用層信息,通信對象可以是服務(wù)、PDU或者信號。在此環(huán)境下,通信對象可以完全獨立于網(wǎng)絡(luò)通信介質(zhì),在CANoe中進行純粹的模擬通信。
通信對象可以通過綁定鏈接到傳輸介質(zhì)。綁定的方式也分為兩種。
- 第一種是采用以太網(wǎng)傳輸,綁定SOME/IP通信。我們可以通過以太網(wǎng)協(xié)議實現(xiàn)端對端的Server與Client仿真相關(guān)的SOA功能。
- 第二種是通過抽象綁定,這類綁定一般是在開發(fā)的早期階段,通過抽象綁定,無需定義底層協(xié)議,注重的是應(yīng)用的通信。

我們可以通過以上表格了解傳統(tǒng)工程仿真的元素與SOA仿真元素的對應(yīng)關(guān)系。
配置流程介紹
打開CANoe后即進入仿真標簽,找到左上角系統(tǒng)與通信窗口。

之后進入到配置界面。

首先我們需要加載數(shù)據(jù)源文件。


選取ARXML或者是vCDL等文件。
加載完成后進入下一步,可在數(shù)據(jù)庫加載完成后提前定義好數(shù)據(jù)庫中屬于被測系統(tǒng)以及測試環(huán)境的元素有哪些。


導(dǎo)入完成后回到配置界面
添加應(yīng)用模型文件(.CAN/.CS/.DLL等)。


如果你使用的是CANoe 14.0版本,模型導(dǎo)入完成后需要進行通信綁定的配置。

綁定界面可將未定義的元素進行拖動定義,綁定分為抽象綁定或SOME/IP綁定。

完成后點擊OK保存。
在CANoe 15.0版本中,通過讀取ARXML或vCDL等數(shù)據(jù)文件,文件預(yù)先設(shè)置了節(jié)點角色,可直接進入服務(wù)查看通信綁定狀態(tài)。
如綁定SOME/IP

或者是抽象綁定

基本配置完成后,之后我們再進入系統(tǒng)瀏覽器,查看之前加載好的所有數(shù)據(jù)。
左側(cè)的菜單欄中對我們的測試功能進行了分類,分為系統(tǒng)定義與預(yù)定義。

預(yù)定義的分類下是我們在數(shù)據(jù)庫導(dǎo)入的時候定義好的。


我們可以在窗口右上角切換用例的運行環(huán)境。
如果我們的被測對象是真實設(shè)備,并且已經(jīng)與CANoe進行了連接,可以將右上角的用例狀態(tài)切換為environment simulation。

切換后我們再將state的信息切換為REAL(Device)。此時我們的被測系統(tǒng)是真實的,而環(huán)境是仿真出來的。

如果我們也沒有真實的硬件設(shè)備,我們把右上角狀態(tài)切換為test the tester。

切換后我們的state的信息會切換為simulated。此時我們的被測系統(tǒng)和環(huán)境都是仿真出來的。
我們也可以借助此窗口查看系統(tǒng)的通信關(guān)系。

通信的拓撲圖可以直觀查看到。

工具欄也可查看選擇的端點內(nèi)包含的通信對象。
配置完成后,點擊熟悉的黃色閃電?按鈕,就可以進行CANoe的SOA功能仿真啦。

知識補充
1、在SOA仿真中我們看到了一種新的數(shù)據(jù)源格式:vCDL
首字母縮寫詞 vCDL代表 Vector Communication Description Language,是一種域特定語言 (DSLClosed),用于描述 CANoe中的通信對象。 vCDL允許通過用于簡單和基于文本的通信對象配置的工具擴展 CANoe通信概念。 通信對象及其各自的參數(shù)以類似于最常見編程語言的語法定義。 該語言的主要設(shè)計目標是能夠用很少的語言元素映射簡單的結(jié)構(gòu)。 如果需要復(fù)雜的配置,擴展語法允許通過屬性補充定義(類似于 C#中常用的屬性)。
我們可以使用系統(tǒng)自帶的 vCDL Editer實現(xiàn)文件的生成與編輯。


2、CANoe可以編輯和生成ARXML了?
我們在編輯系統(tǒng)數(shù)據(jù)的功能窗口發(fā)現(xiàn),我們可以查看ARXML的部分信息,如PDU、DATA Types、Encodings等。

目前模型編輯窗口修改的ARXML參數(shù)只是應(yīng)用于當前工程內(nèi)部,修改參數(shù)值和相關(guān)內(nèi)容并不會改變ARXML數(shù)據(jù)庫文件本身的內(nèi)容,也無法生成新的ARXML文件。
此窗口更多的協(xié)助用戶校對和匹配通信對象,以及更改修正關(guān)于以太網(wǎng)通信參數(shù)(如SOME/IP參數(shù)) 等場景使用。
5、為什么綁定功能中SOME/IP也作為綁定的一類?
SOME/IP (Scalable service-Oriented Middlewareover IP),即“運行于IP之上的可伸縮的面向服務(wù)的中間件”,是車載以太網(wǎng)中存在于應(yīng)用層的高層協(xié)議。 “中間件”可以是操作系統(tǒng),也可以是應(yīng)用程序,也可以是某個服務(wù)功能。SOME/IP屬于應(yīng)用層協(xié)議,它提供面向服務(wù)的通訊接口。服務(wù)接口包含請求/響應(yīng)方法(R/R Method),單向請求方法(F&F Method),通知事件(Notification Events),字段(Fields)。可以支持請求/響應(yīng)模式的遠程服務(wù)調(diào)用,也可以支持訂閱/發(fā)布模式的消息通知。SOMP/IP-SD服務(wù)發(fā)現(xiàn)功能可以發(fā)現(xiàn)服務(wù)提供者的信息以及檢查服務(wù)的狀態(tài)。
服務(wù)是SOME/IP的最核心概念,在一個服務(wù)中,定義了服務(wù)端(Server)和客戶端(Client)兩個角色:服務(wù)端提供服務(wù),客戶端調(diào)用服務(wù)。對于同一個服務(wù),只能存在一個服務(wù)端,但可以同時存在多個客戶端調(diào)用服務(wù)。

SOA本身的特性就是面向服務(wù),并需要通過協(xié)議調(diào)用一個或多個服務(wù)進行數(shù)據(jù)交互來滿足系統(tǒng)的業(yè)務(wù)需求。
一個是面向服務(wù)的架構(gòu),一個是面向服務(wù)的通信協(xié)議。SOA架構(gòu)中的服務(wù)可借助SOME/IP在不同的軟件平臺或操作系統(tǒng)之間共享資源,兩者在此功能中集合是一種必然。
在車載以太網(wǎng)普及度逐年攀升的時代,在實車上實現(xiàn)SOA以及進行測試通常會運用到SOME/IP協(xié)議。
6、總結(jié)
CANoe Communication Setup功能為實現(xiàn)SOA模型的交互和模型測試提供了全新的接口。用戶可以通過CANoe更加靈活地實現(xiàn)面向服務(wù)架構(gòu)的仿真。
汽車新四化的發(fā)展,汽車的功能由過去的靠特定功能硬件實現(xiàn)轉(zhuǎn)向為越來越多靠功能執(zhí)行模塊實現(xiàn),軟件對汽車的功能和性能起著決定性作用。
面對未來全新的架構(gòu),CANoe可以繼續(xù)極大程度簡化測試與開發(fā)流程,幫助用戶高效開發(fā)。
CANoe是德國Vector公司出的一款總線開發(fā)環(huán)境,是網(wǎng)絡(luò)和ECU開發(fā)、測試和分析的專業(yè)工具,支持從需求分析到系統(tǒng)實現(xiàn)的整個系統(tǒng)開發(fā)過程;其豐富的功能和配置選項被OEM和供應(yīng)商的網(wǎng)絡(luò)設(shè)計工程師、開發(fā)工程師和測試工程師所廣泛使用。
北匯信息作為Vector中國的合作伙伴,不僅提供相應(yīng)的工具和技術(shù)支持服務(wù)及培訓(xùn),還針對不同的應(yīng)用提供相應(yīng)的解決方案,助力中國客戶的研發(fā)效率提升。
注:部分圖片來源于Vector。
-
CANoe
+關(guān)注
關(guān)注
4文章
75瀏覽量
9209
發(fā)布評論請先 登錄
CANoe中ADAS功能集介紹

CANoe產(chǎn)品體系19版本新特性及新增Option(上)

OptiSystem應(yīng)用:寬帶SOA特性
CANoe產(chǎn)品體系19版本新功能(下)

OptiSystem應(yīng)用:SOA波長變換器(XGM)
OptiSystem應(yīng)用:寬帶SOA特性
OptiSystem應(yīng)用:SOA波長變換器(XGM)
CANoe仿真HTTP節(jié)點的實戰(zhàn)秘籍大公開


OptiSystem應(yīng)用:寬帶SOA特性
OptiSystem應(yīng)用:SOA波長變換器(XGM)
分布式、域控及SOA架構(gòu)車身功能測試方案

智能座艙HIL仿真測試解決方案

SOA整車電子電氣仿真測試解決方案

SOA架構(gòu)開發(fā)小助手PAVELINK.SOA-Converter V1.4.2新版本發(fā)布

評論