《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于FPGA的CMOS相機實時數據處理設計
基于FPGA的CMOS相機實時數據處理設計
2017年電子技術應用第7期
侯絮絮1,馬松齡1,孫 晨2,郭子靖1
1.西安建筑科技大學 機電工程學院,陜西 西安710055;2.中國科學院 西安光學精密機械研究所,陜西 西安710119
摘要: 針對CMOS圖像傳感器輸出的LVDS串行數據在傳輸過程中因數據無法對齊引起誤碼率升高,圖像分辨率降低問題,提出一種基于現場可編程門陣列FPGA的CMOS相機實時數據處理研究方案。采用VHDL硬件語言,對數據處理進行模塊化設計,確保高速數據的正確采樣,減少誤碼產生。經軟件仿真及實測表明:該方案設計合理,系統運行穩定可靠,解決了高分辨率圖像在高速傳輸中的數據校正問題,輸出的圖像輪廓清晰、無斑點。
中圖分類號: TN919.3
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2017.07.009
中文引用格式: 侯絮絮,馬松齡,孫晨,等. 基于FPGA的CMOS相機實時數據處理設計[J].電子技術應用,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 引言

    工業相機常用的圖像傳感器有CMOS及CCD[1-2]兩種,CMOS圖像傳感器因其驅動靈活、編程簡單、功耗低、成本低等優勢已廣泛應用到各種圖像采集系統中[3-5]。由于高速傳輸中采集的圖像數據量較大,易產生誤碼,若不及時校正,將嚴重影響圖像質量,阻礙CMOS相機的普及應用。

    本次相機系統開發采用CMV2000圖像傳感器,理論圖像分辨率可達到2 048×1 088[6]。但開發過程中發現,誤碼問題未得到很好地解決,致使成像模糊,圖像最高分辨率僅為1 088×768,遠不能滿足高分辨率的技術要求。

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

    相機控制系統功能框圖如圖1所示。系統采用FPGA[7-9],外部晶振向FPGA輸入時鐘信號,均為固定頻率,再轉換成驅動CMV2000圖像傳感器、采集像素數據及格式編排的時鐘,同時為各單元提供異步復位信號;RS422作為系統通訊協議,將收到的串行數據轉換為并行信號發送給CMV2000的驅動單元[10];FPGA通過SPI接口對CMV2000進行自動曝光、采樣模式、復位等工作參數配置。

wdz3-t1.gif

    由于傳輸的數據是經壓縮算法去除了圖像中大部分內在相關性的已編碼數據,即使相對輕微的誤碼,對解碼圖像數據也會有嚴重的影響。編碼圖像序列的一幀之內,若一個碼字出錯,將會對后面整個編碼序列解碼錯誤,導致誤碼擴散。

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

wdz3-t2.gif

    因此,對16通道數據進行位和字的校正調整,將亂序數據及時校正是降低誤碼率、提高圖像分辨率的基本保障,也是數據處理的核心內容。

2 數據處理單元設計

    數據處理單元是驅動控制系統的核心部分,在FPGA內部完成,主要實現LVDS圖像數據的串并轉換、亂序數據之間的順序調整、高速數據的乒乓緩存及Camera Link傳輸協議進行格式編碼后發送4項功能。整個數據處理過程實現了圖像數據的實時傳輸。

2.1 串并轉換

    數據在進行串并轉換時,經時鐘倍頻后,在其下降沿開始采集數據。圖像數據及同步數據存儲時選用17個10位移位寄存器。當同步數據有效時,若16路并行圖像數據也有效,則對其進行存儲。圖3是CMV2000一行數據的輸出格式。每5個數據時鐘周期中,FPGA接收的16路10 bit數據并非順序輸出,務必加大數據排序和存儲的難度。每10個時鐘周期內,FPGA接收到32路10 bit數據是連續的,可將連續的8個數據合并為1個數據后再進行數據存儲。因此,僅需4個時鐘周期就可以儲存32個數據。由于數據傳輸芯片TLK2711需要接收16 bit的并行數據,所以FPGA在存儲數據前將每個數據高6位補0,并將8個16 bit數據合并成一個128 bit數據進行存儲。若不補0或少補0,則會導致大量數據相繼錯位,數據傳輸錯誤,嚴重影響輸出圖像質量。

wdz3-t3.gif

2.2 位對齊和字對齊

    常用的方法是使用有限狀態機對數據位、字進行校正設計,但該方法代碼冗長,過程中會產生大量剩余狀態。若不及時處理,狀態機可能進入不可預測的狀態,會出現短暫失控;若對其進行處理又會耗用更多的邏輯資源;此外,在對時序進行仿真時,時鐘有效邊沿的輸出端會產生許多毛刺;若加一個寄存器在輸出端,雖可消除毛刺保證輸出信號的穩定性,但輸出會延遲一個周期,可能導致誤碼概率增加。

    從節省邏輯資源、減少毛刺、降低誤碼率方面考慮,本次設計舍棄狀態機,利用FPGA自身性能,采用VHDL硬件語言對每條通道中的亂序數據進行位、字校正調整編程設計。

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

wdz3-t4.gif

2.3 乒乓緩存

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

2.4 格式編碼

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

3 試驗結果

    根據以上軟件設計,結合硬件設計,采用ISE14.3軟件中自帶的在線邏輯分析儀ChipScope,對本次設計進行板級圖像數據和時序抓拍分析,圖5為讀取一行的像素數據,依次讀取0~7通道,ch_id為相應通道號。圖6為通道6采樣的具體數據讀取,addr為相應的地址,其中高低位像素做了重置。由ChipScope捕捉的時序圖可以看出,該系統成功采集到了經過數據處理后的圖像數據。

wdz3-t5.gif

wdz3-t6.gif

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

wdz3-t7.gif

4 結論

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

參考文獻

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

[2] 雷蕾.基于CCD與CMOS圖像傳感新技術的研究[J].科技創新導報,2014(14).

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

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

[5] 魏麗玲,朱平,石永亮.基于FPGA的圖像采集與存儲系統設計[J].電子技術應用.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].液晶與顯示,2016,31(2):174-178.

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

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

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

[11] 王小艷,張會新,孫永生,等.Camera link協議和FPGA的數字信號源設計[J].國外電子元件,2008,16(7):59-61.



作者信息:

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

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

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 午夜三级a三级三点在线观看 | 成年男女免费视频网站播放 | 欧美亚洲一区 | 最新亚洲国产有精品 | 2022久久免费精品国产72精品 | 国产欧美日韩综合一区二区三区 | 国产精品久久久久久久免费 | 国产综合精品久久亚洲 | 免费一级a毛片 | 一级视频在线免费观看 | 日本韩国一级片 | 日本三级网站在线线观看 | 欧美在线一级片 | 亚洲 欧美 丝袜 | 精品国产精品a | 午夜两性试爱视频免费 | 三级视频网站在线观看播放 | 久久国产三级精品 | 久久精品视频5 | 国产精品自在欧美一区 | 五月久久亚洲七七综合中文网 | 国产精品揄拍一区二区久久 | 国产精品三 | 国产成人久久精品激情91 | 高清国产一级精品毛片基地 | 欧美aaaaa| 国产成人综合手机在线播放 | 欧美日一级片 | 国产成人18黄网站免费网站 | 国产欧美日韩在线观看 | 黄片毛片在线观看 | 日本精品一区二区三区在线视频 | 99香蕉网| 玖玖精品视频在线 | 成人性一级视频在线观看 | 国产免费午夜a无码v视频 | 亚洲精品区在线播放一区二区 | 九九色网 | 91在线精品亚洲一区二区 | 成人欧美午夜视频毛片 | 国产欧美日韩一区 |