侯愛霞
(重慶科創(chuàng)職業(yè)學(xué)院 人工智能學(xué)院,重慶 402160)
光敏管陣列激光靶技術(shù)作為一種重要的測試技術(shù)目前被廣泛應(yīng)用于許多場合,如:兵器的研發(fā),軍隊訓(xùn)練等等。如何精確的測量運動物體的各項參數(shù)是研究人員最為關(guān)心的問題之一。本文主要對靶場所獲得的數(shù)據(jù)如何進行采集、存儲與計算進行了深入研究,設(shè)計了一套數(shù)據(jù)的獲取、傳輸、存儲以及處理系統(tǒng),以滿足高速大數(shù)據(jù)處理的要求,有利于提高物體參數(shù)計算的精確度[1]。
光敏管陣列激光靶系統(tǒng)以激光器作為光源,光敏管陣列作為激光探測裝置,陣列分為互相垂直的2列,其排列與兩面菲涅爾透鏡平行。由激光器射出的激光為一扇形光幕,在菲涅爾透鏡的作用下,形成平行光幕。若在光幕范圍內(nèi)有物體,則物體將阻擋一部分的激光的傳播路徑,使得該部分激光對應(yīng)位置上的光敏管接收到的光量發(fā)生改變,通過對一段時間內(nèi)的光敏管陣列上接收到的光量變化進行分析與計算,就可以得到有關(guān)物體的一系列參量[2]。光敏管陣列激光靶系統(tǒng)測量原理圖如下:
圖1 光敏管陣列激光靶測量原理圖
如圖1所示:光敏管陣列分為水平列與垂直列,并以此建立坐標(biāo)系,X軸方向與光敏管陣列的水平列方向一致,Y軸方向與光敏管陣列的垂直列方向一致。當(dāng)運動的物體處于光幕范圍內(nèi)時,物體對應(yīng)的水平方向與垂直方向位置上的光敏二極管接收到的光通量將發(fā)生改變,為方便敘述,將這些光敏二極管的位置用X、Y軸坐標(biāo)表示。設(shè)光敏管的寬度為c,在X軸上接收光量發(fā)生改變的光敏管為第i到第“i+m”個,在Y軸上接收光量發(fā)生改變的光敏管為第j到第“j+n”個[3],則可將物體的坐標(biāo)表示為:
(x , y)=((i*c+(i+m)*c))/2,(j*c+(j+n)*c))/2) (1)
若要對物體的運動速度進行測量,則設(shè)起始靶和停止靶之間的距離為d,由于物體在穿過激光靶時往往不是垂直入射,因此需要根據(jù)物體在過起始靶與停止靶時的坐標(biāo)進行靶距修正。設(shè)物體過靶1時的坐標(biāo)為(x1,y1),過靶2時的坐標(biāo)為(x2,y2),則可得物體運動的距離為:
設(shè)物體過靶1的時間為t1,過靶2的時間為t2則可得上物體在t1—t2這一時間段內(nèi)的平均速度為:
物體的體積可以根據(jù)物體在運動時遮擋的光敏管的個數(shù)估算。以物體的橫截面為矩形為例,設(shè)在某一時刻,X軸上被物體遮擋的光敏管個數(shù)為a個,Y軸上為b個,則物體的橫截面面積S為:
再對各個時刻計算得到的面積在物體的位移方向極性積分,即估算得到物體的體積。
圖2 矩形橫截面面積計算示意圖
在許多的實際運用領(lǐng)域當(dāng)中,需要對物體進行三維重構(gòu),即通過數(shù)據(jù)分析,模擬恢復(fù)出物體的三維信息。光敏管陣列激光靶也可以應(yīng)用到這一領(lǐng)域中來,通過物體橫截面的邊界點以及運動速度等的采樣數(shù)據(jù)進行相應(yīng)的分析可以實現(xiàn)物體的三維重構(gòu)[4]。
本文設(shè)計的通信程序包括的數(shù)據(jù)采集,通信與存儲系統(tǒng),采用FPGA進行數(shù)據(jù)的采集與存儲,采用FT245RL實現(xiàn)數(shù)據(jù)通信,再通過相應(yīng)的算法對采集到的信息進行分析與計算,進而得到所需要的參量數(shù)據(jù)。此系統(tǒng)可以實現(xiàn)數(shù)據(jù)的高速,大量傳輸,適合用于光敏管陣列激光靶的后續(xù)數(shù)據(jù)處理。
系統(tǒng)的整體流程圖如下:
圖3 系統(tǒng)整體流程圖
在數(shù)據(jù)的采集時,由于物體的信息包括物體過起始靶時水平光敏管陣列與垂直光敏管陣列的數(shù)據(jù)以及物體過停止靶時水平光敏管陣列與垂直光敏管陣列的數(shù)據(jù),故采集自不同列不同時間點的數(shù)據(jù)應(yīng)當(dāng)區(qū)分開來,以便后續(xù)分別進行處理,即對采集的數(shù)據(jù)進行預(yù)處理。
預(yù)處理方式如下:設(shè)光敏管的初始狀態(tài)為‘0’,在物體通過光幕時,被遮擋的光敏管的狀態(tài)變?yōu)椤?’,其余光敏管依舊保持‘0’不變。在某一采樣時刻將得到水平列與垂直列的2組二進制信息,即代表了水平列與垂直列被遮擋的光敏管的位置信息。在數(shù)據(jù)被傳輸至上位機之前,下位機應(yīng)當(dāng)在以采樣間隔為單位。在數(shù)據(jù)前端加入幀標(biāo)志位以區(qū)分不同的采樣時刻(用于后面進行數(shù)據(jù)通道的劃分),并在數(shù)據(jù)的末尾處添加該采樣時刻的時間標(biāo)志位,形成一個完整的幀。每幀數(shù)據(jù)包含16位幀標(biāo)志位、128位的數(shù)據(jù)位以及24位的時間標(biāo)志位。數(shù)據(jù)最終以幀組成的數(shù)據(jù)塊形式進行數(shù)據(jù)傳輸至上位機。
在進行數(shù)據(jù)的存儲前,應(yīng)當(dāng)根據(jù)每幀數(shù)據(jù)開頭的幀標(biāo)志將數(shù)據(jù)區(qū)分為4個通道數(shù)據(jù),方法如下:幀標(biāo)志位為16位的二進制數(shù), 為了能夠與通道標(biāo)志進行對比,應(yīng)先將其轉(zhuǎn)化為十六進制的字符串格式,再與各通道的通道標(biāo)志(4個通道的標(biāo)志分別為FD81、FD82、FD83、FD84)進行比較,若與某通道的通道標(biāo)志一致,則該通道的布爾變量變?yōu)?,其余通道的布爾變量為0;將布爾變量構(gòu)成的布爾數(shù)組進行反轉(zhuǎn)再轉(zhuǎn)化為為二進制數(shù)值。即,幀標(biāo)志位與通道1的通道標(biāo)志相同的數(shù)據(jù)將輸出為“1000”,與通道2的通道標(biāo)志相同的數(shù)據(jù)將輸出為“0100”,與通道3的通道標(biāo)志相同的數(shù)據(jù)將輸出為“0010”,與通道4的通道標(biāo)志相同的數(shù)據(jù)將輸出為“0001”,根據(jù)不同的輸出可以很好的將數(shù)組送入相應(yīng)的通道,之后再進行數(shù)據(jù)的存儲。
2.3.1 FT245RL 芯片
本文所設(shè)計的系統(tǒng)采用USB實現(xiàn)數(shù)據(jù)通信,并應(yīng)用FT245RL芯片驅(qū)動USB總線數(shù)據(jù)通信。FT245RL芯片由美國FTDI公司開發(fā),共有28個引腳,其中包括8位的并行數(shù)據(jù)口以及RXF、TXE、RD、WR等控制口。FT245RL用以實現(xiàn)USB接口和并行的I/O接口之間的雙向轉(zhuǎn)換,通過編程控制將數(shù)據(jù)由USB總線接口讀取至內(nèi)部數(shù)據(jù)總線上,再從內(nèi)部的數(shù)據(jù)總線寫入并行的I/O總線接口,以實現(xiàn)數(shù)據(jù)的傳輸,并且其內(nèi)部的2個FIFO緩存可以保證數(shù)據(jù)傳輸?shù)目煽啃訹5]。
2.3.2 FT245RL 編程
當(dāng)下位機有數(shù)據(jù)待傳時,F(xiàn)T245RL的RXF引腳將由高電平變?yōu)榈碗娖?,即表示緩沖區(qū)中有數(shù)據(jù)待讀取。在RXF引腳為低電平期間,將引腳RD由高電平置低,則此時FT245RL將檢測到引腳RD上出現(xiàn)下降沿,然后將緩存區(qū)中的數(shù)據(jù)讀入。數(shù)據(jù)讀取結(jié)束后,RD引腳恢復(fù)高電平,RXF引腳恢復(fù)高電平。
在將數(shù)據(jù)寫入并行I/O接口時,首先檢測TXE引腳,若為低電平,則可以進行寫操作;將引腳WR拉高再拉低,完成數(shù)據(jù)寫入緩沖區(qū),再將TXE拉高,完成整個寫入數(shù)據(jù)的操作[6]。
FT245RL讀寫操作時序圖如下:
圖4 FT245RL讀數(shù)據(jù)時序圖
圖5 FT245RL寫數(shù)據(jù)時序圖
由于系統(tǒng)的采樣率較高,因此,在相鄰的幾段幀數(shù)據(jù)中,物體遮擋的光敏管數(shù)量會有所差異,應(yīng)當(dāng)選取被物體遮擋的最多的一組幀數(shù)據(jù)進行計算。此過程被稱之為“最終坐標(biāo)的篩選”。在選取到相應(yīng)的幀數(shù)據(jù)(包括水平列的數(shù)據(jù)幀和垂直列的數(shù)據(jù)幀)后,以水平列為例,記錄數(shù)據(jù)由‘0’變?yōu)椤?’(記為s1)和由‘1’變?yōu)椤?’(記為s2)的位置,即代表了光量發(fā)生變化的光敏管的位置。 光敏管的寬度為c,則物體在X軸上的坐標(biāo)為:
Y軸坐標(biāo)同理可得。
物體運動的距離由式1、2給出,物體位置坐標(biāo)的計算方式已由前文給出。相應(yīng)的運動時間(設(shè)為T)可由數(shù)據(jù)幀的時間標(biāo)志位(設(shè)為h1和h2)與采樣率(設(shè)為f)計算得到:
則物體的運動速度v可由式1-3計算得到。
常見的物體橫截面分為矩形與橢圓,矩形的橫截面面積算法在前文中已經(jīng)給出,此處不再重復(fù)。對于橫截面為橢圓的物體,設(shè)光敏管的寬度為c,在某一采樣時刻光敏管水平列被遮擋m個,垂直列被遮擋n個,則橫截面面積為
計算得到物體的橫截面面積后,將所求得的面積在物體運動的位移方向上進行積分,得到:
即為估算的物體體積。式中N表示采樣數(shù),f為采樣的頻率,v為物體運動的平均速度,Sn為由第n個采樣點記錄的數(shù)據(jù)計算得到的物體的橫截面面積[7]。
本文在研究了光敏管陣列激光靶的基礎(chǔ)上,深入研究了其工作原理,由于其在工作過程中將產(chǎn)生大量的數(shù)據(jù),如一個由寬度為1mm的光敏管構(gòu)成面積為300*300mm2光敏管陣列,一次采樣需要記錄1 200bit的數(shù)據(jù);且若要提高系統(tǒng)估算物體參量的精度,則采樣率將較大,一般以MHZ為單位,每秒采樣的數(shù)據(jù)將以Gbit為單位?;诖颂匦?,所設(shè)計的數(shù)據(jù)通信和數(shù)據(jù)處理系統(tǒng)要滿足高速處理數(shù)據(jù)的同時也要保證傳輸?shù)目煽啃?。通過實驗論證,本文設(shè)計的數(shù)據(jù)通信和數(shù)據(jù)處理系統(tǒng)能夠很好完成對光敏管陣列激光靶數(shù)據(jù)的采集、通信、存儲以及分析任務(wù)。
同時本文中設(shè)計的系統(tǒng)也有部分需要改進的,如要提高計算結(jié)果的精確度需要提高系統(tǒng)的采樣頻率,但過高的采樣頻率對于FPGA的要求也就更高,對數(shù)據(jù)處理的速度的要求也就更高,在一定程度上很難使處理得到的數(shù)據(jù)的精確度有很大的提高;并且在物體的橫截面估計算法中,只研究了橫截面為矩形和橢圓的物體,但在實際的情況中,物體的橫截面往往是不規(guī)則的,對于橫截面不規(guī)則的物體設(shè)計相應(yīng)的算法進行處理有待進一步研究和討論。