張向陽(yáng),程勇策,曲思潼
(中國(guó)電子科技集團(tuán)公司第三研究所,北京 100015)
責(zé)任編輯:任健男
光電傳感器發(fā)展至今,標(biāo)準(zhǔn)全電視信號(hào)的傳感器技術(shù)成熟穩(wěn)定,廣泛應(yīng)用在各個(gè)領(lǐng)域,隨著光電傳感器技術(shù)的發(fā)展,基于Camera Link接口的高幀頻數(shù)字相機(jī)的出現(xiàn),它提高了成像能力,提升了傳輸帶寬,但是也存在一些工程應(yīng)用上的問(wèn)題,一是基于Camera Link接口的各種相機(jī)都不能直接顯示,只能通過(guò)PC機(jī)配備專用的采集卡在屏幕上顯示,這樣的架構(gòu)不能滿足特定應(yīng)用的要求;二是傳輸距離短,有效傳輸距離在10 m以內(nèi)。
本系統(tǒng)設(shè)計(jì)采用基于DSP+FPGA的圖像處理平臺(tái)代替PC機(jī),完成對(duì)基于Camera Link接口的高幀頻數(shù)字相機(jī)的圖像信號(hào)進(jìn)行實(shí)時(shí)的采集、VGA和PAL制式的顯示、信號(hào)處理等功能,并對(duì) DSP[1-2]處理后圖像數(shù)據(jù)利用千兆以太網(wǎng)向上位機(jī)傳輸,實(shí)現(xiàn)降低硬件成本,提高系統(tǒng)集成能力,滿足對(duì)實(shí)時(shí)性和可靠性要求比較高的應(yīng)用需求。
系統(tǒng)以FPGA為中心,實(shí)現(xiàn)對(duì)相機(jī)的Camera Link接口的數(shù)據(jù)采集,并將數(shù)據(jù)實(shí)時(shí)通過(guò)VGA和PAL顯示。同時(shí)像機(jī)數(shù)據(jù)又送入DSP進(jìn)行圖像處理后,通過(guò)千兆網(wǎng)絡(luò)發(fā)送到計(jì)算機(jī)終端。系統(tǒng)架構(gòu)如圖1所示。
Camera Link標(biāo)準(zhǔn)是在NS提出的Channel Link技術(shù)標(biāo)準(zhǔn)的基礎(chǔ)上發(fā)展而來(lái)的,該接口具有開(kāi)放式的接口協(xié)議,使得不同廠家既能保持產(chǎn)品的差異性,又能互相兼容。它在傳統(tǒng)LVDS傳輸數(shù)據(jù)的基礎(chǔ)上又加載了并轉(zhuǎn)串發(fā)送器和串轉(zhuǎn)并接收器,利用SER/DES(串行化/解串行化)技術(shù)以更高的速度發(fā)送數(shù)據(jù)。
Camera Link標(biāo)準(zhǔn)使用每條鏈路需要2根導(dǎo)線的LVDS傳輸技術(shù)。驅(qū)動(dòng)器接收28個(gè)單端TTL/COMS數(shù)據(jù)信號(hào)和1個(gè)時(shí)鐘信號(hào),28個(gè)數(shù)據(jù)信號(hào)以7∶1的比例被串行發(fā)送,也就是5對(duì)LVDS信號(hào)通道上分別傳輸4組LVDS數(shù)據(jù)流和1組LVDS時(shí)鐘信號(hào),即完成28位數(shù)據(jù)的同步傳輸只需要5對(duì)線,如圖2所示。
本文以美國(guó)UNIQ公司生產(chǎn)的UP685相機(jī)為基礎(chǔ)機(jī)型,針對(duì)定制的UP685CL相機(jī)進(jìn)行Camera Link圖像采集、處理、顯示等功能設(shè)計(jì)。該相機(jī)的特性為:傳感器1/2”逐行掃描的CCD,有效像素659(H)×494(V),像元大小9.9 μm,像素時(shí)鐘固定為 40 MHz,幀頻固定為 100 Hz,曝光時(shí)間1/62 000~1/100 s,支持外部電平觸發(fā)或軟件觸發(fā),鏡頭接口C,供電電壓12 V,最大功耗6 W,數(shù)字視頻輸出格式采用CameraLink base格式[3]。
圖1 硬件平臺(tái)模塊框圖
圖2 CameraLink接口發(fā)送、接收的原理框圖
根據(jù)本系統(tǒng)的運(yùn)算性能和外設(shè)I/O的需求,選用CycloneIII系列的EP3C40F484C8芯片,它具有39 600個(gè)邏輯單元、2 340 kbit存儲(chǔ)單元,126 個(gè)乘法器、4 個(gè) PLL,331 個(gè)外部獨(dú)立I/O,最高運(yùn)行時(shí)鐘高達(dá)300 MHz,串行配置芯片存儲(chǔ)器選用EPCS64,2片IS61WV102416存儲(chǔ)器芯片SRAM 1 M×16 bit。由于輸入的數(shù)據(jù)量大、速率快,因此系統(tǒng)采用乒乓緩存機(jī)制,作為VGA顯示用的視頻數(shù)據(jù)緩存。
DSP采用TI公司的高速處理芯片TMS320C6455,主頻達(dá)到了1 GHz,1 ns的指令周期。每周期執(zhí)行8條32位指令,最大峰值速度達(dá)到8 000 MIntruction/s(兆指令/s)。TMS320CC6455[4]片內(nèi)是基于C64xx內(nèi)核的L1/L2存儲(chǔ)結(jié)構(gòu),片上集成有大量的存儲(chǔ)空間。L1P為32 kbyte,L1D為32 kbyte,L2為2 Mbyte,比此前C64x存儲(chǔ)器的容量翻一番,其中L1P和L2都可直接映射到存儲(chǔ)空間。
TMS320C6455帶有的DDRII SDRAM存儲(chǔ)器接口,可以實(shí)現(xiàn)與32位存儲(chǔ)器件的無(wú)縫連接,板載DDR2 32 M×32 bit。TMS320C6455帶有一個(gè)10/100/1 000 Mbit/s以太網(wǎng)媒體訪問(wèn)控制器(EMAC),一個(gè)無(wú)縫外部存儲(chǔ)器接口(64 bit EMIFA)支持128 M×8 bit NOR Flash。DSP與FPGA采用EMIF和Mcbps連接,EMIF支持16 bit,32 bit,64 bit寬度,速度 100 MHz。
2.1.1 轉(zhuǎn)換電路
對(duì)于接收到的LVDS串行數(shù)據(jù),需要轉(zhuǎn)換成并行數(shù)據(jù)流,利用Camera Link接收器接收LVDS數(shù)據(jù)流并將其解串成CMOS/TTL數(shù)據(jù)。采用美國(guó)NS公司的Channel Link芯片DS90CR286A作為Camera Link接收器,Camera Link接口相機(jī)硬件連接如圖3所示。
2.1.2 數(shù)據(jù)流控制
圖3 Camera Link接口信號(hào)硬件連接圖
在基模式下,傳輸時(shí)鐘40 MHz,相機(jī)輸出的5路LVDS差分?jǐn)?shù)據(jù),經(jīng)DS90CR286A轉(zhuǎn)換后,每個(gè)傳輸時(shí)鐘傳輸28位并行數(shù)據(jù),其中有視頻數(shù)據(jù)24位(3個(gè)像素),幀同步信號(hào)FVAL,行同步信號(hào)LVAL,數(shù)據(jù)同步信號(hào)DVAL,SPARE備用信號(hào)。在FPGA中將24 bit的視頻數(shù)據(jù)轉(zhuǎn)換成3個(gè)串行的字節(jié)數(shù)據(jù),采用1片雙時(shí)鐘、輸入是32 bit數(shù)據(jù)、輸出是8 bit數(shù)據(jù)、64 byte深度的雙口RAM,作為視頻數(shù)據(jù)的緩沖存儲(chǔ)結(jié)構(gòu),雙口RAM的邏輯框圖如圖4所示。
圖4 雙口RAM功能模塊圖
2.2.1 VGA 時(shí)序控制
VGA的接口芯片采用AD公司的ADV7123KST140作為VGA視頻D/A轉(zhuǎn)換器,ADV7123KST140是3路高速、10 bit的視頻D/A轉(zhuǎn)換器,工業(yè)級(jí)芯片具有最大140 MHz的采樣速率。
設(shè)計(jì)中采用VGA顯示刷新頻率為60 Hz,高速相機(jī)的幀頻為100 Hz,為了達(dá)到幀率的匹配,F(xiàn)PGA在緩存存儲(chǔ)過(guò)程中進(jìn)行抽幀存儲(chǔ),每5幀抽取3幀,依次存放到外接的2個(gè)SDRAM中,存儲(chǔ)掃描的時(shí)序如圖5所示。
1)數(shù)據(jù)抽幀存儲(chǔ)機(jī)制
(1)根據(jù)相機(jī)的幀同步信號(hào)FVAL進(jìn)行5分頻,得到控制信號(hào)RWControl,設(shè)立一個(gè)寫(xiě)存儲(chǔ)器的狀態(tài)計(jì)數(shù)器Wr,狀態(tài)計(jì)數(shù)器Wr初始值為0,用控制信號(hào)RWControl的沿對(duì)狀態(tài)計(jì)數(shù)器Wr進(jìn)行清零工作。
(2)當(dāng)控制信號(hào)RWControl為低電平時(shí),當(dāng)檢測(cè)到相機(jī)的幀同步信號(hào)FVAL上升沿后,狀態(tài)計(jì)數(shù)器Wr加1,抽取第1,3,5幀數(shù)據(jù)按照RAM2→RAM1→RAM2的順序依次寫(xiě)入外掛的SDRAM中。
(3)當(dāng)控制信號(hào)RWControl為高電平時(shí),當(dāng)檢測(cè)到相機(jī)的幀同步信號(hào)FVAL上升沿后,狀態(tài)計(jì)數(shù)器Wr加1,抽取第1,3,5幀數(shù)據(jù)按照RAM1→RAM2→RAM1的順序依次寫(xiě)入外掛的SDRAM中。
2)數(shù)據(jù)讀取掃描機(jī)制
(1)根據(jù)相機(jī)的幀同步信號(hào)FVAL進(jìn)行5分頻再3倍頻,得到VGA幀同步信號(hào)。
(2)當(dāng)控制信號(hào)RWControl為低電平時(shí),當(dāng)檢測(cè)到VGA幀同步信號(hào)上升沿后,按照RAM1→RAM2→RAM1的順序依次讀取外掛的SDRAM中。
(3)當(dāng)控制信號(hào)RWControl為高電平時(shí),當(dāng)檢測(cè)到VGA幀同步信號(hào)上升沿后,按照RAM2→RAM1→RAM2的順序依次讀取外掛的SDRAM中。
圖5 視頻信號(hào)存儲(chǔ)掃描時(shí)序
3)數(shù)據(jù)存儲(chǔ)及掃描空間
(1)外掛的數(shù)據(jù)存儲(chǔ)的SDRAM的空間大小是1 Mbyte,將SDRAM按照視頻數(shù)據(jù)行、列進(jìn)行存儲(chǔ),將SDRAM的地址線分為行、列地址空間,列地址空間0~1 023(A0~A9),行地址空間0~1 023(A10~A19),整個(gè)SDRAM可以存儲(chǔ)1 024行數(shù)據(jù),每行1 024個(gè)8 bit的像素。
(2)VGA顯示器的分辨率是800×600,相機(jī)的分辨率是659×494,是視頻信號(hào)顯示在顯示器中間,所以視頻每一行視頻數(shù)據(jù)的存儲(chǔ)地址為70~728(A0~A9),視頻行存儲(chǔ)地址為50~543(A10~A19)。
2.2.2 PAL 時(shí)序控制
PAL輸出接口采用INTERSIL公司的HI1171作為PAL制式視頻D/A轉(zhuǎn)換器,HI1171是8 bit的視頻D/A轉(zhuǎn)換器,工業(yè)級(jí)芯片具有最大40 MHz的采樣速率。
PAL模擬視頻的場(chǎng)同步信號(hào)VB是根據(jù)高速相機(jī)的幀同步信號(hào)FVAL同步后,用13 MHz外部輸入時(shí)鐘進(jìn)行計(jì)數(shù)產(chǎn)生,如圖6所示。
圖6 模擬視頻場(chǎng)同步信號(hào)時(shí)序
模擬視頻顯示的行同步和消隱信號(hào)的實(shí)現(xiàn)思路是根據(jù)模擬視頻場(chǎng)同步信號(hào)VB和13 MHz時(shí)鐘計(jì)數(shù)產(chǎn)生,計(jì)到某一個(gè)數(shù)值時(shí),使輸出的信號(hào)翻轉(zhuǎn)(由低電平到高電平或者由高電平到低電平),計(jì)數(shù)器的周期和翻轉(zhuǎn)的周期根據(jù)不同的參數(shù)而有所不同。這些時(shí)序是在FPGA中編程實(shí)現(xiàn),同時(shí)也容易調(diào)整和修改。模擬視頻的奇偶行同步信號(hào)如圖7所示。
圖7 奇、偶行同步信號(hào)時(shí)序圖
模擬視頻顯示的行同步信號(hào)、視頻數(shù)據(jù)信號(hào)及時(shí)鐘信號(hào)的時(shí)序關(guān)系如圖8所示。時(shí)鐘的上升沿選通并向HI1171寫(xiě)入數(shù)據(jù)。
圖8 行同步與視頻數(shù)據(jù)時(shí)序圖
FPGA與DSP之間實(shí)時(shí)通過(guò)EMIF接口完成視頻數(shù)據(jù)的傳輸,數(shù)據(jù)線8位(D0~D7),傳輸時(shí)鐘40 MHz,與相機(jī)的像素時(shí)鐘一致,傳輸?shù)囊曨l區(qū)域?yàn)?56×128,如圖9所示。
圖9 傳輸顯示區(qū)域
DSP完成的主要工作包括數(shù)據(jù)傳遞、圖像預(yù)處理、目標(biāo)特征提取、目標(biāo)位置計(jì)算。數(shù)據(jù)傳遞是利用DMA模式完成FPGA與DSP內(nèi)部高速緩存之間的數(shù)據(jù)傳遞(見(jiàn)圖10),圖像預(yù)處理是對(duì)灰度圖像進(jìn)行圖像分割,剔除圖像中大部分的背景信息,使目標(biāo)特征在圖像中更加明顯,目標(biāo)特征提取是在預(yù)處理后的視頻數(shù)據(jù)中,計(jì)算閾值門(mén)限,根據(jù)閾值門(mén)限進(jìn)行數(shù)據(jù)二值化,將目標(biāo)的特征信息提取出來(lái),目標(biāo)位置計(jì)算是通過(guò)行列坐標(biāo)投影方式,計(jì)算出真實(shí)目標(biāo)的行列坐標(biāo),并給出目標(biāo)在整個(gè)圖像中的位置信息。
圖10 FPGA與DSP之間讀寫(xiě)時(shí)序
圖像分割是通過(guò)對(duì)相鄰兩行的圖像數(shù)據(jù)進(jìn)行處理,用當(dāng)前像素的灰度值與上一行像素灰度的均值進(jìn)行比較,得到新的像素灰度值,計(jì)算公式為
式中:avg為上一行像素的灰度均值;p(x,y)為處理前的像素灰度值;f(x,y)為處理后的像素灰度值。
對(duì)圖像分割處理后的圖像數(shù)據(jù)使用直方圖統(tǒng)計(jì)的方法,計(jì)算出圖像的平均灰度,最大灰度值與最小灰度值,采用可變閾值法,計(jì)算出在不同目標(biāo)極性條件下的閾值門(mén)限t。
根據(jù)得到的閾值門(mén)限進(jìn)行數(shù)據(jù)二值化,計(jì)算公式為
將二值化后的數(shù)據(jù)進(jìn)行3×3數(shù)據(jù)濾波,濾波核根據(jù)實(shí)際需要進(jìn)行設(shè)置,剔除低于最小識(shí)別目標(biāo)的像素點(diǎn),并采用行列投影的方式計(jì)算目標(biāo)的行列中心位置,列出目標(biāo)位置的矩陣,根據(jù)滿足最小識(shí)別目標(biāo)的大小及目標(biāo)特征信息,剔除假目標(biāo),得到真實(shí)目標(biāo)的坐標(biāo)信息。
將視頻數(shù)據(jù)通過(guò)千兆網(wǎng)傳送給終端計(jì)算機(jī),由客戶端軟件進(jìn)行圖像顯示。利用DSP6455片內(nèi)的千兆以太網(wǎng)接口模塊 EMAC/MDIO,結(jié)合片外的PHY芯片 Agere ETl01IC以及外圍電路,擴(kuò)展了以太網(wǎng)網(wǎng)絡(luò)通信接口,采用100 Mbit/s的傳輸速率,傳輸協(xié)議采用無(wú)連接的UDP協(xié)議,提高系統(tǒng)數(shù)據(jù)的實(shí)時(shí)性,數(shù)據(jù)格式采用自定義的UDP圖像數(shù)據(jù)結(jié)構(gòu),每個(gè)UDP包發(fā)送一行視頻數(shù)據(jù),數(shù)據(jù)結(jié)構(gòu)中包括:包頭(4 byte,自定義數(shù)據(jù)內(nèi)容),圖像幀號(hào)(2 byte),圖像行號(hào)(2 byte),圖像行數(shù)據(jù)(1行圖像數(shù)據(jù)),實(shí)現(xiàn)網(wǎng)絡(luò)化傳輸視頻數(shù)據(jù)。
經(jīng)過(guò)仿真測(cè)試,F(xiàn)PGA內(nèi)部SDRAM的數(shù)據(jù)時(shí)序如圖11所示,仿真結(jié)果符合設(shè)計(jì)時(shí)序要求。
圖11 SDRAM_FIFO數(shù)據(jù)仿真圖
本設(shè)計(jì)的基于DSP+FPGA的Camera Link接口相機(jī)的圖像處理平臺(tái)能夠穩(wěn)定接收Camera Link接口的視頻數(shù)據(jù),VGA視頻顯示穩(wěn)定,數(shù)據(jù)接口帶寬及FPGA控制時(shí)序滿足設(shè)計(jì)要求,在數(shù)據(jù)處理方面,DSP運(yùn)算時(shí)間在幀周期的1/2左右,滿足圖像實(shí)時(shí)處理要求。
[1]江思敏,劉暢.TMS320C6000 DSP應(yīng)用開(kāi)發(fā)教程[M].北京:機(jī)械工業(yè)出版社,2005.
[2]江國(guó)強(qiáng).EDA技術(shù)及應(yīng)用[M].2版.北京:電子工業(yè)出版社,2007.
[3]夏宇聞.Verilog數(shù)字系統(tǒng)設(shè)計(jì)教程[M].北京:北京航空航天大學(xué)出版社,2003.
[4]TMS320C6455 Fixed -Point Digital Signal Processor[EB/OL].[2013-04-20].http://wenku.baidu.com/view/788c182e0722192e4536f6a0.html.