《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于FPGA的CMOS相機(jī)實(shí)時(shí)數(shù)據(jù)處理設(shè)計(jì)
基于FPGA的CMOS相機(jī)實(shí)時(shí)數(shù)據(jù)處理設(shè)計(jì)
2017年電子技術(shù)應(yīng)用第7期
侯絮絮1,馬松齡1,孫 晨2,郭子靖1
1.西安建筑科技大學(xué) 機(jī)電工程學(xué)院,陜西 西安710055;2.中國(guó)科學(xué)院 西安光學(xué)精密機(jī)械研究所,陜西 西安710119
摘要: 針對(duì)CMOS圖像傳感器輸出的LVDS串行數(shù)據(jù)在傳輸過程中因數(shù)據(jù)無法對(duì)齊引起誤碼率升高,圖像分辨率降低問題,提出一種基于現(xiàn)場(chǎng)可編程門陣列FPGA的CMOS相機(jī)實(shí)時(shí)數(shù)據(jù)處理研究方案。采用VHDL硬件語(yǔ)言,對(duì)數(shù)據(jù)處理進(jìn)行模塊化設(shè)計(jì),確保高速數(shù)據(jù)的正確采樣,減少誤碼產(chǎn)生。經(jīng)軟件仿真及實(shí)測(cè)表明:該方案設(shè)計(jì)合理,系統(tǒng)運(yùn)行穩(wěn)定可靠,解決了高分辨率圖像在高速傳輸中的數(shù)據(jù)校正問題,輸出的圖像輪廓清晰、無斑點(diǎn)。
中圖分類號(hào): TN919.3
文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.2017.07.009
中文引用格式: 侯絮絮,馬松齡,孫晨,等. 基于FPGA的CMOS相機(jī)實(shí)時(shí)數(shù)據(jù)處理設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2017,43(7):36-39.
英文引用格式: Hou Xuxu,Ma Songling,Sun Chen,et al. Real-time data processing design of CMOS camera based on FPGA[J].Application of Electronic Technique,2017,43(7):36-39.
Real-time data processing design of CMOS camera based on FPGA
Hou Xuxu1,Ma Songling1,Sun Chen2,Guo Zijing1
1.Mechanical & Electrical Engineering College,Xi′an University of Architecture and Technology,Xi′an 710055,China; 2.Xi′an Institute of Optics and Precision Mechanics,Chinese Academy of Sciences,Xi′an 710119,China
Abstract: Aiming at the problem that the LVDS serial data error rate rised output by CMOS image sensor due to the data can not be aligned and reduce the image resolution, a research program of CMOS camera real-time data processing based on FPGA is proposed. The design uses VHDL hardware language, the modular design of data processing to ensure the correct sampling of high speed data to reduce the error generated. The simulation results show that the scheme is reasonable and the system runs stably and reliably. It solves the problem of data correction in high speed transmission of high resolution images. The output image has clear contour and no speckle.
Key words : CMOS image sensor;FPGA;data correction;high resolution

0 引言

    工業(yè)相機(jī)常用的圖像傳感器有CMOS及CCD[1-2]兩種,CMOS圖像傳感器因其驅(qū)動(dòng)靈活、編程簡(jiǎn)單、功耗低、成本低等優(yōu)勢(shì)已廣泛應(yīng)用到各種圖像采集系統(tǒng)中[3-5]。由于高速傳輸中采集的圖像數(shù)據(jù)量較大,易產(chǎn)生誤碼,若不及時(shí)校正,將嚴(yán)重影響圖像質(zhì)量,阻礙CMOS相機(jī)的普及應(yīng)用。

    本次相機(jī)系統(tǒng)開發(fā)采用CMV2000圖像傳感器,理論圖像分辨率可達(dá)到2 048×1 088[6]。但開發(fā)過程中發(fā)現(xiàn),誤碼問題未得到很好地解決,致使成像模糊,圖像最高分辨率僅為1 088×768,遠(yuǎn)不能滿足高分辨率的技術(shù)要求。

1 圖像傳輸過程中存在的問題

    相機(jī)控制系統(tǒng)功能框圖如圖1所示。系統(tǒng)采用FPGA[7-9],外部晶振向FPGA輸入時(shí)鐘信號(hào),均為固定頻率,再轉(zhuǎn)換成驅(qū)動(dòng)CMV2000圖像傳感器、采集像素?cái)?shù)據(jù)及格式編排的時(shí)鐘,同時(shí)為各單元提供異步復(fù)位信號(hào);RS422作為系統(tǒng)通訊協(xié)議,將收到的串行數(shù)據(jù)轉(zhuǎn)換為并行信號(hào)發(fā)送給CMV2000的驅(qū)動(dòng)單元[10];FPGA通過SPI接口對(duì)CMV2000進(jìn)行自動(dòng)曝光、采樣模式、復(fù)位等工作參數(shù)配置。

wdz3-t1.gif

    由于傳輸?shù)臄?shù)據(jù)是經(jīng)壓縮算法去除了圖像中大部分內(nèi)在相關(guān)性的已編碼數(shù)據(jù),即使相對(duì)輕微的誤碼,對(duì)解碼圖像數(shù)據(jù)也會(huì)有嚴(yán)重的影響。編碼圖像序列的一幀之內(nèi),若一個(gè)碼字出錯(cuò),將會(huì)對(duì)后面整個(gè)編碼序列解碼錯(cuò)誤,導(dǎo)致誤碼擴(kuò)散。

    CMV2000圖像傳感器輸出的16通道數(shù)據(jù)及1通道輸出時(shí)鐘的相對(duì)位置并未完全對(duì)齊,若用時(shí)鐘直接采樣會(huì)出現(xiàn)誤碼現(xiàn)象,致使數(shù)據(jù)傳輸錯(cuò)誤?;贑MV2000的相機(jī)是高速高分辨率相機(jī),傳輸?shù)臄?shù)據(jù)速率高達(dá)480 Mb/s,傳輸過程中若數(shù)據(jù)校正問題沒有得到解決必會(huì)引起誤碼概率增加。從相機(jī)開發(fā)過程中發(fā)現(xiàn),誤碼對(duì)實(shí)時(shí)傳輸?shù)膱D像分辨率影響最大。圖2(a)是數(shù)據(jù)傳輸錯(cuò)誤圖例,圖2(b)是截取其局部圖像進(jìn)行3:1放大,圖中出現(xiàn)許多白色的小雪花狀斑點(diǎn),而且各個(gè)樓層的棱角模糊不清,其中某樓層的右下角處圖像不完整,如箭頭所示。圖像分辨率僅為:1 088×768。

wdz3-t2.gif

    因此,對(duì)16通道數(shù)據(jù)進(jìn)行位和字的校正調(diào)整,將亂序數(shù)據(jù)及時(shí)校正是降低誤碼率、提高圖像分辨率的基本保障,也是數(shù)據(jù)處理的核心內(nèi)容。

2 數(shù)據(jù)處理單元設(shè)計(jì)

    數(shù)據(jù)處理單元是驅(qū)動(dòng)控制系統(tǒng)的核心部分,在FPGA內(nèi)部完成,主要實(shí)現(xiàn)LVDS圖像數(shù)據(jù)的串并轉(zhuǎn)換、亂序數(shù)據(jù)之間的順序調(diào)整、高速數(shù)據(jù)的乒乓緩存及Camera Link傳輸協(xié)議進(jìn)行格式編碼后發(fā)送4項(xiàng)功能。整個(gè)數(shù)據(jù)處理過程實(shí)現(xiàn)了圖像數(shù)據(jù)的實(shí)時(shí)傳輸。

2.1 串并轉(zhuǎn)換

    數(shù)據(jù)在進(jìn)行串并轉(zhuǎn)換時(shí),經(jīng)時(shí)鐘倍頻后,在其下降沿開始采集數(shù)據(jù)。圖像數(shù)據(jù)及同步數(shù)據(jù)存儲(chǔ)時(shí)選用17個(gè)10位移位寄存器。當(dāng)同步數(shù)據(jù)有效時(shí),若16路并行圖像數(shù)據(jù)也有效,則對(duì)其進(jìn)行存儲(chǔ)。圖3是CMV2000一行數(shù)據(jù)的輸出格式。每5個(gè)數(shù)據(jù)時(shí)鐘周期中,F(xiàn)PGA接收的16路10 bit數(shù)據(jù)并非順序輸出,務(wù)必加大數(shù)據(jù)排序和存儲(chǔ)的難度。每10個(gè)時(shí)鐘周期內(nèi),F(xiàn)PGA接收到32路10 bit數(shù)據(jù)是連續(xù)的,可將連續(xù)的8個(gè)數(shù)據(jù)合并為1個(gè)數(shù)據(jù)后再進(jìn)行數(shù)據(jù)存儲(chǔ)。因此,僅需4個(gè)時(shí)鐘周期就可以儲(chǔ)存32個(gè)數(shù)據(jù)。由于數(shù)據(jù)傳輸芯片TLK2711需要接收16 bit的并行數(shù)據(jù),所以FPGA在存儲(chǔ)數(shù)據(jù)前將每個(gè)數(shù)據(jù)高6位補(bǔ)0,并將8個(gè)16 bit數(shù)據(jù)合并成一個(gè)128 bit數(shù)據(jù)進(jìn)行存儲(chǔ)。若不補(bǔ)0或少補(bǔ)0,則會(huì)導(dǎo)致大量數(shù)據(jù)相繼錯(cuò)位,數(shù)據(jù)傳輸錯(cuò)誤,嚴(yán)重影響輸出圖像質(zhì)量。

wdz3-t3.gif

2.2 位對(duì)齊和字對(duì)齊

    常用的方法是使用有限狀態(tài)機(jī)對(duì)數(shù)據(jù)位、字進(jìn)行校正設(shè)計(jì),但該方法代碼冗長(zhǎng),過程中會(huì)產(chǎn)生大量剩余狀態(tài)。若不及時(shí)處理,狀態(tài)機(jī)可能進(jìn)入不可預(yù)測(cè)的狀態(tài),會(huì)出現(xiàn)短暫失控;若對(duì)其進(jìn)行處理又會(huì)耗用更多的邏輯資源;此外,在對(duì)時(shí)序進(jìn)行仿真時(shí),時(shí)鐘有效邊沿的輸出端會(huì)產(chǎn)生許多毛刺;若加一個(gè)寄存器在輸出端,雖可消除毛刺保證輸出信號(hào)的穩(wěn)定性,但輸出會(huì)延遲一個(gè)周期,可能導(dǎo)致誤碼概率增加。

    從節(jié)省邏輯資源、減少毛刺、降低誤碼率方面考慮,本次設(shè)計(jì)舍棄狀態(tài)機(jī),利用FPGA自身性能,采用VHDL硬件語(yǔ)言對(duì)每條通道中的亂序數(shù)據(jù)進(jìn)行位、字校正調(diào)整編程設(shè)計(jì)。

    數(shù)據(jù)校正流程如圖4所示,在training模式下,經(jīng)異步復(fù)位rstin后,數(shù)據(jù)全部清零(BitCunt<=0),進(jìn)入眼圖采樣狀態(tài),要實(shí)現(xiàn)采樣時(shí)鐘恰好在眼圖的中心位置,需通過FPGA的選型,對(duì)數(shù)據(jù)傳輸通道進(jìn)行延時(shí)控制;然后將輸出的并行10位數(shù)據(jù)與上次接收數(shù)據(jù)進(jìn)行比較,若數(shù)據(jù)發(fā)生變化,則表明采樣點(diǎn)不在眼圖的中央位置,記錄此時(shí)的延遲拍數(shù),找到延遲邊緣的中間點(diǎn)即為最佳采樣位置,將采樣點(diǎn)移到眼圖中間即完成位對(duì)齊。位對(duì)齊完成后,進(jìn)入圖像字對(duì)齊(Align_Image Bit),為確保每個(gè)通道在同一時(shí)鐘沿上采集到第一個(gè)字節(jié),在傳感器training模式下,發(fā)送相應(yīng)的訓(xùn)練字節(jié),接收模塊解串后,通過旋轉(zhuǎn)解串后的字節(jié),讓其與訓(xùn)練字節(jié)匹配,若采集到的10 bit字節(jié)與所期望的字節(jié)不匹配,則返回到Make_CtrlAlign操作,使控制進(jìn)程重新對(duì)齊,如此反復(fù),直到并行數(shù)據(jù)與訓(xùn)練字匹配為止,從而實(shí)現(xiàn)字對(duì)齊。

wdz3-t4.gif

2.3 乒乓緩存

    該模塊的設(shè)計(jì)是為獲得傳感器最快的輸出模式,將CMV2000的輸出模式配置成16通道,但Camera Link接口標(biāo)準(zhǔn)在Base配置模式下僅有8通道,因此將兩路圖像數(shù)據(jù)轉(zhuǎn)換成一路圖像數(shù)據(jù)。實(shí)現(xiàn)與Camera Link協(xié)議Base模式下8個(gè)PORT映射對(duì)接[11]。因此,本次設(shè)計(jì)利用XC6SLX150內(nèi)部IP核創(chuàng)建2個(gè)容量為256×128 bit的雙口RAM進(jìn)行乒乓緩存;然后將讀出的圖像數(shù)據(jù)寬度設(shè)定為16 bit,讀出時(shí)鐘采用較高頻率。這種在雙RAM中同時(shí)進(jìn)行寫入和讀取操作的方法提高了數(shù)據(jù)之間的存儲(chǔ)速度。

2.4 格式編碼

    Camera Link協(xié)議中,其接口芯片同時(shí)接收28 bit TTL/CMOS信號(hào):24 bit數(shù)據(jù)信號(hào)、4 bit幀有效FVAL信號(hào)及行有效LVAL信號(hào)。FPGA僅接收數(shù)據(jù)信號(hào),因此,異步FIFO(First In First Out)要在控制圖像數(shù)據(jù)時(shí)序的同時(shí),生成FVAL和LVAL兩個(gè)同步控制信號(hào)。當(dāng)前較常用的FIFO器件很難滿足系統(tǒng)要求,本次采用VHDL硬件語(yǔ)言設(shè)計(jì)了一種既提供數(shù)據(jù)緩存,又匹配Camera Link接口標(biāo)準(zhǔn)的異步FIFO。整個(gè)系統(tǒng)使用3個(gè)FIFO,分別用于幀號(hào)、行號(hào)及圖像數(shù)據(jù)的儲(chǔ)存。在發(fā)送的每行圖像數(shù)據(jù)前加8 bit輔助數(shù)據(jù)后,按照規(guī)定的列數(shù)和行數(shù)有序地選擇FIFO并讀取數(shù)據(jù)。此外,在每行、每幀之間的空閑狀態(tài),向TLK2711發(fā)送一個(gè)16 bit空閑碼,保證TLK2711發(fā)送端串行數(shù)據(jù)的同步。

3 試驗(yàn)結(jié)果

    根據(jù)以上軟件設(shè)計(jì),結(jié)合硬件設(shè)計(jì),采用ISE14.3軟件中自帶的在線邏輯分析儀ChipScope,對(duì)本次設(shè)計(jì)進(jìn)行板級(jí)圖像數(shù)據(jù)和時(shí)序抓拍分析,圖5為讀取一行的像素?cái)?shù)據(jù),依次讀取0~7通道,ch_id為相應(yīng)通道號(hào)。圖6為通道6采樣的具體數(shù)據(jù)讀取,addr為相應(yīng)的地址,其中高低位像素做了重置。由ChipScope捕捉的時(shí)序圖可以看出,該系統(tǒng)成功采集到了經(jīng)過數(shù)據(jù)處理后的圖像數(shù)據(jù)。

wdz3-t5.gif

wdz3-t6.gif

    為了驗(yàn)證本次設(shè)計(jì)數(shù)據(jù)處理后的成像效果,采用頻率為48 MHz的主時(shí)鐘,數(shù)據(jù)傳輸速率為480 Mb/s,圖7(a)為數(shù)據(jù)校正后的圖片,選取相同圖像部分進(jìn)行3:1放大后對(duì)比發(fā)現(xiàn),圖7(b)中每幢樓層的棱角清晰,顏色分明,除此之外,樓層右下角可以清楚地看到幾顆大樹的樹頂。整體圖像無斑點(diǎn)、無錯(cuò)誤區(qū)域,圖像質(zhì)量明顯提高,分辨率達(dá)到2 048×1 088。

wdz3-t7.gif

4 結(jié)論

    通過深入分析圖像數(shù)據(jù)傳輸過程中影響成像質(zhì)量的原因,采用VHDL硬件語(yǔ)言,設(shè)計(jì)基于FPGA的數(shù)據(jù)處理程序,既充分利用FPGA內(nèi)部邏輯資源,避免使用狀態(tài)機(jī)處理數(shù)據(jù)校正時(shí)過度占用FPGA資源、產(chǎn)生大量毛刺和剩余狀態(tài)問題,又能很好地解決誤碼問題。實(shí)驗(yàn)證明經(jīng)過本數(shù)據(jù)處理環(huán)節(jié)后,數(shù)據(jù)傳輸中誤碼率降至5%,解決了高速傳輸過程中的數(shù)據(jù)校正問題,使最終顯示到計(jì)算機(jī)上的圖像質(zhì)量高、無錯(cuò)誤區(qū)域,分辨率達(dá)到2 048×1 088,滿足預(yù)期的技術(shù)要求。

參考文獻(xiàn)

[1] 孫波,王曉艷.CCD圖像傳感器和CMOS圖像傳感器的比較研究[J].信息通信,2015,156(12):35-36.

[2] 雷蕾.基于CCD與CMOS圖像傳感新技術(shù)的研究[J].科技創(chuàng)新導(dǎo)報(bào),2014(14).

[3] 王晗,李翔,李忠敏,等.基于OV7670的圖像采集與顯示設(shè)計(jì)[J].中國(guó)科技信息,2013(11):90-91.

[4] 丁昊杰,劉敬彪,盛慶華.基于CMOS圖像傳感器的視頻采集系統(tǒng)設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2012,35(14):178-181.

[5] 魏麗玲,朱平,石永亮.基于FPGA的圖像采集與存儲(chǔ)系統(tǒng)設(shè)計(jì)[J].電子技術(shù)應(yīng)用.2015,41(11):67-69.

[6] CMOSIS.200 Megapixel Global shutter CMOS image sensor datasheet[J/0L].www.Cmosis.com/producta/product.detail/cmv2000,2013:1-44.

[7] 王征,何云豐,曹小濤,等.基于FPGA的大面陣CMOS相機(jī)高速率電子學(xué)系統(tǒng)設(shè)計(jì)[J].液晶與顯示,2016,31(2):174-178.

[8] 李方寧,王延杰,張濤,等.基于AM41V4傳感器的高清高速CMOS相機(jī)系統(tǒng)設(shè)計(jì)[J].液晶與顯示,2015,30(3):492-498.

[9] 任偉,張彥軍,白先民.基于LVDS的高速數(shù)據(jù)傳輸裝置的設(shè)計(jì)[J].科學(xué)技術(shù)與工程,2012,12(29):7759-7763.

[10] 索義芳,高飛,孫磊.基于FPGA的差分RS422串行收發(fā)模塊的設(shè)計(jì)實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2010,26(12):125-126.

[11] 王小艷,張會(huì)新,孫永生,等.Camera link協(xié)議和FPGA的數(shù)字信號(hào)源設(shè)計(jì)[J].國(guó)外電子元件,2008,16(7):59-61.



作者信息:

侯絮絮1,馬松齡1,孫  晨2,郭子靖1

(1.西安建筑科技大學(xué) 機(jī)電工程學(xué)院,陜西 西安710055;2.中國(guó)科學(xué)院 西安光學(xué)精密機(jī)械研究所,陜西 西安710119)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。