專利名稱:汽車電子診斷軟件的測試系統(tǒng)及方法
技術領域:
本發(fā)明涉及汽車電子嵌入式軟件測試領域,特別是涉及一種汽車電子診斷軟件 的測試系統(tǒng)及方法。
背景技術:
目前,汽車診斷檢測系統(tǒng)都應用于ECU故障診斷,而在開發(fā)診斷軟件的階段, 測試該診斷軟件是否符合診斷協(xié)議中服務要求,國內現(xiàn)有的公開技術方案有兩種,第一 種是需要實際的ECU運行診斷軟件,再對其進行測試,此方法優(yōu)點是可以在實際ECU的 硬件環(huán)境下進行測試,使得測試的精確程度很高,但ECU運行狀態(tài)調節(jié)相對困難,診斷 軟件的測試過程復雜,因此效率低下;第二種是純軟件模擬ECU節(jié)點,運行診斷軟件, 再對其進行測試,此方法優(yōu)點是模擬ECU節(jié)點方便快捷、容易調整運行狀態(tài),診斷軟件 的測試過程相對容易,但由于ECU節(jié)點非實際的,會導致對診斷軟件的測試精確程度不 夠高。鑒于現(xiàn)有的兩種方法的缺點,本發(fā)明提出一種符合ISO 14229協(xié)議的汽車電子診 斷軟件的測試方案,即為一種基于半實物ECU模型平臺的診斷軟件測試方案。
發(fā)明內容
本發(fā)明所要解決的技術問題在于之一是提供一種符合ISO 14229協(xié)議的汽車電子 診斷軟件的測試系統(tǒng),用于解決現(xiàn)有技術中汽車ECU診斷軟件測試的精確程度和效率不 協(xié)調問題。本發(fā)明所要解決的技術問題在于之二是提供一種符合ISO 14229協(xié)議的汽車電子 診斷軟件的測試方法。用于解決現(xiàn)有技術中汽車ECU診斷軟件測試的精確程度和效率不 協(xié)調問題。根據(jù)本發(fā)明的一種技術方案,一種汽車電子診斷軟件的測試系統(tǒng),其特征在 于,該系統(tǒng)包括診斷Tester、ECU模型平臺和通信接口;
所述診斷Tester包含顯示/分析模塊、發(fā)送/接收信息模塊、總線信息監(jiān)控模塊和 Tester通信模塊;
所述ECU模型平臺包含模擬ECU應用程序模塊、模擬ECU環(huán)境模塊、診斷模塊、 存儲模塊和平臺通信模塊;
所述通信接口用于連接診斷Tester和ECU模型平臺,并將不同類通訊總線轉換成一 致的通訊總線,傳輸通信信息;
所述發(fā)送/接收信息模塊通過Tester通信模塊發(fā)送診斷服務請求和接收診斷服務響 應,并將診斷服務請求數(shù)據(jù)和診斷服務響應數(shù)據(jù)傳給顯示/分析模塊進行處理;
所述總線信息監(jiān)控模塊通過Tester通信模塊監(jiān)控通信接口上的數(shù)據(jù),并將數(shù)據(jù)發(fā)給顯 示/分析模塊進行處理;
所述顯示/分析模塊對接收到的數(shù)據(jù)進行分析并顯示,以供測試、觀察、分析; 所述Tester通信模塊當Tester通信模塊接收到發(fā)送/接收信息模塊或總線信息監(jiān)控
5模塊發(fā)出的數(shù)據(jù)時,將數(shù)據(jù)轉換為標準通信數(shù)據(jù),再將標準通信數(shù)據(jù)發(fā)送至通信接口, 當Tester通信模塊接收到從通信接口傳來的數(shù)據(jù)時,將通信接口傳來的數(shù)據(jù)轉換為發(fā)送/ 接收信息模塊或總線信息監(jiān)控模塊可用的數(shù)據(jù),再將轉換后的數(shù)據(jù)發(fā)送至發(fā)送/接收信 息模塊或總線信息監(jiān)控模塊;
所述診斷模塊當診斷模塊未接收到從平臺通信模塊傳來的診斷服務請求時,按模 擬ECU應用程序模塊指定程序運行,在發(fā)生故障時,診斷模塊把故障信息存到存儲模 塊;當診斷模塊接收到診斷服務請求時,執(zhí)行診斷服務,并輸出相應的診斷服務響應到 平臺通信模塊,同時,診斷模塊對模擬ECU應用程序模塊和模擬ECU環(huán)境模塊提供服務 和接口 ;
所述模擬ECU環(huán)境模塊接收模擬ECU應用程序模塊輸出的模擬ECU的狀態(tài)參數(shù), 完成ECU狀態(tài)配置,設置診斷模塊運行所需的模擬ECU環(huán)境;
所述模擬ECU應用程序模塊結合需要的ECU狀態(tài),輸出模擬ECU的狀態(tài)參數(shù)到 模擬ECU環(huán)境模塊,并指定和調整診斷模塊的運行模式;
所述存儲模塊接收并存儲診斷模塊輸出的故障信息,其存儲區(qū)可被診斷模塊擦除; 對平臺通信模塊提供接口,平臺通信模塊通過函數(shù)接口可提取所需故障信息;
所述平臺通信模塊當接收到從診斷模塊或存儲模塊傳來的數(shù)據(jù)時,將此數(shù)據(jù)轉換為 標準通信數(shù)據(jù),再發(fā)送至通信接口,當平臺通信模塊接收到從通信接口傳來的數(shù)據(jù)時, 將通信接口傳來的數(shù)據(jù)轉換為診斷模塊或存儲模塊可用的數(shù)據(jù),再發(fā)送至診斷模塊或存 儲模塊。根據(jù)本發(fā)明所述的汽車電子診斷軟件的測試系統(tǒng)的一種優(yōu)選方案,所述發(fā)送/ 接收信息模塊還對Tester通信模塊提供函數(shù)接口,當發(fā)送/接收信息模塊需要發(fā)送數(shù)據(jù) 時,調用Tester通信模塊相應函數(shù)接口,將數(shù)據(jù)傳給Tester通信模塊處理;當發(fā)送/接收 信息模塊需要接收數(shù)據(jù)時,相應函數(shù)接口被Tester通信模塊調用,發(fā)送/接收信息模塊接 收來至Tester通信模塊的數(shù)據(jù);
發(fā)送/接收信息模塊201對顯示/分析模塊203提供函數(shù)接口,不論其是發(fā)送數(shù)據(jù), 還是接收到數(shù)據(jù),都調用顯示/分析模塊相應函數(shù)接口,將數(shù)據(jù)傳給顯示/分析模塊203 處理。根據(jù)本發(fā)明所述的汽車電子診斷軟件的測試系統(tǒng)的一種優(yōu)選方案,所述總線 信息監(jiān)控模塊還對Tester通信模塊提供函數(shù)接口,當總線信息監(jiān)控模塊啟動之后,調用 Tester通信模塊相應函數(shù)接口,實時監(jiān)控診斷Tester與ECU模型平臺的通信數(shù)據(jù);
總線信息監(jiān)控模塊還對顯示/分析模塊提供函數(shù)接口,該模塊啟動之后,調用顯示/ 分析模塊相應函數(shù)接口,總線信息監(jiān)控模塊將監(jiān)測到的數(shù)據(jù)傳給顯示/分析模塊處理。根據(jù)本發(fā)明的另一個技術方案,一種汽車電子診斷軟件的測試方法,其特征在 于,該測試方法包括
用于將診斷Tester通過通信接口與ECU模型平臺連接,從而形成一個測試系統(tǒng)的步 驟所述診斷Tester包含顯示/分析模塊、發(fā)送/接收信息模塊、總線信息監(jiān)控模塊和 Tester通信模塊;所述ECU模型平臺包含模擬ECU應用程序模塊、模擬ECU環(huán)境模塊、 診斷模塊、存儲模塊和平臺通信模塊; 用于啟動ECU模型平臺的步驟;用于指定和調整診斷模塊的運行環(huán)境和模式的步驟運行模擬ECU應用程序模塊, 模擬ECU應用程序模塊將模擬ECU的狀態(tài)參數(shù)傳給模擬ECU環(huán)境模塊,并指定和調整 診斷模塊的運行環(huán)境和模式;
用于完成模擬ECU的狀態(tài)配置的步驟運行所述模擬ECU環(huán)境模塊,接收模擬 ECU應用程序模塊輸出的模擬ECU的狀態(tài)參數(shù),完成ECU狀態(tài)配置,設置診斷模塊運行 所需的模擬ECU環(huán)境;
用于判斷診斷模塊是否接收到來至通信接口的診斷服務請求的步驟 當診斷模塊沒有接收到診斷服務請求時,診斷模塊按模擬ECU應用程序模塊指定程 序運行,并把出現(xiàn)的故障信息存到存儲模塊中,以供診斷Tester讀取、測試;
當診斷模塊接收到診斷服務請求時,診斷模塊執(zhí)行診斷服務,并返回診斷響應給通 信接口,以供診斷Tester讀取、測試; 用于啟動診斷Tester的步驟;
用于運行總線信息監(jiān)控模塊的步驟總線信息監(jiān)控模塊通過Tester通信模塊實施對 通信接口實時監(jiān)測,并將監(jiān)測數(shù)據(jù)傳給顯示/分析模塊進行處理,直到測試服務完成;
用于發(fā)送/接收信息模塊發(fā)送診斷服務請求的步驟發(fā)送/接收信息模塊通過Tester 通信模塊發(fā)送診斷服務請求至通信接口,通過通信接口再發(fā)送至ECU模型平臺;
用于發(fā)送/接收信息模塊將診斷服務請求數(shù)據(jù)傳給顯示/分析模塊進行處理的步
驟;
用于當發(fā)送/接收信息模塊接收到來至通信接口的診斷響應數(shù)據(jù)時,將診斷響應數(shù) 據(jù)傳給顯示/分析模塊的步驟;
用于顯示/分析模塊對接收到的數(shù)據(jù)進行對比、分析,得出測試結果,并記錄的步
馬聚o根據(jù)本發(fā)明所述的汽車電子診斷軟件的測試方法的一種優(yōu)選方案,該方法包括 用于判斷測試是手動測試還是自動測試的步驟。根據(jù)本發(fā)明所述的汽車電子診斷軟件的測試方法的一種優(yōu)選方案,該方法包括 用于在自動測試模式下,判斷是否遍歷模擬ECU的所有診斷模式,而且在模擬ECU的每 種診斷模式下,遍歷標準協(xié)議的所有診斷服務測試的步驟。與現(xiàn)有技術相比,本發(fā)明所述的汽車電子診斷軟件的測試系統(tǒng)及方法的有益技 術效果
能夠解決現(xiàn)有技術中汽車ECU診斷軟件測試的精確程度和測試、開發(fā)效率不協(xié)調問 題,本發(fā)明在汽車ECU診斷軟件開發(fā)階段,可隨時對診斷軟件進行診斷測試,減小了開 發(fā)人員的工作量,既能保障診斷軟件測試的精確程度,又能提高汽車ECU診斷軟件的測 試、開發(fā)效率。以下結合附圖和具體實施例對本發(fā)明進行詳細描述,但不作為對本發(fā)明的限定。
圖1是本發(fā)明的診斷軟件測試系統(tǒng)結構示意圖; 圖2是本發(fā)明的診斷軟件測試方法流程示意圖。
圖3是本發(fā)明的診斷運行模式類型及轉換關系示意圖。
具體實施例方式下面結合附圖和具體實施方式
對本發(fā)明的技術方案作進一步更詳細的描述。如圖1所示,是本發(fā)明的診斷軟件測試系統(tǒng)結構示意圖。一種汽車電子診斷軟 件的測試系統(tǒng),該系統(tǒng)由診斷TeSter200、ECU模型平臺100和通信接口 300構成;其 中
所述診斷TeSter200包含顯示/分析模塊203、發(fā)送/接收信息模塊201、總線信息監(jiān) 控模塊202和Tester通信模塊204 ;
所述ECU模型平臺100包含模擬ECU應用程序模塊102、模擬ECU環(huán)境模塊103、 診斷模塊101、存儲模塊104和平臺通信模塊105 ;
所述通信接口 300用于連接診斷TeSter200和ECU模型平臺100,并將不同類通訊總 線轉換成一致的通訊總線,轉換時,數(shù)據(jù)形式發(fā)生變化,但數(shù)據(jù)信息內容不會改變; 傳輸通信信息;
所述發(fā)送/接收信息模塊201通過Tester通信模塊204發(fā)送診斷服務請求和接收診斷 服務響應,并將診斷服務請求數(shù)據(jù)和診斷服務響應數(shù)據(jù)傳給顯示/分析模塊203進行處 理;在具體實施例中,發(fā)送/接收信息模塊201是由標準語言編寫的程序塊,可手動發(fā)起 任意項診斷服務請求,也可以自動逐項發(fā)送所有診斷服務請求;并且,發(fā)送/接收信息 模塊201還對Tester通信模塊204提供函數(shù)接口,當發(fā)送/接收信息模塊201需要發(fā)送數(shù) 據(jù)時,調用Tester通信模塊204相應函數(shù)接口,將數(shù)據(jù)傳給Tester通信模塊204處理;當 發(fā)送/接收信息模塊201需要接收數(shù)據(jù)時,相應函數(shù)接口被Tester通信模塊204調用,發(fā) 送/接收信息模塊201接收來至Tester通信模塊204的數(shù)據(jù);
發(fā)送/接收信息模塊201對顯示/分析模塊203提供函數(shù)接口,不論是發(fā)送/接收信 息模塊201發(fā)送數(shù)據(jù),還是發(fā)送/接收信息模塊201接收到數(shù)據(jù),都調用顯示/分析模塊 203相應函數(shù)接口,將數(shù)據(jù)傳給顯示/分析模塊203處理;
所述總線信息監(jiān)控模塊202通過Tester通信模塊204監(jiān)控通信接口 300上的數(shù)據(jù),并 將數(shù)據(jù)發(fā)給顯示/分析模塊203進行處理;
總線信息監(jiān)控模塊202是由標準語言編寫的程序塊,總線信息監(jiān)控模塊202對Tester 通信模塊204提供函數(shù)接口,該模塊啟動之后,調用Tester通信模塊204相應函數(shù)接口, 實時監(jiān)控診斷Tester 200與ECU模型平臺100的通信數(shù)據(jù);
總線信息監(jiān)控模塊202還對顯示/分析模塊203提供函數(shù)接口,該模塊啟動之后,調 用顯示/分析模塊203相應函數(shù)接口,將監(jiān)測到的數(shù)據(jù)傳給顯示/分析模塊203處理;
所述顯示/分析模塊203接收來至發(fā)送/接收信息模塊201、總線信息監(jiān)控模塊202 的數(shù)據(jù)信息,對接收到的數(shù)據(jù)進行分析并顯示,以供測試、觀察、分析;
所述Tester通信模塊204 當Tester通信模塊204接收到發(fā)送/接收信息模塊201或 總線信息監(jiān)控模塊202發(fā)出的數(shù)據(jù)時,將數(shù)據(jù)轉換為標準通信數(shù)據(jù),再將標準通信數(shù)據(jù) 發(fā)送至通信接口 300,當Tester通信模塊204接收到從通信接口 300傳來的數(shù)據(jù)時,將通 信接口 300傳來的數(shù)據(jù)轉換為發(fā)送/接收信息模塊201或總線信息監(jiān)控模塊202可用的數(shù) 據(jù),再將轉換后的數(shù)據(jù)發(fā)送至發(fā)送/接收信息模塊201或總線信息監(jiān)控模塊202 ;
8所述診斷模塊101即待測診斷軟件當診斷模塊101未接收到從平臺通信模塊105傳 來的診斷服務請求時,按模擬ECU應用程序模塊102指定程序運行,在發(fā)生故障時,診 斷模塊101把故障信息存到存儲模塊104 ;當診斷模塊101接收到從平臺通信模塊105傳 來的診斷服務請求時,執(zhí)行診斷服務,并輸出相應的診斷服務響應到平臺通信模塊105, 同時,診斷模塊101對模擬ECU應用程序模塊102和模擬ECU環(huán)境模塊103提供服務和 接口,以便調整診斷模塊的運行環(huán)境和運行模式;同時,診斷模塊101對存儲模塊104提 供接口,以供存儲數(shù)據(jù);診斷模塊101還對平臺通信模塊105提供接口,在接收診斷服務 請求和回復診斷服務響應時,調用相應函數(shù)接口,達到通信要求;
所述模擬ECU環(huán)境模塊103:接收模擬ECU應用程序模塊102輸出的模擬ECU的狀 態(tài)參數(shù),完成ECU狀態(tài)配置,設置診斷模塊101運行所需的模擬ECU環(huán)境;模擬ECU 環(huán)境模塊103對診斷模塊101提供接口,同時,模擬ECU環(huán)境模塊103對模擬ECU應用 程序模塊102提供接口,以便模擬ECU應用程序模塊102通過相應的接口,對模擬ECU 環(huán)境模塊103進行模擬ECU狀態(tài)參數(shù)的傳遞;
所述模擬ECU應用程序模塊102:結合需要的ECU狀態(tài),輸出模擬ECU的狀態(tài)參數(shù) 到模擬ECU環(huán)境模塊103,并指定和調整診斷模塊101的運行模式,調用診斷模塊101的 程序,即調用待測診斷軟件程序;模擬ECU應用程序模塊102對模擬ECU環(huán)境模塊103 和診斷模塊101提供接口 ;
所述存儲模塊104:接收診斷模塊101輸出的故障信息,存儲的故障信息也可被診斷 模塊101擦除;發(fā)送到平臺通信模塊105;對平臺通信模塊105提供接口,以便通信接口 經平臺通信模塊105提取存儲的信息;
所述平臺通信模塊105:當接收到從診斷模塊101或存儲模塊104傳來的數(shù)據(jù)時,將 此數(shù)據(jù)轉換為標準通信數(shù)據(jù),再發(fā)送至通信接口 300,當平臺通信模塊105接收到從通信 接口 300傳來的數(shù)據(jù)時,將通信接口 300傳來的數(shù)據(jù)轉換為診斷模塊101或存儲模塊104 可用的數(shù)據(jù),再發(fā)送至診斷模塊101或存儲模塊104 ;平臺通信模塊105對存儲模塊104 提供接口,以便提取存儲模塊的數(shù)據(jù)信息。 一種汽車電子診斷軟件的測試方法,其特征在于,該測試方法包括
用于將診斷TeSter200通過通信接口 300與ECU模型平臺100連接,從而形成一個測 試系統(tǒng)的步驟所述診斷TeSter200包含顯示/分析模塊203、發(fā)送/接收信息模塊201、 總線信息監(jiān)控模塊202和Tester通信模塊204 ;所述ECU模型平臺100包含模擬ECU應 用程序模塊102、模擬ECU環(huán)境模塊103、診斷模塊101、存儲模塊104和平臺通信模塊 105 ;
用于啟動ECU模型平臺100的步驟;
用于指定和調整診斷模塊101的運行環(huán)境和模式的步驟運行模擬ECU應用程序 模塊102,模擬ECU應用程序模塊102將模擬ECU的狀態(tài)參數(shù)傳給模擬ECU環(huán)境模塊 103,并指定和調整診斷模塊101的運行環(huán)境和模式;
用于完成模擬ECU的狀態(tài)配置的步驟運行所述模擬ECU環(huán)境模塊103,接收模擬 ECU應用程序模塊102輸出的模擬ECU的狀態(tài)參數(shù),完成ECU狀態(tài)配置,設置診斷模塊 101運行所需的模擬ECU環(huán)境;
用于判斷診斷模塊101是否接收到來至通信接口 300的診斷服務請求的步驟當診斷模塊101沒有接收到診斷服務請求時,診斷模塊101按模擬ECU應用程序模 塊102指定程序運行,并把出現(xiàn)的故障信息存到存儲模塊104中,以供診斷Tester讀取、 測試;
當診斷模塊101接收到診斷服務請求時,診斷模塊101執(zhí)行診斷服務,并返回診斷響 應給通信接口 300,以供診斷Tester200讀取、測試;
用于啟動診斷TeSter200的步驟;
用于運行總線信息監(jiān)控模塊202的步驟總線信息監(jiān)控模塊202通過Tester通信模塊 204實施對通信接口 300實時監(jiān)測,并將監(jiān)測數(shù)據(jù)傳給顯示/分析模塊203進行處理,直 到測試服務完成;
用于發(fā)送/接收信息模塊201發(fā)送診斷服務請求的步驟發(fā)送/接收信息模塊201 通過Tester通信模塊204發(fā)送診斷服務請求至通信接口 300,通過通信接口 300再發(fā)送至 ECU模型平臺100 ;
用于發(fā)送/接收信息模塊201將診斷服務請求數(shù)據(jù)傳給顯示/分析模塊203進行處理 的步驟;
用于當發(fā)送/接收信息模塊201接收到來至通信接口 300的診斷響應數(shù)據(jù)時,將診斷 響應數(shù)據(jù)傳給顯示/分析模塊203的步驟;
用于顯示/分析模塊203對接收到的數(shù)據(jù)進行對比、分析,得出測試結果,并記錄的 步驟;
用于判斷測試是手動測試還是自動測試的步驟;
用于在自動測試模式下,判斷是否遍歷模擬ECU的所有診斷模式,而且在模擬ECU 的每種診斷模式下,遍歷標準協(xié)議的所有診斷服務測試的步驟。 如圖2所示,是本發(fā)明的診斷軟件測試方法流程示意圖。下面結合圖2的測試 方法,描述實現(xiàn)流程如下
步驟S101,首先將診斷Tester200通過通信接口 300與ECU模型平臺100連接,從而 形成一個測試系統(tǒng)的步驟所述診斷TeSter200包含顯示/分析模塊203、發(fā)送/接收信 息模塊201、總線信息監(jiān)控模塊202和Tester通信模塊204;所述ECU模型平臺100包含 模擬ECU應用程序模塊102、模擬ECU環(huán)境模塊103、診斷模塊101、存儲模塊104和平 臺通信模塊105 ;啟動ECU模型平臺100 ;
步驟S102,運行模擬ECU應用程序模塊102,
步驟S103,完成模擬ECU的狀態(tài)配置運行所述模擬ECU環(huán)境模塊103,接收模擬 ECU應用程序模塊102輸出的模擬ECU的狀態(tài)參數(shù),完成ECU狀態(tài)配置,設置診斷模塊 101運行所需的模擬ECU環(huán)境;
在具體實施例中,可以采用如下計算機源程序ECU_Environment_Function(Type_ Parameterl, Status _Parameter2,...)
/* 此 ECU_Environment_Function 模塊函數(shù)中的參數(shù) Type _Parameterl, Status _ Parameter2,...由模擬ECU應用程序傳遞*/
Periph_Init (void) //周邊硬件初始化函數(shù)ECU_Type_Init (Type _Parameterl,…)// ECU 類型初始化函數(shù) ECU_Status_Init (Status _Parameter2,…)//ECU 狀態(tài)初始化函數(shù) SET_Diagnostic_Mode() //診斷模式設置函數(shù)
步驟S104,指定和調整診斷模塊101的運行模式模擬ECU應用程序模塊102將 模擬ECU的狀態(tài)參數(shù)傳給模擬ECU環(huán)境模塊103,并指定和調整診斷模塊101的運行模 式;
步驟S105,判斷診斷模塊101是否接收到來至通信接口 300的診斷服務請求? 當診斷模塊101沒有接收到診斷服務請求時,進行步驟S108,當診斷模塊101接收 到診斷服務請求時,進行步驟S106,
步驟S106,診斷模塊101執(zhí)行診斷服務;
步驟S107,診斷模塊101返回診斷服務響應給通信接口 300,以供診斷TeSter200讀 取、測試,并進行步驟S302;
步驟S108,診斷模塊101按模擬ECU應用程序模塊102指定程序運行; 步驟S109,待測診斷軟件運行,當待測診斷軟件出現(xiàn)錯誤、故障信息時,并把出現(xiàn) 的故障信息存到存儲模塊104中,以供診斷Tester讀取、測試;并進行步驟S302 ;
步驟S302,通信接口 300接收由平臺通信模塊105傳輸來的診斷服務響應數(shù)據(jù)和故 障信息,并輸出到Tester通信模塊204,通過Tester通信模塊204輸出到發(fā)送/接收信息 模塊201,然后進入步驟S210,同時,Tester通信模塊204將數(shù)據(jù)傳給總線信息監(jiān)控模塊 202,進入步驟S203 ;
步驟S210,發(fā)送/接收信息模塊201接收到診斷服務響應數(shù)據(jù)以及故障信息后,將 數(shù)據(jù)傳至顯示/分析模塊203進行處理,進入步驟S208 ; 步驟S201,啟動診斷Tester,即診斷Tester上電啟動; 步驟S202,啟動測試程序,并進入步驟S203和步驟S204 ;
步驟S203,運行總線信息監(jiān)控模塊202,監(jiān)測通信數(shù)據(jù),并將監(jiān)測數(shù)據(jù)傳給顯示/分 析模塊203進行處理,然后進入步驟S209 ;
步驟S204,發(fā)送/接收信息模塊201判斷所用測試是手動測試還是自動測試,如 果是手動測試,則測試方法跳轉至步驟S216,如果是自動測試,則測試方法跳轉至步驟 S205 ;
步驟S205,啟動默認診斷服務,即發(fā)送/接收信息模塊201將診斷服務設置為默認
項;
步驟S206,發(fā)送/接收信息模塊201根據(jù)步驟S216或步驟S217中的信息,設定診 斷服務內容,并向Tester通信模塊204發(fā)送診斷服務請求;并將診斷服務請求數(shù)據(jù)傳至顯 示/分析模塊處理;進入步驟S207和S301 ;
步驟S207,顯示/分析模塊203接收到診斷服務請求數(shù)據(jù)后,將顯示出來,以供測 試人員觀察,并進入步驟S211;
步驟S208,顯示/分析模塊203接收到診斷服務響應數(shù)據(jù)后,將數(shù)顯示出來,以供 測試人員觀察,并進入步驟S211;步驟S209,顯示/分析模塊203接收到總線信息監(jiān)控模塊202輸出的監(jiān)測數(shù)據(jù)后, 將數(shù)據(jù)顯示出來,以供測試人員觀察,并進入步驟S211;
步驟S211,顯示/分析模塊203根據(jù)診斷服務請求數(shù)據(jù)、診斷服務響應數(shù)據(jù)、以及 總線信息監(jiān)控模塊202輸出的監(jiān)測數(shù)據(jù),進行對比/分析,并記錄下數(shù)據(jù);
步驟S212,發(fā)送/接收信息模塊201再次判斷測試是手動測試還是自動測試,如果 是手動測試,則測試方法跳轉至步驟S214,如果是自動測試,則測試方法跳轉至S213 ; 步驟S213,發(fā)送/接收信息模塊201判斷測試是否遍歷模擬ECU的所有診斷服務, 而且在模擬ECU的每種診斷模式下,遍歷標準協(xié)議的所有診斷服務測試;如果遍歷所有 診斷服務,則測試方法跳轉至步驟S214,如果未遍歷所有診斷服務,則測試方法跳轉至 S217 ;
步驟S214,發(fā)送/接收信息模塊201判斷是否需要切換診斷模式,如果需要切換診斷 模式,進入步驟S110和步驟S215,如果不需要再切換診斷模式,則跳轉至步驟S401。
步驟S110,切換診斷運行模式,診斷運行模式的切換由診斷跳轉服務完成,切 換診斷運行模式后,返回步驟S104;其中,診斷運行模式類型及轉換關系見圖3 ; 在具體實施例中,可以采用如下計算機源程序 Switch—Diagnostic—Mode (Variable 1, Variable〗,...)
Switch (變量) Case 1: //診斷默認模式 {if跳轉條件1 ... //切換到診斷擴展模式 elseif跳轉條件2... //切換到診斷編程模式 } break;
Case 2: //診斷擴展模式 { if跳轉條件3 ... //切換到診斷默認模式 elseif跳轉條件4... //切換到診斷編程模式 } break;
Case 3: //診斷編程模式 {if跳轉條件5... //切換到診斷默認模式 elseif跳轉條件6... //切換到診斷擴展模式 } break;
SEND_Diagnostic_Instruction (Parameter 1 parameter 2,...)
//對診斷模塊發(fā)起診斷模式跳轉指令 }
步驟S215,診斷TeSter200進入等待發(fā)起診斷服務狀態(tài),只有發(fā)起診斷服務時,才進 入步驟S204 ;
步驟S216,測試人員根據(jù)診斷服務內容,手動編輯診斷服務,編輯完成后,再執(zhí)行 步驟S206 ;
步驟S217,通過自動診斷服務程序,自動切換診斷服務,完成后轉到步驟S206;步驟S301,通信接口 300接收由Tester通信模塊204傳輸來的診斷服務請求數(shù)據(jù), 并輸出到平臺通信模塊105,通過平臺通信模塊105輸出到診斷模塊101,然后進入步驟 S105,同時,Tester通信模塊204將診斷服務請求數(shù)據(jù)傳給總線信息監(jiān)控模塊202,進入 步驟S203 ;
步驟S401,測試結束。本發(fā)明提供了一種符合ISO 14229協(xié)議的汽車電子診斷軟件的測試系統(tǒng)及其實現(xiàn) 的測試方法,即一種基于半實物ECU模型平臺的診斷軟件測試系統(tǒng)和測試方法,能夠解 決現(xiàn)有技術中汽車ECU診斷軟件測試的精確程度和測試、開發(fā)效率不協(xié)調問題,既能保 障診斷軟件測試的精確程度,又能提高汽車ECU診斷軟件測試、開發(fā)效率。當然,本發(fā)明還可有其他多種實施例,在不背離本發(fā)明精神及其實質的情況 下,熟悉本領域的技術人員當可根據(jù)本發(fā)明作出各種相應的改變和變形,但這些相應的 改變和變形都應屬于本發(fā)明所附的權利要求的保護范圍。
權利要求
1. 一種汽車電子診斷軟件的測試系統(tǒng),其特征在于,該系統(tǒng)包括診斷Tester(200)、ECU模型平臺(100)和通信接口(300);所述診斷Tester (200)包含顯示/分析模塊(203)、發(fā)送/接收信息模塊(201)、總線信息監(jiān)控模塊(202)和Tester通信模塊(204);所述ECU模型平臺(100)包含模擬ECU應用程序模塊(102)、模擬ECU環(huán)境模 塊(103)、診斷模塊(101)、存儲模塊(104)和平臺通信模塊(105);所述通信接口(300)用于連接診斷Tester (200)和ECU模型平臺(100),并將 不同類通訊總線轉換成一致的通訊總線,傳輸通信信息;所述發(fā)送/接收信息模塊(201)通過Tester通信模塊(204)發(fā)送診斷服務請求 和接收診斷服務響應,并將診斷服務請求數(shù)據(jù)和診斷服務響應數(shù)據(jù)傳給顯示/分析模塊 (203)進行處理;所述總線信息監(jiān)控模塊(202)通過Tester通信模塊(204)監(jiān)控通信接口(300) 上的數(shù)據(jù),并將數(shù)據(jù)發(fā)給顯示/分析模塊(203)進行處理;所述顯示/分析模塊(203)接收來至發(fā)送/接收信息模塊(201)、總線信息監(jiān)控 模塊(202)的數(shù)據(jù)信息,對接收到的數(shù)據(jù)進行分析并顯示,以供測試、觀察、分析;所述Tester通信模塊(204)當Tester通信模塊(204)接收到發(fā)送/接收信息模 塊(201)或總線信息監(jiān)控模塊(202)發(fā)出的數(shù)據(jù)時,將數(shù)據(jù)轉換為標準通信數(shù)據(jù), 再將標準通信數(shù)據(jù)發(fā)送至通信接口(300),當Tester通信模塊(204)接收到從通信接 口(300)傳來的數(shù)據(jù)時,將通信接口(300)傳來的數(shù)據(jù)轉換為發(fā)送/接收信息模塊 (201)或總線信息監(jiān)控模塊(202)可用的數(shù)據(jù),再將轉換后的數(shù)據(jù)發(fā)送至發(fā)送/接收 信息模塊(201)或總線信息監(jiān)控模塊(202);所述診斷模塊(101)當診斷模塊(101)未接收到從平臺通信模塊(105)傳來 的診斷服務請求時,按模擬ECU應用程序模塊(102)指定程序運行,在發(fā)生故障時, 診斷模塊(101)把故障信息存到存儲模塊(104);當診斷模塊(101)接收到從平臺 通信模塊(105)傳來的診斷服務請求時,執(zhí)行診斷服務,并輸出相應的診斷服務響應到 平臺通信模塊(105),同時,診斷模塊(101)對模擬ECU應用程序模塊(102)和模 擬ECU環(huán)境模塊(103)提供服務和接口;所述模擬ECU環(huán)境模塊(103)接收模擬ECU應用程序模塊(102)輸出的模擬 ECU的狀態(tài)參數(shù),完成ECU狀態(tài)配置,設置診斷模塊(101)運行所需的模擬ECU環(huán) 境;所述模擬ECU應用程序模塊(102)結合需要的ECU狀態(tài),輸出模擬ECU的狀態(tài) 參數(shù)到模擬ECU環(huán)境模塊(103),并指定和調整診斷模塊(101)的運行模式,調用診 斷模塊(101)的程序;所述存儲模塊(104:接收并存儲診斷模塊(101)輸出的故障信息,其存儲區(qū)可被 診斷模塊(101)擦除;對平臺通信模塊(105)提供接口,平臺通信模塊(105)通過 函數(shù)接口可提取所需故障信息;所述平臺通信模塊(105)當接收到從診斷模塊(101)或存儲模塊(104)傳來 的數(shù)據(jù)時,將此數(shù)據(jù)轉換為標準通信數(shù)據(jù),再發(fā)送至通信接口(300),當平臺通信模塊 (105)接收到從通信接口(300)傳來的數(shù)據(jù)時,將通信接口(300)傳來的數(shù)據(jù)轉換為診斷模塊(101)或存儲模塊(104)可用的數(shù)據(jù),再發(fā)送至診斷模塊(101)或存儲 模塊(104)。
2.根據(jù)權利要求1所述的汽車電子診斷軟件的測試系統(tǒng),其特征在于發(fā)送/接收信息模塊(201)還對Tester通信模塊(204)提供函數(shù)接口,當發(fā)送/ 接收信息模塊(201)需要發(fā)送數(shù)據(jù)時,調用Tester通信模塊(204)相應函數(shù)接口,將 數(shù)據(jù)傳給Tester通信模塊(204)處理;當發(fā)送/接收信息模塊(201)需要接收數(shù)據(jù) 時,相應函數(shù)接口被Tester通信模塊(204)調用,發(fā)送/接收信息模塊(201)接收來 至Tester通信模塊(204)的數(shù)據(jù);發(fā)送/接收信息模塊(201)對顯示/分析模塊(203)提供函數(shù)接口,不論是發(fā)送 /接收信息模塊(201)發(fā)送數(shù)據(jù),還是發(fā)送/接收信息模塊201接收到數(shù)據(jù),都調用顯 示/分析模塊(203)相應函數(shù)接口,將數(shù)據(jù)傳給顯示/分析模塊(203)處理。
3.根據(jù)權利要求1或2所述的汽車電子診斷軟件的測試系統(tǒng),其特征在于總線信 息監(jiān)控模塊(202)還對Tester通信模塊(204)提供函數(shù)接口,當總線信息監(jiān)控模塊(202)啟動之后,調用Tester通信模塊(204)相應函數(shù)接口,實時監(jiān)控診斷Tester (200)與ECU模型平臺(100)的通信數(shù)據(jù);總線信息監(jiān)控模塊(202)還對顯示/分析模塊(203)提供函數(shù)接口,該模塊啟動 之后,調用顯示/分析模塊(203)相應函數(shù)接口,總線信息監(jiān)控模塊(202)將監(jiān)測到 的數(shù)據(jù)傳給顯示/分析模塊(203)處理。
4.一種汽車電子診斷軟件的測試方法,其特征在于,該測試方法包括用于將診斷Tester (200)通過通信接口(300)與ECU模型平臺(100)連接, 從而形成一個測試系統(tǒng)的步驟所述診斷Tester (200)包含顯示/分析模塊(203)、 發(fā)送/接收信息模塊(201)、總線信息監(jiān)控模塊(202)和Tester通信模塊(204); 所述ECU模型平臺(100)包含模擬ECU應用程序模塊(102)、模擬ECU環(huán)境模塊 (103)、診斷模塊(101)、存儲模塊(104)和平臺通信模塊(105); 用于啟動ECU模型平臺(100)的步驟;用于指定和調整診斷模塊(101)的運行環(huán)境和模式的步驟運行模擬ECU應用程 序模塊(102),模擬ECU應用程序模塊(102)將模擬ECU的狀態(tài)參數(shù)傳給模擬ECU 環(huán)境模塊(103),并指定和調整診斷模塊(101)的運行環(huán)境和模式;用于完成模擬ECU的狀態(tài)配置的步驟運行所述模擬ECU環(huán)境模塊(103),接收 模擬ECU應用程序模塊(102)輸出的模擬ECU的狀態(tài)參數(shù),完成ECU狀態(tài)配置,設 置診斷模塊(101)運行所需的模擬ECU環(huán)境;用于判斷診斷模塊(101)是否接收到來至通信接口(300)的診斷服務請求的步驟當診斷模塊(101)沒有接收到診斷服務請求時,診斷模塊(101)按模擬ECU應用 程序模塊(102)指定程序運行,并把出現(xiàn)的故障信息存到存儲模塊(104)中,以供診 斷Tester讀取、測試;當診斷模塊(101)接收到診斷服務請求時,診斷模塊(101)執(zhí)行診斷服務,并返 回診斷響應給通信接口(300),以供診斷Tester (200)讀取、測試; 用于啟動診斷Tester (200)的步驟;用于運行總線信息監(jiān)控模塊(202)的步驟總線信息監(jiān)控模塊(202)通過Tester 通信模塊(204)實施對通信接口(300)實時監(jiān)測,并將監(jiān)測數(shù)據(jù)傳給顯示/分析模塊 (203)進行處理,直到測試服務完成;用于發(fā)送/接收信息模塊(201)發(fā)送診斷服務請求的步驟發(fā)送/接收信息模塊 (201)通過Tester通信模塊(204)發(fā)送診斷服務請求至通信接口(300),通過通信接 口(300)再發(fā)送至ECU模型平臺(100);用于發(fā)送/接收信息模塊(201)將診斷服務請求數(shù)據(jù)傳給顯示/分析模塊(203) 進行處理的步驟;用于當發(fā)送/接收信息模塊(201)接收到來至通信接口(300)的診斷響應數(shù)據(jù) 時,將診斷響應數(shù)據(jù)傳給顯示/分析模塊(203)的步驟;用于顯示/分析模塊(203)對接收到的數(shù)據(jù)進行對比、分析,得出測試結果,并記 錄的步驟。
5.根據(jù)權利要求4所述的汽車電子診斷軟件的測試方法,其特征在于該方法包括 用于判斷測試是手動測試還是自動測試的步驟。
6.根據(jù)權利要求5所述的汽車電子診斷軟件的測試方法,其特征在于該方法包括 用于在自動測試模式下,判斷是否遍歷模擬ECU的所有診斷模式,而且在模擬ECU的每 種診斷模式下,遍歷標準協(xié)議的所有診斷服務測試的步驟。
全文摘要
本發(fā)明公開了一種汽車電子診斷軟件的測試系統(tǒng)及方法,其特征在于該系統(tǒng)包括診斷Tester、ECU模型平臺和通信接口;所述診斷Tester包含顯示/分析模塊、發(fā)送/接收信息模塊、總線信息監(jiān)控模塊和Tester通信模塊;所述ECU模型平臺包含模擬ECU應用程序模塊、模擬ECU系統(tǒng)模塊、診斷模塊、存儲模塊和平臺通信模塊;所述通信接口用于連接診斷Tester和ECU模型平臺,并將不同類通訊總線轉換成一致的通訊總線,傳輸通信信息;所述發(fā)送/接收信息模塊通過Tester通信模塊發(fā)送診斷服務請求和接收診斷服務響應,并將診斷服務請求數(shù)據(jù)和診斷服務響應數(shù)據(jù)傳給顯示/分析模塊;本發(fā)明可隨時對診斷軟件進行診斷測試,減小了開發(fā)人員的工作量,大大提高了開發(fā)效率。
文檔編號G06F11/36GK102023922SQ20101060967
公開日2011年4月20日 申請日期2010年12月28日 優(yōu)先權日2010年12月28日
發(fā)明者傅雪驕, 殷慶, 羅文明, 蔣鑫, 雷輝 申請人:重慶恩菲斯軟件有限公司