林蓓

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