|
前言
( B5 ^+ w; I8 L# N& J" _( ^- n
2 B( Q/ S5 k* F4 \4 K0 Z& y! |2 A
0 y! z T) ^1 L- L+ }4 }, v V9 ^9 t2 P! _0 O( b
SDI接口,全稱是“數(shù)字分量串行接口(Serial Digital Interface)”。按速率可分為標(biāo)準(zhǔn)清新度SD-SDI、高清標(biāo)準(zhǔn)HD-SDI和3G-SDI,其對應(yīng)速率分別是270Mb/s、1.485Gb/s和2.97Gb/s。目前在航空航天、軍事、醫(yī)療、交通等領(lǐng)域,SDI的應(yīng)用廣泛度僅次于CameraLink接口。( r9 B3 l7 q+ f0 l. J" |
9 C. }4 r2 o# d9 N' _; W7 a4 l1 m% i
​
/ g6 ]$ ?% X3 c, T8 l- a1 o. O' b, e# R
5 w% H( G; k7 D) w5 B) J! J3 \
9 ~& F2 y* H3 w& ^" ^ I
7 M; m6 r+ B) qSDI接口優(yōu)勢:4 m, I7 k8 b, D4 Y
(1) 消耗GTX更少,消耗IO更少
! N0 F$ B( C% j+ [如果使用GTX總線,僅需1對GTX,而HDMI則需要3對GTX。CameraLink接口由于走LVDS信號,Base模式下需要11對LVDS信號,F(xiàn)ull模式下需要22對LVDS信號,消耗IO數(shù)量比GTX SDI多了很多。
) h P) i( E- e- b(2) 傳輸更穩(wěn)定 v5 K# {3 Q h& e
相較于HDMI接口,SDI接口的自鎖扣設(shè)計更加穩(wěn)定可靠,不易脫落,不會因人為因素造成信號中斷。
1 Z- q3 b- I+ u# T(3) 傳輸距離更長; g! G! q4 g. d4 A1 v* q
串行接口是指逐位數(shù)據(jù)的順序傳輸。它的特點是通訊線簡單。只要一對傳輸線可以實現(xiàn)雙向通信,特別適合于長距離通信。從理論上講,SDI的傳輸距離可以達(dá)到100m。* ^1 n. n$ f& S9 s! [9 l0 n/ g" }
(4) 成本更低5 T2 |( }- ?$ b0 V% j# P
SDI接口平均每米價格約為4元,相較于HDMI接口的平均每米價格約為10元,SDI接口成本更低。6 Z5 z) O: [! E8 e$ {
5 P/ l# V3 g# D7 U* W
: m$ L3 E/ }& E2 i8 S% ~創(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方式。# a& F9 X. R; ^! ]
9 A! v" w4 _4 A2 }+ ^
; Q( P; C! W* e. d! g6 t% P8 m
$ O0 O0 |* U; r, H- g
( o Q! F! |9 Z" w" U+ v7 h●硬件平臺$ D: y( L8 N# k9 ]6 Z
. ~4 H9 S. y- P T
3 J( X" H+ D, x: g& _6 L
0 \9 E$ _1 e4 y# ?; \( b& [' W1 TLK7-EVM評估板
- n2 C6 i+ M' d k+ \2 s! p
% w9 g8 N8 Y' ^$ e& V本文基于創(chuàng)龍科技TLK7-EVM評估板、TL2971A/2972F視頻模塊進(jìn)行演示。6 ?) p1 P! Z( i
TLK7-EVM是一款基于Xilinx Kintex-7系列FPGA設(shè)計的高端評估板,由核心板和評估底板組成。核心板經(jīng)過專業(yè)的PCB layout和高低溫測試驗證,穩(wěn)定可靠,可滿足各種工業(yè)應(yīng)用環(huán)境。5 I& C# |4 E' \. {
評估板接口資源豐富,引出FMC、SFP+、PCIe、SATA、HDMI等接口,方便用戶快速進(jìn)行產(chǎn)品方案評估與技術(shù)預(yù)研。
* b; ~) s: \! ~' @. F可申請TLK7-EVM評估板進(jìn)行快速評估,點tronlong.com/Product/show/93.html,免費哦!
. e( g+ C9 m! y- B​
6 K6 ~% a4 f( d1 [* k5 O, V; T$ S+ m8 h4 h3 u' g# n
! M2 b7 @' l! r; {7 g9 s
TLK7-EVM評估板) R5 T( t z8 v) h( d- y5 R
2 N8 Q* u% `; w2 f! v0 B" f
, }, Y# K u) L) S& s6 z0 K" U* u/ X- @0 O5 o8 w) G& `
2 TL2971A/2972F視頻模塊
, N/ h2 x) U, W( q v- q7 {* ]0 C6 {5 g
TL2971A/2972F是一款基于FMC LPC標(biāo)準(zhǔn)設(shè)計的3G-SDI視頻輸入/輸出模塊,與創(chuàng)龍科技Zynq-7000/Kintex-7/Artix-7等評估板配套使用。以下為此模塊特點:8 m t- h( m( s, S
(1)通過GTX高速串行總線引出1路SDI視頻輸入接口,最高支持2.97Gb/s(1080P60)。$ O' B$ Q5 q6 P* U
(2)通過GTX高速串行總線引出1路SDI視頻輸出接口,最高支持2.97Gb/s(1080P60)。- f2 _9 P8 w8 I5 }; w
(3)通過GS2971A芯片引出1路SDI視頻輸入接口,最高支持2.97Gb/s(1080P60)。
7 m( t1 w8 ]/ u/ E% m& y& R5 N(4)通過GS2972芯片引出1路SDI視頻輸出接口,最高支持2.97Gb/s(1080P60)。3 K- |' L8 u+ ? g9 P4 K
(5)采用標(biāo)準(zhǔn)BNC連接器,支持視頻設(shè)備熱插拔。
. e+ A. x" S7 i% x+ l​
9 W7 v4 z4 ?# s3 C
% F. O" V% ] Z! E( r
# e' h/ ?' I, U9 w9 b5 fTL2971A/2972F視頻模塊$ C3 P6 t9 T6 f( n B' Y8 ?
% i" {9 g4 e1 Q, Y
) Z! M7 l; ^& S* f- s, |
5 A* F) E! ^9 s1 N, o- J) Z+ M
a1 L9 y3 t: g" z8 t% P
2 D8 n# l3 o+ g: _0 Z: _1 `4 B, L●案例功能" Y( z! m, q8 b3 d6 h9 J% K, s# d# u
2 |7 b! o2 q; f) x4 V! u+ a8 c' e# |" @3 V: T+ P
# \7 o# X/ C- }/ P* s$ S本案例為通過GS2971A、GS2972芯片引出SDI視頻輸入、輸出案例。通過GTX高速串行總線引出的SDI視頻輸入、輸出案例即將發(fā)布,敬請期待。
5 @8 `4 N2 I5 y# A+ \- j z! o案例功能:評估板通過FMC視頻模塊TL2971A/2972F的SDI IN接口進(jìn)行1080P60視頻采集,并通過TL2971A/2972F模塊的SDI OUT接口將采集到的視頻進(jìn)行輸出。案例源碼、產(chǎn)品資料(用戶手冊、核心板硬件資料、產(chǎn)品規(guī)格書)可點:site.tronlong.com/pfdownload獲取。7 z! k. n' u P2 X' x
* ]! Q2 D' ^# x _6 G
: e' b! A8 h! n E# ?1 C5 @4 A a開發(fā)案例主要包括:
7 K+ S8 f# [0 s( T6 t, [/ vl CameraLink、SDI、HDMI、PAL視頻輸入/輸出案例! J) T6 f$ q: m4 v$ Z
l 高速AD(AD9613)采集+高速DA(AD9706)輸出案例
, \4 m6 K6 m: @l AD9361軟件無線電案例+ s: _. d/ f6 f+ b
l UDP(10G)光口通信案例
) T* D$ [2 y! O& \% Ml UDP(1G)光口通信案例
5 \( q: O, j" i+ Al Aurora光口通信案例
; [9 r; z- x2 `" V6 ~% Q+ S' E5 U: Fl PCIe通信案例4 ?5 G( O2 e u: @4 t4 Z5 X& E
( m; o7 S" ?8 s5 E' V+ {+ P
1 E) y# |0 l, y( c# M$ L2 |# K( n0 y
% x3 O( x5 O' W$ e●案例演示- q7 h! i. O7 v' G" Q: x
2 r. |+ X* R4 d* i% A將創(chuàng)龍科技的TL2971A/2972F模塊連接至評估板FMC1接口,評估板J1跳線帽選擇3.3V檔位,以配置FMC IO的BANK電壓為3.3V。
V2 ^* M6 Q$ B準(zhǔn)備一臺擁有HDMI OUT接口的PC機(jī)(例如筆記本),通過HDMI數(shù)據(jù)線將PC機(jī)HDMI OUT接口連接至HDMI轉(zhuǎn)SDI模塊(廠家:玩視,型號:3G HDMI TO SDI Audio)INPUT接口,PC機(jī)HDMI OUT接口用作圖像輸出。通過SDI數(shù)據(jù)線將TL2971A/2972F模塊的SDI IN接口連接至HDMI轉(zhuǎn)SDI模塊的OUTPUT接口。
9 Z: U8 u# J- I
% I J9 ^; f7 }9 |2 Z
( ~! b1 Q' M! p+ q5 B# K通過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顯示屏用作圖像顯示。
6 l4 [' U0 x/ U/ G! P4 I/ k; h8 q9 B; y
: p6 y) \5 u* n6 ~/ n' b8 a. C/ ^$ J2 ]; h8 K N+ a6 R8 h
5 `1 }1 c* D, a8 V8 {
: v1 O) D2 K: B0 s( d# n5 L0 X
​; f8 e% S0 G8 H5 x
1 K' j/ k4 Z7 o6 Y# Z- ~4 @5 W s1 D: U! k0 J; ?, w% O! i
​
. | E3 Y+ L6 G1 A9 j9 ^0 \: j/ K; O {
/ @& y( L$ r/ K7 e. t
. V; z. X' l! b# |9 t( M2 ~
6 n* C4 n0 n* C2 i
運行程序,即可看到串口調(diào)試終端打印如下信息,然后在PC機(jī)的顯卡設(shè)置(或圖形屬性)中,按照下圖設(shè)置HDMI分辨率為1920x1080、刷新率為60pHz。
& {7 g/ X4 b4 k/ E8 w- M" u0 n X$ K
7 M+ d& p8 Q+ O D5 f5 @​
) |1 u7 k+ ^' A* ^( w0 S) V
8 u1 M9 @* }9 Q2 {0 [1 e# K2 U# _' M9 l! B5 P- @. ~/ x
' A$ k' d6 D: t% C) p) }' ~
( n# b3 M2 e- m+ {" O​
0 Z" T9 l" j) G; c+ c/ e; t6 F2 R, l
) j6 k( b$ u: T2 G
此時,HDMI顯示屏將顯示PC機(jī)HDMI OUT接口輸出的圖像。
: K- T: q2 p0 i+ n" a+ d1 B7 w; |) T​
H1 s" G. r4 l0 Q0 j3 x. L0 w
+ E `8 ]' ^4 B
3 `1 W% C+ X$ m' {/ G& T( Y& ~​ K9 _! F* ~5 y$ J: [- L; I
7 n; ^) p+ t" l7 _* k7 K
3 w7 D3 I& \1 R( J( _( d0 o●關(guān)鍵代碼(MicroBlaze)' S5 q8 S6 U* U5 o) F
0 q1 a/ c$ o, ]- |) {4 RMicroBlaze裸機(jī)源碼為"sw\baremetal_demo\project\sdi_capture_display\src\",關(guān)鍵代碼說明如下。1 U' V. r. _3 I7 i# G
( v2 c) p/ j; y5 C
+ z6 [- _: e: k. G. m(1) 初始化VDMA,將采集到的視頻數(shù)據(jù)緩存至DDR,并將視頻數(shù)據(jù)搬運至AXI4-Stream to Video Out IP核,再進(jìn)行SDI視頻輸出。! x9 y/ V$ i5 @/ }: O; [; N
​
; [0 j# g+ Z; f● IP核配置
8 O7 {- @# b$ K2 g j
# u# c1 M5 P% l3 _. e, ^1 VDMA IP核
; W' B& N& j9 w9 Q( [# e1 ?* q, C% K$ ^
本案例使用VDMA IP核進(jìn)行視頻數(shù)據(jù)緩存。& i, B2 ^+ W& n, P8 W
VDMA(AXI Video Direct Memory Access) IP核開發(fā)文檔為產(chǎn)品資料“6-開發(fā)參考資料\Xilinx官方參考文檔\”目錄下的pg020_axi_vdma.pdf,具體配置說明如下。2 I# D/ e6 p {! a" y* z( X7 t
(1) Frame Buffer配置為3個。; g& {0 w- e M2 \7 S# b8 G
(2) Write Burst Size、Read Burst Size均配置為16。9 m+ U' f3 X+ w1 _5 Y6 L/ }
(3) 讀通道的Stream Date Width配置為24。) Y% J+ Y. l& M, v# t
(4) 讀/寫通道的Line Buffer Depth均配置為1024。6 U3 D, j% L& c5 M& g
​
0 C2 o R. ?1 u* X1 A
; j, S8 }8 C" z$ O( W9 R
% m; e# T6 Y' L8 p# V6 I$ v; E(5) 點擊Advanced,保持默認(rèn)配置,即可避免VDMA同時讀寫同一個Buffer,造成視頻數(shù)據(jù)傳輸亂碼。1 S& R! {; Y( o& M; x+ {- [: G5 O
" \/ T- |; o3 L3 Z3 _
J. Q$ v9 {7 X5 b* ^ s​/ T$ ?- t1 ?& f! g# M& J C6 Y
' A! r/ N$ u/ }# Q; f- A& X& k
; y& I9 U8 t# T! {
2 Video In to AXI4-Stream IP核6 a% s( l: f+ D0 |
2 C" [* N( U' u4 u, q. |5 \" n+ x' W本案例使用Video In to AXI4-Stream IP核將并行視頻信號轉(zhuǎn)換為AXI4-Stream視頻流。
+ T. O( f9 |9 X0 m0 f3 r2 }9 ]6 \+ ?2 j# S
2 P- R" t, F$ G- n" H3 PVideo In to AXI4-Stream IP核開發(fā)文檔為產(chǎn)品資料“6-開發(fā)參考資料\Xilinx官方參考文檔\”目錄下的《pg043_v_vid_in_axi4s.pdf》,具體配置說明如下。
% g" W/ m% Z9 a& i4 R1 d+ o! M0 y, E/ ?! c% L6 o" [5 L
. v. _, a; d& N+ r2 n1 n
(1) 視頻格式配置為YUV 4:2:2。
; W8 N5 a/ o+ v1 h6 W(2) 數(shù)據(jù)位寬配置為10bit。
! S/ _6 c e9 G& ]% R(3) Clock Mode配置為Independent(獨立時鐘)。
Y( |; d- K% G# l​
( Z( Q1 J: C3 N
O: q9 M; `+ C4 q4 g7 F& @) O
( F$ V) z2 j, J$ @! D
5 @. F, S$ X2 [4 S8 F! q% c& F! o& c6 Y- ]
3 AXI4-Stream to Video Out IP核/ i* y6 _' s$ a" q6 I
3 G6 u, y0 T8 Q( b本案例使用AXI4-Stream to Video Out IP核將AXI4-Stream視頻流轉(zhuǎn)化為并行視頻信號。
" ]6 `$ B* b+ ^2 f1 ]: z) bAXI4-Stream to Video Out IP核開發(fā)文檔為產(chǎn)品資料“6-開發(fā)參考資料\Xilinx官方參考文檔\”目錄下的《pg044_v_axis_vid_out.pdf》,具體配置說明如下。& y. y) [* y) F" D# S# I
(1) 視頻格式配置為YUV 4:2:2。
# E B& i l! w$ d8 X(2) 數(shù)據(jù)位寬配置為10bit。: `4 X7 g* N+ {" K$ y
(3) Clock Mode配置為Independent(獨立時鐘)。7 v9 V: i3 X& o, k/ z* q
​
( ?: _& \9 E% s3 e" F" q M* m
: ~- j, V5 N: W. v, \% k
4 x/ c; `( y! O) {, t4 VTC IP核
( M W! i" _* u& Q) l7 Z8 W3 t) V' q: R! X4 \/ Z1 @0 j
本案例使用VTC IP核產(chǎn)生用于視頻輸出的時序。
1 V; c" { v2 h0 P7 i2 b) |VTC(Video Timing Controller) IP核開發(fā)文檔為產(chǎn)品資料“6-開發(fā)參考資料\Xilinx官方參考文檔\”目錄下的《pg016_v_tc.pdf》,具體配置說明如下。0 O7 q- y* r! F
(1) 點擊Detection/Generation,確保不勾選"Include AXI4-Lite Interface"及"Enable Detection"。8 K7 c0 J) _" ?7 t% F4 j1 Z
: r- ]" s8 Z- Y0 ~ R: B/ `
?( S& l( r9 w6 h$ y0 b/ l
​
) ~) y" m1 C4 X1 A' P8 \2 |
; j4 u" E7 `& c% j+ U( y$ ^! Q* f+ s4 H0 c* L1 W- [3 @' G C
(2) 點擊Default/Constant,Video Mode設(shè)為1080p,其余配置保持默認(rèn)。
* x7 E6 z) R4 I1 p​
. M% F) R- v" {/ L" a1 a! ]
3 ~3 S1 H; [! K" C/ v' |& P& D; P0 b" a2 v7 f2 W0 r: E* Y" K& Y2 [
5 Clocking Wizard IP核: A: v7 O1 G0 E8 q5 t; q
) j: `/ a% T7 H( C9 [- p; s( `8 `0 W
本案例使用Clocking Wizard IP核產(chǎn)生用于視頻輸出的像素時鐘(148.5MHz,對應(yīng)1080P60)。
! X6 g& q, A: O* OClocking Wizard IP核開發(fā)文檔為產(chǎn)品資料“6-開發(fā)參考資料\Xilinx官方參考文檔\”目錄下的《pg065-clk-wiz.pdf》,具體配置如下。. K6 q9 A. t* I8 |) e
​! e: P, r9 X$ Q7 e" `/ A: c
4 D7 e {) {, r7 c! U$ P
9 I" H/ ^% r6 i) c. {1 p# p2 W/ Q, ~ D
4 K4 X' U- l# U1 O; O1 U4 Q
6 k2 ?$ `- E+ J: V9 v' |3 V●Vivado工程說明 t7 I" |+ R1 [% `0 z- v M# G7 x
% d% I/ D% U. q7 e7 }( C. I
點擊BLOCK DESIGN開發(fā)界面下的"Address Editor"選項,可查看IP核分配的地址,MicroBlaze可通過對應(yīng)地址對IP核進(jìn)行控制。
1 U) P5 {& ?% o) _5 e# \8 C​ n. W7 ~& }3 Q& s: o* i( |
$ G& R. N' m/ c9 X8 L4 M
1 ]) P" {6 u$ u: rVivado工程頂層文件為"hw\project\sdi_capture_display.srcs\sources_1\imports\hdl\sdi_capture_display.v",關(guān)鍵代碼說明如下。
1 |. o9 |) W( p! c- _7 e G
# ^' g. s h4 g' R8 I# z2 e
: L* u' x9 J7 h4 C9 Y(1) 定義模塊接口。8 k: B. r8 e7 ?6 l& E6 x& d
​
+ H' ~! Z9 P2 r2 N+ H* u' E' G" j9 b. f8 U3 P
1 f G9 q( D) N
(2) 使用STARTUPE2原語輸出復(fù)位信號。 ^0 h0 |, z8 b4 U' J
​9 S# u9 B, _0 e3 G2 ?& j' M. }
- b" t8 c: B+ m O Q& o% S" @
( Q( m; x+ Q! Y6 t, m3 R; J
2 N/ a: I9 f! p5 L
# m* { P) T2 Q! s5 {& d(3) 調(diào)用Block Design。+ i' R6 P! M* s7 A; ~7 f" ~+ W
​
9 R& x. p D/ L- ~; A6 i. J
! y ?' l# G$ q2 D
- M* F' N( N6 b! }​* }4 m4 c& ]9 W# g' _( Q) Z( t+ [5 o, I
' P. ^# L8 K+ J; g6 I% G" {
6 O( K' ~" A" w$ i! o( S |
|