CAN總線系統(tǒng)測試技術
引 言
本文引用地址:http://www.ex-cimer.com/article/193662.htm隨著汽車電子技術的發(fā)展,汽車上所用的電控單元不斷增多,電控單元之間信息交換的需求促進了車用總線技術的發(fā)展。CAN總線即控制器局域網(wǎng)總線,由Bosch公司于1981年制定,主要目的為用作汽車的高速動力總線、中速車身總線等。由于CAN總線具有可靠性高、實時性好、成本合理等優(yōu)點,逐漸被廣泛應用于其他領域中,例如船舶、航天、工業(yè)測控、工業(yè)自動化、電力系統(tǒng)、樓宇監(jiān)控等,成為了廣泛使用的現(xiàn)場總線之一?;?a class="contentlabel" href="http://www.ex-cimer.com/news/listbylabel/label/CAN">CAN總線協(xié)議,還發(fā)展出CANopen、J1939、DeviceNet等多種上層總線協(xié)議。
CAN是一種開放式多主站線性結(jié)構(gòu)的總線,使用雙絞線作為連接介質(zhì)連接所有節(jié)點,最高傳輸速率為1Mbit/s。 CAN總線使用載波偵聽多路訪問/沖突檢測(CSMA/CD)技術這種非破壞性的總線仲裁方式,避免多個節(jié)點同時開始發(fā)送消息而造成總線沖突,保證優(yōu)先級高的報文能夠優(yōu)先發(fā)送而不需要額外的時間開銷。CAN協(xié)議不對節(jié)點進行地址規(guī)定,而是使用報文的標識符來指定報文的優(yōu)先級以及報文的內(nèi)容。同時,CAN總線協(xié)議提供了完善的錯誤檢測與錯誤處理機制,包括了CRC檢測、錯誤報文自動重發(fā)、錯誤狀態(tài)判斷、臨時錯誤自動恢復、永久錯誤自動錯誤節(jié)點等措施,從而很好的保證了系統(tǒng)數(shù)據(jù)一致性。
圖1 系統(tǒng)開發(fā)流程
1 CAN總線開發(fā)流程
隨著CAN總線技術應用在國內(nèi)各個行業(yè)中廣泛使用,CAN總線開發(fā)流程及開發(fā)方法也日益成為關注的重點。目前,基于開發(fā)-驗證思想的V型開發(fā)流程被廣泛用于CAN總線的開發(fā)過程中,如圖1所示。
OEM廠商首先定義CAN總線系統(tǒng)需求,并進行系統(tǒng)構(gòu)架設計,然后由供應商根據(jù)OEM廠商提出的需求,分析節(jié)點 ECU的需求并進行節(jié)點設計,再進行軟硬件實現(xiàn)以及節(jié)點ECU集成,最后對ECU進行測試驗證。供應商將所設計的節(jié)點ECU提供給OEM廠商,由OEM廠商進行CAN總線系統(tǒng)的集成,并對系統(tǒng)進行確認,才能形成最終的產(chǎn)品。
在V開發(fā)流程中,測試始終貫徹著整個開發(fā)流程,以在開發(fā)過程中能盡早的發(fā)現(xiàn)設計問題。供應商在節(jié)點ECU開發(fā)的最后階段,需要對所開發(fā)的ECU進行驗證,檢查所開發(fā)的產(chǎn)品是否符合所需的設計規(guī)范,即“是否正確的做了產(chǎn)品”。而OEM廠商在獲得供應商提供的各個節(jié)點 ECU后,進行系統(tǒng)集成,需要對CAN總線系統(tǒng)進行確認,檢查是否符合原始的需求,即“是否設計了正確的產(chǎn)品”。
因此,無論對于供應商開發(fā)單節(jié)點ECU還是OEM廠商對整個系統(tǒng)進行集成,都需要對節(jié)點以及總線系統(tǒng)進行CAN總線測試,以完成驗證與確認的工作。
2 CAN總線測試
CAN總線測試內(nèi)容可以分為單節(jié)點測試和總線系統(tǒng)集成測試兩部分。在每個節(jié)點連接到CAN總線網(wǎng)絡之前都需要進行單節(jié)點測試,用以確定節(jié)點工作正確并且不會干擾總線的正常通訊??偩€系統(tǒng)集成測試則是將各個節(jié)點都連接形成完整的CAN總線系統(tǒng),對系統(tǒng)進行測試以驗證系統(tǒng)運行的完整性及正確性、系統(tǒng)的通訊魯棒性、電器魯棒性以及系統(tǒng)的容錯自恢復功能等。
進行CAN總線測試過程,首先需要制定測試規(guī)范,然后根據(jù)該測試規(guī)范編寫測試案例,構(gòu)建測試環(huán)境,并進行測試實現(xiàn),最終將測試所得的數(shù)據(jù)進行分析,形成測試報告。
2.1 CAN總線測試規(guī)范
由于CAN總線基本協(xié)議的靈活性,目前并沒有一個統(tǒng)一的完整覆蓋CAN總線各個通訊層次的測試規(guī)范,而作為CAN總線技術使用最廣泛的汽車行業(yè),各個汽車廠商也只是自行定義其轎車CAN總線協(xié)議,并根據(jù)該協(xié)議制定各自的測試規(guī)范。
因此制定CAN總線的測試規(guī)范,必須從相關的設計需求和規(guī)范文檔中提取測試需求,這些文檔可以包括CAN協(xié)議、總線系統(tǒng)設計時所依據(jù)的標準或協(xié)議(例如ISO11898或J1939)、系統(tǒng)設計的需求、系統(tǒng)的診斷協(xié)議、以及其他行業(yè)性通訊規(guī)范。根據(jù)所提取的測試需要,將各個需求點對應為測試案例組。
將每組測試案例組在各測試節(jié)點上的實施稱為測試案例。每個測試案例根據(jù)測試實現(xiàn)的過程,細分為一系列的測試步驟。對于每個測試案例,在測試結(jié)束時,都會存在一個測試結(jié)果,用以確定測試案例所對應的節(jié)點是否通過該測試需求點的測試。每個測試案例中,除了包含測試步驟的內(nèi)容外,還包括了測試條件和測試環(huán)境兩部分內(nèi)容。測試條件是測試案例實施之前,被測單元所需要具備的條件,例如系統(tǒng)已經(jīng)處于正常通訊等。而測試環(huán)境則是測試過程中,需要提供給被測單元的外部環(huán)境,例如供電電壓、信號線的連接情況等。
2.2 CAN總線測試內(nèi)容
CAN總線測試內(nèi)容可以按照通訊層次劃分為物理層測試、數(shù)據(jù)鏈路層測試、應用層測試等內(nèi)容。
物理層測試主要目的是驗證節(jié)點及系統(tǒng)在電路設計、物理電平特性等方面的性能,這是保證節(jié)點能夠正確連接入總線的基礎。測試主要包括了節(jié)點的電阻電容特性、節(jié)點差分電阻、總線終端電阻、CAN線上的物理電平特性等方面。
數(shù)據(jù)鏈路層測試則包括了位定時測試、采樣點測試、SJW測試等內(nèi)容,該測試內(nèi)容主要用以保證各個節(jié)點的通訊參數(shù)能夠保持一致性,所組成的網(wǎng)絡能夠正常有效的工作。
應用層測試則包括了上層應用層協(xié)議的測試、網(wǎng)絡管理功能的測試以及故障診斷測試等方面的內(nèi)容。其包括的內(nèi)容可以是:數(shù)據(jù)庫使用正確性測試、通訊周期準確性測試、節(jié)點休眠喚醒功能測試、網(wǎng)絡管理功能測試、網(wǎng)關測試、錯誤幀頻率測試、電壓影響測試、總線物理故障測試、節(jié)點故障自恢復能力測試、通訊失敗的故障診斷功能測試等內(nèi)容。由于CAN總線使用背景的不同,其應用層的內(nèi)容也有很大差別,因此應用層測試的內(nèi)容也存在較大差異,需要根據(jù)項目的設計需求以及設計文檔仔細制定應用層測試的內(nèi)容。值得注意的是,對于CAN總線網(wǎng)絡測試,其應用層測試一般不涉及功能測試的范圍,功能測試一般屬于ECU測試的范疇。
2.3 CAN總線測試方法
圖2所示為基于Vector公司提供的CAN總線測試工具所組建的CAN總線測試系統(tǒng)。
評論