引言
對(duì)于智能化彈藥而言,彈丸滾轉(zhuǎn)角是執(zhí)行彈道修正功能,、實(shí)現(xiàn)精確制導(dǎo)的重要初始參數(shù),,可通過(guò)安裝于彈體的陀螺儀或者磁探測(cè)模塊進(jìn)行測(cè)量,但在實(shí)驗(yàn)室環(huán)境下需要有一個(gè)外部基準(zhǔn)來(lái)驗(yàn)證測(cè)量結(jié)果的準(zhǔn)確性,。本文設(shè)計(jì)基于FPGA/MCU的光電式滾轉(zhuǎn)角測(cè)量?jī)x,,安裝于實(shí)驗(yàn)轉(zhuǎn)臺(tái)上,實(shí)時(shí)輸出滾轉(zhuǎn)角度值,,為彈體的滾轉(zhuǎn)角測(cè)量提供對(duì)照基準(zhǔn),,并可與上位機(jī)進(jìn)行通信,將數(shù)據(jù)傳送到主機(jī)中進(jìn)行后續(xù)處理,。
系統(tǒng)整體方案
滾轉(zhuǎn)角測(cè)量?jī)x物理架構(gòu)如圖1,、2所示。a為滾轉(zhuǎn)體,,可沿軸向做360度旋轉(zhuǎn),,在滾轉(zhuǎn)體上某固定位置安裝紅外發(fā)光二極管k,光束方向沿截面徑向朝外,;b為側(cè)支架,,為了減少環(huán)境光線(xiàn)的干擾,采用封閉式設(shè)計(jì),,沿支架周向均勻安裝n個(gè)光敏接收電路gl-gn,,n值視所需測(cè)量精度而定;當(dāng)滾轉(zhuǎn)體旋轉(zhuǎn)到某角度時(shí),,延徑向發(fā)射紅外光,,側(cè)支架上的光敏三極管對(duì)其進(jìn)行接收,把光信號(hào)轉(zhuǎn)換為電壓信號(hào),,經(jīng)過(guò)處理之后送給主控板,,主控板通過(guò)判斷是哪個(gè)光敏三極管接收到了信號(hào)來(lái)確定滾轉(zhuǎn)角度,滾轉(zhuǎn)體也可能會(huì)剛好旋轉(zhuǎn)到兩個(gè)光敏三極管之間,導(dǎo)致二者同時(shí)接收到光信號(hào),,此時(shí)可對(duì)信號(hào)進(jìn)行AD轉(zhuǎn)換,,然后通過(guò)相應(yīng)算法對(duì)轉(zhuǎn)換值進(jìn)行處理,從而解算出滾轉(zhuǎn)角,。
系統(tǒng)硬件設(shè)計(jì)
滾轉(zhuǎn)角測(cè)量?jī)x的硬件框圖如圖3所示,,包括紅外光發(fā)射模塊、光敏接收模塊,、FPGA/MCU信息處理模塊,、電源模塊、LED顯示模塊等,,以下分別進(jìn)行具體介紹,。
紅外光發(fā)射模塊選用方向性較強(qiáng)的窄角度紅外發(fā)光二極管PH303,波長(zhǎng)0.94mm,,通過(guò)510Ω限流電阻與彈上的陀螺儀或者磁探測(cè)模塊相連接,,當(dāng)滾轉(zhuǎn)體轉(zhuǎn)到某角度時(shí)由單片機(jī)控制其持續(xù)發(fā)光。由于發(fā)光二極管與光敏接收模塊之間的距離較短,,僅有3~4cm,,因此采用小功率直射方式便可滿(mǎn)足要求。
光敏接收模塊采用UNI公司的NPN光敏三極管MID-32A22,,接收光波長(zhǎng)也為0.94mm,。接收模塊電路如圖4所示,實(shí)物如圖5所示,,Q1為光敏三極管,,LM358D為雙通道集成運(yùn)算放大器。在Q1上施加9V的偏置電壓,,保證集電結(jié)處于反向偏置,,發(fā)射結(jié)處于正向偏置。室溫條件下,,當(dāng)受到紅外光照射時(shí),,發(fā)射集的輸出電流與入射光強(qiáng)度呈線(xiàn)性關(guān)系,范圍在1.5~2mA之間,,R4取值為330Ω,,則LM358D的引腳5輸入電壓在0.5~0.66V 之間。前級(jí)運(yùn)放搭建成同相比例放大器,,取R1=1kW,,R2=5kW,放大倍數(shù)為(1+5/1)=6倍,,則引腳7的輸出電壓在以上,。后級(jí)運(yùn)放搭建成一階低通有源濾波器,,取R3=15.8kW,C1=0.1mF,,截止頻率為100Hz,。Ax(x=1-n)為經(jīng)過(guò)光電轉(zhuǎn)換及信號(hào)調(diào)理之后的輸出信號(hào),本系統(tǒng)中n 取值為37,,即在側(cè)支架上沿周向均勻安裝37個(gè)光敏接收模塊,。當(dāng)Q1接收到足夠強(qiáng)度的入射紅外光時(shí)Ax輸出為高電平,沒(méi)有受到入射光照射時(shí)保持為低電平,,信號(hào)直接送至FPGA/MCU信息處理模塊的相應(yīng)引腳,。
FPGA/MCU信息處理模塊:FPGA作為主處理器,兩片MCU作為協(xié)處理器,,F(xiàn)PGA與MCU及上位機(jī)之間均使用串口通信方式。
FPGA采用Altera公司的EP1C3T144,,具有2910個(gè)邏輯單元,,可用IO引腳達(dá)104個(gè),集成1個(gè)PLL模塊,,使用與1.5V聯(lián)合供電,,上電次序可任意配置,可靈活選擇使用主動(dòng)串行方式或者JTAG方式進(jìn)行調(diào)試,,外接50MHz有源晶振為芯片提供基準(zhǔn)頻率,。
MCU選用Cygnal公司的C8051F310,工作電壓2.7V~3.6V,,最高工作頻率可達(dá)25MHz,,提供1280字節(jié)RAM和16Kb FLASH,29個(gè)耐5V電壓的可配置IO引腳,,片內(nèi)集成21路10位200KSPS ADC及硬件增強(qiáng)型UART,,可使用Silicon lab2線(xiàn)調(diào)試方式。
FPGA與MCU的硬件連接如圖6所示,,光敏接收模塊的輸出信號(hào)A1-A37依次送至FPGA各引腳及MCU的ADC輸入引腳,,由于每片 C8051F310最多只允許21路ADC輸入,因此使用兩片MCU,,MCU A采集A1-A20,,MCU B采集A18-A37,其中A18,、A19,、A20被重疊采集。如果兩片MCU采集的信號(hào)互不重疊,,比如MCU A采集A1-A18,,MCU B采集A19-A37,,當(dāng)滾轉(zhuǎn)體轉(zhuǎn)至g18與g19之間時(shí),二者都受到一定強(qiáng)度的紅外光照射,,輸出信號(hào)A18,、A19同時(shí)為高電平,則需要將A18的值從 MCU A送至MCU B進(jìn)行集中處理,,增加編程工作量,,而且由于不是同一芯片的ADC采集到的數(shù)據(jù),不排除存在系統(tǒng)誤差的可能性,,從而影響滾轉(zhuǎn)角判斷結(jié)果,,但采集信號(hào)重疊之后,則僅使用MCU A或者M(jìn)CU B就可單獨(dú)進(jìn)行處理,,重疊信號(hào)越多處理范圍越廣,。FPGA的TXi、RXi(i=0,1)引腳分別與兩片MCU的自帶的硬件增強(qiáng)型UART相連接,,實(shí)現(xiàn)串口通信,。
此外FPGA的UARTTX、UARTRX引腳與MAX3232CSE相連,,將TTL電平轉(zhuǎn)換成232電平,,使用異步串口與上位機(jī)進(jìn)行通信,電路連接如圖7所示,。
LED顯示模塊:由于滾轉(zhuǎn)角度值范圍在0度-360度之間,,因此使用三位八段數(shù)碼管可滿(mǎn)足使用要求,選用力達(dá)公司的LDS-2381共陽(yáng)數(shù)碼管,,其封裝如圖8所示,。FPGA的八個(gè)引腳通過(guò)限流電阻與LED的A-G、DP引腳相連,,由于LED消耗電流較大,,而FPGA的引腳驅(qū)動(dòng)能力不足,因此另外三個(gè)片選引腳分別先連接到NPN管的基集,,NPN管的發(fā)射集再與LED的8,、9、12引腳相連,,從而提高電流驅(qū)動(dòng)能力,。FPGA采用動(dòng)態(tài)掃描方式,通過(guò)控制片選引腳使數(shù)碼管輪流顯示個(gè)位,、十位,、百位的數(shù)字,每一位的持續(xù)時(shí)間為8ms,,但在人眼看來(lái)可產(chǎn)生同時(shí)顯示的效果,。
電源模塊:光敏三極管偏置電壓為9V,,F(xiàn)PGA需要3.3V與1.5V聯(lián)合供電,MCU,、FPGA外接有源晶振,、LM318D等均為3.3V供電。系統(tǒng)輸入電源采用9V直流供電,,因此還需使用電源轉(zhuǎn)換模塊降至3.3V與1.5V,,如圖9所示,選取TI公司的TPS76801與TPS76733兩種低壓差穩(wěn)壓器,。TPS76801是單路可調(diào)LDO,,最大壓降僅為230mV,容限為2%,,紋波小,,適合為FPGA內(nèi)核供電,通過(guò)在OUT引腳,、FB引腳與 GND之間連接不同阻值的電阻,,可靈活設(shè)置TPS76801的輸出電壓為1.5V,阻值計(jì)算公式,,式中 Vref="1".1834V,R24=30.1kΩ,,R23=8kΩ,。TPS76733也是單路固定輸出LDO,輸出電壓為3.3V,,典型壓差350mV,,每個(gè)LM318D僅需消耗1mA左右的電流,EP1C3T144,、C8051F310,、有源晶振也都是低功耗器件,TPS76733輸出電流最大值可達(dá) 1000mA,,能滿(mǎn)足系統(tǒng)需求,。通過(guò)在低壓差穩(wěn)壓器的輸入端連接0.1mF陶瓷去耦電容改善噪聲特性,在輸出電壓引腳與GND之間連接10mF鉭電容穩(wěn)定芯片內(nèi)部控制回路,,此外在PG或者引腳連接上拉電阻防止芯片自動(dòng)復(fù)位,。
FPGA/MCU信息處理模塊、電源模塊,、LED顯示模塊都集中布置在主控板上,,其實(shí)物如圖10所示,主控板與各個(gè)光敏接收模塊之間通過(guò)導(dǎo)線(xiàn)連接,,傳輸采集到的模擬信號(hào)并進(jìn)行供電,。
系統(tǒng)軟件設(shè)計(jì)
基于FPGA/MCU的光電式滾轉(zhuǎn)角測(cè)量?jī)x軟件流程如圖11所示,。光敏接收模塊g1-g37接收到紅外光信號(hào),經(jīng)過(guò)光電轉(zhuǎn)換及信號(hào)調(diào)理之后將高電平送至FPGA上各相關(guān)引腳,,F(xiàn)PGA以固定頻率對(duì)A1-A37各引腳進(jìn)行掃描,,掃描頻率通過(guò)對(duì)有源晶振的輸入頻率進(jìn)行分頻得到,如果掃描到僅有一個(gè)引腳是高電平,,則說(shuō)明只有該引腳對(duì)應(yīng)的光敏接收模塊收到光信號(hào),,滾轉(zhuǎn)體此時(shí)剛好旋轉(zhuǎn)到某已知角度,通過(guò)FPGA控制LED顯示模塊輸出該角度,,并通過(guò)串口將滾轉(zhuǎn)角度值傳送給上位機(jī),。但如果有兩路引腳都為高電平,那么FPGA首先判斷該由哪片MCU對(duì)這些信號(hào)進(jìn)行處理,,隨后通知該MCU進(jìn)行AD轉(zhuǎn)換并確定滾轉(zhuǎn)角度,,比如A5、A6均為高電平,,則FPGA以串口通訊方式通知MCU A對(duì)A5,、A6進(jìn)行AD轉(zhuǎn)換,轉(zhuǎn)換結(jié)果A5的信號(hào)幅值為2.50V,,A6的信號(hào)幅值為3V,,已知A5對(duì)應(yīng)的滾轉(zhuǎn)角為40度,A6對(duì)應(yīng)的滾轉(zhuǎn)角為50度,,則此時(shí)的滾轉(zhuǎn)角度為40+[2.5/(2.5+3.0)](50-40)=44.55度,,MCU再通過(guò)串口把信息反饋給FPGA。還有可能出現(xiàn)3路或者3路以上的引腳為高電平的情況,,此時(shí)應(yīng)調(diào)節(jié)光敏接收模塊的初級(jí)運(yùn)放信號(hào)放大倍數(shù),,盡量減少M(fèi)CU處理的模擬信號(hào)數(shù)量,然后通過(guò)比較將幅值較小的信號(hào)忽略,,僅保留最大的兩路信號(hào),,隨后處理方式同上。
FPGA采用VHDL語(yǔ)言進(jìn)行編程,,其串口程序包括串口發(fā)送,、串口接收與時(shí)鐘分頻三個(gè)模塊,分別與上位機(jī)及兩片MCU進(jìn)行通信,,通信波特率為標(biāo)準(zhǔn)的 9600b/s,,數(shù)據(jù)位為8位,不帶校驗(yàn)位,。MCU采用匯編語(yǔ)言編程,,C8051F310可通過(guò)修改相關(guān)寄存器值非常靈活的對(duì)片內(nèi)ADC模塊、串口模塊進(jìn)行操作,,ADC采用單端輸入方式,,以MCU供電電壓為參考電壓,,通過(guò)向AD0BUSY位寫(xiě)1啟動(dòng)AD轉(zhuǎn)換。
結(jié)語(yǔ)
本文設(shè)計(jì)的基于FPGA/MCU的光電式滾轉(zhuǎn)角測(cè)量?jī)x實(shí)際運(yùn)行情況良好,,在實(shí)驗(yàn)室環(huán)境中能較為準(zhǔn)確的測(cè)量出彈體滾轉(zhuǎn)角度,,達(dá)到預(yù)定要求,此外還可通過(guò)增加光敏接收模塊或采用紅外激光器來(lái)進(jìn)一步提高測(cè)量精度,。