林蓓

近幾年,CAN的所有功能都建立在CAN物理層可靠的基礎之上,因此通訊物理層的失敗及故障,直接導致CAN通訊功能以及診斷、bootloader等內容失效。本文主要介紹了采用CAN總線測試功能的深入探究,以提高CAN物理層的容錯性及一致性,旨在為CAN總線打造一個堅實可靠的“地基”。
CAN測試工具的選擇
來自Vector Informatik公司的CANoe(圖1)是為CAN網絡的開發、測試和問題分析提供系統化專業工具鏈,支持分布式系統開發(從網絡設計到系統集成),其中通信網絡包括CAN、LIN、MOST等多種網絡。CANoe的使用,可以更高效地解決V模型開發過程中的反復驗證導致的成本和效率問題。
CANoe提供系統變量以對網絡節點的功能總線行為進行建模。這些系統變量由系統環境的事件和狀態(外部壓力、溫度、開關位置等)描述。可以在用戶定義的控制面板上觀察并有意地更改這些狀態(即系統變量的值)。要在CAPL中使用系統變量,請使用SysVar(系統變量)上的事件過程類型(“對系統變量進行更改進行反應”)。CAPL函數SysGetVariablerInt和SysSetVariableInt用于讀取和寫入系統變量。這些語言工具和對數據庫中定義的各種變量的符號訪問使創建簡單的原型網絡節點模型成為可能。
CAN測試環境搭建
CAN的測試環境搭建主要分三個階段。
階段一:網絡基礎搭建。首先使用兩個網絡節點模型和關聯的外圍設備(即控制面板)創建完整的CANoe配置。這涉及分布式功能的實現,即用戶使用鼠標左鍵激活開關后,第一個節點將此操作通知第二個節點。然后,第二節點激活其外圍的指示燈。通過以下三個步驟在CANoe中高效地創建用于分布式系統的模型:使用消息,信號和環境變量創建數據庫;創建網絡節點外圍設備,即控制面板;在CAPL中創建網絡節點模型。
階段二:創建可視化界面。第一步創建一個描述系統重要方面的數據庫,通過通信介質(即CAN總線)在兩個網絡節點之間交換信息。數據庫消息和信號對象可用于描述通過CAN總線進行的信息交換。簡單功能可以通過一個1位信號來處理,該信號描述了第一個節點處的開關狀態。此信號打包在CAN消息中,并且僅在開關狀態更改時才自動發送。在第二步中,描述節點及其外圍設備之間的I/O接口。每個外圍元件(開關、指示燈、滑塊等)都“連接”到系統變量,即連接到網絡節點的CAPL程序。這兩個外圍元素:第一個節點處的開關和第二個節點處的指示燈。因此,必須在數據庫中創建兩個系統變量,例如svLight和svSwitch。CANoe提供了一個單獨的應用程序Panel Designer,用于創建節點的外圍設備。在當前配置中,必須為兩個節點中的每個節點創建一個單獨的面板。
階段三:創建全網絡仿真。在“仿真設置”中創建網絡節點模型。每當激活開關時,第一個節點的模型必須發送一條消息,因此可能無法將其插入“測量設置”中。在“模擬設置”中使用兩個網絡節點:第一個節點提供開關位置,第二個節點通過激活或禁用小燈。在“仿真設置”中,插入新的網絡節點模型,每個節點以打開特定CAPL程序的CAPL瀏覽器。當開關位置改變時,程序將獲取新的開關值,并立即將其輸出到總線上。
CAN仿真測試驗證
現在開始在CANoe中測量。每當激活面板1上的開關時,指示燈會點亮。每當關閉開關時,指示燈會熄滅。“跟蹤”窗口顯示總線通訊(當開關位置更改時,自發傳輸消息Msg1)以及系統變量svSwitch和svLight的值。
總之,當今汽車CAN總線在國內外應用的越來越廣泛,OEM和Tier 1應對增長的產品CAN測試需求的唯一途徑是利用高效的創建腳本和自動化的測試導入。
(作者單位:溫州長江汽車電子有限公司)