夏永強,劉 欽,趙能卿
(江鈴汽車股份有限公司,江西 南昌 330001)
隨著中國國內新能源汽車的快速發(fā)展,汽車科技感功能也越來越多,對汽車總線的要求也越來越高,功能的增加也使得模塊之間的總線通信日益增加,同時數(shù)據(jù)傳輸總線從傳統(tǒng)的CAN已經(jīng)升級到帶寬更高的CAN FD總線。另外,汽車總線負載增大也給汽車總線數(shù)據(jù)傳輸帶來巨大挑戰(zhàn)??偩€負載高將直接影響數(shù)據(jù)總線穩(wěn)定傳輸,嚴重時將直接導致報文丟幀、延遲等情況發(fā)生。為有效應對總線負載高所引起的報文丟幀、延遲故障,因此在汽車研發(fā)階段進行總線通信的穩(wěn)定性測試,尤其對CAN FD總線的報文周期一致性測試,對保證總線網(wǎng)絡穩(wěn)定能起到非常關鍵的作用。總線的報文周期一致性測試,一方面能驗證各ECU發(fā)送數(shù)據(jù)是否符合設計要求。另一方面是檢驗總線穩(wěn)定性的重要手段,將極大地方便總線穩(wěn)定性測試驗證。
CAN FD總線報文周期一致性測試,需要根據(jù)CAN通信設備測試進行采集并測試。首先需要解析DBC文件,并收集到周期發(fā)送的報文,僅周期發(fā)送報文才需要進行測試;其次,需要在采集數(shù)據(jù)的時候監(jiān)控總線報文,逐個判斷每個報文是否滿足設計周期要求,將報文ID判斷異常的數(shù)據(jù)進行篩選;最后將測試結果生成報告。測試原理流程如圖1所示。
圖1 測試原理流程圖
控制器在總線上發(fā)送周期的報文可能會存在偏差,根據(jù)協(xié)議要求,在一定偏差范圍內都能符合設計要求,網(wǎng)段中所有周期報文應正常發(fā)送,即當周期時間T≤20ms時,周期偏差不可大于±20%。針對周期值越大的報文,對總線信號數(shù)據(jù)傳輸要求也越高,當發(fā)送的應用報文周期時間T>20ms時,周期偏差不可大于±10%,具體判斷方法的邏輯闡述如下。
1)使用CANOE采集整車總線數(shù)據(jù)。建立工程,開發(fā)監(jiān)控各網(wǎng)段總線報文。根據(jù)DBC文件收集各模塊的總線數(shù)據(jù)ID和對應周期數(shù)值。
2)從報文ID最小的開始進行監(jiān)控,監(jiān)控設備抓取這個ID的數(shù)據(jù),采集DBC文件中的周期值的大小,周期值小于20ms,按照10%偏差進行判斷。周期值大于20ms,按照20%偏差范圍進行判斷。
3)抓取這個數(shù)據(jù)相鄰兩次出現(xiàn)時間的差值,為了確保采集數(shù)據(jù)結果準確性,需要采集一定的樣本量,一般采集50次,當所有樣本量監(jiān)控周期在偏差范圍內,則判斷這個報文發(fā)送數(shù)據(jù)周期符合設計需求,逐個進行監(jiān)控。
4)按照上述的方法,逐個監(jiān)控所有的報文ID,確認是否符合規(guī)定范圍內要求。當監(jiān)控過程存在錯誤標記位,則發(fā)送報文數(shù)據(jù)異常,當不存在錯誤標記位,則發(fā)送報文數(shù)據(jù)周期發(fā)送正常,最后生成測試報告,紅色項表示測試周期不符合設計要求。具體測試方法流程如圖2所示。
圖2 測試具體步驟
CAN FD總線報文周期一致性測試方法,可自動實現(xiàn)監(jiān)控測試并快速生成測試報告,主要根據(jù)CAPL語言設計建立測試應用工程。
針對這個測試方法,已經(jīng)在項目上應用實施,連接好CAN設備后,進行實時監(jiān)控測試。該方法可快速、高效驗證總線數(shù)據(jù)發(fā)送周期是否符合預期標準。每次測試完成后,會將測試結果報告打印出來,其中包括測試報文ID、測試報文周期、測試報文的設計周期、測試報文的實際周期和測試報文的測試狀態(tài)。建立測試工程,將設備連接到汽車總線上,并運行測試工程,測試報告結果如圖3所示。
圖3 測試報告結果
從圖3中,可以看出:測試報文0x281的報文周期10ms,測試50次的周期都打印出來,測試結果的周期都符合偏差范圍內,符合規(guī)范的設計要求。發(fā)送報文周期準確無誤,不存在丟幀的情況,模塊數(shù)據(jù)通信質量穩(wěn)定。根據(jù)這個測試方法,可以識別出總線負載較高情況下的網(wǎng)段信號通信質量優(yōu)劣,因此,可以作為一種評價通信是否穩(wěn)定的測試方法。
CAN FD總線報文周期一致性測試不僅有利于識別總線負載大導致的丟幀風險,同時有利于驗證總線數(shù)據(jù)傳輸是否符合設計要求,保證控制器節(jié)點的通信數(shù)據(jù)傳輸性,以使CAN FD網(wǎng)絡能夠保持正常有效的工作,為功能的穩(wěn)健開發(fā)提供可靠保障,同時給予用戶更多的便捷體驗。