电子产业一站式赋能平台

PCB联盟网

搜索
查看: 3163|回复: 0
收起左侧

Kintex-7、Zynq-7045/7100评估板如何实现FPGA的两种SDI视频方案(GTX+外接芯片)

[复制链接]

678

主题

902

帖子

8293

积分

高级会员

Rank: 5Rank: 5

积分
8293
发表于 2021-2-4 20:56:52 | 显示全部楼层 |阅读模式
前言% R0 [' C" K  k7 q9 H

2 `& ^/ Z+ ?- d7 p- G9 x
$ x: w' S! l! `, W" ?! ]5 O9 F

& Y" V5 Y  V: F% z! QSDI接口,全称是“数字分量串行接口(Serial Digital Interface)”。按速率可分为标准清新度SD-SDI、高清标准HD-SDI和3G-SDI,其对应速率分别是270Mb/s、1.485Gb/s和2.97Gb/s。目前在航空航天、军事、医疗、交通等领域,SDI的应用广泛度仅次于CameraLink接口。' @( X1 \% i. l0 j0 {
% o! X" T# l8 k
​8 u$ x! r. e6 A% U/ B' {" @

! |, k5 l( m/ Y

' e0 v4 q2 V3 m& T( n
! F0 o) ]! H' @
# S3 [5 j& |2 A/ U" m1 e- k4 o
SDI接口优势:) f$ g" l) p. V' N* O
(1) 消耗GTX更少,消耗IO更少
4 }+ {4 a: b+ r2 N; b/ ~8 r如果使用GTX总线,仅需1对GTX,而HDMI则需要3对GTX。CameraLink接口由于走LVDS信号,Base模式下需要11对LVDS信号,Full模式下需要22对LVDS信号,消耗IO数量比GTX SDI多了很多。( D5 a( o$ ]9 \; G
(2) 传输更稳定
$ _; k* C( q( o8 V' ?0 `5 t相较于HDMI接口,SDI接口的自锁扣设计更加稳定可靠,不易脱落,不会因人为因素造成信号中断。
- }) e- L, S4 Q$ F; F(3) 传输距离更长
& Y- @# ]* b6 m6 u) Z) h串行接口是指逐位数据的顺序传输。它的特点是通讯线简单。只要一对传输线可以实现双向通信,特别适合于长距离通信。从理论上讲,SDI的传输距离可以达到100m。
, \: h  J1 d* E6 e(4) 成本更低* i: e+ F/ c0 M9 C
SDI接口平均每米价格约为4元,相较于HDMI接口的平均每米价格约为10元,SDI接口成本更低。
* Y+ P$ l/ e4 D, v, x' m* I
; L! W1 Z* v% p( R" d4 W! A) g

# m( \% B; j% i# |创龙科技(Tronlong)的Kintex-7、Zynq-7045/7100等FPGA板卡通过FMC视频模块已实现两种SDI视频输入/视频输出方案:GTX +外接芯片。本文将为您分享基于Kintex-7 FPGA评估板、TL2971A/2972F视频模块的3G-SDI视频输入/输出开发案例,使用外接芯片方式。TL2971A/2972F视频模块模块亦可支持GTX方式。
# U7 A5 q9 L: W- j' U2 ]
* v4 y; g2 w8 M. ]) @4 I- ~
6 @' I; G  i6 }& X+ E# A

  g- I7 d' Y$ l) g0 N% c% o: i

. n4 f: K7 ~; M●硬件平台( X! l# W0 ?2 ^- _+ X' T" `. w
( X8 o: q, M: e
5 C6 T4 w# \+ q5 s& h7 t
: J& \& f/ d; x. t$ }
1 TLK7-EVM评估板6 Q; M$ c4 l  I3 A6 _6 E8 j1 b( Y

: M! U, Y. _$ K% E* h8 q本文基于创龙科技TLK7-EVM评估板、TL2971A/2972F视频模块进行演示。# b( Y$ a' q) l7 P% q
TLK7-EVM是一款基于Xilinx Kintex-7系列FPGA设计的高端评估板,由核心板和评估底板组成。核心板经过专业的PCB layout和高低温测试验证,稳定可靠,可满足各种工业应用环境。
. Z7 D, Q6 [- Y' i+ {5 [+ I评估板接口资源丰富,引出FMC、SFP+、PCIe、SATA、HDMI等接口,方便用户快速进行产品方案评估与技术预研。
5 c8 N0 s3 e8 T. d# A可申请TLK7-EVM评估板进行快速评估,点tronlong.com/Product/show/93.html,免费哦!
+ P7 N0 o. ~5 @7 D' _- B​' w. K. ]6 J$ N) H# K5 C

3 f: Z- {, v7 J9 V$ {$ C6 V

( U/ v0 V, F3 {3 u) B! j% i TLK7-EVM评估板
1 n0 l* r  j) l, F6 J* _9 P. U$ e" ]3 d4 E% U
6 b8 p) v- L( ^, M0 ?

6 O& W. X' c: k- }! E2 TL2971A/2972F视频模块8 X: w, r6 F. x9 _7 v- l) f' @
+ C% T" }+ v; N, V; f4 D9 V( M6 K
TL2971A/2972F是一款基于FMC LPC标准设计的3G-SDI视频输入/输出模块,与创龙科技Zynq-7000/Kintex-7/Artix-7等评估板配套使用。以下为此模块特点:- d$ e, `. ]* p; G5 ?$ g/ r0 J
(1)通过GTX高速串行总线引出1路SDI视频输入接口,最高支持2.97Gb/s(1080P60)。5 N( t( c5 k3 a, o# H
(2)通过GTX高速串行总线引出1路SDI视频输出接口,最高支持2.97Gb/s(1080P60)。
! n; G8 Q; D8 W: M0 Q7 I* }, ?3 T(3)通过GS2971A芯片引出1路SDI视频输入接口,最高支持2.97Gb/s(1080P60)。
1 z3 {5 A% `5 R9 H5 I' k9 C(4)通过GS2972芯片引出1路SDI视频输出接口,最高支持2.97Gb/s(1080P60)。
: Y: l$ L8 g# r) f(5)采用标准BNC连接器,支持视频设备热插拔。$ N1 _) e* m4 u0 @# t3 X) i
​# O' _' D" ]/ \; v* b# W  s4 h
( P4 D* a0 r+ L) Z0 ~# `( y

) I$ N9 ]" j0 _, a7 l7 |TL2971A/2972F视频模块9 Y) k) H& V; l. ~5 R' ]
! r/ j3 e% |/ f/ u6 B* J3 o; w0 a1 @1 U

) w# J( T: {& d& U+ A
1 q" v% N- Z/ O$ i! ]6 Y' H* G+ i

" s/ S2 y# i0 ^3 Q% g- S7 I! v
& `# s8 v) F* O- I
+ M, B- j; Q7 _2 W3 Q7 G6 \+ s8 M, r
●案例功能
/ \2 S. i% ]1 {; D5 x

) J# v' U- E: Q- |: Q4 A
( q" o) X& q* G
) R* Q& e! x- S
本案例为通过GS2971A、GS2972芯片引出SDI视频输入、输出案例。通过GTX高速串行总线引出的SDI视频输入、输出案例即将发布,敬请期待。/ F0 l( j9 D* o6 ^1 A
案例功能:评估板通过FMC视频模块TL2971A/2972F的SDI IN接口进行1080P60视频采集,并通过TL2971A/2972F模块的SDI OUT接口将采集到的视频进行输出。案例源码、产品资料(用户手册、核心板硬件资料、产品规格书)可点:site.tronlong.com/pfdownload获取。
  J) i4 c2 Y9 ?, T1 O
: U; I* N" [" W
. P$ M8 M4 A* g1 Y1 y7 ]& b9 v" u
开发案例主要包括:
# b3 B% ~! t8 e2 `! G6 ]  J9 N  V1 cl CameraLink、SDI、HDMI、PAL视频输入/输出案例
$ n) ]) W' y+ U/ j$ ol 高速AD(AD9613)采集+高速DA(AD9706)输出案例
- k% n2 e' K# `) l" j- }l AD9361软件无线电案例: x; b# h( {0 @& r7 I) i( [
l UDP(10G)光口通信案例
$ L9 E* I4 L6 Y6 H* v4 P5 |l UDP(1G)光口通信案例/ w" `6 a8 [' I1 B
l Aurora光口通信案例* n' _* k& H& V2 ]
l PCIe通信案例
6 T- v' ^$ F2 Z: z, B  X4 s* \1 S# p$ i) ]7 r) o4 S

5 b$ t+ ^5 s9 m2 l- `. Y  h

9 ~. A" y+ b& z/ ?& T1 w* k; D0 N●案例演示! a  {) \$ b# S9 p: |) u: D0 u" B1 y
* y$ j  k, H1 e7 c6 u  @+ x
将创龙科技的TL2971A/2972F模块连接至评估板FMC1接口,评估板J1跳线帽选择3.3V档位,以配置FMC IO的BANK电压为3.3V。
! ^! w* G- ?0 G" d/ T3 m# ~) s/ r7 q准备一台拥有HDMI OUT接口的PC机(例如笔记本),通过HDMI数据线将PC机HDMI OUT接口连接至HDMI转SDI模块(厂家:玩视,型号:3G HDMI TO SDI Audio)INPUT接口,PC机HDMI OUT接口用作图像输出。通过SDI数据线将TL2971A/2972F模块的SDI IN接口连接至HDMI转SDI模块的OUTPUT接口。
3 @: d) Y+ }; j3 R  `9 o4 E# C" R! b$ Q7 s" j/ ^

; [$ M& u- j0 q6 q6 V3 _2 d% p8 l通过SDI数据线将TL2971A/2972F模块的SDI OUT接口连接至SDI转HDMI模块(厂家:玩视,型号:3G SDI TO HDMI Audio)的INPUT接口,再通过HDMI数据线将一台HDMI显示屏连接至SDI转HDMI模块的OUTPUT接口,HDMI显示屏用作图像显示。
  Q8 P: f; e9 n/ Y  i- f, O3 g% E1 Z* S. h  O/ H4 }

. t) J$ k2 f) E- P4 I; [- H; i2 K, v5 m7 m- o2 W' b

! m# z" c) V" ^) Y/ G9 \6 \​, a/ \4 x  u1 G2 M+ r3 |1 l
8 [  ?. N) C/ H# B& K: M

1 E3 l6 B$ `8 d( o3 p​
: \, J" Y3 R$ A! F" j
/ @- k, R7 E: |/ N" d

0 \) I5 q) U# E+ {
9 Q' }& y6 N- r  }1 g5 V

8 o8 p5 o1 ]: v5 S运行程序,即可看到串口调试终端打印如下信息,然后在PC机的显卡设置(或图形属性)中,按照下图设置HDMI分辨率为1920x1080、刷新率为60pHz。  L' B! s. G0 m+ b" ^
/ z' o" u: z$ n" H* {

+ \0 i; I8 S- e/ R- C7 ]​9 H; D# q+ ]/ [/ e

+ e+ O* @$ w" {' [# {( X  F0 r
' |: b" N# v3 m( Y& ?* p" U

9 t$ {: i7 e: [( R8 j3 K( _) l1 ]
# A/ k4 N5 `5 w0 c
​- @( I& N  N3 w

% \3 j& G; W7 q3 A" M

1 X( |' i& }' W& r此时,HDMI显示屏将显示PC机HDMI OUT接口输出的图像。! F6 G- N% d  M8 Q9 h
​
* j; U1 ^4 ~( B" E* V& U0 ?6 ?) V5 k

' B! @- g- \5 x1 R/ m0 m​
* r" F% j" r+ L8 p) C6 r
2 ~$ j- l  u, k+ f- a

6 h. H/ x: ?2 \1 c●关键代码(MicroBlaze)
) y0 _! k5 t' Y' }* c
( W# ?, i/ x$ a1 i  I2 ]( T3 f" P
MicroBlaze裸机源码为"sw\baremetal_demo\project\sdi_capture_display\src\",关键代码说明如下。
( a* g+ W/ v9 K+ y' ^0 l% {8 J, W' ?1 B

. ^% h* g9 @4 X1 M(1) 初始化VDMA,将采集到的视频数据缓存至DDR,并将视频数据搬运至AXI4-Stream to Video Out IP核,再进行SDI视频输出。
1 p1 e* m( L$ C, R​1 [" W  t/ j9 Q& V  T( u
● IP核配置
7 }1 P( g  Q2 d! @+ C

, G7 i2 I3 Z0 T! S& l. @! E1 VDMA IP核
$ Y% |4 f0 ]* e8 p8 o+ q" J& u

+ g+ K% R  l& S6 K/ ^* T$ B6 T本案例使用VDMA IP核进行视频数据缓存。
! s1 ?9 S5 C* {5 f/ O$ U- NVDMA(AXI Video Direct Memory Access) IP核开发文档为产品资料“6-开发参考资料\Xilinx官方参考文档\”目录下的pg020_axi_vdma.pdf,具体配置说明如下。# l* b! U  l3 j" B+ T" q
(1) Frame Buffer配置为3个。
( X) z4 U) l  Y8 ?2 m% Z(2) Write Burst Size、Read Burst Size均配置为16。' A( n2 a9 q6 S5 y2 _5 w6 Y
(3) 读通道的Stream Date Width配置为24。
' a( L1 o! P+ W  E(4) 读/写通道的Line Buffer Depth均配置为1024。
  h6 j+ }% ~! W1 r- c9 Y3 V, D​
$ G: M; g0 B5 x* ]6 }- L, c1 f7 R. q( x/ A8 }2 E
  Z" f/ y' y, D
(5) 点击Advanced,保持默认配置,即可避免VDMA同时读写同一个Buffer,造成视频数据传输乱码。
8 M: O* a4 E+ D+ D" X0 Q1 F! i
& X8 ~1 o1 B5 C  U

2 e5 G; d$ p% O( j( y' u& `& j8 F​
% Q# r+ P+ {( {3 u$ E* H
  y1 e' d9 D5 r# r, p3 ]3 X9 D
0 H' F: T; E/ H. H3 R
2 Video In to AXI4-Stream IP核, k9 z5 J4 F6 x# G) h0 p- Y

. E! |; ~, b2 L# A本案例使用Video In to AXI4-Stream IP核将并行视频信号转换为AXI4-Stream视频流。( q2 C  W: S2 G' p: ^8 U' l5 _

' S3 G, p# j1 _4 D0 G! ?& ?3 M' F

, o4 B; g1 @4 n1 `1 N* AVideo In to AXI4-Stream IP核开发文档为产品资料“6-开发参考资料\Xilinx官方参考文档\”目录下的《pg043_v_vid_in_axi4s.pdf》,具体配置说明如下。
* e9 j/ o3 Y7 p/ t9 O
4 |/ A0 t0 _2 Q+ g+ w! _

9 i  s7 m6 q4 U(1) 视频格式配置为YUV 4:2:2。
5 z# A  b& O- o7 j5 |(2) 数据位宽配置为10bit。
- N+ k$ I* R$ T4 s$ b(3) Clock Mode配置为Independent(独立时钟)。9 b0 ]. C5 E5 b; z& w
​# p+ ~1 U" Q4 q' t4 v0 l4 j9 O( x; K

+ K9 s% Z5 Y( J( A4 i# [3 Q; z
0 B8 @8 Z2 c# q) K; u
0 g; b! {5 D) O8 `5 x0 w
# \* b7 Y/ D3 M1 z
3 AXI4-Stream to Video Out IP核
6 @7 M3 T& b( `1 V: Z

4 k5 R9 R4 m6 |本案例使用AXI4-Stream to Video Out IP核将AXI4-Stream视频流转化为并行视频信号。
# l$ O8 c9 S& ~' EAXI4-Stream to Video Out IP核开发文档为产品资料“6-开发参考资料\Xilinx官方参考文档\”目录下的《pg044_v_axis_vid_out.pdf》,具体配置说明如下。9 ]) r5 X; Y/ L  k. W! v' K% }
(1) 视频格式配置为YUV 4:2:2。( R+ @/ f, }- ?6 f
(2) 数据位宽配置为10bit。/ S  ?  b- f' K' O
(3) Clock Mode配置为Independent(独立时钟)。, p4 }1 X! P# ~# o0 k( I: P0 r
​
5 ]6 [$ i' V2 _+ c3 Z  B! S' T$ b3 u' n8 _. A4 s
3 ^+ ~' a# B' x3 j' s
4 VTC IP核
" L' L3 m% e8 V4 r( [: R5 x. Q! Q
" o4 g  {$ g1 Z  P
本案例使用VTC IP核产生用于视频输出的时序。
: R+ r3 M% c! j( N  i4 f# p/ dVTC(Video Timing Controller) IP核开发文档为产品资料“6-开发参考资料\Xilinx官方参考文档\”目录下的《pg016_v_tc.pdf》,具体配置说明如下。: B" f2 l9 ^$ K: k% y8 t
(1) 点击Detection/Generation,确保不勾选"Include AXI4-Lite Interface"及"Enable Detection"。) i5 y! z7 d: }" t  d& D  D
1 o  @1 b- O* l
/ i- g" O# Q8 F+ x4 }2 G
​' {3 F" X  O( o0 f% b- X( k  W1 ~

* o. e% E6 x6 b% k( s# _( B6 c

: |6 _! `1 ?$ a(2) 点击Default/Constant,Video Mode设为1080p,其余配置保持默认。$ f3 q# Y" n' M% x
​& E3 J8 j) q6 {# l' W0 M
, U% f* o% U  |, ^9 L

2 j/ M2 f) j7 r5 Clocking Wizard IP核7 Q) j: k+ k" M/ r
  ^( i# p9 T& I/ ~
本案例使用Clocking Wizard IP核产生用于视频输出的像素时钟(148.5MHz,对应1080P60)。3 ^* Z6 G, l3 z% _+ `  Q
Clocking Wizard IP核开发文档为产品资料“6-开发参考资料\Xilinx官方参考文档\”目录下的《pg065-clk-wiz.pdf》,具体配置如下。
6 ?+ o( g0 Y" N​* j% q* h5 {* ?* ~- x5 D

9 Z- _1 T! Z0 h" v# K
# h* x; `% n( D0 O: G- L2 ^4 a
8 k# G/ `8 s& S4 b/ F) ~* t
& l6 |9 B* L9 d$ H4 ~+ m0 e% z
●Vivado工程说明6 ]! ]: `+ R1 \7 U; o: K/ ]

5 s6 g" ^* ~4 W' U6 B! r6 G. s点击BLOCK DESIGN开发界面下的"Address Editor"选项,可查看IP核分配的地址,MicroBlaze可通过对应地址对IP核进行控制。5 U: W7 v9 U' v& B
​
2 l) D/ `# B. o/ n5 k& `) w. {0 I$ g* \  q5 w$ x

: p3 o+ N5 J0 q3 [3 v" H& t& wVivado工程顶层文件为"hw\project\sdi_capture_display.srcs\sources_1\imports\hdl\sdi_capture_display.v",关键代码说明如下。
/ L7 @2 H$ ^( b/ P4 G+ E8 N% a- c6 Y  b6 E" Z' W" u1 A
* u  E$ A. [% X+ i; J
(1) 定义模块接口。' O# Q% p7 H7 U# X* z
​
+ n: J. u! G9 A2 M( O2 a
; @& ]9 t( R. _) C4 ~
0 ~$ Z6 `9 s6 `. u8 S6 q
(2) 使用STARTUPE2原语输出复位信号。3 g8 P: h) m2 t. ^. n$ A* L9 K
​1 p" E- P6 O  T1 [5 P

6 j6 Q) ]: ^1 B0 J0 M' Z; w

. Y) E9 ?7 E7 B7 ]7 P. J; N
; f$ H0 F3 ?4 e. _" Z$ X' j1 Q9 Y

3 U4 @" t5 E( w0 {  Q- G(3) 调用Block Design。, b4 q1 r9 g' l
​
- c- a: E# _* H! O3 w1 @, y9 g9 Y
( K4 e; Y' R: s1 x  ^8 k3 L
​
7 z, w  p+ K& c7 v
$ a7 f2 W5 @1 F
( l1 i7 ]+ t3 i0 K( ~5 U1 B
嵌入式DSP、ARM、FPGA多核技术开发,学习资料下载:http://site.tronlong.com/pfdownload
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表