關于汽車CAN網絡的討論
第二種方法是系統級設計法。這是一種理論設計方法,它提出了完全不同的需求,供應商只需要提供相應的參數,根據一定的理論模型對網絡通訊特性進行計算,如信號延遲、總線負載等。以此為基礎,考慮設計需求,通過一定的調度算法,對每條消息的ID進行分配。方法的核心就是優化這些特性參數,保證整車網絡通訊的實時性能。因此在這種設計方法中,設計是重點。
董因平博士還指出,測試并不等同于驗證。他說:驗證表示的是我們有一個標準,測試被測對象是否符合。但是目前汽車電子的測試不能一概的稱為驗證,因為它還要測試協議設計是否正確,協議設計中是否有瑕疵。驗證的輸入是被測對象的特性,參照的是標準,輸出的是兩者是否符合。
而現在的測試,輸入的既有被測對象的特性,又有所謂的標準,輸出的是協議是否需要修改、系統是否可行、設計是否符合需要。注意這里引出了一個難以讓人理解的地方,我們要測試ECU是否符合標準,但是我們卻又在根據測試結果在懷疑這個標準。因此除非有非常雄厚的技術和經驗積累,否則你始終在這兩者之間徘徊,浪費時間和金錢。中國目前就處于這種狀態,但是我們卻要依靠測試來推動技術的發展,難以想像。我們需要的是一條新的發展思路。
沒有設計就根本談不上測試,相反設計才決定了測試的體系。例如,整車網絡的電氣特性參數,比如ECU的終端電阻、電容,這些參數都是與特定的網絡環境有關系的。可能因為線束走線不同就有所不同。設計人員知道影響這些參數的原因和可能出現的問題,而這些都可以成為建立測試方法的輸入。
董因平博士補充道,測試是比較重要,但是一定要比較的話,則更傾向于選擇設計更重要。其實電子行業的發展可以成為參考,為什么EDA工具在電子設計中處于如此重要的地位?而且現在國際上的趨勢是基于系統級的設計、建模等等。重點是系統級!董因平博士還強調,如果一味只重視測試的話,那么就是在走國外發展的老路,是背離系統級的設計思路,根本就沒有考慮國際發展的趨勢。
應該從哪幾個方面來構造協議?
CAN協議的基本要素是ID、周期和信號與消息的映射關系。因此構造協議的主要任務是ID分配、定義消息周期、確定信號與消息的映射關系。這三個方面的設計都同等重要,設計要考慮的主要因素有數據傳輸的實時性要求(即所謂的時序)、數據的相對重要程度、與數據相關的應用控制算法對數據的時間要求。
國際上也存在一些現有的標準,如CANopen、SAE J1939.SAE J1939這是一個有汽車工程師協議牽頭制定的應用與卡車電控網絡的協議。不過它主要是應用與卡車的電控系統,不能直接照搬到轎車控制系統中。但是隨著汽車電子的發展,汽車電子設計分工也越來越細,這部分工作也有廠商提供工具實現協議的計算機輔助設計。比如Mentor Graphics公司的VNA就是一款自動化的協議設計軟件。
實現通信協議的程序代碼結構是什么樣的?
董因平博士說:首先CAN通信功能包括物理層、數據鏈路層和應用層。物理層、數據鏈路層已經由硬件實現,目前都已經標準化,有現成的部件(CAN控制器和收發器)選擇。因此在單片機上加上CAN控制器、收發器,軟件實現相應的驅動程序就基本實現了CAN的通訊功能。但是這對于汽車電子上的應用還是遠遠不夠的,因為數據鏈路層有很多功能沒有定義如具有邏輯關系的消息之間的功能實現、網絡管理等等。
因此通信協議的程序代碼的結構應該是底層驅動+應用代碼(通信功能的應用代碼)。如果考慮目前汽車電子嵌入式軟件的技術發展,未來的結構應該是底層驅動+應用代碼+抽象層。汽車電子軟件開放式體系標準AUTOSAR也基本是這樣的思路。目前也有很多軟件廠商提供現成的解決方案,ECU軟件開發只需要在該解決方案提供的基于數據讀寫的接口之上實現控制算法。這樣做的好處在于軟件設計人員可以把專長用于集中設計控制算法、保證其可靠性。這樣的產品如Mentor Graphics的嵌入式軟件(VTP + 網絡管理 + 診斷……)就是這樣的應用例子。
評論