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