眾所周知, CANoe對分析和仿真功能有著非常出色的支持,但一些人可能對其測驗功能了解較少,其實CANoe對于測驗功能的支持也是非常強大的,
CANoe的測驗功能模塊包括Test Modules和Test Units兩大組件,并且集成了TFS(Test Feature Set)測驗功能集和TSL(Test Service Library)測驗服務庫來幫助用戶實作高效的自動化測驗,對于Test Units組件需要與VECTOR旗下的另一款軟體vTESTstudio結合使用,那么CANoe是否可以不需要其他軟體的支持來實作自動化測驗功能呢?答案顯然是肯定的,接下來就讓我們一起來看一下CANoe自帶的測驗功能是如何實作的,
一、通過Test Modules創建自動化測驗用例的步驟
基于Test Modules的自動化測驗用例開發,主要是通過撰寫CAPL腳本來實作,CANoe中自帶的測驗功能函式庫可以幫助開發人員更高效地完成測驗用例的開發,實作自動化測驗腳本的開發,首先了解一下如何通過Test Modules進行自動化測驗腳本的開發,
1、

2、創建新的測驗環境

3、增加新的CAPL測驗模塊

4、設定自動化測驗腳本的保存路徑

二、TFS(Test Feature Set)
TFS是CANoe擴展出來的一系列測驗功能函式,包括測驗報告的輸出,按照功能來分,主要包括:
1、約束和條件設定函式:
主要用來檢測測驗環境的偏差或被測ECU在測驗程序中是否偏離某些引數的范圍,以確保測驗在正確的測驗環境中被執行,
e.g:
TestAddCondition:用于添加一個事件物件(Event Object)或事件文本(Event Text)作為測驗的條件,
2、信號測驗函式:
主要用于檢測或操作信號、系統變數的數值,
e.g:
checkSignalInRange:用于檢測信號、系統變數是否在指定的范圍內,
3、等待指示函式:
為用戶提供測驗動作設定、等待測驗等功能
e.g:
(1)TestCreateTesterAction:創建一個測驗動作;
(2)TestWaitForSignalInRange:用于等待待檢信號、系統變數是否滿足定義的數值范圍,
4、測驗控制函式:
用于控制ECU斷開或連接到總線上
e.g:
(1)TestSetEcuOffline:用于將指定的ECU從總線上斷開
(2)TestSetEcuOnline :用于將指定的ECU連接到總線上
5、故障注入函式:
允許用戶通過呼叫相關函式實作一些特殊的測驗條件
e.g:
TestDisableMsg:用于禁止發送某個指定的報文
6、測驗判別函式:
用于對測驗步驟、測驗用例、測驗模塊等作出判別和處理
e.g:
TestCaseFail:用于將當前測驗用例的判別設為fail
7、測驗架構函式:
可以在測驗模塊設定測驗分組、測驗用例及測驗步驟等,并定義了生成測驗報告的格式
e.g:
(1)TestCaseDescription:用于將測驗用例的描述寫入測驗報告
(2) TestCaseTitle :用于設定測驗用例的標題
8、測驗報告函式:
用于按用戶的要求產生測驗報告,增加報告的可讀性
e.g:
TestReportAddImage:用于在測驗報告中添加圖片
三、TSL(Test Service Library)
Test Service Library(測驗服務庫)是在測驗功能集(TFS)基本函式的基礎上,提供一些特殊函式,可以高效地解決某些特殊的測驗問題,主要包含:
1、檢測函式(Check Descriptions)
(1)信號驗證(Signal Evaluation):
包括信號的數值有效性、周期性和穩定性等檢測,
e.g:
ChkStart_MsgSignalValueInvalid/ ChkStart_MsgSignalValueRangeViolation:用于檢測信號/變數數值的有效性
(2)報文驗證(Message Evaluation):
包括報文丟失、周期、資料長度和錯誤幀等檢測,
e.g:
ChkStart_MsgAbsCycleTimeViolation:用于檢測周期性報文的周期是否在給定的范圍內
(3)時間驗證(Time Evaluation):包括連續幀及超時檢測,
e.g:
ChkStart_MsgDistViolation:用于檢測指定兩條報文之間的時間間隔
2、狀態報告函式(Status Report Functions):
在執行上面的檢測函式以后,CANoe需要使用狀態報告函式來查詢檢測結果、基本狀態資訊等,狀態報告函式又分為通用的狀態報告函式和特殊型別的狀態報告函式,
e.g:
ChkQuery_NumEvents:用于回傳初始化后指定檢測函式產生的事件次數
3、激勵函式(Stimulus Functions):
激勵函式作為TSL中的重要一部分,允許用戶使用不同的資料源作為信號或系統變數的激勵發生器,
4、檢測控制函式(Check Control CAPL Functions):
用于對于檢測事件的控制操作,如初始化、開始、停止、銷毀等,
e.g:
ChkControl_Start:用于開始或繼續檢測事件,
四、測驗模塊的架構
在了解了自動化測驗腳本的開發步驟后,我們來看一下基于CANoe的自動化測驗系統的整體架構,

1、 SUT:
System Under Test 被測系統,一般是待測ECU;
2、VT System:
VT system是由一系列硬體板卡組成的ECU功能測驗模塊,通過連接ECU的I/O線路對ECU進行測驗;
3、Remaining bus simulation:
殘余總線仿真,實際應用中SUT只是總線中的一個ECU節點,總線環境是復雜的,CANoe可以仿真除了SUT之外的總線環境,即殘余總線仿真,
五、CAPL腳本的封裝加密(敲黑板!)
對于CAPL腳本的開發和維護需要投入大量的人力與物力,有時可能會帶有一些公司的加密資訊,但是根據專案需要又不得不釋放給外部使用,為了保護開發人員的勞動成果,有必要做一些保護措施,CAPL腳本的加密與保護主要有三種方式:編譯后洗掉源代碼、加密后洗掉源代碼和加密保護與硬體系結,
1、編譯后洗掉源代碼
(1)編輯好CAPL腳本之后,洗掉相關源代碼(.can檔案);
(2)在此節點Configuration→Node specification中將.can檔案改成.cbf檔案,
這種保護方式設定好之后,用戶可以使用腳本,但是無法查看(編輯)和編譯,

2、加密后洗掉源代碼
(1)將CAPL源代碼進行加密生成.canencr檔案

(2)將CAPL源代碼加密后,洗掉源代碼(.can檔案)
加密后的源代碼不能被查看或編輯,但是加密后的源代碼可以在其他版本CANoe中對其進行編譯,
3、加密保護與硬體系結
在前兩種保護方式的基礎上,通過CAPL DLL技術添加一些加密演算法與計算機本機的硬體進行系結(如MAC地址等),
除了可以將CAPL腳本進行加密,還可以將基于TFS(TSL)撰寫的CAPL腳本在vTESTstudio中進行呼叫,例如,在使用vTESTstudio撰寫自動化測驗腳本時,需要有車輛加速的程序,則可以通過撰寫CAPL腳本實作此功能,然后在vTESTstudio中直接呼叫,

六、Test Unit和Test Module
1、測驗層級的對比

Test Module主要測驗層級由Test Group、Test Case和Test Step組成,而Test Unit主要測驗層級有:Test Group、Test Sequence、Test Fixture、Test Case和Test Step,
2、Test Unit和Test Module的區別
(1)Test Unit在Test Configuration視窗定義,用戶需要根據Vector提供的軟體vTESTstudio創建測驗用例,然后將測驗用例匯入CANoe Test Unit運行,
(2)Test Module在 Test Setup for Test Modules 中定義,Test Module支持三種不同語言型別的測驗模塊:CAPL、XML和.NET,用戶可以根據自己熟悉的語言和測驗需求來撰寫測驗模塊,
七、總結
了解了CANoe的測驗功能后,是不是對CANoe有了重新的認識,其實CANoe功能的強大不止于此,CANoe是德國VECTOR公司推出的一款總線開發環境,是網路和ECU開發、測驗和分析的專業工具,支持從需求分析到系統實作的整個系統開發程序,其豐富的功能和配置選項被OEM和供應商的網路設計工程師、開發工程師和測驗工程師所廣泛應用,
北匯資訊作為VECTOR中國合作伙伴,不僅提供相應的工具、技術支持服務以及培訓,還針對不同的應用場景(智能座艙、新能源三電系統、底盤系統、ADAS及V2X等)提供專業的解決方案,歡迎聯系北匯資訊,為您答疑解惑,


轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/325549.html
標籤:其他
