摘 要: 設計了一種基于現(xiàn)場可編程邏輯器件的線陣CCD實時圖像采集系統(tǒng)。系統(tǒng)采用線陣CCD TCD2252D作為圖像傳感器,使用CCD專用信號處理芯片AD9826對CCD信號去噪并實現(xiàn)高速A/D轉換,同時用USB接口芯片完成CCD數據的傳輸,最后在上位機顯示采集的圖像數據。整個系統(tǒng)由基于Verilog的CCD驅動模塊、CCD輸出信號處理模塊、雙口RAM緩存模塊、USB接口控制模塊等組成,結合上位機模塊實現(xiàn)對CCD輸出圖像的準確采集、顯示和保存。實驗結果表明,該系統(tǒng)能實時采集和顯示圖像信息,USB傳輸速度可達28 MB/s,系統(tǒng)實時性好。
關鍵詞: 實時采集;電荷耦合器件;現(xiàn)場可編程邏輯器件;信號處理
0 引言
目前,隨著科學研究和工業(yè)生產的需要,越來越多的場合需要實時高速的圖像采集處理系統(tǒng)。線陣CCD作為一種光電轉換圖像傳感器,它利用光電轉換原理將圖像光信號轉換為電信號,經過預處理和A/D轉換后變?yōu)閿底中盘?,通過一種上位機通信方式,可在邏輯器件的控制下實現(xiàn)對圖像數據的采集傳輸,并在PC端進行后續(xù)處理。利用CCD采集圖像具有檢測精度高、處理速度快、抗干擾能力強、運行穩(wěn)定等優(yōu)點,其已廣泛應用于圖像采集、非接觸式測量和實時監(jiān)控等諸多領域[1]。
CCD器件的正常工作需要外加驅動時序脈沖,時序脈沖的產生方法有很多種,如數字電路驅動法、單片機驅動法、EPROM驅動法。雖然這些方法都可以產生時序脈沖,但是電路設計的難度大,兼容性差。本文直接使用FPGA來產生時序脈沖。FPGA高速、并行等優(yōu)勢使系統(tǒng)的設計非常靈活;FPGA的資源豐富,尤其是內部存儲資源,可作為CCD數據的緩存,能夠大大簡化系統(tǒng)硬件電路的設計。
本文設計了一種基于FPGA的線陣CCD實時圖像采集系統(tǒng),它采用FPGA+USB的平臺結構,以線陣CCD作為圖像傳感器,使用CCD專用信號處理芯片AD9826對CCD信號去噪并實現(xiàn)高速A/D轉換,同時用USB接口芯片完成CCD數據的傳輸,最后在上位機上顯示采集的圖像數據。
1 系統(tǒng)設計方案
系統(tǒng)主要由CCD驅動模塊、信號處理模塊、數據緩存模塊、雙口RAM緩存模塊、USB接口模塊和上位機模塊等組成,系統(tǒng)結構框圖如圖1所示。上電后,線陣CCD圖像傳感器在FPGA的驅動下接收前端圖像信息,將光信號轉換成電信號輸出;然后,模數轉換器AD9826對CCD輸出信號作相關雙采樣并轉換成數字信號,F(xiàn)PGA配置內部雙口RAM作為數字信號的緩存區(qū);最后,USB接口控制芯片把數字信號傳輸到上位機,在VS2008環(huán)境下開發(fā)上位機應用程序,實現(xiàn)圖像數據的實時顯示和存儲,以便后續(xù)數據處理。
1.1 主控制器FPGA
FPGA是整個系統(tǒng)的核心,只有深入了解其內部結構,才能有效利用它。FPGA能夠用較少資源實現(xiàn)較高的性能和更多的功能,滿足低成本要求。本設計中的FPGA采用Altera公司的Cyclone IV系列的EP4CE6E22C8,其內部具有6 272個邏輯單元,30個M9K內存單元,270 Kbit嵌入式存儲器,2個鎖相環(huán),92個用戶I/O,可自由分配其功能與外部電路的連接。在該系統(tǒng)中,F(xiàn)PGA主要負責CCD的驅動控制、AD9826的采樣控制、雙口RAM的配置以及對USB接口芯片的控制。經過資源估算,該FPGA完全可以實現(xiàn)系統(tǒng)的功能。
1.2 CCD驅動模塊
線陣CCD是采集系統(tǒng)的重要器件,完成光信號向電信號的轉換。本文采用的線陣CCD是東芝公司生產的TCD2252D。TCD2252D是一款高靈敏度、低暗電流的雙溝道彩色線陣CCD,它由光敏區(qū)、轉移柵、模擬移位寄存器及信號輸出單元組成。該器件包含3列2 700有效像元的光敏二極管,分別采集紅綠藍三色,最小像素單元尺寸為,相鄰光敏列間距為64[2]。
在線陣CCD圖像采集應用中,CCD對驅動時序要求較為嚴格,只有精確的時序驅動才能保證CCD輸出正確的像素信號。所以在CCD的應用中,首先要設計滿足時序要求的驅動電路。根據芯片手冊,該器件工作在5 V驅動脈沖、12 V電源條件下,其中6路驅動脈沖分別是轉移脈沖SH、二相驅動脈沖F1和F2、采樣保持脈沖SP、復位脈沖RS和箝位脈沖CP。
圖2所示為TCD2252D驅動時序仿真波形,這六路驅動時序有著嚴格的時序關系。轉移脈沖SH高電平期間驅動脈沖F1必須為高電平,而且SH的下降沿必須對應F1的高電平才能保證光敏區(qū)的信號電荷向模擬移位寄存器并行轉移。驅動脈沖F1和F2是兩個占空比為1∶2、頻率為0.5 MHz且極性相反的方波脈沖;SP、RS、CP均是占空比為1∶8、頻率為1 MHz的方波脈沖。SH脈沖的周期決定了光積分時間的長短。由于CCD正常輸出時會有76個啞元像素和2 700個有效像素,所以在一個行周期內至少要有2 776個RS脈沖,從而可以計算出每次光積分所需的時間為TSH>2 776TRS=2 776 。為了保證后續(xù)AD9826對CCD信號的有效采樣,在仔細分析CCD輸出信號特點后,設置一個RS上升沿計數器,當該計數器計數到64時置1,AD9826開始對CCD有效輸出信號進行相關雙采樣。
TCD2252D需要5 V的CMOS驅動電平,但FPGA輸出為3.3 V的TTL電平,因此需要使用電平轉換電路增強FPGA輸出信號的驅動能力。TI公司研發(fā)的電平轉換芯片SN74LVC4245能實現(xiàn)8位總線的3.3 V和5 V邏輯電平的雙向轉換,工作頻率高達10 MHz,能滿足本系統(tǒng)CCD驅動頻率1 MHz的要求。
1.3 信號處理模塊
由于CCD輸出的是帶有暗電流噪聲和輸出放大器復位脈沖串擾的模擬信號,因此必須進行信號處理才能為后續(xù)電路使用[3]。本系統(tǒng)中,使用ADI公司生產的專用CCD信號處理芯片AD9826,該芯片集成16位ADC,速度可達15 MS/s。作為模數轉換芯片,其片內集成相關雙采樣(Correlated Double Sampler,CDS)等多種功能電路,提高了信號預處理的質量,簡化了電路的設計。
AD9826由VINR、VNG、VINB三路獨立采樣通道電路組成,每個采樣通道都由輸入箝位電路、相關雙采樣電路、偏移DAC和可編程增益放大器組成,并通過多路復用(MUX)接入一個16位模數轉換器,采樣輸出信號通過8位并行數據總線分時輸出16位數據。此處系統(tǒng)設計只取一路線陣CCD輸出,選擇VINR紅色通道作為信號輸入,采用單通道CDS和16 bit轉換模式。CCD輸出R信號經過隔直電容,將有效信號耦合輸入到AD9826中VINR通道采樣,其他兩個通道要做接地處理,以防止對VINR通道產生干擾,如圖3所示。
AD9826的工作模式可通過三線雙向串行接口(SCLK、SLOAD、SDTATA)配置內部寄存器來設定。串行時鐘SCLK最高頻率為10 MHz,系統(tǒng)采用5 MHz頻率,由主時鐘50 MHz分頻可得。CCD輸出信號幅值為0~4 V,不需要AD9826內部增益放大。
AD9826工作在單通道CDS工作模式下,CDS電路在每一像素周期內對輸入的CCD信號采樣兩次。CDSCLK1的下降沿采樣參考信號,CDSCLK2的下降沿采樣有效信號。CDS電路輸出的是兩次采樣值之差,消除了噪聲,此時信號即為有效視頻信號。
分析CCD輸出信號特點,F(xiàn)PGA內部產生AD9826的工作時序,確保對CCD輸出信號的正確采樣。CCD連續(xù)輸出2 700個有效像素單元信號之前,先輸出64個啞元信號,此處在CCD第64個復位脈沖上升沿到來后FPGA設置采樣使能信號cds_en有效??紤]到單通道CDS模式下,模數轉換的數據會延遲3個采樣時鐘周期輸出,在第2 768個復位脈沖上升沿后拉低采樣使能cds_en,這樣才能采集到完整的2 700個CCD像素信號。由于TCD2252D輸出像元頻率為1 MHz,AD9826的相關雙采樣時鐘CDSCLK1、CDSCLK2和采樣時鐘ADCLK都設置為1 MHz。
1.4 數據緩存模塊
數據緩存模塊的功能是保證數據采集與傳輸的連續(xù)性。由于USB接口芯片的傳輸速率和A/D轉換后的數據速率不同步,需要在兩者之間增加一個數據緩存單元。目前常用的數據緩存器件有SRAM、雙口RAM、FIFO等。高速數據采集系統(tǒng)中,常使用異步FIFO進行數據緩存,但只能對FIFO順序地讀/寫數據。當需要存取特定單元的數據而非全部存儲空間時,系統(tǒng)的靈活性大大降低。因此本設計采用雙口RAM進行數據緩存,較好地解決了時鐘不匹配的問題。
為了有效利用FPGA片內資源,簡化電路設計,本文在FPGA內部定制雙口RAM來緩存模數轉換后的數字信號。EP4CE6E22C8內部集成了30個M4K RAM塊,足夠CCD輸出一幀圖像數據(2 700×16 bit)的緩存。此處在FPGA內部配置深度為4 096、位寬為16 bit的雙口RAM。寫時鐘和AD9826的采樣時鐘ADCLK一致,寫地址計數到2 699時,開始讀RAM。讀時鐘與寫USB端點FIFO的時鐘IFCLK一致,保證數據傳輸的完整性和穩(wěn)定性。
1.5 USB接口模塊
USB接口模塊的功能是將FPGA內部緩存的圖像數據讀出來,傳輸給上位機。USB電路設計的主要對象是USB接口控制芯片。目前,市場上多家半導體廠商提供USB接口控制芯片。本系統(tǒng)采用Cypress公司的EZ-USB FX2系列USB接口控制芯片CY7C68013來傳輸圖像數據。CY7C68013是一款具有USB2.0協(xié)議的微控制處理器,最高傳輸速率可達480 Mb/s,其片內集成USB2.0收發(fā)器、增強型的8051控制器、智能串行接口引擎(SIE)、4 KB的FIFO存儲器和可編程I/O接口。
由于FX2芯片集成度高,用戶在不熟悉復雜的USB底層協(xié)議的情況下也可以順利開發(fā)USB接口設備。FX2有Slave FIFO和GPIF兩種接口方式。此處采用Slave FIFO接口方式進行數據通信。在該模式下,F(xiàn)PGA作為主機,與USB通信傳輸數據不經過CPU的控制,而是經過芯片內部端點FIFO來傳輸,傳輸速度和CPU使用率更高。CY7C68013與FPGA的接口電路如圖4所示,CY7C68013的并行數據引腳和控制狀態(tài)引腳直接與FPGA接口相連即可。
USB接口設計主要是設計FPGA對USB接口芯片的邏輯控制[4]。FX2工作于Slave FIFO模式時,F(xiàn)PGA可以像對普通FIFO一樣對FX2中端點的數據緩沖區(qū)進行讀寫。FPGA提供給芯片普通的時序信號、握手信號、讀寫信號和輸出允許信號。本系統(tǒng)FX2工作于同步寫方式,接口時鐘由FPGA提供。當SLWR有效時,F(xiàn)D總線上的數據在每個時鐘信號IFCLK上升沿時被寫入FIFO。
FPGA程序中采用狀態(tài)機實現(xiàn)同步寫Slave FIFO方式,狀態(tài)描述如下:(1)IDLE:總線空閑,當雙口RAM中存儲的數據達到設定深度時,寫事件發(fā)生,轉到狀態(tài)state1;(2)state1:指向IN FIFO端口,激活FIFOADR[1:0],選擇端點6,然后轉向狀態(tài)state2;(3)state2:判斷FIFO“滿”標志FLAGB的狀態(tài),如果為假,即FIFO不滿,則轉向狀態(tài)state3,否則停留在該狀態(tài);(4)state3:寫數據到總線上,激活SLWR,寫數據到FIFO并增加FIFO指針,然后轉向狀態(tài)state4;(5)state4:檢測是否有更多的數據要寫,如果有則轉向狀態(tài)state2,否則轉向狀態(tài)IDLE。
1.6 上位機模塊
上位機用來檢測USB設備的連接狀態(tài),顯示采集到的CCD數據。上位機采集有兩個采集模式:實時采集模式連續(xù)地接收來自CCD的圖像數據并顯示;單幀采集模式單次接收來自CCD的圖像數據并顯示。保存數據將當前顯示的一幀像素數據保存在安裝目錄下。
正常情況下,系統(tǒng)的USB設計包括三個方面的程序設計:固件程序設計、設備驅動程序設計和上位機應用程序設計[5]。Cypress公司為開發(fā)者提供了完善的軟件開發(fā)工具包,開發(fā)者只需在官方例程固件框架上修改TD_Init函數即可變?yōu)樽约旱墓碳?,至于USB驅動程序可以使用工具包自帶的通用驅動程序,只需將驅動引導文件中對應的VID和PID修改成與固件一致即可。上位機程序在VS2008環(huán)境下開發(fā),用戶可以使用CYIOCTL控制函數類和CyAPI控制函數類來實現(xiàn)對USB設備讀取數據。
2 實驗分析
在室光條件下,系統(tǒng)以線陣CCD作為圖像傳感器,采集外界圖像信息。當雙口RAM中一幀數據存儲完信號和讀使能信號有效時,USB接口芯片開始傳輸CCD圖像數據,送給上位機顯示。圖5為線陣CCD傳感器部分遮光時采集到的一幀圖像,圖中低電平為CCD被遮部分的光強分布。由采集到的數據和上位機顯示可以看出采集系統(tǒng)能夠實現(xiàn)CCD數據的實時采集。
3 結論
本文設計了基于FPGA的線陣CCD實時采集系統(tǒng),以線陣CCD作為圖像傳感器,使用CCD專用信號處理芯片AD9826對CCD信號去噪并實現(xiàn)高速A/D轉換,同時用USB接口芯片完成CCD數據的傳輸,最后在上位機上顯示采集的圖像數據。系統(tǒng)采用集成了相關雙采樣、可編程增益放大器的專用CCD處理芯片,而不是像以往那樣采用分立元件搭建模擬處理電路,并且充分利用FPGA內部RAM作數據緩存,簡化了電路設計,減小了功耗,增加了系統(tǒng)的靈活性。系統(tǒng)擴展性較強,適用于機器視覺、非接觸測量等領域。
參考文獻
[1] 王慶有.CCD應用技術[M].天津:天津大學出版社,2000.
[2] 陸榮鑑,陳豐饒.基于CPLD的彩色線陣CCD在木板色選系統(tǒng)中的應用[J].機電工程,2012(6):737-740.
[3] 黃濤,廖勝,韓維強.基于AD9978A雙通道的CCD相機設計[J].電子技術應用,2013,39(3):57-60.
[4] 辛鳳艷,孫曉曄.基于FPGA和線陣CCD的高速圖像采集系統(tǒng)[J].計算機技術與發(fā)展,2012(8):205-207,212.
[5] 薛圓圓,趙建領.USB應用開發(fā)寶典[M].北京:人民郵電出版社,2011.