新聞中心

EEPW首頁 > 測試測量 > 設(shè)計應(yīng)用 > 基于USB的高清彩色CCD圖像采集系統(tǒng)

基于USB的高清彩色CCD圖像采集系統(tǒng)

作者: 時間:2012-06-06 來源:網(wǎng)絡(luò) 收藏

1.3 高速2.0接口設(shè)計
圖3為高清的核心傳輸鏈路,2.0高速接口。因為要求將數(shù)據(jù)高速而準(zhǔn)確地傳入PC端,故本系統(tǒng)采用Sla ve FIFO模式,圖像不經(jīng)FX2LP的CPU處理,直接通過從屬端點FIFO將數(shù)據(jù)高速傳入PC端。

本文引用地址:http://2s4d.com/article/193781.htm

c.jpg


圖3中,IFCLK為Slave FIFO的接口時鐘。Slave FIFO接口時鐘信號既可由內(nèi)部提供,也可由外部提供。如果FX2LP設(shè)置為使用外部時鐘源,則IFCLK引腳可被用來提供5~48 MHz之間的任何頻率的時鐘信號。當(dāng)IFCLK被設(shè)置為輸入時,最小頻率為5 MHz。FIFOADR[1:0]引腳用來選擇EP2、EP4、EP6和EP8中的一個FIFO與數(shù)據(jù)總線FD連接。FULL和EMPTY引腳分別是FIFO的滿狀態(tài)和空狀態(tài)標(biāo)志,通過配置CY7C68013A內(nèi)部的相關(guān)寄存器可使得當(dāng)FIFO滿狀態(tài)或者空狀態(tài)的時候向外部控制器發(fā)送相應(yīng)的標(biāo)志。SLWR引腳是寫FIFO控制信號,當(dāng)SLWR被激活時,數(shù)據(jù)總線FD上的數(shù)據(jù)在每個時鐘信號IFCLK上升沿到來時被寫入FIFO。
INT1和PAUSE信號是為了協(xié)調(diào)高清圖像數(shù)據(jù)正常發(fā)送而引入的額外信號。系統(tǒng)中圖像傳感器輸出的模擬信號經(jīng)AD9824采樣后輸出14 bit數(shù)字信號,但數(shù)據(jù)中不包含圖像幀頭信息。為使主機應(yīng)用程序能夠準(zhǔn)確和完整地分離出圖像數(shù)據(jù),本系統(tǒng)設(shè)計方法是在EZ- FX2LP的INT1中斷服務(wù)程序中為每一幀圖像加入特定的幀頭。在EZ-USB在往FIFO里面寫入幀頭的過程中,不允許CPLD繼續(xù)讓AD向FIFO傳送數(shù)據(jù),從而引入了PAUSE信號通知CPLD暫停傳送數(shù)據(jù)的操作。
本系統(tǒng)采用的模擬轉(zhuǎn)換器AD9824是一款14bits的高效信號處理器,而FD[15:0]是16位的數(shù)據(jù)總線,在設(shè)計過程中,我們將高位數(shù)據(jù)線接地,低14位數(shù)據(jù)線接AD9824數(shù)據(jù)并行輸出數(shù)據(jù)。

2 系統(tǒng)軟件實現(xiàn)
2.1 AD相關(guān)雙采樣
相關(guān)雙采樣(CDS)通過對每一個像素點輸出信號采樣兩次來消除低頻噪聲的影響,它是根據(jù)CCD輸出信號和噪聲信號的特點而設(shè)計。圖4為相關(guān)雙采樣時序圖,圖中詳細的指出了相關(guān)采樣的時序要求。CCD每個像元的輸出周期都以復(fù)位脈沖信號開始T1,先清除前一個像素的電荷,以等待下一像素電荷的到來。此時的輸出信號被嵌入復(fù)位電平,并產(chǎn)生復(fù)位噪聲;在圖中T2期間,由于復(fù)位MOSFET漏電流的影響,復(fù)位電平有微小下降,這種現(xiàn)象稱為復(fù)位失調(diào)電壓。此時的輸出信號為復(fù)位電平與復(fù)位噪聲、復(fù)位失調(diào)電壓的疊加;在T3期間,CCD電荷進行水平轉(zhuǎn)移,此時混入移位時鐘干擾;T4期間的輸出為復(fù)位噪聲、復(fù)位失調(diào)電壓和有用光敏輸出信號的疊加。所以相關(guān)雙采樣的原理就是在T2和T4時刻對同一像素點的輸出信號進行采樣,然后將兩次采樣值相減就基本消除了復(fù)位噪聲的干擾,得到信號電平的實際有效幅值。本系統(tǒng)選用的模數(shù)轉(zhuǎn)換器AD9824內(nèi)部具有相關(guān)雙采樣電路,系統(tǒng)實現(xiàn)過程中就是EPM3128產(chǎn)生如圖4所示的SHP、SHP、DATACLK采樣信號,即可完成相關(guān)雙采樣邏輯,很大程度降低了圖像數(shù)據(jù)中包含的噪聲信號。

d.jpg


2.2 USB固件程序設(shè)計
在USB接口設(shè)計中,USB固件編程是整個設(shè)計任務(wù)的核心。USB固件程序用于完成USB設(shè)備的識別、重列舉、設(shè)備請求、USB協(xié)議處理、外部硬件的功能、負(fù)責(zé)與USB主機之間的數(shù)據(jù)通信等。固件的設(shè)計就是使在USB總線上的傳輸能獲得最大的有效的數(shù)據(jù)傳輸速度。
設(shè)備上電之后,就會按照如下的步驟執(zhí)行固件:
1)初始化架構(gòu)全局變量;
2)調(diào)用TD_Init()初始化FX2LP芯片,調(diào)用用戶自定義的初始化函數(shù),返回后USB設(shè)置為未配置狀態(tài),并打開中斷;
3)在緊接著的1秒內(nèi),重新枚舉USB設(shè)備,直到收到SETUP封包;
4)檢查設(shè)備請求,有請求則執(zhí)行相應(yīng)的功能,有的需要跳轉(zhuǎn)到相應(yīng)函數(shù);
5)檢查總線掛起事件,沒有掛起事件則執(zhí)行9);
6)調(diào)用TD_Suspend(),返回失敗代碼則執(zhí)行9);
7)掛起處理器;
8)檢查重新開始事件,事件發(fā)生則調(diào)用TD_Resume(),否則執(zhí)行7);
9)調(diào)用TD_Poll,函數(shù)返回到4)并執(zhí)行。



評論


相關(guān)推薦

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

關(guān)閉