采用FPGA/MCU技術(shù)的光電式滾轉(zhuǎn)角測量儀的解決方案
本文引用地址:http://www.ex-cimer.com/article/151256.htm
系統(tǒng)軟件設(shè)計(jì)
基于FPGA/MCU的光電式滾轉(zhuǎn)角測量儀軟件流程如圖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)角測量儀實(shí)際運(yùn)行情況良好,在實(shí)驗(yàn)室環(huán)境中能較為準(zhǔn)確的測量出彈體滾轉(zhuǎn)角度,達(dá)到預(yù)定要求,此外還可通過增加光敏接收模塊或采用紅外激光器來進(jìn)一步提高測量精度。
評(píng)論