基于FPGA的视频图像传输方法研究
Research on Video Image Transmission Method Based on FPGA
DOI: 10.12677/CSA.2023.1312233, PDF, HTML, XML, 下载: 66  浏览: 138 
作者: 汤恩豪, 李 彤*, 房开军, 费俊豪:天津职业技术师范大学电子工程学院,天津
关键词: FPGA以太网ov7725图像传输FPGA Ethernet Network ov7725 Image Transmission
摘要: 现如今,社会对于视频传输的运用越来越广泛,如何更好地进行视频采集在许多行业都是一个经久不衰的问题。本文对基于FPGA的视频图像传输方法展开研究,以太网结合FPGA的高速并行计算能力,实现了视频数据的实时处理和传输。通过实验验证,该系统具有良好的稳定性和传输性能,可满足各种视频传输场景的需求,为物联网时代的视频传输提供了有效的解决方案。
Abstract: Nowadays, the use of video transmission in society is becoming increasingly widespread, and how to achieve better video capture is a long-standing issue in many industries. This article conducts re-search on video image transmission methods based on FPGA. The combination of Ethernet and FPGA’s high-speed parallel computing capabilities enables real-time processing and transmission of video data. Through experimental verification, the system has good stability and transmission per-formance, which can meet the needs of various video transmission scenarios and provide an effective solution for video transmission in the era of the Internet of Things.
文章引用:汤恩豪, 李彤, 房开军, 费俊豪. 基于FPGA的视频图像传输方法研究[J]. 计算机科学与应用, 2023, 13(12): 2333-2340. https://doi.org/10.12677/CSA.2023.1312233

1. 引言

视频产业近年发展愈发迅猛,传统的图像采集方式采用单片机作为核心处理单元,效率低下,对串行数据的处理速率较慢。对于传统的视频图像传输方式来说,随着科技的发展和应用的深入,其局限性也日益显现出来。对于一些需要长距离、高质量视频传输的应用场景,传统的视频传输方式往往难以满足需求,或者需要付出较高的成本。此外,对于一些移动设备或临时应用场景,传统的视频传输方式也可能因为布线困难、维护不易等问题而难以适用。FPGA中文名现场可编程门阵列,相比与单片机集成电路的传统结构,在视频图像信息处理方面集成度高,内部资源丰富,可塑性更强 [1] 。随着以太网技术的不断发展和FPGA的广泛应用,以太网和FPGA的结合为视频传输系统的设计提供了新的思路。以太网作为一种高速、稳定的网络传输技术,已经成为现代通信领域的主流技术之一。而FPGA有强大的并行计算能力和高度的灵活性,可用于实现各种数字信号处理算法。本文将以太网和FPGA相结合,设计了一种高效、稳定的视频传输系统,旨在满足日益增长的视频传输需求,为视频传输领域的发展注入新的活力。

2. 总体系统设计

图像传输系统总体设计如图1所示。

Figure 1. System block diagram

图1. 系统总体框图

本次FPGA芯片选用Altera系列的EP4CE10F17C8板卡。系统开始工作时由时钟生成模块为整个系统提供工作时钟。上电后首先开始驱动摄像头工作,将传输协议写入摄像头寄存器进行初始化配置。配置完成后即开始采集图像,采集到的数据先缓存到FPGA的SDRAM当中并进行简单处理,由FIFO控制数据处理逻辑 [2] ,再通过图像格式配置将图像信息处理成相应的传输格式 [3] 。之后将图像信息打包成以太网数据包,经过以太网发送到上位机。在上位机端进行数据解包,还原出原始图像信息,观察并验证结果。

3. 系统模块设计

3.1. ov7725

系统的图像信息采集主要由摄像头ov7725完成,光线通过镜头投射到ov7725的图像传感器表面上,图像传感器将接收到的光学图像转换为电信号,这些电信号随后被转换为数字图像信号,转换后的数字图像信号被送到数字信号处理芯片中进行加工处理,其内部功能框图如图2所示。

Figure 2. Internal function block diagram

图2. 内部功能框图

(1) 控制寄存器

图2中标号1的位置是ov7725的控制寄存器,它根据这些寄存器配置的参数来运行。配置的参数由外部控制器即FPGA通过SDA和SCL引脚来写入。

(2) 通信、控制信号及时钟

图2标号2处包含了ov7725的通信、控制信号及外部时钟,其中PCLK、HREF及VSYNC分别是像素同步时钟、行同步信号以及帧同步信号 [4] 。RSTB引脚为低电平时,用于复位整个传感器芯片,PWDN用于控制芯片进入低功耗模式。XCLK用于驱动整个传感器芯片的时钟信号,由外部输入;而PCLK是ov7725输出数据时的同步信号,由内部输出。

(3) 感光矩阵

图2标号3处的是感光矩阵,光信号在这里转化成电信号,经过各种处理,这些信号存储成由一个个像素点表示的数字图像。

(4) 数据输入信号

图2标号4处包含了DSP处理单元 [5] ,它会根据控制寄存器的配置做一些基本的图像处理运算。这部分还包含了图像格式转换单元及压缩单元,转换出的数据最终通过D0-D9引脚输出。

3.2. 图像采集模块

ov7725内部例化了SSCB协议(ov7725_sccb),寄存器配置(ov7725_cfg)以及图像采集(ov7725_data)等三个模块共同工作。配置好SCCB协议与寄存器过后,图像采集模块开始工作。时钟信号为ov7725_pclk,由ov7725摄像头自带晶振产生并传入,频率24MHz,作为模块工作时钟;复位信号sys_rst_n,低电平有效;ov7725_vsync为摄像头采集图像的场同步信号;ov7725_href为行有效图像使能信号,信号只有采集图像行有效显示区域为高电平,其他时刻为低电平,ov7725_data位宽为8bit,采集的图像数据分两次传入模块,先传入图像数据高字节,下个时钟周期传入低字节,所以显示图像就需要对传入图像数据进行拼接,拼接后的数据做一下缓存输出写入SDRAM [6] 。而且摄像头刚采集的前几帧图像数据不太稳定,先舍弃前10帧图像。图像采集功能模块如图3所示。

Figure 3. Image acquisition function module diagram

图3. 图像采集功能模块图

3.3. 以太网通信

3.3.1. 通信协议

本次以太网传输基于UDP协议,该协议的功能主要是将图像信息数据封装成特定格式,而UDP协议是一个基于IP协议,所以打包每个传输数据时需要在UDP数据基础上加上IP包头信息,就能得到IP层的数据内容 [7] 。IP层经MAC层发送,因此在其数据基础上再加上MAC帧头以及校验字段,即可得到MAC层数据内容,系统中的MAC层即FPGA板载,三者之间的关系如图4所示。

除了以上数据层之间的联系,在传输过程中还需要转换芯片PHY,MAC层与PHY之间的连接使用的是MII接口协议 [8] 。在MII接口协议中,每个时钟周期只传输4位数据,数据传输时先发送字节的低4位,再发送字节的高4位,数据和使能信号在时钟的下降沿变化,时钟上升沿可以采集到数据稳定状态。MII接口数据接收、发送时序图如图5所示。

Figure 4. Contact figure

图4. 联系图

Figure 5. The MII protocol timing diagram

图5. MII协议时序图

在数据传输过程中,MAC层将数据发送到TXD信号线上,并通过TX_EN信号线指示PHY层进行数据的发送。PHY层在接收到TX_EN信号后,将数据从TXD信号线上读取,并通过物理层进行发送。同时,PHY层还会通过RX_DV信号线指示MAC层有数据接收。

3.3.2. 图像数据打包

数据打包是读取SDRAM中待发送的图像数据按照上位机格式进行数据打包并发送,并且在上位机能接收到完整的图像数据,获取图像信息。一个完整的图像数据协议包括:4字节包头数据、1字节设备地址、包长度、指令、图像数据、CRC校验位。图像数据包协议见表1。其中,包头和设备地址字段主要添加以太网帧的头部信息,包括源MAC地址、目标MAC地址等 [9] 。指令和包长度字段用于标识数据包中携带的长度信息和数据类型。

Table 1. Image data package protocol

表1. 图像数据包协议

本次传输的图像格式为RGB565,分辨率为640 * 480。一帧完整的图像分为75个数据包传输,一个包包含有效像素8192字节。每传输一个数据包图像信息,每帧的第一个数据包对应添加包头,校验地址,包长度及指令等信息,相应的校验信息也会添加在末尾。数据包抓取如图6所示。

Figure 6. Data packet

图6. 数据包

3.3.3. 图像数据接收

接收端接收到的数据是一个个完整的以太网数据包,此时进行地址校验与数据提取,在模块内定义7个状态,状态跳转图如图7所示。

Figure 7. State jump diagram

图7. 状态跳转图

数据包以字节为单位,以太网数据包中的各类型数据的字节宽度包含在数据中的,利用字节宽度信息作为状态机跳转的约束条件 [10] 。

(1) 初始状态:

系统上电后,模块内状态机一直处于初始状态,在系统时钟上升沿,当检测到数据使能信号为高电平、拼接数据为8'h55时,使能信号拉高一个时钟周期,状态机跳转到数据包头接收状态。

(2) 数据包头接收状态:

在数据包头接收状态内,完成前导码+帧起始界定符的接收与检验。声明字节计数器,初值为0,状态机处于数据包头接收状态时,数据使能信号拉高一次,计数器自加1。计数值为6,拼接数据为8'hd5,帧起始界定符通过检验,计数器归零,使能信号拉高一个时钟周期,状态机跳转到以太网帧头接收状态。

(3) 以太网帧头接收状态:

此状态内会接收14字节数据,包括6字节的目的MAC地址、6字节源MAC地址、2字节长度/类型字节。其中0-5字节就是要校验的目的MAC地址。当MAC地址寄存器寄存的MAC地址与板卡MAC地址相同时,标志信号保持高电平。14个字节接收完毕,标志信号mac-flag信号为高电平,表示目的MAC地址正确,状态机跳转到IP首部接收状态。

(4) IP首部接收状态:

校验IP地址,地址校验通过状态跳转到UDP首部接收状态,校验不通过就跳转到初始状态。

(5) UDP首部接收状态:

UDP首部包含8字节数据,分别是源端口、目的端口、数据长度(UDP首部 + 数据长度)、checksum校验字节,其中第5、6字节包含数据长度信息,在此状态只提取数据长度信息,为后面数据接收做准备。

(6) 有效数据接收状态:

有效数据的字节长度是要在数据字节长度基础上减去UDP首部的字节长度。利用寄存器寄存有效数据字节长度信息。同时,字节计数器对传入的有效字节数据进行计数,有效数据接收完毕,计数器归0,使能信号拉高一个时钟周期,状态机跳转到结束状态。

(7) 结束状态:

在结束状态中,当数据使能信号为低电平时,以太网数据接收完毕,状态机跳回到初始状态,等待下一个以太网数据包的传入。

4. 仿真与验证

系统验证

本次在日常生活环境中进行了模拟测试,验证系统的正确性。在上位机端使用了wireshark和网络调试助手进行验证,验证以太网传输的图像数据的准确性,如图8所示。

Figure 8. The upper position machine displays figure

图8. 上位机显示图

系统整体如图9所示,各项参数见表2

Figure 9. Overall system diagram

图9. 整体系统图

Table 2. Hardware parameter table

表2. 硬件参数表

5. 结论

基于FPGA的以太网视频图像传输系统在设计上充分发挥了FPGA的并行处理和灵活配置的优势,结合以太网的高速传输特性,实现了高效、稳定的视频传输。该系统在实际应用中,不仅提高了视频传输的质量和实时性,还为各种视频传输应用场景提供了更大的灵活性和可扩展性 [11] 。随着技术的不断进步,我们相信基于FPGA的以太网视频传输系统将会在未来发挥更大的作用,满足更为复杂和多样化的需求。

NOTES

*通讯作者。

参考文献

[1] 颜子博, 韩文波, 翟旭华. 基于国产FPGA的视频采集系统设计[J]. 长春理工大学学报(自然科学版), 2023, 46(4): 99-106.
[2] 刘志杨, 郭继昌, 关欣, 等. 利用FPGA实现同步FIFO设置方法[J]. 电子测量技术, 2006, 29(1): 65-66.
[3] 李博古, 钱博. 基于FPGA的图像预处理与传输方法研究[J]. 网络安全技术与应用, 2023(5): 54-57.
[4] 李营, 吕兆承. 基于FPGA的图像采集与实时显示系统设计[J]. 湖北大学学报(自然科学版), 2022, 44(1): 8-13.
[5] 于春和, 姜晓博, 张超. 基于DSP技术的摄像头自动调焦系统的设计[J]. 沈阳航空航天大学学报, 2012, 29(4): 68-71.
[6] 张四维, 王勋志, 谭静波. 基于PCI和FPGA的高速数据采集系统[J]. 广东通信技术, 2023, 43(8): 56-65.
[7] 徐志辉. FPGA和以太网的实时视频图像传输系统[J]. 电子世界, 2022(1): 51-52.
[8] 许俊, 林水生. 基于FPGA的以太网MII接口扩展设计与实现[J]. 电子设计应用, 2005(5): 110-113.
[9] 杨武, 张俊, 苏国旺, 等. 基于FPGA的千兆以太网MAC控制器的设计[J]. 仪表技术与传感器, 2023(7): 28-32.
[10] 魏晓艳. 基于FPGA的千兆以太网数据通信接口设计与实现[J]. 微型电脑应用, 2022, 38(5): 69-72.
[11] 屈召贵, 鲁顺昌. 以太网通信在嵌入式系统中的应用研究[J]. 黑龙江科技信息, 2015(28): 160-161.