|
前言
# X% ^# Q! V: z* j) L
# `6 f m: ]# S0 D, v# Z* U2 S/ f; j
3 Z3 A3 e6 s9 k& Z. d$ LSDI接口,全稱是“數(shù)字分量串行接口(Serial Digital Interface)”。按速率可分為標(biāo)準(zhǔn)清新度SD-SDI、高清標(biāo)準(zhǔn)HD-SDI和3G-SDI,其對(duì)應(yīng)速率分別是270Mb/s、1.485Gb/s和2.97Gb/s。目前在航空航天、軍事、醫(yī)療、交通等領(lǐng)域,SDI的應(yīng)用廣泛度僅次于CameraLink接口。
7 D/ I7 _' ^. i5 {) U+ a, I9 j* \* ]1 r/ c: \3 q ?
​
* H' B' x, ?* I' q* J. _# y" F2 m% z. Z5 k: C
5 A. E1 \5 q( t) O& z, C
! F' i9 b% Z. g$ a- u/ n; w7 {) t& U4 h" _/ _1 Q
SDI接口優(yōu)勢(shì):
7 {: s+ L( ? w7 I# p(1) 消耗GTX更少,消耗IO更少
/ Y; A& N" E) X+ \9 k6 i如果使用GTX總線,僅需1對(duì)GTX,而HDMI則需要3對(duì)GTX。CameraLink接口由于走LVDS信號(hào),Base模式下需要11對(duì)LVDS信號(hào),F(xiàn)ull模式下需要22對(duì)LVDS信號(hào),消耗IO數(shù)量比GTX SDI多了很多。
) e0 h3 a6 ^4 p! Z+ @0 E(2) 傳輸更穩(wěn)定
1 i# u6 p0 v' d- i/ n相較于HDMI接口,SDI接口的自鎖扣設(shè)計(jì)更加穩(wěn)定可靠,不易脫落,不會(huì)因人為因素造成信號(hào)中斷。
8 g& n+ T4 h9 t- ^(3) 傳輸距離更長(zhǎng); w0 J" n0 C) p( P3 j7 K
串行接口是指逐位數(shù)據(jù)的順序傳輸。它的特點(diǎn)是通訊線簡(jiǎn)單。只要一對(duì)傳輸線可以實(shí)現(xiàn)雙向通信,特別適合于長(zhǎng)距離通信。從理論上講,SDI的傳輸距離可以達(dá)到100m。' n- D: T( a1 ?. T. P1 ~9 r: p
(4) 成本更低7 I4 J$ m6 |' o: M. H8 u9 B
SDI接口平均每米價(jià)格約為4元,相較于HDMI接口的平均每米價(jià)格約為10元,SDI接口成本更低。2 ~7 J+ i# J' O7 Q7 \
6 A2 X4 L: _" Q5 o- f; y; \& t
3 Y7 I& b" l% F
創(chuàng)龍科技(Tronlong)的Kintex-7、Zynq-7045/7100等FPGA板卡通過FMC視頻模塊已實(shí)現(xiàn)兩種SDI視頻輸入/視頻輸出方案:GTX +外接芯片。本文將為您分享基于Kintex-7 FPGA評(píng)估板、TL2971A/2972F視頻模塊的3G-SDI視頻輸入/輸出開發(fā)案例,使用外接芯片方式。TL2971A/2972F視頻模塊模塊亦可支持GTX方式。
! H0 R5 S& x W- V% c( b+ y# Z5 E p# l; [$ _% B8 p2 Z- R [
- [4 ^* }- `9 ]% g, B' z
" ?$ C( H" r3 i$ B t
1 i, U4 {: V: V* Z+ O0 L7 V●硬件平臺(tái)9 g* f0 D3 y9 w6 w; k) v
' ^. S5 H9 E5 d7 S
: D# ]6 u+ C5 O+ R3 o' _
' K6 ?0 S9 a: x! I1 TLK7-EVM評(píng)估板
$ b. `; P' o e6 E+ q2 M7 p
+ Z, }" m/ W5 N+ q! E7 |5 A5 d( e本文基于創(chuàng)龍科技TLK7-EVM評(píng)估板、TL2971A/2972F視頻模塊進(jìn)行演示。( l& l* u7 ^6 I& w" s
TLK7-EVM是一款基于Xilinx Kintex-7系列FPGA設(shè)計(jì)的高端評(píng)估板,由核心板和評(píng)估底板組成。核心板經(jīng)過專業(yè)的PCB layout和高低溫測(cè)試驗(yàn)證,穩(wěn)定可靠,可滿足各種工業(yè)應(yīng)用環(huán)境。1 `8 n8 C. M R( z7 m
評(píng)估板接口資源豐富,引出FMC、SFP+、PCIe、SATA、HDMI等接口,方便用戶快速進(jìn)行產(chǎn)品方案評(píng)估與技術(shù)預(yù)研。0 w v' k' s( b& T7 x
可申請(qǐng)TLK7-EVM評(píng)估板進(jìn)行快速評(píng)估,點(diǎn)tronlong.com/Product/show/93.html,免費(fèi)哦!
Y, ^. X9 u5 h0 \" R7 I# b​
- }8 q/ |5 y; `8 k4 D8 \/ q
; e- C/ n% {$ D- O) n
6 v8 E: j; g- k6 w' A TLK7-EVM評(píng)估板. i1 j: W) p7 P! ?8 K- D
& p) K- l0 ]1 }1 W2 x# A
6 u6 V- n2 h, W" q: r
$ D5 O& L1 l! T& x( D. o- y; k2 TL2971A/2972F視頻模塊
1 b0 I; W4 F4 _2 m) n' V
( O# P( Z X, Z! ~8 ]; A9 h3 g5 pTL2971A/2972F是一款基于FMC LPC標(biāo)準(zhǔn)設(shè)計(jì)的3G-SDI視頻輸入/輸出模塊,與創(chuàng)龍科技Zynq-7000/Kintex-7/Artix-7等評(píng)估板配套使用。以下為此模塊特點(diǎn):
{8 A% O; A4 V) ~(1)通過GTX高速串行總線引出1路SDI視頻輸入接口,最高支持2.97Gb/s(1080P60)。
1 T* p1 `2 F7 z3 P/ z(2)通過GTX高速串行總線引出1路SDI視頻輸出接口,最高支持2.97Gb/s(1080P60)。
o# K# I0 ?, J/ z- Y4 I(3)通過GS2971A芯片引出1路SDI視頻輸入接口,最高支持2.97Gb/s(1080P60)。 p5 G% h W" `2 ?
(4)通過GS2972芯片引出1路SDI視頻輸出接口,最高支持2.97Gb/s(1080P60)。
1 Q4 C8 I& ~8 A# Q(5)采用標(biāo)準(zhǔn)BNC連接器,支持視頻設(shè)備熱插拔。
9 t1 @; ~7 G y) R2 k3 u​/ ^0 G- U2 }1 w" m; h+ Z( Z* R' j4 g0 y
# b9 J% x8 T1 J s7 b ]3 f
# e* s0 G. ^# ~5 e- `' w* q3 K1 oTL2971A/2972F視頻模塊
$ M+ U W* L/ @$ i; L' u( L) b9 v6 E8 U2 q6 }% v* U( o* C/ l% U
( P1 j) G3 W% ?- W, e- |. N+ M! b
2 O V* X: f! V4 I
& U4 C4 d) R0 s( Q7 d
' G. z5 s8 Z; C+ e2 y, P' G( w9 V5 Z% g8 s# ?5 } D. u W
●案例功能
! k5 P' F( X y' `' ~ { G) ~ Y P4 K/ \5 @9 ?) ?* T
8 {; A( P5 j, c# z/ B1 E/ a+ g. m
* j/ U5 l9 @% w6 k4 a' S' t' _本案例為通過GS2971A、GS2972芯片引出SDI視頻輸入、輸出案例。通過GTX高速串行總線引出的SDI視頻輸入、輸出案例即將發(fā)布,敬請(qǐng)期待。9 b1 k( C, F q7 c8 Z) }3 \9 l0 z
案例功能:評(píng)估板通過FMC視頻模塊TL2971A/2972F的SDI IN接口進(jìn)行1080P60視頻采集,并通過TL2971A/2972F模塊的SDI OUT接口將采集到的視頻進(jìn)行輸出。案例源碼、產(chǎn)品資料(用戶手冊(cè)、核心板硬件資料、產(chǎn)品規(guī)格書)可點(diǎn):site.tronlong.com/pfdownload獲取。
# n r* m6 o, v" }+ \2 p R3 Y5 V# }( R
9 ^" C4 y6 {' ^
開發(fā)案例主要包括:- i$ Q( b+ y8 V8 _
l CameraLink、SDI、HDMI、PAL視頻輸入/輸出案例
2 H5 V& |# ^- x' X, fl 高速AD(AD9613)采集+高速DA(AD9706)輸出案例
) C0 Q2 l$ m2 v/ Y J$ ], ~l AD9361軟件無線電案例
* K8 F& W# a$ u+ y0 @. \l UDP(10G)光口通信案例
9 H1 }1 N& k% }; j9 {l UDP(1G)光口通信案例2 q1 z# A/ j6 j5 ?
l Aurora光口通信案例 ^8 H1 |3 a/ R' v2 U0 i. X
l PCIe通信案例
6 {' b) l" w# J0 z7 w# K$ ], @+ \
+ }" \, R1 a; y2 t
# F5 [6 E& @: r8 w2 Z/ q8 o) @0 p6 |2 h& _9 v; @
●案例演示) {+ ]" r" W6 v1 j( L
: [' L$ f0 M o# e將創(chuàng)龍科技的TL2971A/2972F模塊連接至評(píng)估板FMC1接口,評(píng)估板J1跳線帽選擇3.3V檔位,以配置FMC IO的BANK電壓為3.3V。
% H) H' y6 v8 _5 H( E1 x4 i! i準(zhǔn)備一臺(tái)擁有HDMI OUT接口的PC機(jī)(例如筆記本),通過HDMI數(shù)據(jù)線將PC機(jī)HDMI OUT接口連接至HDMI轉(zhuǎn)SDI模塊(廠家:玩視,型號(hào):3G HDMI TO SDI Audio)INPUT接口,PC機(jī)HDMI OUT接口用作圖像輸出。通過SDI數(shù)據(jù)線將TL2971A/2972F模塊的SDI IN接口連接至HDMI轉(zhuǎn)SDI模塊的OUTPUT接口。( v) i" i: J$ c5 S3 Z' f
4 `# }1 D/ z! S% c' l
) t" R- k1 t, N5 L( B, o! R* k通過SDI數(shù)據(jù)線將TL2971A/2972F模塊的SDI OUT接口連接至SDI轉(zhuǎn)HDMI模塊(廠家:玩視,型號(hào):3G SDI TO HDMI Audio)的INPUT接口,再通過HDMI數(shù)據(jù)線將一臺(tái)HDMI顯示屏連接至SDI轉(zhuǎn)HDMI模塊的OUTPUT接口,HDMI顯示屏用作圖像顯示。: @: U% j7 E! ]( M
! X5 L3 d/ d [- e/ u/ I7 z+ `$ C( y2 `; m) n/ p- A& P
0 [' v0 t% h) Q
( \1 L, H# z! J4 O​; \' i |, E8 A
3 ?6 m8 Y8 E1 c6 Q! `8 U) J
9 P; N" h* M- E& J4 _" e​
" Z; C) T @ z% C7 s9 G* {" S' Z% p$ {" x1 r9 G/ z
9 ^" b% c# q$ B, [
+ C% t1 _" y. H" O* v3 d( N; y
7 a) S# g3 k+ w, e% S. l4 y2 r2 m運(yùn)行程序,即可看到串口調(diào)試終端打印如下信息,然后在PC機(jī)的顯卡設(shè)置(或圖形屬性)中,按照下圖設(shè)置HDMI分辨率為1920x1080、刷新率為60pHz。
+ i! E% i a0 z# k) }9 ~9 H
5 M( ]: Q K: [* o$ F5 v' x9 i+ o A$ X# s; D; t$ E ^
​" U2 C8 d1 C, e: C7 ?
x7 f# z4 ^5 S9 F* ^& k7 A* H; D/ d" \7 o3 h2 b4 E1 U
! Y6 g& P( c) V2 c
4 f$ |% L! y- R1 Y
​
& a' |+ [( e _' j$ F1 ~6 d+ J2 b2 @. Z
8 k6 x- }; U2 g; J) a
此時(shí),HDMI顯示屏將顯示PC機(jī)HDMI OUT接口輸出的圖像。) v: ?! F$ T: d+ w$ x
​! D$ N$ L* c" a
. p0 {% F/ P6 j. Y9 m/ _/ ?
$ G" D6 c* k! c​
5 L1 a& \% P1 C, _% V4 r6 G" w" G8 ^' V: C/ {
o1 M+ Z% [( ?9 Y9 {2 J7 x! @" k
●關(guān)鍵代碼(MicroBlaze)
1 F/ d- S, q" i$ c& o/ V- {- Y/ ^/ j) n# ^& k/ s$ \4 z
MicroBlaze裸機(jī)源碼為"sw\baremetal_demo\project\sdi_capture_display\src\",關(guān)鍵代碼說明如下。% p+ e( Y( H8 D6 i" i
0 A3 d, E9 A: u' J; |0 e, A3 }/ _7 U& j8 f$ G8 l& I
(1) 初始化VDMA,將采集到的視頻數(shù)據(jù)緩存至DDR,并將視頻數(shù)據(jù)搬運(yùn)至AXI4-Stream to Video Out IP核,再進(jìn)行SDI視頻輸出。0 d" L: H# g0 w- z2 C
​
3 Z: C) {0 n/ k● IP核配置
' m9 [" O1 }6 g/ B4 d. v# X- [
; F5 o4 [; N# q9 B0 b1 n( c+ R1 VDMA IP核
3 T9 C7 X8 {3 F6 E3 i3 }4 s5 Y4 L% n% E
本案例使用VDMA IP核進(jìn)行視頻數(shù)據(jù)緩存。& C# r, w( q& Y `0 \+ U% t
VDMA(AXI Video Direct Memory Access) IP核開發(fā)文檔為產(chǎn)品資料“6-開發(fā)參考資料\Xilinx官方參考文檔\”目錄下的pg020_axi_vdma.pdf,具體配置說明如下。& Y* ^' @" J" \* n
(1) Frame Buffer配置為3個(gè)。
! r! i+ P5 x$ B# l; E(2) Write Burst Size、Read Burst Size均配置為16。
; `! j$ V/ y7 B(3) 讀通道的Stream Date Width配置為24。+ P: W; `* M/ G: P& J' t X. p
(4) 讀/寫通道的Line Buffer Depth均配置為1024。
9 [4 q4 A0 [1 Q​; Q9 }+ g9 P: z3 Y% i" V
7 g. P b, G; n2 \; f
; }: m/ x9 P( l# B, @3 t O(5) 點(diǎn)擊Advanced,保持默認(rèn)配置,即可避免VDMA同時(shí)讀寫同一個(gè)Buffer,造成視頻數(shù)據(jù)傳輸亂碼。* v# A- i. k* B8 p p( q
. w- l- I! }: W% D2 H% s5 i' J. W- D1 f% e5 ^
​, H2 h4 d# |1 ^1 ^
5 H. F I* S% ]- L: z) v2 z' O2 a; l& T& @# l: H$ s* @; \5 ~
2 Video In to AXI4-Stream IP核4 P4 P; J/ I6 t8 Z' m0 |
2 J8 L' u3 @" f$ s
本案例使用Video In to AXI4-Stream IP核將并行視頻信號(hào)轉(zhuǎn)換為AXI4-Stream視頻流。0 Z+ o5 l m1 V: N6 m! G
x7 q1 T% U4 \" F$ n6 y& E$ o/ B4 a3 Y% _
Video In to AXI4-Stream IP核開發(fā)文檔為產(chǎn)品資料“6-開發(fā)參考資料\Xilinx官方參考文檔\”目錄下的《pg043_v_vid_in_axi4s.pdf》,具體配置說明如下。9 i* t: ~- n# @ p( e; W
7 C) M2 g% p( K- p) D4 J5 L: M) F3 u$ ]4 [( f
(1) 視頻格式配置為YUV 4:2:2。
6 ]/ N5 f% d E1 z% ^(2) 數(shù)據(jù)位寬配置為10bit。
: Y. G4 j/ G% t5 E5 ~* a- @' t(3) Clock Mode配置為Independent(獨(dú)立時(shí)鐘)。# [1 P# |7 k2 S3 d% b. Z
​
4 Q& k0 g" x8 S% x5 ]0 Y4 H3 g
6 S/ F0 ^1 q: J4 C/ v# e9 n
+ J! ]2 k+ I# d- k/ @( u6 s; Z5 [8 ~& ?9 |, T) ^
, K2 Q: ^ @) F" F% c3 AXI4-Stream to Video Out IP核. K- H: r) l1 y- X
* O, b/ u/ M- @本案例使用AXI4-Stream to Video Out IP核將AXI4-Stream視頻流轉(zhuǎn)化為并行視頻信號(hào)。0 ?2 c* z4 t6 e5 a; t
AXI4-Stream to Video Out IP核開發(fā)文檔為產(chǎn)品資料“6-開發(fā)參考資料\Xilinx官方參考文檔\”目錄下的《pg044_v_axis_vid_out.pdf》,具體配置說明如下。
$ f1 _; }- X+ s2 c(1) 視頻格式配置為YUV 4:2:2。/ y% u1 H# l9 @; D
(2) 數(shù)據(jù)位寬配置為10bit。5 `9 x$ ~ ]5 _3 ~
(3) Clock Mode配置為Independent(獨(dú)立時(shí)鐘)。
4 f8 ]; {# D/ y8 {9 w4 J& Y \​. ^+ P0 e9 Y( ~: r u+ i0 n! f
1 B: t5 O2 L; y" ^7 w8 B
: [# b+ H' o: e# p
4 VTC IP核8 W# a6 w5 A! l( @8 H
8 E. E J" C6 Q1 h7 s/ R本案例使用VTC IP核產(chǎn)生用于視頻輸出的時(shí)序。
( b* d# c/ K' R6 w. x3 o6 uVTC(Video Timing Controller) IP核開發(fā)文檔為產(chǎn)品資料“6-開發(fā)參考資料\Xilinx官方參考文檔\”目錄下的《pg016_v_tc.pdf》,具體配置說明如下。8 v q) L+ ^- e" w: F
(1) 點(diǎn)擊Detection/Generation,確保不勾選"Include AXI4-Lite Interface"及"Enable Detection"。
- W: q% p: Y; T/ `
& m6 C& `$ O: D+ v5 p& n
+ O: l5 ]: t Y s​9 v1 g8 A; T* H. e0 {% U: b$ z
$ R' B) p. Q: s* I( I) \9 b% }3 W; D) m Z
(2) 點(diǎn)擊Default/Constant,Video Mode設(shè)為1080p,其余配置保持默認(rèn)。: U. ~, G3 Q9 W; N, w* L% z
​
5 M$ ]8 B4 n6 r+ m6 M% F3 a& I8 e9 e: K' N$ y
- b! ^+ @8 ?& p# L+ q9 d+ E
5 Clocking Wizard IP核
' N, L. }/ F+ S+ G
- B* ^+ N. Z X+ @, ^. {本案例使用Clocking Wizard IP核產(chǎn)生用于視頻輸出的像素時(shí)鐘(148.5MHz,對(duì)應(yīng)1080P60)。3 H- N3 g8 U x$ k. R2 a
Clocking Wizard IP核開發(fā)文檔為產(chǎn)品資料“6-開發(fā)參考資料\Xilinx官方參考文檔\”目錄下的《pg065-clk-wiz.pdf》,具體配置如下。
; j: l% B7 s; ]! F; A​- q. i' K. d n
/ }0 T! }, N7 ?2 X. X! w! U+ w
; g* Z% `5 o) t
& U+ ~2 r1 \5 B* b/ u+ w
& G; {: \4 a7 G4 G; o( z. O●Vivado工程說明
- M! U+ ~* Y$ Q$ t0 p0 g% y9 V
4 x9 {3 v5 f4 J% w& }點(diǎn)擊BLOCK DESIGN開發(fā)界面下的"Address Editor"選項(xiàng),可查看IP核分配的地址,MicroBlaze可通過對(duì)應(yīng)地址對(duì)IP核進(jìn)行控制。
9 x, T3 X8 a; E+ ]; r" z) F2 l​4 c$ V `, G$ z) r$ _4 |3 k
/ V5 a, N* K, w' N# r7 \" H
7 ]: H$ Z9 U. `( [- `( YVivado工程頂層文件為"hw\project\sdi_capture_display.srcs\sources_1\imports\hdl\sdi_capture_display.v",關(guān)鍵代碼說明如下。
. O a- J# K4 K! c; d: [0 V: r; t0 P
K6 j9 K+ }6 E6 {* w5 H) a/ g& G" `( M5 f7 u- F
(1) 定義模塊接口。4 h- n; F0 v* [! ~ F- z6 N4 R# a
​
5 s. ^* u8 c5 q
" a& X7 _6 r5 I8 _" j0 l% w$ @: |0 W/ x4 A3 i3 H% W2 n* l
(2) 使用STARTUPE2原語輸出復(fù)位信號(hào)。
! M4 ^4 N( U5 r! l​ w0 ?3 ]# B& V0 a" X
' h. _* B7 f; W$ P
7 M! D/ C; i( p' i& R
; {, B5 ~3 n2 y m2 j* C) L
7 `! J8 j$ G2 ^
(3) 調(diào)用Block Design。' y V7 k7 @& a
​- j! k* H2 u: D W! {6 X: c
6 T y9 r- H% Z
2 v' ~8 a# ^4 Z4 w8 I. M, L​3 K: F9 d' W1 s5 v. I3 b; e
) h1 x+ ?9 G V1 J7 i- v9 W8 M3 }) E! m1 I0 e
|
|