信號仿真設備那麽多,我該怎麽集成?

胡子哥說車 2024-01-12 16:10:24

隨著時間的推移,汽車制造商和技術公司致力于推動汽車技術的邊界,以提高車輛的性能、安全性、效率和智能化水平。這種技術演進導致了對更多和更複雜測試設備的需求,以確保車輛在各種條件下能夠安全、可靠地運行。

而隨著國內新能源汽車的崛起和大量廠商測試需求的井噴,廠商需要采購大量的測試設備來完成這部分的測試目標,同時需要搭建一整套自動化測試的環境來達到更高的測試效率和一些壓力測試、性能測試的目標。由于現在主機廠大多數的EE架構都是采用了域控的方案,因此除了過去通常的CAN、CANFD總線通信以外,目前大多數的廠家還需要測試車載千兆以太網1000Base-T1的數據報文的一致性。

在自動化測試的環境中,通常都會采用工控機加上板卡的組合,對台架進行數據的模擬和回環數據的斷言,這套框架其中采用的硬件設備大多爲Vector的VN系列設備。VN系列的設備,除了CAN,CANFD總線以外,還有LIN,車載以太網的豐富接口可以完成板卡的對接。而框架的軟件部分,由于CANoe軟件的證書費用昂貴,廠家通常自己使用Python作爲開發語言來完成自動化。

目錄/Catalog

●CANoe驅動硬件的原理是什麽?

●什麽是XL 設備驅動庫?

●XL 設備驅動庫如何集成使用?

●如何在Linux 系統下集成驅動庫

CANoe驅動硬件的原理是什麽?

圖1. CANoe 軟件調用框架圖

CANoe具備了三種調用硬件完成仿真、處理信號的能力,其中包含了應用層的調用,交互層的調用,以及驅動層的調用,這三種調用各有特點,可以滿足不同場景的使用需求:

Application應用層調用,外部調用CANoe軟件,實時性低,操作性複雜,類似大型的按鍵精靈調用。

IL交互層(傳輸層)調用,和信號、數據結合綁定,需要用戶自己開發dll導入CANoe,使用要求較高。

CAN Driver 驅動層調用,實時性可以保證,但是不具備信號級的仿真、解析能力,所有邏輯需要自己實現。

本次,基于自動化測試的實時性考慮,我們主要介紹XL 設備驅動庫的調用。

什麽是XL 設備驅動庫?

XL 驅動庫是Vector公司提供的可以繼承VN系列硬件設備的軟件驅動庫。該驅動提供了一份打包的Windows 下的vxlapi.dll 文件,結合給出的頭文件中的函數功能定義,就可以允許用戶通過大量提供的函數和接口,來集成驅動的方式,直接在自己的軟件框架或第三方框架內調用VN系列的硬件。

如圖2所示,Vector的各種總線設備,都可以通過XL-Driver-Library的驅動庫,集成到各種應用層軟件中去。這一個驅動層即爲虛擬總線接口,可以滿足各種數據字節的發送和接收方法,給到上層應用層去做解包、數據處理,虛擬信號組包後發送等等事件。

圖2. XL 設備驅動庫的調用原理

XL 設備驅動庫如何集成使用?

在XL 設備驅動庫中,有非常多的通用配置方法以及總線配置方法,用戶通常需要按照Vector預設好的操作流程,來完成整個硬件設備鏈路的調用。如圖3的CAN總線仿真、數據接收流程圖爲例:

圖3. CANoe軟件調用XL-Driver-Library流程圖展示

在該展示圖中,可以發現,用戶需要進行較多的配置去提前完成設備的通道選擇,采樣率配置後,才能進行CAN數據的收發。這種配置無疑是有弊端的,因爲這些配置在自動化測試中,如果需要進行動態的選擇和更改,就需要將整個流程重新走一遍。而這種提前設置固定采樣率的方式會將所有的通道用同樣的采樣率去進行信號取樣,這種處理方式無疑會加重CPU的計算負擔。

同時,由于vxlapi.dll 是Vector編譯好提供給Windows平台使用的,自動化測試常用的Linux平台中完成集成無疑大大增加了複雜度,用戶只能使用虛擬機去完成設備的調用。知迪汽車爲了解決該問題,采用了全新的設備以及驅動去覆蓋並完成相同的功能。

如何在Linux 系統下集成驅動庫

圖4 展示了ZD-Box2i 作爲接口板卡的形態,其中不僅包含了8路CAN/CANFD 通道,也包含了4路LIN通道,同時還兼具4個千兆/百兆以太網接口,可以用一台設備就完成更多的總線接口類型要求。

圖4. ZD-Box2i 接口板卡設備

同時,考慮到測試人員調用的簡易型,和已有的測試框架的集成便利性,ZD提供了自研的驅動層方案,即使用ZD-driver 來完成硬件設備ZD-Box2i的集成。同時給出了兼容XL-driver-library的方式,可以另自動化測試框架,基于現有的腳本,以及ZD-Box2i,去完成所有總線的測試需求。

圖5. ZD-driver 驅動層適配和使用方式

以圖6爲例,圖6.1爲Vector軟件手冊中關于CAN總線循環100次發送id爲0x04 報文的示例。圖6.2 爲知迪的驅動 ZD-Driver關于CAN總線循環100次發送id爲0x04 報文的示例。由于ZD-Driver不僅可以運行在Linux平台,也可以運行在Windows平台,因此用戶不需要考慮操作系統的限制,同時知迪是基于自己的驅動,在上層基于XL-driver-library的頭文件做了一層使用上的封裝,可以讓用戶在不改變現有代碼邏輯的基礎上,直接集成驅動和硬件設備,因此可以讓用戶在現有的框架下,直接切換到Linux平台去使用。

而由于XL驅動庫本身的性能和設計缺陷,爲了更好的使用知迪的硬件設備做集成的前提下,也更推薦直接使用ZD-driver完成硬件設備的直接驅動調用。

圖6.1 XL-Driver-Library 發送100次CAN報文的方法調用

圖6.2 知迪調用ZD-Drvier驅動ZD-Box2i 發送100次CAN報文的方法調用

知迪作爲中德合作的國際化企業,憑借中德兩地的科研優勢與資源互補,已經成爲車輛總線信號領域的知名技術服務夥伴,多年來爲BBA等衆多國際知名汽車品牌、産業生態客戶提供了包括標准化産品、定制化研發、中德協同交付等服務。秉持“讓研發更可靠、更高效”的願景,知迪將持續聚焦汽車核心技術,助力汽車及出行産業的智聯化技術革新與可持續發展。

0 阅读:0

胡子哥說車

簡介:熱愛汽車 熱愛生活 想吐槽一些汽車相關的事情