李瑞杰, 曾祥忠
(西安郵電大學(xué) 電子工程學(xué)院,陜西 西安 710121)
Cameralink是工業(yè)相機(jī)中使用的標(biāo)準(zhǔn)接口,因其具有帶寬高、傳輸速率高、通信協(xié)議簡(jiǎn)單的優(yōu)點(diǎn),在軍工等行業(yè)得到越來(lái)越廣泛的應(yīng)用[1]。
目前,國(guó)內(nèi)對(duì)Cameralink轉(zhuǎn)換成VGA實(shí)時(shí)顯示的研究也愈發(fā)成熟,但大都是在輸入分辨率與顯示分辨相同情況下。當(dāng)輸入分辨率高于標(biāo)準(zhǔn)VGA顯示分辨率時(shí),系統(tǒng)則不能正常顯示。本文正是在上述背景下設(shè)計(jì)一種實(shí)現(xiàn)方法,可以將輸入的高分辨Cameralink視頻信號(hào)經(jīng)過(guò)縮放操作后顯示在標(biāo)準(zhǔn)VGA顯示器上[2~4]。
本文設(shè)計(jì)系統(tǒng)采用PO—203相機(jī),相機(jī)屬軍工級(jí)Mini-Cameralink數(shù)字高清相機(jī),是專門(mén)針對(duì)軍用或航空設(shè)計(jì)的數(shù)字相機(jī)。PO—203相機(jī)選用Base模式,輸出為1 920×1 080×30 FPS的Cameralink視頻信號(hào),像素時(shí)鐘頻率為40 MHz(2 Tap)。設(shè)計(jì)系統(tǒng)采用模塊化的設(shè)計(jì)思想,選用Altera公司的Cyclone IV系列芯片EP4CE55F23C6N芯片完成對(duì)視頻信號(hào)的縮放、緩存等處理操作, 最終將輸入的相機(jī)信號(hào)轉(zhuǎn)換成分辨率為1 280×720×60 Hz的標(biāo)準(zhǔn)VGA格式信號(hào)進(jìn)行顯示。
Cameralink 協(xié)議是一個(gè)工業(yè)高速串口數(shù)據(jù)和連接標(biāo)準(zhǔn), 由大型攝像頭供應(yīng)商和其它圖像采集公司在2 000年10月聯(lián)合推出的, 目的是簡(jiǎn)化圖像采集接口, 方便高速圖像傳感器和采集系統(tǒng)的連接[5]。Cameralink總線兼有高速傳輸、抗干擾性強(qiáng)、低噪聲、通用性強(qiáng)、可靠性高優(yōu)點(diǎn)[6]。Cameralink接口選用Base工作模式,將視頻信號(hào)時(shí)鐘信號(hào)、幀同步信號(hào)、行同步信號(hào)、數(shù)據(jù)有效信號(hào)通過(guò)DS90CR287接口芯片,將數(shù)據(jù)7∶1的并串轉(zhuǎn)換得到4組圖像差分信號(hào)和1組時(shí)鐘差分信號(hào),通過(guò)Cameralink差分輸出[7]。系統(tǒng)
信號(hào)經(jīng)由Cameralink光纜傳輸至本設(shè)計(jì)系統(tǒng)的接口芯片DS90CR288,將數(shù)據(jù)恢復(fù)成28 bit的并行數(shù)據(jù)供系統(tǒng)進(jìn)行處理。
選用ADV7123芯片作為視頻的A/D轉(zhuǎn)換器,此次設(shè)計(jì)只用到了芯片的高8位。經(jīng)過(guò)ADV7123轉(zhuǎn)換后的3路模擬數(shù)據(jù)結(jié)合幀同步信號(hào)、行同步信號(hào),同時(shí)傳輸?shù)絍GA顯示屏[8]。
根據(jù)VESA的時(shí)序標(biāo)準(zhǔn),不同分辨率對(duì)應(yīng)不同的時(shí)序標(biāo)準(zhǔn),其區(qū)別主要是工作時(shí)鐘、有效行場(chǎng)像素周期數(shù)。所設(shè)計(jì)的系統(tǒng)選用顯示分辨率為1 280×720×60 Hz,行頻為45 kHz,場(chǎng)頻為60 Hz,像素工作時(shí)鐘為74.25 MHz,采用現(xiàn)場(chǎng)可編程門(mén)陣列(field programmable gate array,FPGA)核心板的PLL鎖相環(huán)對(duì)50 MHz時(shí)鐘倍頻得到工作時(shí)鐘74.25 MHz。
當(dāng)將低分辨率的視頻信號(hào)顯示到高分辨率時(shí),在VGA時(shí)序中添加使能信號(hào),在使能信號(hào)為高時(shí)傳輸視頻數(shù)據(jù),使能信號(hào)為低時(shí)將數(shù)據(jù)置為0。在顯示屏上開(kāi)一個(gè)與視頻經(jīng)過(guò)縮放處理后同等大小的窗顯示實(shí)時(shí)圖像。
系統(tǒng)設(shè)計(jì)包含4個(gè)主要模塊:信號(hào)采集模塊、數(shù)據(jù)縮放模塊、數(shù)據(jù)緩存模塊,以及VGA 信號(hào)產(chǎn)生與輸出模塊。系統(tǒng)的總體設(shè)計(jì)框圖如圖1所示。
圖1 總體設(shè)計(jì)框圖
DS90CR288A芯片將接收的5路LVDS信號(hào)解碼成28位的數(shù)據(jù)信號(hào),包括幀有效信號(hào)(iFVAL)、數(shù)據(jù)有效信號(hào)(iDVAL)、行有效信號(hào)(iLVAL)以及24位視頻信號(hào),其中數(shù)據(jù)信號(hào)中RGB三色信號(hào)各8位。FPGA時(shí)鐘的上升沿檢測(cè)到幀信號(hào)時(shí),判斷一幀數(shù)據(jù)的到來(lái),此時(shí)檢測(cè)到數(shù)據(jù)有效位為高時(shí),開(kāi)始接收視頻信號(hào)。將接收的視頻信號(hào)發(fā)送給數(shù)據(jù)縮放模塊[9]。
PO—203相機(jī)輸出圖像格式為1920×1 080×30 FPS的Cameralink信號(hào),通過(guò)縮放模塊輸出1 280×720×60 Hz的VGA信號(hào),實(shí)現(xiàn)圖像的實(shí)時(shí)縮放顯示。采用最鄰近插值算法,是一種最簡(jiǎn)單、最快速的插值方式[10]。本文方法不僅不會(huì)使圖像發(fā)生變形,而且節(jié)省了資源,使圖像在傳輸?shù)倪^(guò)程中不會(huì)存在延時(shí)。相機(jī)輸出的Cameralink信號(hào)時(shí)序圖,如圖2所示。
圖2 Cameralink時(shí)序
將輸入視頻信號(hào)根據(jù)時(shí)鐘頻率最鄰近取樣,即可實(shí)現(xiàn)每行像素的間隔取樣,獲得1 024個(gè)點(diǎn);添加行有效標(biāo)志信號(hào)(in_LVAL),當(dāng)in_LVAL=1時(shí)行數(shù)據(jù)有效,實(shí)現(xiàn)隔行有效取值[11]。其中行計(jì)數(shù)器采用LVAL的上升沿作為觸發(fā)條件開(kāi)始計(jì)數(shù),使in_LVAL實(shí)現(xiàn)在0和1之間切換。X_CONT用做每行像素的計(jì)數(shù)器,每行共有2 200個(gè)像素值,系統(tǒng)選擇有效區(qū)域列大小為1 920個(gè)像素值,每3個(gè)像素點(diǎn)選取其中的2個(gè)像素點(diǎn)作為有效像素點(diǎn),即可獲得每行的1 280個(gè)像素值;同理,總行數(shù)為1 125,有效區(qū)域選擇1 080,每3行取2行作為有效像素值,取值會(huì)取到720行。將縮放后的1 280×720大小的圖像存到SDRAM中。iFVAL幀信號(hào)產(chǎn)生FSYNC標(biāo)志信號(hào)作為SDRAM一幀信號(hào)開(kāi)始寫(xiě)入的標(biāo)志位。有效區(qū)域產(chǎn)生有效信號(hào)DVAL作為寫(xiě)入FIFO的寫(xiě)請(qǐng)求標(biāo)志信號(hào)。 其中列取值的數(shù)據(jù)有效標(biāo)志信號(hào)DVAL_x通過(guò)計(jì)數(shù)器cnt來(lái)賦值,工作時(shí)鐘為數(shù)據(jù)輸入時(shí)鐘,當(dāng)cnt值為0和1時(shí)數(shù)據(jù)有效標(biāo)志信號(hào)DVAL_x為1,否則為0,同理行的輸入時(shí)鐘通過(guò)行的有效標(biāo)志信號(hào)DVAL_y進(jìn)行選取,其中列的有效標(biāo)志信號(hào)賦值程序如下:
reg DVAL_x;
always @(posedge iCLK or negedge iRST_n)
begin
if(!iRST_n)
DVAL<=0;
else if(cnt<=1)
DVAL<=1;
else
DVAL<=0;
end
在行(DVAL_y)列(DVAL_x)有效信號(hào)同時(shí)為高的情況下,將有效數(shù)據(jù)寫(xiě)入異步FIFO中,實(shí)現(xiàn)一幀數(shù)據(jù)的采集。
視頻緩存控制主要由視頻圖像采集器、地址發(fā)生器和乒乓緩沖控制器組成[12]。采用一片MICRON 公司的MT48LC8M32B2(8M×32 Bits)型號(hào)、容量為256MB的SDRAM,MT48LC8M32B2 工作電壓為3.3 V, 并且采用同步接口方式, 與系統(tǒng)時(shí)鐘同步運(yùn)行。它含有32位數(shù)據(jù)總線,4個(gè)組(bank),每個(gè)組的行地址數(shù)是12 位, 列地址數(shù)是8位, 每組的32 MB的存儲(chǔ)架構(gòu)是4 096行×256列×32 bit[13]。
由于輸入的數(shù)據(jù)與SDRAM工作時(shí)鐘頻率不相同, 因此系統(tǒng)采用在SDRAM前后加入異步FIFO實(shí)現(xiàn)乒乓緩存機(jī)制。首先將接收到的圖像數(shù)據(jù)緩存到FIFO1中, 寫(xiě)滿數(shù)據(jù)后SDRAM開(kāi)始讀取FIFO1中的數(shù)據(jù), 同時(shí)開(kāi)始寫(xiě)FIFO2;FIFO2寫(xiě)滿后,SDRAM從中讀取數(shù)據(jù),同時(shí)數(shù)據(jù)寫(xiě)入FIFO1中,如此循環(huán)往復(fù)實(shí)現(xiàn)乒乓緩存操作[14]。讀寫(xiě)切換可以由FIFO的wrfull信號(hào)來(lái)控制, 將圖像緩存到一片SDRAM 中, 便于后續(xù)的處理。而在讀取圖像有效時(shí)同樣利用乒乓操作,進(jìn)行緩存RGB信號(hào)提取[15]。
通過(guò)PLL對(duì)50 MHz系統(tǒng)晶振倍頻得到XGA信號(hào)的時(shí)鐘頻率為65 MHz和SDRAM的工作時(shí)鐘166 MHz。在規(guī)定時(shí)鐘頻率下將有效圖像信號(hào)在SDRAM中進(jìn)行緩存,最大限度地保證在寫(xiě)入以及讀取圖像信號(hào)時(shí)保證數(shù)據(jù)毫無(wú)失真。系統(tǒng)工作框圖如圖3所示。
圖3 系統(tǒng)工作框圖
本系統(tǒng)實(shí)現(xiàn)了基于FPGA的高分辨率Camaralink信號(hào)經(jīng)縮放操作后顯示到傳統(tǒng)的VGA接口顯示器,并可以進(jìn)行彩色與黑白圖像信號(hào)的相互切換,實(shí)現(xiàn)Cameralink的高速穩(wěn)定信號(hào)的傳輸,滿足設(shè)計(jì)要求場(chǎng)所實(shí)際需求。
圖4 測(cè)試結(jié)果
本文設(shè)計(jì)的圖像實(shí)時(shí)縮放顯示系統(tǒng),解決了現(xiàn)有轉(zhuǎn)換系統(tǒng)不能將高分辨率圖像與VGA分辨率匹配顯示的問(wèn)題,實(shí)現(xiàn)了將相機(jī)輸出的高分辨率Cameralink信號(hào)經(jīng)轉(zhuǎn)換系統(tǒng)縮放操作后,視頻信號(hào)顯示在VGA顯示器上。本設(shè)計(jì)系統(tǒng)不僅保證了Cameralink高速穩(wěn)定的特點(diǎn),而且可以實(shí)現(xiàn)各種Cameralink視頻信號(hào)分辨率的縮放操作,并已在實(shí)際場(chǎng)所使用并進(jìn)行反復(fù)改進(jìn)。