|
前言4 [ _! Q* ~, J5 p) `+ B1 O
: U, j6 b$ a- w* L
* Q; U2 K! a8 B% c
9 q: H. r0 y; j" U" ZSDI接口,全稱是“數(shù)字分量串行接口(Serial Digital Interface)”。按速率可分為標準清新度SD-SDI、高清標準HD-SDI和3G-SDI,其對應(yīng)速率分別是270Mb/s、1.485Gb/s和2.97Gb/s。目前在航空航天、軍事、醫(yī)療、交通等領(lǐng)域,SDI的應(yīng)用廣泛度僅次于CameraLink接口。
+ B4 Z0 h& z4 O6 ~, R2 P" I$ ~( F/ o7 x) Y6 K7 P' }5 K3 ~
​
; q: @8 R- t- Y7 J; z
, u$ W2 X4 ^* m0 Y( @: b; g$ }0 k5 \1 r, g- z& D: C
: h6 W) F7 O/ v8 R Y
) q: V; d5 D0 lSDI接口優(yōu)勢:0 B* f9 u( r& U0 _- x
(1) 消耗GTX更少,消耗IO更少
2 H5 D5 f# d$ v5 `1 [+ _8 V/ r如果使用GTX總線,僅需1對GTX,而HDMI則需要3對GTX。CameraLink接口由于走LVDS信號,Base模式下需要11對LVDS信號,F(xiàn)ull模式下需要22對LVDS信號,消耗IO數(shù)量比GTX SDI多了很多。5 V# r' A* S9 W |' s$ O# v% v+ j
(2) 傳輸更穩(wěn)定
. ^" F% K! }! ~8 U5 Y相較于HDMI接口,SDI接口的自鎖扣設(shè)計更加穩(wěn)定可靠,不易脫落,不會因人為因素造成信號中斷。+ c, s+ o: s+ i9 `
(3) 傳輸距離更長
# ^1 r3 E" y4 K4 f4 j% X串行接口是指逐位數(shù)據(jù)的順序傳輸。它的特點是通訊線簡單。只要一對傳輸線可以實現(xiàn)雙向通信,特別適合于長距離通信。從理論上講,SDI的傳輸距離可以達到100m。+ c7 s5 A d9 H3 ~" l. t# u/ _
(4) 成本更低" D4 j3 N; G! N; Z4 y
SDI接口平均每米價格約為4元,相較于HDMI接口的平均每米價格約為10元,SDI接口成本更低。/ U& V0 u# S, U H; o* |2 ]
$ E! e/ m* b! z: e
* Q0 k( U {. c M3 Y8 l- I9 j創(chuàng)龍科技(Tronlong)的Kintex-7、Zynq-7045/7100等FPGA板卡通過FMC視頻模塊已實現(xiàn)兩種SDI視頻輸入/視頻輸出方案:GTX +外接芯片。本文將為您分享基于Kintex-7 FPGA評估板、TL2971A/2972F視頻模塊的3G-SDI視頻輸入/輸出開發(fā)案例,使用外接芯片方式。TL2971A/2972F視頻模塊模塊亦可支持GTX方式。
, h! {5 q, S4 Z" H5 H+ O5 w% }
. V2 n4 h% j# T; e7 I$ u, l c8 G" K' a6 \+ F" N
( W; _6 @) z- r1 \: J' F6 k
2 m; Y4 B2 C d●硬件平臺- }, x, [8 s; Z* K: U# D0 I
( M) {6 q; r/ Z% L0 t% M! z; f
; w# v$ f0 } t# ^9 j: x+ L6 e7 h# Q
' {8 x/ N/ `9 k0 ~! s, I; }# P1 TLK7-EVM評估板. g. q, F; B# s: H) w' `
4 U4 Y- ~! N1 P6 G l# _: u
本文基于創(chuàng)龍科技TLK7-EVM評估板、TL2971A/2972F視頻模塊進行演示。5 ]8 y( o8 s+ C( ?, h
TLK7-EVM是一款基于Xilinx Kintex-7系列FPGA設(shè)計的高端評估板,由核心板和評估底板組成。核心板經(jīng)過專業(yè)的PCB layout和高低溫測試驗證,穩(wěn)定可靠,可滿足各種工業(yè)應(yīng)用環(huán)境。+ R8 N$ ]# f% _
評估板接口資源豐富,引出FMC、SFP+、PCIe、SATA、HDMI等接口,方便用戶快速進行產(chǎn)品方案評估與技術(shù)預(yù)研。; R K& M& K# Q% z( }# u" f$ u
可申請TLK7-EVM評估板進行快速評估,點tronlong.com/Product/show/93.html,免費哦!9 u: J% x7 a ^$ @+ z) ^
​4 N c' {9 U; q; m9 T5 p
) e& T e% e! S, ~ L' B: v1 T. @0 r2 y0 z) r
TLK7-EVM評估板5 Q9 \/ p% K3 @7 a
) G! V' K# w) ?: n5 d, d% s/ y
5 q4 B) P+ V, ~6 M/ M6 V" s# `) e$ X2 B1 r
2 TL2971A/2972F視頻模塊5 N8 ]: \# d. z8 g6 d5 p# D
4 Z1 ~" F3 L, U5 N# W1 d6 c# G' J3 E9 H
TL2971A/2972F是一款基于FMC LPC標準設(shè)計的3G-SDI視頻輸入/輸出模塊,與創(chuàng)龍科技Zynq-7000/Kintex-7/Artix-7等評估板配套使用。以下為此模塊特點:* J9 _9 [) o/ ]
(1)通過GTX高速串行總線引出1路SDI視頻輸入接口,最高支持2.97Gb/s(1080P60)。
/ P; O9 S" W* A' }! t(2)通過GTX高速串行總線引出1路SDI視頻輸出接口,最高支持2.97Gb/s(1080P60)。
, c% z M+ o' T: L(3)通過GS2971A芯片引出1路SDI視頻輸入接口,最高支持2.97Gb/s(1080P60)。! e( e0 \$ X, J7 q
(4)通過GS2972芯片引出1路SDI視頻輸出接口,最高支持2.97Gb/s(1080P60)。
- a9 j. h6 T7 n0 d+ J(5)采用標準BNC連接器,支持視頻設(shè)備熱插拔。
# v1 g4 o0 C- w3 y5 E4 ?​9 {$ J2 H, y: n6 K# ^# e2 |
0 I9 Q2 T0 H0 x5 e: d& p! ~. Z% A) T' N) v f
TL2971A/2972F視頻模塊
$ U7 e$ ~0 h# a; s4 d7 c9 V) l! F/ M' V+ T, _! }
9 h: s$ A/ `7 E0 T; n
* d0 ^; t# J1 o. C+ A+ q' Z1 n L( i% k7 u5 a' r' U- w% X
; ^! r! N t& _3 C
# J8 K, o0 U& d; i. M●案例功能$ V1 N) ? ?( d
0 z# m- r3 _* P, }+ N) ]$ s& D. h( j: E2 A$ ~1 p
, g0 a4 ^* E' P. ]8 L本案例為通過GS2971A、GS2972芯片引出SDI視頻輸入、輸出案例。通過GTX高速串行總線引出的SDI視頻輸入、輸出案例即將發(fā)布,敬請期待。
9 y! O9 Q4 v# E9 V# F, H, x. a案例功能:評估板通過FMC視頻模塊TL2971A/2972F的SDI IN接口進行1080P60視頻采集,并通過TL2971A/2972F模塊的SDI OUT接口將采集到的視頻進行輸出。案例源碼、產(chǎn)品資料(用戶手冊、核心板硬件資料、產(chǎn)品規(guī)格書)可點:site.tronlong.com/pfdownload獲取。
* h' y0 A* U) s% `
7 y3 u3 |* c7 C9 M7 ]0 k; s+ `* _* s: p- X
開發(fā)案例主要包括:5 j4 y& X/ E5 ] ] U% M. ?8 q
l CameraLink、SDI、HDMI、PAL視頻輸入/輸出案例
+ Q+ B$ D. z5 S& S3 m) E2 N. a) F4 hl 高速AD(AD9613)采集+高速DA(AD9706)輸出案例. T# t2 t" m6 m5 {8 v8 Q
l AD9361軟件無線電案例
5 o v/ f2 a- l3 R7 ?! S+ Ml UDP(10G)光口通信案例' q- t3 r( D+ ^* Z" N$ ?2 D
l UDP(1G)光口通信案例
% ^" a4 l/ W0 ]l Aurora光口通信案例
8 g/ d/ D/ |; m: Jl PCIe通信案例
/ e/ Q0 z! ]9 Z, P& p7 V8 _& V+ h' F- ?
8 ^+ d8 M8 B/ p! {$ W* _
0 t+ z+ j1 v) {) _●案例演示/ k: H. B S7 x [& D2 I
7 y1 {! y' }" L `" A. {
將創(chuàng)龍科技的TL2971A/2972F模塊連接至評估板FMC1接口,評估板J1跳線帽選擇3.3V檔位,以配置FMC IO的BANK電壓為3.3V。
3 Q/ B( N- p5 V# i+ Z準備一臺擁有HDMI OUT接口的PC機(例如筆記本),通過HDMI數(shù)據(jù)線將PC機HDMI OUT接口連接至HDMI轉(zhuǎn)SDI模塊(廠家:玩視,型號:3G HDMI TO SDI Audio)INPUT接口,PC機HDMI OUT接口用作圖像輸出。通過SDI數(shù)據(jù)線將TL2971A/2972F模塊的SDI IN接口連接至HDMI轉(zhuǎn)SDI模塊的OUTPUT接口。: T0 G* R5 L7 M' ^6 D0 D
. d$ X* O' E5 \0 x& e8 m1 J# W
; L' n3 T/ V0 _9 q( T/ ^7 u
通過SDI數(shù)據(jù)線將TL2971A/2972F模塊的SDI OUT接口連接至SDI轉(zhuǎn)HDMI模塊(廠家:玩視,型號:3G SDI TO HDMI Audio)的INPUT接口,再通過HDMI數(shù)據(jù)線將一臺HDMI顯示屏連接至SDI轉(zhuǎn)HDMI模塊的OUTPUT接口,HDMI顯示屏用作圖像顯示。& Y- K+ p4 I% a+ N( A/ }' ?
k; w, N2 I$ U0 r3 t5 f
& n, w9 t2 ?0 n! x# |4 U: V; E* H- w& @6 p3 M6 x- N
% ^8 @ F6 z; o7 u
​$ m0 i: W! L+ ^# i( m- ~; L
6 w# Q! z0 t( h/ o& g9 Q' A3 v; g6 H# J( j1 k5 ]3 q
​
6 t- `' h/ N7 e7 T
m$ y+ H# O' h& n; b W
7 g) y ~! @. c$ h9 S5 f- `+ D
) b7 g& C5 @- M: E
3 h# G: D$ ]0 C3 ?運行程序,即可看到串口調(diào)試終端打印如下信息,然后在PC機的顯卡設(shè)置(或圖形屬性)中,按照下圖設(shè)置HDMI分辨率為1920x1080、刷新率為60pHz。
2 l8 Q8 U& o/ ?0 M. ]
+ }6 ^ |, i: @" M+ I* \6 t" H5 l3 a6 ^# Z
​& W+ ]1 }$ F9 }9 o
8 v2 k Y7 M/ t3 L) C
: i' k3 ^! V1 d+ e
4 W( M6 @+ I; o! ?2 j- o/ v
Z4 t9 a' B" f1 Q
​. k' J: t+ g% y3 v
V6 |, G5 I# x8 J/ x% e. c1 B. T0 @7 Q6 j" S& E) x# a" M
此時,HDMI顯示屏將顯示PC機HDMI OUT接口輸出的圖像。8 f: D2 d! {# f) \& O: m0 t0 q
​" }3 T+ n" x" G$ I- `9 G
- ]: h5 @# N0 ?$ }- y& `/ [8 a7 l, W# b
​' H+ D. x6 h7 |- I3 s' M
7 \4 g7 X0 g( n+ n/ M; H& ?) D. }+ i$ n0 P" n( Z- z
●關(guān)鍵代碼(MicroBlaze)# ^& U6 l3 C/ d. K9 Y
+ ]! k/ O0 W: L1 m
MicroBlaze裸機源碼為"sw\baremetal_demo\project\sdi_capture_display\src\",關(guān)鍵代碼說明如下。
. d* l: R1 J; M6 }3 m- L6 p- ~% f/ W
: c1 g5 Z8 ]+ Z8 y! [+ w" X
2 E, D) @- v* W4 T: S0 _(1) 初始化VDMA,將采集到的視頻數(shù)據(jù)緩存至DDR,并將視頻數(shù)據(jù)搬運至AXI4-Stream to Video Out IP核,再進行SDI視頻輸出。
# F6 d0 A9 A4 y0 n& ~0 t​
6 h: u5 g1 e% _8 y. F9 m● IP核配置. g% [: L' [4 m; i
L7 d9 O+ l# n: R4 ^& k
1 VDMA IP核2 \1 M* H) q5 p; H o. M
. Z# f0 E9 }" ^3 W
本案例使用VDMA IP核進行視頻數(shù)據(jù)緩存。* i* a, v0 r1 p9 [+ y
VDMA(AXI Video Direct Memory Access) IP核開發(fā)文檔為產(chǎn)品資料“6-開發(fā)參考資料\Xilinx官方參考文檔\”目錄下的pg020_axi_vdma.pdf,具體配置說明如下。8 ?$ ?9 @2 F1 j% f3 J, _2 D
(1) Frame Buffer配置為3個。7 ?: w/ j- ?- X1 ~% m
(2) Write Burst Size、Read Burst Size均配置為16。
~ S# ]- D( K' V. F! `& T(3) 讀通道的Stream Date Width配置為24。0 }6 D! a! N9 f& k# y, o
(4) 讀/寫通道的Line Buffer Depth均配置為1024。
; r: m: J6 U( U+ X# u​
! i8 X5 X2 T* q: A8 @' O7 t; U5 V/ V+ t; y
9 \# J. c7 v! Z/ @" E' R" ?/ N: O(5) 點擊Advanced,保持默認配置,即可避免VDMA同時讀寫同一個Buffer,造成視頻數(shù)據(jù)傳輸亂碼。
+ K8 \# h- r# L( X6 o" P* R: Y: [" i& ]+ K
) Y4 x7 t% V" d T( J6 w& d" P0 K​
7 f4 ?9 r; D" P7 `; H& c' }. U0 t4 a" \# \3 \
) f; t& f. B( n
2 Video In to AXI4-Stream IP核2 N) G/ Q# |* f6 m e
6 Z4 l$ J: E7 _: \- A' |; L
本案例使用Video In to AXI4-Stream IP核將并行視頻信號轉(zhuǎn)換為AXI4-Stream視頻流。4 m7 O5 B5 v/ m$ M; ~! y" q
# R/ ~$ \- `% G5 z3 ]7 ~4 J# @# s$ E7 r, u+ ~
Video In to AXI4-Stream IP核開發(fā)文檔為產(chǎn)品資料“6-開發(fā)參考資料\Xilinx官方參考文檔\”目錄下的《pg043_v_vid_in_axi4s.pdf》,具體配置說明如下。
7 |% m6 N9 t! N" N) k2 W: g1 F
" f. R# C7 d1 Y& a! q3 {8 `/ Y; \; D H% K$ p) \
(1) 視頻格式配置為YUV 4:2:2。: k7 ]9 v6 R" l Z5 B. g
(2) 數(shù)據(jù)位寬配置為10bit。! b) _8 H+ Z+ B3 k# S1 z+ }
(3) Clock Mode配置為Independent(獨立時鐘)。
+ p- O2 a+ e: `! ^9 G​
9 M3 Z: O) I+ B* t z
) _" n. ^5 F$ ]5 n+ I* U: j- E6 f. c" w% t+ Y
/ P& @- b' N7 }" ?8 f# p. i) M- k* U7 V7 d: w( w
3 AXI4-Stream to Video Out IP核" l, v0 N- n1 Y1 {" ~
- C# p. t3 p: [0 g本案例使用AXI4-Stream to Video Out IP核將AXI4-Stream視頻流轉(zhuǎn)化為并行視頻信號。
) P: |) K0 s0 t, V- iAXI4-Stream to Video Out IP核開發(fā)文檔為產(chǎn)品資料“6-開發(fā)參考資料\Xilinx官方參考文檔\”目錄下的《pg044_v_axis_vid_out.pdf》,具體配置說明如下。, O1 |& _9 s! _+ i* y
(1) 視頻格式配置為YUV 4:2:2。 p) C3 f0 u! L( e4 P
(2) 數(shù)據(jù)位寬配置為10bit。: w& e3 C/ g1 h, Y f: Z
(3) Clock Mode配置為Independent(獨立時鐘)。
8 X8 r5 B) K% d8 S. s! [8 s8 M' N​6 W9 W/ h# E* U5 D1 l, j
' K |: s- N4 A Q8 i1 g/ e/ v, F
1 J; }! A) j( Z$ C2 q& G6 o1 T- g4 VTC IP核
) ?+ f6 x5 n4 n( y, _ m9 g/ g7 l* B7 c* C6 w# j
本案例使用VTC IP核產(chǎn)生用于視頻輸出的時序。
: Z& s* B5 p3 D9 a- c: _VTC(Video Timing Controller) IP核開發(fā)文檔為產(chǎn)品資料“6-開發(fā)參考資料\Xilinx官方參考文檔\”目錄下的《pg016_v_tc.pdf》,具體配置說明如下。
! p- S, O% F6 _! F(1) 點擊Detection/Generation,確保不勾選"Include AXI4-Lite Interface"及"Enable Detection"。2 Y8 I0 M' g& _% r( i
3 T& t* \6 k$ c1 {- \5 b1 I7 P
2 d" `3 x' L8 [​
& v) ^* P! v& f, M' K) f+ P
* [* G4 z5 ^2 ?: @. f( n* f& p3 T, G2 a. J$ ~; y# `5 b
(2) 點擊Default/Constant,Video Mode設(shè)為1080p,其余配置保持默認。
7 y6 u2 ~5 ^% [1 B​! w }! e+ F! \6 H0 Z9 K
3 s! m2 i; Q- W/ ^$ Y |4 V$ C( v# l
) P9 P0 l( \8 M% \8 v1 K7 \5 Clocking Wizard IP核
: }1 ]2 f% f' W3 s. L' M: i. {( _. ^" Z8 U2 m7 v) h F* }" |
本案例使用Clocking Wizard IP核產(chǎn)生用于視頻輸出的像素時鐘(148.5MHz,對應(yīng)1080P60)。; m4 I) J7 a5 g( T8 u7 `% S8 J
Clocking Wizard IP核開發(fā)文檔為產(chǎn)品資料“6-開發(fā)參考資料\Xilinx官方參考文檔\”目錄下的《pg065-clk-wiz.pdf》,具體配置如下。. ?& s: y0 m3 c; q' g0 h
​
' Z$ O- }, o; N' a6 N
" u! h, |0 M. q# F# F
) K' B1 ]& n7 Z2 V
" ~2 z2 u/ O4 G8 P3 `( e+ U" Z2 g4 r+ ]8 H
●Vivado工程說明8 K! R: J( y \. P3 J0 F2 K
2 ~; V% Z/ B% K; N' j+ V5 S+ z2 W+ k
點擊BLOCK DESIGN開發(fā)界面下的"Address Editor"選項,可查看IP核分配的地址,MicroBlaze可通過對應(yīng)地址對IP核進行控制。2 l- b3 r6 J. [. z) U6 \# J7 r% t
​! _$ ^' L2 z1 f: Z4 M
3 u& M7 _( g: ]4 E, ^) L) d4 Y% o6 X/ o+ |8 F& h
Vivado工程頂層文件為"hw\project\sdi_capture_display.srcs\sources_1\imports\hdl\sdi_capture_display.v",關(guān)鍵代碼說明如下。5 ?3 k- O3 F1 \- l
2 ~9 E9 b. @' E, b5 j* v4 ^3 b
5 B) v, m1 \" H5 F( S% [1 P( O% e(1) 定義模塊接口。9 g5 Z( |* g$ r X
​
( E* m+ \9 o, u5 _5 ~9 w5 E9 ^, D4 l0 x, X/ b" o$ ^' f. R$ U
; F( N8 i! D' V: H/ y(2) 使用STARTUPE2原語輸出復(fù)位信號。" u9 h% A/ Q* x! n1 u6 Z% ]! X
​2 ^5 x9 o! V2 R
- L2 L5 p8 m; X4 H$ A$ A* E& r8 i L' B- q
3 g! c/ `4 U* @
) Y- W+ r' u9 S1 V6 c, d9 t(3) 調(diào)用Block Design。& h9 V7 o/ p+ q* O# q# h1 n
​$ e3 h, v+ {: S# |8 J4 @+ }) ~6 I
w" ]3 ]. ?7 L# [# C
, j. V& j; Q4 N) d; P. |/ E
​3 d* m0 L! M8 o7 R# \7 |
2 V' _; Z5 p0 Q8 i4 x3 K" j" }; D0 J9 B9 n. w. N8 ?
|
|