孔德可,鐘 升,匡乃亮,趙 超
(西安微電子技術(shù)研究所,陜西 西安 710054)
近年來,隨著航天工業(yè)與遙感技術(shù)的快速發(fā)展,相關(guān)領(lǐng)域?qū)τ趫D像采集系統(tǒng)的性能要求也越來越高,傳統(tǒng)CCD傳感器已不能滿足圖像采集中對傳輸速率和圖像質(zhì)量等指標的要求。CMOS傳感器具有高幀頻、高分辨率等特點,在航天遙感及星空探測中有著舉足輕重的作用,例如我國發(fā)射的嫦娥二號衛(wèi)星上就安裝了帶有CMOS圖像傳感器的監(jiān)視相機和降落相機。相對于CCD傳感器,CMOS傳感器在幀頻及分辨率等方面存在優(yōu)勢,但在深空探測使用大面陣CMOS圖像傳感器時,高速數(shù)據(jù)傳輸過程中的數(shù)據(jù)校正等問題有待研究和解決。為此,本文設(shè)計了以CMOS傳感器及FPGA為核心器件的圖像采集系統(tǒng),在提高圖像采集傳輸速度和圖像質(zhì)量的同時充分發(fā)揮FPGA芯片高性能、高可靠性等優(yōu)勢,研究并實現(xiàn)時序電路中數(shù)據(jù)傳輸、位字校準及串并轉(zhuǎn)換等方案設(shè)計。
圖像采集系統(tǒng)設(shè)計采用CMOS傳感器+FPGA的硬件架構(gòu),所有CMOS傳感器的信號輸出、輸入都連接到FPGA,F(xiàn)PGA實現(xiàn)時序控制與數(shù)據(jù)處理等功能,F(xiàn)PGA處理完數(shù)據(jù)之后,將圖像數(shù)據(jù)發(fā)送給采集卡進行采集并在上位機上顯示。圖像采集系統(tǒng)的整體結(jié)構(gòu)框圖如圖1所示。
CMOS圖像傳感器的主要作用是:將光學信號轉(zhuǎn)換成電信號,圖像以480 Mb/s速率的低壓差分信號形式輸?shù)紽PGA。FPGA在該系統(tǒng)中的主要作用是:配置圖像傳感器工作參數(shù)、產(chǎn)生傳感器驅(qū)動信號、接收處理高速圖像數(shù)據(jù)。FPGA通過SPI接口配置傳感器內(nèi)部寄存器的值,從而改變其工作狀態(tài)。在FPGA中進行時序控制和實現(xiàn)數(shù)字信號位字校準、串并轉(zhuǎn)換等操作;最后通過CameraLink接口,在CamExpert軟件上顯示圖像數(shù)據(jù)。具體的圖像數(shù)據(jù)流處理流程如圖2所示。

圖1 圖像采集系統(tǒng)的整體結(jié)構(gòu)框圖

圖2 圖像數(shù)據(jù)流處理流程圖
硬件電路由兩塊PCB板構(gòu)成,其中一塊為背板,是集成FPGA、DDR2、三次電源等的控制處理板;另一塊為放置圖像傳感器的焦平面板。
設(shè)計采用的FPGA是Xilinx生產(chǎn)的Virtex-5系列XC5VSX95T。圖像傳感器選用CMV4000,其有效像元數(shù)為2 048×2 048,像元尺寸為5.5 μm×5.5 μm,支持10位的ADC模式,動態(tài)范圍為60 dB。傳感器最高支持16路LVDS數(shù)據(jù)輸出通道,最高速度能達到480 Mb/s,全幀輸出幀率為180 fps。為了提高系統(tǒng)的可擴展性,控制處理板與焦平面板之間采用VPX接口連接。
2.2.1 SPI接口設(shè)計
FPGA通過SPI接口修改圖像傳感器內(nèi)部寄存器的值,改變其工作狀態(tài)。寫合適的數(shù)值到內(nèi)部寄存器可以實現(xiàn)曝光模式、模數(shù)轉(zhuǎn)換增益、輸出通道數(shù)等的配置。通過SPI接口寫入數(shù)據(jù)的時序如圖3所示。

圖3 SPI寫操作時序
系統(tǒng)上電后,在SPI_CLK時鐘信號和SPI_EN使能信號的共同控制下,通過SPI_IN信號修改傳感器中指定寄存器的數(shù)據(jù)。一次寫操作包含16位,按順序分別是1位控制位、7位地址位和8位數(shù)據(jù)位??刂莆挥脕碇甘咀x(‘0’)或?qū)?‘1’)操作是否在SPI接口上執(zhí)行。地址位指示可編程寄存器的地址,可以定位所有128個寄存器,先發(fā)送地址的最高有效位。第9位~16位為數(shù)據(jù)位,用來完成所需配置。
2.2.2 LVDS數(shù)據(jù)對齊校準
低電壓差分信號(LVDS)接口又稱RS-644總線接口,可以實現(xiàn)一對一甚至一對多的連接功能。LVDS的技術(shù)核心是傳輸數(shù)據(jù)過程中電壓以極低的擺幅高速差動,具有低功耗、低誤碼率、低串擾和低輻射等特點。本設(shè)計中使用的CMV4000傳感器輸出的LVDS數(shù)據(jù)率為480 Mb/s。由于LVDS傳輸鏈路中會存在碼間干擾等原因,使得LVDS數(shù)據(jù)與LVDS時鐘間不同步,兩者的相對相位沒有對齊,若要直接使用時鐘去采樣16個通道的數(shù)據(jù),定會出現(xiàn)亂碼現(xiàn)象。因此需要在訓練模式中校正數(shù)據(jù)位,使采樣時刻剛好位于數(shù)據(jù)眼圖的中央,如圖4所示。通常采用相位延遲來進行數(shù)據(jù)對齊,本設(shè)計采用專用延遲單元延遲方法。

圖4 數(shù)據(jù)位對齊
在FPGA中的每個I/O塊包含一個可編程的絕對延遲單元,稱之為IODELAY。IODELAY可以實現(xiàn)輸入延遲IDELAY、輸出延遲ODELAY和雙向延遲。本設(shè)計使用輸入延遲IDELAY延遲單元,其由64拍延遲線(tap)組成,校準時鐘頻率為200 MHz,則延遲時間為78 ps/tap,可以實現(xiàn)高速數(shù)據(jù)的位校正。調(diào)整后的LVDS數(shù)據(jù)經(jīng)過IDDR原語,將雙沿數(shù)據(jù)變成單沿數(shù)據(jù)。IDDR原語只有一條時鐘輸入,通過時鐘的局部翻轉(zhuǎn)來鎖住下降沿數(shù)據(jù)。IDDR原語輸出的兩路信號分別依次存入串行移位寄存器中,將串行數(shù)據(jù)轉(zhuǎn)換為10 bit并行數(shù)據(jù),然后對并行數(shù)據(jù)鎖存后輸出。然而,這10 bit的每一位不一定屬于同一個像素點的bit。為使接收端與CMOS傳感器的LVDS輸出同步,可以在輸出信道上放置已知的訓練模式(Training Pattern,TP),該模式可用于“訓練”周圍系統(tǒng)的LVDS接收器,以實現(xiàn)圖像數(shù)據(jù)的正確字對齊。當沒有有效的圖像數(shù)據(jù)要發(fā)送時(也就是在128個像素的突發(fā)之間),將這種訓練模式放置在所有數(shù)據(jù)通道輸出上。通過SPI加載地址為78和79的寄存器以更改訓練模式的內(nèi)容為512(1000000000)??刂仆ǖ朗冀K發(fā)送控制信息,不發(fā)送訓練模式,可以在此通道上進行字對齊。圖5顯示了當傳感器處于空閑模式并且讀取三行幀數(shù)據(jù)時訓練模式在數(shù)據(jù)通道和控制通道上的位置。

圖5 訓練模式在數(shù)據(jù)通道和控制通道中的位置
在本圖像采集系統(tǒng)設(shè)計中,針對數(shù)據(jù)位對齊,時鐘使用固定延遲模式,延遲數(shù)值為44拍,參考時鐘頻率為200 MHz;數(shù)據(jù)使用可變延遲模式,參考時鐘頻率為200 MHz。使用FPGA中的IDELAY原語將從CMOS傳感器輸出的串行圖像數(shù)據(jù)信號,以時鐘RXCLK為基準進行延遲后,輸出雙沿數(shù)據(jù)信號,速率為480 Mb/s。雙沿串行信號在DDR時鐘的約束下,為提高輸入的速度,設(shè)計中將雙沿信號分成兩路LQ1和LQ2進入FPGA內(nèi)部。通過位拼接的操作對串行數(shù)據(jù)進行采樣,將兩路信號LQ1和LQ2轉(zhuǎn)換成5 bit的并行數(shù)據(jù)和10 bit的并行數(shù)據(jù)信號。在時鐘約束下,將并行信號分別鎖存到LPO_1、LPE_1和LP_1信號。
通過LPO_1和LPE_1來判斷所有通道的數(shù)據(jù)是否實現(xiàn)位對齊,若某通道數(shù)據(jù)沒有完成位對齊,將延遲單元循環(huán)增加一級,重新對LVDS數(shù)據(jù)進行延遲、雙單沿轉(zhuǎn)換、串并轉(zhuǎn)換與鎖存等操作。如此反復直至所有通道的數(shù)據(jù)都實現(xiàn)位對齊。通道位校正完成后,將對齊的數(shù)據(jù)進行字校正。通過比較控制通道中的數(shù)據(jù)字和訓練字512來判斷字校正,若相等則校正完成。如兩者不等,則循環(huán)移位采集時鐘,直至兩者數(shù)據(jù)字相等為止。經(jīng)過數(shù)據(jù)校正后,將所有數(shù)據(jù)通道的數(shù)據(jù)緩存讀出并進行拼接。
上述的LVDS數(shù)據(jù)延遲對齊校正以及圖像拼接輸出是在FPGA中利用狀態(tài)機實現(xiàn)的,狀態(tài)機轉(zhuǎn)移示意圖如圖6所示。狀態(tài)轉(zhuǎn)移條件如下:
(1) 參考時鐘標志有效,進入延遲掃描位校正狀態(tài)。
(2) 所有通道的延遲掃描完成,數(shù)據(jù)和時鐘邊沿對齊,進入字校正狀態(tài)。
(3) 控制通道的并行輸出數(shù)據(jù)和訓練字相同,進入圖像拼接輸出狀態(tài)。
(4) 一幀圖像數(shù)據(jù)采集完成,返回空閑狀態(tài)。

圖6 校正模塊狀態(tài)機轉(zhuǎn)移示意圖
2.2.3 CameraLink接口輸出
CameraLink是在ChannelLink技術(shù)基礎(chǔ)上發(fā)展而來,是一種基于視頻應(yīng)用的通訊接口。CameraLink技術(shù)具有匹配圖像數(shù)據(jù)輸出和采集之間的速度的功能,實現(xiàn)圖像數(shù)據(jù)靈活可靠傳輸。CameraLink具有3種不同的結(jié)構(gòu):Base型結(jié)構(gòu)、Medium型結(jié)構(gòu)和Full型結(jié)構(gòu)。本設(shè)計中采用Base型結(jié)構(gòu),數(shù)據(jù)信號共28位,其中1位幀有效信號、1位行有效信號、1位數(shù)據(jù)有效信號、1位空閑狀態(tài)信號和24位圖像數(shù)據(jù)信號。發(fā)送端使用Virtex-5中的OSERDES按7∶1的比例進行并串轉(zhuǎn)換,由于此OSERDES最高支持6∶1的轉(zhuǎn)換,所以需要兩個OSERDES串聯(lián)起來,分成主從模式,具體設(shè)計如圖7所示。同時,數(shù)據(jù)時鐘需要按照CameraLink時鐘格式“1100011”進行7∶1的并串轉(zhuǎn)換,最終得到4對LVDS圖像信號與一對LVDS時鐘信號連接至CameraLink接口輸出到上位機。

圖7 7∶1并串轉(zhuǎn)換設(shè)計
根據(jù)上述硬件設(shè)計和邏輯設(shè)計,實現(xiàn)了Virtex-5對CMV4000的時序驅(qū)動、SPI參數(shù)配置,并完成LVDS高清數(shù)字圖像數(shù)據(jù)的接收、對齊以及發(fā)送功能。實驗采用頻率為240 MHz的主時鐘,使用CameraLink圖像采集卡,利用CamExpert軟件顯示圖像數(shù)據(jù)。實驗室環(huán)境下測試結(jié)果顯示,此系統(tǒng)能夠以180 fps的幀率輸出分辨率為2 048×2 048的高清圖像。圖像采集系統(tǒng)現(xiàn)場測試效果如圖8所示。

圖8 圖像采集系統(tǒng)現(xiàn)場測試效果
本文以工業(yè)級FPGA芯片Virtex-5和CMOS傳感器CMV4000為基礎(chǔ),設(shè)計并實現(xiàn)了高分辨率圖像采集系統(tǒng),系統(tǒng)采用獨立板卡的硬件設(shè)計,具有較高的系統(tǒng)可擴展性。數(shù)據(jù)傳輸過程中使用LVDS技術(shù),使得系統(tǒng)的集成度更高和可靠性更強,也大大降低了噪聲對于系統(tǒng)數(shù)據(jù)傳輸過程的影響,能夠?qū)崿F(xiàn)2 048×2 048分辨率成像以及以180 fps的幀頻高速傳輸。試驗結(jié)果表明:設(shè)計的圖像采集系統(tǒng)穩(wěn)定可靠、集成度高、成像質(zhì)量高,在進一步試驗后,該系統(tǒng)將應(yīng)用于包括航天遙感等領(lǐng)域的某系統(tǒng)項目前期試驗中。