电子产业一站式赋能平台

PCB联盟网

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

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

[复制链接]

678

主题

902

帖子

8293

积分

高级会员

Rank: 5Rank: 5

积分
8293
发表于 2021-2-4 20:56:52 | 显示全部楼层 |阅读模式
前言0 E6 v9 Y" a) s! c7 p

' @2 X  J% s, u  m, p9 a* E- M/ s. Y. f0 }, n
* o" x! b7 i. E  ]5 |
SDI接口,全称是“数字分量串行接口(Serial Digital Interface)”。按速率可分为标准清新度SD-SDI、高清标准HD-SDI和3G-SDI,其对应速率分别是270Mb/s、1.485Gb/s和2.97Gb/s。目前在航空航天、军事、医疗、交通等领域,SDI的应用广泛度仅次于CameraLink接口。
6 k3 Y9 Z& x3 z% }+ z; n: s: w5 y* Y0 r! X: D
​
0 l; S! u0 t) x! R' l4 C" i
, j, P& ^* D5 p' r) O1 u. ]

/ p4 ]3 B1 U, C- I/ u: K. z- D3 f  H# e: \  D/ J5 H
$ R* K/ S6 T4 O9 d8 Q; |
SDI接口优势:6 U2 J3 O4 u, c1 v: z: B# {
(1) 消耗GTX更少,消耗IO更少: D8 j3 F, G2 r: Q5 ~4 G
如果使用GTX总线,仅需1对GTX,而HDMI则需要3对GTX。CameraLink接口由于走LVDS信号,Base模式下需要11对LVDS信号,Full模式下需要22对LVDS信号,消耗IO数量比GTX SDI多了很多。( R" {- w) Y& v& G) |
(2) 传输更稳定9 c8 [0 V$ G+ d2 W$ o# s/ G
相较于HDMI接口,SDI接口的自锁扣设计更加稳定可靠,不易脱落,不会因人为因素造成信号中断。" Q, m! X$ p( S6 w5 k
(3) 传输距离更长
' F$ @1 a1 s; T& v% r串行接口是指逐位数据的顺序传输。它的特点是通讯线简单。只要一对传输线可以实现双向通信,特别适合于长距离通信。从理论上讲,SDI的传输距离可以达到100m。0 v9 _- Q6 v1 c$ I4 q1 @
(4) 成本更低
5 P, d7 \9 b' X" B+ o2 lSDI接口平均每米价格约为4元,相较于HDMI接口的平均每米价格约为10元,SDI接口成本更低。
1 d7 x4 s; _( u2 Q0 b+ K" \
) a& R% A  B. j6 K" n) ~; j- A' g

% y. a5 B9 Q- J4 I创龙科技(Tronlong)的Kintex-7、Zynq-7045/7100等FPGA板卡通过FMC视频模块已实现两种SDI视频输入/视频输出方案:GTX +外接芯片。本文将为您分享基于Kintex-7 FPGA评估板、TL2971A/2972F视频模块的3G-SDI视频输入/输出开发案例,使用外接芯片方式。TL2971A/2972F视频模块模块亦可支持GTX方式。$ S, N  ~# H. I9 @8 m/ e

8 c# B+ M. g- T" S* W* ?& J

$ e# Y9 P# S, A* x! [9 x3 d$ I2 |: {9 W: E9 l0 x! e/ e1 p0 t
* F  q' i2 N9 Y& E$ U! M8 h
●硬件平台
( @  z+ X) ^% E6 D2 v6 [: E( x
2 \4 Q) b4 J+ [) p& k7 H
+ d: ^, u( S# ~% ^& i  {
2 J3 a/ k2 P4 u/ H
1 TLK7-EVM评估板
2 v: b" K4 `# }' O$ a  M: [
# @0 Q# O' I# l8 h6 _, f' v5 [1 ^1 B
本文基于创龙科技TLK7-EVM评估板、TL2971A/2972F视频模块进行演示。
& n* B, O2 H" DTLK7-EVM是一款基于Xilinx Kintex-7系列FPGA设计的高端评估板,由核心板和评估底板组成。核心板经过专业的PCB layout和高低温测试验证,稳定可靠,可满足各种工业应用环境。
8 m( {' P4 B0 e/ |评估板接口资源丰富,引出FMC、SFP+、PCIe、SATA、HDMI等接口,方便用户快速进行产品方案评估与技术预研。
, m! g& ^5 d" C7 u( z! d$ i- k( M% s8 Z可申请TLK7-EVM评估板进行快速评估,点tronlong.com/Product/show/93.html,免费哦!  P7 T! _( `! }
​' g1 [! }/ A( R6 V4 c
7 o' ?* a6 _7 {
  f. S' g8 D! }; ]5 z: m
TLK7-EVM评估板$ P5 x: B; U/ k) j: m9 {2 C, b

$ e  B1 H  Z3 a5 a- p5 t% _$ x. O
5 \" w) R( F# }5 y" ], L
% @9 R5 {( s2 j/ G
2 TL2971A/2972F视频模块9 k+ E% ^, b4 b

$ y+ ^1 w. B# V1 i/ D8 Y$ L# _TL2971A/2972F是一款基于FMC LPC标准设计的3G-SDI视频输入/输出模块,与创龙科技Zynq-7000/Kintex-7/Artix-7等评估板配套使用。以下为此模块特点:2 j7 o2 v8 Z( u+ I2 T7 R
(1)通过GTX高速串行总线引出1路SDI视频输入接口,最高支持2.97Gb/s(1080P60)。2 ?5 B/ y: S2 Q. d: I
(2)通过GTX高速串行总线引出1路SDI视频输出接口,最高支持2.97Gb/s(1080P60)。$ X+ i, Z! y3 G
(3)通过GS2971A芯片引出1路SDI视频输入接口,最高支持2.97Gb/s(1080P60)。8 h9 e- h  y  E2 O) u; [3 @
(4)通过GS2972芯片引出1路SDI视频输出接口,最高支持2.97Gb/s(1080P60)。/ e3 Y' P% y4 z+ q9 ~
(5)采用标准BNC连接器,支持视频设备热插拔。0 I5 D2 o! C- [* D2 ^' v; V
​
0 i. z. \5 M6 V6 K3 I0 y
% b1 w! ?9 n3 x, G# f" K6 s, b2 q

5 t. [% m' i" X8 _* U5 cTL2971A/2972F视频模块/ U7 r0 n+ H: n  e+ v

, y2 g) d% \7 E# U, A  q

- o- E% Z( u, O' z4 g- n; @% n, k# c

* v; l) |0 d: g$ u  n6 G" V% S& L/ T# |0 @( R/ F* g
4 j! w- i0 {2 \
●案例功能
0 A8 m5 |, k; r: A1 }4 z
% J6 b" W8 y/ i  F8 m( z

7 G% X$ |* H5 ^  o: h
6 s* k& z; S' I2 u; U7 d* _4 w
本案例为通过GS2971A、GS2972芯片引出SDI视频输入、输出案例。通过GTX高速串行总线引出的SDI视频输入、输出案例即将发布,敬请期待。
5 k9 S  c9 Z. v: ~案例功能:评估板通过FMC视频模块TL2971A/2972F的SDI IN接口进行1080P60视频采集,并通过TL2971A/2972F模块的SDI OUT接口将采集到的视频进行输出。案例源码、产品资料(用户手册、核心板硬件资料、产品规格书)可点:site.tronlong.com/pfdownload获取。$ {- J5 l+ p" G3 ~0 u* {7 E$ {9 M
2 d; }9 c# a! m. ]
8 u" g: y) S) g4 x& P1 s1 y9 j
开发案例主要包括:! h2 K' J/ v* u9 O
l CameraLink、SDI、HDMI、PAL视频输入/输出案例
; ?7 B" `; C9 Y+ z$ G6 Dl 高速AD(AD9613)采集+高速DA(AD9706)输出案例- ]5 O. C& i  E& V* H
l AD9361软件无线电案例( j* }, Z+ C+ m2 x8 @
l UDP(10G)光口通信案例9 O! d) t) m6 o& u6 U1 _4 l
l UDP(1G)光口通信案例- G3 x6 J4 ~! x7 E  R) b+ ]
l Aurora光口通信案例
6 l  L- e5 E  k2 ]) g0 F$ ~l PCIe通信案例
" B3 D7 P6 ?# L: o, ?' U+ P9 \9 a1 d/ h. l$ g. I1 U, V8 g

& ~% {* z2 Z0 K, C. ?2 c
( y9 a4 f6 }- }, l" v  V
●案例演示$ p" \. S. c. b# U' g  Q+ Y- t. ^

1 r  H0 f; P+ {4 o  y将创龙科技的TL2971A/2972F模块连接至评估板FMC1接口,评估板J1跳线帽选择3.3V档位,以配置FMC IO的BANK电压为3.3V。
0 X6 v2 w  B0 R& z0 f准备一台拥有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接口。  i0 M6 L# M0 q) }2 f
7 k7 ^0 o1 E/ t3 Z; f1 j# E; h
% g$ F6 d( A- j* G  K4 p
通过SDI数据线将TL2971A/2972F模块的SDI OUT接口连接至SDI转HDMI模块(厂家:玩视,型号:3G SDI TO HDMI Audio)的INPUT接口,再通过HDMI数据线将一台HDMI显示屏连接至SDI转HDMI模块的OUTPUT接口,HDMI显示屏用作图像显示。
. u* Q  `$ D* ^9 _
1 I8 B1 w( j# Y" s4 Q

& q- Z$ o2 M" D4 ^8 Z2 N0 w7 A
6 q: |3 Q$ g3 m: h  {2 p
; b! ]; b) p4 H- @& o& v/ M
​
* ?+ @: b# x' J+ Z" n8 a/ |" l/ n) J  q; V, j

! q, s/ E& [6 W* ~6 W. d​( w( K7 c# _9 b" c5 a3 w
* H; A7 q5 _$ d0 i
4 F' \+ y3 w$ U

' n- P' G- ?% ~+ I( t5 y. r+ K  V) _

1 @6 h. j  Z: V: r运行程序,即可看到串口调试终端打印如下信息,然后在PC机的显卡设置(或图形属性)中,按照下图设置HDMI分辨率为1920x1080、刷新率为60pHz。
* k$ I( x' ]# Q( f, D$ a% B' ?$ U& |* E! `1 J# t* e0 M+ r
; n9 H6 E. ^1 h  d( O1 @' H
​$ D8 h1 n* r1 s2 c5 s: _; l% o
, q8 d  K7 J/ e8 M) h/ z
6 ~$ o& o: W/ Z

; B' Q: F( L: ^  F. G4 y6 {

" I0 H4 K  H. q​
1 z  t% v3 D4 [: Z: ?0 e3 k1 x0 d: ~; G6 X9 X. i; Q# W5 J
5 a& q/ ?% U, L0 m2 E7 e
此时,HDMI显示屏将显示PC机HDMI OUT接口输出的图像。. I' e6 _1 H  I6 q
​% ~" P4 e3 M; C: f
1 k4 v- _; n5 T  t

, a; k4 @/ L2 i  x( B​4 J; j. x% p. [# \% T7 v

) L1 @, s; z$ R9 N' S% |
$ s+ D( j8 h( _2 {: f* E
●关键代码(MicroBlaze)/ }3 p, P( O! i

# a) N- N) ^) u+ e1 y5 x' Q$ t. FMicroBlaze裸机源码为"sw\baremetal_demo\project\sdi_capture_display\src\",关键代码说明如下。  f% W$ U/ u; m" ?9 [
2 ?9 P: Z4 G- \# A6 T

8 M  @# Y5 E7 g# X# K; A# f. ?(1) 初始化VDMA,将采集到的视频数据缓存至DDR,并将视频数据搬运至AXI4-Stream to Video Out IP核,再进行SDI视频输出。
4 F4 S8 n6 U! ^& G& b# ]/ a​
9 f! i+ d; W3 D5 m● IP核配置
, o% Z5 ]  ^/ [: }) ^6 q
+ S1 J& ^4 v1 K7 ^1 E
1 VDMA IP核, r9 |! f5 ~: r2 t* G

+ T' x/ R# Z/ u! \# N本案例使用VDMA IP核进行视频数据缓存。
6 q" \/ l9 A- b' `VDMA(AXI Video Direct Memory Access) IP核开发文档为产品资料“6-开发参考资料\Xilinx官方参考文档\”目录下的pg020_axi_vdma.pdf,具体配置说明如下。
  K/ c3 i! N  Y7 n(1) Frame Buffer配置为3个。
: Q& c. @6 X$ v  }2 j) D(2) Write Burst Size、Read Burst Size均配置为16。9 A- e# M! E# n9 s  h& F
(3) 读通道的Stream Date Width配置为24。
4 {! Q' `2 I  g1 ~* j) A9 m3 [(4) 读/写通道的Line Buffer Depth均配置为1024。
+ n0 n" E& |/ J- M& _" z% f  r​( Z+ g4 R# ]5 f6 ]5 {$ M+ k0 P

! Q' M# \5 I$ D" K. h, d! s0 C

; X' Z; a: E% C! o+ h(5) 点击Advanced,保持默认配置,即可避免VDMA同时读写同一个Buffer,造成视频数据传输乱码。0 [4 n( Q" H" V/ p* |

' a" w9 U# @7 k

* J8 r! y: o" `0 s* h​9 r2 k0 Y$ I0 a/ K

$ e; T( [/ A! {# |% `/ u0 v

1 P5 v! X( R9 W2 Video In to AXI4-Stream IP核
# P  |0 c7 C$ Y  y) u3 H
/ e4 v( w. f/ a
本案例使用Video In to AXI4-Stream IP核将并行视频信号转换为AXI4-Stream视频流。+ v9 k' a3 D/ A- @( a5 t
  ^( h! u# f0 R
5 q) [! Q# f% O1 \8 F/ o  z. v2 d; W
Video In to AXI4-Stream IP核开发文档为产品资料“6-开发参考资料\Xilinx官方参考文档\”目录下的《pg043_v_vid_in_axi4s.pdf》,具体配置说明如下。1 ?; z$ {( {) E9 a
- D: V* }7 d+ v1 N

9 r+ F; }. D, M8 i! k. F(1) 视频格式配置为YUV 4:2:2。' @  }, D/ W" L: j. ?
(2) 数据位宽配置为10bit。5 v3 D3 j" b0 b9 W! Z: u7 O
(3) Clock Mode配置为Independent(独立时钟)。! _6 z0 o* W6 a" z+ F2 M' K
​
! ^3 _0 Y3 C( R3 ]' W3 y' _: \# Q, q; Z' A* F3 Z4 w% i7 }9 M

: P1 ?7 T+ D& t/ b( y; }# H
. g+ G6 E( D: Q0 a, l% O6 ]6 b

) r; q: N- y, j+ \6 E% G$ O3 AXI4-Stream to Video Out IP核
+ N3 }' E+ _7 N# w7 G, }! v
  C- Y4 S- G3 x
本案例使用AXI4-Stream to Video Out IP核将AXI4-Stream视频流转化为并行视频信号。
  c7 l# `4 X; R6 p3 F( I) B& v( S' sAXI4-Stream to Video Out IP核开发文档为产品资料“6-开发参考资料\Xilinx官方参考文档\”目录下的《pg044_v_axis_vid_out.pdf》,具体配置说明如下。- o" ~" }4 T- s  f# I/ |  }% Z
(1) 视频格式配置为YUV 4:2:2。
+ L$ k5 u" w1 n. j( {(2) 数据位宽配置为10bit。
% y$ R0 |  m- [- n9 l5 s% j(3) Clock Mode配置为Independent(独立时钟)。$ G4 c3 z; x% R& `
​8 B) x8 I9 t- q' I2 c8 A  ^+ H1 |! G
) \; x, l. m9 m; F" _
/ B2 Q6 Y8 c$ c
4 VTC IP核
) ^8 z8 g- X( u! D' |" w

# K$ k1 X7 h+ I" `8 G本案例使用VTC IP核产生用于视频输出的时序。( n% k9 f3 j/ F. V
VTC(Video Timing Controller) IP核开发文档为产品资料“6-开发参考资料\Xilinx官方参考文档\”目录下的《pg016_v_tc.pdf》,具体配置说明如下。3 V4 _: Q' U# x6 _. Y: A
(1) 点击Detection/Generation,确保不勾选"Include AXI4-Lite Interface"及"Enable Detection"。
) f* n/ }/ l, U: @/ f  q0 h6 Y
  p& T- S: N7 t7 @) `+ ?
2 _% Q6 Q7 J3 \6 W# G' ?. I7 R. P
​
0 ~. R/ L: @8 f; O! S' I4 ?2 `7 u  o/ }

  B) l+ z4 H: {0 G: _(2) 点击Default/Constant,Video Mode设为1080p,其余配置保持默认。. c  ?! P4 J3 g
​( S: B8 N  @5 w+ m# z

4 Z" D! D6 g  m# B4 i" q* h
. w0 @) @* Z3 L. e4 [
5 Clocking Wizard IP核
' J2 |; a1 t2 |0 {
9 ^( E8 G, _+ ]: g4 X) A1 }$ ~
本案例使用Clocking Wizard IP核产生用于视频输出的像素时钟(148.5MHz,对应1080P60)。8 r! t" ]. _5 E: m
Clocking Wizard IP核开发文档为产品资料“6-开发参考资料\Xilinx官方参考文档\”目录下的《pg065-clk-wiz.pdf》,具体配置如下。
( N4 M( r7 z6 T5 e​
2 Y! F) H, `+ e3 Y0 W) S6 e
) [* U: j8 m8 d
( E+ O, U) L  H4 c; e. K
1 N6 C$ i) O6 y( E! |2 N! L

, v7 c3 B) G. C( Z" G●Vivado工程说明3 k3 S) O" O/ P( O6 T; t5 S

5 P3 O, @4 J1 _; k- K+ y点击BLOCK DESIGN开发界面下的"Address Editor"选项,可查看IP核分配的地址,MicroBlaze可通过对应地址对IP核进行控制。
6 Z  p& Q5 P& s​3 ]6 H4 Z, L- X8 b8 v

1 e$ z, G8 e5 Q  J8 L% o3 Y

( ~1 I% ?' N5 [& b  @Vivado工程顶层文件为"hw\project\sdi_capture_display.srcs\sources_1\imports\hdl\sdi_capture_display.v",关键代码说明如下。
7 Q" q) f: ?5 Y% p6 k: R/ B0 W0 H; Q+ w$ r" Z# u0 W
& s: r; r, E+ S- Z. J
(1) 定义模块接口。2 k6 u+ O8 ^9 ^  J; C- W" n( s
​
6 g) E' N$ g0 X: O8 P, w7 e- U/ Z6 s% C4 D5 V* L

4 I( V, X& @: x7 R( ^/ T(2) 使用STARTUPE2原语输出复位信号。# I, V. w' g% @" _% N- r. d4 E
​5 p  f' B2 Z' u- f2 v# ]  Z
, b3 B) E$ g: D% [# W1 j
6 B& q' V8 e. K- J: ~3 `

; w, `. e& r5 e" H( k* F. |( R
( G( m1 [0 k* _2 S
(3) 调用Block Design。: P; r% {; O  |) A; u/ s+ `
​8 S# @; w* @; F' q3 v- l# @: _

  f9 w0 Y5 `8 H" K  V+ s
& w8 {6 R" ?0 u4 f& }; z2 o
​
! W$ n' c6 |, s+ i
+ _, `/ P2 K; ?$ {% v0 p# a& k+ l2 l
嵌入式DSP、ARM、FPGA多核技术开发,学习资料下载:http://site.tronlong.com/pfdownload
回复

使用道具 举报

发表回复

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

本版积分规则

关闭

站长推荐上一条 /1 下一条


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