基于FPGA+單片機(jī)的調(diào)焦變倍系統(tǒng)設(shè)計(jì)
1.3 MCU模塊及通信模塊
在本設(shè)計(jì)中MCU主要作為通信管理芯片,實(shí)現(xiàn)與人機(jī)交互模塊進(jìn)行通信。操作者通過人機(jī)交互模塊向通信模塊發(fā)送變倍調(diào)焦命令,通信模塊把該命令轉(zhuǎn)發(fā)給MCU,MCU以中斷方式接收命令實(shí)時(shí)傳遞給FPGA,FPGA對(duì)電機(jī)驅(qū)動(dòng)模塊進(jìn)行控制,從而實(shí)現(xiàn)變倍調(diào)焦控制。FPGA對(duì)光耦模塊的狀態(tài)進(jìn)行檢測(cè),并把該狀態(tài)通過MCU模塊和通信模塊傳遞給人機(jī)交互模塊,使操作者能掌握當(dāng)前相機(jī)狀態(tài)。因?yàn)槿藱C(jī)交互模塊發(fā)送數(shù)據(jù)較頻繁,為了防止MCU出現(xiàn)死機(jī)現(xiàn)象,這里沒有直接應(yīng)用人機(jī)交互模塊的通信口與MCU的串口連在一起,而是通過通信模塊把二者聯(lián)系起來。這里通信模塊采用了一片16C650,該芯片優(yōu)點(diǎn)在于內(nèi)部具有32字節(jié)的FIFO,可起到數(shù)據(jù)緩存的作用,使MCU能夠穩(wěn)定可靠地接收數(shù)據(jù)。
1.4 光耦模塊
光耦模塊主要起到實(shí)時(shí)檢測(cè)當(dāng)前電機(jī)是否運(yùn)行到限位點(diǎn)的作用,如果電機(jī)沒有運(yùn)行到限位點(diǎn),光耦模塊向FPGA輸出0電平,當(dāng)電機(jī)運(yùn)行到限位點(diǎn)時(shí)光耦模塊向FPGA輸出1電平。為了便于觀察和調(diào)試,這里選用歐姆龍的EX470P型光耦,該光耦通過指示燈,可指示出光耦當(dāng)前輸出狀態(tài)。
2 軟件設(shè)計(jì)
本文軟件設(shè)計(jì)主要對(duì)MCU和FPGA進(jìn)行編程。其中對(duì)MCU編程主要應(yīng)用C語言進(jìn)行,對(duì)FPGA主要應(yīng)用VHDL語言編寫。其中MCU程序框圖如圖3所示。FPGA程序流程框圖如圖4所示。
評(píng)論