《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 其他 > 業(yè)界動(dòng)態(tài) > 基于PCI Express總線的高幀頻CMOS相機(jī)圖像采集系統(tǒng)設(shè)計(jì)

基于PCI Express總線的高幀頻CMOS相機(jī)圖像采集系統(tǒng)設(shè)計(jì)

2009-06-30
作者:楊會(huì)玲1, 楊會(huì)偉2, 王 軍3

  摘? 要: 基于PCI Express總線設(shè)計(jì)了一種高幀頻CMOS相機(jī)圖像采集系統(tǒng)。選用幀頻250幀/s的LUPA-300作為高幀頻圖像傳感器,通過(guò)FPGA實(shí)現(xiàn)對(duì)圖像傳感器的參數(shù)配置與圖像數(shù)據(jù)處理,采用PCI Express總線作為圖像數(shù)據(jù)傳輸總線,大大提高了傳輸速度。實(shí)驗(yàn)結(jié)果表明該系統(tǒng)結(jié)構(gòu)簡(jiǎn)單、成像清晰穩(wěn)定、拍攝速度快,可應(yīng)用于高速目標(biāo)的拍攝。
  關(guān)鍵詞: PCI Express; 高幀頻; CMOS圖像傳感器; FPGA

?

  隨著信息科學(xué)的飛速發(fā)展,人們對(duì)數(shù)據(jù)采集系統(tǒng)的要求愈來(lái)愈高。數(shù)據(jù)采集技術(shù)是現(xiàn)代信號(hào)處理和信號(hào)存儲(chǔ)的基礎(chǔ),廣泛應(yīng)用于雷達(dá)、通信、遙測(cè)遙感等領(lǐng)域。在數(shù)字信號(hào)處理及存儲(chǔ)工作中,實(shí)現(xiàn)對(duì)所需數(shù)據(jù)高速、實(shí)時(shí)采集具有重要意義。為了實(shí)現(xiàn)對(duì)高幀頻CMOS相機(jī)高速、大容量圖像數(shù)據(jù)實(shí)時(shí)存儲(chǔ),要求光電測(cè)控設(shè)備的數(shù)據(jù)采集系統(tǒng)具有數(shù)據(jù)傳輸效率高、傳輸延時(shí)低、系統(tǒng)集成度高、系統(tǒng)可維護(hù)性高等特點(diǎn)?,F(xiàn)在的大多數(shù)圖像采集卡多數(shù)是基于PCI接口的,其數(shù)據(jù)傳輸率很難滿足大容量、高速的圖像數(shù)據(jù)傳輸。PCI Express(簡(jiǎn)稱為PCI-E)是一種新型的點(diǎn)對(duì)點(diǎn)的串行連接的I/O體系。PCI-E為總線技術(shù)帶來(lái)了顛覆性的革命,其所能提供的高帶寬和引入低延遲是其前幾任總線所望塵莫及的。相比傳統(tǒng)的PCI總線,PCI-E總線有很大的優(yōu)勢(shì):首先,PCI-E降低了芯片連接的管腳數(shù)量,簡(jiǎn)化了PCB板的設(shè)計(jì)和布局;其次,PCI-E是非共享的串行差分接口,不會(huì)出現(xiàn)多個(gè)設(shè)備共享帶寬的情況,PCI-E X1的理論帶寬為發(fā)送、接收均為250 MB/s,PCI-E X4發(fā)送、接收的理論帶寬均為1 GB/s,并且在PCI-E 2.0協(xié)議中會(huì)使用更高速5 GB/s的物理層收發(fā)器,其速度將會(huì)翻倍。因此,PCI-E總線接口特別適合于超高速的數(shù)據(jù)傳送,研發(fā)基于PCI-E總線接口的數(shù)據(jù)采集卡具有重要意義[1-3]。
  本文基于PCI Express總線設(shè)計(jì)出該高速CMOS相機(jī)圖像采集系統(tǒng)。在本系統(tǒng)中,高速CMOS相機(jī)幀頻為250幀/s,分辨率為640×480,每個(gè)像元數(shù)據(jù)位為10位,系統(tǒng)中采用FPGA芯片實(shí)現(xiàn)對(duì)整個(gè)系統(tǒng)的控制,利用FPGA內(nèi)部提供的FIFO IP核實(shí)現(xiàn)了高速圖像數(shù)據(jù)的緩存處理。為了提高CPU利用率,設(shè)計(jì)中專門(mén)采用2個(gè)FIFO的乒乓操作來(lái)實(shí)現(xiàn)圖像數(shù)據(jù)的緩存處理。
1 系統(tǒng)構(gòu)成及原理
  整個(gè)高幀頻圖像采集系統(tǒng)由成像單元、FPGA控制單元、PCI-E圖像采集單元、驅(qū)動(dòng)程序及圖像采集存儲(chǔ)軟件組成,如圖1所示。


  系統(tǒng)工作原理:系統(tǒng)上電后,F(xiàn)PGA控制單元首先對(duì)高幀頻CMOS傳感器內(nèi)部參數(shù)實(shí)現(xiàn)配置,配置完成后,高幀頻CMOS圖像傳感器開(kāi)始工作,通過(guò)內(nèi)部的光電轉(zhuǎn)換、模數(shù)轉(zhuǎn)換將外部鏡頭采集到的圖像轉(zhuǎn)換成數(shù)字圖像的幀頻信號(hào)、行頻信號(hào)、像素時(shí)鐘信號(hào),并將圖像數(shù)據(jù)傳送給FPGA內(nèi)部的FIFO進(jìn)行緩存處理。為了提高數(shù)據(jù)的緩存處理速度,提高CPU的利用率,系統(tǒng)中采用了2個(gè)FIFO的乒乓操作來(lái)完成數(shù)據(jù)的緩存。經(jīng)過(guò)FIFO緩存處理后的圖像數(shù)據(jù)輸入到PCI-E圖像采集單元的DMA數(shù)據(jù)流,上位機(jī)軟件結(jié)合驅(qū)動(dòng)程序控制PCI-E采集單元,通過(guò)中斷操作觸發(fā)DMA操作,將數(shù)據(jù)通過(guò)DMA數(shù)據(jù)流傳輸?shù)接?jì)算機(jī)內(nèi)部存儲(chǔ)器中,上位機(jī)軟件實(shí)現(xiàn)圖像的處理與顯示,重現(xiàn)成像單元捕獲的圖像。
2 系統(tǒng)硬件
2.1高幀頻CMOS成像單元

  高幀頻CMOS 成像單元主要由CMOS圖像傳感器與FPGA控制芯片組成。CMOS圖像傳感器是系統(tǒng)的成像部件,它是系統(tǒng)的“眼睛”,能夠捕獲高速運(yùn)動(dòng)物體的圖像,其電路輸出為數(shù)字信號(hào)圖像數(shù)據(jù)。本文中所采用的CMOS圖像傳感器是Cypress公司推出的產(chǎn)品LUPA-300,它將模擬圖像獲取、數(shù)字化和數(shù)字信號(hào)處理的功能集成在單一芯片中,分辨率為640×480;幀頻達(dá)到250幀/s,屬于高幀頻圖像傳感器,可以實(shí)現(xiàn)動(dòng)態(tài)目標(biāo)的跟蹤拍攝;動(dòng)態(tài)范圍為61 dB,采用多斜率積分最高可達(dá)到90 dB;內(nèi)部集成有4個(gè)獨(dú)立的模數(shù)轉(zhuǎn)換器(ADC),采樣率為80 MS/s,集成的ADC提供10 bit的數(shù)字信號(hào)輸出,內(nèi)部有大量的寄存器和控制器,可以對(duì)傳感器的工作狀態(tài)進(jìn)行選取,實(shí)現(xiàn)實(shí)時(shí)調(diào)整;采用同步快門(mén),具有隨機(jī)開(kāi)窗與亞采樣功能,可對(duì)片上任意感興趣的區(qū)域進(jìn)行讀取,并且每幀圖像可以讀取不同的區(qū)域。該傳感器的時(shí)鐘頻率可達(dá)到80 MHz。
  LUPA-300供電要求比較復(fù)雜,需要提供6種電源:VDDA(模擬電源+2.5 V)、VDDD(數(shù)字電源+2.5 V)、VPIX(像素電源+2.5 V)、VRES(復(fù)位電源+3.3 V)、VMEM_H(像素存儲(chǔ)電源+3.3 V)、VADC(ADC電源+2.5 V)。由于需要電源較多,在電路設(shè)計(jì)中考慮到元件的管腳分布情況,盡量做到電源和地到相應(yīng)的管腳距離最短。同時(shí)為了保證傳感器工作穩(wěn)定,在位于傳感器底座下方的TOP層進(jìn)行了大面積鋪地。出于冗余保護(hù)的考慮,傳感器的所有供電管腳都并接了2個(gè)0.1 μF和0.01 μF電容。為了使傳感器正常成像,選用F=50 mm的V5013標(biāo)準(zhǔn)鏡頭。外殼由鋁制材料加工而成,正中心位置提供鏡頭接口。
2.2 時(shí)序控制與自動(dòng)化參數(shù)配置
??? LUPA-300圖像傳感器內(nèi)部有16個(gè)寄存器,地址從0000~1111,每個(gè)寄存器有16位,其中高4位代表寄存器的地址,低12位是寄存器的數(shù)據(jù),每一位都有特定的含義,通過(guò)改變每一位的數(shù)值就可以改變LUPA-300的功能特性。LUPA-300傳感器提供了專用的SPI總線接口,設(shè)計(jì)中采用FPGA與圖像傳感器之間通過(guò)SPI總線傳輸協(xié)議實(shí)現(xiàn)對(duì)LUPA-300圖像傳感器內(nèi)部參數(shù)的配置。SPI總線的工作時(shí)序如圖2所示,每個(gè)數(shù)據(jù)有16位,后4位(bit<15:12>)為地址位,對(duì)應(yīng)于CMOS圖像傳感器內(nèi)部寄存器的地址,前12位(bit<11:0>)為數(shù)據(jù)位,對(duì)應(yīng)于系統(tǒng)成像單元的成像參數(shù)。


  為了方便地更改傳感器內(nèi)部參數(shù),以根據(jù)不同需求來(lái)改變傳感器的工作狀態(tài),系統(tǒng)采用了串行通信。上位機(jī)通過(guò)串行通信向FPGA發(fā)送數(shù)據(jù),F(xiàn)PGA接收到數(shù)據(jù)后對(duì)數(shù)據(jù)進(jìn)行處理,一方面將接收到的數(shù)據(jù)反饋給計(jì)算機(jī),檢驗(yàn)數(shù)據(jù)的正確性;另一方面通過(guò)SPI總線將數(shù)據(jù)傳送到圖像傳感器內(nèi)部,實(shí)現(xiàn)內(nèi)部參數(shù)的改變。結(jié)構(gòu)原理圖如圖3所示。

?


2.3 FPGA控制單元
  FPGA控制芯片是系統(tǒng)的“指揮中心”,也是系統(tǒng)設(shè)計(jì)中的一個(gè)核心器件,用以協(xié)調(diào)整個(gè)系統(tǒng)的工作,其作用貫穿于整個(gè)系統(tǒng)。完成的主要功能包括:(1)進(jìn)行自身的I/O口和有關(guān)功能控制寄存器的初始化;(2)系統(tǒng)上電后完成對(duì)高幀頻CMOS圖像傳感器的圖像參數(shù)配置;(3)內(nèi)部FIFO資源實(shí)現(xiàn)高速圖像數(shù)據(jù)的緩存處理;(4)為PCI9054接口芯片提供外部中斷信號(hào)及DMA控制時(shí)序; (5)接收計(jì)算機(jī)的控制命令控制整個(gè)系統(tǒng)的功能實(shí)現(xiàn)。本系統(tǒng)選用Xilinx公司的XC2S200,片內(nèi)集成有56 KB的Block RAM, 4個(gè)延遲鎖相環(huán)DLL(Delay-locked Loop)。
  XC2S200能兼容多種I/O電壓,并且具有豐富的I/O引腳。核心電壓為+2.5 V,設(shè)計(jì)中采用的I/O電壓為+3.3 V。
2.4 圖像采集單元
  為了實(shí)現(xiàn)對(duì)CMOS相機(jī)大容量、高速圖像數(shù)據(jù)記錄,要求數(shù)據(jù)采集系統(tǒng)具有數(shù)據(jù)傳輸效率高、傳輸延時(shí)低、系統(tǒng)集成度高、系統(tǒng)可維護(hù)性高等特點(diǎn)。本系統(tǒng)采用PCI-E總線實(shí)現(xiàn)數(shù)據(jù)的傳輸,PCI-E采用了目前業(yè)內(nèi)流行的點(diǎn)對(duì)點(diǎn)串行連接,比起PCI以及更早期的計(jì)算機(jī)總線的共享并行架構(gòu),每個(gè)設(shè)備都有自己的專用連接,不需要向整個(gè)總線請(qǐng)求帶寬,而且可以把數(shù)據(jù)傳輸率提高到一個(gè)很高的頻率,達(dá)到PCI所不能提供的高帶寬。相對(duì)于傳統(tǒng)PCI總線在單一時(shí)間周期內(nèi)只能實(shí)現(xiàn)單向傳輸,PCI-E的雙單工連接能提供更高的傳輸速率和質(zhì)量,它們之間的差異跟半雙工和全雙工類似。
  系統(tǒng)采用PCI-E插卡實(shí)現(xiàn)圖像數(shù)據(jù)的采集,采集單元主要由采集接口電路與圖像采集卡組成。采集接口電路與硬件的數(shù)據(jù)總線和控制總線相連,并提供采集單元的標(biāo)準(zhǔn)數(shù)據(jù)接口;采集單元通過(guò)采集接口電路與系統(tǒng)的控制總線和數(shù)據(jù)總線相連。PCI-E接口芯片采用PLX公司的專用接口芯片PEX8311來(lái)實(shí)現(xiàn)[4]。PEX8311是PLX公司推出的第一款從PCI-E總線到本地總線的接口芯片,它完全符合PCI-E1.0規(guī)范,支持熱插拔功能,并且其本地端寄存器與PLX公司PCI系列接口芯片基本兼容,這為使用PLX公司產(chǎn)品的用戶開(kāi)發(fā)PCI-E接口提供了方便。PEX8311在PCI-E端實(shí)現(xiàn)了×1的PCI-E接口,2對(duì)差分線分別負(fù)責(zé)發(fā)送和接收數(shù)據(jù),一對(duì)參考時(shí)鐘差分線供PCI-E接口的通信雙方在訓(xùn)練時(shí)建立連接使用,接口的單向數(shù)據(jù)傳輸率為2.5 Gb/s,由于串行數(shù)據(jù)采用8 bit/10 bit編碼,其有效總線帶寬為256 MB/s;本地端為32 bit、66 MHz的1.ocal Bus,總線帶寬為264 MB/s。
3 系統(tǒng)軟件
3.1 驅(qū)動(dòng)程序

??? PCI-E總線與PCI總線在軟件層是完全兼容的,因此,PCI-E卡驅(qū)動(dòng)程序的開(kāi)發(fā)過(guò)程與PCI設(shè)備驅(qū)動(dòng)程序的開(kāi)發(fā)過(guò)程是一樣的,本設(shè)計(jì)開(kāi)發(fā)了PCI-E卡的WDM 驅(qū)動(dòng)程序。
??? 驅(qū)動(dòng)程序的開(kāi)發(fā)選用Comppuware公司的開(kāi)發(fā)工具包Driver Studio,Driver Studio開(kāi)發(fā)工具包簡(jiǎn)化了Windows平臺(tái)下設(shè)備驅(qū)動(dòng)程序的開(kāi)發(fā)、調(diào)試以及測(cè)試,它包括VtoolsD、DriverWorks和SoftICE等開(kāi)發(fā)工具。該軟件包是基于C/C++的,支持Borland C++和Visual C++,使用和維護(hù)都比較方便,它可以集成到Visual C++環(huán)境中,針對(duì)特定的應(yīng)用生成相應(yīng)的驅(qū)動(dòng)程序框架,在編程中采用面向?qū)ο蟮木幊谭椒?,極大地提高了編程效率。
  驅(qū)動(dòng)程序主要完成的功能:(1)設(shè)備的初始化,找到所要控制的硬件,在驅(qū)動(dòng)程序?qū)ο笾性O(shè)置驅(qū)動(dòng)程序分發(fā)例程的程序入口點(diǎn);建立所有驅(qū)動(dòng)程序?qū)ο蠡蚱渌到y(tǒng)資源; (2)創(chuàng)建設(shè)備對(duì)象,利用AddDevice函數(shù)創(chuàng)建了一個(gè)設(shè)備對(duì)象,并將其連接到以PDO為底的設(shè)備堆棧中;(3)中斷的響應(yīng)與處理,完成了對(duì)外部硬件中斷的響應(yīng),并將中斷信息傳遞給應(yīng)用程序,通過(guò)應(yīng)用程序?qū)崿F(xiàn)一定的功能;(4)DMA操作,完成DMA的讀寫(xiě)操作,并在DMA傳輸結(jié)束后產(chǎn)生DMA中斷,通過(guò)響應(yīng)的DMA中斷處理將傳輸?shù)臄?shù)據(jù)發(fā)送到外部總線或應(yīng)用程序。
3.2 上位機(jī)軟件
  上位機(jī)應(yīng)用程序使用Visual C++開(kāi)發(fā),采用Visual C++的MFC框架,編寫(xiě)一個(gè)多線程圖像采集與處理程序。為了方便用戶操作,創(chuàng)建了一種基于對(duì)話框的應(yīng)用程序,用戶只需要控制相關(guān)的按鈕及菜單即可實(shí)現(xiàn)圖像采集的相應(yīng)功能。應(yīng)用程序主要完成的功能包括:(1)傳輸計(jì)算機(jī)指令到采集單元,對(duì)系統(tǒng)硬件進(jìn)行控制;(2)配置數(shù)據(jù)采集卡,采集處理FIFO輸出的數(shù)據(jù);(3)進(jìn)行簡(jiǎn)單的圖像處理與分析; (4)對(duì)采集數(shù)據(jù)的硬盤(pán)存儲(chǔ)與圖像恢復(fù)顯示。軟件流程如圖4所示。

?

4 實(shí)驗(yàn)結(jié)果
  系統(tǒng)測(cè)試過(guò)程中,整個(gè)系統(tǒng)通過(guò)PCI-E插槽與計(jì)算機(jī)相連,通過(guò)上位機(jī)軟件控制系統(tǒng)硬件電路工作,并通過(guò)PCI_E總線傳輸獲取圖像數(shù)據(jù)進(jìn)行顯示,系統(tǒng)在全幀模式(640×480)下對(duì)實(shí)際目標(biāo)進(jìn)行了實(shí)時(shí)跟蹤拍攝,拍攝到的圖像如圖5所示。

?


  圖5中兩幅圖像分別顯示了同一運(yùn)動(dòng)物體在不同時(shí)刻的運(yùn)行狀態(tài),所拍攝物圖像較為清晰, 體現(xiàn)了系統(tǒng)的高速拍攝特性和實(shí)時(shí)行,在對(duì)系統(tǒng)進(jìn)行長(zhǎng)時(shí)間的拷機(jī)實(shí)驗(yàn)時(shí),系統(tǒng)未發(fā)生不正常工作現(xiàn)象,說(shuō)明系統(tǒng)工作穩(wěn)定性較好。
  本文設(shè)計(jì)了基于PCI Express總線高幀頻CMOS相機(jī)圖像采集系統(tǒng),完成了硬件電路的設(shè)計(jì),并針對(duì)硬件電路開(kāi)發(fā)了驅(qū)動(dòng)程序和上位機(jī)應(yīng)用程序。該系統(tǒng)采用PCI Express總線實(shí)現(xiàn)硬件電路與計(jì)算機(jī)之間的高速數(shù)據(jù)傳輸,接口芯片采用PLX公司推出的第一款從PCI Express總線到本地總線的接口芯片PEX8311來(lái)實(shí)現(xiàn)。實(shí)驗(yàn)結(jié)果表明,本文給出的基于高幀頻CMOS相機(jī)的圖像采集系統(tǒng)具有容易控制、安全可靠、性能穩(wěn)定等優(yōu)點(diǎn)。圖像數(shù)據(jù)傳輸速率將不再是限制采集圖像實(shí)時(shí)存儲(chǔ)和實(shí)時(shí)顯示的瓶頸。


參考文獻(xiàn)
[1]?周立國(guó),梁淮寧,謝冬冬.基于PCI?Express總線的SAR回波數(shù)據(jù)實(shí)時(shí)記錄系統(tǒng)[J].電子器件,2008,31(2):592-
594.
[2]? 劉波,庫(kù)錫樹(shù),孫兆林.基于PCIE總線協(xié)議的數(shù)據(jù)采集設(shè)備驅(qū)動(dòng)程序?qū)崿F(xiàn)[J].工業(yè)控制計(jì)算機(jī),2007,20(7):28-31.
[3]?魏鵬,羅武勝,杜列波.PCI Express 總線及其應(yīng)用設(shè)計(jì)研究[J].電測(cè)與儀表,2007,44(494):43-45.
[4]?黃小紅,李峰,倪衛(wèi)芳.PEX8311芯片數(shù)據(jù)傳輸研究[J].電子工程師,2007,33(10):64-67.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。