基于TCP协议的多路视频原始流接收系统及方法.pdf

上传人:GAME****980 文档编号:14329415 上传时间:2024-01-24 格式:PDF 页数:13 大小:1.13MB
收藏 版权申诉 举报 下载
基于TCP协议的多路视频原始流接收系统及方法.pdf_第1页
第1页 / 共13页
基于TCP协议的多路视频原始流接收系统及方法.pdf_第2页
第2页 / 共13页
基于TCP协议的多路视频原始流接收系统及方法.pdf_第3页
第3页 / 共13页
文档描述:

《基于TCP协议的多路视频原始流接收系统及方法.pdf》由会员分享,可在线阅读,更多相关《基于TCP协议的多路视频原始流接收系统及方法.pdf(13页完成版)》请在专利查询网上搜索。

1、(19)国家知识产权局(12)发明专利申请(10)申请公布号 (43)申请公布日 (21)申请号 202310695491.5(22)申请日 2023.06.13(71)申请人 湖南泽天智航电子技术有限公司地址 410000 湖南省长沙市高新开发区青山路699号湖南省军民融合科技创新产业园2栋13层1304-1306号(72)发明人 陈旺唐兴李雪(74)专利代理机构 广州市红荔专利代理有限公司 44214专利代理师 唐芳(51)Int.Cl.H04L 1/1809(2023.01)H04L 1/00(2006.01)H04L 1/1607(2023.01)H04L 69/12(2022.01)。

2、H04L 69/163(2022.01)(54)发明名称一种基于TCP协议的多路视频原始流接收系统及方法(57)摘要本发明公开了一种基于TCP协议的多路视频原始流接收系统及方法,该系统包括CPU、网卡和多个光纤接口模块,CPU通过PCIE总线与网卡相连接,网卡通过配置网卡芯片的寄存器直接与多个光纤接口模块相连接;CPU用于向网卡发送报文,若在设定的往返时延内未收到网卡返回的对报文的确认时,则对报文重传,直至收到网卡返回的报文的确认为止,报文中携带有用于向网卡传输视频原始流的请求。本发明实现CPU端和多路视频原始流发送端的连接,便捷实现实时嵌入式系统中多路视频原始流接收任务,开发与调试效率显著提。

3、高;系统易于扩展、实时性强、移植性好、不需使用硬核资源、软件工作量显著减少,极大满足了应用系统的多层次需求。权利要求书2页 说明书8页 附图2页CN 116614208 A2023.08.18CN 116614208 A1.一种基于TCP协议的多路视频原始流接收系统,其特征在于,包括CPU(10)、网卡(20)和多个光纤接口模块(30),所述CPU(10)通过PCIE总线与所述网卡(20)相连接,所述网卡(20)通过配置网卡芯片的寄存器直接与多个所述光纤接口模块(30)相连接;所述CPU(10)用于向所述网卡(20)发送报文,若在设定的往返时延内未收到所述网卡(20)返回的对所述报文的确认时,。

4、则对所述报文重传,直至收到所述网卡(20)返回的所述报文的确认为止,所述报文中携带有用于向所述网卡(20)传输视频原始流的请求。2.如权利要求1所述的基于TCP协议的多路视频原始流接收系统,其特征在于,所述CPU(10)使用一个校验和函数来检验传输数据是否有错误,在发送和接收时都要对所述传输数据计算校验和;同时使用MD5认证对所述传输数据进行加密。3.如权利要求1所述的基于TCP协议的多路视频原始流接收系统,其特征在于,所述CPU(10)与存储器相连接,所述存储器内设有固定大小的缓冲空间,所述CPU(10)用于计算每路视频原始流每帧的数据量,以及每路视频原始流每帧间隔的时间,同时启动计时功能,。

5、从所述缓冲区中拿走第一帧数据量,之后等待每帧间隔时间去获取第二帧数据,然后等待每帧间隔时间后去获取第三帧数据,通过缓冲空间机制达到每路视频按照帧率传输。4.如权利要求3所述的基于TCP协议的多路视频原始流接收系统,其特征在于,所述CPU(10)包括虚拟驱动层(11)、设备驱动层(12)和应用层(13),所述应用层(13)用于主要为上层应用提供接口服务和实现多路视频原始流的接收;所述设备驱动层(12)用于对上为所述虚拟驱动层(11)提供视频原始贴数据,对下完成硬件初始化配置,以及接收数据模式的初始化;所述虚拟驱动层(11)用于为上层应用提供一套操作系统规定的标准化API函数,向底层硬件驱动程序层。

6、注册回调函数,以及完成其内部初始化。5.如权利要求4所述的基于TCP协议的多路视频原始流接收系统,其特征在于,所述虚拟驱动层(11)包括用户接口模块(111)、帧接收模块(112)、定时模块(113)、帧数据量计算模块(114)和帧间时间计算模块(115),其中,所述用户接口模块(111),用于实现数据交互;所述帧接收模块(112),用于接收视频原始帧;所述定时模块(113),用于与所述帧间时间计算模块(115)协同工作,通过对帧与帧之间的时间间隔进行计算,决定下一帧的接收时间点;所述帧数据量计算模块(114),用于计算每路视频原始流每帧的数据量;所述帧接收模块(112)还用于根据所述帧数据量。

7、计算模块(114)计算出来的所述数据量,决定接收的所述缓冲区大小。6.如权利要求4所述的基于TCP协议的多路视频原始流接收系统,其特征在于,所述设备驱动层(12)包括PCIE转万兆网驱动模块。7.如权利要求4所述的基于TCP协议的多路视频原始流接收系统,其特征在于,所述CPU(10)采用滑动窗口协议,对与窗口内未经确认的分组需要重传。8.一种基于TCP协议的多路视频原始流接收方法,应用于如权利要求1至7任意一项所述的基于TCP协议的多路视频原始流接收系统中,其特征在于,所述基于TCP协议的多路视频原始流接收方法包括以下步骤:CPU检测数据包;CPU若识别到所述数据包中的视频原始贴数据为有效中断。

8、时,则触发网络设置中断;权利要求书1/2 页2CN 116614208 A2CPU在中断函数中启动中断唤醒轮询模式,接收视频原始贴数据,并清除中断标志位,待处理完本次视频原始流后退出所述中断唤醒轮询模式。9.如权利要求8所述的基于TCP协议的多路视频原始流接收方法,其特征在于,所述CPU若识别到所述数据包中的视频原始贴数据为有效中断时,则触发网络设置中断的步骤包括:CPU读取网络设备的状态寄存器,据此判断中断类型,CPU如果识别到所述数据包中的视频原始贴数据是异常中断时,则进入异常中断处理模块,处理异常并清除中断标志位;CPU如果识别到所述数据包中的视频原始贴数据是接收数据有效中断时,则进入数。

9、据接收模块,将网卡接收的视频原始贴数据读入到系统中;CPU调用虚拟驱动层的回调函数将视频原始贴数据放到相应的缓存中。10.如权利要求9所述的基于TCP协议的多路视频原始流接收方法,其特征在于,所述CPU若识别到所述数据包中的视频原始贴数据为有效中断时,则触发网络设置中断的步骤包括:CPU如果识别到所述数据包中的视频原始贴数据不是接收数据有效中断时,则等待下次中断。权利要求书2/2 页3CN 116614208 A3一种基于TCP协议的多路视频原始流接收系统及方法技术领域0001本发明涉及实时嵌入式通信技术领域,尤其公开了一种基于TCP协议的多路视频原始流接收系统及方法。背景技术0002TCP协。

10、议位于TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)协议的传输层,TCP是面向连接、可靠的、字节流传输。由IETF(The Internet Engineering Task Force,国际互联网工程任务组)的RFC793定义。TCP旨在适应支持多网络应用的分层协议层次结构。连接到不同但互联的计算机通信网络的主计算机中的成对进程之间依靠TCP提供可靠的通信服务。TCP假设它可以从较低级别的协议获得简单的,可能不可靠的数据报服务。原则上,TCP应该能够从硬线连接到分组交换或电路交换网络的各种通信系统之上操作。

11、。0003在目前主流的视频流传输方案中,往往传输层采取UDP(User Datagram Protocol,用户数据报协议)协议进行编码后的视频流传输,TCP作为视频流的控制。主要是UDP协议传输的速度相对于TCP协议传输速度要快,编码后的视频流数据量少,UDP传输过程中丢失的部分数据并不会影响视频的观看,此外一般播放的设备性能足够强,内存够大,可以在传输过程中先缓存到内存中。TCP协议提供数据到达确认、排序以及流量控制等功能,故占用了一部分带宽和性能。在本系统中,由于是嵌入式设备,性能和内存无法跟传统桌面设备相比较,视频的原始流数据量大,需要在不丢失数据、完整、不影响传输速度的情况下,正确的。

12、被接收,以便于后续被正确处理,比如视频编码等。传输的过程中需要进行流量控制,接收一帧数据,等待每帧间隔时间后,才可接收下一帧数据,对数据的接收和处理过程在时间上要求严格。0004在目前的嵌入式系统开发中,考虑到成本等各方面的因素,CPU的频率和内存大小以及存储空间相对于传统桌面系统都远远不如。因此,需要充分利用万兆网的速度和PCIE(peripheral component interconnect express,高速串行计算机扩展总线标准)接口,通过软件上的传输方式来实现在不丢失数据和不影响速度的情况下实现多路视频原始流接收。在CPU与万兆网卡之间使用PCIE接口的方式进行连接,满足于万兆。

13、网络的速度要求。对与视频原始流的接收,通过TCP协议中的流量控制和数据的可靠性传输特性,完成对视频原始流的完整性和按帧率接收。TCP协议是端对端,视频原始流发送端通过与本系统建立连接,即可完成多路视频流的传输。0005因此,如何实现CPU端和多路视频原始流发送端的连接,完成多路视频原始流接收任务,是目前亟待解决的技术问题。发明内容0006本发明提供了一种基于TCP协议的多路视频原始流接收系统及方法,旨在解决CPU端与多路视频原始流发送端的有效传输的技术问题。说明书1/8 页4CN 116614208 A40007本发明的一方面涉及一种基于TCP协议的多路视频原始流接收系统,包括CPU、网卡和多。

14、个光纤接口模块,CPU通过PCIE总线与网卡相连接,网卡通过配置网卡芯片的寄存器直接与多个光纤接口模块相连接;CPU用于向网卡发送报文,若在设定的往返时延内未收到网卡返回的对报文的确认时,则对报文重传,直至收到网卡返回的报文的确认为止,报文中携带有用于向网卡传输视频原始流的请求。0008进一步地,CPU使用一个校验和函数来检验传输数据是否有错误,在发送和接收时都要对传输数据计算校验和;同时使用MD5认证对传输数据进行加密。0009进一步地,CPU与存储器相连接,存储器内设有固定大小的缓冲空间,CPU用于计算每路视频原始流每帧的数据量,以及每路视频原始流每帧间隔的时间,同时启动计时功能,从缓冲区。

15、中拿走第一帧数据量,之后等待每帧间隔时间去获取第二帧数据,然后等待每帧间隔时间后去获取第三帧数据,通过缓冲空间机制达到每路视频按照帧率传输。0010进一步地,CPU包括虚拟驱动层、设备驱动层和应用层,应用层用于主要为上层应用提供接口服务和实现多路视频原始流的接收;设备驱动层用于对上为虚拟驱动层提供视频原始贴数据,对下完成硬件初始化配置,以及接收数据模式的初始化;虚拟驱动层用于为上层应用提供一套操作系统规定的标准化API函数,向底层硬件驱动程序层注册回调函数,以及完成其内部初始化。0011进一步地,虚拟驱动层包括用户接口模块、帧接收模块、定时模块、帧数据量计算模块和帧间时间计算模块,其中,001。

16、2用户接口模块,用于实现数据交互;0013帧接收模块,用于接收视频原始帧;0014定时模块,用于与帧间时间计算模块协同工作,通过对帧与帧之间的时间间隔进行计算,决定下一帧的接收时间点;0015帧数据量计算模块,用于计算每路视频原始流每帧的数据量;0016帧接收模块还用于根据帧数据量计算模块计算出来的数据量,决定接收的缓冲区大小。0017进一步地,设备驱动层包括PCIE转万兆网驱动模块。0018进一步地,CPU采用滑动窗口协议,对与窗口内未经确认的分组需要重传。0019本发明的另一方面涉及一种基于TCP协议的多路视频原始流接收方法,应用于上述的基于TCP协议的多路视频原始流接收系统中,基于TCP。

17、协议的多路视频原始流接收方法包括以下步骤:0020CPU检测数据包;0021CPU若识别到数据包中的视频原始贴数据为有效中断时,则触发网络设置中断;0022CPU在中断函数中启动中断唤醒轮询模式,接收视频原始贴数据,并清除中断标志位,待处理完本次视频原始流后退出中断唤醒轮询模式。0023进一步地,CPU若识别到数据包中的视频原始贴数据为有效中断时,则触发网络设置中断的步骤包括:0024CPU读取网络设备的状态寄存器,据此判断中断类型,CPU如果识别到数据包中的视频原始贴数据是异常中断时,则进入异常中断处理模块,处理异常并清除中断标志位;CPU如果识别到数据包中的视频原始贴数据是接收数据有效中断。

18、时,则进入数据接收模块,说明书2/8 页5CN 116614208 A5将网卡接收的视频原始贴数据读入到系统中;0025CPU调用虚拟驱动层的回调函数将视频原始贴数据放到相应的缓存中。0026进一步地,CPU若识别到数据包中的视频原始贴数据为有效中断时,则触发网络设置中断的步骤包括:0027CPU如果识别到数据包中的视频原始贴数据不是接收数据有效中断时,则等待下次中断。0028本发明所取得的有益效果为:0029本发明提供一种基于TCP协议的多路视频原始流接收系统及方法,采用CPU、网卡和多个光纤接口模块,CPU通过PCIE总线与网卡相连接,网卡通过配置网卡芯片的寄存器直接与多个光纤接口模块相连。

19、接;CPU用于向网卡发送报文,若在设定的往返时延内未收到网卡返回的对报文的确认时,则对报文重传,直至收到网卡返回的报文的确认为止,报文中携带有用于向网卡传输视频原始流的请求。本发明提供的基于TCP协议的多路视频原始流接收系统及方法,采用TCP协议来实现CPU端和多路视频原始流发送端的连接,便捷实现实时嵌入式系统中多路视频原始流接收任务,解决了系统对多路视频原始流接收的应用需求,开发与调试效率显著提高;同时,系统易于扩展、实时性强、移植性好、不需使用硬核资源、软件工作量显著减少,极大满足了应用系统的多层次需求。附图说明0030图1为本发明提供的基于TCP协议的多路视频原始流接收系统一实施例的功能。

20、框图;0031图2为图1中CPU的软件模块的结构示意图;0032图3为本发明提供的基于TCP协议的多路视频原始流接收方法一实施例的流程示意图;0033图4为图3中所示的CPU若识别到数据包中的视频原始贴数据为有效中断时,则触发网络设置中断步骤一实施例的细化流程示意图。0034附图标号说明:003510、CPU;20、网卡;30、光纤接口模块;11、虚拟驱动层;12、设备驱动层;13、应用层;111、用户接口模块;112、帧接收模块;113、定时模块;114、帧数据量计算模块;115、帧间时间计算模块。具体实施方式0036为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技。

21、术方案做详细的说明。0037如图1和图2所示,本发明第一实施例提出一种基于TCP协议的多路视频原始流接收系统,包括CPU10、网卡20和多个光纤接口模块30,CPU10通过PCIE(peripheral component interconnect express,高速串行计算机扩展总线标准)总线与网卡20相连接,网卡20通过配置网卡芯片的寄存器直接与多个光纤接口模块30相连接;CPU10用于向网卡20发送报文,若在设定的往返时延内未收到网卡20返回的对报文的确认时,则对报文重传,直至收到网卡20返回的报文的确认为止,报文中携带有用于向网卡20传输视频原始流的请说明书3/8 页6CN 1166。

22、14208 A6求。多路视频原始流的传输要求数据的完整性传输、可靠性保证,数据正确性和合法性,并按照每路视频流特定的帧率传输。0038TCP(Transmission Control Protocol,传输控制协议)协议是一种面向连接的、可靠的、基于字节流的传输层通信协议。其中:0039TCP层位于IP(Internet Protocol,网际互连协议)层之上,应用层之下的中间层。CPU10使用一个校验和函数来检验数据是否有错误,在发送和接收时都要计算校验和;同时可以使用MD5(MD5MessageDigest Algorithm,消息摘要算法)认证对数据进行加密,保证了数据正确性和合法性。T。

23、CP协议为了保证报文传输的可靠,就给每个包一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收的字节发回一个相应的确认(Acknowledge character,ACK);如果发送端实体在合理的往返时延(RoundTrip Time,RTT)内未收到确认,那么对应的数据将会被重传,保证了数据的完整性。TCP协议采用滑动窗口协议、对与窗口内未经确认的分组需要重传,保证了数据的可靠性。TCP还提供了流量控制。TCP连接的每一方都有固定大小的缓冲空间。TCP的接收端只允许另外一端发送接收端缓冲区所能接纳的数据,这将防止较快主机致使较慢主机的缓冲区溢出。0040本实施例。

24、中,通过计算每路视频原始流每帧的数据量,以及每路视频原始流每帧间隔的时间,在接收到一帧视频原始流数据的同时启动计时功能,从缓冲区中拿走一帧数据量,之后等待每帧间隔时间去获取第二帧数据,然后等待每帧间隔时间后去获取第三帧数据,通过此机制达到每路视频按照帧率传输的目的。0041请见图1和图2,本实施例提出的基于TCP协议的多路视频原始流接收系统,CPU10与存储器相连接,存储器内设有固定大小的缓冲空间,CPU10用于计算每路视频原始流每帧的数据量,以及每路视频原始流每帧间隔的时间,同时启动计时功能,从缓冲区中拿走第一帧数据量,之后等待每帧间隔时间去获取第二帧数据,然后等待每帧间隔时间后去获取第三帧。

25、数据,通过缓冲空间机制达到每路视频按照帧率传输。进一步地,CPU10包括虚拟驱动层11、设备驱动层12和应用层13,应用层13用于主要为上层应用提供接口服务和实现多路视频原始流的接收;设备驱动层12用于对上为虚拟驱动层11提供视频原始贴数据,对下完成硬件初始化配置,以及接收数据模式的初始化;虚拟驱动层11用于为上层应用提供一套操作系统规定的标准化API函数,向底层硬件驱动程序层注册回调函数,以及完成其内部初始化。虚拟驱动层11包括用户接口模块111、帧接收模块112、定时模块113、帧数据量计算模块114和帧间时间计算模块115,其中,用户接口模块111,用于实现数据交互;帧接收模块112,用。

26、于接收视频原始帧;定时模块113,用于与帧间时间计算模块115协同工作,通过对帧与帧之间的时间间隔进行计算,决定下一帧的接收时间点;帧数据量计算模块114,用于计算每路视频原始流每帧的数据量;帧接收模块112还用于根据帧数据量计算模块114计算出来的数据量,决定接收的缓冲区大小。设备驱动层12包括PCIE转万兆网驱动模块。CPU10采用滑动窗口协议,对与窗口内未经确认的分组需要重传。0042本实施例提出的基于TCP协议的多路视频原始流接收系统,其工作原理如下所示:0043基于TCP协议的多路视频原始流接收系统系统包括虚拟驱动层11、设备驱动层12和应用层13。本系统中虚拟驱动层11包括用户接口。

27、模块111、帧接收模块112、定时模块113、帧数据量计算模块114和帧间时间计算模块115,用于提供API函数、注册回调函数和内部初始化。用户接口模块111为API函数组成,用户通过此模块与虚拟驱动层11进行数据的交互;说明书4/8 页7CN 116614208 A7帧接收模块112通过与设备驱动层12进行数据交互,获取到视频帧,然后统一通过用户接口模块111,将视频帧提交到应用层13。定时模块113与帧间时间计算模块115协同工作,在帧接收模块112接收视频帧的时候,帧间时间计算模块115通过对帧与帧之间的时间间隔进行计算,得到帧与帧之间的间隔时间,定时模块113开始计时决定下一帧的接收时。

28、间点;帧数据量计算模块114用于计算每路视频原始流每帧的数据量,帧接收模块112通过计算出来的数据量,来决定接收的缓冲区大小。0044设备驱动层12在系统中启动承上启下的桥梁作用,对上为虚拟驱动层11提供实时有效的视频数据,对下完成硬件初始化配置,以及接收数据模式的初始化。其主要过程是完成PCIE转万兆网模块的驱动,注册万兆网卡的中断服务函数,以及建立内核数据接收线程。PCIE转万兆网驱动模块为系统提供万兆网络的功能,系统通过此模块实现网络视频数据的接收。在万兆网络的基础上,通过万兆网络的中断服务函数和内核数据接收线程,将数据接收模式初始化为中断方式+轮询的方式,在发送端发送数据包后,触发系统。

29、中断,调用万兆网络的中断服务函数,系统唤醒数据接收线程启动轮询模式接收数据包,启动轮询模式后,会清除中断标志位,数据接收线程将数据接收完后进入休眠状态,等待下次被中断唤醒。数据包通过光纤到达万兆网卡后,万兆网卡检测到了数据包,会通过PCIE发送INTA中断给CPU10,CPU10接到PCIE发过来的INTA中断,触发中断处理函数,中断处理函数启动轮询模式,并清除INTA中断标志位,在轮询模式中接收数据包,并放入接收缓冲中。接收完数据后,退出轮询模式,数据包接收完毕。0045应用层13主要实现多路视频原始流的接收,应用程序通过调用操作系统所规定的标准用户接口层API函数和虚拟驱动层中的用户接口模。

30、块来实现其多路视频原始流接收的功能。0046为实现基于TCP协议的多路视频原始流接收系统,需要相应的操作系统和模块来提供服务。该软件模块对下需要驱动硬件正常工作,对上需要提供应用程序调用接口。本实施例选择的操作系统为linux,网卡20中的万兆网卡芯片型号为wx1820,其软件模块的框架包括三层,分别为应用层13、虚拟驱动层11和设备驱动层12。0047如图2所示,图2为图1中CPU的软件模块的结构示意图,在本实施中,00481、应用层13主要为上层应用提供接口服务,用户应用程序通过调用操作系统所规定的标准用户接口层API函数来实现其通信功能。00492、虚拟驱动层11包括用户接口模块111、。

31、帧接收模块112、定时模块113、帧数据量计算模块114和帧间时间计算模块115,用户接口模块111本质上就是系统内核自定义的一套操作函数和数据结构,而帧接收模块112用于接收视频原始帧,定时模块113与帧间时间计算模块115协同工作,通过对帧与帧之间的时间间隔进行计算,决定下一帧的接收时间点,帧数据量计算模块114计算每路视频原始流每帧的数据量,帧接收模块112通过计算出来的数据量,来决定接收的缓冲区大小。虚拟驱动层11主要有三个功能:0050(1)为上层应用提供一套操作系统规定的标准化API函数。本实施例的多路视频原始流接收系统是基于操作系统linux实现的,故对操作系统提供的API进行抽。

32、象封装,便于上层应用更便捷的调用。万兆网络注册是在设备驱动层中完成的。同时虚拟驱动层调用相应操作系统函数完成其网络的操作。其对上层注册的读写和控制函数如下:0051createSocket:网络设备打开函数;说明书5/8 页8CN 116614208 A80052closeSocket:网络设备关闭函数;0053receiveFrom:网络设备数据读取函数;0054sendTo:网络设备数据发送函数;0055ioctrlSocket:网络设备控制函数;0056startTiming:开启定时模块;0057stopTiming:关闭定时模块;0058startFrameIntervalTimeC。

33、ount:开启帧间时间计算模块;0059stopFrameIntervalTimeCount:关闭帧间时间计算模块;0060startFrameDataVolumeCalculator:开启帧数据量计算模块;0061stopFrameDataVolumeCalculator:关闭帧数据量计算模块。0062(2)向底层硬件驱动程序层注册回调函数。在CPU从万兆网卡接收到视频原始流后,底层硬件驱动会将接收的数据放入虚拟驱动层初始化时设置的缓冲区中。当缓冲区为空时,如果是阻塞方式则需要等待,如果是非阻塞方式则立即返回错误。如果缓冲区被视频原始流数据填充,receiveFrom函数会调用回调函数将系统。

34、缓冲区的视频原始流数据传到上层应用,当底层硬件驱动程序接收到一个字符时,就产生中断,然后调用轮询方式将视频原始流数据放入系统缓冲区中,虚拟驱动层提供的回调函数将视频原始流数据写入上层缓冲区中以供上层读取。0063因此,虚拟驱动层11需要提供给底层硬件驱动程序一个回调函数:实现底层硬件驱动程序向读缓冲区中写视频原始流函数。0064(3)完成其内部初始化0065内部初始化的工作主要驱动程序注册、创建视频原始流通道、定时模块、帧数据量计算模块和帧间时间计算模块初始化。0066驱动程序注册0067驱动程序注册是将驱动程序的入口点填入到驱动程序表中,为上层应用程序提供驱动程序的调用接口。在本系统中,设计。

35、了Open、Close、Read、Write和Ioctrl等多个函数,通过linux操作系统函数module_init实现注册。0068创建视频流通道设备0069为了将各个通道的视频流添加到系统列表中,需要为每个视频流通道设置不同的端口号,并关联视频原始流接收函数。0070初始化系统参数0071初始化主要针对每个通道设置它的端口号、视频原始流接收回调函数以及其它参数等。0072设备驱动层12主要包括各种底层硬件驱动程序。设备驱动层12向上与虚拟驱动层11交互,向下与具体硬件交互。主要完成三个方面的功能:一是向上层提供回调函数注册功能,例如启动接收视频原始流数据函数;二是完成不同端口的通信设置,。

36、主要是设置内存空间映射,通过访问不同内存空间实现对不同通道的访问;三是控制通道进行视频原始流接收和其他硬件配置工作,实现视频原始流的接收。正常方式下,通过中断方式加轮询的方式进行数据的接收。0073如图3所示,图3为本发明提供的基于TCP协议的多路视频原始流接收方法一实施说明书6/8 页9CN 116614208 A9例的流程示意图,在本实施例中,该基于TCP协议的多路视频原始流接收方法应用于上述的基于TCP协议的多路视频原始流接收系统中,包括以下步骤:0074步骤S100、CPU检测数据包。0075步骤S200、CPU若识别到数据包中的视频原始贴数据为有效中断时,则触发网络设置中断。0076。

37、步骤S300、CPU在中断函数中启动中断唤醒轮询模式,接收视频原始贴数据,并清除中断标志位,待处理完本次视频原始流后退出中断唤醒轮询模式。0077进一步地,请见图4,图4为图3中所示的步骤S200一实施例的细化流程示意图,在本实施例中,步骤S200包括:0078步骤S210、CPU读取网络设备的状态寄存器,据此判断中断类型,CPU如果识别到数据包中的视频原始贴数据是异常中断时,则进入异常中断处理模块,处理异常并清除中断标志位;CPU如果识别到数据包中的视频原始贴数据是接收数据有效中断时,则进入数据接收模块,将网卡接收的视频原始贴数据读入到系统中。0079步骤S220、CPU调用虚拟驱动层的回调。

38、函数将视频原始贴数据放到相应的缓存中。0080进一步地,本发明提供的基于TCP协议的多路视频原始流接收方法,步骤S200还包括:0081步骤S230、CPU如果识别到数据包中的视频原始贴数据不是接收数据有效中断时,则等待下次中断。0082本系统中在接收网络视频数据的时候,是通过中断进行触发,然后进行数据的接收,由于网络视频数据量比较大,在接收数据的时候需要耗费大量的时间,而中断处理函数必须要快点执行完毕,越短越好,避免影响系统的响应能力和稳定性,所以必须要对其进行处理,缩短中断处理时间,因此通过中断加轮询方式解决此问题。首先此种方式将接收数据的任务放入到了线程的轮询中,缩短了中断处理函数的执行。

39、时间,其次通过中断唤醒轮询模式,在数据接收线程中进行数据的读取,达到了在中断中读取视频帧的效果,有效的提高了系统的响应能力,提升系统整体性能。0083为实现回调函数注册,虚拟驱动层11定义了结构体为FRAMERERECEIVE_FUNCS的数据结构,该结构体中所有成员都是函数指针,设备驱动层通过对应函数完成相应功能,并将这些函数地址对FRAMERERECEIVE_FUNCS结构体进行初始化并通知给虚拟驱动层11。0084由于本系统需要的网络通讯速度达到了万兆,才能够在传输视频数据的时候有很好的性能体验,万兆网卡20与CPU10之间的通讯速度也需要达到万兆,因此万兆网卡20与CPU10两者之间的。

40、接口采用了PCIE总线进行数据通讯。CPU10通过PCIE访问万兆网卡20,每个PCIE设备都有256byte的配置寄存器空间,PCIE设备分为64byte的头标区和192byte的设备关联区。PCIE配置空间中从地址0 x10开始的6个EP寄存器或2个RC寄存器,用于存储PCIE设备在PCIE域的基地址、基址空间大小等属性。PCIE总线地址空间在系统初始化时就映射为存储器的存储空间,方便处理器访问。处理器在初始化万兆网卡驱动的时候,将分配一段内存空间,并将内存空间的地址通过PCIE传给万兆网卡20,万兆网卡20接收到数据时,会将数据存入到处理器分配好的内存空间中。之后从虚拟驱动层注册到设备驱。

41、动层的回调函数,会将视频原始流从内存空间中传到上层应用。0085尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造说明书7/8 页10CN 116614208 A10性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。说明书8/8 页11CN 116614208 A11图1图2说明书附图1/2 页12CN 116614208 A12图3图4说明书附图2/2 页13CN 116614208 A13。

展开阅读全文
内容关键字: 基于 TCP 协议 视频 原始 接收 系统 方法
关于本文
本文标题:基于TCP协议的多路视频原始流接收系统及方法.pdf
链接地址:https://www.zhuanlichaxun.net/pdf/14329415.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1 
 


收起
展开