基于FPGA/MCU的光電式滾轉(zhuǎn)角測(cè)量?jī)x
引言
本文引用地址:http://m.butianyuan.cn/article/81704.htm對(duì)于智能化彈藥而言,彈丸滾轉(zhuǎn)角是執(zhí)行彈道修正功能、實(shí)現(xiàn)精確制導(dǎo)的重要初始參數(shù),可通過安裝于彈體的陀螺儀或者磁探測(cè)模塊進(jìn)行測(cè)量,但在實(shí)驗(yàn)室環(huán)境下需要有一個(gè)外部基準(zhǔn)來驗(yàn)證測(cè)量結(jié)果的準(zhǔn)確性。本文設(shè)計(jì)基于FPGA/MCU的光電式滾轉(zhuǎn)角測(cè)量儀,安裝于實(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è)量儀物理架構(gòu)如圖1、2所示。a為滾轉(zhuǎn)體,可沿軸向做360度旋轉(zhuǎn),在滾轉(zhuǎn)體上某固定位置安裝紅外發(fā)光二極管k,光束方向沿截面徑向朝外;b為側(cè)支架,為了減少環(huá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)過處理之后送給主控板,主控板通過判斷是哪個(gè)光敏三極管接收到了信號(hào)來確定滾轉(zhuǎn)角度,滾轉(zhuǎn)體也可能會(huì)剛好旋轉(zhuǎn)到兩個(gè)光敏三極管之間,導(dǎo)致二者同時(shí)接收到光信號(hào),此時(shí)可對(duì)信號(hào)進(jìn)行AD轉(zhuǎn)換,然后通過相應(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,通過510Ω限流電阻與彈上的陀螺儀或者磁探測(cè)模塊相連接,當(dāng)滾轉(zhuǎn)體轉(zhuǎn)到某角度時(shí)由單片機(jī)控制其持續(xù)發(fā)光。由于發(fā)光二極管與光敏接收模塊之間的距離較短,僅有3~4cm,因此采用小功率直射方式便可滿足要求。
光敏接收模塊采用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)度呈線性關(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)過光電轉(zhuǎn)換及信號(hào)調(diào)理之后的輸出信號(hào),本系統(tǒng)中n取值為37,即在側(cè)支架上沿周向均勻安裝37個(gè)光敏接收模塊。當(dāng)Q1接收到足夠強(qiáng)度的入射紅外光時(shí)Ax輸出為高電平,沒有受到入射光照射時(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線調(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ù)碼管可滿足使用要求,選用力達(dá)公司的LDS-2381共陽數(shù)碼管,其封裝如圖8所示。FPGA的八個(gè)引腳通過限流電阻與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)掃描方式,通過控制片選引腳使數(shù)碼管輪流顯示個(gè)位、十位、百位的數(shù)字,每一位的持續(xù)時(shí)間為8ms,但在人眼看來可產(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)核供電,通過在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,能滿足系統(tǒng)需求。通過在低壓差穩(wěn)壓器的輸入端連接0.1mF陶瓷去耦電容改善噪聲特性,在輸出電壓引腳與GND之間連接10mF鉭電容穩(wěn)定芯片內(nèi)部控制回路,此外在PG或者引腳連接上拉電阻防止芯片自動(dòng)復(fù)位。
FPGA/MCU信息處理模塊、電源模塊、LED顯示模塊都集中布置在主控板上,其實(shí)物如圖10所示,主控板與各個(gè)光敏接收模塊之間通過導(dǎo)線連接,傳輸采集到的模擬信號(hào)并進(jìn)行供電。
系統(tǒng)軟件設(shè)計(jì)
基于FPGA/MCU的光電式滾轉(zhuǎn)角測(cè)量?jī)x軟件流程如圖11所示。光敏接收模塊g1-g37接收到紅外光信號(hào),經(jīng)過光電轉(zhuǎn)換及信號(hào)調(diào)理之后將高電平送至FPGA上各相關(guān)引腳,F(xiàn)PGA以固定頻率對(duì)A1-A37各引腳進(jìn)行掃描,掃描頻率通過對(duì)有源晶振的輸入頻率進(jìn)行分頻得到,如果掃描到僅有一個(gè)引腳是高電平,則說明只有該引腳對(duì)應(yīng)的光敏接收模塊收到光信號(hào),滾轉(zhuǎn)體此時(shí)剛好旋轉(zhuǎn)到某已知角度,通過FPGA控制LED顯示模塊輸出該角度,并通過串口將滾轉(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再通過串口把信息反饋給FPGA。還有可能出現(xiàn)3路或者3路以上的引腳為高電平的情況,此時(shí)應(yīng)調(diào)節(jié)光敏接收模塊的初級(jí)運(yùn)放信號(hào)放大倍數(shù),盡量減少M(fèi)CU處理的模擬信號(hào)數(shù)量,然后通過比較將幅值較小的信號(hào)忽略,僅保留最大的兩路信號(hào),隨后處理方式同上。
FPGA采用VHDL語言進(jìn)行編程,其串口程序包括串口發(fā)送、串口接收與時(shí)鐘分頻三個(gè)模塊,分別與上位機(jī)及兩片MCU進(jìn)行通信,通信波特率為標(biāo)準(zhǔn)的9600b/s,數(shù)據(jù)位為8位,不帶校驗(yàn)位。MCU采用匯編語言編程,C8051F310可通過修改相關(guān)寄存器值非常靈活的對(duì)片內(nèi)ADC模塊、串口模塊進(jìn)行操作,ADC采用單端輸入方式,以MCU供電電壓為參考電壓,通過向AD0BUSY位寫1啟動(dòng)AD轉(zhuǎn)換。
結(jié)語
本文設(shè)計(jì)的基于FPGA/MCU的光電式滾轉(zhuǎn)角測(cè)量?jī)x實(shí)際運(yùn)行情況良好,在實(shí)驗(yàn)室環(huán)境中能較為準(zhǔn)確的測(cè)量出彈體滾轉(zhuǎn)角度,達(dá)到預(yù)定要求,此外還可通過增加光敏接收模塊或采用紅外激光器來進(jìn)一步提高測(cè)量精度。
參考文獻(xiàn):
1. 陳勇巍,程翔,張河.彈道修正彈滾轉(zhuǎn)角辨識(shí)系統(tǒng)模型與誤差分析[J].探測(cè)與控制學(xué)報(bào),2006,28(4):44-47
2. 郭娟,金慶輝,趙建龍,王洪.基于FPGA實(shí)現(xiàn)指紋識(shí)別系統(tǒng)及指紋采集接口[J].電子產(chǎn)品世界,2007(2):104-107
3. 王慶有.光電技術(shù) [M].北京:電子工業(yè)出版社,2005
4. 廖日坤.CPLD/FPGA嵌入式應(yīng)用開發(fā)技術(shù)白金手冊(cè) [M].北京:中國(guó)電力出版社,2005
晶振相關(guān)文章:晶振原理 上拉電阻相關(guān)文章:上拉電阻原理 激光器相關(guān)文章:激光器原理 激光二極管相關(guān)文章:激光二極管原理
評(píng)論