CN108462679B - 数据传输方法及装置 - Google Patents
数据传输方法及装置 Download PDFInfo
- Publication number
- CN108462679B CN108462679B CN201710094607.4A CN201710094607A CN108462679B CN 108462679 B CN108462679 B CN 108462679B CN 201710094607 A CN201710094607 A CN 201710094607A CN 108462679 B CN108462679 B CN 108462679B
- Authority
- CN
- China
- Prior art keywords
- data
- video data
- memory address
- memory
- monitoring video
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/222—Studio circuitry; Studio devices; Studio equipment
- H04N5/262—Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
- H04N5/268—Signal distribution or switching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Closed-Circuit Television Systems (AREA)
Abstract
本发明是关于一种数据传输方法及装置,属于视频监控领域。所述方法包括:接收数据传输指令;读取内存中存储的监控视频数据,将所述监控视频数据转换为串行数据流,所述串行数据流中的每个数据包的包头携带在读取所述数据包负载中的视频数据时读指针所指向的内存地址;将所述串行数据流传输至第二主机设备。本发明通过使用与接收监控视频数据所使用的网络协议不同的传输协议来传输串行数据流,提高了监控视频数据传输时的安全性。
Description
技术领域
本发明涉及视频监控领域,特别涉及一种数据传输方法及装置。
背景技术
近年来,随着大众安全意识的增强,视频监控系统应运而生。为了保证各个场所的安全,安全保障部门会随时调看各个场所的监控视频数据,必要时,还需要调看各个场所的实时监控,以便进行统一调度和指挥。其中,上述提及的诸如重要单位、重点部门等场所由于涉及到各部门的机密信息,因此均属于内部网络中的场所,而上述提及的诸如学校、居民小区等场所由于均为公共场所,因此属于外部网络中的场所。因此,在视频监控系统中,分别用两个不同的监控子系统对内部网络与外部网络进行监控。这样,为了实现对两个不同的监控子系统的监控视频数据的统一调用和灵活传输,内部网络的监控子系统与外部网络的监控子系统必须要数据传输系统,而为了确保内部网络中的机密信息的安全,在建立内部网络与外部网络之间的数据传输系统时,内部网络与外部网络之间需要进行物理隔离。
相关技术中,在建立内部网络与外部网络之间的数据传输系统时,分别在内部网络的监控子系统和外部网络的监控子系统中添加隔离计算机,通过隔离计算机对两个监控子系统之间传输的监控视频数据的特征进行判断,以此确定并隔离可疑数据,并基于诸如ARM(Acorn Reduced Instruction Set Computer Machine,微处理器)等处理器或者相关CPU(Central Processing Unit,中央处理器)对隔离计算机进行管理。
在实现本发明的过程中,发明人发现相关技术至少存在以下问题:
当两个监控子系统之间的监控视频数据在数据传输系统中传输和调用时,需要经过隔离计算机,隔离计算机基于诸如TCP(Transmission Control Protocol,传输控制协议)等网络协议接收到一个监控子系统发送的监控视频数据;随后,隔离计算机将监控视频数据中的可疑数据过滤后,基于同样的网络协议将监控视频数据传输至另一个监控子系统,使得数据传输系统在传输监控视频数据时的安全性不高。
发明内容
为克服相关技术中存在的问题,本发明提供一种数据传输方法及装置。
根据本发明实施例的第一方面,提供一种数据传输方法,所述方法应用于第一主机设备,所述方法包括:
接收数据传输指令;
读取内存中存储的监控视频数据,将所述监控视频数据转换为串行数据流,所述串行数据流中的每个数据包的包头携带在读取所述数据包负载中的视频数据时读指针所指向的内存地址;
将所述串行数据流传输至第二主机设备。
本发明实施例提供的方法,第一主机设备在接收到数据传输指令后,读取内存中存储的监控视频数据,并将监控视频数据转换为串行数据流;随后,第一主机设备将串行数据流发送至第二主机设备,使得第二主机设备将监控视频数据存储至内存中。本发明通过使用与接收监控视频数据所使用的网络协议不同的传输协议来传输串行数据流,提高了监控视频数据传输时的安全性。
在另一个实施例中,所述读取内存中存储的监控视频数据,将所述监控视频数据转换为串行数据流包括:
当接收到所述数据传输指令时,以读指针当前所指示的内存地址为读取起点,每读取到预设长度的监控视频数据,将所述预设长度的监控视频数据封装为一个数据包,将进行读取时读指针所指向的内存地址携带在所述数据包的包头中,得到由多个数据包组成的串行数据流。
本发明实施例提供的方法,将预设长度的监控视频数据封装为数据包,使得行读取时读指针所指向的内存地址携带在数据包的包头中,以便在后续将数据包中的监控视频数据写入其在第二主机设备内存中的对应位置。
在另一个实施例中,所述读取内存中存储的监控视频数据,将所述监控视频数据转换为串行数据流之前,所述方法还包括:
在所述内存中获取至少一个连续数据块,所述至少一个连续数据块构成所述监控视频数据;
基于Scatter-Gather DMA方式,将所述至少一个连续数据块进行离散整合,得到所述监控视频数据。
本发明实施例提供的方法,基于Scatter-Gather DMA方式,将内存中至少一个连续数据块进行离散整合,使得第一主机设备在读取监控视频数据时可以分小段进行读取,以便节省第一主机设备的性能,使得第一主机设备更高效的执行监控视频数据的传输处理。
在另一个实施例中,所述读取内存中存储的监控视频数据,将所述监控视频数据转换为串行数据流之后,所述方法还包括:
将所述监控视频数据转换为所述串行数据流后,若基于第一网闸板读取所述监控视频数据的速度大于数据传输速度,则基于所述第一网闸板将所述串行数据流存储至所述第一主机设备的第一缓存VFIFO中;
将所述串行数据流传输至第二主机设备包括:
通过所述第一VFIFO的多个虚拟通道中读取所述串行数据流,将所述串行数据流传输至所述第二主机设备的第二网闸板中。
本发明实施例提供的方法,通过在第一网闸板中设置第一缓存,使得当第一网闸板读取监控视频数据的速度大于数据传输速度时,第一网闸板可以将监控视频数据存储在第一缓存中,避免由于监控视频数据堆积造成的第一主机设备超负载,使得数据传输的效率更高。
根据本发明实施例的第二方面,提供一种数据传输方法,所述方法应用于第二主机设备,所述方法包括:
接收串行数据流中任意一个数据包,所述串行数据流由第一网闸板读取第一主机设备的内存中存储的监控视频数据转换得到的,所述串行数据流中的每个数据包的包头携带在读取所述数据包负载中的视频数据时读指针所指向的内存地址;
根据所述数据包的数据包包头,将所述监控视频数据存储至内存中。
本发明实施例提供的方法,第二主机设备接收第一主机设备将监控视频数据进行转换得到的串行数据流,并按照串行数据流中数据包的数据包包头,将监控视频数据存储至内存中,保证了监控视频数据由第一主机设备传输至第二主机设备后,监控视频数据不发生改变,保证了数据传输的质量。
在另一个实施例中,所述根据所述数据包的数据包包头,将所述监控视频数据存储至内存中包括:
在所述数据包包头中,解析得到第一内存地址,将所述第一内存地址作为写指针所指示的内存地址;
获取当前所述第一网闸板的读指针所指示的第二内存地址,判断所述写指针的第一内存地址和所述读指针的第二内存地址是否一致;
若所述写指针的第一内存地址和所述读指针的第二内存地址一致,则将所述数据包存储至所述内存中。
本发明实施例提供的方法,通过第二主机设备在数据包包头中,解析得到第一内存地址,将第一内存地址作为写指针所指示的内存地址,当写指针的第一内存地址和第一网闸板的读指针的第二内存地址一致时,第二主机设备将数据包存储至内存中,避免由于读指针和写指针的内存地址不一致导致发生监控视频数据溢出或者监控视频数据写入时发生空操作等异常操作,使得数据传输的过程更加稳定。
在另一个实施例中,所述若所述写指针的第一内存地址和所述读指针的第二内存地址一致,则将所述数据包存储至所述内存中之后,所述方法还包括:
当所述监控视频数据全部存储至所述内存中后,基于所述第二主机设备的第二网闸板生成第一中断消息,以使所述第二主机设备获知当前数据传输过程结束。
本发明实施例提供的方法,当监控视频数据全部存储至第二主机设备的内存中后,生成第一中断消息,以使第二主机设备获知当前数据传输过程结束,使得第二主机设备可以终止运行接收监控视频数据的相关服务,节省了人力物力。
在另一个实施例中,所述判断所述写指针的第一内存地址和所述读指针的第二内存地址是否一致之后,所述方法还包括:
若所述写指针的第一内存地址和所述读指针的第二内存地址不一致,则继续接收所述第一内存地址指示的数据包;
若在预设时长内未接收到所述第一内存地址指示的数据包,则生成错误信息,将所述错误信息写入所述第一内存地址在所述第二主机设备的内存中指示的地址,并生成第二中断消息,以使所述第二主机设备获知发生数据传输错误。
本发明实施例提供的方法,在写指针的第一内存地址和读指针的第二内存地址不一致时,则第二主机设备会基于是否在预设时长内接收到第一内存地址指示的数据包确定是否中断数据传输过程,智能性较优。
在另一个实施例中,所述根据所述数据包的数据包包头,将所述监控视频数据存储至内存中还包括:
若基于所述第二主机设备的第二网闸板存储所述监控视频数据的速度小于所述数据传输速度,则基于所述第二网闸板将所述串行数据流存储至所述第二网闸板的第二缓存中,在所述第二缓存中读取所述串行数据流,将所述串行数据流转换为所述监控视频数据,并将所述监控视频数据存储至所述第二主机设备的内存中。
本发明实施例提供的方法,在第二主机设备中设置第二缓存,使得当第二主机设备存储监控视频数据的速度小于数据传输速度时,第二主机设备可以将监控视频数据存储在第二缓存中,避免由于监控视频数据堆积造成的第二主机设备超负载,使得数据传输的效率更高。
根据本发明实施例的第三方面,提供一种数据传输装置,所述装置应用于第一主机设备,所述装置包括:
接收模块,用于接收数据传输指令;
读取模块,用于读取内存中存储的监控视频数据,将所述监控视频数据转换为串行数据流,所述串行数据流中的每个数据包的包头携带在读取所述数据包负载中的视频数据时读指针所指向的内存地址;
传输模块,用于将所述串行数据流传输至第二主机设备。
在另一个实施例中,所述读取模块,用于当接收到所述数据传输指令时,以读指针当前所指示的内存地址为读取起点,每读取到预设长度的监控视频数据,将所述预设长度的监控视频数据封装为一个数据包,将进行读取时读指针所指向的内存地址携带在所述数据包的包头中,得到由多个数据包组成的串行数据流。
在另一个实施例中,所述装置还包括:
获取模块,用于在所述内存中获取至少一个连续数据块,所述至少一个连续数据块构成所述监控视频数据;
整合模块,用于基于Scatter-Gather DMA方式,将所述至少一个连续数据块进行离散整合,得到所述监控视频数据。
在另一个实施例中,所述装置还包括:
存储模块,用于将所述监控视频数据转换为所述串行数据流后,若基于第一网闸板读取所述监控视频数据的速度大于数据传输速度,则基于所述第一网闸板将所述串行数据流存储至所述第一主机设备的第一缓存VFIFO中;
所述传输模块,还用于通过所述第一VFIFO的多个虚拟通道中读取所述串行数据流,将所述串行数据流传输至所述第二主机设备的第二网闸板中。
本发明实施例提供的装置,第一主机设备在接收到数据传输指令后,读取内存中存储的监控视频数据,并将监控视频数据转换为串行数据流;随后,第一主机设备将串行数据流发送至第二主机设备,使得第二主机设备将监控视频数据存储至内存中。本发明通过使用与接收监控视频数据所使用的网络协议不同的传输协议来传输串行数据流,提高了监控视频数据传输时的安全性。
在另一个实施例中,将预设长度的监控视频数据封装为数据包,使得行读取时读指针所指向的内存地址携带在数据包的包头中,以便在后续将数据包中的监控视频数据写入其在第二主机设备内存中的对应位置。
在另一个实施例中,基于Scatter-Gather DMA方式,将内存中至少一个连续数据块进行离散整合,使得第一主机设备在读取监控视频数据时可以分小段进行读取,以便节省第一主机设备的性能,使得第一主机设备更高效的执行监控视频数据的传输处理。
在另一个实施例中,通过在第一网闸板中设置第一缓存,使得当第一网闸板读取监控视频数据的速度大于数据传输速度时,第一网闸板可以将监控视频数据存储在第一缓存中,避免由于监控视频数据堆积造成的第一主机设备超负载,使得数据传输的效率更高。
根据本发明实施例的第四方面,提供一种数据传输装置,所述装置应用于第二主机设备,所述装置包括:
接收模块,用于接收串行数据流中任意一个数据包,所述串行数据流由第一网闸板读取第一主机设备的内存中存储的监控视频数据转换得到的,所述串行数据流中的每个数据包的包头携带在读取所述数据包负载中的视频数据时读指针所指向的内存地址;
存储模块,用于根据所述数据包的数据包包头,将所述监控视频数据存储至内存中。
在另一个实施例中,所述根据所述存储模块包括:
解析子模块,用于在所述数据包包头中,解析得到第一内存地址,将所述第一内存地址作为写指针所指示的内存地址;
判断子模块,用于获取当前所述第一网闸板的读指针所指示的第二内存地址,判断所述写指针的第一内存地址和所述读指针的第二内存地址是否一致;
存储子模块,用于若所述写指针的第一内存地址和所述读指针的第二内存地址一致,则将所述数据包存储至所述内存中。
在另一个实施例中,所述存储模块还包括:
第一生成子模块,用于当所述监控视频数据全部存储至所述内存中后,基于所述第二主机设备的第二网闸板生成第一中断消息,以使所述第二主机设备获知当前数据传输过程结束。
在另一个实施例中,所述存储模块还包括:
接收子模块,用于若所述写指针的第一内存地址和所述读指针的第二内存地址不一致,则继续接收所述第一内存地址指示的数据包;
第二生成子模块,用于若在预设时长内未接收到所述第一内存地址指示的数据包,则生成错误信息,将所述错误信息写入所述第一内存地址在所述第二主机设备的内存中指示的地址,并生成第二中断消息,以使所述第二主机设备获知发生数据传输错误。
在另一个实施例中,所述存储模块,还用于若基于第二网闸板存储所述监控视频数据的速度小于所述数据传输速度,则基于所述第二主机设备的第二网闸板将所述串行数据流存储至所述第二网闸板的第二缓存中,在所述第二缓存中读取所述串行数据流,将所述串行数据流转换为所述监控视频数据,并将所述监控视频数据存储至所述第二主机设备的内存中。
本发明实施例提供的方法,第二主机设备接收第一主机设备将监控视频数据进行转换得到的串行数据流,并按照串行数据流中数据包的数据包包头,将监控视频数据存储至内存中,保证了监控视频数据由第一主机设备传输至第二主机设备后,监控视频数据不发生改变,保证了数据传输的质量。
在另一个实施例中,通过第二主机设备在数据包包头中,解析得到第一内存地址,将第一内存地址作为写指针所指示的内存地址,当写指针的第一内存地址和第一网闸板的读指针的第二内存地址一致时,第二主机设备将数据包存储至内存中,避免由于读指针和写指针的内存地址不一致导致发生监控视频数据溢出或者监控视频数据写入时发生空操作等异常操作,使得数据传输的过程更加稳定。
在另一个实施例中,当监控视频数据全部存储至第二主机设备的内存中后,生成第一中断消息,以使第二主机设备获知当前数据传输过程结束,使得第二主机设备可以终止运行接收监控视频数据的相关服务,节省了人力物力。
在另一个实施例中,在写指针的第一内存地址和读指针的第二内存地址不一致时,则第二主机设备会基于是否在预设时长内接收到第一内存地址指示的数据包确定是否中断数据传输过程,智能性较优。
在另一个实施例中,在第二主机设备中设置第二缓存,使得当第二主机设备存储监控视频数据的速度小于数据传输速度时,第二主机设备可以将监控视频数据存储在第二缓存中,避免由于监控视频数据堆积造成的第二主机设备超负载,使得数据传输的效率更高。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1是根据一示例性实施例示出的一种数据传输方法的物理架构图;
图2A是根据一示例性实施例示出的一种数据传输方法的流程图;
图2B是根据一示例性实施例示出的一种数据传输方法的示例图;
图2C是根据一示例性实施例示出的一种数据传输方法的示例图;
图2D是根据一示例性实施例示出的一种数据传输方法的模块示意图;
图2E是根据一示例性实施例示出的一种数据传输方法的示例图;
图3A是根据一示例性实施例示出的一种数据传输装置的框图;
图3B是根据一示例性实施例示出的一种数据传输装置的框图;
图3C是根据一示例性实施例示出的一种数据传输装置的框图;
图4A是根据一示例性实施例示出的一种数据传输装置的框图;
图4B是根据一示例性实施例示出的一种数据传输装置的框图;
图4C是根据一示例性实施例示出的一种数据传输装置的框图;
图4D是根据一示例性实施例示出的一种数据传输装置的框图;
图5是根据一示例性实施例示出的一种数据传输装置500的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
图1是根据一示例性实施例示出的一种数据传输系统的物理架构图,参见图1,该视频监控系统包括第一主机设备和第二主机设备,第一主机设备上设置有第一网闸板,第二主机设备上设置有第二网闸板。
图1左侧所示为第一主机设备,包括第一子板和第一网闸板。其中,第一子板也即第一主机设备的内存板,可为X86子板。该内存板可为DDR(Double Data Rate,双倍速率同步动态随机存储器),包括内存控制器、内存和DMA(Direct Memory Access,直接内存存取)存储器。
第一主机设备通过与监控设备进行连接,当监控设备采集到监控视频数据后,便将采集到的监控视频数据传输至第一主机设备。对于第一主机设备来说,在其内存板的内存控制器上配置有多个网口,例如千兆网口0和千兆网口1,通过多个网口,第一主机设备接收监控设备采集到的监控视频数据。当内存控制器接收到监控视频数据后,便将监控视频数据发送至内存,以使内存按照指定格式存储该监控视频数据。内存在存储监控视频数据时,根据数据特征进行判断,将监控视频数据中的可疑数据过滤掉,将监控视频数据中的安全数据进行存储。其中,DMA存储器(例如,可以为PLEX8725)与内存控制器之间存在数据连接,当第一网闸板需要读取内存中的监控视频数据时,DMA存储器便会基于与内存控制器之间的连接,获取内存中的监控视频数据,并将获取到的监控视频数据发送至第一网闸板。其中,第一网闸板用于将监控视频数据转换为串行数据流,也即第一网闸板在传输数据时,基于FPGA(Field Programmable Gate Array,现场可编辑逻辑门列阵)方案,将监控视频数据转换为串行数据流,并将串行数据流传输至第二网闸板。
图1右侧所示为第二主机设备,包括第二子板和第二网闸板,第二子板也即第二监控设备的内存板,可为X86子板。该内存板包括内存控制器、内存和DMA存储器。在进行数据传输时,第二网闸板也可同第一网闸板一样基于FPGA方案进行数据的传输。其中,第二主机设备的第二网闸板与第一主机设备的第一网闸板之间存在用于传输数据的连接,该连接可为光纤连接。当第一主机设备向第二主机设备传输监控视频数据时,第二主机设备的第二网闸板首先接收到该监控视频数据,并将监控视频数据发送给第二子板。当第二子板接收到监控视频数据后,第二子板中的DMA存储器首先获取到该监控视频数据,并将视频监控数据传输至内存控制器,由内存控制器将监控视频数据存储至第二子板的内存中。其中,第二主机设备外接有显示终端,内存控制器上配置有多个网口,例如,并通过多个网口将监控视频数据发送至显示终端,以使显示终端展示监控视频数据。
在实际操作过程中,第一主机设备的第一网闸板和第二主机设备的第二网闸板可为同一块网闸板,这样,当第一主机设备向第二主机设备发送监控视频数据时,会经过该网闸板。在经过该网闸板时,该网闸板会将监控视频数据转换为串行数据流,实现对监控视频数据的过滤。
图2A是根据一示例性实施例示出的一种数据传输方法的流程图,如图2所示,该方法中的交互主体包括第一监控设备的第一网闸板和第二监控设备的第二网闸板,包括以下步骤。
在步骤201中,第一主机设备的第一网闸板接收数据传输指令。
在本发明实施例中,第一主机设备连接有至少一个监控设备和第一显示终端。其中,监控设备用于采集其所在位置的监控视频数据,并将采集到的监控视频数据传输至第一主机设备,使得第一主机设备存储监控视频数据;第一显示终端用于根据用户的需求,将第一主机设备存储的监控视频数据展示给用户。
在第一显示终端的屏幕上,会提供向第二主机设备发送监控视频数据的发送入口,当用户需要将第一主机设备存储的监控视频数据发送至第二主机设备时,点击进入第一显示终端提供的发送入口,则第一显示终端的屏幕上会显示视频选择页面,用户在视频选择页面上可以选择发送实时的监控视频数据或者指定时间段的监控视频数据。当用户选择完毕后,第一显示终端将用户的选择发送至第一主机设备,由第一主机设备中的第一子板根据用户的选择,生成数据传输指令,并将数据传输指令发送至第一网闸板。其中,由于第一子板包括DMA存储器,这样,当第一子板在将数据传输指令发送至第一网闸板时,该数据传输指令便会触发第一子板中的DMA存储器启动,使得DMA存储器允许第一网闸板读取监控视频数据。
在步骤202中,第一网闸板读取第一主机设备的内存中存储的监控视频数据,将监控视频数据转换为串行数据流。
在本发明实施例中,在第一网闸板读取第一主机设备的内存中存储的监控视频数据之前,第一主机设备中的第一子板会通过网口获取监控设备采集到的监控视频数据,并将监控视频数据存储在其内存中。
参见图2B,第一子板的内存中包括一个环形Buffer(缓存区),当第一子板将监控视频数据存储在内存中时,会将该环形Buffer作为存储介质进行存储。环形Buffer被分为至少一个2KB的空间,每一个2KB的空间均包括HEADER(头部)和其负载的DATA(数据),而且在HEADER中均对应该空间在环形Buffer中的内存地址,其中,每一个空间的头部均会指定该空间负载的DATA的尺寸,HEADER的尺寸是固定的,DATA的尺寸是不定的,但是DATA的尺寸不大于2KB。由于内存中的Buffer为环形,因此,每一个空间在内存中的内存地址是连续的。这样,当空间在环形Buffer中的内存地址达到最大值时,便会返回至环形Buffer的首个内存地址继续进行操作。
对于第一网闸板,参见图2B,在读取环形Buffer中空间的数据时,基于读指针FPGA_rd_point进行读取,获取空间在环形Buffer中的内存地址,并将获取到的内存地址作为读指针FPGA_rd_point所指示的内存地址。
发明人认识到,为了保证监控视频数据由第一主机设备传输至第二主机设备时的保密性,因此在第一主机设备与第二主机设备在进行监控视频数据传输时,需要基于光纤中的私有协议进行传输,这样,第一网闸板便需要将监控视频数据转换为私有协议格式的串行数据流。参见图2B,第一网闸板在将监控视频数据转换为串行数据流时,会在内存的环形Buffer中读取数据,选取环形Buffer中的一个空间,读取该空间中的HEADER和DATA,将HEADER和DATA打包为如图2C所示的私有协议格式的数据包Pkt,数据包Pkt中包括包头和数据负载,其中,包头为用于标识数据包尺寸的Size,也即FF00FF00,由空间中的头部生成;数据负载由空间中存储的数据生成,包括数据、CRC(Cyclical Redundancy Check,循环冗余校验码)以及用于标识数据包中存储的数据的字节长度的字节数,参见图2B,FEFEFEFE即为数据,1-512Byte即为字节数。之后,由于每一个空间在环形Buffer中的内存地址是连续的,因此,根据环形Buffer中空间的内存地址,读取下一个空间中的头部和数据,将头部和数据打包为私有协议格式的数据包,并将本次打包得到的数据包与上一次打包的得到的数据包串行输出,以此类推,直至将监控视频数据全部转换为串行数据流。
在步骤203中,第一网闸板将串行数据流传输至第二主机设备的第二网闸板。
在本发明实施例中,第一网闸板与第二主机设备的第二网闸板之间存在光纤连接,光纤连接基于私有协议进行数据传输,通过光纤连接,第一网闸板依据先进先出原则,也即先转换得到的数据包先进行传输的原则,通过光纤传输将串行数据流中的至少一个数据包依次传输至第二主机设备的第二网闸板中。
进一步地,发明人认识到,为了保证数据传输的效率,考虑到第一网闸板读取监控视频数据,并将监控视频数据转换为串行数据流的速度可能会大于将串行数据流传输至第二网闸板中的数据传输速度,也即写指针的第一内存地址可能超越读指针的第二内存地址,因此,参见图2D所示的第一主机设备中的模块示意图,在第一网闸板中设置第一缓存,也即图2D中的AXI VFIFO(Advanced eXtensible Interface First Input First Output,总线协议先进先出),使得第一网闸板可以将转换后的串行数据流存储在AXI VFIFO中,以此保证第一网闸板可以持续将读取到的监控视频数据转换为串行数据流,避免造成第一网闸板的负载过高,而且还提高了数据传输的传输效率。
其中,AXI VFIFO包括RD(Read,读取)网口和WR(Write,写入)网口,通过WR网口将串行数据流存储至AXI VFIFO中;通过RD网口在AXI VFIFO中读取串行数据流。这样,当监控设备基于TCP/IP协议栈(Stack)将视频监控数据存储至内存板(x86)中后,第一网闸板基于总线接口标准(PCIe 5G X4)在内存板(x86)中获取监控视频数据,并通过多线路(Multi-channel DMA For PCIe)将监控视频数据发送至第二主机设备。当子板(x86)需要将监控视频数据发送给其他子板时,通过网口S2C将监控视频数据发送给轴集成电路(AXIS IC)的网口S0,由轴集成电路通过网口S1将监控视频数据发送至发送端控制器(TX PCS),由发送端控制器将监控视频数据发送至发送端存储器,以便通过发送端(TX)将监控视频数据发送至第二主机设备。当子板(x86)需要接收其他子板发送的监控视频数据时,接收端RX基于接收端存储器(RX DMA)接收其他子板发送的监控视频数据,通过接收端控制器(RX PCS)将监控视频数据发送至轴集成电路(AXIS IC)的网口M1,由轴集成电路通过网口M0将监控视频数据发送至多线路的网口C2S,以使子板将监控视频数据进行存储。若第一网闸板读取监控视频数据的速度大于将串行数据流传输至第二网闸板中的数据传输速度,则第一网闸板将监控视频数据转换为串行数据流后,会先通过WR网口将串行数据流存储至第一网闸板的AXIVFIFO中;之后,根据先进先出的原则,在AXI VFIFO中的RD网口陆续读取存储的串行数据流,并通过光纤将串行数据流传输至第二网闸板中。
需要说明的是,为了避免造成第一网闸板的负载过高,因此执行上述将监控视频数据转换得到的串行数据流存储至第一缓存中的过程。而在实际操作中,也可将上述将监控视频数据转换得到的串行数据流存储至第一缓存中的过程省略,也即第一网闸板中不进行数据缓存,从而实现整个监控视频数据由第一主机设备传输至第二主机设备的过程。
在步骤204中,第二网闸板在接收到串行数据流中任一个数据包时,在数据包包头中,解析得到第一内存地址,将第一内存地址作为写指针所指示的内存地址。
在本发明实施例中,对于接收到的每个数据包,第二网闸板在数据包的包头中解析得到的第一内存地址也即为该数据包中的数据在第一网闸板的Buffer中的内存地址。其中,第二网闸板在解析数据包的包头时,可在数据包的包头中解析得到如图2E所示的数据,其中,System_address[31:0]、System_address[63:32]和Card_address[31:0]-(reserved)用于指示数据的在第一主机设备中的起始位置和终止位置以及在第二主机设备中即将存入的位置,RSVD[7:0]用于指示预留的字符位数,Bytecount[23:0]用于指示字符函数,VLD用于解码,Rsvd为预留字符位,IRQ_EN为中断符,VERIFY[15:0]为校验符,SRC_x86_ID[3:0]为数据在第一主机设备的x86子板中的源地址,DES_x86_ID[3:0]为数据在第二主机设备的x86子板中的目的地址,PORT[15:0]为发送数据包的端口号,Cmp为完成符,ERR为错误标识,ERR_Type[2:0]为错误类型,NextDescPtr[31:0]和NextDescPtr[63:0]用于指示下一数据包包括的数据在第一主机设备中的起始位置和终止位置。在数据包包头HEADER解析得到的数据中,SRC_x86_ID[3:0]即为该数据包的第一内存地址。
对于第二网闸板,在将数据包中的数据写入第二主机设备的第二子板的内存中时,基于写指针进行数据的写入。当第二网闸板接收到数据包时,便在数据包包头中解析得到第一内存地址,并将第一内存地址作为写指针所指示的内存地址。
进一步地,发明人认识到,为了保证数据传输的效率,考虑到第二网闸板将串行数据流发送至第二主机设备的速度可能会小于接收串行数据流的速度,因此,在第二网闸板中设置第二缓存,使得第二网闸板可以将接收到的第一网闸板传输的串行数据流存储在第二缓存中,以此保证第二网闸板可以持续接收第一网闸板传输的串行数据流,避免由于第二网闸板将串行数据流发送至第二子板的数据传输速度低,造成第二网闸板的负载过高,同时还保证了数据传输的速度。其中,第二缓存也包括RD网口和WR网口,通过WR网口将串行数据流存储至第二缓存中;通过RD网口在第二缓存中读取串行数据流。
这样,若第二网闸板将串行数据流发送至第二子板进行存储的速度小于第一网闸板将串行数据流传输至第二网闸板的数据传输速度,则第二网闸板将接收到的串行数据流中的至少一个数据包按照接收到的先后顺序存储至第二缓存中;之后,在第二缓存中根据先进先出原则,读取最先存储的数据包,随后依次读取其他数据包,使得第二网闸板依次读取第二缓存中的数据包,将串行数据流转换为监控视频数据,并将监控视频数据发送至第二子板,由第二子板将监控视频数据存储至内存中。
其中,第二子板的内存中也包括一个与第一内存中相同的环形Buffer,用于存储接收到的监控视频数据。该环形Buffer的结构与第一子板的内存中的环形Buffer的结构一致,此处不再进行赘述。在将监控视频数据存储至环形Buffer时,第二子板基于写指针上的内存地址,将当前数据包中的数据存储至写指针所指示的内存地址上,并在接收到其他数据包中的数据后,在环形Buffer上连续进行存储,直至将全部的监控视频数据存储至环形Buffer中。
在步骤205中,第二网闸板获取当前第一网闸板的读指针所指示的第二内存地址,判断写指针的第一内存地址和读指针的第二内存地址是否一致;若写指针的第一内存地址和读指针的第二内存地址一致,则执行下述步骤206;若写指针的第一内存地址和读指针的第二内存地址不一致,则执行下述步骤208。
发明人认识到,为了防止由于第一网闸板读取监控视频数据与第二网闸板将监控视频数据存储至第二子板的过程不同步,造成的监控视频数据溢出或者监控视频数据写入时发生空操作等异常操作,第二网闸板在解析得到第一内存地址,并将第一内存地址作为写指针所指示的内存地址后,会获取第一网闸板的读指针所指示的第二内存地址,并将第一地址和第二地址进行比对,判断第一地址与第二地址是否一致,也即当前第一网闸板读取监控视频数据的操作与第二网闸板将监控视频数据存储至第二子板的操作是否同步。其中,第二内存地址为当前读指针所指示的第一子板内存的环形Buffer中的内存地址。
可选地,为了尽可能避免数据传输过程中可能发生的异常操作,因此执行步骤205,判断第一网闸板的读指针的第二内存地址与第二网闸板的写指针的第一内存地址是否一致。而在实际操作中,也可以将步骤205省略,可以提高数据传输的效率,从而实现整个监控视频数据由第一监控设备传输至第二监控设备的过程。
在步骤206中,若写指针的第一内存地址和读指针的第二内存地址一致,则第二网闸板将数据包存储至第二主机设备的内存中。
在本发明实施例中,若第一内存地址与第二内存地址一致,则表示当前第一网闸板读取监控视频数据的操作与第二网闸板将监控视频数据存储至第二子板的操作是同步的,这样第二网闸板对应的写指针便将数据包写入第一子板中。其中,在写入第一子板中时,写指针会在第一子板的环形Buffer中确定第一内存地址指示的空间,将该数据包写入该空间。
在步骤207中,当监控视频数据全部存储至第二主机设备的内存中后,第二网闸板生成第一中断消息,并将第一中断消息发送至第二主机设备,以使第二主机设备获知当前数据传输过程结束。
在本发明实施例中,当第二网闸板接收到全部的串行数据流,并将串行数据流转换为监控视频数据,存储至第一子板的内存中后,第二网闸板便会生成第一中断消息,并将第一中断消息发送至第二主机设备。当第二主机设备接收到第一中断消息后,便会终止第二子板中DMA存储器的运行,并将第一中断消息发送至与其连接的第二显示终端,以使第二显示终端将第一中断消息展示给用户,使得用户获知当前数据传输过程已经完成,以此完成本次的监控视频数据传输过程。
在步骤208中,若写指针的第一内存地址和读指针的第二内存地址不一致,则第二网闸板继续接收第一内存地址指示的数据包,若第二网闸板在预设时长内未接收到第一内存地址指示的数据包,则执行下述步骤209;若第二网闸板在预设时长内接收到第一内存地址指示的数据包,则执行下述步骤210。
在本发明实施例中,若第一内存地址与第二内存地址一致,则表示当前第一网闸板读取监控视频数据的操作与第二网闸板将监控视频数据存储至第二子板的操作是不同步的,这时第二网闸板便需要等待接收第一网闸板发送的第一内存地址指示的数据包。其中,第二网闸板中可以设置有定时器,在定时器中设置有预设时长。当第二网闸板未接收第一内存地址指示的数据包时,便启动定时器,记录等待接收第一内存地址指示的数据包的等待时间,并根据等待时间是否超过预设时长,确定是否继续等待接收第一内存地址指示的数据包。
例如,当第一网闸板发生数据丢失、数据错误、数据读取延迟等异常情况时,便无法将第一内存地址指示的数据包及时的发送至第二网闸板,这样,第二网闸板便接收不到第一内存地址指示的数据包;这时,第二网闸板便会启动定时器开始计时。其中,对于数据丢失、数据错误等异常情况,第一网闸板会一直处于无法读取监控视频数据的状态,这样第二网闸板在预设时长内便不会接收到第一内存地址指示的数据包,因此,第二网闸板不再继续等待接收第一内存地址指示的数据包,则继续执行下述步骤209。对于数据读取延迟等异常情况,第一网闸板读取监控视频数据的时间可能较读取其他数据包的时间长,但还是会成功读取第一内存地址指示的数据包,这样,当第一网闸板读取该数据包成功,并在预设时长内将该数据包发送至第二网闸板后,第二网闸板便会确定接收到第一内存地址指示的数据包,则继续执行下述步骤201。
在步骤209中,若第二网闸板在预设时长内未接收到第一内存地址指示的数据包,则生成错误信息,将错误信息写入第一内存地址在第二网闸板的内存中指示的地址,并生成第二中断消息,将第二中断消息发送至第二主机设备,以使第二主机设备获知发生数据传输错误。
在本发明实施例中,若第二网闸板在预设时长内未接收到第一内存地址指示的数据包,则第二网闸板确定当前的数据传输过程出现了错误,因此生成用于指示第一内存地址指示的数据包发生异常的错误信息,并在第二子板的Buffer中确定第一内存地址指示的空间,将该错误信息写入该空间。之后,第二网闸板生成第二中断消息,第二中断消息用于指示当前数据传输过程由于发生异常而中断;第二中断消息中可以包括错误信息,本发明对此不进行具体限定。随后,第二网闸板将该第二中断消息发送至第二主机设备,以使第二主机设备在获取到该第二中断消息后,发送至与其连接的第二显示终端,以使第二显示终端将第二中断消息展示给用户,使得用户知晓当前数据传输过程发生异常导致中断。
在步骤210中,若第二网闸板在预设时长内接收到第一内存地址指示的数据包,则继续接收监控视频数据并存储,当监控视频数据全部存储至第二主机设备的内存中后,执行上述步骤207。
在本发明实施例中,若第二网闸板在预设时长内接收到第一内存地址指示的数据包,则第二网闸板继续接收第一网闸板发送的串行数据流,并将串行数据流转换为监控视频数据进行存储。当第二网闸板接收到全部的监控视频数据并存储后,便会生成第一中断消息,将第一中断消息发送至第二主机设备。其中生成第一中断消息及发送至第二主机设备的过程与步骤207中描述的过程一致,此处不再进行赘述。
需要说明的是,当监控视频数据全部传输完毕后,写指针的第一内存地址便会设定为最后一个数据包的第一内存地址,若读指针的第二内存地址与写指针的第一内存地址一致,则表示当前监控视频数据传输完毕,监控视频数据已经全部存储至第二主机设备的内存中。
本发明实施例提供的方法,通过在第一网闸板中设置第一缓存,使得当第一网闸板读取监控视频数据的速度大于数据传输速度时,第一网闸板可以将监控视频数据存储在第一缓存中,避免由于监控视频数据堆积造成的第一主机设备超负载,使得数据传输的效率更高。
上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。
图3A是根据一示例性实施例示出的一种数据传输装置的框图。参照图3A,该装置应用于第一主机设备,所述装置包括接收模块301,读取模块302和传输模块303。
该接收模块301,用于接收数据传输指令;
该读取模块302,用于读取内存中存储的监控视频数据,将监控视频数据转换为串行数据流,串行数据流中的每个数据包的包头携带在读取数据包负载中的视频数据时读指针所指向的内存地址;
该传输模块303,用于将串行数据流传输至第二主机设备。
在另一个实施例中,该读取模块302,用于当接收到数据传输指令时,以读指针当前所指示的内存地址为读取起点,每读取到预设长度的监控视频数据,将预设长度的视频数据封装为一个数据包,将进行读取时读指针所指向的内存地址携带在数据包的包头中,得到由多个数据包组成的串行数据流。
在另一个实施例中,参见图3B,该装置还包括获取模块304和整合模块305。
该获取模块304,用于在内存中获取至少一个连续数据块,至少一个连续数据块构成监控视频数据;
该整合模块305,用于基于Scatter-Gather DMA方式,将至少一个连续数据块进行离散整合,得到监控视频数据。
在另一个实施例中,该装置还包括存储模块306。
该存储模块306,用于将监控视频数据转换为串行数据流后,若基于第一网闸板读取监控视频数据的速度大于数据传输速度,则基于第一网闸板将串行数据流存储至第一主机设备的第一缓存VFIFO中;
该传输模块303,还用于通过第一VFIFO的多个虚拟通道中读取串行数据流,将串行数据流传输至第二主机设备的第二网闸板中。
在本发明实施例中,上述接收模块301的功能可由第一主机设备的x86子板实现;读取模块302,传输模块303和存储模块306的功能可由第一网闸板基于FPGA实现;获取模块304和整合模块305的功能可由第一主机设备的内存控制器实现。需要说明的是,上述各个模块的功能并不只限于应用上述硬件装置实现。
本发明实施例提供的装置,第一主机设备在接收到数据传输指令后,读取内存中存储的监控视频数据,并将监控视频数据转换为串行数据流;随后,第一主机设备将串行数据流发送至第二主机设备,使得第二主机设备将监控视频数据存储至内存中。本发明通过使用与接收监控视频数据所使用的网络协议不同的传输协议来传输串行数据流,提高了监控视频数据传输时的安全性。
在另一个实施例中,将预设长度的监控视频数据封装为数据包,使得行读取时读指针所指向的内存地址携带在数据包的包头中,以便在后续将数据包中的监控视频数据写入其在第二主机设备内存中的对应位置。
在另一个实施例中,基于Scatter-Gather DMA方式,将内存中至少一个连续数据块进行离散整合,使得第一主机设备在读取监控视频数据时可以分小段进行读取,以便节省第一主机设备的性能,使得第一主机设备更高效的执行监控视频数据的传输处理。
在另一个实施例中,通过在第一网闸板中设置第一缓存,使得当第一网闸板读取监控视频数据的速度大于数据传输速度时,第一网闸板可以将监控视频数据存储在第一缓存中,避免由于监控视频数据堆积造成的第一主机设备超负载,使得数据传输的效率更高。
图4A是根据一示例性实施例示出的一种数据传输装置的框图。参照图4A,该装置应用于第二主机设备,所述装置包括接收模块401和存储模块402。
该接收模块401,用于接收串行数据流中任意一个数据包,串行数据流由第一网闸板读取第一主机设备的内存中存储的监控视频数据转换得到的,串行数据流中的每个数据包的包头携带在读取数据包负载中的视频数据时读指针所指向的内存地址;
该存储模块402,用于根据数据包的数据包包头,将监控视频数据存储至内存中。
在另一个实施例中,参见图4B,该存储模块402包括解析子模块4021,判断子模块4022和存储子模块4023。
该解析子模块4021,用于在数据包包头中,解析得到第一内存地址,将第一内存地址作为写指针所指示的内存地址;
该判断子模块4022,用于获取当前第一网闸板的读指针所指示的第二内存地址,判断写指针的第一内存地址和读指针的第二内存地址是否一致;
该存储子模块4023,用于若写指针的第一内存地址和读指针的第二内存地址一致,则将数据包存储至内存中。
在另一个实施例中,参见图4C,该存储模块402还包括第一生成子模块4024。
该第一生成子模块4024,用于当监控视频数据全部存储至内存中后,基于第二主机设备的第二网闸板生成第一中断消息,以使第二主机设备获知当前数据传输过程结束。
在另一个实施例中,参见图4D,该存储模块402还包括接收子模块4025和第二生成子模块4026。
该接收子模块4025,用于若写指针的第一内存地址和读指针的第二内存地址不一致,则继续接收第一内存地址指示的数据包;
该第二生成子模块4026,还用于若在预设时长内未接收到第一内存地址指示的数据包,则生成错误信息,将错误信息写入第一内存地址在第二主机设备的内存中指示的地址,并生成第二中断消息,以使第二主机设备获知发生数据传输错误。
在另一个实施例中,该存储模块402,还用于若基于第二主机设备的第二网闸板存储监控视频数据的速度小于数据传输速度,则基于第二网闸板将串行数据流存储至第二网闸板的第二缓存中,在第二缓存中读取串行数据流,将串行数据流转换为监控视频数据,并将监控视频数据存储至第二主机设备的内存中。
在本发明实施例中,上述接收模块401和存储模块402的功能可由第二网闸板基于FPGA实现。需要说明的是,上述各个模块的功能并不只限于应用上述硬件装置实现。
本发明实施例提供的装置,第二主机设备接收第一主机设备将监控视频数据进行转换得到的串行数据流,并按照串行数据流中数据包的数据包包头,将监控视频数据存储至内存中,保证了监控视频数据由第一主机设备传输至第二主机设备后,监控视频数据不发生改变,保证了数据传输的质量。
在另一个实施例中,通过第二主机设备在数据包包头中,解析得到第一内存地址,将第一内存地址作为写指针所指示的内存地址,当写指针的第一内存地址和第一网闸板的读指针的第二内存地址一致时,第二主机设备将数据包存储至内存中,避免由于读指针和写指针的内存地址不一致导致发生监控视频数据溢出或者监控视频数据写入时发生空操作等异常操作,使得数据传输的过程更加稳定。
在另一个实施例中,当监控视频数据全部存储至第二主机设备的内存中后,生成第一中断消息,以使第二主机设备获知当前数据传输过程结束,使得第二主机设备可以终止运行接收监控视频数据的相关服务,节省了人力物力。
在另一个实施例中,在写指针的第一内存地址和读指针的第二内存地址不一致时,则第二主机设备会基于是否在预设时长内接收到第一内存地址指示的数据包确定是否中断数据传输过程,智能性较优。
在另一个实施例中,在第二主机设备中设置第二缓存,使得当第二主机设备存储监控视频数据的速度小于数据传输速度时,第二主机设备可以将监控视频数据存储在第二缓存中,避免由于监控视频数据堆积造成的第二主机设备超负载,使得数据传输的效率更高。
图5是根据一示例性实施例示出的一种数据传输装置500的框图。例如,装置500可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图5,装置500可以包括以下一个或多个组件:控制组件502,存储器504,电源组件506,多媒体组件508,音频组件510,I/O(Input/Output,输入/输出)的接口512,传感器组件514,以及通信组件516。
控制组件502通常控制装置500的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。控制组件502可以包括一个或多个处理器520来执行指令,以完成上述的方法的全部或部分步骤。此外,控制组件502可以包括一个或多个模块,便于控制组件502和其他组件之间的交互。例如,控制组件502可以包括多媒体模块,以方便多媒体组件508和控制组件502之间的交互。
存储器504被配置为存储各种类型的数据以支持在装置500的操作。这些数据的示例包括用于在装置500上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器504可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如SRAM(Static Random Access Memory,静态随机存取存储器),EEPROM(Electrically-Erasable Programmable Read-Only Memory,电可擦除可编程只读存储器),EPROM(Erasable Programmable Read Only Memory,可擦除可编程只读存储器),PROM(Programmable Read-Only Memory,可编程只读存储器),ROM(Read-Only Memory,只读存储器),磁存储器,快闪存储器,磁盘或光盘。
电源组件506为装置500的各种组件提供电力。电源组件506可以包括电源管理系统,一个或多个电源,及其他与为装置500生成、管理和分配电力相关联的组件。
多媒体组件508包括在所述装置500和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括LCD(Liquid Crystal Display,液晶显示器)和TP(TouchPanel,触摸面板)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件508包括一个前置摄像头和/或后置摄像头。当装置500处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件510被配置为输出和/或输入音频信号。例如,音频组件510包括一个MIC(Microphone,麦克风),当装置500处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器504或经由通信组件516发送。在一些实施例中,音频组件510还包括一个扬声器,用于输出音频信号。
I/O接口512为处理组件502和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件514包括一个或多个传感器,用于为装置500提供各个方面的状态评估。例如,传感器组件514可以检测到设备500的打开/关闭状态,组件的相对定位,例如组件为装置500的显示器和小键盘,传感器组件514还可以检测装置500或装置500一个组件的位置改变,用户与装置500接触的存在或不存在,装置500方位或加速/减速和装置500的温度变化。传感器组件514可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件514还可以包括光传感器,如CMOS(Complementary Metal OxideSemiconductor,互补金属氧化物)或CCD(Charge-coupled Device,电荷耦合元件)图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件514还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件516被配置为便于装置500和其他设备之间有线或无线方式的通信。装置500可以接入基于通信标准的无线网络,如WiFi,2G或5G,或它们的组合。在一个示例性实施例中,通信组件516经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件516还包括NFC(Near Field Communication,近场通信)模块,以促进短程通信。例如,在NFC模块可基于RFID(Radio FrequencyIdentification,射频识别)技术,IrDA(Infra-red Data Association,红外数据协会)技术,UWB(Ultra Wideband,超宽带)技术,BT(Bluetooth,蓝牙)技术和其他技术来实现。
在示例性实施例中,装置500可以被一个或多个ASIC(Application SpecificIntegrated Circuit,应用专用集成电路)、DSP(Digital signal Processor,数字信号处理器)、DSPD(Digital signal Processor Device,数字信号处理设备)、PLD(ProgrammableLogic Device,可编程逻辑器件)、FPGA)(Field Programmable Gate Array,现场可编程门阵列)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述数据传输方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器504,上述指令可由装置500的处理器520执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、RAM(Random Access Memory,随机存取存储器)、CD-ROM(Compact Disc Read-Only Memory,光盘只读存储器)、磁带、软盘和光数据存储设备等。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由数据传输装置的处理器执行时,使得数据传输装置能够执行上述数据传输方法。
本领域技术人员在考虑说明书及实践这里发明的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未发明的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (18)
1.一种数据传输方法,其特征在于,所述方法应用于第一主机设备,所述方法包括:
接收数据传输指令;
读取内存中存储的监控视频数据,将所述监控视频数据转换为串行数据流,所述串行数据流中的每个数据包的包头携带在读取所述数据包负载中的视频数据时读指针所指向的内存地址;
将所述串行数据流使用与接收所述监控视频数据所使用的网络协议不同的传输协议传输至第二主机设备,且在传输时依据先转换得到的数据包先进行传输的原则,将所述串行数据流中的至少一个数据包依次传输至所述第二主机设备。
2.根据权利要求1所述的方法,其特征在于,所述读取内存中存储的监控视频数据,将所述监控视频数据转换为串行数据流包括:
当接收到所述数据传输指令时,以读指针当前所指示的内存地址为读取起点,每读取到预设长度的视频数据,将所述预设长度的监控视频数据封装为一个数据包,将进行读取时读指针所指向的内存地址携带在所述数据包的包头中,得到由多个数据包组成的串行数据流。
3.根据权利要求1所述的方法,其特征在于,所述读取内存中存储的监控视频数据,将所述监控视频数据转换为串行数据流之前,所述方法还包括:
在所述内存中获取至少一个连续数据块,所述至少一个连续数据块构成所述监控视频数据;
基于Scatter-Gather DMA方式,将所述至少一个连续数据块进行离散整合,得到所述监控视频数据。
4.根据权利要求1所述的方法,其特征在于,所述读取内存中存储的监控视频数据,将所述监控视频数据转换为串行数据流之后,所述方法还包括:
将所述监控视频数据转换为所述串行数据流后,若基于第一网闸板读取所述监控视频数据的速度大于数据传输速度,则基于所述第一网闸板将所述串行数据流存储至所述第一主机设备的第一缓存VFIFO中;
将所述串行数据流使用与传输监控视频数据所使用的网络协议不同的接收协议传输至第二主机设备包括:
通过所述第一VFIFO的多个虚拟通道中读取所述串行数据流,使用与传输监控视频数据所使用的网络协议不同的接收协议将所述串行数据流传输至所述第二主机设备的第二网闸板中。
5.一种数据传输方法,其特征在于,所述方法应用于第二主机设备,所述方法包括:
接收串行数据流中任意一个数据包,所述串行数据流由第一网闸板读取第一主机设备的内存中存储的监控视频数据转换得到的,所述串行数据流中的每个数据包的包头携带在读取所述数据包负载中的视频数据时读指针所指向的内存地址,所述第一主机设备使用与接收所述监控视频数据所使用的网络协议不同的传输协议传输所述串行数据流,且所述第一主机设备在传输所述串行数据流时依据先转换得到的数据包先进行传输的原则,将所述串行数据流中的至少一个数据包依次进行传输;
根据所述数据包的数据包包头,将所述监控视频数据存储至内存中。
6.根据权利要求5所述的方法,其特征在于,所述根据所述数据包的数据包包头,将所述监控视频数据存储至内存中包括:
在所述数据包包头中,解析得到第一内存地址,将所述第一内存地址作为写指针所指示的内存地址;
获取当前所述第一网闸板的读指针所指示的第二内存地址,判断所述写指针的第一内存地址和所述读指针的第二内存地址是否一致;
若所述写指针的第一内存地址和所述读指针的第二内存地址一致,则将所述数据包存储至所述内存中。
7.根据权利要求6所述的方法,其特征在于,所述若所述写指针的第一内存地址和所述读指针的第二内存地址一致,则将所述数据包存储至所述内存中之后,所述方法还包括:
当所述监控视频数据全部存储至所述内存中后,基于所述第二主机设备的第二网闸板生成第一中断消息,以使所述第二主机设备获知当前数据传输过程结束。
8.根据权利要求6所述的方法,其特征在于,所述判断所述写指针的第一内存地址和所述读指针的第二内存地址是否一致之后,所述方法还包括:
若所述写指针的第一内存地址和所述读指针的第二内存地址不一致,则继续接收所述第一内存地址指示的数据包;
若在预设时长内未接收到所述第一内存地址指示的数据包,则生成错误信息,将所述错误信息写入所述第一内存地址在所述第二主机设备的内存中指示的地址,并生成第二中断消息,以使所述第二主机设备获知发生数据传输错误。
9.根据权利要求5所述的方法,其特征在于,所述根据所述数据包的数据包包头,将所述监控视频数据存储至内存中还包括:
若基于所述第二主机设备的第二网闸板存储所述监控视频数据的速度小于所述数据传输速度,则基于所述第二网闸板将所述串行数据流存储至所述第二网闸板的第二缓存中,在所述第二缓存中读取所述串行数据流,将所述串行数据流转换为所述监控视频数据,并将所述监控视频数据存储至所述第二主机设备的内存中。
10.一种数据传输装置,其特征在于,所述装置应用于第一主机设备,所述装置包括:
接收模块,用于接收数据传输指令;
读取模块,用于读取内存中存储的监控视频数据,将所述监控视频数据转换为串行数据流,所述串行数据流中的每个数据包的包头携带在读取所述数据包负载中的视频数据时读指针所指向的内存地址;
传输模块,用于将所述串行数据流使用与接收所述监控视频数据所使用的网络协议不同的传输协议传输至第二主机设备,且在传输时依据先转换得到的数据包先进行传输的原则,将所述串行数据流中的至少一个数据包依次传输至所述第二主机设备。
11.根据权利要求10所述的装置,其特征在于,所述读取模块,用于当接收到所述数据传输指令时,以读指针当前所指示的内存地址为读取起点,每读取到预设长度的监控视频数据,将所述预设长度的视频数据封装为一个数据包,将进行读取时读指针所指向的内存地址携带在所述数据包的包头中,得到由多个数据包组成的串行数据流。
12.根据权利要求10所述的装置,其特征在于,所述装置还包括:
获取模块,用于在所述内存中获取至少一个连续数据块,所述至少一个连续数据块构成所述监控视频数据;
整合模块,用于基于Scatter-Gather DMA方式,将所述至少一个连续数据块进行离散整合,得到所述监控视频数据。
13.根据权利要求10所述的装置,其特征在于,所述装置还包括:
存储模块,用于将所述监控视频数据转换为所述串行数据流后,若基于第一网闸板读取所述监控视频数据的速度大于数据传输速度,则基于所述第一网闸板将所述串行数据流存储至所述第一主机设备的第一缓存VFIFO中;
所述传输模块,还用于通过所述第一VFIFO的多个虚拟通道中读取所述串行数据流,使用与传输监控视频数据所使用的网络协议不同的接收协议将所述串行数据流传输至所述第二主机设备的第二网闸板中。
14.一种数据传输装置,其特征在于,所述装置应用于第二主机设备,所述装置包括:
接收模块,用于接收串行数据流中任意一个数据包,所述串行数据流由第一网闸板读取第一主机设备的内存中存储的监控视频数据转换得到的,所述串行数据流中的每个数据包的包头携带在读取所述数据包负载中的视频数据时读指针所指向的内存地址,所述第一主机设备使用与接收所述监控视频数据所使用的网络协议不同的传输协议传输所述串行数据流,且所述第一主机设备在传输所述串行数据流时依据先转换得到的数据包先进行传输的原则,将所述串行数据流中的至少一个数据包依次进行传输;
存储模块,用于根据所述数据包的数据包包头,将所述监控视频数据存储至内存中。
15.根据权利要求14所述的装置,其特征在于,所述存储模块包括:
解析子模块,用于在所述数据包包头中,解析得到第一内存地址,将所述第一内存地址作为写指针所指示的内存地址;
判断子模块,用于获取当前所述第一网闸板的读指针所指示的第二内存地址,判断所述写指针的第一内存地址和所述读指针的第二内存地址是否一致;
存储子模块,用于若所述写指针的第一内存地址和所述读指针的第二内存地址一致,则将所述数据包存储至所述内存中。
16.根据权利要求15所述的装置,其特征在于,所述存储模块还包括:
第一生成子模块,用于当所述监控视频数据全部存储至所述内存中后,基于所述第二主机设备的第二网闸板生成第一中断消息,以使所述第二主机设备获知当前数据传输过程结束。
17.根据权利要求15所述的装置,其特征在于,所述存储模块还包括:
接收子模块,用于若所述写指针的第一内存地址和所述读指针的第二内存地址不一致,则继续接收所述第一内存地址指示的数据包;
第二生成子模块,用于若在预设时长内未接收到所述第一内存地址指示的数据包,则生成错误信息,将所述错误信息写入所述第一内存地址在所述第二主机设备的内存中指示的地址,并生成第二中断消息,以使所述第二主机设备获知发生数据传输错误。
18.根据权利要求14所述的装置,其特征在于,所述存储模块,还用于若基于所述第二主机设备的第二网闸板存储所述监控视频数据的速度小于所述数据传输速度,则基于所述第二网闸板将所述串行数据流存储至所述第二网闸板的第二缓存中,在所述第二缓存中读取所述串行数据流,将所述串行数据流转换为所述监控视频数据,并将所述监控视频数据存储至所述第二主机设备的内存中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710094607.4A CN108462679B (zh) | 2017-02-21 | 2017-02-21 | 数据传输方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710094607.4A CN108462679B (zh) | 2017-02-21 | 2017-02-21 | 数据传输方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108462679A CN108462679A (zh) | 2018-08-28 |
CN108462679B true CN108462679B (zh) | 2021-06-04 |
Family
ID=63222098
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710094607.4A Active CN108462679B (zh) | 2017-02-21 | 2017-02-21 | 数据传输方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108462679B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109547162B (zh) * | 2018-12-06 | 2021-06-29 | 普康迪(北京)数码科技股份有限公司 | 基于两套单向边界的数据通信方法 |
CN112446474B (zh) * | 2019-08-31 | 2022-11-22 | 安徽寒武纪信息科技有限公司 | 芯片和多芯片系统及电子设备和数据传输方法 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100579117C (zh) * | 2005-09-07 | 2010-01-06 | 北京中星微电子有限公司 | 一种udp网络传输音频数据方法 |
US7918611B2 (en) * | 2007-07-11 | 2011-04-05 | Emcore Corporation | Reconfiguration and protocol adaptation of optoelectronic modules and network components |
US8407367B2 (en) * | 2007-12-26 | 2013-03-26 | Intel Corporation | Unified connector architecture |
CN101309261B (zh) * | 2008-07-14 | 2011-04-06 | 成都卫士通信息产业股份有限公司 | 一种网络数据报文处理方法及系统、设备 |
CN101488967B (zh) * | 2009-01-14 | 2015-05-13 | 深圳市同洲电子股份有限公司 | 一种视频传输方法、嵌入式监控终端及监控平台服务器 |
CN102123110B (zh) * | 2010-01-07 | 2014-09-10 | 北京广利核系统工程有限公司 | 一种网关系统的数据传输方法及网关系统 |
US8626963B2 (en) * | 2010-05-04 | 2014-01-07 | Mediatek Inc. | Packet based data transfer system and method for host-slave interface |
CN103167275B (zh) * | 2011-12-16 | 2016-04-06 | 中国航天科工集团第二研究院七〇六所 | 网络视频监控系统及其流媒体数据分发方法 |
CN103517088A (zh) * | 2012-06-14 | 2014-01-15 | 浙江大华技术股份有限公司 | 一种传输视频数据的方法、装置和终端 |
CN103092533B (zh) * | 2013-01-24 | 2016-04-27 | 上海爱数信息技术股份有限公司 | 一种数据远程同步的方法和系统 |
CN104009956B (zh) * | 2013-02-22 | 2017-05-03 | 杭州海康威视数字技术股份有限公司 | 一种基于嵌入式多核协处理网闸系统的通信方法 |
CN103200201B (zh) * | 2013-04-18 | 2015-12-02 | 杭州中威电子股份有限公司 | 一种公安内网与视频专网的隔离系统及隔离方法 |
CN109040135A (zh) * | 2014-11-21 | 2018-12-18 | 华为技术有限公司 | 数据同步方法及其装置 |
CN104660384A (zh) * | 2015-02-02 | 2015-05-27 | 武汉爱科唯自动化科技有限公司 | 一种开放式数控系统的网络远程监控方法 |
CN106375261B (zh) * | 2015-07-21 | 2020-03-17 | 杭州海康威视系统技术有限公司 | 一种跨网络数据传输方法和系统 |
CN105847190B (zh) * | 2016-03-17 | 2019-09-20 | 青岛海信电器股份有限公司 | 一种数据传输方法及处理器 |
CN106130991A (zh) * | 2016-06-30 | 2016-11-16 | 北京东土军悦科技有限公司 | 一种数据转发方法及装置 |
-
2017
- 2017-02-21 CN CN201710094607.4A patent/CN108462679B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN108462679A (zh) | 2018-08-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11934352B2 (en) | Card rendering method and electronic device | |
CA2588717C (en) | Systems and methods for digital data transmission rate control | |
US11601530B2 (en) | Method and device for generating protocol data unit (PDU) packet | |
US8520563B2 (en) | Interface device, communications system, non-volatile storage device, communication mode switching method and integrated circuit | |
JP2022516663A (ja) | データ伝送方法と電子デバイス | |
TW201841530A (zh) | 經由匯流排上的額外副資料線來發送資料的系統和方法 | |
WO2019019032A1 (zh) | 下行数据包配置方法及装置 | |
WO2019057089A1 (zh) | 网卡镜像抓包方法、终端以及可读存储介质 | |
WO2020118498A1 (zh) | 一种业务控制的方法及电子设备 | |
CN108462679B (zh) | 数据传输方法及装置 | |
EP3896964A1 (en) | Data processing method, apparatus and device, and storage medium | |
EP3298760B1 (en) | Quality of service for a universal serial bus | |
US10212215B2 (en) | Apparatus and method for providing metadata with network traffic | |
WO2021088773A1 (zh) | 一种显示报警文件的方法、装置及系统 | |
US20230335081A1 (en) | Display Synchronization Method, Electronic Device, and Readable Storage Medium | |
US20230344740A1 (en) | Sla performance prediction method and related apparatus, and device | |
CN111817830B (zh) | 传输、接收控制方法、终端及网络侧设备 | |
US11665586B2 (en) | Method and apparatus for data transmission, electronic device and computer readable storage medium | |
CN113709055A (zh) | 基于ble的通讯方法、装置、设备、系统以及存储介质 | |
WO2023011215A1 (zh) | 一种显示方法及电子设备 | |
CN113498600A (zh) | 一种基于PCIe的数据传输方法及装置 | |
CN115665707A (zh) | 显示设备及数据传输方法 | |
WO2021114950A1 (zh) | 一种多路http通道复用的方法及终端 | |
WO2024066521A1 (zh) | 内存刷新方法和装置 | |
CN116775345B (zh) | 一种数据传输方法及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |