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

          新聞中心

          EEPW首頁 > 模擬技術(shù) > 設(shè)計應(yīng)用 > 基于FPGASPARTAN芯片的CCD的硬件驅(qū)動電路設(shè)計

          基于FPGASPARTAN芯片的CCD的硬件驅(qū)動電路設(shè)計

          作者: 時間:2011-03-09 來源:網(wǎng)絡(luò) 收藏

          CCD驅(qū)動電路的實現(xiàn)是CCD應(yīng)用技術(shù)的關(guān)鍵問題。以往大多是采用普通數(shù)字芯片實現(xiàn)驅(qū)動電路,CCD外圍電路復(fù)雜,為了克服以上方法的缺點,利用VHDL硬件描述語言.運用FPGA技術(shù)完成驅(qū)動時序電路的實現(xiàn)。該方法開發(fā)周期短,并且驅(qū)動信號穩(wěn)定、可靠。系統(tǒng)功能模塊完成后可以先通過計算機進行仿真,再實際投入使用,降低了使用風(fēng)險性。

          1 硬件設(shè)計

          CCD的硬件驅(qū)動電路系統(tǒng)的核心器件是SPARTAN系列芯片XC3S50;CCD采用Atmel公司的CCDTH7888A圖像傳感器;CCD驅(qū)動脈沖由XC3S50提供,脈沖信號產(chǎn)生后由驅(qū)動模塊對脈沖電壓進行變換使其符合TH7888A的驅(qū)動電壓要求。CCD像素輸出電壓經(jīng)過A/D轉(zhuǎn)換模塊處理電路VSP2272芯片的處理得到數(shù)字信號,最后為了方便傳輸和方便后續(xù)模塊對數(shù)字信號的處理將數(shù)字信號由TTL電平轉(zhuǎn)換成LVDS電平進行輸出,整個系統(tǒng)如圖1所示。

          1.1 TH7888A簡介

          CCD圖像傳感器采用THOMSON公司生產(chǎn)的TH7888A。它是一種高性能的幀轉(zhuǎn)移面陣CCD器件,采用四相脈沖驅(qū)動工作,并提供電子快門的功能;同時,它具有2種輸出的模式:單路輸出和雙路輸出。其主要的性能參數(shù)如下:

          光敏區(qū)和存儲區(qū)均為1024×1024像素;速度可以達到30 images/s以上;像元尺寸為14 mm×14 mm;感光區(qū)面積為14.34 mm×14.34 mm;光譜波長范圍在400~700 nm之間;像元輸出頻率為20 MHz。

          1.2 XC3SC50簡介

          XC3S50屬于XILINX公司SPARTAN3系列的FPGA(現(xiàn)場可編程邏輯門陣列),是一種高性能器件,其特點是:器件運用90 μm加工技術(shù);具有高性能低功耗的特點;邏輯密度達1 728個可用門;3路電源供電即I/O端口供電為1.2~3.3V,核心供電1.2V,輔助功能供電2.5V;帶有2 KB容量分布式RAM和7KB容量的BLOCK RAM,高級的邏輯時鐘管理功能。Ahera公司QuartusⅡ開發(fā)系統(tǒng)提供應(yīng)用設(shè)計支持。

          2 軟件設(shè)計

          CCD驅(qū)動時序用VHDL描述。VHDL是可以描述硬件電路功能、信號連接關(guān)系的語言,其具有比電路原理圖更有效地表示硬件電路的特點。由于它與硬件電路無關(guān)等優(yōu)點,用來設(shè)計電路時可大大提高開發(fā)效率。

          由芯片的結(jié)構(gòu)可以知道,CCD的1個周期分成感光和轉(zhuǎn)移2個階段,如圖2所示。

          感光階段即A的上升沿階段,主要實現(xiàn)3個功能:感光陣列的電荷積累,幀存儲區(qū)到轉(zhuǎn)移寄存器的電荷轉(zhuǎn)移以及轉(zhuǎn)移寄存器向輸出的電荷輸出(即行轉(zhuǎn)移);轉(zhuǎn)移階段即A的下降沿階段,主要完成感光陣列所積累的電荷向幀存儲區(qū)的轉(zhuǎn)移(即幀轉(zhuǎn)移),同時清空幀存儲區(qū)的無效電荷。其具體的工作過程分析如下:

          在感光階段即A的上升沿階段,P1,P2,P3,P4保持不變,感光陣列和幀存儲區(qū)之間為阻斷態(tài),兩者之間不會發(fā)生電荷轉(zhuǎn)移現(xiàn)象。但感光陣列接受外界光源照射會積累電荷,在電荷積累的同時,在讀出寄存器時鐘L1,2的控制下,會首先讀出一行電荷。當(dāng)讀完第1行信號之后,會進行1次行轉(zhuǎn)移。在寄存器時鐘的控制下,寄存器時鐘M1中的信號會轉(zhuǎn)移給寄存器M2,然后再次轉(zhuǎn)移到寄存器M3,M4。行轉(zhuǎn)移時,讀出寄存器時鐘L1,L2不變,無像元信號輸出。在行轉(zhuǎn)移結(jié)束之后,進行第2行電荷的讀出;每讀出1行信號,進行1次行轉(zhuǎn)移,如圖3所示,如此循環(huán)1056次則感光階段完成。轉(zhuǎn)移階段即為門控時鐘A的下降沿階段,如圖4所示。幀轉(zhuǎn)移控制信號P1,P2,P3,P4與行轉(zhuǎn)移控制信號M1,M2,M3,M4相同,且一直有效。讀出寄存器時鐘L1,L2無效,不輸出數(shù)據(jù)。在幀轉(zhuǎn)移結(jié)束之后,進入感光階段,存儲區(qū)首先進行1次行轉(zhuǎn)移,開始信號的輸出,同時感光區(qū)像元進入電荷積累。這樣就構(gòu)成了TH7888A工作的1個周期。

          主時鐘脈沖周期定為50 ns,然后主時鐘通過4分頻產(chǎn)生L和R。L作為基礎(chǔ)波形會在以后產(chǎn)生和控制L1,L2和M類波形時使用,L的占空比為2:2,R的占空比為3:1。給L建一個循環(huán)記數(shù)器CL,它的范圍為0~1 065,在感光階段即A的上升沿階段當(dāng)CL小于1057的時候L1=L其余階段L1為低電平,L1取反為L2;當(dāng)1057

          3 驅(qū)動的實現(xiàn)及仿真結(jié)果

          Max+PlusⅡ是Altera公司推出的一種開發(fā)設(shè)計平臺,他功能強大,可以生成文本文件和波形文件。并支持層次設(shè)計和從頂至底的設(shè)計方法,支持VHDL語言。可以編譯并形成各種能夠下載到各種FPGA器件的文件,還可以進行仿真以檢驗設(shè)計的可行性。

          硬件描述語言(VHDL)是用來描述集成電路的結(jié)構(gòu)和功能的標(biāo)準(zhǔn)語言,設(shè)計人員無需通過門級原理圖,而是針對設(shè)計目標(biāo)進行功能描述,從而加快設(shè)計周期,VHDL元件的設(shè)計與工藝無關(guān),方便工藝轉(zhuǎn)換。基于以上優(yōu)點和上述的時序分析,該系統(tǒng)采用VHDL語言實現(xiàn)CCD驅(qū)動時序電路。由于系統(tǒng)的一次周期比較長大概在200 ms,所以波形仿真時的END TIME比較大,圖5所示為感光階段的波形仿真,圖6所示為轉(zhuǎn)移階段的波形仿真圖。

          由圖可知設(shè)計所產(chǎn)生的波形與TH7888A的技術(shù)手冊上的驅(qū)動要求所需脈沖完全吻合,能夠達到TH7888A的驅(qū)動要求。

          4 結(jié)語

          用XILINX公司系列FPGA-SPARTAN芯片,在QuartusⅡ5.0開發(fā)環(huán)境下采用VHDL語言輸入方法開發(fā)設(shè)計出了高分辨率全幀CCD TH7888A的驅(qū)動電路,能夠產(chǎn)生滿足TH7888A要求的驅(qū)動脈沖。與以往常采用的驅(qū)動方法相比其面積大大減小了,采用FPGA進行設(shè)計,簡化了CCD驅(qū)動電路的電路系統(tǒng)。整個設(shè)計編程完畢后進行仿真、時序驗證正確后再下載到器件中,然后進行電路的測試校驗直到達到預(yù)期效果。這樣的設(shè)計修改起來較為方便,只要修改程序即可,不需要像傳統(tǒng)的設(shè)計方法要更換器件修改設(shè)計電路等,實驗證明,把VHDL應(yīng)用于CCD驅(qū)動電路的設(shè)計,可以滿足系統(tǒng)的高速性和電路的集成度等要求。



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁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); })();