CN113515481A - 一种基于串口的数据传输方法及装置 - Google Patents

一种基于串口的数据传输方法及装置 Download PDF

Info

Publication number
CN113515481A
CN113515481A CN202110464612.6A CN202110464612A CN113515481A CN 113515481 A CN113515481 A CN 113515481A CN 202110464612 A CN202110464612 A CN 202110464612A CN 113515481 A CN113515481 A CN 113515481A
Authority
CN
China
Prior art keywords
data
frame
serial port
sending
packet
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
CN202110464612.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.)
Shenzhen Launch Technology Co Ltd
Original Assignee
Shenzhen Launch 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 Shenzhen Launch Technology Co Ltd filed Critical Shenzhen Launch Technology Co Ltd
Priority to CN202110464612.6A priority Critical patent/CN113515481A/zh
Publication of CN113515481A publication Critical patent/CN113515481A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4009Coupling between buses with data restructuring
    • G06F13/4013Coupling between buses with data restructuring with data re-ordering, e.g. Endian conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0002Serial port, e.g. RS232C

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请实施例公开了一种基于串口的数据传输方法及装置,用于同时减少串口数据传输效率较低,数据传输和上报不稳定的问题。本申请实施例方法包括:数据发送端获取待传输的数据帧集合;数据发送端将数据帧集合进行分包处理,以生成数据包集合;数据发送端确定串口集合中每一个串口的已发送数据字节;数据发送端将数据包集合中的每个数据包分配到当前已发送数据字节最小的目标串口对应的发送缓存区中进行排序保存;当目标串口空闲时,数据发送端将目标串口进行传输线程唤醒,以使得目标串口将目标串口对应的发送缓存区的数据包发送到数据接收端。

Description

一种基于串口的数据传输方法及装置
技术领域
本申请实施例涉及数据传输领域,尤其涉及一种基于串口的数据传输方法及装置。
背景技术
近年来,随着科技的发展,电子设备与电子设备之间,乃至电子设备自身所需要处理的数据类型越来越复杂,数据量级越来越庞大,数据能否快速传输是制约电子设备运行速度的重要因素。
在电子设备领域中,串口是数据传输重要途径,即串口的数据传输速率决定了电子设备的数据处理能力,从而关系到整个电子设备的运行速度。目前,众多电子设备通过串口进行的数据传输机制主要有两种,一种是单串口数据传输机制,另一种是多串口并行数据传输机制。在数据发送时,单串口数据传输机制中的电子设备的数据传输功能主要依靠单个串口进行数据传输,而多串口并行数据传输机制中的电子设备的数据传输功能主要依靠至少两个个串口进行数据发送与接收。可以看出在数据发送的速率上,多串口并行数据传输机制高于单串口数据传输机制。但是在数据接收时,单串口数据传输机制中的电子设备每接收到一帧数据即可根据发送顺序直接进行数据的顺序上报,而多串口并行数据传输机制中的电子设备存在先发送的数据后接收的情况,导致数据上报顺序出现异常。可以看出在数据接收的稳定性上,单串口数据传输机制高于多串口并行数据传输机制。
综上所述,目前的串口数据传输机制中,存在着传输效率较低,数据传输和上报不稳定的问题。
发明内容
本申请实施例第一方面提供了一种基于串口的数据传输方法,其特征在于,包括:
数据发送端获取待传输的数据帧集合,所述数据帧集合至少存在一个数据帧;
所述数据发送端将所述数据帧集合进行分包处理,以生成数据包集合,所述数据包集合包括至少一个数据包,所述数据包包括帧序号;
所述数据发送端确定串口集合中每一个串口的已发送数据字节,所述串口集合中包含至少两个并行发送串口;
所述数据发送端将所述数据包集合中的每个数据包分配到当前已发送数据字节最小的目标串口对应的发送缓存区中进行排序保存;
当所述目标串口空闲时,所述数据发送端将所述目标串口进行传输线程唤醒,以使得所述目标串口将所述目标串口对应的发送缓存区的数据包发送到数据接收端。
可选的,在所述数据发送端将所述数据包集合中的每个数据包分配到当前已发送数据字节最小的目标串口对应的发送缓存区中进行排序保存之后,所述数据传输方法还包括:
所述数据发送端判断所述目标串口是否为最后发送串口;
若是,则所述数据发送端更新所述目标串口的连续发送次数值;
若否,则所述数据发送端更新所述目标串口为最后发送串口。
可选的,在所述更新所述目标串口的连续发送次数值之后,所述数据传输方法还包括:
当所述目标串口的连续发送次数值达到预设阈值时,所述数据发送端将所述目标串口进行预设时间的传输线程休眠。
可选的,在所述数据发送端将所述至少一个数据包集合中的每个数据包分配到当前已发送数据字节最小的目标串口对应的发送缓存区中进行排序保存之后,所述数据传输方法还包括:
所述数据发送端更新所述串口的所述已发送数据字节。
本申请实施例第二方面提供了一种基于串口的数据传输方法,其特征在于,包括:
数据接收端接收通过串口传输的数据包;
所述数据接收端根据所述数据包的帧序号将所述数据包保存在接收缓存区中对应的帧区域;
当所述帧区域的数据包收齐成为完整数据帧时,则所述数据接收端获取最后上报帧序号,并根据所述最后上报帧序号生成查询帧序号,所述最后上报帧序号为最后一次上报完整数据帧的帧序号;
所述数据接收端判断所述接收缓存区中是否存在帧序号小于或等于所述查询帧序号的完整数据帧;
若是,则所述数据接收端将所述帧序号小于或等于所述查询帧序号的完整数据帧按照帧序号进行顺序上报。
可选的,在所述数据接收端将所述帧序号小于或等于所述查询帧序号的完整数据帧按照帧序号进行顺序上报之后,所述数据传输方法还包括:
所述数据接收端更新所述最后上报帧序号和查询帧序号,再次判断所述接收缓存区中是否存在帧序号小于或等于所述查询帧序号的完整数据帧。
可选的,在所述数据接收端判断所述接收缓存区中是否存在帧序号小于或等于所述查询帧序号的完整数据帧之后,所述数据传输方法还包括:
若否,所述数据接收端判断所述接收缓存区的完整数据帧的数量是否达到预设阈值;
若达到,则数据接收端上报所述接收缓存区中帧序号最小的完整数据帧。
可选的,所述数据传输方法还包括:
数据接收端确定所述接收缓存区的不完整数据帧的时间戳,所述时间戳表示不完整数据帧内最后一个接收的数据包的接收时间;
当所述时间戳与当前时间的差值达到预设阈值时,则数据接收端清理所述接收缓存区中所述不完整数据帧对应的空间。
本申请实施例第三方面提供了一种数据发送端,其特征在于,包括:
第一获取单元,用于获取待传输的数据帧集合,所述数据帧集合至少存在一个数据帧;
生成单元,用于所述数据发送端将所述数据帧集合进行分包处理,以生成数据包集合,所述数据包集合包括至少一个数据包,所述数据包包括帧序号;
第一确定单元,用于确定串口集合中每一个串口的已发送数据字节,所述串口集合中包含至少两个并行发送串口;
分配单元,用于将所述数据包集合中的每个数据包分配到当前已发送数据字节最小的目标串口对应的发送缓存区中进行排序保存;
发送单元,用于当所述目标串口空闲时,所述数据发送端将所述目标串口进行传输线程唤醒,以使得所述目标串口将所述目标串口对应的发送缓存区的数据包发送到数据接收端。
可选的,所述数据发送端还包括:
第一判断单元,用于判断所述目标串口是否为最后发送串口;
第一更新单元,用于当所述第一判断单元确定所述目标串口为最后发送串口时,更新所述目标串口的连续发送次数值;
第二更新单元,用于当所述第一判断单元确定所述目标串口不为最后发送串口时,更新所述目标串口为最后发送串口。
可选的,所述数据发送端还包括:
线程睡眠单元,用于当所述目标串口的连续发送次数值达到预设阈值时,将所述目标串口进行预设时间的传输线程休眠。
可选的,所述数据发送端还包括:
第三更新单元,用于更新所述串口的所述已发送数据字节。
本申请实施例第四方面提供了一种数据接收端,其特征在于,包括:
接收单元,用于接收通过串口传输的数据包;
保存单元,用于根据所述数据包的帧序号将所述数据包保存在接收缓存区中对应的帧区域;
第二获取单元,用于当所述帧区域的数据包收齐成为完整数据帧时,获取最后上报帧序号,并根据所述最后上报帧序号生成查询帧序号,所述最后上报帧序号为最后一次上报完整数据帧的帧序号;
第二判断单元,用于判断所述接收缓存区中是否存在帧序号小于或等于所述查询帧序号的完整数据帧;
第一上报单元,用于当所述第二判断单元确定所述接收缓存区中存在帧序号小于或等于所述查询帧序号的完整数据帧时,将所述帧序号小于或等于所述查询帧序号的完整数据帧按照帧序号进行顺序上报。
可选的,所述数据接收端还包括:
第四更新单元,用于更新所述最后上报帧序号和查询帧序号,再次判断所述接收缓存区中是否存在帧序号小于或等于所述查询帧序号的完整数据帧。
可选的,所述数据接收端还包括:
第三判断单元,用于当所述第二判断单元确定所述接收缓存区中不存在帧序号小于或等于所述查询帧序号的完整数据帧时,判断所述接收缓存区的完整数据帧的数量是否达到预设阈值;
第二上报单元,当所述第三判断单元确定所述接收缓存区的完整数据帧的数量达到预设阈值时,则上报所述接收缓存区中帧序号最小的完整数据帧。
可选的,所述数据接收端还包括:
第二确定单元,用于确定所述接收缓存区的不完整数据帧的时间戳,所述时间戳表示不完整数据帧内最后一个接收的数据包的接收时间;
清理单元,用于当所述时间戳与当前时间的差值达到预设阈值时,则清理所述接收缓存区中所述不完整数据帧对应的空间。
本申请实施例第五方面提供了一种数据发送端,包括:
处理器、存储器、输入输出单元、总线;
处理器与存储器、输入输出单元以及总线相连;
处理器具体执行如下操作:
数据发送端获取待传输的数据帧集合,所述数据帧集合至少存在一个数据帧;
所述数据发送端将所述数据帧集合进行分包处理,以生成数据包集合,所述数据包集合包括至少一个数据包,所述数据包包括帧序号;
所述数据发送端确定串口集合中每一个串口的已发送数据字节,所述串口集合中包含至少两个并行发送串口;
所述数据发送端将所述数据包集合中的每个数据包分配到当前已发送数据字节最小的目标串口对应的发送缓存区中进行排序保存;
当所述目标串口空闲时,所述数据发送端将所述目标串口进行传输线程唤醒,以使得所述目标串口将所述目标串口对应的发送缓存区的数据包发送到数据接收端。
可选的,处理器还用于执行第一方面中的任意可选方案的操作。
一种电子设备,其特征在于,所述电子设备包括:
存储器,存储有可执行计算机程序指令;
处理器,用于调用所述可执行计算机程序指令实现如第一方面任一项所述的基于串口的数据传输方法。
本申请实施例第五方面提供了一种数据接收端,包括:
处理器、存储器、输入输出单元、总线;
处理器与存储器、输入输出单元以及总线相连;
处理器具体执行如下操作:
数据接收端接收通过串口传输的数据包;
所述数据接收端根据所述数据包的帧序号将所述数据包保存在接收缓存区中对应的帧区域;
当所述帧区域的数据包收齐成为完整数据帧时,则所述数据接收端获取最后上报帧序号,并根据所述最后上报帧序号生成查询帧序号,所述最后上报帧序号为最后一次上报完整数据帧的帧序号;
所述数据接收端判断所述接收缓存区中是否存在帧序号小于或等于所述查询帧序号的完整数据帧;
若是,则所述数据接收端将所述帧序号小于或等于所述查询帧序号的完整数据帧按照帧序号进行顺序上报。
可选的,处理器还用于执行第二方面中的任意可选方案的操作。
一种电子设备,其特征在于,所述电子设备包括:
存储器,存储有可执行计算机程序指令;
处理器,用于调用所述可执行计算机程序指令实现如第二方面任一项所述的基于串口的数据传输方法。
从以上技术方案可以看出,本申请实施例具有以下优点:
数据发送端首先获取待传输的数据帧集合,并将数据帧集合进行分包处理,以生成至少一个数据包集合,数据包集合中存在至少一个大小相近的个数据包。然后确定串口集合中多个并行串口的已发送数据字节,并且数据发送端将至少一个数据包集合中的每个数据包分配到当前已发送数据字节最小的目标串口对应的发送缓存区中进行排序保存,即默认目标串口进行数据传输。当目标串口空闲时,将目标串口进行传输线程唤醒,以使得目标串口对应的发送缓存区的数据包通过目标串口发送到数据接收端。并且,通过数据接收端接收通过目标串口传输的数据包,再根据数据包的帧序号将数据包保存在接收缓存区中对应的帧区域。当某一数据帧收齐成为完整数据帧时,则获取最后上报帧序号,并根据最后上报帧序号生成查询帧序号。数据接收端判断接收缓存区中是否存在帧序号小于或等于查询帧序号的完整数据帧,若存在,则数据接收端将帧序号小于或等于查询帧序号的完整数据帧按照帧序号进行顺序上报。本实施例中,数据发送端通过分包处理,将数据帧集合中的每一个数据帧分成大小相近的数据包,在将数据包分配到当前已发送字节最小的目标串口对应的发送缓存区中进行排序保存。并且,数据接收端在收齐某一数据帧时,通过最后上报帧序号、查询帧序号以及这一数据帧的帧序号,确定每一个完整数据帧的上报顺序,再确定了完整数据帧后进行顺序上报。数据发送端通过多串口并行发送数据实现了数据的高传输效率,数据接收端通过设置接收缓存区以及顺序查询机制减少了数据传输和上报不稳定的问题,即同时减少串口数据传输效率较低,数据传输和上报不稳定的问题。
附图说明
图1为本申请实施例中基于串口的数据传输方法的一个实施例流程示意图;
图2为本申请实施例中基于串口的数据传输方法的另一个实施例流程示意图;
图3为本申请实施例中基于串口的数据传输方法的另一个实施例流程示意图;
图4为本申请实施例中基于串口的数据传输方法的另一个实施例流程示意图;
图5为本申请实施例中数据发送端的一个实施例流程示意图;
图6为本申请实施例中数据发送端的另一个实施例流程示意图;
图7为本申请实施例中数据接收端的一个实施例流程示意图;
图8为本申请实施例中数据接收端的另一个实施例流程示意图;
图9为本申请实施例中数据发送端的另一个实施例流程示意图;
图10为本申请实施例中数据接收端的另一个实施例流程示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的阐述,显然阐述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应当属于本发明保护范围。
本申请实施例公开了一种基于串口的数据传输方法及装置,用于同时减少串口数据传输效率较低,数据传输和上报不稳定的问题。
请参阅图1,本申请实施例提供了一种基于串口的数据传输方法,包括:
101、数据发送端获取待传输的数据帧集合,数据帧集合至少存在一个数据帧;
数据发送端获取到待传输的数据帧集合,数据帧集合包括至少一个数据帧,数据帧需要通过串口进行传输。本实施例中,存在多个串口并行传输数据,所以在获取了数据帧集合之后,需要将数据帧分配到不同的串口中进行传输。
102、数据发送端将数据帧集合进行分包处理,以生成数据包集合,数据包集合包括至少一个数据包,数据包包括帧序号;
数据发送端将数据帧集合中的每一个数据帧进行分包处理,以生成至少一个数据包集合,每一个数据包集合中包含着同一帧数据分包处理之后生成的至少一个数据包。由于数据帧的大小存在差异,所以需要将数据帧进行统一的分包处理,以生成字节较小并且字节大小相近的数据包。在分包处理之后,数据包在串口中的传输时间就会缩短,并且每一个串口传输一个数据包的传输时间相近。
本实施例中,分包处理的方式有多种,下面进行举例描述:
假设预设的分包处理后的数据包大小为128字节,当前的数据帧集合中有3个数据帧,分别为100字节、256字节和500字节。那么,第一帧的数据帧分包处理后生成1个数据包,第二帧的数据帧分包处理后生成2个数据包,第三帧的数据帧分包处理后生成4个数据包。其中,预设的分包处理后的数据包大小主要根据串口的型号等信息确定,也可以是使用者自身设置,此处不作限定。
分包处理除了将数据帧分成至少一个数据包,还会生成帧序号、包序号和总包数等数据,同时放入数据包中,使得数据包具有身份标签,便于后续的接收重新组合的操作。
103、数据发送端确定串口集合中每一个串口的已发送数据字节,串口集合中包含至少两个并行发送串口;
数据发送端确定串口集合中每一个串口的已发送数据字节,已发送字节是串口当前需要发送的数据字节大小。
104、数据发送端将数据包集合中的每个数据包分配到当前已发送数据字节最小的目标串口对应的发送缓存区中进行排序保存;
数据发送端将分包后的一个或多个数据包依次分配到已发送数据字节最小的目标串口对应的发送缓存区中进行排序保存。不同的串口拥有各自的发送缓存区,当目标串口正在进行数据传输时,待发送的数据包就需要进行发送缓存区中的分配。本实施例中,数据包会分配到已发送数据字节最小的目标串口的发送缓存区,在数据包保存到目标串口的发送缓存区后,由于该数据包已经确定由该目标串口进行发送,使用会立刻更新该目标串口的已发送字节数,下一个数据包则会根据更新后的已发送数据字节进行串口分配。
105、当目标串口空闲时,数据发送端将目标串口进行传输线程唤醒,以使得目标串口将目标串口对应的发送缓存区的数据包发送到数据接收端。
当目标串口的数据包传输完成时,如果发送缓存区中存在数据包,则数据发送端将目标串口进行传输线程唤醒,以使得目标串口按照先后顺序依次从自己对应的发送缓存区中选择要发送的数据包。
数据发送端首先获取待传输的数据帧集合,并将数据帧集合进行分包处理,以生成至少一个数据包集合,数据包集合中存在至少一个大小相近的个数据包。然后确定串口集合中多个并行串口的已发送数据字节,并且数据发送端将至少一个数据包集合中的每个数据包分配到当前已发送数据字节最小的目标串口对应的发送缓存区中进行排序保存,即默认目标串口进行数据传输。当目标串口空闲时,将目标串口进行传输线程唤醒,以使得目标串口对应的发送缓存区的数据包通过目标串口发送到数据接收端。本实施例中,数据发送端通过分包处理,将数据帧集合中的每一个数据帧分成大小相近的数据包,在将数据包分配到当前已发送字节最小的目标串口对应的发送缓存区中进行排序保存,数据发送端通过多串口并行发送数据实现了数据的高传输效率。
请参阅图2,本申请实施例提供了另一种基于串口的数据传输方法,包括:
201、数据发送端获取待传输的数据帧集合,数据帧集合至少存在一个数据帧;
202、数据发送端将数据帧集合进行分包处理,以生成数据包集合,数据包集合包括至少一个数据包,数据包包括帧序号;
203、数据发送端确定串口集合中每一个串口的已发送数据字节,串口集合中包含至少两个并行发送串口;
204、数据发送端将数据包集合中的每个数据包分配到当前已发送数据字节最小的目标串口对应的发送缓存区中进行排序保存;
本实施例中的步骤201至204与前述实施例中步骤101至104类似,此处不再赘述。
205、数据发送端判断目标串口是否为最后发送串口;若是,则执行步骤206;若否,则执行步骤207;
当数据发送端将数据包分配到已发送数据字节最小的目标串口对应的发送缓存区中进行排序保存之后,数据发送端判断目标串口是否为最后发送串口。当有一个数据包被分配到已发送数据字节最小的串口对应的发送缓存区时,就会将该串口更新为最后发送串口,并且更新已发送数据字节,当下一个数据包分配时,就会重新更新对应的串口为最后发送串口。
206、当数据发送端确定目标串口为最后发送串口时,数据发送端更新目标串口的连续发送次数值;
当该目标串口已经是最后发送串口时,则证明在上一个数据包被分配到已发送数据字节最小的发送缓存区,更新了目标串口的已发送数据字节之后,该目标串口依旧是已发送数据字节最小的串口。这时,需要为该串口更新该目标串口的连续发送次数值。
207、当数据发送端确定目标串口不是最后发送串口时,则数据发送端更新目标串口为最后发送串口;
当该目标串口不是最后发送串口时,数据发送端更新目标串口为最后发送串口。
208、当目标串口的连续发送次数值达到预设阈值时,数据发送端将目标串口进行预设时间的传输线程休眠;
当目标串口的连续发送次数值达到预设阈值时,数据发送端将目标串口进行预设时间的传输线程休眠,防止在单核的中央处理器中目标串口的发送线程长时间占用CPU(每一个串口有一个发送线程),造成其他串口无法及时发送,影响效率。
具体的,每一个串口都有一个发送线程,数据发送端通过发送线程读取一个包数据包,然后调用write函数并且使用目标串口对该数据包进行发送,如此循环。因此,在极端情况有可能某一个串口的发送线程一直没有让出CPU,持续在发送数据包。而其他的串口线程没有抢到CPU,造成实际上没有并行发送。所以将连续发送次数值达到预设阈值的目标串口进行传输线程休眠,就是为了让目标串口发送线程让出CPU,让其他的串口的发送线程能够占用CPU,调用write函数发送数据,首先并行数据传输。当某一个串口进行传输线程休眠,开始计时,在预设时间之后,数据发送端会重新唤醒目标串口的传输线程,让目标串口重新进入数据传输。
209、数据发送端更新串口的已发送数据字节;
数据发送端更新串口的已发送数据字节,以使得每一个串口能够得到尽可能均匀的数据包字节,保证每个串口都均匀传输,达到最高效率。
210、当目标串口空闲时,数据发送端将目标串口进行传输线程唤醒,以使得目标串口将目标串口对应的发送缓存区的数据包发送到数据接收端。
本实施例中的步骤210与前述实施例中步骤105类似,此处不再赘述。
数据发送端首先获取待传输的数据帧集合,并将数据帧集合进行分包处理,以生成至少一个数据包集合,数据包集合中存在至少一个大小相近的个数据包。然后确定串口集合中多个并行串口的已发送数据字节,并且数据发送端将至少一个数据包集合中的每个数据包分配到当前已发送数据字节最小的目标串口对应的发送缓存区中进行排序保存,即默认目标串口进行数据传输。当目标串口空闲时,将目标串口进行传输线程唤醒,以使得目标串口对应的发送缓存区的数据包通过目标串口发送到数据接收端。本实施例中,数据发送端通过分包处理,将数据帧集合中的每一个数据帧分成大小相近的数据包,在将数据包分配到当前已发送字节最小的目标串口对应的发送缓存区中进行排序保存,数据发送端通过多串口并行发送数据实现了数据的高传输效率。
其次,通过对连续发送次数值进行监控,减少出现某一串口长时间占用CPU的情况发生。
请参阅图3,本申请实施例提供了一种基于串口的数据传输方法,包括:
301、数据接收端接收通过串口传输的数据包;
数据接收端接收通过串口传输的数据包,数据接收端会接收多个串口传来的数据包。
302、数据接收端根据数据包的帧序号将数据包保存在接收缓存区中对应的帧区域;
数据接收端根据每一个数据包的帧序号,将数据包保存在接收缓存区中对应的帧区域。具体的,数据接收端检测数据包的帧序号,帧序号是一个数据包的隶属于某个数据帧的身份标记,数据接收端遍历接收缓存区中的帧序号,查询是否存在相同帧序号的帧区域,若是帧序号匹配,则将该数据包保存到该帧序号对应的接收缓存区中,若是帧序号不匹配,则该数据包保存到帧序号为0的接收缓存区中。需要说明的是,缓存区中帧号为0,说明这个空间是空闲的。当收到一个数据包时,如果没有在接收缓存区中找到有对应帧序号的,说明是新的一个数据帧。所以保存在第一个帧序号为0的接收缓存区中,即把数据包保存在一个新的空闲的空间中。
303、当帧区域的数据包收齐成为完整数据帧时,则数据接收端获取最后上报帧序号,并根据最后上报帧序号生成查询帧序号,最后上报帧序号为最后一次上报完整数据帧的帧序号;
当帧区域的数据包收齐成为完整数据帧时,则数据接收端获取最后上报帧序号,并根据最后上报帧序号生成查询帧序号。数据帧从接收缓存区上报后即可进入使用状态,这时会对该帧数据所保存的接收缓存区进行清理,并且更新最后上报帧序号。由于每一个数据帧在发送前已进行帧序号的标记,帧序号即为传输后的上报顺序。当某一帧序号的数据帧上报后,会立刻进行清理清理之后,若是有数据帧收齐,则会进入查询顺序流程,首先获取最后上报帧序号,并根据最后上报帧序号生成查询帧序号。下面进行举例说明:
假设数据帧的帧序号为从1到9,已上报的数据帧的帧序号为1到5,此时最后上报帧序号为5,这时又有数据帧收齐,此时获取最后上报帧序号,生成的查询帧序号为6,数据接收端会查询帧序号小于等于6的数据帧区域。
304、数据接收端判断接收缓存区中是否存在帧序号小于或等于查询帧序号的完整数据帧;若是,则执行步骤305;
在数据接收端获取最后上报帧序号,并根据最后上报帧序号生成查询帧序号之后,数据接收端判断接收缓存区中是否存在帧序号小于或等于查询帧序号的完整数据帧,目的是为了查询到帧序号的顺序并且按照顺序上报。在并行串口的数据传输中,会出现有的数据包先传输后到达接收缓存区的现象,这就导致了数据帧发送的顺序与收齐的顺序会出现顺序错误,所以需要根据最后上报帧序号来得到查询帧序号,并且在接收缓存区中的完整数据帧进行帧序号的查询。
305、当数据接收端确定接收缓存区中存在帧序号小于或等于查询帧序号的完整数据帧时,则数据接收端将帧序号小于或等于查询帧序号的完整数据帧按照帧序号进行顺序上报。
当数据接收端确定接收缓存区中存在帧序号小于或等于查询帧序号的完整数据帧时,首先上报帧序号小于查询帧序号的完整数据帧,再上报帧序号等于查询帧序号的完整数据帧。下面对帧序号的查询并上报进行举例说明:
10组数据帧,帧序号分别为1至10,按照单串口的传输方式,数据在传输之后的上报顺序为1至10依次增大。目前已上报的数据帧的帧序号为1到5,最后上报帧序号为5,当某个帧序号的数据帧收齐时,这时查询帧序号为最后上报帧序号加一,即查询帧序号为6,会出现两种情况,第一种是帧序号为6的数据帧收齐,这时数据接收端遍历整个接收缓存区,查看是否存在是否存在帧序号等于6的完整数据帧,数据接收端查询到该帧序号为6的数据帧之后,上报该完整数据帧,最后从接收缓存区中清理该数据帧。第二种是帧序号大于6的帧序号收齐,这时则无法检测出帧序号为6的完整数据帧,数据接收端结束动作,等待下一组数据帧收齐之后,再做查询和上报的操作,保证了数据帧上报的顺序。
当某一数据帧收齐成为完整数据帧时,则获取最后上报帧序号,并根据最后上报帧序号生成查询帧序号。数据接收端判断接收缓存区中是否存在帧序号小于或等于查询帧序号的完整数据帧,若存在,则数据接收端将帧序号小于或等于查询帧序号的完整数据帧按照帧序号进行顺序上报。本实施例中,数据接收端在收齐某一数据帧时,通过最后上报帧序号、查询帧序号以及这一数据帧的帧序号,确定每一个完整数据帧的上报顺序,再确定了完整数据帧后进行顺序上报。数据接收端通过设置接收缓存区以及顺序查询机制减少了数据传输和上报不稳定的问题。
请参阅图4,本申请实施例提供了另一种基于串口的数据传输方法,包括:
401、数据接收端接收通过串口传输的数据包;
402、数据接收端根据数据包的帧序号将数据包保存在接收缓存区中对应的帧区域;
403、当帧区域的数据包收齐成为完整数据帧时,则数据接收端获取最后上报帧序号,并根据最后上报帧序号生成查询帧序号,最后上报帧序号为最后一次上报完整数据帧的帧序号;
404、数据接收端判断接收缓存区中是否存在帧序号小于或等于查询帧序号的完整数据帧;若是,则执行步骤405;若否,则执行步骤406;
405、当数据接收端确定接收缓存区中存在帧序号小于或等于查询帧序号的完整数据帧时,则数据接收端将帧序号小于或等于查询帧序号的完整数据帧按照帧序号进行顺序上报;
本实施例中的步骤201至205与前述实施例中步骤301至305类似,此处不再赘述。
406、当数据接收端确定接收缓存区中不存在帧序号小于或等于查询帧序号的完整数据帧时,则数据接收端判断接收缓存区的完整数据帧的数量是否达到预设阈值;
当数据接收端确定接收缓存区中不存在帧序号小于或等于查询帧序号的完整数据帧时,则可能是出现了数据帧缺失的情况,这时需要判断接收缓存区的完整数据帧的数量达到预设阈值。当某一帧数据存在缺失的情况时,这一帧的数据帧无法上报,导致最后上报帧序号无法更新,接下来依旧会接收数据包,再有数据帧收齐时,也无法上报。本实施例的解决方式时,判断当前接收缓存区的完整数据帧的数量达到预设阈值,若达到了一定数量,则确定出现了数据帧缺失的现象。
407、当数据接收端确定接收缓存区的完整数据帧的数量达到预设阈值时,则数据接收端上报接收缓存区中帧序号最小的完整数据帧;
当数据接收端确定接收缓存区的完整数据帧的数量达到预设阈值时,则数据接收端上报接收缓存区中帧序号最小的完整数据帧。即当前的接收缓存区中一旦出现完整数据帧的堆叠,则确定当前出现了数据缺失的情况,为了保证后续数据帧的正常上报,则需要进行上报接收缓存区中帧序号最小的完整数据帧,并且更新最后上报帧序号和查询帧序号,以使得后续的数据帧正常上报。下面对数据缺失的解决方式进行举例描述:
20组数据帧,帧序号分别为1至20,按照单串口的传输方式,数据在传输之后的上报顺序为1至20依次增大。目前已上报的数据帧的帧序号为1到5,最后上报帧序号为5,接收缓存区设置的数据帧缓存的预设阈值为6。当帧序号为7的数据帧收齐时,这时查询帧序号为最后上报帧序号加一,即查询帧序号为6,这时无法查询到帧序号为6的完整帧,这时帧序号为8、9、10、11和12的数据帧一次收齐了,帧序号6的数据帧依旧未收齐,当帧序号为13的数据帧收齐,这时接收缓存区中的完整帧个数达到了6个,达到了预设阈值,此时则会直接上报目前接收到的完整数据帧中,帧序号最小的数据帧,即上报顺序最早的数据帧。如在之后的数据传输中,帧序号为6的数据帧重新收齐,由于数据接收端会判断接收缓存区中是否存在帧序号小于或等于查询帧序号的完整数据帧并进行上报,则帧序号为6的数据帧依旧会被重新上报。
408、数据接收端更新最后上报帧序号和查询帧序号,再次判断接收缓存区中是否存在帧序号小于或等于查询帧序号的完整数据帧;
当每一次上报完成之后,则会数据接收端更新最后上报帧序号和查询帧序号,进行下一次的完整数据帧的查询。
409、数据接收端确定接收缓存区的不完整数据帧的时间戳,时间戳表示不完整数据帧内最后一个接收的数据包的接收时间;
数据接收端确定接收缓存区的不完整数据帧的时间戳,时间戳表示不完整数据帧内最后一个接收的数据包的接收时间,时间戳用于确定不完整数据帧的接收时间总和。
410、当时间戳与当前时间的差值达到预设阈值时,则数据接收端清理接收缓存区中不完整数据帧对应的空间。
当时间戳与当前时间的差值达到预设阈值时,则数据接收端清理接收缓存区中不完整数据帧对应的空间。具体的,当数据接收端检测到某一个不完整数据帧中,最后接收到的数据包的时间戳与当前时间的差值达到预设阈值时,则确定该不完整数据帧出现了数据包缺失,数据接收端清理接收缓存区中不完整数据帧对应的空间。
当某一数据帧收齐成为完整数据帧时,则获取最后上报帧序号,并根据最后上报帧序号生成查询帧序号。数据接收端判断接收缓存区中是否存在帧序号小于或等于查询帧序号的完整数据帧,若存在,则数据接收端将帧序号小于或等于查询帧序号的完整数据帧按照帧序号进行顺序上报。本实施例中,数据接收端在收齐某一数据帧时,通过最后上报帧序号、查询帧序号以及这一数据帧的帧序号,确定每一个完整数据帧的上报顺序,再确定了完整数据帧后进行顺序上报。数据接收端通过设置接收缓存区以及顺序查询机制减少了数据传输和上报不稳定的问题。
其次,本实施例中通过检测接收缓存区中的完整数据帧数量,以及使用数据包的时间戳,确定是否出现了数据丢失的现象。
需要说明的是,本实施例中的数据发送端与数据接收端对数据帧的处理主要是通过代码来实现,能够实现本申请的代码有多种,此处仅使用一种代码语言进行必要说明。
代码一:
Figure BDA0003039624720000171
Figure BDA0003039624720000183
上述代码为数据帧在分包处理之后生成的相关数据代码,一个数据包除了收集要发送的数据,还需要由原本数据帧的帧序号,以及分包过程中的包序号等基础身份数据组成。
代码二:
Figure BDA0003039624720000181
上述代码二主要是数据接收端在接收到数据包时得到的帧序号、已收到的包数和总包数等信息,并且还会有时间戳,时间戳是数据接收端接收到这一数据包的时间,当某一个不完整数据帧中,最后接收到的数据包的时间戳与当前时间相差过大时,则表明该不完整数据帧数据包丢失。
代码三:
Figure BDA0003039624720000182
Figure BDA0003039624720000193
pthread_mutex_t send_mutex;
unsigned int last_send_seq;//最后发送帧序号,用于按顺序分配某一个帧序号的数据包。
int last_send_dev_index;//最后发送数据包的串口号。
unsigned long long send_total_bytes[MAX_DEVICE];//每个串口发送的总字节数。
}send_buf;//发送缓存区控制结构。
该代码为数据发送端的代码,主要是记录最后发送数据包的串口号、每个串口发送的总字节数以及每个串口连续发送次数等数据,用于按照已发送数据字节分配数据包,以及发送线程的休眠等操作。
代码四:
Figure BDA0003039624720000191
该代码主要为接收缓存区所使用的代码,数据上报时,获取最后上报帧序号。
Figure BDA0003039624720000192
Figure BDA0003039624720000201
int dev_num;//总串口数。
rev_callback cb;//毁掉函数指针,用来上报接收的数据。
pthread_t check_tid;
int check_run;
}mutil_uart_ctrl;//多串口并行收发控制结构。
需要说明的是,上述多组代码中,上报的数据是将帧结构data_frame中每一个uart_package中的data数组中的取出,组成一个数组上报给应用程序的。对于调用的应用程序来说,获取的就是发送方发送的原始数据。
请参阅图5,本申请实施例提供了一种数据发送端,包括:
第一获取单元501,用于获取待传输的数据帧集合,数据帧集合至少存在一个数据帧;
生成单元502,用于将数据帧集合进行分包处理,以生成数据包集合,数据包集合包括至少一个数据包,数据包包括帧序号;
第一确定单元503,用于确定串口集合中每一个串口的已发送数据字节,串口集合中包含至少两个并行发送串口;
分配单元504,用于将数据包集合中的每个数据包分配到当前已发送数据字节最小的目标串口对应的发送缓存区中进行排序保存;
发送单元505,用于当目标串口空闲时,将目标串口进行传输线程唤醒,以使得目标串口将目标串口对应的发送缓存区的数据包发送到数据接收端。
请参阅图6,本申请实施例提供了另一种数据发送端,包括:
第一获取单元601,用于获取待传输的数据帧集合,数据帧集合至少存在一个数据帧;
生成单元602,用于将数据帧集合进行分包处理,以生成数据包集合,数据包集合包括至少一个数据包,数据包包括帧序号;
第一确定单元603,用于确定串口集合中每一个串口的已发送数据字节,串口集合中包含至少两个并行发送串口;
分配单元604,用于将数据包集合中的每个数据包分配到当前已发送数据字节最小的目标串口对应的发送缓存区中进行排序保存;
第一判断单元605,用于判断目标串口是否为最后发送串口;
第一更新单元606,用于当第一判断单元605确定目标串口为最后发送串口时,更新目标串口的连续发送次数值;
第二更新单元607,用于当第一判断单元605确定目标串口不为最后发送串口时,更新目标串口为最后发送串口;
线程睡眠单元608,用于当目标串口的连续发送次数值达到预设阈值时,将目标串口进行预设时间的传输线程休眠;
第三更新单元609,用于更新串口的已发送数据字节;
发送单元610,用于当目标串口空闲时,将目标串口进行传输线程唤醒,以使得目标串口将目标串口对应的发送缓存区的数据包发送到数据接收端。
请参阅图7,本申请实施例提供了一种数据接收端,包括:
接收单元701,用于接收通过串口传输的数据包;
保存单元702,用于根据数据包的帧序号将数据包保存在接收缓存区中对应的帧区域;
第二获取单元703,用于当帧区域的数据包收齐成为完整数据帧时,获取最后上报帧序号,并根据最后上报帧序号生成查询帧序号,最后上报帧序号为最后一次上报完整数据帧的帧序号;
第二判断单元704,用于判断接收缓存区中是否存在帧序号小于或等于查询帧序号的完整数据帧;
第一上报单元705,用于当第二判断单元704确定接收缓存区中存在帧序号小于或等于查询帧序号的完整数据帧时,将帧序号小于或等于查询帧序号的完整数据帧按照帧序号进行顺序上报。
请参阅图8,本申请实施例提供了另一种数据接收端,包括:
接收单元801,用于接收通过串口传输的数据包;
保存单元802,用于根据数据包的帧序号将数据包保存在接收缓存区中对应的帧区域;
第二获取单元803,用于当帧区域的数据包收齐成为完整数据帧时,获取最后上报帧序号,并根据最后上报帧序号生成查询帧序号,最后上报帧序号为最后一次上报完整数据帧的帧序号;
第二判断单元804,用于判断接收缓存区中是否存在帧序号小于或等于查询帧序号的完整数据帧;
第一上报单元805,用于当第二判断单元804确定接收缓存区中存在帧序号小于或等于查询帧序号的完整数据帧时,将帧序号小于或等于查询帧序号的完整数据帧按照帧序号进行顺序上报;
第三判断单元806,用于当第二判断单元804确定接收缓存区中不存在帧序号小于或等于查询帧序号的完整数据帧时,判断接收缓存区的完整数据帧的数量达到预设阈值;
第二上报单元807,当第三判断单元806确定接收缓存区的完整数据帧的数量达到预设阈值时,则上报接收缓存区中帧序号最小的完整数据帧;
第四更新单元808,用于更新最后上报帧序号和查询帧序号,再次判断接收缓存区中是否存在帧序号小于或等于查询帧序号的完整数据帧;
第二确定单元809,用于确定接收缓存区的不完整数据帧的时间戳,时间戳表示不完整数据帧内最后一个接收的数据包的接收时间;
清理单元810,用于当时间戳与当前时间的差值达到预设阈值时,则清理接收缓存区中不完整数据帧对应的空间。
请参阅图9,本申请实施例提供了另一种数据发送端,包括:
处理器901、存储器902、输入输出单元903、总线904;
处理器901与存储器902、输入输出单元903以及总线904相连;
处理器901具体执行如下操作:
数据发送端获取待传输的数据帧集合,数据帧集合至少存在一个数据帧;
数据发送端将数据帧集合进行分包处理,以生成数据包集合,数据包集合包括至少一个数据包,数据包包括帧序号;
数据发送端确定串口集合中每一个串口的已发送数据字节,串口集合中包含至少两个并行发送串口;
数据发送端将数据包集合中的每个数据包分配到当前已发送数据字节最小的目标串口对应的发送缓存区中进行排序保存;
当目标串口空闲时,数据发送端将目标串口进行传输线程唤醒,以使得目标串口将目标串口对应的发送缓存区的数据包发送到数据接收端。
本实施例中,处理器901的功能与前述图1至图2所示实施例中的步骤对应,此处不做赘述。
请参阅图10,本申请实施例提供了另一种数据接收端,包括:
处理器1001、存储器1002、输入输出单元1003、总线1004;
处理器1001与存储器1002、输入输出单元1003以及总线1004相连;
处理器1001具体执行如下操作:
数据接收端接收通过串口传输的数据包;
数据接收端根据数据包的帧序号将数据包保存在接收缓存区中对应的帧区域;
当帧区域的数据包收齐成为完整数据帧时,则数据接收端获取最后上报帧序号,并根据最后上报帧序号生成查询帧序号,最后上报帧序号为最后一次上报完整数据帧的帧序号;
数据接收端判断接收缓存区中是否存在帧序号小于或等于查询帧序号的完整数据帧;
若是,则数据接收端将帧序号小于或等于查询帧序号的完整数据帧按照帧序号进行顺序上报。
本实施例中,处理器1001的功能与前述图3至图4所示实施例中的步骤对应,此处不做赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,read-onlymemory)、随机存取存储器(RAM,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。

Claims (10)

1.一种基于串口的数据传输方法,其特征在于,包括:
数据发送端获取待传输的数据帧集合,所述数据帧集合至少存在一个数据帧;
所述数据发送端将所述数据帧集合进行分包处理,以生成数据包集合,所述数据包集合包括至少一个数据包,所述数据包包括帧序号;
所述数据发送端确定串口集合中每一个串口的已发送数据字节,所述串口集合中包含至少两个并行发送串口;
所述数据发送端将所述数据包集合中的每个数据包分配到当前已发送数据字节最小的目标串口对应的发送缓存区中进行排序保存;
当所述目标串口空闲时,所述数据发送端将所述目标串口进行传输线程唤醒,以使得所述目标串口将所述目标串口对应的发送缓存区的数据包发送到数据接收端。
2.根据权利要求1所述的数据传输方法,其特征在于,在所述数据发送端将所述数据包集合中的每个数据包分配到当前已发送数据字节最小的目标串口对应的发送缓存区中进行排序保存之后,所述数据传输方法还包括:
所述数据发送端判断所述目标串口是否为最后发送串口;
若是,则所述数据发送端更新所述目标串口的连续发送次数值;
若否,则所述数据发送端更新所述目标串口为最后发送串口。
3.根据权利要求2所述的数据传输方法,其特征在于,在所述更新所述目标串口的连续发送次数值之后,所述数据传输方法还包括:
当所述目标串口的连续发送次数值达到预设阈值时,所述数据发送端对所述目标串口进行预设时间的传输线程休眠。
4.根据权利要求1至3中任一项所述的数据传输方法,其特征在于,在所述数据发送端将所述数据包集合中的每个数据包分配到当前已发送数据字节最小的串口对应的发送缓存区中进行排序保存之后,所述数据传输方法还包括:
所述数据发送端更新所述串口的已发送数据字节。
5.一种基于串口的数据传输方法,其特征在于,包括:
数据接收端接收通过串口传输的数据包;
所述数据接收端根据所述数据包的帧序号将所述数据包保存在接收缓存区中对应的帧区域;
当所述帧区域的数据包收齐成为完整数据帧时,则所述数据接收端获取最后上报帧序号,并根据所述最后上报帧序号生成查询帧序号,所述最后上报帧序号为最后一次上报完整数据帧的帧序号;
所述数据接收端判断所述接收缓存区中是否存在帧序号小于或等于所述查询帧序号的完整数据帧;
若是,则所述数据接收端将所述帧序号小于或等于所述查询帧序号的完整数据帧按照帧序号进行顺序上报。
6.根据权利要求5所述的数据传输方法,其特征在于,在所述数据接收端将所述帧序号小于或等于所述查询帧序号的完整数据帧按照帧序号进行顺序上报之后,所述数据传输方法还包括:
所述数据接收端更新所述最后上报帧序号和查询帧序号,再次判断所述接收缓存区中是否存在帧序号小于或等于所述查询帧序号的完整数据帧。
7.根据权利要求5所述的数据传输方法,其特征在于,在所述数据接收端判断所述接收缓存区中是否存在帧序号小于或等于所述查询帧序号的完整数据帧之后,所述数据传输方法还包括:
若否,所述数据接收端判断所述接收缓存区的完整数据帧的数量是否达到预设阈值;
若达到,则数据接收端上报所述接收缓存区中帧序号最小的完整数据帧。
8.根据权利要求5至7中任一项所述的数据传输方法,其特征在于,所述数据传输方法还包括:
数据接收端确定所述接收缓存区的不完整数据帧的时间戳,所述时间戳表示不完整数据帧内最后一个接收的数据包的接收时间;
当所述时间戳与当前时间的差值达到预设阈值时,则数据接收端清理所述接收缓存区中所述不完整数据帧对应的空间。
9.一种电子设备,其特征在于,所述电子设备包括:
存储器,存储有可执行计算机程序指令;
处理器,用于调用所述可执行计算机程序指令实现如权利要求1-4任一项所述的基于串口的数据传输方法。
10.一种电子设备,其特征在于,所述电子设备包括:
存储器,存储有可执行计算机程序指令;
处理器,用于调用所述可执行计算机程序指令实现如权利要求5-8任一项所述的基于串口的数据传输方法。
CN202110464612.6A 2021-04-26 2021-04-26 一种基于串口的数据传输方法及装置 Pending CN113515481A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110464612.6A CN113515481A (zh) 2021-04-26 2021-04-26 一种基于串口的数据传输方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110464612.6A CN113515481A (zh) 2021-04-26 2021-04-26 一种基于串口的数据传输方法及装置

Publications (1)

Publication Number Publication Date
CN113515481A true CN113515481A (zh) 2021-10-19

Family

ID=78063811

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110464612.6A Pending CN113515481A (zh) 2021-04-26 2021-04-26 一种基于串口的数据传输方法及装置

Country Status (1)

Country Link
CN (1) CN113515481A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116500564A (zh) * 2023-05-31 2023-07-28 深圳承泰科技有限公司 一种用于车载毫米波雷达算法验证系统和方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5444709A (en) * 1993-09-30 1995-08-22 Apple Computer, Inc. Protocol for transporting real time data
JP2004320151A (ja) * 2003-04-11 2004-11-11 Japan Radio Co Ltd 受信装置における不完全フレーム廃棄装置
CN101262321A (zh) * 2008-02-03 2008-09-10 杭州华三通信技术有限公司 媒体数据处理方法、编码设备及媒体平台
CN105187440A (zh) * 2015-09-26 2015-12-23 北京暴风科技股份有限公司 使用udp协议传输视频数据的方法及系统
CN105763375A (zh) * 2016-04-01 2016-07-13 京信通信技术(广州)有限公司 一种数据包发送方法、接收方法及微波站
CN108199976A (zh) * 2017-12-28 2018-06-22 天津芯海创科技有限公司 RapidIO网络的交换设备、交换系统和数据发送方法
CN111224888A (zh) * 2018-11-27 2020-06-02 华为技术有限公司 发送报文的方法及报文转发设备

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5444709A (en) * 1993-09-30 1995-08-22 Apple Computer, Inc. Protocol for transporting real time data
JP2004320151A (ja) * 2003-04-11 2004-11-11 Japan Radio Co Ltd 受信装置における不完全フレーム廃棄装置
CN101262321A (zh) * 2008-02-03 2008-09-10 杭州华三通信技术有限公司 媒体数据处理方法、编码设备及媒体平台
CN105187440A (zh) * 2015-09-26 2015-12-23 北京暴风科技股份有限公司 使用udp协议传输视频数据的方法及系统
CN105763375A (zh) * 2016-04-01 2016-07-13 京信通信技术(广州)有限公司 一种数据包发送方法、接收方法及微波站
CN108199976A (zh) * 2017-12-28 2018-06-22 天津芯海创科技有限公司 RapidIO网络的交换设备、交换系统和数据发送方法
CN111224888A (zh) * 2018-11-27 2020-06-02 华为技术有限公司 发送报文的方法及报文转发设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116500564A (zh) * 2023-05-31 2023-07-28 深圳承泰科技有限公司 一种用于车载毫米波雷达算法验证系统和方法

Similar Documents

Publication Publication Date Title
CN108776934B (zh) 分布式数据计算方法、装置、计算机设备及可读存储介质
US7890620B2 (en) Monitoring system and monitoring method
CN101277272B (zh) 一种海量广播数据入库的实现方法
US20090043745A1 (en) Query Execution and Optimization with Autonomic Error Recovery from Network Failures in a Parallel Computer System with Multiple Networks
US9959301B2 (en) Distributing and processing streams over one or more networks for on-the-fly schema evolution
US20230244537A1 (en) Efficient gpu resource allocation optimization method and system
CN112231098A (zh) 任务处理方法、装置、设备及存储介质
CN109144787A (zh) 一种数据恢复方法、装置、设备及可读存储介质
WO2024051454A1 (zh) 处理事务日志的方法及装置
CN106375103B (zh) 一种告警数据采集和发送方法
CN113515481A (zh) 一种基于串口的数据传输方法及装置
US20100325280A1 (en) Load Balance Connections Per Server In Multi-Core/Multi-Blade System
US8359601B2 (en) Data processing method, cluster system, and data processing program
CN113347238A (zh) 基于区块链的消息分区方法及系统、设备、存储介质
US20040059758A1 (en) Method and apparatus for optimizing extent size
CN116663639B (zh) 一种梯度数据同步方法、系统、装置及介质
US7774311B2 (en) Method and apparatus of distributing data in partioned databases operating on a shared-nothing architecture
CN117667763A (zh) 数据处理方法、装置、电子设备和可读存储介质
CN111400241B (zh) 数据重构方法和装置
CN117149578A (zh) 一种任务进度监控方法及相关装置
CN114637656B (zh) 基于Redis的监控方法、装置、存储介质和设备
KR101968575B1 (ko) 실시간 병목 자동 분석 방법 및 이러한 방법을 수행하는 장치
CN109491768A (zh) 一种基于子事务流的分布式事务动态处理方法和系统
Sun et al. Hee-sketch: an efficient sketch for sliding-window frequency estimation over skewed data streams
CN115964155B (zh) 芯片内数据处理硬件、芯片内数据处理方法及ai平台

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