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