一種基于硬件腳本的can總線自動化測試方法
【專利摘要】本發(fā)明涉及一種針對CAN總線的測試系統(tǒng)與方法,它由微控制器、至少兩個CAN控制器以及USB模塊組成,它的特征是,微控制器連接至少兩個CAN控制器,每個CAN控制器可獨立連接至一根CAN總線,在上位機上編輯測試腳本,上位機將測試腳本編譯后下載到微控制器內(nèi)存中,并在控制器內(nèi)存中執(zhí)行測試腳本,對具有CAN接口的相關設備進行自動化測試。
【專利說明】一種基于硬件腳本的CAN總線自動化測試方法
【技術領域】
[0001]本發(fā)明涉及電子【技術領域】的測試方法,特別涉及一種針對CAN總線的測試方法。【背景技術】
[0002]CAN總線作為各個微控制器之間的通信接口,在汽車和工業(yè)中有著廣泛的應用;隨著基于CAN總線的各個微控制器內(nèi)部程序的復雜性越來越高,在實際應用中就可能出現(xiàn)越來越多的問題,這就需要通過基于CAN總線測試的方法,向被測單元發(fā)送相關的報文作為測試輸入,并獲取被測單元的響應報文作為測試內(nèi)容反饋,并將反饋的內(nèi)容與預期進行比對,結(jié)果相同則認為當前測試的性能指標達到要求,否則則是不達標,需要對微控制器的邏輯進行修改并進行復測,從而盡早發(fā)現(xiàn)和解決問題,確保相應的微控制器在實際運行過程中的可靠性和魯棒性。
[0003]基于CAN總線對被測電控單元進行自動化測試,通常的做法是針對需要測試的條目逐條編寫測試用例,并逐條在上位機上執(zhí)行,通過相應的接口(比如USB轉(zhuǎn)CAN總線的設備),將需要發(fā)送的報文下發(fā)到與被測節(jié)點相連的總線上,同時從總線上讀取被測節(jié)點的響應,從而在上位機進行比對。
[0004]在上位機運行測試腳本存在以下不足:1、上位機是非實時系統(tǒng),系統(tǒng)存在不可預知的延時,從而不能保證精確時間的報文發(fā)送,接收和定時功能;2、通過特定的CAN轉(zhuǎn)換接口將計算機與CAN總線相連,使得CAN總線上的一個事件傳到上位機有著巨大的時間開銷,通常都是毫秒級別的,測試系統(tǒng)不能及時做出響應,測試效率低。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的,就是為了克服基于PC機進行CAN總線自動化測試的實時性不足的缺陷,提供一種硬件執(zhí)行測試腳本的方案,從而消除了上位機的非實時性以及傳輸延遲所帶來的影響,提高了測試效率和精度。
[0006]本發(fā)明提供的具體技術方案如下:
[0007]一種基于硬件腳本的CAN總線自動化測試方法,使用微控制器與至少兩個CAN控制器連接,每個CAN控制器分別連接至CAN總線上,在微控制器內(nèi)存中執(zhí)行測試腳本,對具有CAN接口的相關設備進行自動化測試。
[0008]一種基于硬件腳本的CAN總線自動化測試方法,包括硬件電路,下位機程序和上位機程序。
[0009]一種基于硬件腳本的CAN總線自動化測試方法,所述的硬件電路由微控制器、至少兩個CAN控制器、USB模塊組成;微控制器與至少兩個CAN控制器連接,每個CAN控制器連接一個CAN收發(fā)器,每個CAN收發(fā)器均連接至一根獨立的CAN總線上。
[0010]一種基于硬件腳本的CAN總線自動化測試方法,所述的CAN控制器在總線上監(jiān)聽到CAN報文或是錯誤幀后,將監(jiān)聽的數(shù)據(jù)反饋給微控制器,微控制器將其讀入本地報文接收緩沖區(qū),并將接收緩沖區(qū)內(nèi)的數(shù)據(jù)通過USB模塊上傳至PC機。[0011]一種基于硬件腳本的CAN總線自動化測試方法,所述的本地報文接收緩沖區(qū),將被微控制器讀取,并進行測試過程中的比對,比對結(jié)果通過USB模塊上傳至上位機。
[0012]一種基于硬件腳本的CAN總線自動化測試方法,通過所述的USB模塊接收到上位機的命令后,對微控制器進行配置,包括進行測試腳本的配置,CAN總線參數(shù)的配置,測試的啟動和停止等等。
[0013]一種基于硬件腳本的CAN總線自動化測試方法,所述的上位機控制可以對測試過程進行控制,同時通過USB接口將測試過程中返回的數(shù)據(jù)在應用程序界面中進行顯示。
[0014]一種基于硬件腳本的CAN總線自動化測試方法,所述的測試腳本將在上位機的應用程序界面中進行編輯和編譯,并通過USB接口將編譯后的內(nèi)容下載到下位機保存和執(zhí)行
[0015]一種基于硬件腳本的CAN總線自動化測試方法,它的優(yōu)勢在于,1、設計合理,結(jié)構(gòu)清晰,充分發(fā)揮了微控制器實時性好,以及上位機有較強的文本編輯能力和顯示能力的優(yōu)點;2、實時性能好,測試腳本執(zhí)行過程中,響應可以做到微秒級別,消除了系統(tǒng)響應的延遲和控制數(shù)據(jù)傳輸延遲,效率得到了極大的提高
【專利附圖】
【附圖說明】
[0016]圖1為本發(fā)明實施方法中CAN總線自動化測試硬件總體架構(gòu)圖
[0017]圖2為本發(fā)明實施方法中下位機的流程圖
[0018]圖3為本發(fā)明實施方法中上位機流程圖
[0019]圖1 中,微控制器(101 ),CAN控制器(102),CAN收發(fā)器(103),CAN總線 CANH( 104),CAN 總線 CANL (105),USB 模塊(106),PC 機(109),下位機硬件電路(110),USB 線(111 ),被測節(jié)點(112)
[0020]圖2中,CAN控制器接收緩沖區(qū)(201),CAN控制器發(fā)送緩沖區(qū)(202 ),本地CAN發(fā)送緩沖區(qū)(203),本地CAN接收緩沖區(qū)(204),測試引擎(205),測試過程中的相關事件(206),已編譯的測試腳本(207),測試數(shù)據(jù)接收緩沖區(qū)(208),測試數(shù)據(jù)發(fā)送緩沖區(qū)(209),計算機CPU (211),測試配置應用程序(212)
[0021]圖3中,USB驅(qū)動程序(301),USB接收緩沖區(qū)(302),數(shù)據(jù)處理程序(303),USB發(fā)送緩沖區(qū)(304),配置數(shù)據(jù)(305),腳本編譯程序(306),測試腳本編輯器(307),測試過程顯示程序(308)
【具體實施方式】
[0022]在圖1中,下位機硬件電路(110)包含微控制器(101)、USB模塊(106)和CAN收發(fā)器(103 ),下位機硬件電路(110)通過USB線纜(111)連接至PC機(109 ),同時通過CAN總線CANH (104)和CANL (105)連接至被測試的節(jié)點(112)。
[0023]被測節(jié)點(112)內(nèi)部集成CAN收發(fā)器(103)。
[0024]微控制器(101)連接至少兩個CAN控制器(102),每個CAN控制器的TX引腳與RX引腳分別連接CAN收發(fā)器(103)的TX引腳和RX引腳,CAN收發(fā)器的CANH連接至CAN總線CANH (104),CAN收發(fā)器的CANL連接至CAN總線的CANL (105)。
[0025]微控制器(101),內(nèi)部集成CPU和內(nèi)存,與一個或多個獨立的CAN控制器相連;或是內(nèi)部集成一個或多個CAN控制器;圖1顯示的是微控制器內(nèi)部集成兩個CAN控制器(102 )的情形。
[0026]CAN控制器(102),作為CAN總線的協(xié)議轉(zhuǎn)換芯片,負責將CAN總線上的報文和錯誤幀等信息反饋給微控制器,每一個CAN控制器都有與CAN收發(fā)器相連的TX和RX引腳。
[0027]在圖2中,下位機硬件電路(110)通過USB線纜(111)連接至PC機(109),PC機(109 )包含至少一個中央處理器(211),PC機(109 )內(nèi)部運行測試配置應用程序(212 )。
[0028]下位機硬件電路(110)通過連接CAN總線CANH (104)和CAN總線CANL (105)與被測節(jié)點進行通信。
[0029]下位機硬件電路(110)接收被測節(jié)點的報文的流程是,其CAN控制器(102)通過CAN收發(fā)器(103)監(jiān)聽到CAN報文后,將其緩存至內(nèi)部的CAN接收緩沖區(qū)(201),并通知微控制器(101),微控制器(101)通過調(diào)用接收函數(shù)(204)將收到的報文提交給測試引擎(205),測試引擎(205)根據(jù)所收報文來判斷測試用例是否通過;同時微控制器將其保存到測試數(shù)據(jù)緩沖區(qū)(209),通過USB模塊(106)將這些數(shù)據(jù)上傳至PC機(109)。
[0030]下位機硬件電路(110)的測試流程是,下位機微控制器(101)從測試數(shù)據(jù)接收緩沖區(qū)(208)中讀取來自USB模塊(106)的相關測試數(shù)據(jù),這些測試數(shù)據(jù)是通過PC機(109)配置并下發(fā)的,微控制器(101)從來自測試數(shù)據(jù)接收緩沖區(qū)(208)的測試數(shù)據(jù)中提取出已編譯的測試腳本(207),并輸送給測試引擎(205),測試引擎基于已編譯的測試腳本(207),根據(jù)當前的事件狀態(tài)(206)以及被測節(jié)點返回的報文(204)決定當前的測試步驟是成功還是失敗,并生成發(fā)送給被測節(jié)點的報文,通過發(fā)送函數(shù)(203)將發(fā)送給被測節(jié)點的報文放入CAN控制器(102)的CAN發(fā)送緩沖區(qū)內(nèi),經(jīng)由CAN控制器(102)通過CAN收發(fā)器(103)發(fā)送到 CAN 總線的 CANH (104)和 CANL (105)上。
[0031]在圖3中,上位機內(nèi)部運行的測試配置應用程序(212)通過USB驅(qū)動程序(301)連接至USB線纜(111),從而與下位機硬件電路(110 )之間建立起USB通信。
[0032]上位機測試配置程序(212)顯示當前測試狀態(tài)的流程是,將從下位機上傳的USB數(shù)據(jù)放入USB接收緩沖區(qū)(302)中,再從USB接收緩沖區(qū)(302)中讀取數(shù)據(jù),并通過數(shù)據(jù)處理程序(303)處理后,經(jīng)由測試過程顯示程序(308)顯示。
[0033]上位機測試配置程序(212)向下位機硬件傳送測試配置的過程是,使用測試腳本編輯器(307)編輯用戶的測試腳本,并通過腳本編譯程序(306)將其編譯為相應的配置數(shù)據(jù)(305),并將數(shù)據(jù)傳輸?shù)経SB發(fā)送緩沖區(qū)(304)中,經(jīng)由USB驅(qū)動程序(301)下發(fā)至下位機。
【權(quán)利要求】
1.一種基于硬件腳本的CAN總線自動化測試方法,它包括微控制器,至少兩個CAN控制器,一個USB模塊,其特征在于,使用微控制器與至少兩個CAN控制器連接,每個CAN控制器分別連接至CAN總線上,在上位機編輯測試腳本,在上位機編譯測試腳本,并通過USB接口將已編譯的測試腳本下載到下位機,在下位機的微控制器內(nèi)存中執(zhí)行測試腳本,對具有CAN接口的相關設備進行自動化測試。
2.根據(jù)權(quán)利要求1所述的一種基于硬件腳本的CAN總線自動化測試方法,其特征在于,系統(tǒng)包括硬件電路,下位機程序和上位機程序。
3.根據(jù)權(quán)利要求2所述的一種基于硬件腳本的CAN總線自動化測試方法,其特征在于,系統(tǒng)的硬件電路由微控制器、至少兩個CAN控制器、USB模塊組成;微控制器與至少兩個CAN控制器連接,每個CAN控制器連接一個CAN收發(fā)器,每個CAN收發(fā)器均連接至一根獨立的CAN總線上。
4.根據(jù)權(quán)利要求3所述的一種基于硬件腳本的CAN總線自動化測試方法,其特征在于,系統(tǒng)的CAN控制器在總線上監(jiān)聽到CAN報文或是錯誤幀后,將監(jiān)聽的數(shù)據(jù)反饋給微控制器,微控制器將其讀入本地報文接收緩沖區(qū),并將接收緩沖區(qū)內(nèi)的數(shù)據(jù)通過USB模塊上傳至PC機。
5.根據(jù)權(quán)利要求4所述的一種基于硬件腳本的CAN總線自動化測試方法,其特征在于,微控制器讀取所述的本地報文接收緩沖區(qū),并進行測試過程中的比對,比對結(jié)果通過USB模塊上傳至上位機。
6.根據(jù)權(quán)利要求5所述的一種基于硬件腳本的CAN總線自動化測試方法,通過所述的USB模塊接收到上位機的命令后,對下位機程序進行配置,包括進行測試腳本的配置,CAN總線參數(shù)的配置,測試的啟動和停止等等。
7.根據(jù)權(quán)利要求2所述的一種基于硬件腳本的CAN總線自動化測試方法,其特征在于,所述的上位機程序可以對測試過程進行控制,同時通過USB接口將測試過程中返回的數(shù)據(jù)在應用程序界面中進行顯示。
8.根據(jù)權(quán)利要求7所述的一種基于硬件腳本的CAN總線自動化測試方法,其特征在于,所述的測試腳本將在上位機的應用程序界面中進行編輯和編譯,并通過USB接口將編譯后的內(nèi)容下載到下位機保存和執(zhí)行。
【文檔編號】G06F13/38GK103440187SQ201310355090
【公開日】2013年12月11日 申請日期:2013年8月15日 優(yōu)先權(quán)日:2013年8月15日
【發(fā)明者】劉矗, 莫莽, 吳寶紅 申請人:上海固泰科技有限公司