磕磕碰碰 发表于 2022-3-29 10:41:46

【ACX720】OV5640图像采集千兆以太网GMII发送PC显示案例

### ACX720 以太网OV5640图像发送实验说明


| 工程源码               | ----01_设计实例 | --------acx720_ov5640_gmii_udp.rar |
| -------------------------- | ----------------- | ------------------------------------ |
| 相关视频课程             |               | 暂无相关视频课程                   |
| 本实验对各开发板支持情况 |               |                                    |
| 开发板型号               | acx720          |                                    |

本节导读

OV5640以太网图像发送传输,将OV5640采集的数据通过以太网发送到PC端,经网络调试助手显示。

#### 文档所涉及文件说明

本例对应的例程工程压缩包名为acx720_ov5640_gmii_udp.rar,该文件可在我们提供的配套资料中找到。在我们的官网[www.corecourse.cn](http://www.corecourse.cn)搜索ov5640_gmii关键词也可找到。

如下图首先对本目录下面每个文件做简单的说明。

!(data/attachment/forum/202203/29/102837l7ejfe0b0tief06b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "1.png")

1、**ov5640_gmii_udp** :基于ACX720开发板(Xilinx Artix-7 系列FPGA)平台:Vivado 2018.3+XILINX ARTIX-7 XC7A35T
2、ov5640实物图和硬件连接图
3、AC720以太网OV5640图像发送实验说明手册
4、小梅哥UDP摄像头V3:调试助手

解压acx720_ov5640_gmii_udp.rar到不含中文或者空格的目录中。解压后工程目录下内容如下所示:

!(data/attachment/forum/202203/29/102845d2fewwjwwj3642a8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "2.png")

通过FPGA实现以太网的一个主要目的就是使用以太网将FPGA采集到的各种数据发送到PC,如高速ADC实时采集数据,或者图像传感器采集的图像数据。此类应用传输过程中数据量大,实时性要求较高。使用基于CPU架构实现的软件以太网协议栈,受限于CPU计算性能和数据组包的规律,一般效率都无法做到很高。而使用FPGA实现以太网传输,则可以提供稳定且高效的传输能力。

无论是ADC实时采集的模拟数据,还是图像传感器或其他传感器采集的数据,其数据特点都是高速且高实时性。因此本节将以一个以太网图像传输实例为例,介绍使用以太网传输图像到PC并显示的方式。

#### 以太网图像传输工程介绍

基于以太网的图像传输工程,使用UDP协议,将OV5640摄像头采集到的图像数据经由以太网传输到PC端,再由PC端的图像显示软件接收图像数据并绘制在屏幕上,以还原图像内容。整个系统框图如下图所示:

!(data/attachment/forum/202203/29/102857mdu799qod1ggegqg.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "3.png")

本例程在小梅哥团队出品的AC开发板上使用 verilog 实现以太网UDP 协议通信。FPGA 采集OV5640输出的RGB565格式的图像数据,并将采集到的图像数据使用一定的编号方式编号后以行为单位,使用UDP协议经由以太网发送到PC机。PC机上使用我们专门开发的显示软件(小梅哥UDP摄像头V3.exe)接收FPGA发送的编号后的图像数据,解析后还原为图像内容绘制在PC机显示屏上。

下表为工程引脚分配表。


| Signial Name | Pin NO. | Signial Name   | Pin NO. |
| -------------- | --------- | ---------------- | --------- |
| clk50m       | Y18   | camera_data | E1      |
| reset_n      | B21   | camera_data | D1      |
| led       | N22   | camera_data | G2      |
| led       | M22   | camera_data | F1      |
| gtxclk       | U22   | camera_data | H2      |
| gmii_txen    | AA19    | camera_data | G1      |
| eth_reset_n| V22   | camera_data | J1      |
| gmii_txd| AA20    | camera_data | J2      |
| gmii_txd| AB21    | camera_rst_n   | N20   |
| gmii_txd| AA21    | camera_sclk    | M20   |
| gmii_txd| AB22    | camera_href    | A1      |
| gmii_txd| Y22   | camera_sdat    | L18   |
| gmii_txd| W21   | camera_vsync   | B2      |
| gmii_txd| W22   | camera_xclk    | M17   |
| gmii_txd| U21   |                |         |

#### 以太网图像传输工程实操

1、使用网线将开发板上的以太网接口和您当前调试测试工程用的PC机的网口连接起来。连接好下载线缆并给开发板上电。

2、将OV5640 摄像头插入开发板的摄像头接口中。

3、双击ov5640_udp_gmii(Vivado Project File)以打开工程(工程创建时候对应的版本Vivado 2018.3)。

4、下载ov5640_udp_gmii.bit文件到开发板中,注意这一步一定要先于下面的步骤执行,否则以下操作无法正常进行。

5、网络连接设置,连接设置可参考以太网通信连接设置可在论坛搜索参考。(http://www.corecourse.cn/forum.php?mod=viewthread&tid=28645)
(出处: 芯路恒电子技术论坛)

打开网络调试助手(小梅哥以太网摄像头.exe)并按照如下所述设置各项参数。

!(data/attachment/forum/202203/29/102916h4g8t2gzo6ftpe62.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "4.png")

1、本机IP,对应当前实验所用电脑的IP地址,前面已经按照要求设置为了192.168.0.3,所以这里直接填写该地址。

2、本机端口,对应当前实验所用电脑接收图像时使用的网络端口,该端口在FPGA程序中定义为了6000,所以这里也要设置为6000才能正确显示图像。

3、远程IP,对应FPGA开发板使用的IP地址,也就是代码中的SRC_IP值。例程使用的为192.168.0.2。

4、远程端口,对应FPGA开发板使用的端口号,也就是代码中的SRC_PORTt值,例程使用的为5000。

5、分辨率,对应了摄像头输出的图像分辨率大小,本实验中,千兆GMII接口使用的分辨率为1280*720。

6、保存图片,该按钮在软件停止接受图像后,点击可以保存最后界面上显示的图像内容到文件。

连接/停止,该按钮可以开始和停止接受并显示图像,当所有参数设置好之后,点击该按钮即可开始接收并显示图像。

1、设置好参数后,点击连接按钮即可开始接收并显示图像内容。

2、该软件运行时需要关闭防火墙,软件自带关闭防火墙功能,点击连接时会提示是否关闭防火墙,勾选专用网络和公共网络两个选项,然后点击【允许访问按钮】即可。如果还是无法关闭,考虑软件权限不够,以管理员身份运行本软件即可。

至此,则完成了基于FPGA的千兆以太网GMII接口的UDP协议图像发送到PC显示功能实验。本实验操作简单,趣味性和实用性都较强,适合大家用来学习练习。

#### 实验常见问题和解答:

##### 无法连接:

1、有可能是该6000端口号在你电脑上恰好被其他软件占用,可以更换任意一个端口号(6102),再检查是否能连接上(不在乎能否出图,能连接上就行)来确定该问题,如果换了端口号能正常连接,则是端口号被占用,可在FPGA代码中修改DST_PORT的值为能连接的端口号后重新编译再测试。

2、检查你的电脑有线网络本地连接是否连接上了。

3、检查你的电脑IP地址是否已经设置为了192.168.0.3.

##### 接收不到图像

1、接收不到图像的情况下,手动确认防火墙是否已经被关闭,软件自带的临时关闭防火墙功能需要软件是以管理员身份运行的,可重新使用管理员身份运行软件,如果还是无法关闭,则可在电脑设置中人工关闭防火墙。

2、确保OV5640已经正确的接入了开发板。

3、确保开启巨型帧。

!(data/attachment/forum/202203/29/103801xa19apzjspjzaanf.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "5.png")

更多问题可上[www.corecourse.cn](http://www.corecourse.cn)搜索“以太网实验常见问题”关键词搜索相关帖子。

修订记录


| V1.0 | 2022/03/28 | 首次发布 |
| ------ | ------------ | ---------- |
|      |            |          |

故梦 发表于 2023-9-26 18:42:01

最新的程序
页: [1]
查看完整版本: 【ACX720】OV5640图像采集千兆以太网GMII发送PC显示案例