基于Video Port的Camera Link的圖像采集接口設(shè)計(jì)
摘要:通過視頻接口和Channel Link芯片實(shí)現(xiàn)了數(shù)字信號(hào)處理芯片TMS320DM642與Camera Link線掃描相機(jī)的無縫連接。解決了圖像數(shù)據(jù)輸出速度為40 MB/s的高速圖像數(shù)據(jù)采集系統(tǒng)中,前端采集與后端輸出的速度匹配問題。系統(tǒng)可實(shí)時(shí)、高速地采集大量的圖像數(shù)據(jù)。
關(guān)鍵詞:Camera Link;TMS320DM642;視頻接口;視頻采集
圖像采集的運(yùn)用非常廣泛,經(jīng)過幾十年的發(fā)展,采集技術(shù)有了很大程度的進(jìn)步。目前的專業(yè)采集設(shè)備集成度更高,分辨率更大,傳輸速度更快,針對(duì)性更強(qiáng)。
本文以DALSA公司的Spyder2系列線掃描相機(jī)為圖像采集源,以TI公司的TMS320DM642多媒體處理器為核心,實(shí)現(xiàn)高速圖像的采集和處理任務(wù)。
Spyder2線掃描相機(jī)以其高速的采集速度和先進(jìn)的Camera Link接口,已廣泛應(yīng)用于工業(yè)生產(chǎn)線等領(lǐng)域。本方案集合了Camera Link和TMS3 20DM642的優(yōu)點(diǎn),縮短了設(shè)計(jì)周期,降低了難度,提高了設(shè)計(jì)的效率和設(shè)計(jì)質(zhì)量。
1 總體概述
Camera Link是一種基于視頻應(yīng)用發(fā)展而來的通信接口標(biāo)準(zhǔn),Camera Link接口采用National Semiconductor公司的Channel Link技術(shù),其最高速率可達(dá)2.38 Gbps。Camera Link相機(jī)和圖像采集設(shè)備之間采用LVDS信號(hào)傳輸,從而簡(jiǎn)化了圖像采集設(shè)備和模擬攝像頭之間所必需的視頻編解碼等步驟,降低了生產(chǎn)成本和維護(hù)費(fèi)用。
TMS320DM642作為多媒體處理器,內(nèi)置3個(gè)專用的視頻數(shù)據(jù)接口(Video Port)。每一視頻接口有20位數(shù)據(jù)總線,可以在8位、10位、16位總線方式下進(jìn)行視頻采集或視頻顯示。采集頻率最高可達(dá)80 MHz。
DALSA Spyder2相機(jī)采用單通道Channel Link輸出,每線輸出2048像素,每個(gè)像素8位。為了圖像處理的方便,采集接口將視頻數(shù)據(jù)重整為完整幀并緩存于SDRAM中。TMS320DM642的Video Port接口設(shè)置為8位的RAW Data采集模式。總體結(jié)構(gòu)如圖1所示。DALSA Spyder2相機(jī)采集到的視頻信號(hào)通過Video Port0傳輸?shù)絊DRAM中緩存,DM642再通過EMIFA從SDRAM中讀取每幀圖像進(jìn)行分析處理。
2 關(guān)鍵硬件設(shè)計(jì)
2.1 視頻解串電路
Camera Link標(biāo)準(zhǔn)中,相機(jī)的信號(hào)被分為3種:視頻數(shù)據(jù)信號(hào)、相機(jī)控制信號(hào)、串行通信信號(hào)。
視頻解碼部分采用National Semiconducor公司TSSOP-56封裝的DS90CR288A接收器來完成,它能夠?qū)?路LVDS串行數(shù)據(jù)流轉(zhuǎn)換為2位并行TTL/CMOS數(shù)據(jù),在傳輸時(shí)鐘CLK的每個(gè)周期,將28位并行數(shù)據(jù)輸出。
DS90CR288A解碼出的TTL/CMOS信號(hào)可以分成2類:圖像信號(hào)和圖像時(shí)鐘信號(hào)(WCLK)。其中圖像信號(hào)又由24位圖像數(shù)據(jù)信號(hào)和4位圖像同步信號(hào)組成,這些信號(hào)都符合Channel Link技術(shù)標(biāo)準(zhǔn)。
圖像同步信號(hào)包括:FVAL(Frame Valid)、LVAL(Line Valid)、DVAL(Data Valid),分別為幀有效信號(hào)、行有效信號(hào)和數(shù)據(jù)有效信號(hào)。當(dāng)FVAL、LVAL、DVAL同時(shí)有效(為高電平時(shí)),表示相機(jī)正在輸出有效的圖像數(shù)據(jù)。Channel Link的圖像同步信號(hào)和時(shí)鐘信號(hào)的關(guān)系如圖2所示。
DALSA Spyder2相機(jī)為線掃描數(shù)字?jǐn)z像機(jī),設(shè)置為8位灰度輸出,相機(jī)在每個(gè)時(shí)鐘的上升沿傳送串行圖像信號(hào),F(xiàn)VAL、DVAL信號(hào)廠商固定為高電平,只由LVAL信號(hào)控制相機(jī)的圖像輸出。針對(duì)這一特性,設(shè)計(jì)充分利用TMS320DM642的視頻接口這一優(yōu)勢(shì),由圖像時(shí)鐘(WCLK)來控制視頻口的采集時(shí)鐘(VP0_CLK0),相機(jī)的行有效信號(hào)(LVAL)控制視頻口的采集使能端(VP0_CTL0),圖像信號(hào)D[7..0]送往Video Port的數(shù)據(jù)總線VPOD[9..2]。采集接口與TMS320DM642的視頻口連接原理圖如圖3所示。
當(dāng)相機(jī)輸出一行有效圖像數(shù)據(jù)時(shí),TMS320DM642的視頻口在圖像時(shí)鐘的上升沿將解串的圖像信號(hào)采集到視頻口的內(nèi)部高速FIFO中。當(dāng)內(nèi)部FIFO緩存超過編程門限(threshold)后將自動(dòng)觸發(fā)一個(gè)專用EMDA通道將FIFO中的圖像數(shù)據(jù)搬移到SDRAM中。整個(gè)視頻的采集過程都沒有DSP干預(yù),避免了由于數(shù)據(jù)搬運(yùn)而引發(fā)的錯(cuò)誤同時(shí)減少了數(shù)據(jù)傳輸?shù)南到y(tǒng)資源開銷。
2.2 相機(jī)控制電路
Camera Link標(biāo)準(zhǔn)中規(guī)定了4位相機(jī)控制信號(hào):CC1、CC2、CC3和CC4,需要一個(gè)4位的LVDS驅(qū)動(dòng)器,DALSASpyder2相機(jī)遵循Camera Link標(biāo)準(zhǔn)采用了CC1、CC2、CC3三個(gè)相機(jī)控制位,分別完成外部同步控制、像素重置控制和采集方向控制,CC4控制位暫時(shí)閑置。采用National Sem-ieondueor公司的DS90LV047A芯片來驅(qū)動(dòng)這4位相機(jī)控制信號(hào),如圖4所示。
DS90LV047A將CPLD發(fā)送過來的外部控制信號(hào)轉(zhuǎn)化為符合LVDS標(biāo)準(zhǔn)的控制信號(hào)。相機(jī)控制信號(hào)的使用是可選擇的,像DALSA Spyder2系列,沒有控制信號(hào)的參與也能完成采集。
2.3 相機(jī)通信電路
DALSA Spyder2相機(jī)需要一組由9 600 bps、一個(gè)開始位、一個(gè)結(jié)束位、無校驗(yàn)位組成的串行異步信號(hào)(±SerT-FG、±SerTC)來進(jìn)行相機(jī)參數(shù)的設(shè)置和信息反饋。本設(shè)計(jì)選用了National Semieonducor公司的DS90LV019集成驅(qū)動(dòng)器/接收器來進(jìn)行TTL/LVDS轉(zhuǎn)換,如圖5所示。
DS90LV019有4種工作模式,模式的選擇由DE和/RE兩個(gè)信號(hào)的狀態(tài)決定。當(dāng)DE和/RE都為高時(shí),IC工作在驅(qū)動(dòng)模式;當(dāng)DE和/RE都為低時(shí),IC工作于接收模式;當(dāng)DE為低,/RE為高時(shí),IC工作在三態(tài)模式;當(dāng)DE為高,/RE為低時(shí),IC工作在全雙工模式。這里采用一片DS90LV 019作為串行通信LVDS信號(hào)的收發(fā)器,工作于全雙工模式。再用Maxim公司的MAX3221來進(jìn)行TTL/RS232電平問的轉(zhuǎn)換??刂贫送ㄟ^RS232接口發(fā)送的相機(jī)命令再通過DS90LV019傳送給相機(jī),相機(jī)接收后給出的反饋信息再通過DS90LV019和MAX3221傳送給控制端。
3 軟件設(shè)計(jì)
DDK是TI公司用來簡(jiǎn)化設(shè)備驅(qū)動(dòng)程序開發(fā)的軟件套件,它提供了一些外設(shè)的完全驅(qū)動(dòng)函數(shù),其中就有Video Port專用的Mini-driver驅(qū)動(dòng)程序庫。
視頻驅(qū)動(dòng)程序主要包括微驅(qū)動(dòng)、類驅(qū)動(dòng)和中間接口3個(gè)方面的設(shè)計(jì)。視頻采集驅(qū)動(dòng)程序中,在GIO類驅(qū)動(dòng)程序的基礎(chǔ)上進(jìn)一步封裝成FVID類。將微驅(qū)動(dòng)細(xì)分為視頻端口類和制定的編解碼芯片微驅(qū)動(dòng),兩者之間通過外部設(shè)備控制接口EDC實(shí)現(xiàn)對(duì)外圍芯片的打開、控制和關(guān)閉等操作。
為了實(shí)現(xiàn)Camera Link相機(jī)圖像數(shù)據(jù)的采集,TMS320DM642的視頻口必須被配置為RAW DATA采集方式。與通常的BT.656采集方式不同,當(dāng)Video Port工作于RAW DATA采集方式下,TMS320DM642不會(huì)進(jìn)行數(shù)據(jù)選擇和數(shù)據(jù)判斷,而BT.656方式需要判斷SAV/EAV同步碼,RAW DATA采集方式主要用于從ADC獲取原始的圖像數(shù)據(jù)。
在RAW DATA采集方式下,當(dāng)CAPEN信號(hào)(VP0_CTL0)被使能時(shí),Video Port開始采集VPOD數(shù)據(jù)線上的數(shù)據(jù),采樣數(shù)據(jù)的大小可以通過VCxST-OP1的VCXSTOP和VCYSTOP位進(jìn)行設(shè)置,通過VCXSTOP和VCYSTOP的組合,TMS320DM642允許單幀最多采集4 096Kb個(gè)采樣數(shù)據(jù)。當(dāng)采集數(shù)據(jù)達(dá)到VCXSTOP和VCYSTOP所設(shè)置的值的時(shí)候,采樣完成,此后,CAPEN信號(hào)必須保持至少2個(gè)時(shí)鐘周期的無效狀態(tài)。系統(tǒng)中設(shè)置采集幀大小為2048pix ×256pix,及采集524288個(gè)數(shù)據(jù)后打包為一幀,系統(tǒng)采用相機(jī)的時(shí)鐘WCLK=25ns,行有效周期LVAL=50μs,行無效周期為150μs,150μs>>25 ns,能保證CAPEN至少2個(gè)時(shí)鐘周期無效狀態(tài)的要求。
幀同步處理對(duì)于RAW DATA方式的圖像采集是一個(gè)很關(guān)鍵的因素。由于RAw DATA采集方式的數(shù)據(jù)不包含任何類似于BT.656數(shù)據(jù)流那樣的幀啟/停標(biāo)識(shí)碼(SAV/EAV CODE),也不提供外部的水平和垂直同步信號(hào),幀同步時(shí)無法實(shí)現(xiàn)的,所以DDK自帶的Mini-driver驅(qū)動(dòng)程序無法完成RAW DATA方式的圖像采集,則需要對(duì)Mini-driver驅(qū)動(dòng)進(jìn)行修改來實(shí)現(xiàn)RAW DATA采集,通過設(shè)置Video Port的第一場(chǎng)采樣開始寄存器VCxSTR-T1,并增加采樣垂直消隱間隔VCVBLNKP和開始同步使能位SSE來間接的實(shí)現(xiàn)幀同步功能。修改后的視頻采集結(jié)構(gòu)為:
當(dāng)SSE位被置位且視頻口采樣使能信號(hào)有效,在2個(gè)垂直消隱間隔以后,視頻口開始采集數(shù)據(jù)。通過設(shè)置VCVBLNKP位,可以定義一個(gè)垂直消隱信號(hào)時(shí)間的長(zhǎng)度。為了保證能在一幀數(shù)據(jù)開始的時(shí)候同步,系統(tǒng)將VCVBLNKP置位為0。
此外,系統(tǒng)采用的是DS90CR288A相機(jī)解碼芯片,不同于DDK中使用的SAA7121解碼芯片,所以在相機(jī)的接口配置中(VPORT_PortParams)需要對(duì)EBC接口進(jìn)行修改。
DS90CR288A主要包括打開和關(guān)閉兩個(gè)操作,可以通過對(duì)外部CPLD中的相機(jī)控制寄存器VIDEO_CLR置位來操作。修改得到的EDC控制函數(shù)如下:
4 結(jié)論
本設(shè)計(jì)實(shí)現(xiàn)了TMS320DM642通過Video Port與Camera Link相機(jī)的無縫連接,硬件接口設(shè)計(jì)簡(jiǎn)單,系統(tǒng)編程也很方便。整個(gè)圖像的采集都不用CPU的參與,可以提高整個(gè)系統(tǒng)的工作效率。