|
前言/ s6 Z7 }% r- i5 L- y" ?. F
; k; k4 A% ^& o* l, U f ^' i( |9 \+ ] B7 K
! @/ S0 S# u( H& D/ @, f% m
SDI接口,全稱是“數(shù)字分量串行接口(Serial Digital Interface)”。按速率可分為標準清新度SD-SDI、高清標準HD-SDI和3G-SDI,其對應(yīng)速率分別是270Mb/s、1.485Gb/s和2.97Gb/s。目前在航空航天、軍事、醫(yī)療、交通等領(lǐng)域,SDI的應(yīng)用廣泛度僅次于CameraLink接口。' l3 C1 ~, Z: B. h' ]( g/ T0 P2 A% \
/ D: N; w! v9 z, H" [, r​
- o$ |4 c" q1 H% N# B E$ `9 f% E _% E$ ?: _
& g7 I) w( g9 C$ M4 o0 K: W' B. G6 l2 b# _/ K; E& M
( w% d7 Z) p5 h
SDI接口優(yōu)勢:
! Q2 f* D* W9 S* Y/ G' P; a" P/ r' C(1) 消耗GTX更少,消耗IO更少
, W% o0 u, {( x F: f& q% Z如果使用GTX總線,僅需1對GTX,而HDMI則需要3對GTX。CameraLink接口由于走LVDS信號,Base模式下需要11對LVDS信號,F(xiàn)ull模式下需要22對LVDS信號,消耗IO數(shù)量比GTX SDI多了很多。% ?, G; G# c6 @
(2) 傳輸更穩(wěn)定4 ~) [/ s/ t4 w
相較于HDMI接口,SDI接口的自鎖扣設(shè)計更加穩(wěn)定可靠,不易脫落,不會因人為因素造成信號中斷。
" o. z' I" `1 u) V; P% x1 k(3) 傳輸距離更長8 \5 w4 r6 m6 q( e% p
串行接口是指逐位數(shù)據(jù)的順序傳輸。它的特點是通訊線簡單。只要一對傳輸線可以實現(xiàn)雙向通信,特別適合于長距離通信。從理論上講,SDI的傳輸距離可以達到100m。8 K0 j* w% [! J# R; | f
(4) 成本更低* A. e3 G2 C/ n
SDI接口平均每米價格約為4元,相較于HDMI接口的平均每米價格約為10元,SDI接口成本更低。4 H3 E0 u+ k: c/ O- U
) ~& L: n" t w# w. z" E! S& [. q+ Y
創(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方式。
) s, L3 [9 o7 |# r1 b
2 j/ j1 O2 C" Y+ Z2 {6 f1 ^0 h7 C9 H h) [! U A
7 R, u3 S7 n8 W9 ~ i. S
- n7 @& k8 l# o5 S. X●硬件平臺, E+ o9 {/ \. e+ l# o
/ ?' E/ i$ e! m% ?$ F, [% r
9 T' f% u4 R: A" d7 ^
; z8 M {* r+ i1 TLK7-EVM評估板
/ L5 V3 F1 H4 F/ k+ Y7 \
1 |( Q# I1 [! c- l# t$ S本文基于創(chuàng)龍科技TLK7-EVM評估板、TL2971A/2972F視頻模塊進行演示。
\5 K. g+ n! s0 D) V `& kTLK7-EVM是一款基于Xilinx Kintex-7系列FPGA設(shè)計的高端評估板,由核心板和評估底板組成。核心板經(jīng)過專業(yè)的PCB layout和高低溫測試驗證,穩(wěn)定可靠,可滿足各種工業(yè)應(yīng)用環(huán)境。) V: b6 J# M* k
評估板接口資源豐富,引出FMC、SFP+、PCIe、SATA、HDMI等接口,方便用戶快速進行產(chǎn)品方案評估與技術(shù)預(yù)研。
7 u/ m0 X5 X' H" a: o8 a可申請TLK7-EVM評估板進行快速評估,點tronlong.com/Product/show/93.html,免費哦!
; ~$ D# f2 ?9 t$ J! S- B​
# T1 J8 d2 |4 V! e" a, X. n' O
& Y6 C) N1 T9 C. d0 g: n0 d
! a$ I4 p" M k9 F4 J/ W1 y# V1 I TLK7-EVM評估板
& J# Y" r0 q0 t/ d: C
- P* M8 S" t5 e; T- Y( l1 E+ T. N) @) d9 _0 y; U' s. Y
; Y+ M6 N! ^; C2 TL2971A/2972F視頻模塊
5 a" _$ q- N% P* d6 E4 B2 c" K9 z% Q3 ~
TL2971A/2972F是一款基于FMC LPC標準設(shè)計的3G-SDI視頻輸入/輸出模塊,與創(chuàng)龍科技Zynq-7000/Kintex-7/Artix-7等評估板配套使用。以下為此模塊特點:, G* e' A- ~9 ]* A/ X
(1)通過GTX高速串行總線引出1路SDI視頻輸入接口,最高支持2.97Gb/s(1080P60)。
4 \3 y7 ?, b3 L(2)通過GTX高速串行總線引出1路SDI視頻輸出接口,最高支持2.97Gb/s(1080P60)。% M* b! _6 N8 b8 [+ Y5 _1 M# Y
(3)通過GS2971A芯片引出1路SDI視頻輸入接口,最高支持2.97Gb/s(1080P60)。3 Q3 I1 B( F/ a k
(4)通過GS2972芯片引出1路SDI視頻輸出接口,最高支持2.97Gb/s(1080P60)。% S1 R! ^0 a; |
(5)采用標準BNC連接器,支持視頻設(shè)備熱插拔。1 [) N; o8 a( U, [3 `4 R( X5 E* K
​3 n: r& p1 w( E9 n" \/ A, N5 d
0 J1 b6 o9 m& x+ d
g8 x5 K+ c) Y% D
TL2971A/2972F視頻模塊
; J$ x$ q5 V$ n0 y, R% R1 _2 h& q/ K- R/ q. O) G
9 F# ~% _* ] \% U% p& s' F. z9 m, c0 D
/ a/ q) }* I8 ?; Y: H% ?5 X: i$ O, M
4 f5 U0 J1 D+ c9 f9 @0 j
# X( X7 h- T2 q7 `, j●案例功能& m0 b9 a6 |, Y+ E( F
" w; j4 I3 |% x* V, }' \- Z5 P; z. a. s Y* ?! p
! s% g0 ^% n$ M: q" Z$ ]+ L
本案例為通過GS2971A、GS2972芯片引出SDI視頻輸入、輸出案例。通過GTX高速串行總線引出的SDI視頻輸入、輸出案例即將發(fā)布,敬請期待。
; ~& @7 S2 d0 v: C/ e& C' M案例功能:評估板通過FMC視頻模塊TL2971A/2972F的SDI IN接口進行1080P60視頻采集,并通過TL2971A/2972F模塊的SDI OUT接口將采集到的視頻進行輸出。案例源碼、產(chǎn)品資料(用戶手冊、核心板硬件資料、產(chǎn)品規(guī)格書)可點:site.tronlong.com/pfdownload獲取。$ I4 l/ k0 p( \- b+ ~
" m Q* T! m( J0 H% g5 r6 M
7 S9 _, Z4 i, p% E( I/ Q開發(fā)案例主要包括:
0 C% R C- B% g2 Kl CameraLink、SDI、HDMI、PAL視頻輸入/輸出案例- G3 i. P* n6 T4 N6 ]' `6 I! k
l 高速AD(AD9613)采集+高速DA(AD9706)輸出案例% D, \' ~* r6 c7 e' ~* i9 @
l AD9361軟件無線電案例
8 F3 t! i+ c! S0 x al UDP(10G)光口通信案例
" v. x2 ~: N' Q3 o5 Ll UDP(1G)光口通信案例7 U3 i% L$ i/ Q% E. V' v
l Aurora光口通信案例
- [6 G O+ F2 y: C8 Bl PCIe通信案例
$ t0 h0 u9 D: b9 [ n
4 d% N) M( u: O- v5 w( u( N
; o1 C3 b3 R d- n0 f- A6 Q& B/ J, `' I! k8 F' L# @$ z# B
●案例演示) b) M. A$ k% N) Q4 o" w5 v
, r3 S% ~9 ]9 B) P3 p
將創(chuàng)龍科技的TL2971A/2972F模塊連接至評估板FMC1接口,評估板J1跳線帽選擇3.3V檔位,以配置FMC IO的BANK電壓為3.3V。
3 w6 N) @+ l' D準備一臺擁有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接口。
2 z2 ]/ \" D0 U4 D6 ~9 t
R' p# g8 I2 n& ?- a( g+ F- |0 p+ u7 ?6 x0 q2 L' S; Z
通過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顯示屏用作圖像顯示。
$ k0 ?; i& p. P- w! h+ L9 W }5 m; f1 D* N5 X
3 S2 n7 m4 ~8 q) G+ d2 o& ]" g. P$ g+ V- S
, @- x8 A. J7 F4 C! q4 \​
6 u7 [% z9 `8 N; w# g- ~
" A8 {7 ~! q4 B- g* x
5 i: m7 H9 T5 M* X9 W9 { W​
7 O, q+ T- _; r7 s! \) n8 y* j6 D6 u$ n9 O8 T- @
1 u4 w! ^2 i; b
* ~& ^) s4 e B7 w0 I5 i5 `
$ v k( i. V$ {" h5 [運行程序,即可看到串口調(diào)試終端打印如下信息,然后在PC機的顯卡設(shè)置(或圖形屬性)中,按照下圖設(shè)置HDMI分辨率為1920x1080、刷新率為60pHz。+ N# b( I. }: K0 o9 L% A
9 @# o7 i$ \% q( _' b5 g* u6 `: H
6 ^9 G! C8 _9 G2 M2 v6 ^. O' W6 t​
2 H8 s7 {" s; B/ ?" S1 A- P! B# E$ ]
: z7 B) F! {- c. i: s
1 Z5 J9 E' o, `$ @# e9 r+ C: ~% T r9 r, n; p. O
​ U( N* t/ B; M7 C+ b- w
3 R2 E' R' \% C; x- U F
7 w/ O7 h4 F0 j, `# y% b此時,HDMI顯示屏將顯示PC機HDMI OUT接口輸出的圖像。
- T, o" ]( ^1 s0 t9 t' X​
/ q8 J7 ^$ C+ {5 P; ^' X9 ?% c, _$ K% Q/ A7 { b
5 w. x' G1 l. k+ T9 G+ r: \* I2 T: I
​
- ^: V# g: q2 V7 M3 m9 `/ `( |: j
& q" H# e6 w9 d+ I
# l3 B/ r) `; Y" D. B4 \6 a●關(guān)鍵代碼(MicroBlaze)1 ]5 ] |" S1 [& H
0 k% |/ o% e/ {, ~
MicroBlaze裸機源碼為"sw\baremetal_demo\project\sdi_capture_display\src\",關(guān)鍵代碼說明如下。! {- ?! R! u8 R) c' c4 W( O
8 Z/ ^5 p7 s! w
! M8 y8 X8 R# I& Q3 Q" b(1) 初始化VDMA,將采集到的視頻數(shù)據(jù)緩存至DDR,并將視頻數(shù)據(jù)搬運至AXI4-Stream to Video Out IP核,再進行SDI視頻輸出。
" G, t" o2 f6 R% _​+ R& b$ P. o- H( K
● IP核配置/ B) t: s* l6 c }
5 U8 [1 r2 o( M) C
1 VDMA IP核& b8 M. ^6 u' w8 L
0 Y9 V8 \# i: V
本案例使用VDMA IP核進行視頻數(shù)據(jù)緩存。( U+ G$ i5 B; B
VDMA(AXI Video Direct Memory Access) IP核開發(fā)文檔為產(chǎn)品資料“6-開發(fā)參考資料\Xilinx官方參考文檔\”目錄下的pg020_axi_vdma.pdf,具體配置說明如下。9 m8 B! y3 k$ U* n" I
(1) Frame Buffer配置為3個。
. F3 o1 m7 T: J+ b% [(2) Write Burst Size、Read Burst Size均配置為16。
1 A ?% K) v" _0 {- J4 D7 O(3) 讀通道的Stream Date Width配置為24。
9 A% |2 W7 z3 u ](4) 讀/寫通道的Line Buffer Depth均配置為1024。" l+ b5 e; Q5 ^# H8 C. m
​
0 A% p0 q. u% F" K' x2 t
R9 g3 P7 M, I5 Y
! v9 s4 V2 P6 B& s& Q) b4 B(5) 點擊Advanced,保持默認配置,即可避免VDMA同時讀寫同一個Buffer,造成視頻數(shù)據(jù)傳輸亂碼。
. q Y. Z& A" U7 C- j' [8 X8 e# c3 V* m, e" o" y
/ Y/ @ ?: x. N8 }* a/ M! I8 y; Z7 S
​* ^; k; B+ r* h- [5 N
, u! }( H% R+ W M" F7 E2 m+ q5 b3 }9 j
2 Video In to AXI4-Stream IP核
6 L: e1 A, V! r# ]: f' k/ o; a" k! `, M; u$ |# r. R0 y' }
本案例使用Video In to AXI4-Stream IP核將并行視頻信號轉(zhuǎn)換為AXI4-Stream視頻流。
( Y) |! ?7 f9 E5 `: m
( \3 k; O( E+ T* v4 Y1 n% [; z- Z' t: Z. M+ z) g
Video In to AXI4-Stream IP核開發(fā)文檔為產(chǎn)品資料“6-開發(fā)參考資料\Xilinx官方參考文檔\”目錄下的《pg043_v_vid_in_axi4s.pdf》,具體配置說明如下。
o; ^8 i7 J$ I
2 e- \$ n7 {5 |. _" M
- \* a! C% T) g$ a( v5 w' G8 G3 h(1) 視頻格式配置為YUV 4:2:2。
( T+ n0 q5 g& j: p6 b1 j(2) 數(shù)據(jù)位寬配置為10bit。
4 P) }. S. v. I0 q* T! L6 c; z(3) Clock Mode配置為Independent(獨立時鐘)。
1 m3 W$ L3 G: A' Z' z​8 i9 y9 j3 |+ c; r. [9 O
! b* ^5 r# f0 P3 u# ]2 U0 Y. @7 d. d9 [
+ u. [/ T! |- c
7 w3 S! @. l8 q# j
3 AXI4-Stream to Video Out IP核
+ L% q. ^1 Q* L4 O5 h; S9 z8 q6 c( P, u* [) ~
本案例使用AXI4-Stream to Video Out IP核將AXI4-Stream視頻流轉(zhuǎn)化為并行視頻信號。8 A1 `: [' u5 ?" z( D; u" \
AXI4-Stream to Video Out IP核開發(fā)文檔為產(chǎn)品資料“6-開發(fā)參考資料\Xilinx官方參考文檔\”目錄下的《pg044_v_axis_vid_out.pdf》,具體配置說明如下。
/ w+ S0 p+ [# Q9 R, m(1) 視頻格式配置為YUV 4:2:2。, j+ D/ J& L0 m* v
(2) 數(shù)據(jù)位寬配置為10bit。
$ z; _* p8 g- G8 L! m! _ n- ^8 j(3) Clock Mode配置為Independent(獨立時鐘)。$ m3 B5 r* o) O7 e L X% ~; ^
​. S4 {. x8 j, P; e L
; G0 d' a, _- D5 C6 ]" u3 J0 m% _$ T! p" Z! ?# B! l
4 VTC IP核
( t$ Z* ^) ]- ], I D% j, b6 P# _( M; y, g: |3 v2 }) D+ f4 l/ I5 A
本案例使用VTC IP核產(chǎn)生用于視頻輸出的時序。
6 x I4 V) @) tVTC(Video Timing Controller) IP核開發(fā)文檔為產(chǎn)品資料“6-開發(fā)參考資料\Xilinx官方參考文檔\”目錄下的《pg016_v_tc.pdf》,具體配置說明如下。
3 U& [3 E) g5 b9 Q" E(1) 點擊Detection/Generation,確保不勾選"Include AXI4-Lite Interface"及"Enable Detection"。$ u1 F! @* B* f# k: [
% D& B0 M, L6 M" c
' l# v: [! H4 E2 u' H; O
​, g5 ~0 c% Q' d! A5 ?
" w+ v6 H9 M) I) [3 l
% R7 g/ p" a) I2 |$ w, D/ I
(2) 點擊Default/Constant,Video Mode設(shè)為1080p,其余配置保持默認。
$ G( \& z1 l! T# @​
M; ^( f1 f1 ~& | S, j3 _7 ~7 |' G3 L' k+ a; M. l
0 q5 G p7 w) w1 _- t) u, f) ~7 k( { `5 Clocking Wizard IP核
, t8 R0 w% Z: ]1 v! O) u) {5 E: l
本案例使用Clocking Wizard IP核產(chǎn)生用于視頻輸出的像素時鐘(148.5MHz,對應(yīng)1080P60)。
! S( g1 `: n' }0 KClocking Wizard IP核開發(fā)文檔為產(chǎn)品資料“6-開發(fā)參考資料\Xilinx官方參考文檔\”目錄下的《pg065-clk-wiz.pdf》,具體配置如下。
; Q; p$ R8 ^6 [0 C$ B​- G. c1 S5 R2 o8 n+ S. H7 G
$ j8 s" b m6 H \8 O
$ _( w$ R6 [( b. W% P- w
. {1 _) M3 M+ K, f9 ~ e* q4 z. y H
0 Q. g; L+ a8 c7 B7 Y5 z) [+ \●Vivado工程說明; T5 y5 ~5 s) d; O% J' ~( N
9 t. n" A3 r' i" {% y點擊BLOCK DESIGN開發(fā)界面下的"Address Editor"選項,可查看IP核分配的地址,MicroBlaze可通過對應(yīng)地址對IP核進行控制。
1 L- P7 f1 \. n E& G​, j) N' A8 m' [( [6 C! b5 F
: ]! b' g& }! J+ @, P3 l( q3 s4 e* E: w/ |& m
Vivado工程頂層文件為"hw\project\sdi_capture_display.srcs\sources_1\imports\hdl\sdi_capture_display.v",關(guān)鍵代碼說明如下。# W! V6 g- q0 }
5 n, g9 k- s. [# P7 V, i$ f: l
, D9 M$ B3 O; v7 H# M# x2 r/ K
(1) 定義模塊接口。
8 O/ Z/ G, |# a​& a0 o1 f% h7 y, s
* Y q2 `3 U f2 \% q- f
2 e/ j0 d# @2 V" B- L4 Y
(2) 使用STARTUPE2原語輸出復(fù)位信號。6 R$ M% j5 O+ p, e
​
4 b' t3 A! Q% v
' K9 e' k, h- L! z$ @! v2 E2 B
# h4 V( M3 m6 {1 ^+ d# \1 u# P
3 z+ Q1 k" d+ _. @- g# _* i# h# d/ V8 c2 x8 [
(3) 調(diào)用Block Design。# J0 B" Y. ~( J1 m1 t2 T0 A+ h
​
* k/ `2 ?7 w6 p9 f
6 v. {( G% B9 M, r
' R6 y5 x# \- C/ x' p​* W* N2 `' T$ S+ x
6 f- C. H3 O9 R( l% l2 L
# t3 z/ x# m- L. B% t) R ?! t |
|