基于FPGA+單片機的調(diào)焦變倍系統(tǒng)設(shè)計
摘要:在光電探測領(lǐng)域中以往對相機調(diào)焦變倍多采用單片機(MCU)控制完成,其優(yōu)點在于易于編程實現(xiàn)。因為要求實時控制相機的變倍、調(diào)焦,其程序的編寫多采用查詢方式實現(xiàn),這就使單片機始終處于十分繁忙的狀態(tài),利用率降低,此外當調(diào)焦、變倍電機到達限位位置時,由于單片機是采用查詢方式工作,這就導致電機到達限位與實際停止電機轉(zhuǎn)動之間存在時間差,這種時間差導致電機發(fā)生堵轉(zhuǎn),容易把電機或調(diào)焦變倍驅(qū)動機構(gòu)燒毀。文章采用單片機+FPGA方式進行調(diào)焦變倍控制,單片機負責通信,F(xiàn)PGA根據(jù)命令實現(xiàn)調(diào)焦變倍控制。FPGA實現(xiàn)調(diào)焦變倍的優(yōu)勢在于響應速度更快、此外能夠真正實現(xiàn)控制電機運轉(zhuǎn)和監(jiān)測電機運行狀態(tài)同時進行,當電機運行到限位位置能夠及時停止電機運轉(zhuǎn),有效避免堵轉(zhuǎn)現(xiàn)象發(fā)生。
關(guān)鍵詞:單片機;現(xiàn)場可編程門陣列;調(diào)焦變倍;限位點
0 引言
在光電測量領(lǐng)域中,常常需要使用長焦距、大口徑的光學相機進行目標探測。這種相機由于變倍比比較大,為了使不同距離的目標均能在像面成清晰的像,除了需要控制倍率的變化外,還需要對聚焦位置進行微調(diào)。以往對這種光學相機變倍調(diào)焦的控制比較常用的方法是采用單片機來完成。采用單片機控制的優(yōu)點在于編程方法簡單、易于實現(xiàn)。缺點在于由于需要控制監(jiān)測的信號有變倍電機的驅(qū)動信號、調(diào)焦電機的驅(qū)動信號、變倍電機分別走到兩頭的兩個限位信號、調(diào)焦電機分別走到兩頭的兩個限位信號,這些信號均要實時控制監(jiān)測,因此通常需要采用查詢的方法進行編程處理,這種方法的好處在于能夠及時地控制相機的變倍調(diào)焦,缺點在于由于頻繁的查詢硬件狀態(tài),使得單片機始終處于繁忙的工作狀態(tài),工作效率低。此外由于單片機是以固定周期進行查詢,這常常導致檢測到電機運行到限位狀態(tài)與停止電機運動存在時間差,該時間差可導致電機處于堵轉(zhuǎn)狀態(tài),易于損壞電路板及電機。
本文設(shè)計了一種光學相機調(diào)焦變倍控制系統(tǒng),此系統(tǒng)以FPGA+單片機(MCU)為核心芯片,其中控制電機運行的命令通過中斷的方式發(fā)出,保證電機實時接到命令即運動起來,當電機到達限位位置FPGA得到限位狀態(tài),馬上發(fā)出停止信號,斷掉電機管腳上的電,使電機馬上停止下來。此方法同以往方法相比的好處在于控制電機的實時性更強,能夠有效地控制相機變倍調(diào)焦機構(gòu)的運動、停止,同時避免電機堵轉(zhuǎn),以致燒毀電機或電路板。
1 硬件組成
基于FPGA+單片機的調(diào)焦變倍系統(tǒng)主要包括MCU、通信模塊、FPGA(可編程邏輯器件)模塊、電機驅(qū)動模塊、光耦模塊、電機組成,其組成框圖如圖1所示。其中MCU采用AD公司的ADU812,該款芯片除具有單片機的通用功能外,還具有AD轉(zhuǎn)換功能,當光學鏡頭需要實時回傳當前位置信息時,可通過把電位計同電機連接到一起,把電位計的輸出端接到該MCU的AD輸入口,通過程序可讀到當前電機轉(zhuǎn)到的位置;通信模塊采用16C650,該通信模塊可把MCU的并行數(shù)據(jù)信號轉(zhuǎn)變?yōu)榇行盘杺鬟f出去;FPGA采用EP1K100-208I,電機驅(qū)動模塊采用L298,該芯片具有兩路電機驅(qū)動信號輸出,可同時驅(qū)動兩路電機;光耦模塊采用歐姆龍的EP470,該光耦模塊接法簡單,并且模塊上具有燈光指示,通過燈光可知道當前狀態(tài);電機采用瑞士電機。
1.1 工作原理
人機交互模塊通過通信模塊向MCU發(fā)送調(diào)焦變倍命令,MCU通過中斷接收到命令,實時傳遞給FPGA,F(xiàn)PGA接到命令后,依照命令向調(diào)焦變倍驅(qū)動電路發(fā)送相應的邏輯電平,調(diào)焦變倍驅(qū)動電路接到相應邏輯后,向相應的控制電機發(fā)送正轉(zhuǎn)反轉(zhuǎn)電壓,使電機根據(jù)命令正轉(zhuǎn)或反轉(zhuǎn)。當電機轉(zhuǎn)到限位位置時,光耦模塊作為傳感器檢測到相應電機轉(zhuǎn)到限位位置,把限位狀態(tài)傳遞給FPGA,F(xiàn)PGA接到限位信號立刻向調(diào)焦變倍驅(qū)動電路發(fā)送信號,使其輸出為零電壓,電機立即停止轉(zhuǎn)動。這里使用FPGA完成控制的優(yōu)點在于通過對FPGA編程即可實現(xiàn)調(diào)焦變倍;監(jiān)測電機轉(zhuǎn)動位置;實時停止電機轉(zhuǎn)動并行實現(xiàn),當電機轉(zhuǎn)動到限位位置能及時迅速地使電機停止。
1.2 FPGA控制模塊及電機驅(qū)動模塊
FPGA具有高集成度、高可靠性以及開發(fā)工具智能化等特點,目前逐步成為復雜數(shù)字電路設(shè)計的理想首選。此外FPGA可以通過編程實現(xiàn)硬件的邏輯功能,大大減少了硬件設(shè)計的復雜程度。因此本文以FPGA為核心器件進行調(diào)焦變倍驅(qū)動電路的設(shè)計,這里選用ALTERA公司的EP1K100 -208I,采用VHDL語言編程生成調(diào)焦變倍控制信號、限位信號檢測邏輯、電機驅(qū)動模塊使能控制信號。系統(tǒng)上電后,當MCU接收到人機交互機構(gòu)發(fā)來的調(diào)焦變倍控制命令后,立即把該命令傳遞給FPGA,F(xiàn)PGA接到控制命令,轉(zhuǎn)換成實際控制信號傳遞給電機驅(qū)動模塊,電機驅(qū)動模塊接到控制信號,產(chǎn)生相應的電壓驅(qū)動電機轉(zhuǎn)動,實現(xiàn)相機調(diào)焦變倍的控制。FPGA對電機驅(qū)動模塊的控制原理圖如圖2所示。其中MFOCUS STOP、FOCUS STOP分別為FPGA向電機驅(qū)動模塊發(fā)出的變倍電機和調(diào)焦電機控制使能信號;MFOCUS+、MFOCUS-為FPGA發(fā)送的變倍控制信號,F(xiàn)OCUS+、FOCUS-為FPGA發(fā)送的調(diào)焦控制信號;變倍電機+和變倍電機-為電機驅(qū)動模塊輸出的控制變倍電機轉(zhuǎn)動的電壓,調(diào)焦電機+和調(diào)焦電機-為電機驅(qū)動模塊輸出的控制調(diào)焦電機轉(zhuǎn)動的電壓。當相應電機轉(zhuǎn)到限位點時,F(xiàn)PGA向?qū)鼓芏税l(fā)送低電平信號,則無論相應的電機控制信號是何種狀態(tài),對應的電機驅(qū)動模塊中的電壓輸出信號均為零電平,電機停止運動。當電機沒有運動到限位點時,對應的使能端被FPGA置為高電平,F(xiàn)PGA通過向變倍控制端和調(diào)焦控制端發(fā)送相應信號,控制電機驅(qū)動模塊輸出相應電壓。FPGA發(fā)送的使能信號、電機控制信號及電機驅(qū)動模塊輸出的電壓的對應關(guān)系如表1和表2所示。其中X表示為任意電平。
1.3 MCU模塊及通信模塊
在本設(shè)計中MCU主要作為通信管理芯片,實現(xiàn)與人機交互模塊進行通信。操作者通過人機交互模塊向通信模塊發(fā)送變倍調(diào)焦命令,通信模塊把該命令轉(zhuǎn)發(fā)給MCU,MCU以中斷方式接收命令實時傳遞給FPGA,F(xiàn)PGA對電機驅(qū)動模塊進行控制,從而實現(xiàn)變倍調(diào)焦控制。FPGA對光耦模塊的狀態(tài)進行檢測,并把該狀態(tài)通過MCU模塊和通信模塊傳遞給人機交互模塊,使操作者能掌握當前相機狀態(tài)。因為人機交互模塊發(fā)送數(shù)據(jù)較頻繁,為了防止MCU出現(xiàn)死機現(xiàn)象,這里沒有直接應用人機交互模塊的通信口與MCU的串口連在一起,而是通過通信模塊把二者聯(lián)系起來。這里通信模塊采用了一片16C650,該芯片優(yōu)點在于內(nèi)部具有32字節(jié)的FIFO,可起到數(shù)據(jù)緩存的作用,使MCU能夠穩(wěn)定可靠地接收數(shù)據(jù)。
1.4 光耦模塊
光耦模塊主要起到實時檢測當前電機是否運行到限位點的作用,如果電機沒有運行到限位點,光耦模塊向FPGA輸出0電平,當電機運行到限位點時光耦模塊向FPGA輸出1電平。為了便于觀察和調(diào)試,這里選用歐姆龍的EX470P型光耦,該光耦通過指示燈,可指示出光耦當前輸出狀態(tài)。
2 軟件設(shè)計
本文軟件設(shè)計主要對MCU和FPGA進行編程。其中對MCU編程主要應用C語言進行,對FPGA主要應用VHDL語言編寫。其中MCU程序框圖如圖3所示。FPGA程序流程框圖如圖4所示。
3 結(jié)論
本文介紹了一種基于FPGA的連續(xù)可變焦距相機的變倍調(diào)焦系統(tǒng),該系統(tǒng)同以往單純使用MCU完成變倍調(diào)焦功能的系統(tǒng)相比,采用FPGA控制調(diào)焦、變倍,能夠更快地實現(xiàn)控制電機運動、停止,對于防止電機因為運動到限位位置沒有及時發(fā)出停止操作而產(chǎn)生堵轉(zhuǎn),進而造成電機毀壞或控制系統(tǒng)毀壞具有一定效果,因此具有一定應用價值。