CN113132065A - 数据通信方法、装置及系统、存储介质和视频处理设备 - Google Patents

数据通信方法、装置及系统、存储介质和视频处理设备 Download PDF

Info

Publication number
CN113132065A
CN113132065A CN201911401403.6A CN201911401403A CN113132065A CN 113132065 A CN113132065 A CN 113132065A CN 201911401403 A CN201911401403 A CN 201911401403A CN 113132065 A CN113132065 A CN 113132065A
Authority
CN
China
Prior art keywords
message
data packet
feedback
packet
programmable logic
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.)
Pending
Application number
CN201911401403.6A
Other languages
English (en)
Inventor
吴海平
周晶晶
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xian Novastar Electronic Technology Co Ltd
Original Assignee
Xian Novastar Electronic Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xian Novastar Electronic Technology Co Ltd filed Critical Xian Novastar Electronic Technology Co Ltd
Priority to CN201911401403.6A priority Critical patent/CN113132065A/zh
Publication of CN113132065A publication Critical patent/CN113132065A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/188Time-out mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/56Queue scheduling implementing delay-aware scheduling

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明实施例公开了一种数据通信方法、装置及系统、计算机可读存储介质和视频处理设备。数据通信方法例如包括:根据消息数据包创建与所述消息数据包对应的消息节点并将所述消息节点加入到对应的消息队列中;通过原始套接字发送所述消息数据包至所述可编程逻辑器件;启动与所述消息数据包对应的定时器并开始计时;以及响应所述定时器计时达到预设时间阈值,重新发送所述消息数据包至所述可编程逻辑器件并控制所述定时器重新计时。本发明实施例可降低嵌入式处理器向可编程逻辑器件发送的消息数据包过程中的丢包风险,增强通信的可靠性。

Description

数据通信方法、装置及系统、存储介质和视频处理设备
技术领域
本发明涉及通信技术领域,尤其涉及一种数据通信方法、一种数据通信装置、一种数据通信系统、一种计算机可读存储介质和一种视频处理设备。
背景技术
目前较多的嵌入式设备例如视频处理设备如视频处理器等的硬件架构包括嵌入式处理器和可编程逻辑器件。嵌入式处理器上通常安装有Linux系统。在Linux系统中,由于可编程逻辑器件与嵌入式处理器之间不支持TCP协议通信,因次嵌入式处理器和可编程逻辑器件之间的通信通常采用原始套接字(raw socket)方式进行通信。由于嵌入式处理器和可编程逻辑器件之间的通信只有单纯的消息数据包的发送、接收功能,但是对于可靠性要求较高的场合,嵌入式处理器向可编程逻辑器件发送的消息数据包仍存在丢包的风险,甚至导致严重的后果。
发明内容
本发明实施例提供了一种数据通信方法、一种数据通信装置、一种数据通信系统、一种计算机可读存储介质和一种视频处理设备,可降低嵌入式处理器向可编程逻辑器件发送的消息数据包过程中的丢包风险,增强通信的可靠性。
一方面,本发明实施例提供的一种数据通信方法,包括:根据消息数据包创建与所述消息数据包对应的消息节点并将所述消息节点加入到对应的消息队列中;通过原始套接字发送所述消息数据包至所述可编程逻辑器件;启动与所述消息数据包对应的定时器并开始计时;以及响应所述定时器计时达到预设时间阈值,重新发送所述消息数据包至所述可编程逻辑器件并控制所述定时器重新计时。
上述技术方案通过在嵌入式处理器和可编程逻辑器件之间的通信过程中增加定时判断以及超期重发机制,降低了现有技术中的嵌入式处理器和可编程逻辑器件之间通信的丢包风险,增强通信的可靠性。
在本发明的一个实施例中,所述数据通信方法还包括:响应于所述发送所述消息数据包的次数大于预设次数,从所述消息队列中删除所述消息节点。
在本发明的一个实施例中,所述数据通信方法还包括:通过原始套接字接收从所述可编程逻辑器件返回的反馈数据包;根据所述反馈数据包在所述消息队列中搜索与所述反馈数据包对应的目标消息数据包;响应于搜索到所述目标消息数据包,校验所述反馈数据包;响应于所述反馈数据包通过校验,停止与所述目标消息数据包对应的定时器并从所述消息队列中删除与所述目标消息数据包对应的消息节点。
在本发明的一个实施例中,所述根据所述反馈数据包在所述消息队列中搜索与所述反馈数据包对应的目标消息数据包包括:解析所述反馈数据包得到所述反馈数据包的数据信息;以及根据所述数据信息在所述消息队列中搜索与所述反馈数据包对应的目标消息数据包。
在本发明的一个实施例中,所述数据信息包括反馈消息类型、所述可编程逻辑器件中存储待通信数据的寄存器地址、待通信数据的数据长度、以及消息数据包的数据包标识;所述根据所述数据信息在所述消息队列中搜索与所述反馈数据包对应的目标消息数据包包括:根据所述反馈消息类型确定对应的目标消息队列;以及根据所述寄存器地址、所述待通信数据的数据长度、以及所述消息数据包的数据包标识在所述消息队列中搜索与所述反馈数据包对应的目标消息数据包。
在本发明的一个实施例中,在所述根据消息数据包创建与所述消息数据包对应的消息节点并将所述消息节点加入到对应的消息队列中之前,还包括:根据消息类型创建所述消息数据包,其中所述消息数据包的内容包括待通信数据;所述反馈数据包的所述数据信息还包括消息执行结果状态标识;所述响应于搜索到所述目标消息数据包,校验所述反馈数据包具体为:根据所述消息结果状态标识判断所述反馈数据信息是否正确,以得到反馈数据包校验结果。
在本发明的一个实施例中,在所述根据消息数据包创建与所述消息数据包对应的消息节点并将所述消息节点加入到对应的消息队列中之前,还包括:接收来自于多个通信进程中的目标通信进程的所述消息数据包,其中所述消息数据包的内容包括待通信数据和所述目标通信进程的进程标识;所述反馈数据包的所述数据信息还包括所述目标通信进程的进程标识,所述响应于搜索到所述目标消息数据包,校验所述反馈数据包包括:根据所述反馈数据包中的所述进程标识将所述反馈数据包发送至对应的目标通信进程,以供所述目标通信进程解析所述反馈数据包得到所述反馈数据包的所述数据信息、以及判断所述数据信息是否正确以得到反馈数据包校验结果;以及接收所述目标通信进程发送的反馈数据包校验结果。
另一方面,本发明实施例提供的一种数据通信装置,包括:消息节点创建模块,用于根据消息数据包创建与所述消息数据包对应的消息节点并将所述消息节点加入到对应的消息队列中;数据包发送模块,用于通过原始套接字发送所述消息数据包至所述可编程逻辑器件;定时器启动模块,用于启动与所述消息数据包对应的定时器并开始计时;以及数据包重发模块,用于响应所述定时器计时达到预设时间阈值,重新发送所述消息数据包至所述可编程逻辑器件并控制所述定时器重新计时。
再一方面,本发明实施例提供的一种数据通信系统,包括:存储器和连接所述存储器的处理器,所述存储器存储计算机程序,所述处理器运行所述计算机程序时执行前述任意一项所述的数据通信方法。
又一方面,本发明实施例提供的一种计算机可读存储介质,其为非易失性存储器且存储有计算机可执行指令,所述计算机可执行指令用于执行前述任意一项所述的数据通信方法。
又一方面,本发明实施例提供的一种视频处理设备,包括:可编程逻辑器件;嵌入式处理器,连接所述可编程逻辑器件;其中,所述嵌入式处理器用于:根据消息数据包创建与所述消息数据包对应的消息节点并将所述消息节点加入到对应的消息队列中、通过原始套接字发送所述消息数据包至所述可编程逻辑器件、启动与所述消息数据包对应的定时器并开始计时、以及响应所述定时器计时达到预设时间阈值重新发送所述消息数据包至所述可编程逻辑器件并控制所述定时器重新计时。
上述一个或多个技术方案可以具有如下优点或有益效果:本发明实施例通过在嵌入式处理器和可编程逻辑器件之间的通信过程中增加定时判断以及超期重发机制,降低了现有技术中的嵌入式处理器和可编程逻辑器件之间通信的丢包风险,增强通信的可靠性。另外,当消息数据包重发的次数达到预设次数时,删除与该消息对应的消息节点,删除该消息数据包,避免了嵌入式处理器一直在等待接收与消息数据包对应的反馈数据包的,解除了系统资源占用。再者,当嵌入式处理器的多个通信进程与可编程逻辑器件通信时,嵌入式处理器对多个通信进程的消息数据包例如通过通信服务进程进行集中管理和转发,避免了现有技术中多个通信进程分别与可编程逻辑器件单独通信从而导致多个通信进程之间的消息数据包竞争等问题,提升了嵌入式处理器和可编程逻辑器件的通信准确率和有效性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明第一实施例提供的数据通信方法的流程示意图。
图2为本发明第一实施例提供的数据通信方法的另一流程示意图。
图3为图2中步骤S22的详细流程示意图。
图4为图3中步骤S222的详细流程示意图。
图5为本发明第一实施例中实现数据通信方法的视频处理设备的结构示意图。
图6为本发明第二实施例提供的一种数据通信装置的模块示意图。
图7为本发明第三实施例提供的一种数据通信系统的结构示意图。
图8为本发明第四实施例提供的一种计算机可读存储介质的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
【第一实施例】
如图1所示,本发明第一实施例提供了一种数据通信方法,其适用于嵌入式设备例如视频处理设备中的连接有可编程逻辑器件的嵌入式处理器。具体地,本发明实施例提供的数据通信方法例如包括步骤:
S11:根据消息数据包创建与所述消息数据包对应的消息节点并将所述消息节点加入到对应的消息队列中;
S12:通过原始套接字发送所述消息数据包至所述可编程逻辑器件;
S13:启动与所述消息数据包对应的定时器并开始计时;以及
S14:响应所述定时器计时达到预设时间阈值,重新发送所述消息数据包至所述可编程逻辑器件并控制所述定时器重新计时。
这样一来,通过在嵌入式处理器和可编程逻辑器件之间的通信过程中增加定时判断以及超期重发机制,降低了现有技术中的嵌入式处理器和可编程逻辑器件之间通信的丢包风险,增强通信的可靠性。。
如图2所示,数据通信方法还包括步骤:
S15:响应于所述发送所述消息数据包的次数大于预设次数,从所述消息队列中删除所述消息节点。
如图2所示,数据通信方法还包括:
S21:通过原始套接字接收从所述可编程逻辑器件返回的反馈数据包;
S22:根据所述反馈数据包在所述消息队列中搜索与所述反馈数据包对应的目标消息数据包;
S23:响应于搜索到所述目标消息数据包,校验所述反馈数据包;
S24:响应于所述反馈数据包通过校验,停止与所述目标消息数据包对应的定时器并从所述消息队列中删除与所述目标消息数据包对应的消息节点。
具体地,如图3所示,步骤S22例如包括步骤:
S221:解析所述反馈数据包得到所述反馈数据包的数据信息;以及
S222:根据所述数据信息在所述消息队列中搜索与所述反馈数据包对应的目标消息数据包。
进一步地,所述数据信息包括反馈消息类型、所述可编程逻辑器件中存储待通信数据的寄存器地址、待通信数据的数据长度、以及消息数据包的数据包标识;如图4所示,步骤S222例如包括步骤:
S2221:根据所述反馈消息类型确定对应的目标消息队列;以及
S2222:根据所述寄存器地址、所述待通信数据的数据长度、以及所述消息数据包的数据包标识在所述消息队列中搜索与所述反馈数据包对应的目标消息数据包。
此处值得一提的是,当嵌入式处理器与可编程逻辑器件之间为单进程通信(也即嵌入式处理器中只有一个进程与可编程逻辑器件通信)时,在所述根据消息数据包创建与所述消息数据包对应的消息节点并将所述消息节点加入到对应的消息队列中之前,所述数据通信方法还包括:根据消息类型创建所述消息数据包,其中所述消息数据包的内容包括待通信数据。此时,所述反馈数据包的所述数据信息还包括消息执行结果状态标识;步骤S23具体包括;根据所述消息结果状态标识判断所述反馈数据信息是否正确,以得到反馈数据包校验结果。
再者,当嵌入式处理器与可编程逻辑器件之间为多进程通信(也即嵌入式处理器中有多个通信进程要与可编程逻辑器件通信)时,在所述根据消息数据包创建与所述消息数据包对应的消息节点并将所述消息节点加入到对应的消息队列中之前,所述数据通信方法还包括:接收来自于多个通信进程中的目标通信进程的所述消息数据包,其中所述消息数据包的内容包括待通信数据和所述目标通信进程的进程标识。此时,所述反馈数据包的所述数据信息还包括所述目标通信进程的进程标识,步骤23例如包括:根据所述反馈数据包中的所述进程标识将所述反馈数据包发送至对应的目标通信进程,以供所述目标通信进程解析所述反馈数据包得到所述反馈数据包的所述数据信息、以及判断所述数据信息是否正确以得到反馈数据包校验结果;以及接收所述目标通信进程发送的反馈数据包校验结果。
为便于理解本发明,下面将结合图5对本实施例的数据通信方法的各个步骤进行详细描述。
本发明实施例提供的数据通信方法适用于嵌入式设备例如视频处理设备中的嵌入式处理器和可编程逻辑器件之间的读写数据通信。此处的视频处理设备可例如包括视频处理器、视频切换器、视频拼接器等。举例来说,如图5所示,视频处理设备可例如至少包括视频输入接口210、可编程逻辑器件220、嵌入式处理器230以及视频输出接口240。可编程逻辑器件220连接在视频输入接口210和视频输出接口240之间,可编程逻辑器件220还连接嵌入式处理器230。视频输入接口210和视频输出接口可例如为标准视频接口,比如HDMI接口、DVI接口、SDI接口、DP接口等可用于传输视频和图像的接口。可编程逻辑器件例如为FPGA(Field-Programmable Gate Array,现场可编程门阵列),其主要用于进行视频和图像数据的处理例如图像缩放、画质增强等等。嵌入式处理器230例如为ARM,其主要用于加载FPGA程序、以及与外部通信等。嵌入式处理器230上可例如安装有Linux操作系统。视频处理设备200还可以例如包括非易失性存储器例如EMMC,其用于保存视频处理设备的数据和文件,避免其掉电后数据丢失。此外,视频处理设备200还可以包括易失性存储器例如DDR,其用于提供数据缓存空间。
下面将通过两个具体实施场合详细描述本发明实施例提供的数据通信方法。
【单一进程与可编程逻辑器件的通信】
嵌入式处理器与可编程逻辑器件之间的单一进程通信包括:嵌入式处理器向可编程逻辑器件发送消息数据包和接收来自于可编程逻辑器件的反馈数据包。
嵌入式处理器向可编程逻辑器件发送消息数据包的过程如下:
首先,嵌入式处理器根据消息类型创建所述消息数据包,其中所述消息数据包的内容包括待通信数据。待通信数据为嵌入式处理器要发送至可编程逻辑器件并写入到可编程逻辑器件相应寄存器的数据。具体地,嵌入式处理器根据其要向可编程逻辑器件发送的消息的消息类型创建相应的消息数据包。消息数据包的格式可例如为原始套接字(rawsocket)格式,此处不再赘述。此处的消息类型例如包括数据包响应消息类型(waitqueue)。数据包响应消息类型例如为嵌入式处理器向可编程逻辑器件发出消息数据后,可编程逻辑器件在接收到消息数据包后会响应消息数据包并且向嵌入式处理器发送一个反馈数据包,使得嵌入式处理器获悉可编程逻辑器件是否接收到该消息数据包。当然,其还可以有其它类型的消息数据包,本发明此处不以此为限。
然后,嵌入式处理器根据创建好的消息数据包创建与所述消息数据包对应的消息节点(node),并将所述消息节点加入到对应的消息队列中例如消息类型相同的消息队列。此处的消息队列可例如为消息响应队列(ACK queue),其可用数据链表表示。数据链表中包括多个数据节点,每个数据节点表示一个消息节点。每个消息节点例如包括消息数据包指针、通信数据写入地址、消息数据包的数据包标识、定时器的预设时间阈值等。具体地,此处的消息数据包指针可例如为指向消息数据包的内存地址的指针。通信数据写入地址指的是FPGA中写入通信数据的寄存器地址。数据包标识例如指的是消息数据包的序列号等编号。定时器的预设时间阈值例如表示相应的消息数据包的超期时间,当消息数据包发出的时间达到预设时间阈值后还没收到可编程逻辑器件的反馈数据包,则表明消息数据包超期,否则反馈数据包不超期。
接着,嵌入式处理器通过原始套接字(raw socket)格式发送所述消息数据包,例如发送至可编程逻辑器件。
然后嵌入式处理器启动与所述消息数据包对应的定时器(timer)并开始计时。每个消息数据包对应一个定时器。启动定时器后就可以开始计时,以计算相应的消息数据包的发出时间,以供后期判断其是否超期等。当嵌入式处理器发出多个消息数据包时,则会相应地启动多个定时器以用于对相应的消息数据包进行计时。嵌入式处理器还包括总定时器,总定时器根据其自身的定时阈值定期产生计时信号,以供嵌入式处理器判断消息数据包的定时器是否超期。
嵌入式处理器响应定时器计时达到预设时间阈值,此时嵌入式后处理器还未收到与该定时器对应的消息数据包的反馈数据包,则嵌入式处理器重新发送所述消息数据包至所述可编程逻辑器件,重启定时器,并控制所述定时器重新计时。如此一来,通过在嵌入式处理器和可编程逻辑器件之间的通信过程中增加定时判断以及超期重发机制,降低了现有技术中的嵌入式处理器和可编程逻辑器件之间通信的丢包风险,增强通信的可靠性。
进一步地,响应于所述发送所述消息数据包的次数大于预设次数,从所述消息队列中删除所述消息节点。此处的预设次数可根据用户需要自定义设置。举例来说,预设次数可例如为3次,当累计3次重发后仍没有收到与所述消息数据包对应的反馈数据包,则消息队列中删除所述消息数据包的消息节点,删除所述消息数据包。这样的话可以避免嵌入式处理器一直在等待接收与消息数据包对应的反馈数据包的,解除了系统资源占用。
再者,接收来自于可编程逻辑器件的反馈数据包的过程如下:
首先,嵌入式处理器通过原始套接字接收从所述可编程逻辑器件返回的反馈数据包。反馈数据包的格式可例如与消息数据包的格式相同。
然后,嵌入式处理器根据所述反馈数据包在所述消息队列中搜索与所述反馈数据包对应的目标消息数据包。具体地,嵌入式处理器解析所述反馈数据包得到所述反馈数据包的数据信息;然后嵌入式处理器根据所述数据信息在所述消息队列中搜索与所述反馈数据包对应的目标消息数据包。更具体地,所述数据信息包括反馈消息类型、所述可编程逻辑器件中存储待通信数据的寄存器地址、待通信数据的数据长度、以及消息数据包的数据包标识。嵌入式处理器根据所述反馈消息类型确定对应的目标消息队列;然后嵌入式处理器根据所述寄存器地址、所述待通信数据的数据长度、以及所述消息数据包的数据包标识在所述消息队列中搜索与所述反馈数据包对应的目标消息数据包。此处的反馈消息类型可例如包括数据包响应消息类型。嵌入式处理器根据所述寄存器地址、所述待通信数据的数据长度、以及所述消息数据包的数据包标识去匹配相应的消息队列中的消息数据包,当所述寄存器地址、所述待通信数据的数据长度、以及所述消息数据包的数据包标识都一致时,表明找到了与该反馈数据包对应的目标消息数据包;否则,则没有找到相对应的目标消息数据包。
接着,当搜索到所述目标消息数据包时,嵌入式处理器校验所述反馈数据包。具体地,反馈数据包的数据信息还可以包括消息执行结果状态标识。消息执行结果状态标识用于表征嵌入式处理器发出的消息数据包的执行结果的状态。嵌入式处理器根据所述消息结果状态标识判断所述反馈数据信息是否正确,以得到反馈数据包校验结果。举例来说,消息执行结果状态标识为1,表征消息数据包执行结果正确,反馈数据包校验结果为“通过校验”;消息执行结果状态标识为0,表征消息数据包执行结果有误,反馈数据包校验结果为“未通过校验”。
当所述反馈数据包通过校验时,嵌入式处理器停止与所述目标消息数据包对应的定时器,并从所述消息队列中删除与所述目标消息数据包对应的消息节点,此时该消息的整个流程结束。当所述反馈数据包未通过校验时,嵌入式处理器重发所述目标消息数据包,并重启定时器,以及重新等待接收可编程逻辑器件的反馈数据包。当该目标消息数据包发送的次数达到预设次数且还所述反馈数据包未通过校验,嵌入式处理器停止与所述目标消息数据包对应的定时器,并从所述消息队列中删除与所述目标消息数据包对应的消息节点,此时该消息的整个流程结束。
【多通信进程与可编程逻辑器件的通信】
嵌入式处理器与可编程逻辑器件之间的多通信进程通信包括:嵌入式处理器的多个通信进程向可编程逻辑器件发送消息数据包和接收来自于可编程逻辑器件的反馈数据包。
嵌入式处理器的多个通信进程向可编程逻辑器件发送消息数据包的过程如下:
首先,多个通信进程中的目标通信进程根据消息类型创建消息数据包,其中所述消息数据包的内容包括待通信数据和目标通信进程的进程标识。目标通信进程可例如为多个通信进程中的一个或多个。待通信数据为嵌入式处理器要发送至可编程逻辑器件并写入到可编程逻辑器件相应寄存器的数据。进程标识例如为每个通信进程的标识,例如通信的编号。具体地,嵌入式处理器根据目标通信进程要向可编程逻辑器件发送的消息的消息类型创建相应的消息数据包。消息数据包的格式可例如为原始套接字(raw socket)格式,此处不再赘述。
其次,嵌入式处理器通过套接字(socket)或者共享内存的方式获取目标通信进程创建的消息数据包。此处嵌入式处理器也可以是通过其它的进程例如通信服务进程来获取目标通信进程的消息数据包。当采用共享内存的方式获取目标通信进程的消息数据包时,其过程具体为:目标通信进程将创建的消息数据包发送至共享内存,并通知嵌入式处理器的通信服务从所述共享内存中读取消息数据包。这种方式可用于当消息数据包中的待通信数据的数据较大的情况。当消息数据包中的待通信数据的数据不大时,可通过套接字的方式进行传输。
然后,嵌入式处理器的通信服务根据目标通信进程创建的消息数据包创建与所述消息数据包对应的消息节点,并将所述消息节点加入到对应的消息队列中;此处的消息队列可例如用数据链表表示。数据链表中包括多个数据节点,每个数据节点表示一个消息节点。每个消息节点例如包括消息数据包指针、通信数据写入地址、消息数据包的数据包标识、定时器的预设时间阈值等。具体地,此处的消息数据包指针可例如为指向消息数据包的内存地址的指针。通信数据写入地址指的是FPGA中写入通信数据的寄存器地址。数据包标识例如指的是消息数据包的序列号等编号。定时器的预设时间阈值例如表示相应的消息数据包的超期时间,当消息数据包发出的时间达到预设时间阈值后还没收到可编程逻辑器件的反馈数据包,则表明消息数据包超期,否则反馈数据包不超期。
接着,嵌入式处理器例如其通信服务进程通过原始套接字格式发送所述消息数据包发送至可编程逻辑器件。
然后嵌入式处理器的通信服务进程启动与所述消息数据包对应的定时器并开始计时。每个消息数据包对应一个定时器。启动定时器后就可以开始计时,以计算相应的消息数据包的发出时间,以供后期判断其是否超期等。当嵌入式处理器的通信服务进程发出多个消息数据包时,则会相应地启动多个定时器以用于对相应的消息数据包进行计时。嵌入式处理器还包括总定时器,总定时器根据其自身的定时阈值定期产生计时信号,以供嵌入式处理器判断消息数据包的定时器是否超期。
嵌入式处理器的通信服务响应定时器计时达到预设时间阈值,此时嵌入式后处理器通信服务进程还未收到与该定时器对应的消息数据包的反馈数据包,则嵌入式处理器重新发送所述消息数据包至所述可编程逻辑器件,重启定时器,并控制所述定时器重新计时。如此一来,通过在嵌入式处理器和可编程逻辑器件之间的通信过程中增加定时判断以及超期重发机制,降低了现有技术中的嵌入式处理器和可编程逻辑器件之间通信的丢包风险,增强通信的可靠性。
进一步地,当所述发送所述消息数据包的次数大于预设次数、且仍未收到与所述消息数据包对应的反馈数据包时,通信服务进程从所述消息队列中删除所述消息节点。此处的预设次数可根据用户需要自定义设置。举例来说,预设次数可例如为3次,当累计3次重发后仍没有收到与所述消息数据包对应的反馈数据包,则消息队列中删除所述消息数据包的消息节点,删除所述消息数据包。这样的话可以避免嵌入式处理器一直在等待接收与消息数据包对应的反馈数据包的,解除了系统资源占用。
再者,目标通信进程接收来自于可编程逻辑器件的反馈数据包的过程如下:
首先,通信服务进程通过原始套接字接收从所述可编程逻辑器件返回的反馈数据包。反馈数据包的格式可例如与消息数据包的格式相同。
然后,通信服务进程根据所述反馈数据包在所述消息队列中搜索与所述反馈数据包对应的目标消息数据包。具体地,通信服务进程解析所述反馈数据包得到所述反馈数据包的数据信息;然后通信服务进程根据所述数据信息在所述消息队列中搜索与所述反馈数据包对应的目标消息数据包。更具体地,所述数据信息包括反馈消息类型、所述可编程逻辑器件中存储待通信数据的寄存器地址、待通信数据的数据长度、以及消息数据包的数据包标识。嵌入式处理器的通信服务进程根据所述反馈消息类型确定对应的目标消息队列;然后嵌入式处理器的通信服务进程根据所述寄存器地址、所述待通信数据的数据长度、以及所述消息数据包的数据包标识在所述消息队列中搜索与所述反馈数据包对应的目标消息数据包。此处的反馈消息类型可例如包括数据包响应消息类型。嵌入式处理器根据所述寄存器地址、所述待通信数据的数据长度、以及所述消息数据包的数据包标识去匹配相应的消息队列中的消息数据包,当所述寄存器地址、所述待通信数据的数据长度、以及所述消息数据包的数据包标识都一致时,表明找到了与该反馈数据包对应的目标消息数据包;否则,则没有找到相对应的目标消息数据包。
接着,当搜索到所述目标消息数据包时,嵌入式处理器校验所述反馈数据包。具体地,所述反馈数据包的内容包括目标通信进程的进程标识。嵌入式处理器的通信服务进程根据所述反馈数据包中的所述进程标识将所述反馈数据包转发至对应的目标通信进程,以供所述目标通信进程解析所述反馈数据包得到反馈数据信息、以及判断所述反馈数据信息是否正确以得到反馈数据包校验结果。更具体地,反馈数据包的数据信息还可以包括消息执行结果状态标识。消息执行结果状态标识用于表征嵌入式处理器发出的消息数据包的执行结果的状态。目标通信进程根据所述消息结果状态标识判断所述反馈数据信息是否正确,以得到反馈数据包校验结果。举例来说,消息执行结果状态标识为1,表征消息数据包执行结果正确,反馈数据包校验结果为“通过校验”;消息执行结果状态标识为0,表征消息数据包执行结果有误,反馈数据包校验结果为“未通过校验”。之后,目标通信进程将反馈数据包校验结果发送至通信服务进程。
当所述反馈数据包通过校验时,嵌入式处理器的通信服务进程停止与所述目标消息数据包对应的定时器,并从所述消息队列中删除与所述目标消息数据包对应的消息节点,此时该消息的整个流程结束。当所述反馈数据包未通过校验时,嵌入式处理器的通信服务进程重发所述目标消息数据包,并重启定时器,以及重新等待接收可编程逻辑器件的反馈数据包。当该目标消息数据包发送的次数达到预设次数且还所述反馈数据包未通过校验,嵌入式处理器的通信服务进程停止与所述目标消息数据包对应的定时器,并从所述消息队列中删除与所述目标消息数据包对应的消息节点,此时该消息的整个流程结束。
嵌入式处理器对多个通信进程的消息数据包例如通过通信服务进程进行集中管理和转发,避免了现有技术中多个通信进程分别与可编程逻辑器件单独通信从而导致多个通信进程之间的消息数据包竞争等问题,提升了嵌入式处理器和可编程逻辑器件的通信准确率和有效性。
综上所述,本发明实施例通过在嵌入式处理器和可编程逻辑器件之间的通信过程中增加定时判断以及超期重发机制,降低了现有技术中的嵌入式处理器和可编程逻辑器件之间通信的丢包风险,增强通信的可靠性。另外,当消息数据包重发的次数达到预设次数时,删除与该消息对应的消息节点,删除该消息数据包,避免了嵌入式处理器一直在等待接收与消息数据包对应的反馈数据包的,解除了系统资源占用。再者,当嵌入式处理器的多个通信进程与可编程逻辑器件通信时,嵌入式处理器对多个通信进程的消息数据包根据通信进程的进程标识进行集中管理和转发,例如通过通信服务进程实现,避免了现有技术中多个通信进程分别与可编程逻辑器件单独通信从而导致多个通信进程之间的消息数据包竞争等问题,提升了嵌入式处理器和可编程逻辑器件的通信准确率和有效性。
【第二实施例】
如图4所示,本发明第二实施例提供了一种数据通信装置300。数据通信装置300例如包括:消息节点创建模块310、数据包发送模块330、定时器启动模块350、数据包重发模块370。
消息节点创建模块310,用于根据消息数据包创建与所述消息数据包对应的消息节点并将所述消息节点加入到对应的消息队列中;
数据包发送模块330,用于通过原始套接字发送所述消息数据包至所述可编程逻辑器件;
定时器启动模块350,用于启动与所述消息数据包对应的定时器并开始计时;以及
数据包重发模块370,用于响应所述定时器计时达到预设时间阈值,重新发送所述消息数据包至所述可编程逻辑器件并控制所述定时器重新计时。
本实施例中的数据通信装置300的具体工作过程和技术效果参见前述第一实施例的描述,此处不再赘述。
【第三实施例】
如图7所示,本发明第三实施例提供了一种数据通信系统500。典型地,数据通信系统500可例如为视频处理器、视频拼接器、视频切换器等具有视频和图像处理功能例如图像和图层移动等的设备。数据通信系统500例如包括存储器510和与存储器510连接的处理器530。存储器510可例如为非易失性存储器,其上存储有计算机程序511。处理器530可例如为嵌入式处理器。处理器530运行计算机程序511时执行前述第一实施例中的数据通信方法。
本实施例中的数据通信系统500的具体工作过程和技术效果参见前述第一实施例的描述。
【第四实施例】
如图8所示,本发明第四实施例提供了一种存储介质例如计算机可读存储介质600。计算机可读存储介质600例如为非易失性存储器,其例如为:磁介质(如硬盘、软盘和磁带),光介质(如CDROM盘和DVD),磁光介质(如光盘)以及专门构造为用于存储和执行计算机可执行指令的硬件装置(如只读存储器(ROM)、随机存取存储器(RAM)、闪存等)。计算机可读存储介质600上存储有计算机可执行指令610。计算机可读存储介质600可由一个或多个处理器或处理装置来执行计算机可执行指令610,以实施前述第一实施例中的数据通信方法。
此外,可以理解的是,前述各个实施例仅为本发明的示例性说明,在技术特征不冲突、结构不矛盾、不违背本发明的发明目的前提下,各个实施例的技术方案可以任意组合、搭配使用。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多路单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多路网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (11)

1.一种数据通信方法,应用于连接可编程逻辑器件的嵌入式处理器;其特征在于,包括:
根据消息数据包创建与所述消息数据包对应的消息节点并将所述消息节点加入到对应的消息队列中;
通过原始套接字发送所述消息数据包至所述可编程逻辑器件;
启动与所述消息数据包对应的定时器并开始计时;以及
响应所述定时器计时达到预设时间阈值,重新发送所述消息数据包至所述可编程逻辑器件并控制所述定时器重新计时。
2.如权利要求1所述的数据通信方法,其特征在于,还包括:
响应于所述发送所述消息数据包的次数大于预设次数,从所述消息队列中删除所述消息节点。
3.如权利要求1所述的数据通信方法,其特征在于,还包括:
通过原始套接字接收从所述可编程逻辑器件返回的反馈数据包;
根据所述反馈数据包在所述消息队列中搜索与所述反馈数据包对应的目标消息数据包;
响应于搜索到所述目标消息数据包,校验所述反馈数据包;
响应于所述反馈数据包通过校验,停止与所述目标消息数据包对应的定时器并从所述消息队列中删除与所述目标消息数据包对应的消息节点。
4.如权利要求3所述的数据通信方法,其特征在于,所述根据所述反馈数据包在所述消息队列中搜索与所述反馈数据包对应的目标消息数据包包括:
解析所述反馈数据包得到所述反馈数据包的数据信息;以及
根据所述数据信息在所述消息队列中搜索与所述反馈数据包对应的目标消息数据包。
5.如权利要求4所述的数据通信方法,其特征在于,所述数据信息包括反馈消息类型、所述可编程逻辑器件中存储待通信数据的寄存器地址、待通信数据的数据长度、以及消息数据包的数据包标识;所述根据所述数据信息在所述消息队列中搜索与所述反馈数据包对应的目标消息数据包包括:
根据所述反馈消息类型确定对应的目标消息队列;以及
根据所述寄存器地址、所述待通信数据的数据长度、以及所述消息数据包的数据包标识在所述消息队列中搜索与所述反馈数据包对应的目标消息数据包。
6.如权利要求5所述的数据通信方法,其特征在于,
在所述根据消息数据包创建与所述消息数据包对应的消息节点并将所述消息节点加入到对应的消息队列中之前,还包括:
根据消息类型创建所述消息数据包,其中所述消息数据包的内容包括待通信数据;
所述反馈数据包的所述数据信息还包括消息执行结果状态标识;所述响应于搜索到所述目标消息数据包,校验所述反馈数据包具体为:
根据所述消息结果状态标识判断所述反馈数据信息是否正确,以得到反馈数据包校验结果。
7.如权利要求5所述的数据通信方法,其特征在于,
在所述根据消息数据包创建与所述消息数据包对应的消息节点并将所述消息节点加入到对应的消息队列中之前,还包括:
接收来自于多个通信进程中的目标通信进程的所述消息数据包,其中所述消息数据包的内容包括待通信数据和所述目标通信进程的进程标识;
所述反馈数据包的所述数据信息还包括所述目标通信进程的进程标识,所述响应于搜索到所述目标消息数据包,校验所述反馈数据包包括:
根据所述反馈数据包中的所述进程标识将所述反馈数据包发送至对应的目标通信进程,以供所述目标通信进程解析所述反馈数据包得到所述反馈数据包的所述数据信息、以及判断所述数据信息是否正确以得到反馈数据包校验结果;以及
接收所述目标通信进程发送的反馈数据包校验结果。
8.一种数据通信装置,其特征在于,包括:
消息节点创建模块,用于根据消息数据包创建与所述消息数据包对应的消息节点并将所述消息节点加入到对应的消息队列中;
数据包发送模块,用于通过原始套接字发送所述消息数据包至所述可编程逻辑器件;
定时器启动模块,用于启动与所述消息数据包对应的定时器并开始计时;以及
数据包重发模块,用于响应所述定时器计时达到预设时间阈值,重新发送所述消息数据包至所述可编程逻辑器件并控制所述定时器重新计时。
9.一种数据通信系统,其特征在于,包括:存储器和连接所述存储器的处理器,所述存储器存储计算机程序,所述处理器运行所述计算机程序时执行如权利要求1至7任意一项所述的数据通信方法。
10.一种计算机可读存储介质,其为非易失性存储器且存储有计算机可执行指令,其特征在于,所述计算机可执行指令用于执行如权利要求1至7任意一项所述的数据通信方法。
11.一种视频处理设备,其特征在于,包括:
可编程逻辑器件;
嵌入式处理器,连接所述可编程逻辑器件;
其中,所述嵌入式处理器用于:根据消息数据包创建与所述消息数据包对应的消息节点并将所述消息节点加入到对应的消息队列中、通过原始套接字发送所述消息数据包至所述可编程逻辑器件、启动与所述消息数据包对应的定时器并开始计时、以及响应所述定时器计时达到预设时间阈值重新发送所述消息数据包至所述可编程逻辑器件并控制所述定时器重新计时。
CN201911401403.6A 2019-12-30 2019-12-30 数据通信方法、装置及系统、存储介质和视频处理设备 Pending CN113132065A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911401403.6A CN113132065A (zh) 2019-12-30 2019-12-30 数据通信方法、装置及系统、存储介质和视频处理设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911401403.6A CN113132065A (zh) 2019-12-30 2019-12-30 数据通信方法、装置及系统、存储介质和视频处理设备

Publications (1)

Publication Number Publication Date
CN113132065A true CN113132065A (zh) 2021-07-16

Family

ID=76768345

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911401403.6A Pending CN113132065A (zh) 2019-12-30 2019-12-30 数据通信方法、装置及系统、存储介质和视频处理设备

Country Status (1)

Country Link
CN (1) CN113132065A (zh)

Citations (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5477216A (en) * 1992-10-30 1995-12-19 General Electric Company Electrical metering device and associated method for temporarily storing data during transmission of the data to a remote communications device
CN1964348A (zh) * 2005-11-09 2007-05-16 大唐移动通信设备有限公司 一种数据传输方法和系统
CN101179790A (zh) * 2007-11-03 2008-05-14 青岛海信移动通信技术股份有限公司 一种移动终端处理器之间的串口通信方法
CN101504617A (zh) * 2009-03-23 2009-08-12 华为技术有限公司 一种基于处理器共享内存的数据发送、接收方法及装置
CN101645883A (zh) * 2008-08-08 2010-02-10 比亚迪股份有限公司 数据传输方法、数据发送方法及数据接收方法
CN102035822A (zh) * 2009-12-31 2011-04-27 中国航空工业集团公司第六三一研究所 航电asm协议控制器及控制方法
CN103036957A (zh) * 2012-12-05 2013-04-10 华为技术有限公司 一种数据通信方法和装置
CN103873804A (zh) * 2014-03-31 2014-06-18 武汉烽火众智数字技术有限责任公司 用于嵌入式nvr的录像回放时间轴与内容同步控制方法
CN105850068A (zh) * 2014-11-05 2016-08-10 华为技术有限公司 一种数据包传输装置及方法
CN106792262A (zh) * 2016-12-05 2017-05-31 乐视控股(北京)有限公司 视频数据传输方法及装置
CN107014381A (zh) * 2017-06-06 2017-08-04 北京京东尚科信息技术有限公司 Pld、dsp、组合导航系统、数据处理方法和装置
CN107992368A (zh) * 2017-11-15 2018-05-04 国家计算机网络与信息安全管理中心 一种多进程间的数据交换方法和系统
CN108614491A (zh) * 2018-06-11 2018-10-02 上海海得控制系统股份有限公司 一种可编程逻辑控制器通讯系统和方法
CN108616925A (zh) * 2016-12-13 2018-10-02 中兴通讯股份有限公司 一种数据流的处理方法及装置
CN109064524A (zh) * 2018-08-16 2018-12-21 上海联影医疗科技有限公司 一种数据传输方法、数据收集板、重建机及介质
CN110351895A (zh) * 2018-04-04 2019-10-18 华为技术有限公司 通信方法和装置
CN110381042A (zh) * 2019-07-01 2019-10-25 北京字节跳动网络技术有限公司 一种平滑重启服务的方法、装置、介质和电子设备
CN110457251A (zh) * 2018-05-07 2019-11-15 大唐移动通信设备有限公司 一种多处理器间的数据通信方法及装置

Patent Citations (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5477216A (en) * 1992-10-30 1995-12-19 General Electric Company Electrical metering device and associated method for temporarily storing data during transmission of the data to a remote communications device
CN1964348A (zh) * 2005-11-09 2007-05-16 大唐移动通信设备有限公司 一种数据传输方法和系统
CN101179790A (zh) * 2007-11-03 2008-05-14 青岛海信移动通信技术股份有限公司 一种移动终端处理器之间的串口通信方法
CN101645883A (zh) * 2008-08-08 2010-02-10 比亚迪股份有限公司 数据传输方法、数据发送方法及数据接收方法
CN101504617A (zh) * 2009-03-23 2009-08-12 华为技术有限公司 一种基于处理器共享内存的数据发送、接收方法及装置
CN102035822A (zh) * 2009-12-31 2011-04-27 中国航空工业集团公司第六三一研究所 航电asm协议控制器及控制方法
CN103036957A (zh) * 2012-12-05 2013-04-10 华为技术有限公司 一种数据通信方法和装置
CN103873804A (zh) * 2014-03-31 2014-06-18 武汉烽火众智数字技术有限责任公司 用于嵌入式nvr的录像回放时间轴与内容同步控制方法
CN105850068A (zh) * 2014-11-05 2016-08-10 华为技术有限公司 一种数据包传输装置及方法
CN106792262A (zh) * 2016-12-05 2017-05-31 乐视控股(北京)有限公司 视频数据传输方法及装置
CN108616925A (zh) * 2016-12-13 2018-10-02 中兴通讯股份有限公司 一种数据流的处理方法及装置
CN107014381A (zh) * 2017-06-06 2017-08-04 北京京东尚科信息技术有限公司 Pld、dsp、组合导航系统、数据处理方法和装置
CN107992368A (zh) * 2017-11-15 2018-05-04 国家计算机网络与信息安全管理中心 一种多进程间的数据交换方法和系统
CN110351895A (zh) * 2018-04-04 2019-10-18 华为技术有限公司 通信方法和装置
CN110457251A (zh) * 2018-05-07 2019-11-15 大唐移动通信设备有限公司 一种多处理器间的数据通信方法及装置
CN108614491A (zh) * 2018-06-11 2018-10-02 上海海得控制系统股份有限公司 一种可编程逻辑控制器通讯系统和方法
CN109064524A (zh) * 2018-08-16 2018-12-21 上海联影医疗科技有限公司 一种数据传输方法、数据收集板、重建机及介质
CN110381042A (zh) * 2019-07-01 2019-10-25 北京字节跳动网络技术有限公司 一种平滑重启服务的方法、装置、介质和电子设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
周宏;柳长安;卢东昕;: "嵌入式实时系统中RUDP通信的设计与实现", 计算机工程, no. 11 *
毕盛,张齐: "《嵌入式系统原理及设计》", 1 January 2018, pages: 13 *

Similar Documents

Publication Publication Date Title
JP4723102B2 (ja) トランザクション実行のためのプロトコル
RU2363040C2 (ru) Доставка сообщений между двумя конечными пунктами с конфигурируемыми гарантиями и признаками
WO2019148563A1 (zh) 一种数据发送方法、接收方法及装置
US8682288B2 (en) Call list transmission processing method and system of charging system
CN110460412B (zh) 用于数据传输的方法和rdma网卡
US20160026459A1 (en) Device and method for updating firmware of a rackmount server system
WO2022042140A1 (zh) 数据处理方法、装置、电子设备及存储介质
EP4213037A1 (en) Data storage and reconciliation method and system
CN103684707A (zh) 服务端、用户端消息传输处理方法、消息传输方法及系统
JP2019106697A (ja) 相互接続ネットワークでのメッセージ再送遅延を動的に管理するための方法及びデバイス
US9344363B2 (en) Information processing system, relay device, information processing device, and information processing method
US11715337B2 (en) Controller diagnostic device and method thereof
CN112769939A (zh) 一种用于实时通讯的大数据可靠传输方法
US20210392187A1 (en) Data transmission and network interface controller
CN113132065A (zh) 数据通信方法、装置及系统、存储介质和视频处理设备
CN117040692A (zh) 一种业务数据传输的方法及装置、电子设备、存储介质
CN110162511A (zh) 一种日志传输方法及相关设备
CN105406989A (zh) 处理报文的方法、网卡及系统、更新信息的方法及主机
JP2006191368A (ja) ネットワーク伝送装置
JP6901446B2 (ja) 無線通信装置、無線通信システム、無線通信方法及びプログラム
US8625585B2 (en) Switch apparatus
WO2016165289A1 (zh) 板间数据处理方法及装置
CN112995260A (zh) 一种会话消息交互方法、装置及计算机可读存储介质
CN115348333B (zh) 基于udp双端通信交互的数据传输方法、系统及设备
CN115914152B (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