您当前的位置: 首页 >  9527华安

FPGA的GTP视频传输方案,提供HDMI和OV5640摄像头两种例程

9527华安 发布时间:2022-06-14 17:14:25 ,浏览量:4

之前在闲鱼上被一名神秘大佬批评道:你拥有这么好的板子怎么不玩点高端的东西?
于是乎我陷入了沉思。。。
我手里的板子都有GTP、GTX和PCIE,而我居然把他们无视了,那玩儿FPGA还玩儿个毛?
开发板:米联客A7-35T;
IDE:vivado2019.1;
参考代码:米联客A7-35T开发板配套例程;
实现功能框图如下:

HDMI工程:输入HDMI1080P(ADV7611解码),输出HDMI1080P;
工程BD如下:

代码架构如下:

GTP想要完全搞懂的话非一日之功,最快的方式就是先用我来,在用的过程中再去慢慢理解,Xilinx也是这么想的,所以提供了完美的参考例程,在配置生成好GTP的IP后,再手动生成官方参考例程,然后再添加自己的设计就可以用了,置于内部原理和逻辑先别管,能用起来再说。
GTP官方例程例程的顶层如下:

红框内的信号:错位指示,哪一位为1就该表哪个字节错位了,在解码时就根据他来对齐错位的数据,NB吧?至于为什么是这样,恕我直言,弄懂了感觉也没什么N用。
数据对齐逻辑核心部分如下:

K28.5编解码:
K28.5具体细节我也不懂,只知道bc是k28.5 的控制字符,那么一个32位的数据位就可以由我们自定义了,除视频有效数据外,其他控制信号自定义如下:

编码要复杂一些,得根据视频时序来,解码就简单多了,具体去看代码吧。
需要说明的是,代码只支持视频场同步信号为高电平,如果你的输入是低电平,请做反向处理。
OV5640工程:输入OV5640-720P,输出HDMI1080P;
工程BD如下:

代码架构如下:

之所以搞两个版本,是因为输入时序不一样,HDMI的输入时序是标准的VGA时序,而OV5640输入时序是非VGA时序,用以验证这个方案的通用性。
另外,虽然这是环通测试,但稍加修改就能做成板对板的传输。
板子连接如下:

OV5640输出结果:

HDMI输出结果:

最后:由于整个工程太过复杂,一两句说不清楚,需要工程源码的兄弟联系我吧

关注
打赏
查看更多评论

9527华安

暂无认证

  • 4浏览

    0关注

    13博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录