FPGA在新型激光光幕靶中的應(yīng)用
摘要:結(jié)合坐標(biāo)采集和處理在新型激光光幕靶中的應(yīng)用,針對(duì)傳統(tǒng)激光光幕靶處理器I/O緊缺、處理速度慢、存在錯(cuò)報(bào)、漏報(bào),無(wú)法測(cè)試子彈連發(fā)坐標(biāo)等問(wèn)題,提出了一種以FPGA為核心的坐標(biāo)采集和處理系統(tǒng)的設(shè)計(jì)方法。設(shè)計(jì)中采用了自頂向下的設(shè)計(jì)方法,將該系統(tǒng)依據(jù)邏輯功能劃分為3個(gè)模塊,并在ISE 14.1和Modelsim中進(jìn)行設(shè)計(jì)、編譯、仿真,最后的仿真結(jié)果表明該系統(tǒng)能夠很好地采集到子彈的坐標(biāo)。
關(guān)鍵詞:FPGA;激光光幕靶;坐標(biāo)采集;Modelsim
彈丸的彈著點(diǎn)坐標(biāo)測(cè)量是武器系統(tǒng)中不可缺少的一項(xiàng)重要指標(biāo),也是各種武器研制、試驗(yàn)和驗(yàn)收必須測(cè)試的重要參數(shù)。目前國(guó)內(nèi)外測(cè)坐標(biāo)方法很多,光電測(cè)坐標(biāo)法以其測(cè)試精度高、可靠性好、成本低廉等優(yōu)點(diǎn)常成為眾多測(cè)坐標(biāo)方案的首選,但傳統(tǒng)的光電測(cè)坐標(biāo)系統(tǒng)在坐標(biāo)采集和處理方面也有不足之處。文獻(xiàn)是目前國(guó)內(nèi)應(yīng)用的比較先進(jìn)的測(cè)坐標(biāo)系統(tǒng),但是沒(méi)有具體提到信號(hào)采集和處理的方法。文獻(xiàn)實(shí)現(xiàn)了示靶、檢靶、自動(dòng)報(bào)靶的一體化,但在信號(hào)的處理方面有些不足。文獻(xiàn)和文獻(xiàn)是用單片機(jī)實(shí)現(xiàn)數(shù)據(jù)采集和處理,由于坐標(biāo)精度的要求越來(lái)越高,要求光電傳感器的間隔要足夠小,因此需要較多的光電傳感器。單個(gè)單片機(jī)I/O口少,需要多個(gè)單片機(jī)協(xié)同工作才可以組成完整的采集系統(tǒng),系統(tǒng)結(jié)構(gòu)復(fù)雜,而且子彈速度快,單片機(jī)頻率低,實(shí)時(shí)性不是很好。文獻(xiàn)是復(fù)雜可編程器件(CPLD)和單片機(jī)相結(jié)合的方式。文獻(xiàn)是現(xiàn)場(chǎng)可編程邏輯器件(FPGA)和單片機(jī)相結(jié)合的方式。文獻(xiàn)是用FPGA構(gòu)成數(shù)據(jù)采集系統(tǒng),但和文獻(xiàn)一樣,當(dāng)靶面較大時(shí),都需要幾個(gè)其設(shè)計(jì)的采集處理單元拼接起來(lái)才能組成整個(gè)的采集處理系統(tǒng)。
針對(duì)這些問(wèn)題,在新型激光光幕靶中采用了單片F(xiàn)PGA與并轉(zhuǎn)串模塊相結(jié)合,采集和處理相獨(dú)立的方式,充分發(fā)揮了FPGAI/O口眾多,響應(yīng)速度快的特點(diǎn)。具有結(jié)構(gòu)簡(jiǎn)單、安全可靠的優(yōu)點(diǎn),大大降低了成本,進(jìn)一步增加了系統(tǒng)應(yīng)用的靈活性。
1 新型激光光幕靶原理簡(jiǎn)介
激光光幕靶是光電靶中的一種,它主要由激光系統(tǒng)和計(jì)算機(jī)系統(tǒng)組成。如圖1所示,在前靶面(粗線光幕所在平面)的左下腳和與它平行的后靶面(細(xì)線光幕所在平面)的右下腳分別安裝一個(gè)發(fā)光角度為90°扇形的大功率線狀激光器。半導(dǎo)體激光器發(fā)出的激光束分別被玻璃柱透鏡擴(kuò)散成一個(gè)扇形光幕。由于前靶面和后靶面的距離為1 cm,所以可以認(rèn)為這2個(gè)90度扇形激光光幕在同一個(gè)平面相互交叉組成一個(gè)大面積矩形光幕。子彈無(wú)論從哪個(gè)區(qū)域穿過(guò)激光光幕,都會(huì)遮擋住投射在某個(gè)或某幾個(gè)光電二極管上的光線,當(dāng)子彈穿過(guò)時(shí)至少有2排光電二極管陣列中的光電二極管會(huì)接收到信號(hào)。信號(hào)轉(zhuǎn)換電路將光電二極管接收到的信號(hào)轉(zhuǎn)換為數(shù)字信號(hào),最后經(jīng)采集處理后找到等效彈著點(diǎn)對(duì)應(yīng)的光電二極管的標(biāo)號(hào),由此可以算出子彈穿過(guò)靶時(shí)的坐標(biāo)。
2 數(shù)據(jù)采集處理方法
根據(jù)靶面的大小以及光電二極管的間距,可以算出需要的光電二極管的數(shù)量,若以1mx1m靶,光電二極管間隔2.5 mm來(lái)算,四邊大約需要4x400=1 600個(gè)光電二極管。不管是單片機(jī)還是CPLD、FPGA,都沒(méi)有這么多I/O,需要幾片拼接起來(lái)才能實(shí)現(xiàn)這么多I/O的采集。在本系統(tǒng)中采用并轉(zhuǎn)串的方式,減少了需要的I/O數(shù)量.如80:1,則只需要大約20x3=60個(gè)I/O即可,則只要一塊FPGA芯片就可以滿足整個(gè)系統(tǒng)的要求。通過(guò)調(diào)整并轉(zhuǎn)串的比例,在同一時(shí)鐘的情況下,并轉(zhuǎn)串的比例越小,F(xiàn)PGA對(duì)所有光電二極管陣列采集一次的周期就越短。如圖2所示,光電二極管的光照狀態(tài)經(jīng)信號(hào)調(diào)理后變成FPGA可以識(shí)別的‘0’和‘1’信號(hào)。由FPGA控制并轉(zhuǎn)串的時(shí)鐘和移位、置數(shù)控制信號(hào),采集到的信號(hào)經(jīng)移位由高到低串行輸入給FPGA,F(xiàn)PGA先由串轉(zhuǎn)并模塊保存為光電二極管陣列對(duì)應(yīng)位數(shù)的信號(hào),經(jīng)處理,若判斷為有子彈穿過(guò),則將等效的坐標(biāo)值上傳給上位機(jī)處理顯示。由于采用采集和處理相獨(dú)立的方式,F(xiàn)PGA每隔5.34μs就采集一次數(shù)據(jù),采集到有效數(shù)據(jù)就保存,F(xiàn)PGA按順序處理并上傳數(shù)據(jù),避免了錯(cuò)報(bào)、漏報(bào)的情況,此外,由于處理速度比較快,完全可以滿足子彈連發(fā)坐標(biāo)采集的要求。
3 器件選型及依據(jù)
3.1 FPGA的選擇及依據(jù)
FPGA是英文Field Programmable Gate Array的縮寫(xiě),即現(xiàn)場(chǎng)可編程門(mén)陣列。本系統(tǒng)采用了Xilinx公司生產(chǎn)的Spartan 3E系列的XC3S500E型FPGA芯片。Spartan 3E是Xilinx公司性價(jià)比較高的FPGA芯片,本系統(tǒng)中XC3S500E采用了3.3 V電源供電,時(shí)鐘頻率為50 MHz,其系統(tǒng)門(mén)數(shù)為50萬(wàn)個(gè),slice數(shù)目為4 656個(gè),分布式RAM容量為73 kB,專用乘法器數(shù)為20個(gè),DCM數(shù)目為4個(gè),最大可用I/O數(shù)為232個(gè),完全能滿足系統(tǒng)的需要。
3.2 并轉(zhuǎn)串芯片選擇及依據(jù)
若子彈出膛時(shí)的初速約為1 000 m/s,彈頭長(zhǎng)約2.5cm。激光靶激光束寬2 mm,容易算出激光束被子彈遮擋的時(shí)間為:(25+2)/1 000 000=0.000 027 s=27μs,即光電二極管要采集的信號(hào)的頻率為1/27 MHz=37 037 Hz。根據(jù)奈奎斯特(Nyquist)采樣定理,采樣頻率應(yīng)≥74 074 Hz,而在本系統(tǒng)中采樣頻率為187 265.92 Hz,約為37 037 Hz的5倍,滿足要求。
74LS165是八位移位寄存器(并行輸入,互補(bǔ)串行輸出),F(xiàn)m(最大時(shí)鐘頻率)為35 MHz。其工作原理:當(dāng)移位/置數(shù)控制端(SH/LD)為低電平時(shí),并行數(shù)據(jù)(A—H)被置入寄存器。當(dāng)移位/置數(shù)控制端(SH/LD)為高電平時(shí),并行置數(shù)功能被禁止,將鎖存的八位置數(shù)信號(hào)從高到低移位串行輸出。通過(guò)級(jí)聯(lián)11塊74LS165,就可以實(shí)現(xiàn)88:1的并轉(zhuǎn)串比例,由于是由FPGA控制74LS165級(jí)聯(lián)塊的時(shí)鐘和移位置數(shù)工作狀態(tài),最終又串行輸入給FPGA,可以保證時(shí)序。若一個(gè)光電二極管陣列由88個(gè)光電二極管組成,則要級(jí)聯(lián)11塊74LS165,要把一個(gè)光電二極管陣列的所有光電二極管狀態(tài)數(shù)據(jù)給FPGA需要89(88+1移位置數(shù)控制信號(hào))個(gè)clkout,在本系統(tǒng)中1個(gè)clkout的周期是60 ns,則總時(shí)間t=89x60ns=5.34μs,約是子彈穿過(guò)時(shí)間的1/5。由于采用的是并行采集,各個(gè)光電二極管陣列是獨(dú)立的,但又可看成是同一復(fù)制體,F(xiàn)PGA每隔5.34μs就可以采集到靶上所有光電二極管陣列的數(shù)據(jù),實(shí)時(shí)性較好。
4 主要模塊邏輯實(shí)現(xiàn)及仿真
本系統(tǒng)主要包括3個(gè)模塊部分:并轉(zhuǎn)串控制模塊,數(shù)據(jù)采集處理模塊,上傳模塊。系統(tǒng)工作過(guò)程為:FPGA每隔5.34μs不間斷采集光電二極管陣列數(shù)據(jù),當(dāng)子彈穿過(guò)靶面時(shí),如果采集到的數(shù)據(jù)不全為0,則先臨時(shí)存儲(chǔ),然后判斷數(shù)據(jù)是否有效,無(wú)效則報(bào)警,有效則進(jìn)行處理,最后通過(guò)RS232串口上傳給上位機(jī)處理顯示,上傳成功后存儲(chǔ)模塊清零。其總流程圖如圖3所示。
4.1 并轉(zhuǎn)串控制模塊
主要功能是產(chǎn)生各個(gè)74LS165級(jí)聯(lián)塊需要的60 ns的時(shí)鐘信號(hào)elkout,和周期為89個(gè)clkout的移位控制信號(hào),仿真結(jié)果如圖4所示。
4.2 數(shù)據(jù)采集處理模塊
主要功能是在elk_ci采集信號(hào)控制下采集中間位置的數(shù)據(jù),將上次鎖存的各個(gè)光電二極管陣列的數(shù)據(jù)通過(guò)移位從高到低存儲(chǔ)在臨時(shí)存儲(chǔ)dz1,dz2,dz3,dz4中。在cnt2=0,即移位置數(shù)控制信號(hào)工作在置數(shù)狀態(tài)時(shí),若子彈穿過(guò)即dz1,dz2,dz3,dz4不全為0,則轉(zhuǎn)存在js1,js2,js3,js4中(由于后4位未連接到光電二極管,后4位不保存)。根據(jù)js1,js2,js3,js4是否0,可以判斷被遮擋的光電二極管處于n1,n2,m1,m2的哪邊(與mn的4位對(duì)應(yīng))。由于子彈射擊位置不同,遮擋的光電二極管的數(shù)量也不同,若子彈直徑為4.6 mm,光電二極管間隔為2.5mm,則遮擋的二極管為1~18之間。判斷數(shù)據(jù)是否有效,若無(wú)效則報(bào)警。若n1,n2只有一邊被遮擋,則只需要找到彈著點(diǎn)對(duì)應(yīng)的光電二極管編號(hào)。若n1,n2都有光電二極管被遮擋,則不僅需要找到等效彈著點(diǎn)對(duì)應(yīng)的光電二極管編號(hào),還要判斷等效彈著點(diǎn)是位于n1那邊。還是n2這邊。同理處理m1,m2。最終得到彈著點(diǎn)對(duì)應(yīng)的位于n1,n2,m1,m2的光電二極管的編號(hào),由于是從1開(kāi)始編號(hào),最終要得到是在n1,n2,m1,m2上的等效距離,相應(yīng)的n1,n2,m1,m2要減1。最終得到彈著點(diǎn)坐標(biāo)對(duì)應(yīng)的參數(shù)m和n,以及相應(yīng)的公式編號(hào),仿真結(jié)果如圖5所示。
4.3 上傳模塊
主要功能是,將得到的最終彈著點(diǎn)坐標(biāo)參數(shù)通過(guò)RS232串口上傳給上位機(jī)處理顯示,仿真結(jié)果如圖6所示。
5 結(jié)論
仿真結(jié)果表明:由FPGA組成的數(shù)據(jù)采集、處理裝置應(yīng)用在新型激光光幕測(cè)坐標(biāo)系統(tǒng)中,不僅繼承了光電靶的眾多優(yōu)點(diǎn),還解決了傳統(tǒng)激光光幕靶處理器I/O緊缺、處理速度慢,存在錯(cuò)報(bào)、*****報(bào)等缺點(diǎn),可實(shí)現(xiàn)靶場(chǎng)對(duì)于彈丸坐標(biāo)采集所要求的響應(yīng)速度快、可測(cè)連發(fā)的要求,而且比傳統(tǒng)的用單片機(jī),單片機(jī)CPLD與單片機(jī)結(jié)合,FPGA與單片機(jī)結(jié)合的采集處理裝置結(jié)構(gòu)更簡(jiǎn)單,體積更小,成本更低。