|
前言% r. a& L `! Z4 w; m
+ `2 r$ U) y3 S
3 k* m* i, }9 S6 u8 [, B
: ]- J& @/ g Z u- i) h( a+ C. {5 PSDI接口,全稱是“數(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接口。
0 k! y( Y+ {0 v2 a6 Y( c
) f) y* x8 K# a; F' E# m4 i​" A- H7 [. i( z
* A+ M% H4 L, D B
, }- j9 }* p8 v8 }
: W/ M2 A0 e5 ?$ Y8 Z
9 R/ C& O$ g$ ]( r7 m( h- @SDI接口優(yōu)勢(shì):
/ N* Z" ?2 t1 _ W, h(1) 消耗GTX更少,消耗IO更少- e* c- p7 x6 h: t& ?$ [
如果使用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多了很多。$ @! d, @; H* {3 Q1 g* ]" S
(2) 傳輸更穩(wěn)定
! e( X4 T+ T, F: b+ ], U5 z/ }/ d相較于HDMI接口,SDI接口的自鎖扣設(shè)計(jì)更加穩(wěn)定可靠,不易脫落,不會(huì)因人為因素造成信號(hào)中斷。
& t0 _, l6 p0 k+ [8 J" T(3) 傳輸距離更長
5 ~$ t- }8 w7 A% q) Y' w串行接口是指逐位數(shù)據(jù)的順序傳輸。它的特點(diǎn)是通訊線簡(jiǎn)單。只要一對(duì)傳輸線可以實(shí)現(xiàn)雙向通信,特別適合于長距離通信。從理論上講,SDI的傳輸距離可以達(dá)到100m。" m# {. m. S# d) G1 m) H
(4) 成本更低, ~: ], B( g6 X! n' \) A
SDI接口平均每米價(jià)格約為4元,相較于HDMI接口的平均每米價(jià)格約為10元,SDI接口成本更低。+ f. c9 w! c' G! a7 I9 ? _# y7 w
2 A9 ]$ D# x, P; G, W
* X8 C' m+ z' P Y I創(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方式。
( P& C& y2 J' C3 {2 s/ { Y, e) b& C' O" ]3 n& k
: k/ ]: U/ K) d8 l0 a
- A# z, C9 q3 x0 M! a" u$ D D
# g& X6 ~ ]! v3 k8 z) n●硬件平臺(tái)! P0 I' n$ _' E2 R( y4 w
$ J2 \2 T l! X
8 ?8 X* U8 q& _) E
1 u8 V3 ~8 {4 R' j; ^% c1 TLK7-EVM評(píng)估板
; d9 Z0 b3 \3 ^/ B: p' r% V
3 K/ e. k% l9 p0 N, |, ?本文基于創(chuàng)龍科技TLK7-EVM評(píng)估板、TL2971A/2972F視頻模塊進(jìn)行演示。
; b; A$ a& L: K$ bTLK7-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)境。; R- u- N/ S: _5 [* Y) Q, |
評(píng)估板接口資源豐富,引出FMC、SFP+、PCIe、SATA、HDMI等接口,方便用戶快速進(jìn)行產(chǎn)品方案評(píng)估與技術(shù)預(yù)研。
9 {, L$ \) A" ]2 Q$ D& m可申請(qǐng)TLK7-EVM評(píng)估板進(jìn)行快速評(píng)估,點(diǎn)tronlong.com/Product/show/93.html,免費(fèi)哦!+ I! J, C2 X7 ^$ L" P
​
u& D7 u- K; d0 F' u* k2 l2 i: i( s
8 v, V+ u- q, N
+ \. l4 j+ r% C7 g0 v' J2 a TLK7-EVM評(píng)估板
- w* }' i- `4 b0 M5 p9 x" |
* j/ z0 E, Y1 g0 d- ^. |
1 e! u) U. G3 U0 t L$ b/ q2 I7 `! y& T2 }/ D' c. `
2 TL2971A/2972F視頻模塊
, ?" F2 u* Q( {; @' h- f* k) J E( `7 h& _
TL2971A/2972F是一款基于FMC LPC標(biāo)準(zhǔn)設(shè)計(jì)的3G-SDI視頻輸入/輸出模塊,與創(chuàng)龍科技Zynq-7000/Kintex-7/Artix-7等評(píng)估板配套使用。以下為此模塊特點(diǎn):: F) @" [9 L" v. v4 F
(1)通過GTX高速串行總線引出1路SDI視頻輸入接口,最高支持2.97Gb/s(1080P60)。
' @* c$ d' H2 C# o(2)通過GTX高速串行總線引出1路SDI視頻輸出接口,最高支持2.97Gb/s(1080P60)。" m. i3 I0 V- L' K9 ~4 T+ L+ P
(3)通過GS2971A芯片引出1路SDI視頻輸入接口,最高支持2.97Gb/s(1080P60)。
5 ~, @: k+ ]7 x: t$ d: ? }(4)通過GS2972芯片引出1路SDI視頻輸出接口,最高支持2.97Gb/s(1080P60)。
# m2 h k9 W9 [! @(5)采用標(biāo)準(zhǔn)BNC連接器,支持視頻設(shè)備熱插拔。
; f' `4 k3 D F7 x​
\; Y5 B( |: E" P( `2 B/ L6 n% B: A9 c7 h* c
c- e9 ~ N) r8 s7 n0 L' }
TL2971A/2972F視頻模塊
+ G/ G* ^, p8 D
6 M& h4 k j3 j) ? n. S* \8 i& w4 L3 c( O
% f( k% s1 T5 @
0 d( k' [) V0 Z+ j! O# `6 R+ I7 L
2 ^- E0 Q2 S8 r7 Q
●案例功能# H/ j! G+ D, o) {
0 ?* Z# q# ^7 M. x: E. [0 |& `; c+ S4 m4 `
( o8 ]3 q. }: ^9 C0 A# m4 E本案例為通過GS2971A、GS2972芯片引出SDI視頻輸入、輸出案例。通過GTX高速串行總線引出的SDI視頻輸入、輸出案例即將發(fā)布,敬請(qǐng)期待。0 {+ T( A4 U, u+ \ Q2 o
案例功能:評(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獲取。2 Q' q$ ^& i# M# j& L7 e5 q
4 I& z/ E; a2 T1 U' C" w: h/ t p, R+ t* g' v- i' c8 x* y
開發(fā)案例主要包括:$ x3 L. q; O M; i# |% n
l CameraLink、SDI、HDMI、PAL視頻輸入/輸出案例. R! R, B7 u. h
l 高速AD(AD9613)采集+高速DA(AD9706)輸出案例3 h% { M- Z9 d4 G
l AD9361軟件無線電案例9 E+ N' F4 A8 j# `* k1 ~3 G
l UDP(10G)光口通信案例
" z- x. o0 N8 T2 i+ k: d) [1 q: il UDP(1G)光口通信案例
# l3 F* S r# S" z* \, m% X: Fl Aurora光口通信案例, p* ^1 v1 B3 D9 O& R/ U
l PCIe通信案例
1 l/ N- U7 n3 ~% L
6 i0 I# f+ D& [/ P3 K& M, `" S+ h
) x, q$ L7 i9 Q$ J9 d
! k" I1 Y4 H4 |( C) P- P3 g3 j●案例演示( t: ]* M9 P0 Y
! s2 k( k3 t2 V- z: h% O
將創(chuàng)龍科技的TL2971A/2972F模塊連接至評(píng)估板FMC1接口,評(píng)估板J1跳線帽選擇3.3V檔位,以配置FMC IO的BANK電壓為3.3V。
$ i3 e. t0 g( y( g: h9 x, o9 Q" F準(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接口。1 [' N5 F2 N' F x
# T$ n' H/ M5 G# _% W
) G+ f; e6 S+ B通過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顯示屏用作圖像顯示。. Q5 Z" Y) R! Q% H9 o" P4 b
3 o( G. k ? g2 l9 l. X
- e. j2 r" q) {
* [4 ~ I6 M6 B/ i4 V% u& q; @
+ d, Y4 i8 F# L! c
​
6 \. _ n# ^1 J! l
' p9 L, p0 e4 C% W7 y
3 V0 u7 s6 w& E4 E# L/ n; f​5 j- K0 v6 z- t. N
( w6 r9 {' U, C
. x; f" m* `' [
, z: D) h. E @- N: y! ?1 y; C6 I( e; \. g6 L+ x
運(yùn)行程序,即可看到串口調(diào)試終端打印如下信息,然后在PC機(jī)的顯卡設(shè)置(或圖形屬性)中,按照下圖設(shè)置HDMI分辨率為1920x1080、刷新率為60pHz。
6 u4 E: D8 |1 t; U9 K, t" P+ |5 B8 x! {) o8 B/ A
. @8 k) _6 a. ?5 E, m. B8 x
​
" v+ s& j) E3 p- R, C
2 g- N/ s6 H. z+ h2 B0 F5 T/ U8 x6 W. l8 m, s' ~' Y
! ~; e. `' n# L9 w' V
6 ^ |* k" U' z3 x+ K​
, k! L9 e5 z G8 c8 ]' e: G# h: _, x& E1 a- J
' |, I5 |5 P$ {; n) m
此時(shí),HDMI顯示屏將顯示PC機(jī)HDMI OUT接口輸出的圖像。; Z& S" l3 v0 j$ a5 L# x
​
9 ^1 i- p/ c1 h: y' [; K, w, Z6 n/ r- \- ^- B) f
6 @% v8 ~: H- j3 y- |4 Q​
! A6 H# G" E# t) C
0 g, s" x+ U- O5 I, s: y p6 U% i/ {. [/ C1 j) j1 @4 R
●關(guān)鍵代碼(MicroBlaze)
8 V9 X' f( M4 R$ S0 K; I- |
9 Z! ~7 s4 ^# ]$ b4 V+ |MicroBlaze裸機(jī)源碼為"sw\baremetal_demo\project\sdi_capture_display\src\",關(guān)鍵代碼說明如下。, H# v5 c9 E: i7 y, w
0 Q5 R" u) W/ E3 c. _0 X2 x0 U- o' u
(1) 初始化VDMA,將采集到的視頻數(shù)據(jù)緩存至DDR,并將視頻數(shù)據(jù)搬運(yùn)至AXI4-Stream to Video Out IP核,再進(jìn)行SDI視頻輸出。
% V) m: a1 c. r6 _7 {1 a​3 b) ^7 l" V* p$ y: S# E9 m& M
● IP核配置6 P: O! L# n5 O' Y
: t0 {' {- y' F1 VDMA IP核) \7 k6 B$ x4 S2 u- x y
. n0 x3 c( @. N ]7 `
本案例使用VDMA IP核進(jìn)行視頻數(shù)據(jù)緩存。
t; L( m+ ?' d$ `VDMA(AXI Video Direct Memory Access) IP核開發(fā)文檔為產(chǎn)品資料“6-開發(fā)參考資料\Xilinx官方參考文檔\”目錄下的pg020_axi_vdma.pdf,具體配置說明如下。
1 f3 A% V2 a5 n: [(1) Frame Buffer配置為3個(gè)。) |- ]* x/ l: { L* S
(2) Write Burst Size、Read Burst Size均配置為16。. [! n- e ~0 Q
(3) 讀通道的Stream Date Width配置為24。/ {* h8 t) P; F6 b6 J
(4) 讀/寫通道的Line Buffer Depth均配置為1024。9 \' ]9 q" o' [5 u! }% ~; _+ j
​6 C# [% Z9 a# |2 a& G' I
% I. G9 E" E5 M8 t4 P* D& j: o2 j2 b+ \; a
(5) 點(diǎn)擊Advanced,保持默認(rèn)配置,即可避免VDMA同時(shí)讀寫同一個(gè)Buffer,造成視頻數(shù)據(jù)傳輸亂碼。
?/ E/ {& Y& X" k( y4 E8 l; g4 b$ v# S0 P
g2 l) e3 w" c, `/ k7 u
​4 C, k3 J. L Q4 a0 Z; t+ y
5 e( c# X @' z$ v! d
- x i, |; A4 u/ J5 B2 Video In to AXI4-Stream IP核; U; e' Y/ G* d) R. z0 K& ~
$ l6 f6 d% h% h5 C; o9 h本案例使用Video In to AXI4-Stream IP核將并行視頻信號(hào)轉(zhuǎn)換為AXI4-Stream視頻流。5 X+ ~8 L' Y0 x% b3 u4 |
* N/ H# L4 D* x! ^% ?/ T
7 q5 G2 h/ k* B- h a
Video In to AXI4-Stream IP核開發(fā)文檔為產(chǎn)品資料“6-開發(fā)參考資料\Xilinx官方參考文檔\”目錄下的《pg043_v_vid_in_axi4s.pdf》,具體配置說明如下。8 B+ |' H& t& ]' X9 j/ n5 j# _3 A2 U
' t) W- I3 W' L1 X% R
0 ?( Q8 k# k8 l: f5 k
(1) 視頻格式配置為YUV 4:2:2。2 d9 v+ ?9 e+ k
(2) 數(shù)據(jù)位寬配置為10bit。
5 i4 K& u. F) s6 y! @' O: X(3) Clock Mode配置為Independent(獨(dú)立時(shí)鐘)。
7 }* e0 A% ^, h) e9 ^1 q​
9 r1 U' L. z. a0 H% G2 p: w7 c W8 y
4 X x2 Z8 n$ C; J) F: x( M6 `! ]
# x: p5 b* W* Y: ^- m, n1 ?; k( K3 I% m# D. z/ c+ ^1 x
* [/ x2 Z' T# z4 M* C' |3 AXI4-Stream to Video Out IP核$ E$ Q) [# x9 U9 Z+ ^/ X
2 }5 `. u5 W7 a本案例使用AXI4-Stream to Video Out IP核將AXI4-Stream視頻流轉(zhuǎn)化為并行視頻信號(hào)。
: [! I1 h1 `7 S( U/ yAXI4-Stream to Video Out IP核開發(fā)文檔為產(chǎn)品資料“6-開發(fā)參考資料\Xilinx官方參考文檔\”目錄下的《pg044_v_axis_vid_out.pdf》,具體配置說明如下。/ r! V# z. c; z* u
(1) 視頻格式配置為YUV 4:2:2。: t& [ C9 y3 n" W+ p% P5 x
(2) 數(shù)據(jù)位寬配置為10bit。9 Q# M7 _0 K+ {9 @7 m
(3) Clock Mode配置為Independent(獨(dú)立時(shí)鐘)。) j: I" F6 U* \8 Q9 z
​
2 g! \4 O% |1 R7 R$ i j. h+ ]8 p1 ?7 S
9 O& H9 @9 b( F0 ~6 _4 VTC IP核
2 o, ^+ l' p6 o! L
0 o5 N5 B$ }* k( S8 ^. v- z本案例使用VTC IP核產(chǎn)生用于視頻輸出的時(shí)序。1 ?5 m( s, n: w' \( S+ g
VTC(Video Timing Controller) IP核開發(fā)文檔為產(chǎn)品資料“6-開發(fā)參考資料\Xilinx官方參考文檔\”目錄下的《pg016_v_tc.pdf》,具體配置說明如下。$ q( O8 A+ W7 C4 ~
(1) 點(diǎn)擊Detection/Generation,確保不勾選"Include AXI4-Lite Interface"及"Enable Detection"。
% z% \7 {+ r9 G1 M0 z8 d% a+ p
5 W: S% n9 v4 x0 \* b' a) D
* c* ^5 B1 a+ c. ]% [​
( A3 o2 P q& W0 @% A: D( ~4 ], A; [
7 A- B" \$ V& x/ ^
(2) 點(diǎn)擊Default/Constant,Video Mode設(shè)為1080p,其余配置保持默認(rèn)。
3 Q& L+ `5 M) ?' F: l​: A. b1 c7 b4 f: n; S
8 {6 y- p |+ G, L( F! _( M# K0 j- m
% S" c5 J! [; s& E- G
5 Clocking Wizard IP核( Y, y2 ]: N% A z* e% p
2 _* w* x/ v1 z- q/ t* i5 |2 o
本案例使用Clocking Wizard IP核產(chǎn)生用于視頻輸出的像素時(shí)鐘(148.5MHz,對(duì)應(yīng)1080P60)。
9 d' ^( D% g# B( S0 oClocking Wizard IP核開發(fā)文檔為產(chǎn)品資料“6-開發(fā)參考資料\Xilinx官方參考文檔\”目錄下的《pg065-clk-wiz.pdf》,具體配置如下。9 g& a( ?0 A6 O: h9 m4 a% h
​$ a+ w5 T) @ \$ T
% q: Q8 w+ K% ?: }, ?
5 X9 _: E+ s% @! G+ D8 V; X+ K1 q+ y: U) W
6 L& L6 S8 H# G●Vivado工程說明
i" \- ~% H6 P/ a
- K1 E0 S* Y4 J# b1 t點(diǎn)擊BLOCK DESIGN開發(fā)界面下的"Address Editor"選項(xiàng),可查看IP核分配的地址,MicroBlaze可通過對(duì)應(yīng)地址對(duì)IP核進(jìn)行控制。
% x6 x% Y. e1 `2 b9 y( L. ?- i​
$ t' h- K6 T0 o9 W% L7 Q$ T) n' R! N# \4 Q) ?
# Q M/ I7 T4 _# B% i3 J* b. b
Vivado工程頂層文件為"hw\project\sdi_capture_display.srcs\sources_1\imports\hdl\sdi_capture_display.v",關(guān)鍵代碼說明如下。
6 I8 `5 @2 k9 _; O) ~
& g* y8 W2 V: t' f/ s1 _$ n" m3 r; K7 { S6 i D4 {& l$ a
(1) 定義模塊接口。
# x0 Y4 S, i8 }+ M% v) I1 U7 ~" {​
/ I+ V2 \- g B9 [$ W ?$ h+ L O; O/ ^8 y
# @8 t: J' L( @5 C2 P3 h
(2) 使用STARTUPE2原語輸出復(fù)位信號(hào)。8 ?! R( a9 Z e, Q( D- M9 z
​* F/ H2 N+ q4 r! q' C4 e" _) `5 o4 U( ~
[4 k/ _6 Z {( W. K! e4 P- G* R
R2 b9 e; i, S% G
4 D0 Y. `3 T. @3 b( I( U) U4 D* v, `) L0 }* o
(3) 調(diào)用Block Design。& x0 f/ g+ |7 O
​6 f, t" |' j B: t) W- }
0 V0 U- @3 [% v, W4 s4 T* o& @9 u* f# g
​
+ }* V4 Q- A7 F4 ~( o6 u
0 r7 m$ ~6 U! [2 d7 J5 \
+ U# D* m# Z T8 c0 j/ Y& n; x6 G% j$ S |
|