張向陽,程勇策,曲思潼
(中國電子科技集團公司第三研究所,北京 100015)
責任編輯:任健男
光電傳感器發展至今,標準全電視信號的傳感器技術成熟穩定,廣泛應用在各個領域,隨著光電傳感器技術的發展,基于Camera Link接口的高幀頻數字相機的出現,它提高了成像能力,提升了傳輸帶寬,但是也存在一些工程應用上的問題,一是基于Camera Link接口的各種相機都不能直接顯示,只能通過PC機配備專用的采集卡在屏幕上顯示,這樣的架構不能滿足特定應用的要求;二是傳輸距離短,有效傳輸距離在10 m以內。
本系統設計采用基于DSP+FPGA的圖像處理平臺代替PC機,完成對基于Camera Link接口的高幀頻數字相機的圖像信號進行實時的采集、VGA和PAL制式的顯示、信號處理等功能,并對 DSP[1-2]處理后圖像數據利用千兆以太網向上位機傳輸,實現降低硬件成本,提高系統集成能力,滿足對實時性和可靠性要求比較高的應用需求。
系統以FPGA為中心,實現對相機的Camera Link接口的數據采集,并將數據實時通過VGA和PAL顯示。同時像機數據又送入DSP進行圖像處理后,通過千兆網絡發送到計算機終端。系統架構如圖1所示。
Camera Link標準是在NS提出的Channel Link技術標準的基礎上發展而來的,該接口具有開放式的接口協議,使得不同廠家既能保持產品的差異性,又能互相兼容。它在傳統LVDS傳輸數據的基礎上又加載了并轉串發送器和串轉并接收器,利用SER/DES(串行化/解串行化)技術以更高的速度發送數據。
Camera Link標準使用每條鏈路需要2根導線的LVDS傳輸技術。驅動器接收28個單端TTL/COMS數據信號和1個時鐘信號,28個數據信號以7∶1的比例被串行發送,也就是5對LVDS信號通道上分別傳輸4組LVDS數據流和1組LVDS時鐘信號,即完成28位數據的同步傳輸只需要5對線,如圖2所示。
本文以美國UNIQ公司生產的UP685相機為基礎機型,針對定制的UP685CL相機進行Camera Link圖像采集、處理、顯示等功能設計。該相機的特性為:傳感器1/2”逐行掃描的CCD,有效像素659(H)×494(V),像元大小9.9 μm,像素時鐘固定為 40 MHz,幀頻固定為 100 Hz,曝光時間1/62 000~1/100 s,支持外部電平觸發或軟件觸發,鏡頭接口C,供電電壓12 V,最大功耗6 W,數字視頻輸出格式采用CameraLink base格式[3]。

圖1 硬件平臺模塊框圖

圖2 CameraLink接口發送、接收的原理框圖
根據本系統的運算性能和外設I/O的需求,選用CycloneIII系列的EP3C40F484C8芯片,它具有39 600個邏輯單元、2 340 kbit存儲單元,126 個乘法器、4 個 PLL,331 個外部獨立I/O,最高運行時鐘高達300 MHz,串行配置芯片存儲器選用EPCS64,2片IS61WV102416存儲器芯片SRAM 1 M×16 bit。由于輸入的數據量大、速率快,因此系統采用乒乓緩存機制,作為VGA顯示用的視頻數據緩存。
DSP采用TI公司的高速處理芯片TMS320C6455,主頻達到了1 GHz,1 ns的指令周期。每周期執行8條32位指令,最大峰值速度達到8 000 MIntruction/s(兆指令/s)。TMS320CC6455[4]片內是基于C64xx內核的L1/L2存儲結構,片上集成有大量的存儲空間。L1P為32 kbyte,L1D為32 kbyte,L2為2 Mbyte,比此前C64x存儲器的容量翻一番,其中L1P和L2都可直接映射到存儲空間。
TMS320C6455帶有的DDRII SDRAM存儲器接口,可以實現與32位存儲器件的無縫連接,板載DDR2 32 M×32 bit。TMS320C6455帶有一個10/100/1 000 Mbit/s以太網媒體訪問控制器(EMAC),一個無縫外部存儲器接口(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 轉換電路
對于接收到的LVDS串行數據,需要轉換成并行數據流,利用Camera Link接收器接收LVDS數據流并將其解串成CMOS/TTL數據。采用美國NS公司的Channel Link芯片DS90CR286A作為Camera Link接收器,Camera Link接口相機硬件連接如圖3所示。
2.1.2 數據流控制

圖3 Camera Link接口信號硬件連接圖
在基模式下,傳輸時鐘40 MHz,相機輸出的5路LVDS差分數據,經DS90CR286A轉換后,每個傳輸時鐘傳輸28位并行數據,其中有視頻數據24位(3個像素),幀同步信號FVAL,行同步信號LVAL,數據同步信號DVAL,SPARE備用信號。在FPGA中將24 bit的視頻數據轉換成3個串行的字節數據,采用1片雙時鐘、輸入是32 bit數據、輸出是8 bit數據、64 byte深度的雙口RAM,作為視頻數據的緩沖存儲結構,雙口RAM的邏輯框圖如圖4所示。

圖4 雙口RAM功能模塊圖
2.2.1 VGA 時序控制
VGA的接口芯片采用AD公司的ADV7123KST140作為VGA視頻D/A轉換器,ADV7123KST140是3路高速、10 bit的視頻D/A轉換器,工業級芯片具有最大140 MHz的采樣速率。
設計中采用VGA顯示刷新頻率為60 Hz,高速相機的幀頻為100 Hz,為了達到幀率的匹配,FPGA在緩存存儲過程中進行抽幀存儲,每5幀抽取3幀,依次存放到外接的2個SDRAM中,存儲掃描的時序如圖5所示。
1)數據抽幀存儲機制
(1)根據相機的幀同步信號FVAL進行5分頻,得到控制信號RWControl,設立一個寫存儲器的狀態計數器Wr,狀態計數器Wr初始值為0,用控制信號RWControl的沿對狀態計數器Wr進行清零工作。
(2)當控制信號RWControl為低電平時,當檢測到相機的幀同步信號FVAL上升沿后,狀態計數器Wr加1,抽取第1,3,5幀數據按照RAM2→RAM1→RAM2的順序依次寫入外掛的SDRAM中。
(3)當控制信號RWControl為高電平時,當檢測到相機的幀同步信號FVAL上升沿后,狀態計數器Wr加1,抽取第1,3,5幀數據按照RAM1→RAM2→RAM1的順序依次寫入外掛的SDRAM中。
2)數據讀取掃描機制
(1)根據相機的幀同步信號FVAL進行5分頻再3倍頻,得到VGA幀同步信號。
(2)當控制信號RWControl為低電平時,當檢測到VGA幀同步信號上升沿后,按照RAM1→RAM2→RAM1的順序依次讀取外掛的SDRAM中。
(3)當控制信號RWControl為高電平時,當檢測到VGA幀同步信號上升沿后,按照RAM2→RAM1→RAM2的順序依次讀取外掛的SDRAM中。

圖5 視頻信號存儲掃描時序
3)數據存儲及掃描空間
(1)外掛的數據存儲的SDRAM的空間大小是1 Mbyte,將SDRAM按照視頻數據行、列進行存儲,將SDRAM的地址線分為行、列地址空間,列地址空間0~1 023(A0~A9),行地址空間0~1 023(A10~A19),整個SDRAM可以存儲1 024行數據,每行1 024個8 bit的像素。
(2)VGA顯示器的分辨率是800×600,相機的分辨率是659×494,是視頻信號顯示在顯示器中間,所以視頻每一行視頻數據的存儲地址為70~728(A0~A9),視頻行存儲地址為50~543(A10~A19)。
2.2.2 PAL 時序控制
PAL輸出接口采用INTERSIL公司的HI1171作為PAL制式視頻D/A轉換器,HI1171是8 bit的視頻D/A轉換器,工業級芯片具有最大40 MHz的采樣速率。
PAL模擬視頻的場同步信號VB是根據高速相機的幀同步信號FVAL同步后,用13 MHz外部輸入時鐘進行計數產生,如圖6所示。

圖6 模擬視頻場同步信號時序
模擬視頻顯示的行同步和消隱信號的實現思路是根據模擬視頻場同步信號VB和13 MHz時鐘計數產生,計到某一個數值時,使輸出的信號翻轉(由低電平到高電平或者由高電平到低電平),計數器的周期和翻轉的周期根據不同的參數而有所不同。這些時序是在FPGA中編程實現,同時也容易調整和修改。模擬視頻的奇偶行同步信號如圖7所示。

圖7 奇、偶行同步信號時序圖
模擬視頻顯示的行同步信號、視頻數據信號及時鐘信號的時序關系如圖8所示。時鐘的上升沿選通并向HI1171寫入數據。

圖8 行同步與視頻數據時序圖
FPGA與DSP之間實時通過EMIF接口完成視頻數據的傳輸,數據線8位(D0~D7),傳輸時鐘40 MHz,與相機的像素時鐘一致,傳輸的視頻區域為256×128,如圖9所示。

圖9 傳輸顯示區域
DSP完成的主要工作包括數據傳遞、圖像預處理、目標特征提取、目標位置計算。數據傳遞是利用DMA模式完成FPGA與DSP內部高速緩存之間的數據傳遞(見圖10),圖像預處理是對灰度圖像進行圖像分割,剔除圖像中大部分的背景信息,使目標特征在圖像中更加明顯,目標特征提取是在預處理后的視頻數據中,計算閾值門限,根據閾值門限進行數據二值化,將目標的特征信息提取出來,目標位置計算是通過行列坐標投影方式,計算出真實目標的行列坐標,并給出目標在整個圖像中的位置信息。

圖10 FPGA與DSP之間讀寫時序
圖像分割是通過對相鄰兩行的圖像數據進行處理,用當前像素的灰度值與上一行像素灰度的均值進行比較,得到新的像素灰度值,計算公式為

式中:avg為上一行像素的灰度均值;p(x,y)為處理前的像素灰度值;f(x,y)為處理后的像素灰度值。
對圖像分割處理后的圖像數據使用直方圖統計的方法,計算出圖像的平均灰度,最大灰度值與最小灰度值,采用可變閾值法,計算出在不同目標極性條件下的閾值門限t。
根據得到的閾值門限進行數據二值化,計算公式為

將二值化后的數據進行3×3數據濾波,濾波核根據實際需要進行設置,剔除低于最小識別目標的像素點,并采用行列投影的方式計算目標的行列中心位置,列出目標位置的矩陣,根據滿足最小識別目標的大小及目標特征信息,剔除假目標,得到真實目標的坐標信息。
將視頻數據通過千兆網傳送給終端計算機,由客戶端軟件進行圖像顯示。利用DSP6455片內的千兆以太網接口模塊 EMAC/MDIO,結合片外的PHY芯片 Agere ETl01IC以及外圍電路,擴展了以太網網絡通信接口,采用100 Mbit/s的傳輸速率,傳輸協議采用無連接的UDP協議,提高系統數據的實時性,數據格式采用自定義的UDP圖像數據結構,每個UDP包發送一行視頻數據,數據結構中包括:包頭(4 byte,自定義數據內容),圖像幀號(2 byte),圖像行號(2 byte),圖像行數據(1行圖像數據),實現網絡化傳輸視頻數據。
經過仿真測試,FPGA內部SDRAM的數據時序如圖11所示,仿真結果符合設計時序要求。

圖11 SDRAM_FIFO數據仿真圖
本設計的基于DSP+FPGA的Camera Link接口相機的圖像處理平臺能夠穩定接收Camera Link接口的視頻數據,VGA視頻顯示穩定,數據接口帶寬及FPGA控制時序滿足設計要求,在數據處理方面,DSP運算時間在幀周期的1/2左右,滿足圖像實時處理要求。
[1]江思敏,劉暢.TMS320C6000 DSP應用開發教程[M].北京:機械工業出版社,2005.
[2]江國強.EDA技術及應用[M].2版.北京:電子工業出版社,2007.
[3]夏宇聞.Verilog數字系統設計教程[M].北京:北京航空航天大學出版社,2003.
[4]TMS320C6455 Fixed -Point Digital Signal Processor[EB/OL].[2013-04-20].http://wenku.baidu.com/view/788c182e0722192e4536f6a0.html.