|
前言
: J8 N. N5 @& K9 N# m# W+ \3 N+ y8 |: y' e4 D" }8 T
; _2 U+ [' u, X* p D3 `0 y
0 e* Q+ {; i1 \! W8 c$ hSDI接口,全稱是“數(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接口。( G& J9 z8 A$ k6 Z7 Q7 V
9 Q9 n& ?$ q: N* \
​
6 q/ @* y8 n1 q/ O) ~; h2 \( f& H; w8 m/ V5 x! s
* C' [* T. n, a, N+ M
0 Y+ p; R& H2 g: Z% B
P) m6 M6 m8 \+ {# q3 a% S9 `7 cSDI接口優(yōu)勢:% w! n& E2 U# E
(1) 消耗GTX更少,消耗IO更少$ X3 {6 c+ W3 I; G3 G
如果使用GTX總線,僅需1對GTX,而HDMI則需要3對GTX。CameraLink接口由于走LVDS信號,Base模式下需要11對LVDS信號,F(xiàn)ull模式下需要22對LVDS信號,消耗IO數(shù)量比GTX SDI多了很多。
3 E4 K8 l# X+ f# D(2) 傳輸更穩(wěn)定
e) W2 J1 Z1 ` G相較于HDMI接口,SDI接口的自鎖扣設(shè)計更加穩(wěn)定可靠,不易脫落,不會因人為因素造成信號中斷。7 k1 `: W- w% R5 V7 O
(3) 傳輸距離更長
" ^* g* m8 [# J' p串行接口是指逐位數(shù)據(jù)的順序傳輸。它的特點(diǎn)是通訊線簡單。只要一對傳輸線可以實(shí)現(xiàn)雙向通信,特別適合于長距離通信。從理論上講,SDI的傳輸距離可以達(dá)到100m。! i1 R K" O# W
(4) 成本更低
Y+ C5 ~% J7 c* T8 ], x) j3 ^$ y- f! X/ cSDI接口平均每米價格約為4元,相較于HDMI接口的平均每米價格約為10元,SDI接口成本更低。5 L, V! s# w' [1 e( k- N0 Q
) H K1 z$ n. k" {5 a/ |; ^# W" {2 ~2 ~. a
創(chuàng)龍科技(Tronlong)的Kintex-7、Zynq-7045/7100等FPGA板卡通過FMC視頻模塊已實(shí)現(xiàn)兩種SDI視頻輸入/視頻輸出方案:GTX +外接芯片。本文將為您分享基于Kintex-7 FPGA評估板、TL2971A/2972F視頻模塊的3G-SDI視頻輸入/輸出開發(fā)案例,使用外接芯片方式。TL2971A/2972F視頻模塊模塊亦可支持GTX方式。
6 y2 {4 r; ]& i
" }& g; ?1 Y& f% B+ `9 f* p M* S; D
4 Z# v0 j' o2 D1 U; G6 _# C2 F y
+ E) j& C; Q+ C8 f" ~! H8 _& w4 G6 I9 f
●硬件平臺8 p1 j( u" D9 u0 F5 w; P
U2 B0 K6 j3 W& W/ c/ @& G: J0 Y# g/ K
9 P* \4 G1 K6 s: g
) ^ a5 p$ }% `" u1 e" C1 TLK7-EVM評估板; H8 A$ \: p; [
7 h; o X/ [# W8 Z5 D/ K; j7 @
本文基于創(chuàng)龍科技TLK7-EVM評估板、TL2971A/2972F視頻模塊進(jìn)行演示。7 k2 [( v# p, e. Q& r O4 p
TLK7-EVM是一款基于Xilinx Kintex-7系列FPGA設(shè)計的高端評估板,由核心板和評估底板組成。核心板經(jīng)過專業(yè)的PCB layout和高低溫測試驗(yàn)證,穩(wěn)定可靠,可滿足各種工業(yè)應(yīng)用環(huán)境。: @+ H2 S2 H) }" N# I
評估板接口資源豐富,引出FMC、SFP+、PCIe、SATA、HDMI等接口,方便用戶快速進(jìn)行產(chǎn)品方案評估與技術(shù)預(yù)研。
2 z6 b3 ?7 ]1 M- y! b可申請TLK7-EVM評估板進(jìn)行快速評估,點(diǎn)tronlong.com/Product/show/93.html,免費(fèi)哦!
9 t( r2 J {$ S5 E. k3 |​' d8 R; V3 |7 m7 w' q$ O/ I7 h
2 g8 T" q/ H% R5 N5 z( v! _+ M7 P5 V& a$ b5 `
TLK7-EVM評估板( H; @$ L+ P1 l# \0 x8 J" D& b1 P& G
7 @2 G8 u* C$ n
- @9 ~* H9 s; N# X" g8 D/ t. P F% t( ~
2 TL2971A/2972F視頻模塊
( [+ t: n5 s1 L. B5 k
! d& O$ P0 Z6 n+ a6 D& X) E' P2 gTL2971A/2972F是一款基于FMC LPC標(biāo)準(zhǔn)設(shè)計的3G-SDI視頻輸入/輸出模塊,與創(chuàng)龍科技Zynq-7000/Kintex-7/Artix-7等評估板配套使用。以下為此模塊特點(diǎn):5 W9 X8 [- ~$ t( n) u6 w; `) K
(1)通過GTX高速串行總線引出1路SDI視頻輸入接口,最高支持2.97Gb/s(1080P60)。. p" @# U5 S* L2 k+ v B9 y
(2)通過GTX高速串行總線引出1路SDI視頻輸出接口,最高支持2.97Gb/s(1080P60)。
$ y: t; ~7 }# X! m(3)通過GS2971A芯片引出1路SDI視頻輸入接口,最高支持2.97Gb/s(1080P60)。3 r* P4 _$ Q/ [: \$ c
(4)通過GS2972芯片引出1路SDI視頻輸出接口,最高支持2.97Gb/s(1080P60)。' Z0 r. F# l4 W
(5)采用標(biāo)準(zhǔn)BNC連接器,支持視頻設(shè)備熱插拔。; M4 D6 T( A* Y! V
​0 l) `5 j, d; z$ G3 R; J! a
/ d- f& R1 C5 n3 Z9 O' O+ H; b# o/ \* r) T+ p' M/ t
TL2971A/2972F視頻模塊
; ~' g7 A9 _1 X; U$ ~) S! K! Z2 Z- ^! K9 w
2 g6 u7 }) Q: t7 z8 ?8 p
/ W2 h" h9 b& ^4 R: K! L, F1 C
/ ^: f5 Q0 O6 _
5 }; [0 g2 d' l7 V" Y. t
# T5 ?) N2 _2 \; @●案例功能. ^9 I9 v4 M; _, j2 v. q
* F/ V8 V% j$ B; P+ j/ ^9 [2 _
3 t; |& z, ]; u9 y: Z9 _, v5 l, m% s6 e) D
本案例為通過GS2971A、GS2972芯片引出SDI視頻輸入、輸出案例。通過GTX高速串行總線引出的SDI視頻輸入、輸出案例即將發(fā)布,敬請期待。
- Q% ~/ m% V! T3 d6 M: z, Q/ G案例功能:評估板通過FMC視頻模塊TL2971A/2972F的SDI IN接口進(jìn)行1080P60視頻采集,并通過TL2971A/2972F模塊的SDI OUT接口將采集到的視頻進(jìn)行輸出。案例源碼、產(chǎn)品資料(用戶手冊、核心板硬件資料、產(chǎn)品規(guī)格書)可點(diǎn):site.tronlong.com/pfdownload獲取。
( a9 Y# n) Q3 M# U$ n' ~8 ?/ L: x; L. C! S/ j! E) B; R
/ O2 G' h# E5 A3 [6 v
開發(fā)案例主要包括:2 v0 R% ~- w7 e) M, C$ C( a% g/ g
l CameraLink、SDI、HDMI、PAL視頻輸入/輸出案例
" R. r7 Z( J( Gl 高速AD(AD9613)采集+高速DA(AD9706)輸出案例
) ^9 i4 ^/ Q; I1 i- c9 @ p; n+ fl AD9361軟件無線電案例% D1 r- F7 U& \7 p8 T* h& i
l UDP(10G)光口通信案例! W7 p8 l' s$ G, e
l UDP(1G)光口通信案例
3 H4 r K1 s* |0 vl Aurora光口通信案例0 {' G5 a2 V: e
l PCIe通信案例) D+ F* J6 p; E3 H ]& B5 U
( X8 c1 Y: W* j0 Y6 I c5 @6 T/ C H6 E; P/ n& t1 M
' j+ E: W6 V1 }" c% K●案例演示$ q( i9 J. Z# } H! Z1 g& U0 ]7 C
. c1 u! G3 W+ p3 r將創(chuàng)龍科技的TL2971A/2972F模塊連接至評估板FMC1接口,評估板J1跳線帽選擇3.3V檔位,以配置FMC IO的BANK電壓為3.3V。
5 y' t* X3 o0 Q* F l$ s準(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接口。
6 r$ @4 N, T2 L f4 C6 F" L, j
+ ^8 E$ ^5 Z9 d1 a( j
) k2 V0 b3 Y; y1 O O6 ~5 r通過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顯示屏用作圖像顯示。* A0 M+ I& U) g) \
1 ]6 d( H: _/ V+ k. |& a: L! A2 f! d3 w# c3 C0 F3 ~, b
0 y$ E. t/ [4 r" w
5 m/ Z1 d* `+ `. k% H) t
​
" A9 p+ |9 q- D; y8 v! {3 v
( ]8 t$ t7 ~) k6 d+ Y( s& { e* P7 ~
​
; @( Q V( d. R' c; l, o
0 Z6 t5 c5 _- \5 K" W
9 u- `$ f* I7 _, F' R. _" l4 A+ W/ }' F1 n+ m3 A8 R! X/ Q+ p# ?; M
* r6 C& ]8 s) o' W! c
運(yùn)行程序,即可看到串口調(diào)試終端打印如下信息,然后在PC機(jī)的顯卡設(shè)置(或圖形屬性)中,按照下圖設(shè)置HDMI分辨率為1920x1080、刷新率為60pHz。
7 j1 J' p! q3 k+ i8 B
9 _' m1 ]# B( V D; ~6 [% q$ w+ Q. {2 R# T8 Y: B1 [
​
: ^( E. k: t) |* u( W5 ]7 E) n' C8 u/ C" |2 l2 K
! L/ H( b/ w6 a, B! N
- A" s5 B( c8 a
5 C4 |1 q6 U+ N* ]​& |4 ~: Y# z! Y3 d! n5 |& p
0 o7 |/ w" A ~$ g" s
- r# |' g( Z7 r+ Y7 Z此時,HDMI顯示屏將顯示PC機(jī)HDMI OUT接口輸出的圖像。
2 D( s2 |- |+ }4 S' n​! u- t1 P# t/ y2 X' W/ f
) q/ v5 Y. h/ ]- m0 S
% p; L9 o- j& G( F) R​
% P2 E# B( r! Q! d$ `5 d8 ~/ q+ h* S/ P4 U' ]# I
" q0 j0 B0 p: ~! u
●關(guān)鍵代碼(MicroBlaze). T* h7 z2 ?& X6 y. @& D6 M9 a7 O
! Y7 T, w0 S. M' c; u4 ` ]MicroBlaze裸機(jī)源碼為"sw\baremetal_demo\project\sdi_capture_display\src\",關(guān)鍵代碼說明如下。) U3 N8 A& }* f+ K6 G( C7 Q
9 L# N4 i$ d8 L0 @) i+ c+ |
- h! I- v& _" M0 U& s
(1) 初始化VDMA,將采集到的視頻數(shù)據(jù)緩存至DDR,并將視頻數(shù)據(jù)搬運(yùn)至AXI4-Stream to Video Out IP核,再進(jìn)行SDI視頻輸出。
& Z' r1 ~* t5 L6 Z& b; |8 v​
5 ^4 b) B% r, i6 d9 a● IP核配置! ?0 r9 l8 o* ?0 B5 F7 x1 }
7 [& G) n2 f4 Z! _$ C
1 VDMA IP核. w5 j% z# v' [" A' e5 r N- O x6 B
* L G7 J. ?$ \; g9 b: l. D
本案例使用VDMA IP核進(jìn)行視頻數(shù)據(jù)緩存。
- O& i+ G4 g" T* T9 bVDMA(AXI Video Direct Memory Access) IP核開發(fā)文檔為產(chǎn)品資料“6-開發(fā)參考資料\Xilinx官方參考文檔\”目錄下的pg020_axi_vdma.pdf,具體配置說明如下。/ X8 k2 W$ b2 b2 R! Y' B
(1) Frame Buffer配置為3個。2 w; g; i: I9 \" ^2 v% M7 M. @; I E
(2) Write Burst Size、Read Burst Size均配置為16。# P7 a, C+ u6 w. B
(3) 讀通道的Stream Date Width配置為24。
0 z+ M/ }; z, H/ |3 ]* \1 P(4) 讀/寫通道的Line Buffer Depth均配置為1024。/ w o3 T: [: _* e: |: X
​( M7 t: d. Y$ Q/ \9 ]
6 A- m: k& l# N# f& Y
; z m' {- D0 Z: m" j( \5 M(5) 點(diǎn)擊Advanced,保持默認(rèn)配置,即可避免VDMA同時讀寫同一個Buffer,造成視頻數(shù)據(jù)傳輸亂碼。) J- [; j5 V& X$ \8 Q# P5 u' ]
) |2 I( E7 K( l8 T! b {6 u) W# G1 M6 x# D
​
. m6 C& ^* M" ?8 |& [6 E4 ^0 m% V3 j
V e- W; s# y) a$ k) o8 ]. W2 Video In to AXI4-Stream IP核) `! \! h- L8 j8 f
: Z" j3 [& l8 [
本案例使用Video In to AXI4-Stream IP核將并行視頻信號轉(zhuǎn)換為AXI4-Stream視頻流。
- ^) \+ b T2 i2 Y% l. ^) N; H5 D- l" |( ~+ c
6 x8 M; B: o3 Y& {+ a- Q9 |9 O3 n" OVideo In to AXI4-Stream IP核開發(fā)文檔為產(chǎn)品資料“6-開發(fā)參考資料\Xilinx官方參考文檔\”目錄下的《pg043_v_vid_in_axi4s.pdf》,具體配置說明如下。
2 |* G# d% N4 x$ o- _# }' t5 i5 i
) |+ v+ g/ C$ T7 `' G0 f
3 y' o q6 m( G: [* \0 w(1) 視頻格式配置為YUV 4:2:2。4 b# P9 _. Q% h" L" \
(2) 數(shù)據(jù)位寬配置為10bit。: \4 b! `& j& A2 ~: y
(3) Clock Mode配置為Independent(獨(dú)立時鐘)。0 T6 M+ m5 G; A+ B4 o; o7 Y" D+ _$ i
​
- ?6 [) l% c# Q3 V& g2 {: H2 ^1 _& J7 Q1 C
( X6 c2 y. Q3 ^1 k
5 F+ ?; k. b; G- M$ C; T' i
6 U9 S, P2 ?5 @& p3 AXI4-Stream to Video Out IP核
' d6 p4 w5 f9 o
) i7 E, B0 i. M) `( U本案例使用AXI4-Stream to Video Out IP核將AXI4-Stream視頻流轉(zhuǎn)化為并行視頻信號。
R$ c9 _& w+ G, i$ p8 VAXI4-Stream to Video Out IP核開發(fā)文檔為產(chǎn)品資料“6-開發(fā)參考資料\Xilinx官方參考文檔\”目錄下的《pg044_v_axis_vid_out.pdf》,具體配置說明如下。" b5 ]% M8 O. y
(1) 視頻格式配置為YUV 4:2:2。
u1 D& O0 l5 u% k1 U- B4 [(2) 數(shù)據(jù)位寬配置為10bit。+ k) e0 w- x! N' \% e( U' _% B
(3) Clock Mode配置為Independent(獨(dú)立時鐘)。8 q: m) s7 @# }8 U# [
​# B6 v* x' O5 q$ ?; B& y, y
7 U( @3 |5 ]: Q9 w
- `( D* I7 Q. J' c2 p) D4 VTC IP核
2 x$ L1 l7 W4 ~6 G" P: }
! H/ B: s4 |+ v, z1 M" |本案例使用VTC IP核產(chǎn)生用于視頻輸出的時序。
" a; @ I2 h6 ~9 Q( i% F/ iVTC(Video Timing Controller) IP核開發(fā)文檔為產(chǎn)品資料“6-開發(fā)參考資料\Xilinx官方參考文檔\”目錄下的《pg016_v_tc.pdf》,具體配置說明如下。: z6 B3 F9 W* O5 O3 f1 F7 w1 B/ \
(1) 點(diǎn)擊Detection/Generation,確保不勾選"Include AXI4-Lite Interface"及"Enable Detection"。
4 g4 ~1 E5 n2 d/ M- a1 v, m# k
5 G% C" ]! O8 d% j. W
% v' i+ S! ]. K& U* k' r2 l​
6 z ]0 ?4 j4 r1 b. V; L9 P) s( C; w2 {# |
& ~2 r) [. j+ x$ H E7 P0 T3 S% q
(2) 點(diǎn)擊Default/Constant,Video Mode設(shè)為1080p,其余配置保持默認(rèn)。4 V" k9 X; p: M& h/ `4 C$ ~9 [
​. @- E/ o% v2 |2 w
% X+ S- s2 }7 f( `( p7 w+ S& I* U9 x
$ [7 l8 A9 B9 O* m/ q; @3 x3 R5 Clocking Wizard IP核4 c2 a* H( j1 s) z% G" j% Z1 S
/ [, G! _, f! p0 @" y
本案例使用Clocking Wizard IP核產(chǎn)生用于視頻輸出的像素時鐘(148.5MHz,對應(yīng)1080P60)。
/ j/ `" j7 C7 W' RClocking Wizard IP核開發(fā)文檔為產(chǎn)品資料“6-開發(fā)參考資料\Xilinx官方參考文檔\”目錄下的《pg065-clk-wiz.pdf》,具體配置如下。
8 a Y/ ~) E/ F z+ A$ x​5 w0 ]) m+ E8 D
. K6 P/ ^& k c2 K3 @1 m
: I1 }2 S: t: R# D/ i7 M$ q
- F' P3 q7 U1 {9 N' X6 Q; I( \
6 a1 c- k+ U1 D" a3 L●Vivado工程說明
" W5 \6 n3 @3 s: A
) U7 I; G9 m6 h0 g" c$ J( N2 K點(diǎn)擊BLOCK DESIGN開發(fā)界面下的"Address Editor"選項(xiàng),可查看IP核分配的地址,MicroBlaze可通過對應(yīng)地址對IP核進(jìn)行控制。
* Z& i1 t$ E) D6 `) ]& z​
8 s; a+ D! m0 q* E/ e' ^) h, @0 R! U4 u! ~5 u* f2 E( S( I
3 E! X" g0 ~! VVivado工程頂層文件為"hw\project\sdi_capture_display.srcs\sources_1\imports\hdl\sdi_capture_display.v",關(guān)鍵代碼說明如下。
) K/ W; _+ z. u1 t# x% s' H- D( G" R/ l! ?- F5 Y! N
8 o" W4 {) F5 L7 i, _
(1) 定義模塊接口。% m0 }& N: D S/ a/ [
​
. K/ M3 n$ r- R
/ Q4 C# t! f7 M/ n% Z' b. w. t4 f. `( L* W- w/ ?
(2) 使用STARTUPE2原語輸出復(fù)位信號。
4 v- L# R2 ]! u0 `, K' V! E​
0 D; \( |& b; x$ ]/ [8 ]$ v' t- p2 Q! e) Z; V, K
! Q3 w, w/ F8 |/ W# ^: g7 s
9 b, V" {. w7 \7 S3 D
{' A5 S% K% ?- Z
(3) 調(diào)用Block Design。4 ?* N+ k! W V' d
​
/ w! [& f* [6 ?* h$ ?2 @
]2 P7 H9 E4 i. c
: @0 P E# G i: [+ |; B​
) F1 Y j2 J0 g7 k$ w& v
! A) I) q! @/ y+ \) \% x! x5 t# E( f4 g
|
|