|
前言
; ]: ~" R; e3 D
- Z+ p @1 \7 W& b7 [
9 X! v# O' M& v: W) `7 } b$ q
/ f. P+ F: A! B6 c6 gSDI接口,全稱是“數(shù)字分量串行接口(Serial Digital Interface)”。按速率可分為標準清新度SD-SDI、高清標準HD-SDI和3G-SDI,其對應速率分別是270Mb/s、1.485Gb/s和2.97Gb/s。目前在航空航天、軍事、醫(yī)療、交通等領域,SDI的應用廣泛度僅次于CameraLink接口。
# z+ H* ^9 d" T. W( z3 } L5 `7 V
+ v- R1 e. n7 w$ x​6 \+ E% ~; ]6 O# Q/ t0 q
0 L: n0 P% e- _- x+ o* Y
/ Z# F, s5 u: b: {# G* \. l# M+ c0 l9 b l) D
6 Y4 I) z5 H& \6 fSDI接口優(yōu)勢:
7 S: V8 E* }4 q7 ~% I(1) 消耗GTX更少,消耗IO更少; a( x& Y1 r* ^0 A* U8 t; H
如果使用GTX總線,僅需1對GTX,而HDMI則需要3對GTX。CameraLink接口由于走LVDS信號,Base模式下需要11對LVDS信號,F(xiàn)ull模式下需要22對LVDS信號,消耗IO數(shù)量比GTX SDI多了很多。/ {5 P8 C+ i0 D7 K; w
(2) 傳輸更穩(wěn)定
5 K0 q5 M d+ L# t相較于HDMI接口,SDI接口的自鎖扣設計更加穩(wěn)定可靠,不易脫落,不會因人為因素造成信號中斷。# K* ]4 o. Q3 D3 v1 x- P: q2 y
(3) 傳輸距離更長
6 z/ b+ y2 g, O: H3 K0 W% q串行接口是指逐位數(shù)據(jù)的順序傳輸。它的特點是通訊線簡單。只要一對傳輸線可以實現(xiàn)雙向通信,特別適合于長距離通信。從理論上講,SDI的傳輸距離可以達到100m。% i/ l8 M. l7 N8 _$ P
(4) 成本更低
3 X8 Q2 I$ ]4 TSDI接口平均每米價格約為4元,相較于HDMI接口的平均每米價格約為10元,SDI接口成本更低。
9 y' ?3 } T9 B) k# f, Z0 K
- v( {9 F7 ~: @6 j
8 M7 K3 L) Q @% g- o創(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方式。4 I* `. K( y) q% X- z4 U- r d
3 ~7 V3 k) [# W/ t
! H) C# y p2 U" V0 V+ C+ w( T
( j9 t o1 X: C( ~
- P# X! J3 k9 p* X●硬件平臺0 W) s+ V6 M+ h. ?1 R! Y: c" K
8 b- t1 n) ^3 |7 T
& k- |+ `' M0 \% S5 S
7 n ^& Y/ ^5 T1 t8 v! y1 f7 j1 TLK7-EVM評估板
+ I% ?$ s. r1 @8 h. l, \# P9 k7 A7 w0 ]2 V
本文基于創(chuàng)龍科技TLK7-EVM評估板、TL2971A/2972F視頻模塊進行演示。+ f7 i- v: X) q3 {/ U; r
TLK7-EVM是一款基于Xilinx Kintex-7系列FPGA設計的高端評估板,由核心板和評估底板組成。核心板經(jīng)過專業(yè)的PCB layout和高低溫測試驗證,穩(wěn)定可靠,可滿足各種工業(yè)應用環(huán)境。. |; Y' f; ?3 ^
評估板接口資源豐富,引出FMC、SFP+、PCIe、SATA、HDMI等接口,方便用戶快速進行產(chǎn)品方案評估與技術預研。
/ @$ Q% j3 I3 C7 z) `4 U4 q7 ?可申請TLK7-EVM評估板進行快速評估,點tronlong.com/Product/show/93.html,免費哦!. b' O ~4 ~5 h1 A- B/ p
​" L; {3 `7 y6 I3 s$ Q/ `
# M0 \! a5 k& P" B4 z8 O+ z2 t3 J+ B, T* u3 }5 u6 j
TLK7-EVM評估板# I$ Q: S7 f7 Y4 o
# L8 v3 k/ s5 z/ G; |$ d6 q: P: t* b' O8 b6 A! n9 U
2 |) \# \, G3 ^* J; O2 TL2971A/2972F視頻模塊
& R( d3 }" ?+ m/ f! J, J( v
9 B' k7 [4 [5 G: X, m a& ?TL2971A/2972F是一款基于FMC LPC標準設計的3G-SDI視頻輸入/輸出模塊,與創(chuàng)龍科技Zynq-7000/Kintex-7/Artix-7等評估板配套使用。以下為此模塊特點:
$ [4 Y0 N! l3 H3 R(1)通過GTX高速串行總線引出1路SDI視頻輸入接口,最高支持2.97Gb/s(1080P60)。
Q9 K) H8 M0 Z" L; L2 A1 `8 O2 i(2)通過GTX高速串行總線引出1路SDI視頻輸出接口,最高支持2.97Gb/s(1080P60)。
' {9 p; B7 }' g) y! L* a0 s6 P(3)通過GS2971A芯片引出1路SDI視頻輸入接口,最高支持2.97Gb/s(1080P60)。0 l& O/ |2 m8 J( Z# |, _7 h
(4)通過GS2972芯片引出1路SDI視頻輸出接口,最高支持2.97Gb/s(1080P60)。1 y0 k& o0 V9 y1 m/ E, j
(5)采用標準BNC連接器,支持視頻設備熱插拔。
b7 u% E' A, Z7 P b​ R6 i: J! I, c' E5 q, T+ c
. J) p% ]/ V4 c3 q8 \
4 X9 p) b0 {( s/ p' fTL2971A/2972F視頻模塊
4 u6 r* \3 T( W7 x. _2 U% A8 x4 d
- j3 O/ ^2 e0 R. v' ^4 N+ {: R( D2 w
8 |, }' U, `5 } T
5 C3 X; i+ k$ K# `3 _
! e, q$ H) L3 S. Z" a7 ?# G4 X w- W1 `! C6 Q# J
●案例功能, v1 j$ |; Y+ A$ z
7 G2 l2 \0 l; F0 o& S' a) c
& B1 b2 F/ R: H8 a% M
' ^7 K) }" V% m' U; v本案例為通過GS2971A、GS2972芯片引出SDI視頻輸入、輸出案例。通過GTX高速串行總線引出的SDI視頻輸入、輸出案例即將發(fā)布,敬請期待。
5 `8 r+ x0 J7 i2 j! l* z2 _" X案例功能:評估板通過FMC視頻模塊TL2971A/2972F的SDI IN接口進行1080P60視頻采集,并通過TL2971A/2972F模塊的SDI OUT接口將采集到的視頻進行輸出。案例源碼、產(chǎn)品資料(用戶手冊、核心板硬件資料、產(chǎn)品規(guī)格書)可點:site.tronlong.com/pfdownload獲取。
& B# e4 u$ r$ v; T6 l: K7 t/ c- f4 y% U4 z4 \2 `7 }
) x7 b" A! y% S* i' |
開發(fā)案例主要包括:
( D: [ y- |, ]% C3 x4 _( ll CameraLink、SDI、HDMI、PAL視頻輸入/輸出案例. z) P. {7 p, T0 L4 B. c
l 高速AD(AD9613)采集+高速DA(AD9706)輸出案例6 _5 u7 U; E7 f& A0 ?5 g2 H
l AD9361軟件無線電案例
' J% F/ K2 f: k" Ql UDP(10G)光口通信案例8 b0 V, Y6 O e% L
l UDP(1G)光口通信案例
) i1 K; T7 c8 i& I4 ll Aurora光口通信案例
* D( E' l. j) i, _+ g" @0 a7 ?l PCIe通信案例
- C ^7 a0 Y) X8 f& @, y+ v
v% I L5 M$ A, v# b' N6 W( b3 {& _6 l+ J. ~7 b
o& M/ J# V1 F0 z3 M" E) n3 G
●案例演示% J# P9 n, i# `# b1 s3 ^$ o
" }7 W0 b0 e6 }0 T8 j將創(chuàng)龍科技的TL2971A/2972F模塊連接至評估板FMC1接口,評估板J1跳線帽選擇3.3V檔位,以配置FMC IO的BANK電壓為3.3V。! k/ L& j2 b' R& A
準備一臺擁有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接口。
/ i! o" V7 l& l X. E' q% @& \ n" m, S5 `0 }' Z6 k
5 [/ s7 A! D3 y. X; J2 N( M/ B9 n, h通過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顯示屏用作圖像顯示。' I- {/ O: C6 V2 a7 X) ~
/ F6 T0 f. s/ `4 o, @4 k
4 I* R# z3 h4 q" C& R3 C/ r5 }# Y1 Q
8 T) {" C- s" |9 C2 n! U8 h/ y$ E
​
9 O4 }5 O, w0 r3 Z7 P
: ]$ H/ L8 }& S1 b
! O, [; t; b6 d, T8 B0 d! i​
% r/ y2 ]' b5 m& G" d. p- v: N( I% B3 q- b7 p) @
# r2 a! G0 {, E5 l
, x, A: w2 v% }; z9 e7 M7 ` v
7 g2 i' l( t- S! \, z運行程序,即可看到串口調(diào)試終端打印如下信息,然后在PC機的顯卡設置(或圖形屬性)中,按照下圖設置HDMI分辨率為1920x1080、刷新率為60pHz。; ]5 }8 b2 l2 z# E
9 v. O: b/ K6 W3 L0 o! d
7 p& I# p* m x# t) B, e
​/ K2 p2 N0 B$ j" |; H
( C' y/ b4 }. d* n
5 Y4 {- V3 W! a4 l
6 L6 C8 n, q' ?4 y& s/ Y V0 e. e( u% I- ?8 P* w
​3 U- s' e1 b: o
- U, H' l0 I6 T( d- S+ c0 D! ~1 |6 C+ q% ^2 {5 l9 i8 A
此時,HDMI顯示屏將顯示PC機HDMI OUT接口輸出的圖像。0 i4 }1 \! K, d) K! e# _
​4 H$ E+ }0 X1 \/ X) h9 S4 ~
+ E& F ?9 Y1 }/ S# ^4 R
* y& t; Q) ]. J0 c8 Q) F/ y( Z d, j​
3 a, A% G/ s8 o' w, s' D; b
' Q% b. c2 V, Z# y* p2 H& z! X) D+ J" j8 D4 I" F; G
●關鍵代碼(MicroBlaze)" G+ v5 l. F" J) q
5 t& w4 ]0 D0 A# D5 b
MicroBlaze裸機源碼為"sw\baremetal_demo\project\sdi_capture_display\src\",關鍵代碼說明如下。6 c/ p. \" W" C
# L; r M8 H) ?( f; Y1 Z9 `# n$ W
(1) 初始化VDMA,將采集到的視頻數(shù)據(jù)緩存至DDR,并將視頻數(shù)據(jù)搬運至AXI4-Stream to Video Out IP核,再進行SDI視頻輸出。
( G% k- M2 x. i8 r/ d​4 e' Q% ~( d4 v+ C
● IP核配置
! @0 J" P$ _0 y: w$ p- u& ~1 }# w! ^4 x3 a/ b
1 VDMA IP核
# e: }' O/ Z( j q& P" X h5 Q, y- H+ M6 s
本案例使用VDMA IP核進行視頻數(shù)據(jù)緩存。
0 W$ |/ R* L# u) {0 [ a1 pVDMA(AXI Video Direct Memory Access) IP核開發(fā)文檔為產(chǎn)品資料“6-開發(fā)參考資料\Xilinx官方參考文檔\”目錄下的pg020_axi_vdma.pdf,具體配置說明如下。
" `1 r/ D! s7 D; |/ n(1) Frame Buffer配置為3個。' d% ]/ y7 d5 Z) w2 C* r
(2) Write Burst Size、Read Burst Size均配置為16。
2 x+ n' E# X; c% J; Q% f(3) 讀通道的Stream Date Width配置為24。8 p+ M2 o) Q' e. E; Q' g
(4) 讀/寫通道的Line Buffer Depth均配置為1024。
V* d6 T a% S+ h​! }: U3 F! H, e
5 W. l3 M: T0 a0 p7 e V/ \
( Y% p9 m) i7 b; J( F9 o(5) 點擊Advanced,保持默認配置,即可避免VDMA同時讀寫同一個Buffer,造成視頻數(shù)據(jù)傳輸亂碼。2 N8 `1 j2 H" g! I$ t9 I
- m; `# z- w y6 \: @$ e! A5 C" i5 g
) H. ~( D- O! {% R- F3 Q​
- c* t7 G# e |+ e$ L+ T7 n
2 e$ y* u F7 |% P6 i$ i4 u0 N
) ~2 f5 m* O( L, c( p4 m9 H2 Video In to AXI4-Stream IP核! |2 h2 g) Y& x$ U
! p R4 p" J/ L* y- P
本案例使用Video In to AXI4-Stream IP核將并行視頻信號轉(zhuǎn)換為AXI4-Stream視頻流。
e5 i3 H$ C6 P1 u) h6 m2 C7 I$ p+ u0 K
U! j8 M; P; C) Y5 ^$ D- Y; o
Video In to AXI4-Stream IP核開發(fā)文檔為產(chǎn)品資料“6-開發(fā)參考資料\Xilinx官方參考文檔\”目錄下的《pg043_v_vid_in_axi4s.pdf》,具體配置說明如下。
! s) W6 s& y% N1 h2 n: r1 K0 Q; _ ?' \: a7 H
, G- `, C0 d+ g(1) 視頻格式配置為YUV 4:2:2。
3 d3 h; v' w- i(2) 數(shù)據(jù)位寬配置為10bit。" n- ]) G2 M' _% J1 K3 G9 _
(3) Clock Mode配置為Independent(獨立時鐘)。
" V) n4 `& R( v. }3 Y​
" |- ?4 G! \$ d& m. J' n4 K6 l( z& j0 L: @5 ^: z: @
7 P; F- t7 }# H( W' f
! F, _ L$ g9 y, R5 \7 j! M
! L% e! Z3 {) s! O2 d, T3 AXI4-Stream to Video Out IP核! d2 ^. t# p4 x* t m/ s0 P2 H0 }
0 U/ ]8 W! O% `. X4 W本案例使用AXI4-Stream to Video Out IP核將AXI4-Stream視頻流轉(zhuǎn)化為并行視頻信號。
$ N% V! c% T- _+ gAXI4-Stream to Video Out IP核開發(fā)文檔為產(chǎn)品資料“6-開發(fā)參考資料\Xilinx官方參考文檔\”目錄下的《pg044_v_axis_vid_out.pdf》,具體配置說明如下。% S7 z! {' c' j, {( ~
(1) 視頻格式配置為YUV 4:2:2。
/ a* ?+ O ^: A6 T(2) 數(shù)據(jù)位寬配置為10bit。+ ~$ F, ]; n4 L Q; F- F
(3) Clock Mode配置為Independent(獨立時鐘)。4 l/ r* t% a0 |5 j
​
m' Q" \- R6 K) A. b/ }( o7 d* e9 n* h2 z$ ?
# x1 q( ?+ B) H8 `1 k, `4 VTC IP核
8 l$ N8 u. L. [+ Q' G, v0 R: q* W. p* x, {/ Y# `. w B
本案例使用VTC IP核產(chǎn)生用于視頻輸出的時序。
3 h) Z& K- |. eVTC(Video Timing Controller) IP核開發(fā)文檔為產(chǎn)品資料“6-開發(fā)參考資料\Xilinx官方參考文檔\”目錄下的《pg016_v_tc.pdf》,具體配置說明如下。
5 s: @8 a" @& \3 y8 p6 H q(1) 點擊Detection/Generation,確保不勾選"Include AXI4-Lite Interface"及"Enable Detection"。/ c2 K; c$ p& Z! X
5 r, `* ~( A$ L
1 k0 |+ r4 h) e7 z% x2 s: I​. S( s7 _, B! F9 `2 R0 Q: m& e5 G
1 L6 ~ f2 I9 L3 p2 o/ h$ i+ e9 k' \: n
(2) 點擊Default/Constant,Video Mode設為1080p,其余配置保持默認。
' v4 w1 o5 b- l' m# [​
3 u0 n- Q& m, k; n
1 O2 S5 i; y; d1 o! a
P+ C( O+ |$ W( @: Q, q5 Clocking Wizard IP核
9 i5 Y/ `% ^0 b! o& Y2 i! a0 W+ e% h$ |5 k C4 y
本案例使用Clocking Wizard IP核產(chǎn)生用于視頻輸出的像素時鐘(148.5MHz,對應1080P60)。
) r2 a/ q1 g5 a M3 L j& pClocking Wizard IP核開發(fā)文檔為產(chǎn)品資料“6-開發(fā)參考資料\Xilinx官方參考文檔\”目錄下的《pg065-clk-wiz.pdf》,具體配置如下。$ _$ r' q$ B6 K
​
7 n' _- b# I2 K9 ~! A! e5 ~7 n) N. M9 t4 K% M$ A
3 }% _- }, p) X$ b
$ L, |+ A/ n: d& k. N
- Y5 K+ M& i) ~! c; }●Vivado工程說明$ U* j& m' X- ?4 E! f8 ?# ~
: J3 _! W2 Z, C' Q; {9 R2 Y點擊BLOCK DESIGN開發(fā)界面下的"Address Editor"選項,可查看IP核分配的地址,MicroBlaze可通過對應地址對IP核進行控制。
J4 j1 ~2 E& O2 T& _​
9 }7 L; z) Y9 w0 D% A& O8 O1 B, p' \3 L, n' B. ^; Q, a
3 O7 q$ f$ K' w; \+ I
Vivado工程頂層文件為"hw\project\sdi_capture_display.srcs\sources_1\imports\hdl\sdi_capture_display.v",關鍵代碼說明如下。
( A, J, N; C1 Y. z* {: e/ P5 Z* S/ k3 `( [
: o( o0 @; p7 b T(1) 定義模塊接口。$ i8 R6 \# Q( R4 W0 R+ ^' c
​
3 R3 k7 b( R6 e; s4 U$ x' v, l: d/ }3 X5 d
- P; F4 a9 b7 j: ?/ _. a& z/ G/ g$ N(2) 使用STARTUPE2原語輸出復位信號。
& Z& g9 t5 e. O4 V​
7 x: v( j9 n/ w; u' X; v3 x: v0 \6 v' A0 L* X
1 g4 e4 Y; U+ a- C( W% b# W; B, |3 _0 f" p
3 |9 F+ O5 f! ~% r( p) `, F$ T
(3) 調(diào)用Block Design。4 L+ e" C+ A: S& J0 |& ^
​
; Z5 |* t2 W4 |: J. P! G( n0 m$ R; V9 u- o# \( C
1 c; X4 M9 |, f: `
​
( E6 X; P4 l3 M
( I7 g6 i; w8 P+ O0 H) G. ^ N) G3 I3 j: d! Y$ X6 s
|
|