陳杰 劉曾歷 馬騰 穆盈奎
摘要:飛機上的電氣線路龐大復雜,而且人工不易檢測,費時費力,基于CAN(controller AreaNetwork,控制器局域網(wǎng))總線的飛機電氣附件靜態(tài)測試相當于CAN總線上的一個節(jié)點,在理論上,在CAN帶負載的能力范圍內(nèi)可以隨意增加被測對象的數(shù)目來滿足飛機上大規(guī)模電氣線路的檢查。整個系統(tǒng)主要由上位機和終端機兩部分組成。上位機由51單片機控制CAN控制器SJA1000和CAN收發(fā)器TJAl050形成的通訊模塊。主控計算機選擇需要測試的導線,并通過串口發(fā)給上位機51單片機,51單片機通過CAN控制器和CAN收發(fā)器將指令轉(zhuǎn)換為CAN信號并發(fā)往CAN總線。終端機由51單片機控制CAN控制器和CAN收發(fā)器接收到對應的控制指令時,51單片機將指令解析出來發(fā)送給測試電路,測試電路選擇相應導線進行測試。
關鍵詞:電氣線路;CAN總線;上位機;終端機
中圖分類號:V242.3 文獻標志碼:A 文章編號:2095-2945(2019)12-0068-03
引言
飛機的電氣線路連接飛機各個部件和系統(tǒng),由于飛機的結(jié)構(gòu)復雜,部件和系統(tǒng)繁多許多電線集中布置在狹窄的機壁里導致電源線高頻線和低頻線混雜在一起電器環(huán)境復雜,容易導致電氣線路短路,斷線,絕緣老化,影響飛行器安全。而如今,飛行器所需檢測的電氣電路端點數(shù)越來越多,航空電氣線路測試設備的自動化勢在必行。相比國外,國內(nèi)仍采用較為落后的檢測方法,難以實現(xiàn)整機電氣線路的檢測,并且測試與排故困難。本項目的目的在于,基于CAN總線的原理,開發(fā)一套分布式控制系統(tǒng),通過軟件控制不同被測對象的導通關系,將飛機電氣附件按要求接入測量系統(tǒng)中,從而實現(xiàn)對整個電氣附件的靜態(tài)性能的測試。
1系統(tǒng)硬件設計方案
硬件系統(tǒng)設計主要包括上位機CAN通訊模塊和終端機的CAN通訊模塊以及終端機測試電路的設計,CAN通訊模塊主要由微控制器、CAN控制器、CAN收發(fā)器組成;終端機測試電路主要由控制芯片和繼電器陣列組成。
微控制器是通訊模塊的大腦,負責控制CAN控制器的初始化、數(shù)據(jù)的接收與發(fā)送。在上位機中微控制器通過串口接收來自計算機的控制指令,把指令處理后發(fā)送給CAN控制器,CAN控制器將數(shù)據(jù)打包成CAN總線協(xié)議規(guī)定的數(shù)據(jù)幀格式后,通過CAN收發(fā)器發(fā)送到CAN總線上。終端機中,微控制器負責接收來自CAN控制器解析后的控制指令,并根據(jù)指令來控制測試電路選擇相應的導線來進行測試。
CAN總線收發(fā)器是將CAN控制器發(fā)送過來的數(shù)字信號轉(zhuǎn)換為符合CAN物理層標準的信號,并進行放大傳輸?shù)娇偩€上,并將CAN總線接收到的信號轉(zhuǎn)換為CAN控制器能處理的數(shù)字信號,發(fā)送給CAN控制器。
CAN控制器的主要作用是處理CAN總線數(shù)據(jù)幀,CAN總線控制器芯片濾波器用來設置自己的CAN地址,節(jié)點會把濾波器的設置和接受到的幀信息的標識碼相比對,對于目的地址,與報文中的相吻合則接受,不吻合則不接收,在上位機中負責接收微控制器的需要發(fā)送的數(shù)據(jù),并將其按照CAN通訊協(xié)議規(guī)定的數(shù)據(jù)幀的格式打包,發(fā)往CAN收發(fā)器進行發(fā)送,在下位機中負責接收并過濾來自CAN收發(fā)器的數(shù)據(jù),并將其解析出來發(fā)送給微處理器。
2系統(tǒng)軟件設計方案
軟件系統(tǒng)主要包括:上位機主程序、下位機主程序、CAN控制器SJA1000的初始化、上位機發(fā)送程序和終端機接收程序的設計等。
2.1上位機主程序
上位機主程序首先進行檢查終端機的微控制器89C52與CAN控制器SJA1000是否連接正確,若正確連接則向單片機發(fā)送一段正確連接的標志字符,之后進行CAN控制器SJA1000的初始化,若初始化成功則發(fā)出SJA1000初始化成功的標志,成功后單片機會一直處于等待狀態(tài),等待期間會一直檢查錯誤SJA1000錯誤計數(shù)器是否溢出,當錯誤計數(shù)器溢出時發(fā)出錯誤警告。其中信息發(fā)送和接收都通過中斷來實現(xiàn)。
2.2 SJA1000初始化
SJAl000初始化主要包括時鐘分頻計數(shù)器的設置,濾波條件及濾波模式的選擇,中斷使能寄存器的設置,SJA1000工作時分為復位模式和工作模式,通過內(nèi)部的模式寄存器設置,SJA1000初始化之前需要將SJA1000設置為復位模式。
2.3發(fā)送程序
發(fā)送程序通過中斷觸發(fā)的方式實現(xiàn),當上位機接收到一條計算機的控制指令時,通過中斷進入發(fā)送程序。上位機與計算機通過串口進行通信,當計算機發(fā)出一條指令后,單片機通過中斷將接收SBUF里的指令信息存入指定的地方,同時執(zhí)行發(fā)送程序。首先查看SJA1000狀態(tài)寄存器中的發(fā)送緩沖器狀態(tài)位,當發(fā)送緩沖狀態(tài)位為1時CPU才能向發(fā)送緩沖寄存器發(fā)送數(shù)據(jù)。發(fā)送緩沖寄存器可訪問時,讀取發(fā)送的數(shù)據(jù)長度,之后向發(fā)送緩沖寄存器里裝載發(fā)送標識符,最后向發(fā)送緩沖寄存器裝載發(fā)送數(shù)據(jù)。裝載在完畢后,需要向SJA1000發(fā)出一個發(fā)送指令,將命令寄存器的發(fā)送請求標志位置1,CAN控制器才開始發(fā)送數(shù)據(jù)。
2.4接收程序
當終端機CAN控制器成功接收到一條報文時,CAN控制器向MCU發(fā)出中斷請求,MCU需要進一步查看SJA1000的中斷寄存器中接收中斷位來判斷是否產(chǎn)生接收中斷,首先讀取接受數(shù)據(jù)的幀信息,再將SJA1000接收緩沖寄存器中的有效的數(shù)據(jù)部分讀入單片機內(nèi)進行的解析。并將解析后的數(shù)據(jù)通過串口發(fā)送給測試電路的51單片機。測試電路的單片機根據(jù)指令選擇對應的繼電器上電閉合。最后在釋放SJA1000的接收緩沖寄存器。程序流程圖如圖5。
3測試結(jié)果與驗證
主控機軟件界面如圖所示。左側(cè)的線纜表是待測線纜的數(shù)據(jù)庫,通過線纜選項的端口選擇相應的導線,每條導線對應著終端機上的一個繼電器,當選擇某一條導線并發(fā)送測試命令時,主控計算機通過串口向上位機的單片機發(fā)送對應的指令。右下角的表格為以檢測的導線編號。部分測試結(jié)果如圖所示,測試結(jié)果顯示的阻值與電阻本身阻值基本一致,說明系統(tǒng)功能可以實現(xiàn)。