CN114138700B - 一种串口数据传输的流控方法、装置、设备及存储介质 - Google Patents
一种串口数据传输的流控方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114138700B CN114138700B CN202111470622.7A CN202111470622A CN114138700B CN 114138700 B CN114138700 B CN 114138700B CN 202111470622 A CN202111470622 A CN 202111470622A CN 114138700 B CN114138700 B CN 114138700B
- Authority
- CN
- China
- Prior art keywords
- data
- limit value
- transmitted
- flow control
- receiving end
- 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
- 230000005540 biological transmission Effects 0.000 title claims abstract description 97
- 238000000034 method Methods 0.000 title claims abstract description 58
- 239000000872 buffer Substances 0.000 claims abstract description 89
- 238000004891 communication Methods 0.000 claims description 23
- 238000004590 computer program Methods 0.000 claims description 15
- 238000004806 packaging method and process Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000035484 reaction time Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
Abstract
本申请公开了一种串口数据传输的流控方法、装置、设备及存储介质,由数据发送端根据数据接收端的第一接收缓冲区的第一高位限值确定单次发送的数据包容量和发送时间间隔,该第一高位限值小于或等于第一接收缓冲区的总存储空间大小,而后按照数据包容量对待发送数据进行分包处理,得到待发送数据包后,按发送时间间隔依次将各待发送数据包发送至数据接收端。应用该串口数据传输的流控方法,通过由数据发送端主动依据数据接收端的接收缓冲区的存储空间大小进行数据流控,相较于现有技术中数据发送端被动地由数据接收端触发数据流控,可以更有效地实现数据流控,避免因流控不及时、不到位造成超出接收缓冲区接收能力进而导致数据丢失的问题。
Description
技术领域
本申请涉及串口通信技术领域,特别是涉及一种串口数据传输的流控方法、装置、设备及存储介质。
背景技术
数据在两个串口之间进行通讯的时候常常会出现丢失数据的现象,比如两台计算机或者是一台计算机和一个单片机之间进行通讯,当接收端的接收缓冲区已经满了,这个时候如果还有数据发送过来,因为接收端没有时间进行处理,那这样的数据就有可能会丢失。
目前解决这种问题有硬件流控和软件流控两种处理方法。硬件流控即接收端在接收缓冲区将满时,通过预设引脚的电平变化提示发送端停止发送数据、软件流控则是接收端在接收缓冲区将满时,主动向发送端发送一个表示接收缓冲区将满的约定字符,发送端在接收到该约定字符时停止发送数据。
然而,现有的串口通信流控方案都存在发送端无法及时停止发送数据、导致数据超出接收端的接收缓冲区的接收能力而丢失的问题。尤其是若采用软件流控的方案,由于数据传输时存在着一定的误码率,或是接收端发送的约定字符混入二进制数据流中,会造成约定字符在传输过程中丢失、无法到达发送端,或者在到达发送端后未能被识别或是被发送端误判而引起误操作的问题。
提供一种更加有效的串口数据通信的流控方案,是本领域技术人员需要解决的技术问题。
发明内容
本申请的目的是提供一种串口数据传输的流控方法、装置、设备及存储介质,通过由数据发送端主动依据数据接收端的接收缓冲区的存储空间大小进行数据流控,相较于现有技术中数据发送端被动地由数据接收端触发数据流控,可以更有效地实现数据流控,避免因流控不及时、不到位造成超出接收缓冲区接收能力进而导致数据丢失的问题。
为解决上述技术问题,本申请提供一种串口数据传输的流控方法,基于数据发送端,包括:
获取数据接收端的第一接收缓冲区的第一高位限值;
根据所述第一高位限值确定单次发送的数据包容量和发送时间间隔;
根据所述数据包容量对待发送数据进行分包处理,得到待发送数据包后,按所述发送时间间隔依次将各所述待发送数据包发送至所述数据接收端;
其中,所述第一高位限值小于或等于所述第一接收缓冲区的总存储空间大小。
可选的,所述获取数据接收端的第一接收缓冲区的第一高位限值,具体为:
通过注意命令向所述数据接收端索要所述第一高位限值。
可选的,所述获取数据接收端的第一接收缓冲区的第一高位限值,具体为:
自所述数据接收端发送的携带所述第一高位限值的数据包中获取所述第一高位限值。
可选的,所述获取数据接收端的第一接收缓冲区的第一高位限值,具体为:
在与所述数据接收端进行通信连接配置时,接收所述数据接收端发送的通信配置参数中的所述第一高位限值。
可选的,所述根据所述第一高位限值确定单次发送的数据包容量和发送时间间隔,具体为:
以所述第一高位限值为所述数据包容量,根据所述第一高位限值占所述第一接收缓冲区的总存储空间大小的比例确定所述发送时间间隔。
可选的,所述根据所述数据包容量对待发送数据进行分包处理,得到待发送数据包后,按所述发送时间间隔依次将各所述待发送数据包发送至所述数据接收端,具体包括:
根据所述数据包容量对所述待发送数据进行分包处理,得到所述待发送数据包;
若所述待发送数据包的数量为一个,则直接将所述待发送数据包发送至所述数据接收端;
若所述待发送数据包的数量大于一个,则将首个所述待发送数据包发送至所述数据接收端,并将剩余的所述待发送数据包存入发送缓冲区,而后按照所述发送时间间隔依次从所述发送缓冲区取出剩余的所述待发送数据包并发送至所述数据接收端。
可选的,还包括:
当所述发送缓冲区有数据时,将与所述发送缓冲区对应的第一寄存器标志位配置为第一标志;
当所述发送缓冲区无数据时,将所述第一寄存器标志位配置为第二标志。
为解决上述技术问题,本申请还提供一种串口数据传输的流控装置,基于数据发送端,包括:
获取单元,用于获取数据接收端的第一接收缓冲区的第一高位限值;
确定单元,用于根据所述第一高位限值确定单次发送的数据包容量和发送时间间隔;
发送单元,用于根据所述数据包容量对待发送数据进行分包处理,得到待发送数据包后,按所述发送时间间隔依次将各所述待发送数据包发送至所述数据接收端;
其中,所述第一高位限值小于或等于所述第一接收缓冲区的总存储空间大小。
为解决上述技术问题,本申请还提供一种串口数据传输的流控设备,其包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,所述计算机程序被所述处理器执行时实现如上述任意一项所述串口数据传输的流控方法的步骤。
为解决上述技术问题,本申请还提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任意一项所述串口数据传输的流控方法的步骤。
本申请所提供的串口数据传输的流控方法,由数据发送端获取数据接收端的第一接收缓冲区的第一高位限值,该第一高位限值小于或等于第一接收缓冲区的总存储空间大小。数据发送端依据该第一高位限值确定单次发送的数据包容量和发送时间间隔,而后按照数据包容量对待发送数据进行分包处理,得到待发送数据包后,按发送时间间隔依次将各待发送数据包发送至数据接收端。应用本申请所提供的串口数据传输的流控方法,通过由数据发送端主动依据数据接收端的接收缓冲区的存储空间大小进行数据流控,相较于现有技术中数据发送端被动地由数据接收端触发数据流控,可以更有效地实现数据流控,避免因流控不及时、不到位造成超出接收缓冲区接收能力进而导致数据丢失的问题。
本申请还提供一种串口数据传输的流控装置、设备及存储介质,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚的说明本申请实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种串口数据传输的流控方法的流程图;
图2为本申请实施例提供的另一种串口数据传输的流控方法的流程图;
图3为本申请实施例提供的一种串口数据传输的流控装置的结构示意图;
图4为本申请实施例提供的一种串口数据传输的流控设备的结构示意图。
具体实施方式
本申请的核心是提供一种串口数据传输的流控方法、装置、设备及存储介质,通过由数据发送端主动依据数据接收端的接收缓冲区的存储空间大小进行数据流控,相较于现有技术中数据发送端被动地由数据接收端触发数据流控,可以更有效地实现数据流控,避免因流控不及时、不到位造成超出接收缓冲区接收能力进而导致数据丢失的问题。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1为本申请实施例提供的一种串口数据传输的流控方法的流程图。
如图1所示,基于数据发送端,本申请实施例提供的串口数据传输的流控方法包括:
S101:获取数据接收端的第一接收缓冲区的第一高位限值。
S102:根据第一高位限值确定单次发送的数据包容量和发送时间间隔。
S103:根据数据包容量对待发送数据进行分包处理,得到待发送数据包后,按发送时间间隔依次将各待发送数据包发送至数据接收端。
其中,第一高位限值小于或等于第一接收缓冲区的总存储空间大小。
需要说明的是,本申请实施例中“数据发送端”指具有串口通信功能的设备作为发送端角色时的串口通信端,“数据接收端”指具有串口通信功能的设备作为接收端角色时的串口通信端,即同一设备既可以作为数据发送端又可以作为数据接收端。本申请实施例中的“第一接收缓冲区”指对端(数据接收端)的接收缓冲区,“第一高位限值”指由对端(数据接收端)可以自行设置的小于或等于第一接收缓冲区的总存储空间大小的限值,具体可以为第一接收缓冲区的总存储空间大小的75%,还可以设置一个低位限值(如25%)。
在具体实施中,设备可以预先根据自身接收缓冲区的总存储空间大小确定接收缓冲区的高位限值(还可以包括低位限值),并将高位限值和低位限值存于一个预定的寄存器中。
当两设备通过物理串口进行通信时,具体可以彼此之间通过注意命令(AttentionCommand)获取对端串口接收端的接收缓冲区的限值(可以仅包括高位限值,也可以为高位限值和低位限值)。则步骤S101:获取数据接收端的第一接收缓冲区的第一高位限值,具体可以为:通过注意命令向数据接收端索要第一高位限值。即数据发送端在发送数据之前,先通过注意命令获取数据接收端的第一高位限值,只有确定了第一高位限值后才开始发送数据。
或者,两设备之间也可以在发送串口数据时顺便交换限值,为避免数据超出对端接收缓冲区大小,可以选择在两设备建立通信连接后发送的第一个数据包中携带本地的接收缓冲区的限值,且该数据包应尽可能的小,保证不会超出已记载的设备接收缓冲区大小。则步骤S101:获取数据接收端的第一接收缓冲区的第一高位限值,具体可以为:自数据接收端发送的携带第一高位限值的数据包中获取第一高位限值。即数据发送端根据此前接收到数据接收端发送的携带第一高位限值的数据包中获取第一高位限值,此数据包可以是数据接收端在与数据发送端建立通信连接后发送的第一个数据包。
或者,也可以在两设备建立通信连接、进行通信配置时彼此交换本地的接收缓冲区的限值。则步骤S101:获取数据接收端的第一接收缓冲区的第一高位限值,具体可以为:在与数据接收端进行通信连接配置时,接收数据接收端发送的通信配置参数中的第一高位限值。即数据发送端在预先与数据接收端建立通信连接时,通过数据接收端提供的通信配置参数获悉第一高位限值。
对于步骤S102来说,数据发送端根据第一高位限值确定数据接收端的接收能力,进而确定单次发送的数据包容量和发送时间间隔,数据包容量即单次发送的数据包的最大容量。可以理解的是,若单次发送的数据包容量较大,则设置更大的发送时间间隔;若单次发送的数据包容量较小,则设置更小的发送时间间隔。
可选的,步骤S102:根据第一高位限值确定单次发送的数据包容量和发送时间间隔,具体可以为:以第一高位限值为数据包容量,根据第一高位限值占第一接收缓冲区的总存储空间大小的比例确定发送时间间隔。例如,当第一高位限值占第一接收缓冲区的总存储空间大小的比例为75%时,通常可以认为已经为第一接收缓冲区预留了足够的处理反应时间,当以第一高位限值作为单次发送的数据包容量时,发送时间间隔可以为零。
对于步骤S103来说,可以按照单次发送的数据包容量每生成一个待发送数据包即按照发送时间间隔发送该待发送数据包,再生成下一个待发送数据包,直至处理完所有待发送数据。也可以一次性将待发送数据按单次发送的数据包容量生成一个或多个待发送数据包,除了正在发送的数据包外,可以将其他待发送数据包先存于数据发送端本地的发送缓冲区中,再依次取出待发送数据包发送至数据接收端。数据接收端也可以按照数据包容量依次生成待发送数据包并发送。
本申请实施例提供的串口数据传输的流控方法,由数据发送端获取数据接收端的第一接收缓冲区的第一高位限值,该第一高位限值小于或等于第一接收缓冲区的总存储空间大小。数据发送端依据该第一高位限值确定单次发送的数据包容量和发送时间间隔,而后按照数据包容量对待发送数据进行分包处理,得到待发送数据包后,按发送时间间隔依次将各待发送数据包发送至数据接收端。应用本申请所提供的串口数据传输的流控方法,通过由数据发送端主动依据数据接收端的接收缓冲区的存储空间大小进行数据流控,相较于现有技术中数据发送端被动地由数据接收端触发数据流控,可以更有效地实现数据流控,避免因流控不及时、不到位造成超出接收缓冲区接收能力进而导致数据丢失的问题。
在上述实施例中提到,除了正在发送的数据包外,可以将其他待发送数据包先存于数据发送端本地的发送缓冲区中,再依次取出待发送数据包发送至数据接收端,则在上述实施例的基础上,在本申请实施例提供的串口数据传输的流控方法中,步骤S103:根据数据包容量对待发送数据进行分包处理,得到待发送数据包后,按发送时间间隔依次将各待发送数据包发送至数据接收端,具体包括:
根据数据包容量对待发送数据进行分包处理,得到待发送数据包;
若待发送数据包的数量为一个,则直接将待发送数据包发送至数据接收端;
若待发送数据包的数量大于一个,则将首个待发送数据包发送至数据接收端,并将剩余的待发送数据包存入发送缓冲区,而后按照发送时间间隔依次从发送缓冲区取出剩余的待发送数据包并发送至数据接收端。
在具体实施中,可以先将待发送数据包统一进行分包处理后,得到一个或多个待发送数据包。待发送数据包的最大容量即为步骤S102确定的单次发送的数据包容量,也可以小于该数据包容量。
为避免待发送数据较多、超出本地的发送缓冲区存储能力,本申请实施例提供的串口数据传输的流控方法还可以包括:
当发送缓冲区有数据时,将与发送缓冲区对应的第一寄存器标志位配置为第一标志;
当发送缓冲区无数据时,将第一寄存器标志位配置为第二标志。
通过设置第一寄存器标志位来标记本地的发送缓冲区中是否有数据,可以使数据发送端的处理器进一步控制生成待发送数据的频率,从而避免数据发送端处数据丢失。具体的,第一标志可以为1,第二标志为0。
进一步的,还可以设置与发送缓冲区对应的第二寄存器标志位以及发送缓冲区的第二高位限值,第二高位限值小于或等于发送缓冲区的总存储容量大小,第二寄存器标志位为第三标志时表示发送缓冲区中存储的数据达到第二高位限值,第二寄存器标志位为第四标志时表示发送缓冲区中存储的数据未达到第二高位限值。具体的,第三标志可以为1,第四标志为0。
图2为本申请实施例提供的另一种串口数据传输的流控方法的流程图。
在上述实施例的基础上,本申请实施例提供一种可选的串口数据传输的流控方法,如图2所示,基于数据发送端,串口数据传输的流控方法包括:
S201:当要发送数据时,判断待发送数据的大小是否大于数据接收端的接收缓冲区总存储容量的75%;如果否,则进入步骤S202;如果是,则进入步骤S203。
S202:直接将待发送数据发送至数据接收端,同时将第一寄存器标志位置为0。
S203:将待发送数据以于数据接收端的接收缓冲区总存储容量的75%进行分包处理,超出的数据存至本地的发送缓冲区,同时将第一寄存器标志位置为1。
S204:从发送缓冲区取出剩余的待发送数据继续进行分包处理和发送,直至取出所有的待发送数据,将第一寄存器标志位置为0。
上文详述了串口数据传输的流控方法对应的各个实施例,在此基础上,本申请还公开了与上述方法对应的串口数据传输的流控装置、设备及存储介质。
图3为本申请实施例提供的一种串口数据传输的流控装置的结构示意图。
如图3所示,基于数据发送端,本申请实施例提供的串口数据传输的流控装置包括:
获取单元301,用于获取数据接收端的第一接收缓冲区的第一高位限值;
确定单元302,用于根据第一高位限值确定单次发送的数据包容量和发送时间间隔;
发送单元303,用于根据数据包容量对待发送数据进行分包处理,得到待发送数据包后,按发送时间间隔依次将各待发送数据包发送至数据接收端;
其中,第一高位限值小于或等于第一接收缓冲区的总存储空间大小。
可选的,发送单元303具体包括:
分包子单元,用于根据数据包容量对待发送数据进行分包处理,得到待发送数据包;
第一发送子单元,用于若待发送数据包的数量为一个,则直接将待发送数据包发送至数据接收端;
第二发送子单元,用于若待发送数据包的数量大于一个,则将首个待发送数据包发送至数据接收端,并将剩余的待发送数据包存入发送缓冲区,而后按照发送时间间隔依次从发送缓冲区取出剩余的待发送数据包并发送至数据接收端。
进一步的,本申请实施例提供的串口数据传输的流控装置还可以包括:
发送标记单元,用于当发送缓冲区有数据时,将与发送缓冲区对应的第一寄存器标志位配置为第一标志;当发送缓冲区无数据时,将第一寄存器标志位配置为第二标志。
由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
图4为本申请实施例提供的一种串口数据传输的流控设备的结构示意图。
如图4所示,本申请实施例提供的串口数据传输的流控设备包括:
存储器410,用于计算机程序411;
处理器420,用于执行计算机程序411,该计算机程序411被处理器420执行时实现如上述任意一项实施例所述串口数据传输的流控方法的步骤。
其中,处理器420可以包括一个或多个处理核心,比如3核心处理器、8核心处理器等。处理器420可以采用数字信号处理DSP(Digital Signal Processing)、现场可编程门阵列FPGA(Field-Programmable Gate Array)、可编程逻辑阵列PLA(Programmable LogicArray)中的至少一种硬件形式来实现。处理器420也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器CPU(CentralProcessing Unit);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器420可以集成有图像处理器GPU(Graphics Processing Unit),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器420还可以包括人工智能AI(Artificial Intelligence)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器410可以包括一个或多个存储介质,该存储介质可以是非暂态的。存储器410还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器410至少用于存储以下计算机程序411,其中,该计算机程序411被处理器420加载并执行之后,能够实现前述任一实施例公开的串口数据传输的流控方法中的相关步骤。另外,存储器410所存储的资源还可以包括操作系统412和数据413等,存储方式可以是短暂存储或者永久存储。其中,操作系统412可以为Windows。数据413可以包括但不限于上述方法所涉及到的数据。
在一些实施例中,串口数据传输的流控设备还可包括有显示屏430、电源440、通信接口450、输入输出接口460、传感器470以及通信总线480。
本领域技术人员可以理解,图4中示出的结构并不构成对串口数据传输的流控设备的限定,可以包括比图示更多或更少的组件。
本申请实施例提供的串口数据传输的流控设备,包括存储器和处理器,处理器在执行存储器存储的程序时,能够实现如上所述的串口数据传输的流控方法,效果同上。
需要说明的是,以上所描述的装置、设备实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本申请各个实施例所述方法的全部或部分步骤。
为此,本申请实施例还提供一种存储介质,该存储介质上存储有计算机程序,计算机程序被处理器执行时实现如串口数据传输的流控方法的步骤。
该存储介质可以包括:U盘、移动硬盘、只读存储器ROM(Read-Only Memory)、随机存取存储器RAM(Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本实施例中提供的存储介质所包含的计算机程序能够在被处理器执行时实现如上所述的串口数据传输的流控方法的步骤,效果同上。
以上对本申请所提供的一种串口数据传输的流控方法、装置、设备及存储介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置、设备及存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (10)
1.一种串口数据传输的流控方法,其特征在于,基于数据发送端,包括:
获取数据接收端的第一接收缓冲区的第一高位限值;
根据所述第一高位限值确定单次发送的数据包容量和发送时间间隔;
根据所述数据包容量对待发送数据进行分包处理,得到待发送数据包后,按所述发送时间间隔依次将各所述待发送数据包发送至所述数据接收端;
其中,所述第一高位限值小于或等于所述第一接收缓冲区的总存储空间大小。
2.根据权利要求1所述的流控方法,其特征在于,所述获取数据接收端的第一接收缓冲区的第一高位限值,具体为:
通过注意命令向所述数据接收端索要所述第一高位限值。
3.根据权利要求1所述的流控方法,其特征在于,所述获取数据接收端的第一接收缓冲区的第一高位限值,具体为:
自所述数据接收端发送的携带所述第一高位限值的数据包中获取所述第一高位限值。
4.根据权利要求1所述的流控方法,其特征在于,所述获取数据接收端的第一接收缓冲区的第一高位限值,具体为:
在与所述数据接收端进行通信连接配置时,接收所述数据接收端发送的通信配置参数中的所述第一高位限值。
5.根据权利要求1所述的流控方法,其特征在于,所述根据所述第一高位限值确定单次发送的数据包容量和发送时间间隔,具体为:
以所述第一高位限值为所述数据包容量,根据所述第一高位限值占所述第一接收缓冲区的总存储空间大小的比例确定所述发送时间间隔。
6.根据权利要求1所述的流控方法,其特征在于,所述根据所述数据包容量对待发送数据进行分包处理,得到待发送数据包后,按所述发送时间间隔依次将各所述待发送数据包发送至所述数据接收端,具体包括:
根据所述数据包容量对所述待发送数据进行分包处理,得到所述待发送数据包;
若所述待发送数据包的数量为一个,则直接将所述待发送数据包发送至所述数据接收端;
若所述待发送数据包的数量大于一个,则将首个所述待发送数据包发送至所述数据接收端,并将剩余的所述待发送数据包存入发送缓冲区,而后按照所述发送时间间隔依次从所述发送缓冲区取出剩余的所述待发送数据包并发送至所述数据接收端。
7.根据权利要求6所述的流控方法,其特征在于,还包括:
当所述发送缓冲区有数据时,将与所述发送缓冲区对应的第一寄存器标志位配置为第一标志;
当所述发送缓冲区无数据时,将所述第一寄存器标志位配置为第二标志。
8.一种串口数据传输的流控装置,其特征在于,基于数据发送端,包括:
获取单元,用于获取数据接收端的第一接收缓冲区的第一高位限值;
确定单元,用于根据所述第一高位限值确定单次发送的数据包容量和发送时间间隔;
发送单元,用于根据所述数据包容量对待发送数据进行分包处理,得到待发送数据包后,按所述发送时间间隔依次将各所述待发送数据包发送至所述数据接收端;
其中,所述第一高位限值小于或等于所述第一接收缓冲区的总存储空间大小。
9.一种串口数据传输的流控设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至7任意一项所述串口数据传输的流控方法的步骤。
10.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任意一项所述串口数据传输的流控方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111470622.7A CN114138700B (zh) | 2021-12-03 | 2021-12-03 | 一种串口数据传输的流控方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111470622.7A CN114138700B (zh) | 2021-12-03 | 2021-12-03 | 一种串口数据传输的流控方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114138700A CN114138700A (zh) | 2022-03-04 |
CN114138700B true CN114138700B (zh) | 2023-11-24 |
Family
ID=80387843
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111470622.7A Active CN114138700B (zh) | 2021-12-03 | 2021-12-03 | 一种串口数据传输的流控方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114138700B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114513385B (zh) * | 2022-03-24 | 2024-04-02 | 深圳市元征科技股份有限公司 | 数据传输方法、装置、电子设备及存储介质 |
CN114760364A (zh) * | 2022-04-02 | 2022-07-15 | 沈阳飞机设计研究所扬州协同创新研究院有限公司 | 一种时间触发的串口设备通信的管理方法 |
CN115361347A (zh) * | 2022-08-18 | 2022-11-18 | 山东新华医疗器械股份有限公司 | 一种ct设备的通信方法、装置以及介质 |
CN115361345B (zh) * | 2022-10-24 | 2023-01-24 | 北京智芯微电子科技有限公司 | 一种基于单总线信息传输的数据流控方法、装置及通信系统 |
CN116112581A (zh) * | 2022-12-27 | 2023-05-12 | 卡斯柯信号有限公司 | 一种串口通信大数据分包传输与处理方法、设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102137027A (zh) * | 2011-05-03 | 2011-07-27 | 厦门市美亚柏科信息股份有限公司 | 数据的可靠传输方法和装置 |
CN106571894A (zh) * | 2016-11-10 | 2017-04-19 | 深圳市民德电子科技股份有限公司 | 蓝牙信息发送及接收方法 |
CN108369569A (zh) * | 2015-12-10 | 2018-08-03 | 高通股份有限公司 | 与硬件流控制的增强型串行外围接口 |
CN110312147A (zh) * | 2019-06-12 | 2019-10-08 | 高新兴科技集团股份有限公司 | 业务数据传输的方法、系统与存储介质 |
CN112105006A (zh) * | 2019-12-12 | 2020-12-18 | 炬力(珠海)微电子有限公司 | 一种蓝牙设备播放方法及装置 |
-
2021
- 2021-12-03 CN CN202111470622.7A patent/CN114138700B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102137027A (zh) * | 2011-05-03 | 2011-07-27 | 厦门市美亚柏科信息股份有限公司 | 数据的可靠传输方法和装置 |
CN108369569A (zh) * | 2015-12-10 | 2018-08-03 | 高通股份有限公司 | 与硬件流控制的增强型串行外围接口 |
CN106571894A (zh) * | 2016-11-10 | 2017-04-19 | 深圳市民德电子科技股份有限公司 | 蓝牙信息发送及接收方法 |
CN110312147A (zh) * | 2019-06-12 | 2019-10-08 | 高新兴科技集团股份有限公司 | 业务数据传输的方法、系统与存储介质 |
CN112105006A (zh) * | 2019-12-12 | 2020-12-18 | 炬力(珠海)微电子有限公司 | 一种蓝牙设备播放方法及装置 |
Non-Patent Citations (1)
Title |
---|
"基于Zigbee的声表面波煤矿瓦斯传感器无线通信系统的设计";王顶;《中国优秀硕士学位论文全文数据库 工程科技Ⅰ辑》;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114138700A (zh) | 2022-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114138700B (zh) | 一种串口数据传输的流控方法、装置、设备及存储介质 | |
CN111008075B (zh) | 一种负载均衡系统、方法、装置、设备及介质 | |
CN111586714B (zh) | 网络端口分配方法、装置、电子设备和计算机可用介质 | |
CN110297722B (zh) | 线程任务通信方法及相关产品 | |
CN104461716A (zh) | 一种多核异构系统的访问方法及多核异构系统 | |
CN104798010A (zh) | 至少部分的串行存储协议兼容帧转换 | |
CN112463651A (zh) | Qspi控制器,图像处理器及闪存访问方法 | |
CN107506324A (zh) | 转接设备、远程通信系统、数据传输方法及装置 | |
CN106294225A (zh) | 一种数据读取方法、对端设备及控制器 | |
CN109634902B (zh) | 一种适用于pcie总线的数据传输方法、装置及系统 | |
CN108197062B (zh) | 实现单片机与终端设备通信的方法、系统、设备及介质 | |
CN111371799B (zh) | Mctp控制器收发数据的控制方法、装置及设备 | |
CN104683130A (zh) | 一种配置堆叠端口的方法和设备 | |
CN110650546A (zh) | 文件传输的方法、装置、存储介质以及终端 | |
CN116089124A (zh) | 一种仿真系统通信方法、装置、介质 | |
CN112084099B (zh) | 基于主机获取报警状态值的方法、装置、设备及存储介质 | |
CN104484297B (zh) | 通用串行总线传输速率方法及其装置 | |
CN113110950A (zh) | 处理器及通信方法、存储介质及计算设备 | |
EP2726992B1 (en) | Network control model driver | |
CN113133043A (zh) | 网络连接选用方法及装置和嵌入式设备 | |
CN107590088B (zh) | 一种dma读操作的处理方法、系统及相关装置 | |
CN112882985A (zh) | 一种数据传输系统、方法、装置及介质 | |
EP2759944A1 (en) | System and method for supporting both bulk storage and ethernet communications | |
CN113703676B (zh) | 一种双活卷的调用方法、装置、设备和介质 | |
CN113949601B (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 |