楊可
摘要:針對某航空交換機中CAN總線的測試,提出了一種自動化測試方法。首先描述了CAN總線的傳輸方案和功能要求,在此基礎上介紹了自動化測試方法的實現架構,設計了針對功能和數據分析的測試流程,并詳細介紹了針對各種功能的測試方法,最后通過在實際驗證環(huán)境中的測試表明了該方法的正確性。
關鍵詞:航空; 交換機; CAN總線; 自動化測試
中圖分類號:TP336 文獻標識碼:A 文章編號:1009-3044(2016)05-0253-03
Abstract:Aiming at the test of CAN bus in one aviation switch, an automation test method is proposed. First describes the transmission scheme and function requirements of CAN bus. On this basis introduces the implementation architecture of automation test method. Then designs test process aiming at the function and data analysis, detailed introduces the test method for every functions. Finally, through the verify in the real environment shows that this method is correct.
Key words:aviation; switch ; CAN bus; automation test
1 應用背景
交換機是寬帶網絡中的核心部件,對滿足航空電子系統對信息交換的需求起著關鍵性作用。[1]交換機的狀態(tài)和性能影響整個航空網絡的運行。在某FC網絡中,為了在實時檢測交換機狀態(tài)的同時,又不影響交換機的正常交換功能,需要選擇一種可靠性、實時性和靈活性高的總線[2]進行狀態(tài)信息的傳輸。
CAN是一種多主從方式的串行數據通信總線,傳輸速率高,抗電磁干擾性強,能檢測通信錯誤。作為一種技術先進、可靠性高、功能完善、成本合理的網絡通信控制方式已被廣泛應用到各個自動化領域。[3]CAN總線滿足交換機狀態(tài)信息傳輸的要求。
本文在分析CAN總線特點的基礎上,描述了某FC網絡中CAN總線的傳輸方案,根據傳遞的各種信息的要求,設計了一種自動化的測試方法。該測試方法在測試CAN總線是否滿足功能要求的同時,自動對測試的結果進行解析、比對和顯示。
2 CAN功能分析
2.1 CAN總線特點
CAN總線通信協議中,沒有節(jié)點地址的概念,也沒有任何與節(jié)點地址相關的信息存在,它支持的是基于數據的工作方式。[4]
在CAN總線中,數據以數據幀的格式進行傳輸。CAN數據幀由7種不同的位域組成:幀起始、仲裁域、控制域、數據域、CRC、應答域和幀結束。CAN網絡中有4中不同類型的幀:數據幀、遠程幀、錯誤幀和過載幀。[5]
2.2 傳輸方案
在本交換機中,使用可編程器件FPGA實現數據的交換功能,同時實現對交換機運行信息的檢測和記錄。FPGA中設置版本處理單元、工作狀態(tài)處理單元和工作時間處理單元來處理版本信息、工作狀態(tài)信息和工作時間信息。
版本處理單元:將版本信息進行存儲和發(fā)送,版本信息包括交換機軟件和邏輯版本,用于指示交換機的軟硬件版本是否為最新狀態(tài);
工作狀態(tài)處理單元:將收集到的狀態(tài)信息進行轉化、存儲和發(fā)送,工作狀態(tài)信息包括核心FPGA的實時溫度和交換機的關鍵電壓信息,用于檢測交換機的溫度和電壓是否超出了允許的工作范圍;
工作時間處理單元:對交換機的工作時間信息進行維護和上報,工作時間信息包括單次加電時間和累計加電時間,用于指示交換機是否正常工作以及正常工作的總時長。單次加電時間掉電清零,累積加電時間需要掉電保存并在上電時繼續(xù)累加。
由于交換機信息已經超出了CAN總線標準數據幀的長度,使用擴展數據幀進行信息傳輸。在本設計中使用MCU實現CAN數據幀的解析和收發(fā)。根據CAN總線主從方式的特點,使用查詢+應答的模式進行通信。
對于版本信息,使用版本查詢和版本應答兩條命令。對于工作狀態(tài)信息,使用狀態(tài)查詢和狀態(tài)應答兩條命令。對于工作時間信息,使用加電時間查詢和加電時間應答兩條命令,為了防止計時寄存器溢出,使用加電時間清零命令將工作時間進行清零。同時使用復位控制命令在交換機出現異常時控制交換機進行復位,該復位不清除累計加電時間。
3 測試方法設計及驗證
3.1 測試方法設計
基于標準測試設備的測試能完整的捕獲、解析并顯示CAN數據包中的信息,在前期驗證中可以方便的定位故障,其缺點在于需要手動輸入測試命令。
為了使交換機在等效的真實環(huán)境中完成CAN總線傳輸的測試,將測試部件設計成一個總線節(jié)點,模擬總線上除待測節(jié)點外的其他節(jié)點,成為模擬器或等效器,和待測節(jié)點通信,并把接收的數據上傳處理,實現測試功能。[6]
使用帶嵌入PPC440處理器的可編程器件FPGA實現模擬CAN命令發(fā)送和解析的測試節(jié)點,測試節(jié)點的實現框圖見圖2。由FPGA通過邏輯實現CAN協議的處理和CAN數據的收發(fā),由PPC440處理器通過測試程序控制CAN命令的收發(fā)和測試結果的顯示。這樣既能完成CAN命令解析,又能自動發(fā)送命令進行全部CAN功能測試。
為了使設計的自動化測試方法同時滿足功能測試和數據分析的要求,測試節(jié)點上運行的測試程序需要根據CAN功能測試的結果自動進行選擇。測試程序首先判斷是否執(zhí)行數據分析,如果是,執(zhí)行分支A,則循環(huán)將獲取的狀態(tài)信息進行顯示。否則執(zhí)行分支B,開始測試各種功能,如果測試正確則循環(huán)執(zhí)行功能測試,如果測試錯誤則執(zhí)行數據分析。測試程序流程圖如圖3所示。
版本數據顯示:使用版本查詢命令獲取交換機的軟件和邏輯版本,將讀取到的數據直接打印出來;
工作狀態(tài)數據顯示:使用狀態(tài)查詢命令獲取實時溫度和關鍵電壓,將讀取到的數據直接打印出來;
加電時間數據顯示:使用加電時間查詢命令獲取單次加電時間和累計加電時間,將讀取到的數據直接打印出來;
復位功能測試:使用復位控制命令可以清除單次加電時間。在計時一段時間后使用加電時間查詢讀取單次加電時間,然后發(fā)送發(fā)送復位控制命令,隨后再次發(fā)送加電時間查詢命令。第二次讀出的單次加電時間值應該比第一次的時間值小,根據對比的結果判斷復位功能是否正確;
工作狀態(tài)獲取功能測試:使用狀態(tài)查詢命令獲取實時溫度和關鍵電壓。對比實時溫度是否在允許的工作范圍內且隨著時間逐漸增大,對比關鍵電壓是否在預期電壓的允許范圍內,根據對比的結果判斷工作狀態(tài)獲取功能是否正確;
版本獲取功能測試:使用版本查詢命令獲取交換機的軟件和邏輯版本,對比讀取到的版本是否與最新的軟件和邏輯版本一致,根據對比的結果判斷版本獲取功能是否正確;
加電時間功能測試:使用加電時間查詢命令獲取單次加電時間和累計加電時間,在計時一段時間后再次使用加電時間查詢命令獲取時間值,第二次讀出的加電時間值應該比第一次的時間值大。隨后發(fā)送加電時間清零命令,然后使用加電時間查詢命令獲取時間值,第三次讀出的加電時間值應該比第二次的時間值小。根據對比的結果判斷加電時間功能是否正確。
3.2 驗證
搭建測試環(huán)境對設計的測試方法進行驗證,測試環(huán)境見圖4。直流電源分別給交換機和CAN測試節(jié)點供電,交換機和CAN測試節(jié)點間通過CAN電纜進行通信,按照圖3的測試流程圖執(zhí)行測試程序,測試的結果通過串口線送給PC機進行顯示。
通過測試可以看出,該測試方法可以完成功能測試和數據分析的要求。
4 總結
本文設計的自動化測試方法在測試功能正確性的基礎上,自動對測試的結果進行解析、比對和顯示。測試結果表明該方法適用于航空交換機CAN總線節(jié)點的測試,為同類應用提供了一個值得借鑒的解決方案。
參考文獻:
[1] 羅海榮,羅慶,陳曉晨. AFDX交換機測試分析系統設計[J].飛機設計,2014,34(3):59-62.
[2] 黃勇. CAN總線在航天領域的應用[J].電訊技術,2005(5):172-174.
[3] 徐榕,何首文,朱昌明. CAN總線網絡測試研究[J]. 微型機與應用,2010,29(22):55-57.
[4] 馮源,向桂林,李軍. 基于C8051的冗余CAN總線智能節(jié)點設計[J]. 航空計算技術,2008,38(5):107-111.
[5] 王邦繼,劉慶想,李相強. CAN總線應用層協議的研究與實現[J]. 計算機工程與應用,2011,47(20).
[6] 王海瑞,翟成瑞,王紅亮. 基于FPGA的CAN總線通信事務的現場測試系統設計[J]. 科學技術與工程,2013, 13 (30):9078-9082.
[7] 程躍,康勁松,徐國卿. 一種車用CAN總線網絡測試系統的研究[J]. 電氣應用,2008,27(1):83-86.