找回密码
 注册
关于网站域名变更的通知
查看: 308|回复: 3
打印 上一主题 下一主题

基于TI Sitara系列AM5728工业开发板——FPGA视频开发案例分享

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2023-6-9 14:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 Tronlong123 于 2023-6-9 14:44 编辑
5 a  |, L$ M+ z/ a4 ]" ]# Y$ j( L0 o) d
前 言
本文主要介绍FPGA视频开发案例的使用说明,适用开发环境:Windows 7/10 64bit、Xilinx Vivado 2017.4、Xilinx SDK 2017.4。
. k& d* H2 B  s* v2 e5 Z7 T
评估板简介
本案例采用的评估版为创龙科技TL5728F-EVM,它是一款基于TI Sitara系列AM5728(双核ARM Cortex-A15 +浮点双核DSP C66x) + Xilinx Artix-7 FPGA处理器设计的高端异构多核评估板,由核心板与评估底板组成。AM5728与Artix-7在核心板内部通过GPMC、I2C通信总线连接,在评估底板通过PCIe通信总线连接。核心板经过专业的PCB Layout和高低温测试验证,稳定可靠,可满足各种工业应用环境。评估板接口资源丰富,引出双路千兆网口、双路SFP光口、USB 3.0、CAN、RS485、SATA、HDMI、GPMC、FMC等接口,方便用户快速进行产品方案评估与技术预研。

7 i! w7 h! i' }5 N1 ^9 F; y! \* M
在进行本文如下操作前,请先按照调试工具安装文档安装Xilinx Vivado开发工具包。本文默认使用创龙科技的TL-DLC10下载器进行操作演示。
根据评估底板丝印将Artix-7的BOOT SET拨码开关(SW3)拨至01(1~2),此档位为SPI FLASH启动模式(此模式可进行程序在线加载、固化并离线启动),并将评估板通过下载器正常连接至PC机。

% E* W0 z$ j) F8 n* w+ k, u
图 1

7 q9 J- b0 ?  ~9 r( m
cameralink_display案例
cameralink_display案例分为FPGA程序与MicroBlaze裸机程序两部分。FPGA程序位于产品资料“4-软件资料\Demo\FPGA_Demo\All-Programmable-FPGA-demos\cameralink_display\hw\”目录下,包含project和bin两个目录。基于MicroBlaze软核的裸机程序位于产品资料“4-软件资料\Demo\All-Programmable-FPGA-demos\cameralink_display\sw\baremetal_demo”目录下,包含project和bin两个目录。

0 q! G# b* z% V8 S0 J+ p) @: V
案例功能
案例功能:评估板通过FMC视频模块TLCameraLinkF的CameraLink接口采集分辨率为1280 x 1024的视频,并通过TLCameraLinkF模块的HDMI OUT接口输出采集到的视频。

- |$ \) |( k, R, A- N7 ^  G
图 2 程序功能框图
, E" B" s0 Q. n  z/ ]/ K
本案例FPGA程序支持CameraLink Full模式(工程为cameralink_display_full_xx)与CameraLink Base模式(工程为cameralink_display_base_xx)。
Full模式工程编译后生成的可执行文件为cameralink_display_full_xx.bit,Base模式工程编译后生成的可执行文件为cameralink_display_base_xx.bit。
% W- B) y) M2 s
操作说明
本案例支持三款CameraLink相机,具体说明如下。
表 1
厂家
相机型号
支持模式
相机性能
Microview
(北京微视)
RS-A5241-CM107-S00
(黑白CameraLink相机)
Full
全幅面2560*2048下,帧率可达107fps
Base
RS-A5241-CC107-S00
(彩色CameraLink相机)
Full
全幅面2560*2048下,帧率可达107fps
Base
MVC1381SAM-CL60-S00
(黑白CameraLink相机)
Base
全幅面1280*1024下,帧率可达60fps
Full模式硬件连接方法
如采用Full模式,请将创龙科技的TLCameraLinkF模块连接至评估板FMC接口,评估板J1跳线帽选择1.8V档位,以配置FMC IO的BANK电压为1.8V。
请将CameraLink相机的CL0通过数据线连接至TLCameraLinkF模块的CameraLink1接口,将CameraLink相机的CL1通过数据线连接至TLCameraLinkF模块的CameraLink2接口,将HDMI显示屏通过数据线连接至TLCameraLinkF模块的HDMI OUT接口。
; `$ `0 k" i$ P
图 3
Base模式硬件连接方法
如采用Base模式,请将创龙科技的TLCameraLinkF模块连接至评估板FMC接口,评估板J1跳线帽选择1.8V档位,以配置FMC IO的BANK电压为1.8V。
请将CameraLink相机的CL0通过数据线连接至TLCameraLinkF模块的CameraLink1接口,将HDMI显示屏通过数据线连接至TLCameraLinkF模块的HDMI OUT接口。
. f+ W( g! s; c2 H6 O. w2 I+ j5 ^
图 4
下面对三款不同型号的CameraLink相机在Full/Base模式下的操作步骤进行说明。
1.黑白CameraLink相机RS-A5241-CM107-S00,Full模式
请运行Full模式程序,即可看到串口调试终端打印如下信息。请先输入"1"选择相机型号为RS-A5241-CM107-S00,再输入"1"选择为Full模式。配置完成后,即可看到HDMI显示屏输出黑白图像。

; {! L0 o+ A6 x2 }& O+ }% R
图 5

7 n* v: a& b* W( A. g5 E, Y
图 6
2.
彩色CameraLink相机RS-A5241-CC107-S00,Full模式
请运行Full模式程序,即可看到串口调试终端打印如下信息。请先输入"2"选择相机型号为RS-A5241-CC107-S00,再输入"1"选择为Full模式。配置完成后,即可看到HDMI显示屏输出彩色图像。

* [  h1 l# C2 l" R- E' J
图 7
3 D  i' V2 Q% U" x" \' [
图 8
备注:由于彩色CameraLink相机RS-A5241-CC107-S00无白平衡功能,故图像颜色偏绿。
3.黑白CameraLink相机RS-A5241-CM107-S00,Base模式
请运行Base模式程序,即可看到串口调试终端打印如下信息。请先输入"1"选择相机型号为RS-A5241-CM107-S00,再输入"2"选择为Base模式。配置完成后,即可看到HDMI显示屏输出黑白图像。

0 p6 u# p/ T' q/ j* t1 h0 R
图 9

; d) _% k  t9 q$ V) c" X, V1 c
图 10
4.CameraLink相机RS-A5241-CC107-S00,Base模式
请运行Base模式程序,即可看到串口调试终端打印如下信息。请先输入"2"选择相机型号为RS-A5241-CC107-S00,再输入"2"选择为Base模式。配置完成后,即可看到HDMI显示屏输出彩色图像。

% `& i- m9 Q) \& \# j. i5 Y2 d2 i% }
图 11

+ R) {8 |4 G- X
图 12
备注:由于彩色CameraLink相机RS-A5241-CC107-S00无白平衡功能,故图像颜色偏绿。

5 y3 U6 m, J+ @# e1 u% `. s
5.黑白CameraLink相机MVC1381SAM-CL60-S00,Base模式
请运行Base模式程序,即可看到串口调试终端打印如下信息。请输入"3"选择相机型号为MVC1381SAM-CL60-S00。配置完成后,即可看到HDMI显示屏输出黑白图像。
1 s5 P  u# X3 T: k, }* g
图 13

) {4 G9 y, ^8 |. |, z
图 14

) i" }' s" m  {. |
关键代码(MicroBlaze)
MicroBlaze裸机源码为"sw\baremetal_demo\project\cameralink_display\src\",关键代码说明如下。
  • main函数。
    ; ]7 Z( C; M5 N- A

    8 n- W" d& r- p  a0 e7 j5 b
) K9 g; G8 O! S; t% C& d* d
图 15

; H$ _1 m3 f- c% p8 w: C; [$ d
图 16
9 I6 j& A4 g( A7 ]3 |
图 17
" _% M1 [6 M3 i  E6 q
2.初始化VDMA,将采集到的视频数据缓存至DDR,再进行HDMI视频输出。
图 18
3.初始化Sil9022。

1 f! _) @0 `* I, t; d6 O
图 19
5.初始化AXIS Switch IP核。

' ^$ G# P3 U& h9 ]- i! J1 D& |
图 20
6.初始化Sensor Demosaic IP核,以将彩色CameraLink相机的Bayer格式视频数据转化为RGB格式。
7 |7 ]# Q8 \0 g3 r5 g: O. l/ L
图 21
7.初始化Video Mixer IP核。
" `- A3 [8 v" m: V$ ]
图 22
Vivado工程说明
点击BLOCK DESIGN开发界面下的"Address Editor"选项,可查看IP核分配的地址,MicroBlaze可通过对应地址对IP核进行控制。

  ^2 B. `" _& g  T; w
图 23
本案例分别支持CameraLink Full模式(工程为cameralink_display_full_xx)与CameraLink Base模式(工程为cameralink_display_base_xx)。两者区别如下:
  • Full模式Vivado工程:Pixels Per Clock配置为8,即每个时钟8个像素。
  • Base模式Vivado工程:Pixels Per Clock配置为2,即每个时钟2个像素。
    0 h4 n! L; X5 Q- U: T& a9 e

    , F) e( ?, t9 J* b; @. G

4 D  J4 M+ }( L: a1 t
图 24 Full模式
4 n" r+ A- T% O
图 25 Base模式
CameraLink Full模式Vivado工程顶层文件为"hw\project\cameralink_display_full_xx\cameralink_display.srcs\sources_1\imports\hdl\cameralink_display_full.v"。
CameraLink Base模式Vivado工程顶层文件为"hw\project\cameralink_display_base_xx\cameralink_display.srcs\sources_1\imports\hdl\cameralink_display_base.v"。
关键代码说明如下。
  • 定义模块接口。# g# W4 q5 C  i& N) N" O
    / C- |: A. a9 |! A7 H  Z6 i+ I  ?

0 g" e6 Q, p5 G6 m% ^8 M
图 26
  • 使用STARTUPE2原语输出复位信号。
      x1 A2 @7 X5 P6 L: M" y3 \

    " e( j* E3 O4 S/ M6 E# `6 e

$ q/ o- Q1 E& Q8 g; g7 g
图 27
  • 调用Block Design。; J) g  N2 X% o- n
    4 h0 q7 t( {9 n% B; z. ~9 `

& @( z* Z  W( `1 O" `( v0 N- w
图 28
模块/IP核配置lvds_n_x_1to7_sdr_rx模块
本案例使用lvds_n_x_1to7_sdr_rx模块将CameraLink相机输入的差分视频数据转化成并行视频数据。
lvds_n_x_1to7_sdr_rx模块开发文档为产品资料“6-开发参考资料\Xilinx官方参考文档\”目录下的《xapp585-lvds-source-synch-serdes-clock-multiplication.pdf》。lvds_n_x_1to7_sdr_rx模块源码文件为Vivado工程"cameralink_display.srcs\sources_1\imports\hdl\lvds_n_x_1to7_sdr_rx.v",具体配置说明如下。
  • delay_refclk_in接入由Clocking Wizard输出的200MHz参考时钟。, `* I) l  J5 g! N
    * u9 R+ {. u8 V9 N% S# D$ U  _

9 K+ m& o( I  |1 e6 R
图 29
  • 配置N(通道数量)为3对应Full模式,配置N为1则对应Base模式。配置X为4,表示“每个通道的数据差分对数量为4”。4 m5 D8 \- O, v6 H
      {9 x% M+ E, V3 }$ r
  • Base模式:单通道,每通道数据差分对为4组,需1个连接器。
  • Medium模式:双通道,每通道数据差分对为4组,需2个连接器。
  • Full模式:三通道,每通道数据差分对为4组,需2个连接器。. Y. M) o, w  d, ~5 N: k+ _% E5 o

    0 W" F# _/ h; w( n
. d! {% {( d2 _9 ~# l. w
图 30
cameralink_bit_allocation_rx模块
本案例使用cameralink_bit_allocation_rx模块将转化后的并行视频数据进行重组,分离出行同步信号、场同步型号、数据有效信号和像素数据。
cameralink_bit_allocation_rx模块源码为Vivado工程"cameralink_display.srcs\sources_1\imports\hdl\cameralink_bit_allocation_rx.v",具体配置与关键代码说明如下。
  • 配置N(通道数量)为3对应Full模式,配置N为1则对应Base模式。" a# P* J- N6 Z

    0 i2 n8 E. ~4 b9 n, g
  • Base模式:单通道,输出端PortA、PortB、PortC有效。
  • Medium模式:双通道,输出端PortA、PortB、PortC、PortD、PortE、PortF有效。
  • Full模式:三通道,输出端PortA、PortB、PortC、PortD、PortE、PortF、PortG、PortH有效。
    8 K5 x3 J4 e+ {# @' U  c. |; u! }
    & M; n( F  Y3 ~" ~
3 n2 O9 v! ^9 }! J) ?. c6 f
图 31
  • data_in的数据排列格式。
    " t6 F1 J; F4 m1 r& g1 w( M, v
    ) e; B1 T4 Q% D
下图为Base模式单通道4组差分对图像数据排列,例如TxIN[7:6]对应D[0:1],TxIN[4:0]对应D[2:6]。

. ~% t& o: l8 ~5 F3 y
图 32
将Base模式单通道4组差分对图像数据保存在data_in数组的排列顺序如下。
* L7 S" N/ n- _. ^' H. K- t. C
图 33
  • 分离行同步信号、场同步信号、数据有效信号和像素数据。# D+ p/ ]- {$ Z0 y5 P
    ' x% n  _9 R/ B3 h
根据CameraLink V2.0协议,RX24对应行有效信号LVAL(行同步信号),RX25对应帧有效信号FVAL(场同步信号),RX26对应数据有效信号DVAL,具体对应关系如下。
6 f2 R. \4 q: q. V$ k" h
图 34
根据上图说明,即可将行同步信号、场同步型号、数据有效信号和像素数据进行分离。
6 V0 Z8 c+ I7 k( h% m- [
图 35
VDMA IP核
本案例使用VDMA IP核进行视频数据缓存。
VDMA(AXI Video Direct Memory Access) IP核开发文档为产品资料“6-开发参考资料\Xilinx官方参考文档\”目录下的《pg020_axi_vdma.pdf》。
VDMA IP核寄存器列表如下,其中S2MM_xx将视频数据缓存至DDR,MM2S_xx将视频数据从DDR中取出。
0 G" u' d* l5 r3 I7 y2 @9 m8 Y  q
图 36
2 J6 ]3 M& p. v  c2 j  j3 _
图 37
VDMA IP核具体配置说明如下。
  • Frame Buffers配置为4个。
  • Write Burst Size、Read Burst Size均配置为128。
  • 读通道的Stream Date Width配置为8。
  • 读/写通道的Line Buffer Depth均配置为2048。
    % Z. s. l0 Q7 }- v2 q3 w

    . Q9 ]) c/ P" j, C1 ^
! C! I" u4 b- R: x4 W  y
图 38
  • 点击Advanced,保持默认配置,即可避免VDMA同时读写同一个Buffer,造成视频数据传输乱码。, R3 Z9 d2 H, c( j% R" y
    ; a$ `' B* X( ~$ o

0 v! Y% p2 k- k9 M% D& ^9 G1 b. u
图 39
Video In to AXI4-Stream IP核
本案例使用Video In to AXI4-Stream IP核将并行视频信号转换为AXI4-Stream视频流。
Video In to AXI4-Stream IP核开发文档为产品资料“6-开发参考资料\Xilinx官方参考文档\”目录下的《pg043_v_vid_in_axi4s.pdf》,具体配置说明如下。
  • Full模式:Pixels Per Clock配置为8,即每个时钟8个像素。Base模式:Pixels Per Clock配置为2,即每个时钟2个像素。
  • 视频格式配置为Mono/Sensor。
  • 数据位宽配置为8bit。6 S2 O3 X+ P$ m

    + i+ q, ?) L! c7 d; h; c
# q, {/ |, ?$ G7 ^3 j* N
图 40
AXI4-Stream to Video Out IP核
本案例使用AXI4-Stream to Video Out IP核将AXI4-Stream视频流转化为并行视频信号。
AXI4-Stream to Video Out IP核开发文档为产品资料“6-开发参考资料\Xilinx官方参考文档\”目录下的《pg044_v_axis_vid_out.pdf》,具体配置说明如下。
  • FIFO Depth配置为2048。
  • Clock Mode配置为Independent(独立时钟)。" D( Z. o  J; c' T- p) e( ^

    ( k5 C/ {5 m4 i! |5 X( m$ u' N) P

! B" H& ]2 h7 `7 f7 L* V: I6 D) N
图 41
Video Mixer IP核
本案例使用Video Mixer IP核将视频数据叠加到1920 x 1080分辨率的视频中。
Video Mixer IP核开发文档为产品资料“6-开发参考资料\Xilinx官方参考文档\”目录下的《pg243-v-mix-v2.0.pdf》,具体配置说明如下。
Mixer通过MicroBlaze配置寄存器进行使能。
8 x, W! ^; ?( t7 S4 u# x9 D0 ]
图 42
  • Number of Layers配置为3,其中Master Layer(s_axis_video)未使用,仅使用Layer1(s_axis_video1)与Layer2(s_axis_video2)。当采集黑白CameraLink相机的图像时,使用Layer1;当采集彩色CameraLink相机的图像时,使用Layer2。
  • 配置可支持的最大分辨率为1920 x 1080。
    4 g' j  W/ G' @: Y
      @2 \, V1 ?+ E! ]5 w
6 J; q2 h2 I8 e( U+ L* y2 n# @
图 43
VTC IP核
本案例使用VTC IP核产生用于视频输出的时序。
VTC(Video Timing Controller) IP核开发文档为产品资料“6-开发参考资料\Xilinx官方参考文档\”目录下的《pg016_v_tc.pdf》,具体配置说明如下。
  • 点击Detection/Generation,确保不勾选"Include AXI4-Lite InteRFace"及"Enable Detection"。
    * m& U. ~. g$ `4 D6 @
    , p# d4 w. I1 q; p9 z" W
+ a  b& F% [( {0 F& c" p1 P- J
图 44
  • 点击Default/Constant,Video Mode配置为1080p,其余配置保持默认。! j( D8 M! _" O1 F  f9 }( V

    3 U9 [, Q! }. S: m, o# A# P
4 r$ _+ o+ D+ D( a
图 45
Sensor Demosaic IP核
本案例使用Sensor Demosaic IP核将彩色CameraLink相机的Bayer格式视频数据转化为RGB格式。
Sensor Demosaic IP核开发文档为产品资料“6-开发参考资料\Xilinx官方参考文档\”目录下的《pg286-v-demosaic.pdf》,具体配置说明如下。图像宽高以及Bayer的格式,通过MicroBlaze配置寄存器进行设置。
- o% s3 b' i) D% g8 o: P9 x1 c* Z
图 46
由于Sensor Demosaic IP核视频数据输出格式为RBG,因此使用AXI4-Stream Subset Converter IP核将RBG转换成RGB,再进行视频输出。
; [2 E( U7 u& D/ l7 y6 z
图 47

5 a! L! J7 q- R& d/ o8 _8 D
图 48
AXI4-Stream Switch IP核
本案例使用AXI4-Stream Switch IP核选择黑白或彩色CameraLink相机视频数据进行处理。
AXI4-Stream Switch IP核开发文档为产品资料“6-开发参考资料\Xilinx官方参考文档\”目录下的《pg085-axi4stream-infrastructure.pdf》,具体配置说明如下。本案例通过MicroBlaze配置寄存器,选择将S00_AXIS(视频数据输入通道)路由到M00_AXIS(黑白CameraLink相机视频数据处理通道)或M01_AXIS(彩色CameraLink相机视频数据处理通道)。
  • Number of slave interfaces配置为1,即配置1个Slave接口。
  • Number of master interfaces配置为2,即配置2个Master接口。
  • Use control register routing配置为Yes,即使能AXI4-Lite接口。
    0 d' B$ E( s2 [, M- W4 U3 N
    ) C9 L5 v2 N! }
0 g5 r; `' K8 ]7 D% u
图 49
Vivado工程编译申请IP核License
如需重新编译工程或打开Video Mixer IP核,需在Xilinx官网申请Video Mixer IP核的免费License,并将其正确导入。License申请与导入方法,请查阅调试工具安装文档相关章节,其它IP核无需License。
成功导入后,可在View License Status窗口发现新添加的License。

4 g( x( v: |( b2 M
图 50
工程编译异常解决
本案例包含HLS IP核,由于Vivado工程文件路径过长,可能导致工程编译过程中出现如下错误。

* `" M& g2 O, K8 E2 p/ q
图 51
可在Tcl Console窗口执行如下命令,重新生成HLS IP核相关文件,即可正常编译工程。
Vivado# foreach ip_in_proj [get_ips] {compile_c [get_ips cameralink_display_bd_v_demosaic_0_0]}
: J& }4 a$ o9 C, e
图 52
Vivado# foreach ip_in_proj [get_ips] {compile_c [get_ips cameralink_display_bd_v_mix_0_0]}
9 x9 Y) z: J. ]7 `3 Z/ W3 y! f
图 53
更多嵌入式开发知识分享,欢迎关注Tronlong创龙~
1 N! b8 s) B3 @  ^9 K' F: W. E) D
  • TA的每日心情
    开心
    2023-5-17 15:19
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2023-6-9 18:18 | 只看该作者
    很齐全,有资料包吗

    点评

    有的~请移步至微信,关注微信公众号:Tronlong创龙科技,内含资料下载链接,还可以申请免费试用噢  详情 回复 发表于 2023-6-12 09:09

    该用户从未签到

    3#
     楼主| 发表于 2023-6-12 09:09 | 只看该作者
    bc9jvvs1id 发表于 2023-6-9 18:18: J' ~! l& V6 |- @
    很齐全,有资料包吗
    + U4 i7 Z3 y: R. _7 b
    有的~请移步至微信,关注微信公众号:Tronlong创龙科技,内含资料下载链接,还可以申请免费试用噢
  • TA的每日心情
    开心
    2025-4-2 15:10
  • 签到天数: 109 天

    [LV.6]常住居民II

    4#
    发表于 2023-7-17 11:21 | 只看该作者
    感谢大佬分享!
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-10-5 05:16 , Processed in 0.187500 second(s), 27 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表