吳第旻,劉千壽,李 俊,朱云博
(武漢軍械士官學校, 武漢 430075)
基于ARM的某型火箭炮角限位器模擬系統(tǒng)設(shè)計
吳第旻,劉千壽,李 俊,朱云博
(武漢軍械士官學校, 武漢 430075)
為減少裝備損耗,展現(xiàn)某型火箭炮角限位器工作過程和常見故障,設(shè)計了基于ARM的角限位器模擬訓練系統(tǒng);以TX2440A開發(fā)板為基礎(chǔ),設(shè)計了高低角限位器模擬裝置、方向角限位器模擬裝置和輸入輸出控制顯示電路;采用Linux C++多線程編程技術(shù)和QT技術(shù),設(shè)計了硬件驅(qū)動程序,驅(qū)動調(diào)用程序和軟件操作界面,實現(xiàn)了兩種角限位器工作過程和常見故障的模擬;實驗結(jié)果表明,該系統(tǒng)能準確、實時地反映角限位器的工作狀態(tài)和故障現(xiàn)象,為教學訓練提供了可靠的平臺。
ARM;QT;多線程編程;模擬訓練;故障設(shè)置
某型火箭炮武器系統(tǒng)自動化程度高、快速反應能力強、射程遠、精度高、火力猛,擔負著遠程精確打擊的重任。該炮能夠?qū)崿F(xiàn)自動、半自動和手動等多種方式調(diào)炮瞄準。其中,在自動和半自動調(diào)炮過程中,火力系統(tǒng)采用角限位器在某些極限位置進行安全限位,并在一些特殊位置使操瞄傳動系統(tǒng)完成一些特殊功能(如減速、定位等)。
角限位器分為高低角限位器和方向角限位器,分別用于對高低和方向進行限位、指示。理解角限位器的工作原理及其在整個火箭炮火力系統(tǒng)中的作用,了解常見的故障現(xiàn)象并進行故障分析與排除,是軍械士官必須掌握的專業(yè)技能之一。
ARM處理器以其體積小、成本低、性能高、兼容性好等優(yōu)點在工業(yè)控制[1-2]、無線通訊[3]、成像和安全產(chǎn)品[4]、網(wǎng)絡(luò)應用[5]、消費類電子產(chǎn)品[6]等多個領(lǐng)域得到廣泛應用。QT是一個標準的C++框架,被用于高性能的跨平臺軟件開發(fā)[7]。線程是進程內(nèi)部的一個執(zhí)行單元,是CPU調(diào)度和分配的基本單位。應用多線程可最大限度地利用計算機資源,提高工作效率[8]。
由于某型火箭炮造價高昂,因此部隊和院校配備的裝備數(shù)量都非常有限。在平時訓練過程中,存在著裝備少、訓練不好開展的問題。為減少裝備損耗,提高教學效果,直觀地展現(xiàn)角限位器的工作過程,方便介紹其工作原理,并能設(shè)置常見故障,以供故障分析排除,本文擬設(shè)計一種基于ARM9控制器的模擬訓練系統(tǒng),并采用QT4和Linux C++多線程編程技術(shù)來進行程序設(shè)計。
1.1 高低角限位器模擬裝置
高低角限位器模擬裝置由機械部分與導電部分組成。機械部分由傳動軸、鎖緊螺釘、主動輪、從動輪、傳動帶等組成。導電部分由導電盤、滑動架等組成。主動輪裝配在傳動軸上,滑動架裝配在從動輪上。主、從動輪通過傳動帶進行傳動。松開鎖緊螺釘后,可調(diào)整傳動軸,動力通過主動輪、從動輪,帶動滑動架在導電盤上運動,接觸不同的銅箔,輸出不同的位置信號。高低角限位器導電盤上共有四塊銅箔(即圖1(a)中導電盤上四段圓弧,其中1、2、3都是短圓弧,4是長圓弧),分別對應輸出插座的1、2、4、5號端子,3號端子接地。
1.2 方向角限位器模擬裝置
方向角限位器模擬裝置也是由機械部分與導電部分組成。機械部分由傳動齒輪、鎖緊螺釘、主動輪、從動輪、傳動帶等組成。導電部分由導電盤、滑動架等組成。主動輪與傳動齒輪共軸,滑動架裝配在從動輪上。主、從動輪通過傳動帶進行傳動。松開鎖緊螺釘后,可調(diào)整傳動齒輪,動力通過主動輪、從動輪,帶動滑動架在導電盤上運動,接觸不同的銅箔,輸出不同的位置信號。方向角限位器導電盤上共有五塊銅箔(即圖1(b)中導電盤上五段圓弧,其中2、3、4為短圓弧,1、5為長圓弧),分別對應輸出插座的1、2、3、5、6號端子,4號端子接地。
圖1 高低角和方向角限位器模擬裝置
1.3 輸入輸出控制與顯示電路
以郭天祥團隊的TX2440A開發(fā)板為基礎(chǔ),采用S3C2440A作為主控制器,7寸液晶顯示屏作為控制平臺,6個LED指示燈作為輸出。指示燈排列順序與角限位器輸出接口一致。從高低角限位器模擬裝置和方向角限位器模擬裝置引出的信號線,分別與TX2440A開發(fā)板的GPIO端口GPF0-3和GPG0-3、6相連。輸出指示燈與GPF4-7以及GPB0、1相連。開發(fā)板與模擬裝置共地。
圖2 控制界面和輸出指示
角限位器模擬訓練系統(tǒng)的工作過程如下:轉(zhuǎn)動角限位器下方傳動軸,滑動架在導電盤上運動,接觸到不同銅箔時,將接通信號傳遞給ARM控制器,ARM控制器根據(jù)輸入信號,控制輸出指示燈點亮和熄滅。該過程與裝備上角限位器的工作過程類似,指示燈點亮表示角限位器相應輸出管腳接地?;鹂叵到y(tǒng)接收到電信號后,隨即根據(jù)該信號控制火力系統(tǒng)動作。
2.1 硬件驅(qū)動程序
硬件驅(qū)動程序采用C語言進行設(shè)計,它加載在Linux內(nèi)核中,用于直接操作硬件,主要功能是根據(jù)兩種角限位器的輸出信號來控制輸出指示燈的亮滅。此外,程序還能響應自檢、故障設(shè)置等指令。
首先將所有管腳設(shè)置為輸出模式,然后初始化各輸入管腳。然后再編寫不同指令的響應程序。主要的指令有:點亮任意一盞燈,熄滅任意一盞燈,點亮所有燈,熄滅所有燈,依次打開、熄滅所有燈,模擬高低角限位器,模擬方向角限位器,設(shè)置高低角限位器任意一根電線脫焊,設(shè)置高低角限位器任意一塊銅箔損壞,設(shè)置高低角限位器滑架松動,設(shè)置方向角限位器任意一根電線脫焊,設(shè)置方向角限位器任意一塊銅箔損壞,設(shè)置方向角限位器滑架松動。
電線脫焊與銅箔損壞的區(qū)別是,電線直接與指示燈一一對應,而銅箔比指示燈少,不是一一對應的?;芩蓜觿t滑架與銅箔不能可靠接觸,銅箔無法接地。
在模擬角限位器工作和設(shè)置角限位器故障時,需要讀取各輸入管腳的值,故先將需要讀取的管腳設(shè)置為輸入模式,再讀取該管腳的值,然后判斷其值,最后根據(jù)判斷的結(jié)果寫各輸出管腳,點亮相應的指示燈。在設(shè)置故障時,忽略模擬故障信號的管腳的輸入,直接將相應的輸出管腳置零。
圖3給出了模擬高低角限位器子程序的流程。由于高低角限位器只有5個輸出管腳信號有效,故模擬它時只需要5個指示燈,所以首先要關(guān)閉6號燈。接下來打開表示地線的3號燈。其他各燈需根據(jù)讀入的相應管腳值進行設(shè)置。
圖3 模擬高低角限位器程序流程圖
在圖3中,為了簡化代碼,采用了循環(huán)控制,將1、2號燈和4、5號燈分開進行處理。過程如下:首先設(shè)置與該指示燈對應的管腳(也就是與導電盤對應銅箔相連的管腳)為輸入模式;然后讀取該管腳值到整數(shù)變量J;再判斷J是否為0,若為0,則認為其接地,否則認為其沒有接地,將J置1;接下來對J取反,并將該信號輸出到該指示燈連接的管腳;然后重復該循環(huán),直至所有指示燈設(shè)置完畢。
模擬方向角限位器子程序與圖3類似。
圖4給出了設(shè)置方向角限位器某根電線脫焊程序的流程。方向角限位器4號端子接地,不依賴對應管腳的輸入值,因此單獨處理。如果它就是故障燈(對應的電線脫焊),直接關(guān)閉該燈;如果不是,則打開該燈。對其他指示燈,如果它就是故障燈(對應的電線脫焊),那么直接關(guān)閉該燈;如果不是,則根據(jù)對應管腳的輸入進行設(shè)置。
圖4 設(shè)置方向角限位器電線脫焊故障程序流程圖
在圖4中,為了簡化代碼,采用了循環(huán)控制,將1、2、3號燈,4號燈和5、6號燈分開進行處理。過程如下:首先設(shè)置與該指示燈對應的管腳(也就是與導電盤對應銅箔相連的管腳)為輸入模式;然后讀取該管腳值到整數(shù)變量J;再判斷J是否為0,若為0,則認為其接地,否則認為其沒有接地,將J置1;接下來再判斷該燈是否為故障燈,如果是,直接關(guān)閉該指示燈,否則對J取反,并將該信號輸出到該指示燈連接的管腳;然后重復該循環(huán),直至所有指示燈設(shè)置完畢。
其它故障設(shè)置的程序流程與圖4類似。
2.2 驅(qū)動調(diào)用程序
驅(qū)動調(diào)用程序的功能是根據(jù)用戶的操作,選擇合適的參數(shù)調(diào)用硬件驅(qū)動程序。操作指令的編碼,故障燈號的設(shè)置都在此程序中進行??紤]到故障具有隨機性,為使故障模擬更真實,模擬訓練系統(tǒng)的故障位置對用戶來說是不可預知的。
程序的主要流程如下:首先打開驅(qū)動文件,然后根據(jù)指令調(diào)用硬件驅(qū)動程序。為了讓程序?qū)崟r響應傳動軸(或滑動架)的轉(zhuǎn)動,除全開、全關(guān)、模擬高低角限位器滑架松動和模擬方向角限位器滑架松動外,其他指令都設(shè)置while循環(huán),循環(huán)控制標志可通過界面操作程序進行設(shè)置。設(shè)置角限位器故障時,需隨機生成故障信號的編號,然后傳遞給驅(qū)動程序。為防止驅(qū)動調(diào)用程序獨占系統(tǒng)資源,每次響應驅(qū)動程序后,驅(qū)動調(diào)用程序休眠0.5 ms,等待界面操作程序指令。指令執(zhí)行完畢,關(guān)閉驅(qū)動文件,退出線程。
2.3 軟件操作界面
軟件界面采用QT技術(shù),方便在計算機上編程,編譯,然后在開發(fā)板上的嵌入式系統(tǒng)中運行。程序運行界面如圖5所示。系統(tǒng)能實現(xiàn)自檢、工作模擬和故障模擬3種功能。其中,(1)自檢中的“跑馬燈”是指指示燈依次點亮、熄滅,可用于確定指示燈序號;(2)工作模擬和故障模擬又分高低角限位器和方向角限位器兩種情況。
程序采用信號槽機制,每個單選按鈕都能響應鼠標左鍵。當某個按鈕被選中時,先設(shè)置驅(qū)動調(diào)用程序循環(huán)控制停止標志,然后等待5 ms,等驅(qū)動調(diào)用程序運行完畢后,再設(shè)置循環(huán)控制啟動標志以及指令標志,啟動新線程,執(zhí)行驅(qū)動調(diào)用程序。
圖5 軟件操作界面
3.1 場景設(shè)置
1)高低角限位器模擬裝置設(shè)置:如圖6(a)所示,高低角限位器滑架與1、3號銅箔接觸。1號銅箔與1號燈對應,3號銅箔與4號燈對應,3號燈接地。輸出指示燈點亮表示高低角限位器輸出插座相應管腳接通車體地。因此,正常情況下,應該是1、3、4號燈點亮。當某根電線脫焊時,對應的燈無法點亮。同理,當某個銅箔損壞時,對應的燈無法點亮。而當滑架松動時,除接地燈外,其他燈由于不接地,都無法點亮。
2)方向角限位器模擬裝置設(shè)置:如圖6(b)所示,方向角限位器滑架與2、5號銅箔接觸。2號銅箔與2號燈對應,5號銅箔與6號燈對應,4號燈接地。輸出指示燈點亮表示方向角限位器輸出插座相應管腳接通車體地。因此,正常情況下,應該是2、4、6號燈點亮。當某根電線脫焊時,對應的燈無法點亮。同理,當某個銅箔損壞時,對應的燈無法點亮。而當滑架松動時,除接地燈外,其他燈由于不接地,都無法點亮。
圖6 高低和方向角限位器模擬裝置導電盤狀態(tài)
3.2 模擬高低角限位器
1)正常情況:選中圖5中第2個選項卡中的“模擬高低角限位器”,結(jié)果如圖7(a)所示。此時1、3、4號燈亮,表示1號和4號端子接地,也就是滑動架搭在1號和3號銅箔上,與圖6(a)吻合。
2)電線脫焊:選中圖5中第3個選項卡中的“電線脫焊”,結(jié)果如圖7(b)所示。此時1、4號燈亮,3號燈不亮,通過與3.2.1進行對比,可以推斷地線脫焊。
3)銅箔損壞:選中圖5中第3個選項卡中的“銅箔損壞”,結(jié)果如圖7(c)所示。此時1、3號燈亮,4號燈不亮,通過與3.2.1進行對比,可以推斷3號銅箔損壞。
4)滑架松動:選中圖5中第3個選項卡中的“滑架松動”,結(jié)果如圖7(d)所示。此時除3號燈點亮外,其他指示燈不亮,表明1號和3號銅箔都沒有接地,這是滑架松動的故障現(xiàn)象。此時如果轉(zhuǎn)動滑架,仍然只有3號燈亮。
圖7 模擬高低角限位器時,不同情況下指示燈狀態(tài)
3.3 模擬方向角限位器
1)正常情況:選中圖5中第2個選項卡中的“模擬方向角限位器”,結(jié)果如圖8(a)所示。此時2、4、6號燈亮,表示2號和6號端子接地,也就是滑動架搭在2號和5號銅箔上,與圖6(b)吻合。
2)電線脫焊:選中圖5中第4個選項卡中的“電線脫焊”,結(jié)果如圖8(b)所示。此時4、6號燈亮,2號燈不亮,通過與3.3.1對比,可以推斷連接2號端子的電線脫焊。
3)銅箔損壞:選中圖5中第4個選項卡中的“銅箔損壞”,結(jié)果如圖8(c)所示。此時2、4號燈亮,6號燈不亮,通過與3.3.1進行對比,可以推斷5號銅箔損壞。
4)滑架松動:選中圖5中第4個選項卡中的“滑架松動”,結(jié)果如圖8(d)所示。此時除4號燈點亮外,其他指示燈不亮,表明2號和5號銅箔都沒有接地。這是由于滑架松動,無法可靠接觸銅箔造成的。此時如果轉(zhuǎn)動滑架,仍然只有4號燈亮。
圖8 模擬方向角限位器時,不同情況下指示燈狀態(tài)
本文設(shè)計了一種基于ARM的某型火箭炮模擬訓練系統(tǒng),給出了硬件和軟件的設(shè)計思路。該系統(tǒng)采用了QT和Linux多線程編程技術(shù),實現(xiàn)了對高低和方向兩種角限位器的模擬。結(jié)果表明,該系統(tǒng)不僅能模擬兩種角限位器正常工作情況,還能模擬它們的常見故障狀態(tài)。模擬角限位器工作過程有助于分析它的工作原理,提高教學效果。模擬故障現(xiàn)象,對分析故障原因和排除故障都有重要的指導意義。
[1] 張 姝,王 濱,鞠洪濤,等. 基于ARM9和CAN總線的TIG焊機器人示教盒設(shè)計 [J]. 電焊機,2012,42 (6):102-104.
[2] 閆廣續(xù),袁縱橫,周小林,等. 基于ARM嵌入式Linux的數(shù)據(jù)采集系統(tǒng)設(shè)計 [J]. 計算機測量與控制,2015,23 (5):1724-1727.
[3] 曾明如,羅 浩,徐小勇,等. 基于ARM和nRF905組網(wǎng)的智能家居系統(tǒng)設(shè)計 [J]. 計算機測量與控制,2015,23 (4):1418-1420.
[4] 王文特. 基于FPGA和ARM的分布式光纖振動傳感系統(tǒng)信號處理模塊的研制 [D]. 南京:東南大學,2015.
[5] 茍志堅. 基于ARM的遠程視頻監(jiān)控系統(tǒng)的研究與設(shè)計 [D]. 長沙:湖南大學,2014.
[6] 趙亞齊. 基于ARM的嵌入式網(wǎng)絡(luò)收音機的設(shè)計 [D]. 鄭州:鄭州大學,2013.
[7] 王 浩,陳邦瓊. 嵌入式Qt開發(fā)項目教程 [M]. 北京:中國水利水電出版社,2014.
[8] 陳冠軍. 零點起飛學Linux C編程 [M]. 北京:清華大學出版社,2013.
Design of Some Rocket Launcher Angle Retainer Simulator Based on ARM
Wu Dimin, Liu Qianshou, Li Jun, Zhu Yunbo
(Wuhan Mechanical Technology College, Wuhan 430075, China)
An angle retainer training simulator of some rocket launcher is designed based on ARM to reduce equipment depreciation, and to display operating principle and common fault. The TX2440A development board is adopted to design simulators of altitude and direction angle retainer, as well as an I/O control and display circuit. Moreover, the Linux C++ multithread programming technology and the QT technology are utilized to develop hardware driver, driver caller, and operation interface. Consequently, operating principle and common fault simulation of both angle retainers are realized. Experiments show that both the work state and the fault phenomenon of those angle retainers can be revealed precisely in real time, providing a reliable platform for teaching and training.
ARM; QT; multithread programming; training simulation; failure setting
2017-01-13;
2017-02-21。
吳第旻(1982-),湖南華容人,博士,講師,主要從事某型火箭炮武器系統(tǒng)教學方向的研究。
1671-4598(2017)07-0140-03
10.16526/j.cnki.11-4762/tp.2017.07.035
TP23
A