<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于FPGA+單片機的調焦變倍系統(tǒng)設計

          基于FPGA+單片機的調焦變倍系統(tǒng)設計

          作者: 時間:2012-05-09 來源:網絡 收藏

          摘要:在光電探測領域中以往對相機調焦多采用(MCU)控制完成,其優(yōu)點在于易于編程實現(xiàn)。因為要求實時控制相機的、調焦,其程序的編寫多采用查詢方式實現(xiàn),這就使始終處于十分繁忙的狀態(tài),利用率降低,此外當調焦、電機到達限位位置時,由于是采用查詢方式工作,這就導致電機到達限位與實際停止電機轉動之間存在時間差,這種時間差導致電機發(fā)生堵轉,容易把電機或調焦變倍驅動機構燒毀。文章采用單片機+方式進行調焦變倍控制,單片機負責通信,根據命令實現(xiàn)調焦變倍控制。實現(xiàn)調焦變倍的優(yōu)勢在于響應速度更快、此外能夠真正實現(xiàn)控制電機運轉和監(jiān)測電機運行狀態(tài)同時進行,當電機運行到限位位置能夠及時停止電機運轉,有效避免堵轉現(xiàn)象發(fā)生。
          關鍵詞:單片機;現(xiàn)場可編程門陣列;調焦變倍;限位點

          0 引言
          在光電測量領域中,常常需要使用長焦距、大口徑的光學相機進行目標探測。這種相機由于變倍比比較大,為了使不同距離的目標均能在像面成清晰的像,除了需要控制倍率的變化外,還需要對聚焦位置進行微調。以往對這種光學相機變倍調焦的控制比較常用的方法是采用單片機來完成。采用單片機控制的優(yōu)點在于編程方法簡單、易于實現(xiàn)。缺點在于由于需要控制監(jiān)測的信號有變倍電機的驅動信號、調焦電機的驅動信號、變倍電機分別走到兩頭的兩個限位信號、調焦電機分別走到兩頭的兩個限位信號,這些信號均要實時控制監(jiān)測,因此通常需要采用查詢的方法進行編程處理,這種方法的好處在于能夠及時地控制相機的變倍調焦,缺點在于由于頻繁的查詢硬件狀態(tài),使得單片機始終處于繁忙的工作狀態(tài),工作效率低。此外由于單片機是以固定周期進行查詢,這常常導致檢測到電機運行到限位狀態(tài)與停止電機運動存在時間差,該時間差可導致電機處于堵轉狀態(tài),易于損壞電路板及電機。
          本文了一種光學相機調焦變倍控制,此以FPGA+單片機(MCU)為核心芯片,其中控制電機運行的命令通過中斷的方式發(fā)出,保證電機實時接到命令即運動起來,當電機到達限位位置FPGA得到限位狀態(tài),馬上發(fā)出停止信號,斷掉電機管腳上的電,使電機馬上停止下來。此方法同以往方法相比的好處在于控制電機的實時性更強,能夠有效地控制相機變倍調焦機構的運動、停止,同時避免電機堵轉,以致燒毀電機或電路板。

          1 硬件組成
          FPGA+單片機的調焦變倍主要包括MCU、通信模塊、FPGA(可編程邏輯器件)模塊、電機驅動模塊、光耦模塊、電機組成,其組成框圖如圖1所示。其中MCU采用AD公司的ADU812,該款芯片除具有單片機的通用功能外,還具有AD轉換功能,當光學鏡頭需要實時回傳當前位置信息時,可通過把電位計同電機連接到一起,把電位計的輸出端接到該MCU的AD輸入口,通過程序可讀到當前電機轉到的位置;通信模塊采用16C650,該通信模塊可把MCU的并行數據信號轉變?yōu)榇行盘杺鬟f出去;FPGA采用EP1K100-208I,電機驅動模塊采用L298,該芯片具有兩路電機驅動信號輸出,可同時驅動兩路電機;光耦模塊采用歐姆龍的EP470,該光耦模塊接法簡單,并且模塊上具有燈光指示,通過燈光可知道當前狀態(tài);電機采用瑞士電機。

          本文引用地址:http://www.ex-cimer.com/article/171484.htm

          a.jpg


          上一頁 1 2 3 4 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();