基于C8051F340的機(jī)載武器測控系統(tǒng)設(shè)計
摘要:為了實現(xiàn)對某型機(jī)栽武器測控的需求,利用C8051F340單片機(jī)和HS3282芯片設(shè)計了ARINC429總線和計算機(jī)RS-232總線的接口轉(zhuǎn)換電路,通過C語言設(shè)計了單片機(jī)固件程序,實現(xiàn)了串并數(shù)據(jù)的轉(zhuǎn)換與傳輸以及數(shù)據(jù)傳輸速率和字長的設(shè)置。最后利用VB語言編寫了PC端武器測控系統(tǒng)軟件,對串口數(shù)據(jù)進(jìn)行解碼和發(fā)送,實現(xiàn)了對武器系統(tǒng)的實時檢測和控制。實際應(yīng)用表明,該系統(tǒng)具有測試結(jié)果實時準(zhǔn)確、響應(yīng)命令迅速無誤的特點,可滿足外場測試的需求。
本文引用地址:http://2s4d.com/article/201610/308984.htm現(xiàn)代戰(zhàn)機(jī)配備有空空導(dǎo)彈、空地導(dǎo)彈、制導(dǎo)炸彈、航空炮彈等多種武器系統(tǒng),目前飛控系統(tǒng)與機(jī)載武器系統(tǒng)交換數(shù)據(jù)的總線主要有:ARI NC429總線、1553B總線、RS422總線等。ARINC429是專為航空電子系統(tǒng)通訊規(guī)定的航空工業(yè)標(biāo)準(zhǔn);它是航空通訊設(shè)備最常用的數(shù)據(jù)接口之一,不僅應(yīng)用于民用航空領(lǐng)域如空客A310/A320、A330/A340飛機(jī),波音727、737、747、757和767飛機(jī).也廣泛應(yīng)用于機(jī)載武器系統(tǒng),如“鷹擊-81”空艦導(dǎo)彈機(jī)載系統(tǒng)的232H機(jī)載雷達(dá)、ZJ-9指揮儀、210多普勒導(dǎo)航系統(tǒng)、HZX-5航向姿態(tài)系統(tǒng)、8415大氣數(shù)據(jù)系統(tǒng)和622自動飛行控制系統(tǒng)均采用ARINC429總線連接。某型武器同樣采用ARINC429總線與飛控系統(tǒng)進(jìn)行通信,為了利用計算機(jī)模擬飛控系統(tǒng)對該武器進(jìn)行現(xiàn)場監(jiān)測和控制,需要實現(xiàn)計算機(jī)與武器系統(tǒng)的ARINC429接口通信,傳統(tǒng)的方法是在計算機(jī)中擴(kuò)展一個基于ISA或PCI總線的ARINC429卡,這種轉(zhuǎn)換卡往往價格昂貴,不同計算機(jī)采用總線結(jié)構(gòu)不同也會降低ARINC429卡的通用性,轉(zhuǎn)換卡通信方式的配置也較為固定化,不利于自主編程,在沒有配備ARINC429卡的計算機(jī)上就無法實現(xiàn)對武器系統(tǒng)的測控。
為了解決上述問題,使計算機(jī)能夠與武器系統(tǒng)進(jìn)行數(shù)據(jù)交換,文中利用C8051F340作為主控芯片,實現(xiàn)了RS232/ARINC429的接口轉(zhuǎn)換,上位機(jī)對接收到的轉(zhuǎn)換后的串口數(shù)據(jù)進(jìn)行解碼,能實時顯示武器系統(tǒng)狀態(tài),上位機(jī)以串口形式發(fā)送操控命令給下位機(jī),下位機(jī)接收命令后通過HS3282芯片轉(zhuǎn)換為ARINC429格式數(shù)據(jù)發(fā)送給武器系統(tǒng),在獲得武器系統(tǒng)響應(yīng)后將結(jié)果反饋給上位機(jī)。
1 總體設(shè)計
測控系統(tǒng)的結(jié)構(gòu)圖如圖1所示,機(jī)載武器系統(tǒng)采用ARINC429總線,32位字長通信,計算機(jī)采用RS232總線,為了建立武器系統(tǒng)與測控計算機(jī)之間的通信,測控計算機(jī)RS232串行數(shù)據(jù)經(jīng)電平轉(zhuǎn)換芯片轉(zhuǎn)換為TTL電平后與C8051F340單片機(jī)建立異步串口通信,單片機(jī)在接收到4個8位串口數(shù)據(jù)后,通過I/O口將串行數(shù)據(jù)轉(zhuǎn)換為2個16位并行數(shù)據(jù),429轉(zhuǎn)換芯片HS3282內(nèi)部為16位數(shù)據(jù)總線;分兩次讀取單片機(jī)16個I/O口數(shù)據(jù),構(gòu)成32位ARINC429串行數(shù)據(jù)的低16位和高16位,由于HS3282FIFO中可存8個429數(shù)據(jù)字,因此單片機(jī)可連續(xù)接收32個8位串行數(shù)據(jù),轉(zhuǎn)換為16個16位的并行數(shù)據(jù)給HS3282,HS3282將16個16位并行數(shù)據(jù)轉(zhuǎn)換為8個429數(shù)據(jù)字儲存到FIFO中,經(jīng)單片機(jī)控制,一次發(fā)送8個ARINC429串行數(shù)據(jù)作為一個通信幀。反之,HS3282可將32位的429數(shù)據(jù)轉(zhuǎn)換為2個16位并行數(shù)據(jù),單片機(jī)分兩次讀取后,轉(zhuǎn)換為4個8位串行數(shù)據(jù),經(jīng)電平轉(zhuǎn)換后傳輸給計算機(jī)。計算機(jī)端武器測控系統(tǒng)軟件,對串行數(shù)據(jù)進(jìn)行解碼后得到武器系統(tǒng)相應(yīng)的狀態(tài)和反饋信息。
2 系統(tǒng)硬件設(shè)計
系統(tǒng)以C8051F340為控制核心,C8051F340單片機(jī)由美國Silicon Labs公司設(shè)計;指令速度可以高達(dá)48 MIPS,擁有40個I/O口,能夠滿足串并數(shù)據(jù)轉(zhuǎn)換的處理速度和控制引腳的數(shù)量要求。
HS3282芯片是intersil公司生產(chǎn)的CMOS ARINC總線接口電路,滿足ABINC429規(guī)范的要求。供電電壓+5 V,內(nèi)部包含相互獨立工作的2個接收器和1個發(fā)送器。接收端可直接與429總線相連,發(fā)送端配合HS3182電平驅(qū)動芯片轉(zhuǎn)換為429電平。由于篇幅所限,其相關(guān)控制和指示引腳參見相關(guān)手冊。
單片機(jī)與HS-3282的連接關(guān)系如圖2所示。
單片機(jī)與HS-3282均為5 V電壓供電。
由于C8051F410單片機(jī)P4的I/O口不可位尋址,為了便于編程和識別,單片機(jī)P2.0-P2.7引腳分別接HS-3282的BD0-BD7口,P3.0-P3.7引腳接BD8-BD15,用于傳輸和接收16位的并口數(shù)據(jù)。P0口專門連接HS-3282的控制和狀態(tài)指示引腳。C8051F410單片機(jī)異步串行通信口只能配置在P0.4和P0.5口,因此P0.4和P0.5用與串口通信,外接232電平轉(zhuǎn)換芯片。
HS3282除了與單片機(jī)相關(guān)引腳連接外,D429DI1(A)和429DI1(B)口用于連接武器系統(tǒng)的429總線,clk引腳用來外接有源晶振,根據(jù)芯片手冊要求,這里外接1 MHz的有源晶振。
HS3282輸出信號為TTL電平,為了將信號電壓抬升至符合ARINIC429總線要求的標(biāo)準(zhǔn),通過專用的HS3182驅(qū)動芯片與之配合。需外接+15 V和-15 V,本文采用了開關(guān)電源供電,可滿足系統(tǒng)功耗要求。HS3282輸出的429差分信號經(jīng)HS3182驅(qū)動后,通過引腳Aout和Bout與武器系統(tǒng)進(jìn)行429通信。
Ca和Cb根據(jù)429通信速率的高低外接不同的高精度電容。100 kB通信速率時為75 pF,低于14.5 kB通信速率時為300 pF。
單片機(jī)的串口使用TTL電平標(biāo)準(zhǔn),它的邏輯1電平是5 V,邏輯0電平是0 V,而電腦串行口所使用的是RS232C的電平標(biāo)準(zhǔn),它的邏輯1電平是-3~12 V,邏輯0電平是+3~+12 V。兩者的電平范圍相差很遠(yuǎn),連接時需要用到電平轉(zhuǎn)換電路。本文采用商用的MAX3232芯片組成電平轉(zhuǎn)換電路,如圖4所示。
MAX3232外接極性電容值均為0.1μF。MAX3232對兩路TTL電平進(jìn)行轉(zhuǎn)換,本文使用了其中一路。T1IN接單片機(jī)串口發(fā)送,R1OUT接單片機(jī)串口接收引腳。T1OUT接電腦串口接收引腳,R1IN接電腦串口發(fā)送引腳。
3 測控系統(tǒng)軟件設(shè)計
該測控系統(tǒng)的軟件分為單片機(jī)固件程序和上位機(jī)程序2部分。
單片機(jī)固件程序?qū)崿F(xiàn)單片機(jī)和接口芯片寄存器初始化配置、數(shù)據(jù)格式轉(zhuǎn)換、接收和發(fā)送控制等功能。利用到了單片機(jī)的中斷系統(tǒng)、通用I/O口、定時器和串口UART0。固件程序目的在于實現(xiàn)串口數(shù)據(jù)與429數(shù)據(jù)的轉(zhuǎn)換、接收和發(fā)送,從而建立上位機(jī)程序與武器系統(tǒng)之間的通信。
上位機(jī)程序采用VB語言編寫,通過RS-232串口與單片機(jī)通信。可發(fā)送測控命令給武器系統(tǒng),同時能實時反饋武器系統(tǒng)的工作狀態(tài)。
單片機(jī)固件程序,是測控系統(tǒng)軟件設(shè)計的核心。其主要功能是將上位機(jī)命令轉(zhuǎn)換為ARINC429格式數(shù)據(jù),按照一定幀周期發(fā)送給武器系統(tǒng),并能將武器系統(tǒng)反饋數(shù)據(jù)轉(zhuǎn)換為RS232串口數(shù)據(jù)發(fā)送至上位機(jī),從而能夠?qū)崟r監(jiān)測武器系統(tǒng)工作狀態(tài)。
初始配置,用于初始化單片機(jī)和HS3282相關(guān)寄存器,對IO口進(jìn)行配置和定義。
根據(jù)硬件連接關(guān)系,為方便程序操作,對IO口做定義如下。
根據(jù)武器系統(tǒng)通信要求,配置ARINC429通信速率100 kb/s,32位有效數(shù)字,奇校驗,并關(guān)閉自測功能。根據(jù)芯片手冊說明,程序設(shè)計如下
時鐘產(chǎn)生模塊由單片機(jī)定時器實現(xiàn),單片機(jī)定時器配置為50 ms一次中斷,在中斷服務(wù)程序中一次性發(fā)送8個32位的429數(shù)據(jù),構(gòu)成一個數(shù)據(jù)幀,從而實現(xiàn)50 ms的幀速率。
串并轉(zhuǎn)換模塊,對4個8位串口數(shù)據(jù)和32位ARINC429數(shù)據(jù)進(jìn)行轉(zhuǎn)換。單片機(jī)在接收到4個8位串口數(shù)據(jù)后,依次排列,按照從低位到高位的順序,分兩次輸出到16個IO口,HS3282讀取并口數(shù)據(jù)并儲存在FIFO中,組成一個32位的ARINC429數(shù)據(jù)。429總線數(shù)據(jù)的接收采用中斷方式,當(dāng)DR1口為低電平時,觸發(fā)外部中斷服務(wù)程序,程序分兩次對16個IO口進(jìn)行讀取后將數(shù)據(jù)儲存在一個8位數(shù)據(jù)數(shù)組中,當(dāng)數(shù)組元素達(dá)到32個時,完成一次429幀周期的數(shù)據(jù)讀取,此時在外部中斷程序中以查詢發(fā)送的方式,將數(shù)據(jù)發(fā)送至上位機(jī)。
收發(fā)控制模塊對發(fā)送和接收數(shù)據(jù)以及命令數(shù)據(jù)的改變進(jìn)行合理時序安排,單片機(jī)未接收上位機(jī)命令時,以50 ms的幀周期,發(fā)送默認(rèn)查詢命令給武器系統(tǒng),當(dāng)收到1個幀周期的反饋數(shù)據(jù)后,將32位格式的ARINC數(shù)據(jù)分割為4個8位數(shù)據(jù),通過UART0發(fā)送至上位機(jī)。當(dāng)收到上位機(jī)命令時,進(jìn)入串口中斷,對命令數(shù)據(jù)進(jìn)行解析后,改變相應(yīng)的發(fā)送數(shù)據(jù),以50 ms的幀周期發(fā)送操作命令給武器系統(tǒng),得到系統(tǒng)操作反饋信息后通過串口發(fā)送至上位機(jī)。
串口通信模塊,可實時接收武器系統(tǒng)反饋數(shù)據(jù)。機(jī)載武器系統(tǒng)處理的數(shù)據(jù)對象,往往不是以單個數(shù)據(jù)為單位的,而是一組長度固定的數(shù)據(jù),其中每一個數(shù)據(jù)包含著不同的地址信息和數(shù)據(jù)信息。這里我們稱這組數(shù)據(jù)為一個數(shù)據(jù)幀,單片機(jī)在收完一個數(shù)據(jù)幀的數(shù)據(jù)后才將數(shù)據(jù)反饋給上位機(jī);上位機(jī)通過串口發(fā)送相應(yīng)操作命令給單片機(jī),單片機(jī)通過串口接收中斷接受命令,改變發(fā)送的命令數(shù)據(jù),從而對武器系統(tǒng)進(jìn)行相關(guān)操作。
ARINC429標(biāo)準(zhǔn)數(shù)據(jù)與HS3282數(shù)據(jù)對應(yīng)位關(guān)系如圖6所示。
可以看出,ARINC429數(shù)據(jù)標(biāo)號位與正常順序正好相反,要先發(fā)送高位后發(fā)送低位。ARINC429數(shù)據(jù)的高3位要后移至8-10位,發(fā)送和讀取相應(yīng)32位的ARINC數(shù)據(jù)時,要對相應(yīng)位的數(shù)據(jù)進(jìn)行移位和反轉(zhuǎn)操作。
單片機(jī)固件程序流程圖如圖7所示。
上位機(jī)程序,采用VB語言編寫了人機(jī)交互界面,如圖8所示。利用MSComm控件,建立PC機(jī)與單片機(jī)之間的串口通信。
發(fā)送命令時,上位機(jī)通過串口一次性發(fā)送32個8位數(shù)據(jù)給單片機(jī),單片機(jī)將數(shù)據(jù)組合為8個32位的ARINC429數(shù)據(jù),構(gòu)成一個數(shù)據(jù)幀,在定時器的中斷服務(wù)程序中,依次存入HS3282的FIFO中后,啟動發(fā)送,可一次性發(fā)送8個429格式數(shù)據(jù)給武器系統(tǒng)。
接收武器系統(tǒng)反饋數(shù)據(jù)時,上位機(jī)程序通過檢測不同的標(biāo)志位,可分離出8個不同的429數(shù)據(jù)。根據(jù)HS3282的2個高低16位數(shù)據(jù)與標(biāo)準(zhǔn)ARIN C429數(shù)據(jù)位對應(yīng)關(guān)系,解析出相關(guān)武器系統(tǒng)工作信息,顯示在人機(jī)界面當(dāng)中。
上位機(jī)串口配置程序如下:
則InStrRev (BytReceived;'A0')返回1,InStrRev (BytReceived;'A1')返回9,每4個8位字符構(gòu)成一個32位的ARINC429數(shù)據(jù)。每組數(shù)據(jù)的后2個8位數(shù)據(jù)對應(yīng)標(biāo)準(zhǔn)ARINC429數(shù)據(jù)的14到29位。程序通過對標(biāo)志位數(shù)據(jù)搜索,確定數(shù)據(jù)位位置后,每組后2個數(shù)據(jù)位進(jìn)行位解析和數(shù)據(jù)組合,可獲得武器系統(tǒng)的相關(guān)信息。
4 實驗應(yīng)用
該測控系統(tǒng)用于某型機(jī)載武器的外場測試;其測控內(nèi)容涵蓋了機(jī)彈接口、部件性能、舵機(jī)系統(tǒng)等多個方面。測控主要界面如圖9所示。
進(jìn)行測試時,首先要給武器系統(tǒng)和單片機(jī)依次上電,單片機(jī)加電后自動發(fā)送自檢命令給武器系統(tǒng)。系統(tǒng)正常后,測控界面相關(guān)指示燈變綠。若出現(xiàn)異常,則相應(yīng)異常部分指示燈變紅。若自檢結(jié)果一切正常,則可設(shè)置模擬目標(biāo)給武器系統(tǒng),通過系統(tǒng)供氣,解鎖,以及引信解保,完成武器系統(tǒng)一個戰(zhàn)斗過程的完整測試。該測控系統(tǒng)也可對舵機(jī)發(fā)送相關(guān)控制指令,改變武器舵機(jī)的方位和俯仰角。舵機(jī)實時姿態(tài)信息,通過右側(cè)的方位角和俯仰角文本控件實時顯示。
本測控系統(tǒng)已應(yīng)用于武器系統(tǒng)掛載前的外場測試,實踐表明該系統(tǒng)測試結(jié)果準(zhǔn)確、穩(wěn)定可靠,實現(xiàn)了系統(tǒng)的經(jīng)濟(jì)化、小型化,也提高了系統(tǒng)的通用性和便攜性。
5 結(jié)論
該測控系統(tǒng)采用C8051F340配合專用的接口轉(zhuǎn)換芯片HS3282建立計算機(jī)與武器系統(tǒng)之間的通信,利用VB語言編寫了上位機(jī)測控系統(tǒng)軟件,以單片機(jī)為主控芯片,解決了RS232-與ARINC429接口的轉(zhuǎn)換問題,實現(xiàn)了武器系統(tǒng)信息的實時反饋和上位機(jī)對武器系統(tǒng)的模擬操控。在多次外場測試中,順利實現(xiàn)了武器掛載前的檢測。實際應(yīng)用表明該測控系統(tǒng)具有測試準(zhǔn)確、穩(wěn)定可靠、人機(jī)界面友好等特點,達(dá)到了設(shè)計要求。
評論