FPGA设计——CMOS图像采集与以太网传输显示(MT9V011)
2017-10-03 09:43
483 查看
1. 概述本设计采用FPGA技术,将CMOS摄像头(DVP接口)的视频数据采集,并通过以太网传输(UDP方式)给PC机,上位机DEMO通过套接字编程,将视频实时显示在屏幕上。2. 硬件系统框图CMOS采用MT9V011(30万像素),FPGA采用ALTERA公司的CYCLONE IV,以太网卡采用REALTK公司的100M网卡芯片,硬件框图如下:
硬件平台采用ETree的FPGA开发板(某宝提供),如下图所示:
3. UDP/IP协议UDP(User Datagram Protocol)是OSI参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。每一个数据包的前8个字节用来包含报头信息,剩余字节则用来包含具体的传输数据。UDP协议经常用于图像传输、网络监控数据交换等数据传输速度要求比较高的场合。
IP(Internet Protoco)包位于网络层,功能是把分组发往目标网络或主机。所有的TCP,UDP,IMCP,IGCP的数据都以IP数据格式传输。
以太网的数据帧的传输过程中,包长一般在46~1500字节,这里将UDP包长设计为:(8+20+640*2)=1308字节,以提高传输效率。
4. FPGA逻辑设计
FPGA各部分逻辑模块如下图所示:
CMOS Capture,采集CMOS的DVP视频流;
I2C Config,配置CMOS芯片;
FIFO,实现CMOS时钟域到以太网时钟域之间的转换;
UDP Pack,实现UDP/IP协议的实现。
下面为MT9V011的初始化配置代码:
5. 上位机Demo实现本设计采用VC++ 2010设计了一款简易的UDP网络视频流播放器,视频源为RAW8格式,分辨率640*480,帧率25Hz。Windows为我们提供了便捷的套接字(socket)编程方式,软件工程师方便实现网络编程。
6. 视频显示结果给FPGA板卡上电,打开UDP demo软件,视频正常显示,效果比OV7670好很多,如下图所示。
硬件平台采用ETree的FPGA开发板(某宝提供),如下图所示:
3. UDP/IP协议UDP(User Datagram Protocol)是OSI参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。每一个数据包的前8个字节用来包含报头信息,剩余字节则用来包含具体的传输数据。UDP协议经常用于图像传输、网络监控数据交换等数据传输速度要求比较高的场合。
IP(Internet Protoco)包位于网络层,功能是把分组发往目标网络或主机。所有的TCP,UDP,IMCP,IGCP的数据都以IP数据格式传输。
以太网的数据帧的传输过程中,包长一般在46~1500字节,这里将UDP包长设计为:(8+20+640*2)=1308字节,以提高传输效率。
4. FPGA逻辑设计
FPGA各部分逻辑模块如下图所示:
CMOS Capture,采集CMOS的DVP视频流;
I2C Config,配置CMOS芯片;
FIFO,实现CMOS时钟域到以太网时钟域之间的转换;
UDP Pack,实现UDP/IP协议的实现。
下面为MT9V011的初始化配置代码:
reg [23:0]lut_data; reg [7:0]lut_index; always @(*) begin case(lut_index) 0 : lut_data <= 24'h01_000b; //First row to read 1 : lut_data <= 24'h02_0012; //Firts column to read 2 : lut_data <= 24'h05_0083; //bit 0-9 h-blank 3 : lut_data <= 24'h06_001c; //bit 0-11 v-blank 4 : lut_data <= 24'h35_0313; //global gain: 0-6(initial gain) 7-8(analog gain) 9-10(total gain) 5 : lut_data <= 24'h20_1000; //bit 15: upside down, bit 14: mirror(right to left) // 6 : lut_data <= 24'h07_3302; //bit 2: chip enable, bit 15: pclk invert, 8-11 7 : lut_data <= 24'h09_01cf; //bit 0-11, shutter width default:lut_data <= 24'h000000; endcase end
5. 上位机Demo实现本设计采用VC++ 2010设计了一款简易的UDP网络视频流播放器,视频源为RAW8格式,分辨率640*480,帧率25Hz。Windows为我们提供了便捷的套接字(socket)编程方式,软件工程师方便实现网络编程。
6. 视频显示结果给FPGA板卡上电,打开UDP demo软件,视频正常显示,效果比OV7670好很多,如下图所示。
相关文章推荐
- FPGA设计——CMOS图像采集与以太网传输显示(OV7670)
- FPGA设计——全局曝光CMOS图像采集与USB2.0显示
- FPGA综合系统设计(二):基于FPGA的温度采集和以太网传输
- VmodCAM图像采集 VGA显示
- 视频图像传输与显示(6)——数字视频接口DVI简介
- OpenCV + VTK + WebCam 采集和显示图像
- seed-dvs6467 encodedecode实例 采集的图像质量很差,只有隔行显示,而且每帧图像不断的往下移动?
- 视频图像传输与显示(1)——视频信号基本概念和常见视频输出端口
- 基于嵌入式Linux的视频图像采集与传输
- 一个很好用的图形显示控件(可以用于实时采集的图像显示)
- 基于嵌入式Linux的视频图像采集与传输
- 实战小项目之嵌入式linux图像采集与传输
- 基于FPGA的LCD+CMOS视频采集显示使用小结
- 嵌入式Linux的图像采集与显示
- 一个可用于实时采集的图像显示控件-用于数据采集的上位机显示中
- EM2040D数据采集软件SIS使用过程中图像实时显示问题(三)
- 8K 视频 采集、压缩编码、传输、显示系统总结
- Opencv学习手册(二)--- 图像采集与显示
- android 采集摄像头帧图像数据并显示
- 【关注图像采集视频传输】之 Cy3014 usb3.0 FIFO接口