本發(fā)明涉及CAN現(xiàn)場總線領域,具體涉及一種高效的CAN總線芯片功能測試系統(tǒng)及測試方法,可有效提高CAN總線芯片測試效率。具體講,涉及CAN控制器芯片功能測試系統(tǒng)及測試方法。
背景技術:
現(xiàn)場總線(Field bus)是近年來迅速發(fā)展起來的一種工業(yè)數(shù)據(jù)總線。它是應用在現(xiàn)場的,在測量控制設備之間實現(xiàn)雙向、串行、多點通信的數(shù)字通信系統(tǒng)。主要解決工業(yè)現(xiàn)場的智能化儀器儀表、控制器、執(zhí)行機構等現(xiàn)場設備間的數(shù)字通信以及這些現(xiàn)場控制設備和高級控制系統(tǒng)之間的信息傳遞問題。現(xiàn)場總線是當今自動化領域技術發(fā)展的熱點之一,被譽為自動化領域的計算機局域網(wǎng)。它的出現(xiàn)為分布式控制系統(tǒng)實現(xiàn)各節(jié)點之間實時、可靠的數(shù)據(jù)通信提供了強有力的技術支持。由于現(xiàn)場總線簡單、可靠、經濟實用等一系列突出的優(yōu)點,因而受到了許多標準團體和計算機廠商的高度重視?,F(xiàn)場總線技術自推廣以來,已經在世界范圍內應用于冶金、汽車制造、煙草機械、環(huán)境保護、石油化工、電力能源、紡織機械等多個領域。在汽車行業(yè),現(xiàn)場總線控制技術應用的非常普遍,近兩年國內新的汽車生產線和舊的生產線的改造,大部分都采用了現(xiàn)場總線的控制技術。國外設計的現(xiàn)場總線控制系統(tǒng)更加廣泛,從單機設備到整個生產線的輸送系統(tǒng),全部采用現(xiàn)場總線的控制方法。
CAN現(xiàn)場總線是基于CAN協(xié)議的一種現(xiàn)場總線。CAN是控制網(wǎng)絡Control Area Network的簡稱,即控制器局域網(wǎng)絡。與一般的通信總線相比,CAN總線的數(shù)據(jù)通信具有突出的可靠性、實時性和靈活性。由于其良好的性能及獨特的設計,CAN總線越來越受到人們的重視。CAN現(xiàn)場總線具有通信速率高、直接傳輸距離遠、抗干擾能力強、幾乎可以檢測發(fā)生的任何錯誤等一系列優(yōu)點。CAN的高性能和可靠性已被認同,并被廣泛地應用于工業(yè)自動化、船舶、醫(yī)療設備、工業(yè)設備等方面。CAN總線是當今自動化領域技術發(fā)展的熱點之一,它的出現(xiàn)為分布式控制系統(tǒng)實現(xiàn)各節(jié)點之間實時、可靠的數(shù)據(jù)通信提供了強有力的技術支持。CAN已經形成國際標準,并已被公認為幾種最有前途的現(xiàn)場總線之一。
在真正應用于工業(yè)控制的CAN總線系統(tǒng)中,一條總線上通常連接多個CAN節(jié)點。網(wǎng)絡中各個節(jié)點都可同時向總線發(fā)送數(shù)據(jù),總線則根據(jù)訪問優(yōu)先權控制各個節(jié)點。并且不同節(jié)點之間可以同時接收到相同的總線數(shù)據(jù)。CAN總線系統(tǒng)中的每個節(jié)點均包含收發(fā)器與控制器。CAN收發(fā)器的功能是實現(xiàn)數(shù)字邏輯電平與模擬差分電平之間的轉換。而CAN控制器是用于控制數(shù)據(jù)的發(fā)送與接收、故障處理、仲裁等一系列邏輯功能,是CAN節(jié)點的主要組成部分。
CAN所具有的完善的通信協(xié)議均由控制器來實現(xiàn)??刂破鞴δ艿恼_性是CAN總線系統(tǒng)正常工作的保障。因此,對于CAN總線控制器芯片功能的測試顯得極為重要。
參考文獻
1、Noh D H,Kim D S.Message Scheduling on CAN Bus for Large-Scaled Ship Engine Systems[J].Ifac Proceedings Volumes,2014,47(3):7911-7916.
2、來清民.手把手教你學CAN總線[M].北京:北京航空航天大學出版社,2010,109-112.
3、Andrzej,Mikulski,Maciej.On the adaptation of CAN BUS network for use in the ship electronic systems[J].Polish Maritime Research,2009,16(4):62-69.
4、宋清昆,吳立松.CAN總線智能節(jié)點設計[J].自動化技術與應用,2008,27(7):9-11。
技術實現(xiàn)要素:
為克服現(xiàn)有技術的不足,提高CAN控制器芯片測試效率并簡化測試操作,本發(fā)明旨在提出高效CAN總線控制器芯片功能測試系統(tǒng),并給出對應的測試方法,用以實現(xiàn)在測試覆蓋率較高的情況下,簡化測試操作并有效縮短CAN總線控制器芯片的測試周期。為此,本發(fā)明采用的技術方案是,CAN控制器芯片功能測試系統(tǒng),結構是,一條CAN總線連接多個節(jié)點,每個節(jié)點由CAN控制器芯片,CAN收發(fā)器芯片,單片機以及上位計算機;通過上位機為單片機編寫控制程序,進而由單片機控制CAN控制器芯片工作,通過單片機讀取通信過程中CAN控制器芯片內部各個寄存器的情況,并將其顯示在上位機屏幕上,然后通過CAN收發(fā)器實現(xiàn)CAN節(jié)點與總線間的通信工作。
單片機模擬CAN節(jié)點,編寫程序控制單片機某個輸出點的電平信號變化,利用該電平信號模擬CAN節(jié)點收發(fā)數(shù)據(jù)的過程。
CAN控制器芯片功能測試方法,利用如下結構實現(xiàn):CAN總線連接多個節(jié)點,每個節(jié)點由CAN控制器芯片,CAN收發(fā)器芯片,單片機以及上位計算機;通過上位機為單片機編寫控制程序并觀察通信過程CAN控制器芯片內部各個寄存器的情況,單片機控制CAN控制器芯片正常工作,然后通過CAN收發(fā)器實現(xiàn)CAN節(jié)點與總線間的通信工作;
測試具體步驟是:
幀的發(fā)送與接收主要測試總線與節(jié)點間各種幀的發(fā)送與接收情況,一方面由待測節(jié)點向總線發(fā)送數(shù)據(jù),由模擬節(jié)點給出相應的應答,觀察待測節(jié)點的發(fā)送完成情況;另一方面由模擬節(jié)點向待測節(jié)點發(fā)送數(shù)據(jù),觀察待測節(jié)點的接收完成情況,所述模擬節(jié)點為單片機模擬CAN節(jié)點收發(fā)電平;
仲裁測試是測試多節(jié)點同時發(fā)送數(shù)據(jù)時,總線對各節(jié)點間多個具有不同優(yōu)先級的幀的選擇情況,測試過程中,使待測節(jié)點與模擬節(jié)點同時向總線發(fā)送優(yōu)先級不同的幀,觀察總線對幀的選擇情況;
錯誤測試則是利用模擬節(jié)點發(fā)送一些具有特定錯誤的幀,使待測節(jié)點接收,然后查看待測節(jié)點的反應情況;
故障處理針對CAN總線系統(tǒng)工作過程中可能出現(xiàn)的通信故障,包括總線關閉、強迫總線關閉、被動變主動;編寫程序模擬故障發(fā)生情況,觀察CAN控制器對故障的處理方式是否正確;
FIFO測試是為了測試CAN控制器FIFO的讀、寫情況,通過多次向FIFO寫入、讀出多個不同長度的幀,通過上位機觀察讀出的數(shù)據(jù)與CAN控制器芯片內部各個寄存器值,分別觀察FIFO在滿、空情況下對不同長度的幀的反應情況;
其他測試步驟包含自測模式、僅聽模式、掛起傳送、單次發(fā)送。其中自測模式即為單個CAN總線節(jié)點的內部測試;僅聽模式時CAN控制器芯片不向總線發(fā)送數(shù)據(jù),僅保持接收狀態(tài);掛起傳送指將待發(fā)送的消息掛起,不進行發(fā)送,而是依照命令轉為其他工作模式;單次發(fā)送指的是CAN控制器芯片僅能完成發(fā)送一次工作,在發(fā)生完成后,立即進入接收模式。
信號發(fā)生器連接到CAN控制器芯片特定引腳,用于發(fā)送設置好的特定測試信號;示波器連接到CAN總線上,用于實時監(jiān)測CAN總線系統(tǒng)工作過程中總線上的信號。
本發(fā)明的特點及有益效果是:
CAN作為目前最流行的現(xiàn)場總線之一,已被應用于汽車、船舶等多個行業(yè)。為保證整個CAN總線系統(tǒng)的通信,CAN控制器功能的正確性顯得極為重要。現(xiàn)有的測試方法邏輯性較差,整個測試過程耗時較長、消耗資源較多,并且功能覆蓋不全面。本發(fā)明提出的測試系統(tǒng),在不影響全面功能測試的前提下,降低了硬件消耗,使系統(tǒng)規(guī)模更小,操作更加簡便。結合本發(fā)明提出的測試方法,可在高覆蓋率的基礎上,快速,高效的完成CAN控制器芯片的功能測試。
附圖說明:
圖1CAN總線系統(tǒng)機構框圖。
圖2CAN節(jié)點結構框圖。
圖3測試系統(tǒng)框圖。
圖4測試系統(tǒng)實物圖。
具體實施方式
現(xiàn)有的CAN控制器芯片測試系統(tǒng)較為復雜,測試方法邏輯性較差。為提高CAN控制器芯片測試效率并簡化測試操作,本發(fā)明設計了一種高效CAN總線控制器芯片功能測試系統(tǒng),并給出了對應的測試方法。該系統(tǒng)結構清晰,操作簡便。結合給出的測試方法,可在測試覆蓋率較高的情況下,簡化測試操作并有效縮短CAN總線控制器芯片的測試周期。
CAN總線系統(tǒng)工作過程不僅涉及到節(jié)點自身的通訊,還涉及雙節(jié)點、乃至多節(jié)點之間的通信過程。CAN總線系統(tǒng)整體結構圖如圖1所示,一條總線上連接有多個CAN節(jié)點。測試過程中需模擬應用場景,即一條CAN總線連接多個節(jié)點。每個節(jié)點由CAN控制器芯片,CAN收發(fā)器芯片,單片機以及上位機(計算機)組成。通過上位機為單片機編寫控制程序,進而由單片機控制CAN控制器芯片工作,通過單片機可以讀取通信過程中CAN控制器芯片內部各個寄存器的情況,并將其顯示在上位機屏幕上,單片機控制CAN控制器芯片正常工作,然后通過CAN收發(fā)器實現(xiàn)CAN節(jié)點與總線間的通信工作。測試過程中,需選擇合適的單片機以及CAN收發(fā)器。關于單片機的選擇,考慮到此測試中所需要用到的單片機功能、操作的簡便性,此處選擇STC12C5A60S2單片機用于測試。
CAN收發(fā)器的選擇是極為關鍵的,市面上流行的CAN總線收發(fā)器多為TJA1040、TJA1050和MCP2551。這幾款芯片功能相似且都極為強大。本測試中需要選擇CAN總線收發(fā)器是為了驗證控制器模塊的功能正確性,測試過程中并未用到過多的收發(fā)器功能,在此測試中選用商用CAN收發(fā)器MCP2551。MCP2551作為CAN收發(fā)器符合ISO11898標準,可以和其他遵從ISO11898標準的收發(fā)器產品協(xié)同操作,滿足測試要求。另外,此款收發(fā)器還具有很好的電磁兼容性以及低功耗特性。正常待測CAN節(jié)點的結構圖如圖2所示,由待測CAN控制器芯片、STC12C5A60S2單片機、商用收發(fā)器MCP2551、上位機(計算機)共同組成。
若每個節(jié)點都按照上述方式連接,會增加額外的硬件開銷,使測試系統(tǒng)較為龐大。此處我們利用單片機模擬CAN節(jié)點,編寫程序控制單片機某個輸出點的電平信號變化,利用該電平信號模擬CAN節(jié)點收發(fā)數(shù)據(jù)的過程。通過該方法,可有效的簡化測試系統(tǒng),并且可以在排除其他控制器芯片影響的前提下,單獨的測試CAN總線控制器芯片。整體測試系統(tǒng)結構框圖如圖3所示。
CAN控制器功能強大,測試過程不可能完全覆蓋每個功能。本發(fā)明提出的測試方法,通過分析CAN總線系統(tǒng)工作過程中可能遇到的各類情況以及CAN控制器工作原理,將測試劃分為幀的發(fā)送與接收、仲裁測試、錯誤測試、故障處理、FIFO測試、其他情況六大類。
幀的發(fā)送與接收主要測試總線與節(jié)點間各種幀的發(fā)送與接收情況,是各類測試的基礎。一方面由待測節(jié)點向總線發(fā)送數(shù)據(jù),由模擬節(jié)點給出相應的應答(包含正確應答與錯誤應答),觀察待測節(jié)點的發(fā)送完成情況;另一方面由模擬節(jié)點向待測節(jié)點發(fā)送數(shù)據(jù),觀察待測節(jié)點的接收完成情況。
仲裁測試是測試多節(jié)點同時發(fā)送數(shù)據(jù)時,總線對各節(jié)點間多個具有不同優(yōu)先級的幀的選擇情況。測試過程中,使待測節(jié)點與模擬節(jié)點同時向總線發(fā)送優(yōu)先級不同的幀,觀察總線對幀的選擇情況。
錯誤測試則是利用模擬節(jié)點發(fā)送一些具有特定錯誤的幀,使待測節(jié)點接收,然后查看待測節(jié)點的反應情況。由于每種錯誤有唯一的反應情況與之對應,所以可以精確地觀察出待測CAN控制器的功能是否正確。
故障處理針對CAN總線系統(tǒng)工作過程中可能出現(xiàn)的通信故障,如總線關閉、強迫總線關閉、被動變主動等。編寫程序模擬故障發(fā)生情況,觀察CAN控制器對故障的處理方式是否正確。
FIFO測試是為了測試CAN控制器FIFO的讀、寫情況。通過多次向FIFO寫入、讀出多個不同長度的幀,通過上位機觀察讀出的數(shù)據(jù)與CAN控制器芯片內部各個寄存器值,分別觀察FIFO在滿、空情況下對不同長度的幀的反應情況。
其他情況是對以上五大類測試的補充,包含自測模式、僅聽模式、掛起傳送、單次發(fā)送。其中自測模式即為單個CAN總線節(jié)點的內部測試;僅聽模式時CAN控制器芯片不向總線發(fā)送數(shù)據(jù),僅保持接收狀態(tài);掛起傳送指將待發(fā)送的消息掛起,不進行發(fā)送,而是依照命令轉為其他工作模式;單次發(fā)送指的是CAN控制器芯片僅能完成發(fā)送一次工作,在發(fā)生完成后,立即進入接收模式。
在本發(fā)明提出的測試系統(tǒng)中,利用上述測試方法,可快速高效的完成CAN控制器芯片的全面功能測試。
首先檢查搭建測試系統(tǒng)所需要的其他器件(單片機、收發(fā)器等)與測試儀器,測試儀器包括穩(wěn)壓電源、信號發(fā)生器、示波器。穩(wěn)壓電源用于為測試系統(tǒng)供電,連接到各測試設備的電源端口;信號發(fā)生器連接到CAN控制器芯片特定引腳,用于發(fā)送設置好的特定測試信號;示波器連接到CAN總線上,用于實時監(jiān)測CAN總線系統(tǒng)工作過程中總線上的信號。試確認各器件工作正常之后,按照上述測試系統(tǒng)的組成及結構框圖,搭建測試系統(tǒng)。測試系統(tǒng)實物圖如圖4所示。依據(jù)本發(fā)明提出的測試方法,首先進行幀的發(fā)送與接收測試,在確定測試系統(tǒng)可以正常完成幀的發(fā)送與接收工作之后,按照仲裁測試、錯誤測試、故障處理、FIFO測試、其他情況的順序,編寫程序依次完成CAN控制器芯片的功能測試。記錄測試結果,并與理論分析結果對比。