本發明的實施方式總體上涉及車輛制造,更具體地,涉及一種車輛控制器測試方法、裝置和存儲介質。
背景技術:
1、現有的各汽車控制模塊之間大部分通過總線進行通訊,為了保證通訊的穩定與通訊質量,需要對總線通信進行測試,排查零件問題。一般通過軟件端開發測試用例來進行總線測試,進而排查零件問題,保證總線的通訊功能正常運轉。
2、vector公司開發的vag?testpackage軟件包和硬件,能夠初步實現對控制器局域網絡(controller?area?network,can)總線的測試;輔助排查零件故障問題。但其本身還存在諸多缺陷;例如,測試過程中消耗的時間較長且容易報錯,且難以滿足所需的測試需求。
3、總線測試所需的測試參數需要在測試前填寫到測試參數文件,也稱為tbd(testbase?document)文件中,由零件設計師或者廠家負責完成參數的填寫;如果完全依照當前tbd的結果進行測試,會出現部分報文漏測的風險;如果控制器實際監控某報文,而tbd填寫成不監控,即控制器實際監控的報文與tbd不完全一致,那么此部分測試就會失效。
技術實現思路
1、為了解決現有技術中的上述問題,在第一方面,本發明的實施方式提供了一種車輛控制器測試方法,所述方法包括:步驟s110,獲取測試參數文件,所述測試參數文件包括針對待測控制器的參考喚醒響應報文、參考報文丟失故障碼信息和參考報文錯誤故障碼信息;步驟s120,執行喚醒響應一致性測試,步驟s120包括子步驟s121-s123:子步驟s121,向所述待測控制器仿真發送喚醒信號;子步驟s122,監聽所述待測控制器響應于所述喚醒信號而發送的測試喚醒響應報文;子步驟s123,將所述測試喚醒響應報文與所述測試參數文件中的參考喚醒響應報文進行對比,生成喚醒響應一致性測試結果;步驟s130,執行報文丟失故障碼一致性測試,步驟s130包括子步驟s131-s133:子步驟s131,向所述待測控制器仿真發送車輛同一條總線中除所述待測控制器之外的其他控制器循環發送的循環應用報文;子步驟s132,依次取消所述循環應用報文中的每一條報文,并依次檢查所述待測控制器針對每次取消的報文而在故障碼列表中生成的測試報文丟失故障碼;子步驟s133,將所述測試報文丟失故障碼與所述測試參數文件中針對該報文的參考報文丟失故障碼信息進行對比,生成報文丟失故障碼一致性測試結果;以及步驟s140,執行報文錯誤故障碼一致性測試,步驟s140包括子步驟s141-s143:子步驟s141,對所述待測控制器仿真發送所述待測控制器擬接收的每一條報文;子步驟s142,依次在所述待測控制器擬接收的每一條帶有錯誤值設置信號的報文中添加錯誤信息,并依次檢查所述待測控制器針對每次添加的錯誤信息而在故障碼列表中生成的測試報文錯誤故障碼;子步驟s143,將所述測試報文錯誤故障碼與所述測試參數文件中針對該錯誤信息的參考報文錯誤故障碼信息進行對比,生成報文錯誤故障碼一致性測試結果。
2、在一些實施方式中,在將所述測試喚醒響應報文與所述測試參數文件中的參考喚醒響應報文進行對比之后,所述方法還包括:在所述測試喚醒響應報文與所述參考喚醒響應報文相同的情況下,所述喚醒響應一致性測試結果為喚醒響應一致性測試通過;在所述測試喚醒響應報文多于所述參考喚醒響應報文的情況下,根據所述測試喚醒響應報文與所述參考喚醒響應報文的并集對所述測試參數文件進行更新;在所述測試喚醒響應報文少于所述參考喚醒響應報文的情況下,根據所述測試喚醒響應報文比所述參考喚醒響應報文缺少的部分對所述待測控制器進行喚醒響應錯誤標記。
3、在一些實施方式中,在所述測試喚醒響應報文少于所述參考喚醒響應報文的情況下,所述方法還包括:檢查所述待測控制器的功能啟用編碼是否正確;在所述待測控制器的功能啟用編碼正確的情況下,維持對所述待測控制器的喚醒響應錯誤標記;在所述待測控制器的功能啟用編碼不正確的情況下,將所述功能啟用編碼修改為正確編碼,并重新執行喚醒響應一致性測試。
4、在一些實施方式中,步驟s130還包括:在取消所述循環應用報文中的前一報文并檢查測試報文丟失故障碼之后并且在取消所述循環應用報文中的后一報文之前,恢復所有循環應用報文的發送,并清空所述待測控制器的故障碼列表。
5、在一些實施方式中,步驟s140還包括:在添加前一錯誤信息并檢查測試報文錯誤故障碼之后并且在添加后一錯誤信息之前,向所述待測控制器發送正確的報文,并清空所述待測控制器的故障碼列表。
6、在一些實施方式中,所述測試參數文件還包括參考喚醒源信息,并且所述方法還包括執行喚醒源一致性測試,包括:對所述待測控制器觸發喚醒源;監聽所述待測控制器是否被所述喚醒源所喚醒;根據所述待測控制器是否被所述喚醒源所喚醒和所述參考喚醒源信息,生成喚醒源一致性測試結果。
7、在一些實施方式中,根據所述待測控制器是否被所述喚醒源所喚醒和所述參考喚醒源信息,生成喚醒源一致性測試結果包括:如果監聽到所述待測控制器被所述喚醒源所喚醒,并且所述參考喚醒源信息中包括該喚醒源,則喚醒源一致性測試結果為喚醒源一致性測試通過;如果監聽到所述待測控制器被所述喚醒源所喚醒,并且所述參考喚醒源信息中不包括該喚醒源,則將所述喚醒源添加到所述參考喚醒源信息中;如果監聽到所述待測控制器沒有被所述喚醒源所喚醒,并且所述參考喚醒源信息中包括該喚醒源,則對所述待測控制器進行喚醒源錯誤標記。
8、在一些實施方式中,子步驟s121中向所述待測控制器仿真發送的喚醒信號包括kl15電信號。
9、在一些實施方式中,所述方法還包括執行物理層測試,包括:向所述待測控制器仿真發送特定報文;利用示波器監測所述待測控制器所連接的總線上的所述待測控制器發送的報文的波特率和/或信號電平;在所述波特率和/或信號電平在預先設定的范圍內的情況下,顯示物理層測試成功;在所述波特率和/或信號電平不在預先設定的范圍內的情況下,顯示物理層測試失敗。
10、在第二方面,本發明的實施方式提出了一種車輛控制器測試裝置,所述裝置包括:測試參數文件獲取模塊,配置用于獲取測試參數文件,所述測試參數文件包括針對待測控制器的參考喚醒響應報文、參考報文丟失故障碼信息和參考報文錯誤故障碼信息;喚醒響應一致性測試模塊,所述喚醒響應一致性測試模塊包括以下子模塊:喚醒信號發送子模塊,配置用于向所述待測控制器仿真發送喚醒信號;喚醒響應報文監聽子模塊,配置用于監聽所述待測控制器響應于所述喚醒信號而發送的測試喚醒響應報文;喚醒響應報文對比子模塊,配置用于將所述測試喚醒響應報文與所述測試參數文件中的參考喚醒響應報文進行對比,生成喚醒響應一致性測試結果;報文丟失故障碼一致性測試模塊,所述報文丟失故障碼一致性測試模塊包括以下子模塊:循環應用報文發送子模塊,配置用于向所述待測控制器仿真發送車輛同一條總線中除所述待測控制器之外的其他控制器循環發送的循環應用報文;報文丟失故障碼檢查子模塊,配置用于依次取消所述循環應用報文中的每一條報文,并依次檢查所述待測控制器針對每次取消的報文而在故障碼列表中生成的測試報文丟失故障碼;報文丟失故障碼對比子模塊,配置用于將所述測試報文丟失故障碼與所述測試參數文件中針對該報文的參考報文丟失故障碼信息進行對比,生成報文丟失故障碼一致性測試結果;以及報文錯誤故障碼一致性測試模塊,所述報文錯誤故障碼一致性測試模塊包括以下子模塊:擬接收報文發送子模塊,配置用于對所述待測控制器仿真發送所述待測控制器擬接收的每一條報文;報文錯誤故障碼檢查子模塊,配置用于依次在所述待測控制器擬接收的每一條帶有錯誤值設置信號的報文中添加錯誤信息,并依次檢查所述待測控制器針對每次添加的錯誤信息而在故障碼列表中生成的測試報文錯誤故障碼;報文錯誤故障碼對比子模塊,配置用于將所述測試報文錯誤故障碼與所述測試參數文件中針對該錯誤信息的參考報文錯誤故障碼信息進行對比,生成報文錯誤故障碼一致性測試結果。
11、在第三方面,本發明的實施方式提出了一種存儲介質,存儲有計算機可讀指令,當所述指令由處理器運行時,執行根據上述任何實施方式所述的方法。
12、本發明的實施方式提出的車輛控制器測試方案適于在總線(例如can總線)測試之前對單個控制器分別執行一致性測試用例,用于分別驗證單個控制器與測試參數文件(tbd文件)的一致性。測試通過之后證明測試參數文件中填寫的控制器參數與當前待測控制器是匹配的,以確保測試的全面性,即,可以避免后續的總線測試中因tbd文件不完整、不全面或者與待測控制器不匹配而引發的測試錯誤。在正式的單件網絡測試前排查故障問題,能夠在正式測試過程中減少報錯,提高運行速度,從而可以大幅提高總線測試的效率。