王圣旭等
摘 要: 為了解決信號在遠(yuǎn)距離傳輸過程中容易受到干擾的問題,在此提出一種基于CAN總線的某型火箭炮隨動系統(tǒng)故障檢測裝置的設(shè)計(jì)方案,重點(diǎn)講述了CAN總線通信模塊及與之相關(guān)的數(shù)據(jù)采集模塊的軟硬件設(shè)計(jì)。通過對隨動系統(tǒng)液壓、氣壓、電壓等工況參數(shù)的測量及故障診斷專家系統(tǒng)的推理,該裝置可實(shí)現(xiàn)以自動故障診斷為主、人工診斷為輔的故障檢測。整個系統(tǒng)簡潔緊湊、具有較強(qiáng)的抗干擾能力和實(shí)時性。這種CAN總線通信方案不但可用于隨動系統(tǒng)故障檢測裝置的研發(fā),還可推廣至其他模擬量信號的機(jī)電設(shè)備故障檢測,尤其是多機(jī)組的分布式狀態(tài)監(jiān)測與故障診斷中,具有非常實(shí)用的應(yīng)用前景。
關(guān)鍵詞: CAN總線; 隨動系統(tǒng); 故障檢測; 數(shù)據(jù)采集
中圖分類號: TN919?34; TP274.2 文獻(xiàn)標(biāo)識碼: A 文章編號: 1004?373X(2015)08?0128?04
Design of CAN bus based fault detection device for a certain servo system
WANG Sheng?xu, YOU Fan, CHEN Min, WANG Qiang, MENG Xiang?ming
(Unit 63981 of PLA, Wuhan, 430311, China)
Abstract: In order to solve the problem that signal is easily disturbed during its long distance transmission, in this paper, a design scheme of the CAN bus based fault detection device is proposed for a certain type of rocket launcher servo system. The CAN bus module and the related data acquisition modules software and hardware design. Through the measurement of the condition parameters such as hydraulic, air pressure and voltage of servo system, and the reasoning by the fault diagnosis expert system, this device can realize the fault detection which is completed by automatic diagnosis primarily, and if necessary supported by the artificial diagnosis. With strong ability of anti?interference and real?time, the CAN bus based communication scheme not only can be applied to the research and development, but also can be extended to the fault detection for other analog signal electromechanical equipments, especially to the multiunit distributed state monitoring and fault diagnosis.
Keywords: CAN bus; servo system; fault detection; data acquisition
某型火箭炮隨動系統(tǒng)的主要功能是根據(jù)火控系統(tǒng)輸出的射擊諸元將定向器調(diào)整到位,是實(shí)現(xiàn)火箭炮自動操瞄的關(guān)鍵部分,關(guān)乎武器系統(tǒng)能否發(fā)揮到最大威力,因此有必要研制一款故障檢測裝置,以實(shí)現(xiàn)對隨動系統(tǒng)各部件的快速故障檢測。在隨動系統(tǒng)的實(shí)際故障檢測中,隨動系統(tǒng)結(jié)構(gòu)復(fù)雜,需要采集的信號路數(shù)較多,且檢測裝置可能距離火箭炮發(fā)射車較遠(yuǎn),信號在遠(yuǎn)距離傳輸過程中容易受到各種各樣的干擾,而CAN總線是一種實(shí)時控制的串行通信網(wǎng)絡(luò),具有可靠性高、傳輸速度快、受干擾概率低、實(shí)時性強(qiáng)等特點(diǎn)[1?2],基于這些原因本文提出了基于CAN總線的某型火箭炮隨動系統(tǒng)故障檢測裝置的設(shè)計(jì)思想。
1 總體設(shè)計(jì)方案
本設(shè)計(jì)采用CAN總線作為數(shù)據(jù)采集與系統(tǒng)控制的通信方式,以ATMEL公司生產(chǎn)的AT91SAM9263 ARM芯片為主控單元,結(jié)合A/D轉(zhuǎn)換技術(shù)、故障診斷專家系統(tǒng)實(shí)現(xiàn)某型火箭炮隨動系統(tǒng)的故障檢測。總體設(shè)計(jì)框圖如圖1所示。
數(shù)據(jù)采集單元由信號調(diào)理模塊和A/D轉(zhuǎn)換模塊組成,其中信號調(diào)理模塊用于模擬信號的放大、濾波和提高電路負(fù)載能力,A/D轉(zhuǎn)換器完成模擬信號向數(shù)字信號的轉(zhuǎn)換,ARM主控單元實(shí)現(xiàn)系統(tǒng)控制與故障診斷,數(shù)據(jù)采集單元與ARM系統(tǒng)控制與故障診斷模塊之間以CAN 總線的方式進(jìn)行通信,工作人員通過操作觸摸屏顯示界面完成故障檢測。
2 系統(tǒng)硬件設(shè)計(jì)
2.1 數(shù)據(jù)采集單元
數(shù)據(jù)采集單元由信號調(diào)理電路和A/D轉(zhuǎn)換模塊組成,用于采集某型號火箭炮隨動系統(tǒng)液壓泵、高平機(jī)等被測部件的液壓或氣壓的狀態(tài)信號,其結(jié)構(gòu)圖如圖2所示。
信號調(diào)理電路如圖3所示,采用OP27運(yùn)算放大器進(jìn)行設(shè)計(jì),它的作用是把傳感器輸入的信號進(jìn)行放大,同時利用其輸入阻抗高、輸出阻抗小的特點(diǎn)以滿足A/D轉(zhuǎn)換芯片對驅(qū)動源阻抗的要求。
A/D轉(zhuǎn)換電路將經(jīng)過信號調(diào)理模塊調(diào)理后的模擬信號轉(zhuǎn)換為數(shù)字信號,文中選用TLC2543CN和STC89C52分別作為A/D采樣芯片和微控制器[3],其設(shè)計(jì)如圖4所示。TLC2543CN是TI公司生產(chǎn)的12位串行模/數(shù)轉(zhuǎn)換器,使用電容開關(guān)逐次逼近技術(shù),12位分辨率,10 μs的轉(zhuǎn)換時間,11路模擬輸入,輸出數(shù)據(jù)長度可通過編程調(diào)整[4]。A/D轉(zhuǎn)換模塊與51單片機(jī)之間以I2C總線的方式進(jìn)行通信,只需要一條串行數(shù)據(jù)線SDA(DATA_OUT)和一條串行時鐘線SCL(CLOCK),具有接口線少,控制方式簡單,器件封裝形式小,通信速率較高等優(yōu)點(diǎn)。
經(jīng)信號調(diào)理后的11路模擬量數(shù)據(jù)分別通過端口NO0?NO10進(jìn)入TLC2543CN進(jìn)行A/D轉(zhuǎn)換,TLC2543CN通過[CS],DATA_INPUT,DATA_OUT,MEOC,I/O CLOCK這5個引腳與STC89C52單片機(jī)進(jìn)行通信。為了減小外界環(huán)境及器件本身引入的噪聲和擾動,提高系統(tǒng)的穩(wěn)定性,在這5個信號與單片機(jī)之間進(jìn)行光電耦合隔離處理。由于光信號的傳送不需要共地,所以可將光耦器件兩側(cè)的地加以隔離,達(dá)到提高系統(tǒng)信噪比的作用,光耦隔離器件選用Avago Technologies 生產(chǎn)的6N137,電路如圖5所示。需要注意的是,電路板中6N137兩端的電源不能共用,否則起不到隔離的作用。
2.2 CAN總線通信模塊
數(shù)據(jù)采集單元和ARM系統(tǒng)控制與故障診斷模塊之間以CAN總線的方式進(jìn)行數(shù)據(jù)通信和控制。CAN總線具有可靠性高、實(shí)時性強(qiáng)、較強(qiáng)的抗電磁干擾能力、傳輸距離遠(yuǎn)等特點(diǎn),尤其適用于隨動系統(tǒng)傳感器多、各檢測點(diǎn)信息交換頻繁和干擾源復(fù)雜的情況。CAN總線通信模塊的實(shí)現(xiàn)有2種解決方案[5]:一類是采用帶有片上CAN的微處理器,如Philips的80C591/592/598、Atmel的AT90CAN128/64/32等;另一類是采用獨(dú)立的CAN控制器,如Philips的SJA1000??紤]到應(yīng)用的靈活性,本文采用獨(dú)立的CAN控制器SJA1000。CAN總線通信模塊結(jié)構(gòu)框圖如圖6所示,選用STC89C52單片機(jī)作為CAN總線通信模塊的微控制器,CAN總線控制器和收發(fā)器分別選用Philips公司生產(chǎn)的SJA1000和PCA82C250[6]。CAN總線規(guī)范采用三層結(jié)構(gòu)模型,STC89C52單片機(jī)用以實(shí)現(xiàn)應(yīng)用層的功能,SJA1000和PCA82C250則分別對應(yīng)于數(shù)據(jù)鏈路層和物理層。為了增強(qiáng)CAN總線通信模塊的抗干擾能力,在CAN控制器與CAN收發(fā)器之間進(jìn)行光電耦合隔離處理,與數(shù)據(jù)采集單元一樣,本文也選用6N137進(jìn)行處理。
CAN總線通信模塊接口電路主要由4部分組成:微控制器STC89C52、獨(dú)立CAN控制器SJA1000、光電隔離器件6N137和CAN總線收發(fā)器PCA82C250。微控制器STC89C52用于數(shù)據(jù)處理、實(shí)現(xiàn)對SJA1000的初始化、通過對SJA1000的控制實(shí)現(xiàn)數(shù)據(jù)接收和發(fā)送等通信任務(wù);獨(dú)立CAN控制器SJA1000和收發(fā)器PCA82C250經(jīng)過簡單總線連接可實(shí)現(xiàn)數(shù)據(jù)鏈路層和物理層的全部功能。STC89C52通過DATA_INPUT向TLC2543CN發(fā)送一定格式的指令,在DATA_OUT引腳可獲取到A/D轉(zhuǎn)換的數(shù)據(jù);由于SJA1000的數(shù)據(jù)線與地址線是共用的,所以將STC89C52的P0口與AD0?AD7直接連接的同時,還要將地址鎖存信號線ALE進(jìn)行連接,以便區(qū)分在同一時刻AD線上傳遞的是地址還是數(shù)據(jù);SJA1000的中斷管腳INT連接單片機(jī)的外部中斷INT0;MODE管腳與高電平VCC連接以選擇Intel模式;為了保證上電復(fù)位的可靠,復(fù)位電路采用IMP708芯片進(jìn)行智能控制,IMP708芯片集看門狗定時器、掉電檢測電路、電源監(jiān)控電路等于一體,保證SJA1000芯片的可靠運(yùn)行;RX0和TX0是數(shù)據(jù)的收發(fā)管腳,經(jīng)光電耦合器件6N137后連接到CAN收發(fā)器上,用以電氣隔離;PCA82C250有3種工作模式:高速、斜率控制和待機(jī),本文選擇斜率控制模式,通過在Rs引腳與地之間接一個100 kΩ的電阻來實(shí)現(xiàn);為了消除在通信電纜中的信號反射,提高網(wǎng)絡(luò)節(jié)點(diǎn)的拓?fù)淠芰?,需要在CAN總線兩端接入兩個120 Ω的終端電阻[5]。
2.3 系統(tǒng)控制與故障診斷模塊
數(shù)據(jù)處理與系統(tǒng)控制模塊采用ATMEL公司生產(chǎn)的AT91SAM9263 ARM芯片作為主控單元,以觸摸屏作為人機(jī)交互方式完成系統(tǒng)控制和故障診斷。AT91SAM9263主頻 200 MHz;內(nèi)置CAN總線控制器,全面支持CAN2.0A和CAN2.0B協(xié)議;內(nèi)置TFT/STN LCD控制器,支持3.5~17英寸TFT?LCD 液晶屏,最高分辨率可達(dá)2 048×2 048??紤]到系統(tǒng)的可擴(kuò)展性,本文將系統(tǒng)控制與故障診斷模塊單獨(dú)成板。技術(shù)保障人員可以通過操作觸摸屏上顯示的人機(jī)交互界面完成對隨動系統(tǒng)的故障檢測。
3 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件設(shè)計(jì)主要分為A/D轉(zhuǎn)換模塊、數(shù)據(jù)處理模塊、CAN總線通信模塊和系統(tǒng)控制與故障診斷模塊4部分。主流程圖如圖7所示,首先對STC89C52單片機(jī)進(jìn)行初始化,包括CAN總線工作方式的選擇、驗(yàn)收濾波方式的設(shè)置、驗(yàn)收屏蔽寄存器和驗(yàn)收代碼寄存器的設(shè)置、波特率參數(shù)設(shè)置、中斷允許寄存器的設(shè)置以及A/D轉(zhuǎn)換模塊的初始化等;當(dāng)單片機(jī)接收到故障檢測命令時,進(jìn)行A/D采樣,然后由單片機(jī)對采集到的數(shù)據(jù)進(jìn)行處理,通過量值轉(zhuǎn)換得到實(shí)際的工況數(shù)據(jù);最后由CAN總線通信模塊將數(shù)據(jù)傳輸?shù)较到y(tǒng)控制與故障診斷模塊進(jìn)行故障檢測,診斷結(jié)果由觸摸屏顯示以指導(dǎo)維修人員進(jìn)行現(xiàn)場維修。
3.1 A/D轉(zhuǎn)換模塊軟件設(shè)計(jì)
A/D轉(zhuǎn)換模塊程序設(shè)計(jì)流程圖如圖8所示。
3.2 數(shù)據(jù)處理模塊軟件設(shè)計(jì)
數(shù)據(jù)采集過程中難免受到噪聲的影響,為了保證采到數(shù)據(jù)的準(zhǔn)確性,可以對其進(jìn)行一定的算法處理。本文在故障檢測時,對同一采樣點(diǎn)進(jìn)行5次采樣,然后用快速排序算法對這5個數(shù)據(jù)進(jìn)行排序,取中值作為故障檢測的有效數(shù)據(jù),以減小誤差帶來的影響。采集到的數(shù)據(jù)與實(shí)際值之間成嚴(yán)格的線性關(guān)系,將采集到的數(shù)據(jù)值乘以系數(shù)K即可獲得實(shí)際的工況數(shù)據(jù),其流程圖如圖9所示。
3.3 CAN總線通信模塊軟件設(shè)計(jì)
CAN總線通信模塊的程序設(shè)計(jì)主要分為初始化、數(shù)據(jù)發(fā)送和數(shù)據(jù)接收3個部分:
(1) 初始化。CAN總線初始化主要是對通信參數(shù)進(jìn)行設(shè)置,通過對時鐘分頻寄存器、驗(yàn)收碼寄存器、驗(yàn)收屏蔽寄存器、總線定時寄存器和輸出控制寄存器的配置實(shí)現(xiàn)對CAN總線工作模式、接收報文的驗(yàn)收碼、驗(yàn)收屏蔽碼、波特率和輸出模式的配置和定義[7]。值得注意的是,這些寄存器的配置需要在復(fù)位模式下進(jìn)行,因此在初始化前應(yīng)確保系統(tǒng)已進(jìn)入復(fù)位狀態(tài)。
(2) 數(shù)據(jù)發(fā)送。本文采用查詢方式,進(jìn)行CAN總線的數(shù)據(jù)發(fā)送,首先應(yīng)將CAN總線的發(fā)送中斷禁能。發(fā)送數(shù)據(jù)前,主控制器輪詢SJA1000狀態(tài)寄存器的發(fā)送緩沖器狀態(tài)位TBS以檢查發(fā)送緩沖器是否被鎖定,若發(fā)送緩沖器被鎖定,則CPU等待,直到發(fā)送緩沖器被釋放,然后將從現(xiàn)場采集到的數(shù)據(jù)發(fā)送到發(fā)送緩沖區(qū)并置位命令寄存器的發(fā)送請求位TR,此時SJA1000將向總線發(fā)送數(shù)據(jù)。數(shù)據(jù)發(fā)送流程圖如圖10所示。
(3) 數(shù)據(jù)接收。同數(shù)據(jù)發(fā)送一樣,本文采用查詢方式進(jìn)行數(shù)據(jù)的接收,也應(yīng)將CAN總線的發(fā)送中斷禁能。主控制器輪詢SJA1000狀態(tài)寄存器接收緩沖狀態(tài)標(biāo)志RBS以檢查接收緩沖器是否已滿,若未滿則主控制器繼續(xù)當(dāng)前的任務(wù)直到檢查到接收緩沖器已滿,讀出緩沖區(qū)中的報文,然后通過置位命令寄存器的RRB位釋放接收緩沖器內(nèi)存空間。數(shù)據(jù)接收流程圖如圖11所示。
3.4 系統(tǒng)控制與故障診斷模塊軟件設(shè)計(jì)
系統(tǒng)控制與故障診斷模塊是在Linux平臺下利用Qt SDK開發(fā)完成的,數(shù)據(jù)庫采用嵌入式系統(tǒng)中廣泛采用關(guān)系型數(shù)據(jù)庫SQLite[8]。軟件采用模塊化設(shè)計(jì)思想,包括顯示界面、系統(tǒng)控制、檢測數(shù)據(jù)庫和故障診斷等4部分。系統(tǒng)界面基于QT/GUI開發(fā),用于故障檢測結(jié)果顯示、調(diào)取數(shù)據(jù)庫輔助人工診斷等人機(jī)交互;系統(tǒng)控制模塊用于系統(tǒng)啟動與關(guān)閉、初始化及多線程處理;檢測數(shù)據(jù)庫用于對專家系統(tǒng)中經(jīng)驗(yàn)知識、故障診斷規(guī)則集進(jìn)行組織、檢索和維護(hù),及用于存儲系統(tǒng)采集的工況參數(shù);故障診斷模塊是該檢測裝置核心,本文利用故障診斷專家系統(tǒng)對隨動系統(tǒng)進(jìn)行故障診斷,給出診斷結(jié)果??紤]到故障診斷的實(shí)時性要求,程序采用多線程編程來實(shí)現(xiàn)。
圖10 CAN總線數(shù)據(jù)發(fā)送程序設(shè)計(jì)流程圖
圖11 CAN總線數(shù)據(jù)接收程序設(shè)計(jì)流程圖
4 結(jié) 語
為了測試隨動系統(tǒng)故障檢測裝置在各種情況下的故障檢測能力, 本文通過人為制造故障的方式對該系統(tǒng)進(jìn)行了大量實(shí)驗(yàn)。在反復(fù)的實(shí)驗(yàn)中,該系統(tǒng)均能正確定位故障,充分驗(yàn)證系統(tǒng)的可靠性和穩(wěn)定性。本文研制的以AT91SAM9263 ARM芯片為核心基于CAN總線隨動系統(tǒng)故障檢測裝置,可實(shí)現(xiàn)對隨動系統(tǒng)液壓、氣壓、電壓等工況參數(shù)的測量,經(jīng)故障診斷專家系統(tǒng)的推理,實(shí)現(xiàn)以自動故障診斷為主、人工診斷為輔的故障檢測。文中采用的CAN總線通信方式使整個系統(tǒng)簡潔緊湊、具有較強(qiáng)的抗干擾能力和實(shí)時性,這種CAN總線通信方案不但可用于隨動系統(tǒng)故障檢測裝置的研發(fā),還可推廣至其他模擬量信號的機(jī)電設(shè)備故障檢測,尤其是多機(jī)組的分布式狀態(tài)監(jiān)測與故障診斷中,具有非常實(shí)用的應(yīng)用前景。
參考文獻(xiàn)
[1] CENA Gianluca, VAENZANO Adrianom. FastCAN: a high?performance enhanced CAN?like network [J]. Industrial Electronics, 2000, 47(4) : 951? 963.
[2] 張立云,宋愛國,錢夔,等.基于CAN總線的偵察機(jī)器人控制系統(tǒng)設(shè)計(jì)[J].測控技術(shù),2013,32(1):65?68.
[3] 姚遠(yuǎn),王賽,凌毓?jié)?TLC2543在89C51單片機(jī)數(shù)據(jù)采集系統(tǒng)中的應(yīng)用[J].電子技術(shù)應(yīng)用,2003,29(9):37?38.
[4] Texas Instruments Incorporated. TLC2543CN 12?bit analog?to?digital converters with serial control and 11 analog inputs [DB]. Texas: Texas Instruments Incorporated, 1997.
[5] 李晉華,邱春玲,田地,等.基于CAN總線數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].吉林大學(xué)學(xué)報:信息科學(xué)版,2004,22(2):134?137.
[6] 吳坎,趙薇,李封,等.基于SJA1000和PCA82C250的CAN總線接口設(shè)計(jì)[J].機(jī)械設(shè)計(jì)與制造,2010(7):55?57.
[7] Philips Semiconductors. DATA SHEET SJA1000 stand?alone CAN controller [DB]. Eindhoven, Netherlands: Philips Semiconductors, 2000.
[8] BLANCHETTE Jasmin, SUMMERFIELD Mark. C++ GUI Programming with Qt 4, second edition [M]. New Jersey: Prentice Hall, 2008.