CN111177060A - 串口数据发送方法、接收方法、相应装置及终端设备 - Google Patents

串口数据发送方法、接收方法、相应装置及终端设备 Download PDF

Info

Publication number
CN111177060A
CN111177060A CN201911380681.8A CN201911380681A CN111177060A CN 111177060 A CN111177060 A CN 111177060A CN 201911380681 A CN201911380681 A CN 201911380681A CN 111177060 A CN111177060 A CN 111177060A
Authority
CN
China
Prior art keywords
serial port
data
time sequence
sending
terminal equipment
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.)
Granted
Application number
CN201911380681.8A
Other languages
English (en)
Other versions
CN111177060B (zh
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 Yuejiang Technology Co Ltd
Original Assignee
Shenzhen Yuejiang 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 Yuejiang Technology Co Ltd filed Critical Shenzhen Yuejiang Technology Co Ltd
Priority to CN201911380681.8A priority Critical patent/CN111177060B/zh
Publication of CN111177060A publication Critical patent/CN111177060A/zh
Application granted granted Critical
Publication of CN111177060B publication Critical patent/CN111177060B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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

Abstract

本申请属于通信技术领域,尤其涉及一种串口数据发送方法、接收方法、相应装置及终端设备。所述串口数据发送方法包括:设置所述终端设备的串口运行参数;根据所述串口运行参数,确定待发送数据的发送时序表;根据所述发送时序表,对所述待发送数据进行时序校验,得到时序校验结果;当所述时序校验结果的时序偏差值小于预定时序偏差阈值时,则通过所述串口将所述待发送数据发送给所述目标通信设备。通过本申请实施例,降低了所述待发送数据出现乱序发送的可能性,从而提高了发送过程中数据的可靠性。

Description

串口数据发送方法、接收方法、相应装置及终端设备
技术领域
本申请属于通信技术领域,尤其涉及一种串口数据发送方法、接收方法、相应装置及终端设备。
背景技术
串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。串口通信简单并且能够实现远距离通信。比如IEEE488定义并行通行状态时,规定设备线总长不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。
目前,外部设备往往通过串口与终端设备进行通讯,而串口的传送速率有限,往往会遇到串口传送速率无法满足数据传输需求的情况。在相关技术中,已有一些模拟窜口实现的方案。这些方案可以部分满足数据传输需求,但这些方案普遍存在乱序发送的可能性,根本无法保证发送和接收过程中数据的可靠性。
需要说明的是,在上述背景技术部分公开的数据仅用于加强对本申请的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的数据。
发明内容
有鉴于此,本申请实施例提供了一种串口数据发送方法、接收方法、相应装置及终端设备,以解决相关技术中无法保证发送和接收过程中数据的可靠性问题。
本申请实施例的第一方面,提供了一种串口数据发送方法,应用于终端设备,所述终端设备与目标通信设备通过串口连接,所述方法包括:
设置所述终端设备的串口运行参数;
根据所述串口运行参数,确定待发送数据的发送时序表;
根据所述发送时序表,对所述待发送数据进行时序校验,得到时序校验结果;
当所述时序校验结果的时序偏差值小于预定时序偏差阈值时,则通过所述串口将所述待发送数据发送至所述目标通信设备。
在本申请的一些实施例中,所述根据所述串口运行参数,确定待发送数据的发送时序表,具体包括:
将与所述待发送数据的起始数据包对应的发送起始时刻设置为串口发送数据的起始时刻;
根据所述串口发送数据的起始时刻、预定的发送速率、预定的数据包发送顺序,依次确定自所述串口发送数据的起始时刻起与各个数据包对应的发送时刻。
在本申请的一些实施例中,在所述则通过所述串口将所述待发送数据发送给所述目标通信设备之后,还包括:
根据所述发送时序表,对定时器记录的所述待发送数据的各个数据包的实际发送时刻进行校验;
当校验结果的时序偏差值大于或等于预定时序偏差阈值时,按照所述发送时序表对所述待发送数据进行重新发送。
在本申请的一些实施例中,在所述设置所述终端设备的串口运行参数之前,还包括:
接收所述目标通信设备发送的预定波特率;
所述设置所述终端设备的串口运行参数,包括:
根据所述预定波特率,设置所述终端设备的串口波特率。
在本申请的一些实施例中,在所述根据所述串口运行参数,确定待发送数据的发送时序表之前,还包括:对设置的所述终端设备的串口运行参数进行验证;
所述对设置的所述终端设备的串口运行参数进行验证,包括:
当所述终端设备中串口的波特率大于预定波特率阈值,重置所述终端设备中串口的波特率;以及
当所述终端设备中串口的数据位大于预定阈值位数的数据位,重置所述终端设备中串口的数据位;以及
当所述终端设备中串口的停止位大于预定阈值位数的停止位,重置所述终端设备中串口的停止位;以及
当所述终端设备中串口的校验位不是预定的校验位时,重置所述终端设备中串口的校验位。
本申请实施例的第二方面,提供了一种串口数据接收方法,应用于目标通信设备,所述目标通信设备与终端设备通过串口连接,所述方法包括:
设置所述目标通信设备的串口运行参数;
根据所述串口运行参数,确定待接收数据的接收时序表;
根据所述接收时序表,对所述待接收数据进行时序校验,得到时序校验结果;
当所述时序校验结果的时序偏差值小于预定时序偏差阈值时,则通过所述串口接收所述终端设备发送的所述待接收数据。
本申请实施例的第三方面,提供了一种串口数据发送装置,应用于终端设备,所述终端设备与目标通信设备通过串口连接,所述装置包括:
配置模块,用于设置所述终端设备的串口运行参数;
计算模块,用于根据所述串口运行参数,确定待发送数据的发送时序表;
时序校验模块,用于根据所述发送时序表,对所述待发送数据进行时序校验,得到时序校验结果;
发送模块,用于当所述时序校验结果的时序偏差值小于预定时序偏差阈值时,则通过所述串口将所述待发送数据发送至所述目标通信设备。
本申请实施例的第四方面,提供了一种串口数据的接收装置,应用于目标通信设备,所述目标通信设备与终端设备通过串口连接,所述装置包括:
配置模块,用于设置所述目标通信设备的串口运行参数;
计算模块,用于根据所述串口运行参数,确定待接收数据的接收时序表;
时序校验模块,用于根据所述接收时序表,对所述待接收数据进行时序校验,得到时序校验结果;
接收模块,用于当所述时序校验结果的时序偏差值小于预定时序偏差阈值时,则通过所述串口接收所述终端设备发送的所述待接收数据。
本申请实施例的第五方面,提供了一种移动终端,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述的串口数据发送方法或所述串口数据接收方法的步骤。
本申请实施例的第六方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的串口数据发送方法或所述串口数据接收方法的步骤。
本申请实施例与现有技术相比存在的有益效果是:本申请实施例首先设置所述终端设备的串口运行参数;根据所述串口运行参数,确定串口的发送时序表;根据所述发送时序表,对待发送数据进行时序校验,得到时序校验结果;当所述时序校验结果的时序偏差值小于预定时序偏差阈值时,则通过所述串口将所述待发送数据发送给所述目标通信设备。通过本申请实施例,可以在目标通信设备通过串口与终端设备进行通讯时,终端设备预先计算发送时序表,同时根据发送时序表对待发送数据的发送时刻的有效性进行校验;当校验结果小于预定时序偏差阈值时才对所述待发送消息进行发送。这样一来,降低了所述待发送数据出现乱序发送的可能性,从而提高了发送过程中数据的可靠性。
本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为可以应用本申请实施例的串口数据发送方法、接收方法及相应装置的示例性应用环境的系统架构的示意图;
图2为本申请一个实施例中一种串口数据发送方法的流程图;
图3为本申请一个实施例中步骤S220的具体流程图;
图4为本申请另一个实施例中一种串口数据发送方法的流程图;
图5为本申请一个实施例中一种串口数据接收方法的流程图;
图6为本申请实施例中一种串口数据发送装置的一个实施例结构图;
图7为本申请实施例中一种串口数据接收装置的一个实施例结构图;
图8为本申请实施例中一种终端设备的示意框图。
具体实施方式
为使得本申请的发明目的、特征、优点能够更加的明显和易懂,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本申请一部分实施例,而非全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
图1示出了可以应用本申请实施例的串口数据发送方法、接收方法及相应装置的示例性应用环境的系统架构的示意图。
如图1所示,系统架构100可以包括终端设备101、2个串口102、2条串行传输线103和目标通信设备104。串口102用以在终端设备101和目标通信设备104之间提供互联及数据传输。串行传输线103用于在至少2个串口102之间进行数据传输,可以包括各种串口连接线,例如电话线、电缆线等等。
应该理解,图1中的终端设备、目标通信设备、串行传输线和串口的数目仅仅是示意性的。根据实际需要,可以具有任意数目的终端设备、目标通信设备、串行传输线和串口。比如目标通信设备可以是多个通信设备组成的通信设备集群等,相应地,需要更多数目的串行传输线和串口。
在本申请的一个具体应用实施例中,用户事先设置终端设备101中的串口102的串口运行参数,包括但不限于设置串口波特率、数据位、停止位、校验位的参数;之后根据串口运行参数,计算待发送数据中各个数据的目标发送时刻,形成待发送数据的发送时序表;最后,根据所述发送时序表,利用终端设备101中的定时器对所述待发送数据进行时序校验,得到时序校验结果;当所述时序校验结果的时序偏差值小于预定时序偏差阈值时,则说明发送时序表符合预定发送条件(比如波特率条件、发送迟延时间条件),这时可以通过所述串口102将所述待发送数据发送给所述目标通信设备104,以确保发送数据按照正确的时刻依次发送到所述目标通信设备104。
在本申请的另一个具体应用实施例中,用户事先设置目标终端设备104中的串口102的串口运行参数,包括但不限于设置串口波特率、数据位、停止位、校验位的参数;之后根据串口运行参数,计算待接收数据中各个数据的目标接收时刻,形成待接收数据的接收时序表;最后,根据所述接收时序表,利用目标终端设备104中的定时器对所述待接收数据进行时序校验,得到时序校验结果;当所述时序校验结果的时序偏差值小于预定时序偏差阈值时,则说明接收时序表符合预定接收条件(比如波特率条件、发送迟延时间条件),这时可以通过所述串口102接收所述待接收数据,以确保接收数据按照正确的时刻依次接收到所述目标通信设备104。
需要说明的是,一般串口通信是异步的,串口102能够在一根串行传输线103上发送数据的同时在另一根串行传输线103上接收数据,因此,所述终端设备101可以同时执行串口数据发送和串口数据接收操作;相应地,所述目标通信设备104也可以同时执行串口数据发送和串口数据接收操作,本申请实施例对此不做特殊限定。
如图2所示,为本申请实施例提供的一种串口数据发送方法的流程图,所述方法应用于终端设备,所述终端设备与目标通信设备通过串口连接,所述方法包括:
步骤S210、设置所述终端设备的串口运行参数;
步骤S220、根据所述串口运行参数,确定待发送数据的发送时序表;
步骤S230、根据所述发送时序表,对所述待发送数据进行时序校验,得到时序校验结果;
步骤S240、当所述时序校验结果的时序偏差值小于预定时序偏差阈值时,则通过所述串口将所述待发送数据发送至所述目标通信设备。
下面对以上步骤进行详细说明。
在步骤S210中,设置所述终端设备的串口运行参数。
可以理解的是,串口是一种非常通用的设备通信的协议,大多数通信设备包含两个串口,可以用于获取目标终端设备的数据。一般在通过串口发送数据时,数据将被分成若干个小件,被称为数据包。每个数据包为一个字节,包括起始位、停止位,数据位和校验位。针对数据包的起始位、停止位、数据位和校验位,需要事先设置;另外,串口的波特率也需要设置。
波特率,是一个用来衡量符号传输速率的参数,用于表示每秒钟传送的符号的个数。例如300波特表示每秒钟发送300个符号。当我们提到时钟周期时,就是指比特率,例如如果协议需要4800波特率,即时钟是4800Hz。换言之,时钟实际上指的是串口通信在数据线上的采样率。一般地,波特率和距离成反比,即两个通信设备之间的距离越远,设置的串口波特率应当越大。例如,将串口通信波特率设置为110bit/s、300bit/s、600bit/s、1200bit/s等数值。
数据位,是用于衡量通信中单个数据包实际数据位的参数。当利用串口发送一个数据包时,数据包实际的数据位数不一定是8位,可能是5、6、7或8位,数据包的实际数据位数取决于所选取的通信协议。比如,标准ASCII码是0~127(7位),扩展ASCII码是0~255(8位)。如果数据包使用标准ASCII码,则每个数据包包含7位数据;而当数据包使用扩展ASCII码,则每个数据包包含8位数据。
起始位,是用于表示单个数据包的第一位,其值为一般为1位。表现为持续一个比特时间的逻辑0(低电平),使串口传输线处于逻辑0低电平状态,提示接收设备数据传输即将开始,即标志传输一个字符的开始。具体地,终端设备通过发送起始位而开始一个字符传送,目标通信设备可以用起始位使自己的接收时钟与发送方的数据同步。
停止位,是用于表示单个数据包的最后一位,其值可以为1、1.5或2位。表现为持续1或1.5或2比特时间的逻辑1(高电平),使串口传输线处于逻辑1高电平状态,提示接收设备数据传输即将结束,用以标志一个字符传送的结束。一般情况下,停止位默认设置为1。具体地,终端设备通过发送停止位而结束一个字符传送,目标通信设备可以用停止位使自己的接收时钟与发送方的数据同步。
校验位,又称奇偶校验位,是一个表示在给定位数的二进制数中1的个数是奇数还是偶数的二进制数。在串口通信中,校验位用来判断发送或接收的数据位有无错误。一般情况下,校验位默认设置为1或0,当校验位默认设置0时,表示不做校验。在发送待发送数据前,进行校验,可以提高发现待发送数据发送错误的概率,降低产生乱序发送的发生概率;同理,在接收待接收数据过程中,进行校验,可以提高发现待接收数据在传输过程中发生错误的概率,从而判断待接收数据是否与发送数据同步,降低产生乱序接收的发生概率。
在本申请的一个实施例中,在步骤S210之前,所述串口数据发送方法还包括:
接收所述目标通信设备发送的预定波特率。
可以理解,在终端设备与目标通信设备与建立的串口通信连接后,可以从所述目标通信设备接收按预定波特率发送数据的指令。
相应地,终端设备可以根据接收的按预定波特率发送数据的指令,设置所述终端设备的串口波特率。
这样做的好处是,可以保证在初始状态下,终端设备的数据发送速率与目标通信设备的数据接收速率保持同步,从而降低了数据包丢失的发生概率。
在步骤S220中,根据所述串口运行参数,确定待发送数据的发送时序表。
可以理解,所述发送时序表,具体是指待发送数据中各个数据包的起始位、数据位、校验位和停止位的发送时刻。因此,一个待发送数据,可能对应多个依次衔接的发送时序表。例如,当待发送数据包含3个数据包A、B、C时,数据包A对应于发送时序表1、数据包B对应于发送时序表2、数据包C对应于发送时序表3,则所述待发送数据的发送时序表,可以由发送时序表1、2、3依次拼接而成。
如图3所示,在本申请的一个实施例中,步骤S220,具体包括:
步骤S2201、将与所述待发送数据的起始数据包对应的发送起始时刻设置为串口发送数据的起始时刻。
可以理解,所述待发送数据包含至少2个数据包,这时需要先设定起始数据包中起始位的发送起始时刻;然后,依次确定起始数据包中起始位的发送结束时刻,数据位、校验位和停止位的发送起始时刻和发送结束时刻;之后依次确定第2个数据包、第3个数据包直至最后一个数据包的发送起始时刻和发送结束时刻。而所述串口发送数据的起始时刻,一般设置为起始数据包中起始位的发送起始时刻,以表明数据包正式开始发送。
步骤S2202、根据所述串口发送数据的起始时刻、预定的发送速率、预定的数据包发送顺序,依次确定自所述串口发送数据的起始时刻起与各个数据包对应的发送时刻。
需要说明的是,所述预定的发送速率,指的是发送一个比特数据所需耗费的发送时间;而预定的数据包发送顺序,可根据现有拆包协议进行拆包确定,本申请实施例对此不做特殊限定。
在本申请的一个实施例中,将起始数据包(即第一个数据包)的起始位的发送起始时刻为0,并通过以下公式依次计算第一个数据包的数据位、校验位和停止位的发送起始时刻和发送结束时刻:
起始位的发送结束时刻startTime=0+A*bitTime; 公式1
数据位1的发送结束时刻data1Time=startTime+1*bitTime; 公式2
数据位2的发送结束时刻data2Time=data1Time+1*bitTime; 公式3
数据位N的发送结束时刻dataNTime=dataN-1Time+1*bitTime; 公式4
校验位的发送结束时刻parityTime=dataNTime+B*bitTime; 公式5
停止位的发送结束时刻stopTime=parityTime+C*bitTime; 公式6
bitTime=1s/BaudRate/TimeCntUnit; 公式7
1s=1000000us; 公式8
其中,起始位大小为A位(A bit),A为1~3之间的任一自然数;数据位大小为N位(Nbit),N为5~8之间的任一自然数;校验位大小为B位(B bit),B为1~3之间的任一自然数;停止位大小为C位(C bit),C为1~3之间的任一自然数;bitTime表示一个比特的发送时间,以us为单位;BaudRate表示串口波特率,以bit/s为单位;TimeCntUnit表示定时器最小计数时间,以us为单位。
需要说明的是,一个数据包的起始位的发送结束时刻,也是一个数据包的数据位的发送起始时刻;一个数据包的数据位的发送结束时刻,也是一个数据包的校验位的发送起始时刻;一个数据包的校验位的发送结束时刻,也是一个数据包的停止位的发送起始时刻。因此,在计算出第一个数据包的停止位、数据位和校验位的发送时刻后,可以按照以上公式接续计算出第2个数据包、第3个数据包至最后一个数据包的发送时刻,本申请实施例在此不再赘述。
在本申请的一个实施例中,在步骤S220之前,所述串口数据发送方法还包括:对设置的所述终端设备的串口运行参数进行验证。
可以理解,预先设置的所述终端设备的串口运行参数可能不符合目标终端设备的接收要求,因此,有必要在计算发送时序表之前,预先确定终端设备的串口运行参数不违反串口参数设置规则,因此需要对设置的所述终端设备的串口运行参数进行验证。
具体地,当所述终端设备中串口的波特率大于预定波特率阈值,重置所述终端设备中串口的波特率;以及当所述终端设备中串口的数据位大于预定阈值位数的数据位,重置所述终端设备中串口的数据位;以及当所述终端设备中串口的停止位大于预定阈值位数的停止位,重置所述终端设备中串口的停止位;以及当所述终端设备中串口的校验位不是预定的校验位时,重置所述终端设备中串口的校验位。
步骤S230、根据所述发送时序表,对所述待发送数据进行时序校验,得到时序校验结果。
可以理解,在得到待发送数据的各个数据包对应的发送时序表后,可以按照各个数据包的发送顺序依次拼接形成关于待发送数据的完整发送时序表。
由于定时器的计数时间存在一个最小单位,因此在计算发送时序表的时候,如果预先设置的波特率太高,会导致计算出的发送时序表存在较大误差。为了确保待发送数据的完整发送时序表匹配于预定设置的串口波特率,降低乱序发送数据的概率,故有必要对所述待发送数据进行时序校验,得到时序检验结果。
需要说明的是,时序校验的过程由定时器实施并可采用相关技术中的任意一种时序校验技术,本申请实施例对此不做特殊限定。
步骤S240、当所述时序校验结果的时序偏差值小于预定时序偏差阈值时,则通过所述串口将所述待发送数据发送至所述目标通信设备。
可以理解的是,所述预定时序偏差阈值,是定时器能分辨的最大时间偏差值,可以通过测量获得。在这一前提条件下,若所述时序校验结果的时序偏差值小于预定时序偏差阈值时,则表明所述待发送数据的完整发送时序表匹配于预定设置的串口波特率,可以开始执行数据发送操作。
在本申请的一个实施例中,为了保证计算出来的发送时序表是可靠有效的,定义了一个预定时序偏差阈值MaxErrrCNT,并可以按照下列公式计算所述预定时序偏差阈值:
MaxErrCNT=MaxErr*bitTime; 公式9
其中,MaxErr表示预先设定的一个比特发送时间内的最大误差百分比;bitTime表示一个比特的发送时间,以us为单位。
因此,当所述时序校验结果的时序偏差值小于预定时序偏差阈值时,则可以通过所述串口将所述待发送数据发送给所述目标通信设备;相反,当所述时序校验结果的时序偏差值大于或等于预定时序偏差阈值MaxErrCNT时,则按照本申请实施例公开的方法重新确定所述发送时序表。
在本申请的另一个实施例中,如果所述时序校验结果的时序偏差值小于定时器最小计数时间的1/2时,则通过所述串口将所述待发送数据发送给所述目标通信设备;相反,若所述时序校验结果的时序偏差值大于或等于定时器最小计数时间的1/2时,则按照本申请实施例公开的方法重新确定所述发送时序表。
如图4所示,在本申请的一个实施例中,在步骤S240之后,还包括:
步骤S410、根据所述发送时序表,对定时器记录的所述待发送数据的各个数据包的实际发送时刻进行校验。
可以理解的是,在对所述待发送数据的各个数据包进行依次发送时,定时器会按照预定的定时计数时间依次记录各个时刻的在发数据包,从而得到所述待发送数据的各个数据包的实际发送时刻的实际发送时序表。此时,定时器通过对所述发送时序表与实际发送时序表进行匹配运算,可以校验出发送过程中产生的时序偏差值。
步骤S420、当校验结果的时序偏差值大于或等于预定时序偏差阈值时,按照所述发送时序表对所述待发送数据进行重新发送。
可以理解,当所述时序校验结果的时序偏差值大于或等于预定时序偏差阈值时,表明发送过程存在较大的数据发送时序误差,应当重新进行发送。
这样做的好处是,可以在待发送数据实际发送后,对所述待发送数据的可靠性进行再次验证,从而降低了待发送数据乱序发送的发生概率。
如图5所示,本申请实施例提供了一种串口数据接收方法,应用于目标通信设备,所述目标通信设备与终端设备通过串口连接,所述方法包括:
步骤S510、设置所述目标通信设备的串口运行参数;
步骤S520、根据所述串口运行参数,确定待接收数据的接收时序表;
步骤S530、根据所述接收时序表,对所述待接收数据进行时序校验,得到时序校验结果;
步骤S540、当所述时序校验结果的时序偏差值小于预定时序偏差阈值时,则通过所述串口接收所述终端设备发送的所述待接收数据。
可以理解,所述目标通信设备可以接收所述终端设备发送的所述待发送数据,与所述串口数据发送方法对应的是,所述目标通信设备按照上述方法对所述待发送数据进行接收。
在本申请的一个实施例中,所述根据所述串口运行参数,确定待接收数据的接收时序表,具体包括:
首先,将与所述待接收数据的起始数据包对应的接收起始时刻设置为串口接收数据的起始时刻;
其次,根据所述串口接收数据的起始时刻、预定的接收速率、预定的数据包接收顺序,依次确定自所述串口接收数据的起始时刻起与各个数据包对应的接收时刻。
在本申请的一个实施例中,在所述通过所述串口接收所述终端设备发送的所述待接收数据之后,还包括:
首先,根据所述接收时序表,对定时器记录的所述待接收数据的各个数据包的实际接收时刻进行校验;
其次,当校验结果的时序偏差值大于或等于预定时序偏差阈值时,按照所述接收时序表对所述待接收数据进行重新接收。
在本申请的一个实施例中,在所述设置所述目标通信设备的串口运行参数之前,预先设定所述目标通信设备接收数据的波特率,并将所述波特率发送到所述终端设备。
在本申请的一个实施例中,在所述根据所述串口运行参数,确定待接收数据的接收时序表之前,还包括:对设置所述目标通信设备的串口运行参数进行验证。
具体地,当所述目标通信设备中串口的波特率大于预定波特率阈值,重置所述目标通信设备中串口的波特率;以及当所述目标通信设备中串口的数据位大于预定阈值位数的数据位,重置所述目标通信设备中串口的数据位;以及当所述目标通信设备中串口的停止位大于预定阈值位数的停止位,重置所述目标通信设备中串口的停止位;以及当所述目标通信设备中串口的校验位不是预定的校验位时,重置所述目标通信设备中串口的校验位。
对应于上文实施例所述的一种串口数据发送方法,图6示出了本申请实施例提供的一种串口数据发送装置的一个实施例结构图。
如图6所示,在本申请的一个实施例中,所述串口数据发送装置,包括:
配置模块610,用于设置所述终端设备的串口运行参数;
计算模块620,用于根据所述串口运行参数,确定待发送数据的发送时序表;
时序校验模块630,用于根据所述发送时序表,对所述待发送数据进行时序校验,得到时序校验结果;
发送模块640,用于当所述时序校验结果的时序偏差值小于预定时序偏差阈值时,则通过所述串口将所述待发送数据发送至所述目标通信设备。
如图7所示,在本申请的一个实施例中,所述串口数据接收装置,包括:
配置模块710,用于设置所述目标通信设备的串口运行参数;
计算模块720,用于根据所述串口运行参数,确定待接收数据的接收时序表;
时序校验模块730,用于根据所述接收时序表,对所述待接收数据进行时序校验,得到时序校验结果;
接收模块740,用于当所述时序校验结果的时序偏差值小于预定时序偏差阈值时,则通过所述串口接收所述终端设备发送的所述待接收数据。
本申请实施例与现有技术相比存在的有益效果是:本申请实施例首先设置所述终端设备的串口运行参数;根据所述串口运行参数,确定串口的发送时序表;根据所述发送时序表,对待发送数据进行时序校验,得到时序校验结果;当所述时序校验结果的时序偏差值小于预定时序偏差阈值时,则通过所述串口将所述待发送数据发送给所述目标通信设备。通过本申请实施例,可以在目标通信设备通过串口与终端设备进行通讯时,终端设备预先计算发送时序表,同时根据发送时序表对待发送数据的发送时刻的有效性进行校验;当校验结果小于预定时序偏差阈值时才对所述待发送消息进行发送。这样一来,降低了所述待发送数据出现乱序发送的可能性,从而提高了发送过程中数据的可靠性。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置,模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
图8示出了本申请实施例提供的一种终端设备的示意框图,为了便于说明,仅示出了与本申请实施例相关的部分。
如图8所示,该实施例的终端设备8包括:处理器80、存储器81以及存储在所述存储器81中并可在所述处理器80上运行的计算机程序82。所述处理器80执行所述计算机程序82时实现上述串口数据发送方法实施例中的步骤或串口数据接收方法实施例中的步骤,例如图2所示的步骤S210至步骤S240,或图5所示的步骤S510至步骤S540。或者,所述处理器80执行所述计算机程序82时实现上述各装置实施例中各模块/单元的功能,例如图6所示模块610至模块640的功能,或图7所示模块710至模块740的功能。
示例性的,所述计算机程序82可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器81中,并由所述处理器80执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序82在所述终端设备8中的执行过程。
所述终端设备8可以是带有至少2个串口的终端设备。本领域技术人员可以理解,图8仅仅是终端设备8的示例,并不构成对终端设备8的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备8还可以包括输入输出设备、网络接入设备、总线等。
所述处理器80可以是中央处理单元(Central Processing Unit,CPU),还可以是其它通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器81可以是所述终端设备8的内部存储单元,例如终端设备8的硬盘或内存。所述存储器81也可以是所述终端设备8的外部存储设备,例如所述终端设备8上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器81还可以既包括所述终端设备8的内部存储单元也包括外部存储设备。所述存储器81用于存储所述计算机程序以及所述终端设备8所需的其它程序和数据。所述存储器81还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

Claims (10)

1.一种串口数据发送方法,其特征在于,应用于终端设备,所述终端设备与目标通信设备通过串口连接,所述方法包括:
设置所述终端设备的串口运行参数;
根据所述串口运行参数,确定待发送数据的发送时序表;
根据所述发送时序表,对所述待发送数据进行时序校验,得到时序校验结果;
当所述时序校验结果的时序偏差值小于预定时序偏差阈值时,则通过所述串口将所述待发送数据发送至所述目标通信设备。
2.根据权利要求1所述的串口数据发送方法,其特征在于,所述根据所述串口运行参数,确定待发送数据的发送时序表,具体包括:
将与所述待发送数据的起始数据包对应的发送起始时刻设置为串口发送数据的起始时刻;
根据所述串口发送数据的起始时刻、预定的发送速率、预定的数据包发送顺序,依次确定自所述串口发送数据的起始时刻起与各个数据包对应的发送时刻。
3.根据权利要求1或2所述的串口数据发送方法,其特征在于,在所述则通过所述串口将所述待发送数据发送给所述目标通信设备之后,还包括:
根据所述发送时序表,对定时器记录的所述待发送数据的各个数据包的实际发送时刻进行校验;
当校验结果的时序偏差值大于或等于预定时序偏差阈值时,按照所述发送时序表对所述待发送数据进行重新发送。
4.根据权利要求1所述的串口数据发送方法,其特征在于,在所述设置所述终端设备的串口运行参数之前,还包括:
接收所述目标通信设备发送的预定波特率;
所述设置所述终端设备的串口运行参数,包括:
根据所述预定波特率,设置所述终端设备的串口波特率。
5.根据权利要求1或4所述的串口数据发送方法,其特征在于,在所述根据所述串口运行参数,确定待发送数据的发送时序表之前,还包括:对设置的所述终端设备的串口运行参数进行验证;
所述对设置的所述终端设备的串口运行参数进行验证,包括:
当所述终端设备中串口的波特率大于预定波特率阈值,重置所述终端设备中串口的波特率;以及
当所述终端设备中串口的数据位大于预定阈值位数的数据位,重置所述终端设备中串口的数据位;以及
当所述终端设备中串口的停止位大于预定阈值位数的停止位,重置所述终端设备中串口的停止位;以及
当所述终端设备中串口的校验位不是预定的校验位时,重置所述终端设备中串口的校验位。
6.一种串口数据接收方法,其特征在于,应用于目标通信设备,所述目标通信设备与终端设备通过串口连接,所述方法包括:
设置所述目标通信设备的串口运行参数;
根据所述串口运行参数,确定待接收数据的接收时序表;
根据所述接收时序表,对所述待接收数据进行时序校验,得到时序校验结果;
当所述时序校验结果的时序偏差值小于预定时序偏差阈值时,则通过所述串口接收所述终端设备发送的所述待接收数据。
7.一种串口数据发送装置,其特征在于,应用于终端设备,所述终端设备与目标通信设备通过串口连接,所述装置包括:
配置模块,用于设置所述终端设备的串口运行参数;
计算模块,用于根据所述串口运行参数,确定待发送数据的发送时序表;
时序校验模块,用于根据所述发送时序表,对所述待发送数据进行时序校验,得到时序校验结果;
发送模块,用于当所述时序校验结果的时序偏差值小于预定时序偏差阈值时,则通过所述串口将所述待发送数据发送至所述目标通信设备。
8.一种串口数据的接收装置,其特征在于,应用于目标通信设备,所述目标通信设备与终端设备通过串口连接,所述装置包括:
配置模块,用于设置所述目标通信设备的串口运行参数;
计算模块,用于根据所述串口运行参数,确定待接收数据的接收时序表;
时序校验模块,用于根据所述接收时序表,对所述待接收数据进行时序校验,得到时序校验结果;
接收模块,用于当所述时序校验结果的时序偏差值小于预定时序偏差阈值时,则通过所述串口接收所述终端设备发送的所述待接收数据。
9.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5中任一项所述的串口数据发送方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5中任一项所述的串口数据发送方法的步骤。
CN201911380681.8A 2019-12-27 2019-12-27 串口数据发送方法、接收方法、相应装置及终端设备 Active CN111177060B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911380681.8A CN111177060B (zh) 2019-12-27 2019-12-27 串口数据发送方法、接收方法、相应装置及终端设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911380681.8A CN111177060B (zh) 2019-12-27 2019-12-27 串口数据发送方法、接收方法、相应装置及终端设备

Publications (2)

Publication Number Publication Date
CN111177060A true CN111177060A (zh) 2020-05-19
CN111177060B CN111177060B (zh) 2021-06-29

Family

ID=70654230

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911380681.8A Active CN111177060B (zh) 2019-12-27 2019-12-27 串口数据发送方法、接收方法、相应装置及终端设备

Country Status (1)

Country Link
CN (1) CN111177060B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111722940A (zh) * 2020-05-22 2020-09-29 百富计算机技术(深圳)有限公司 基于异步串口的消息传输方法、终端设备及传输系统
CN113593340A (zh) * 2021-08-02 2021-11-02 北京华云智联科技有限公司 一种北斗教学互动系统
CN113965447A (zh) * 2020-07-20 2022-01-21 广东芬尼克兹节能设备有限公司 一种在线云诊断方法、装置、系统、设备及存储介质
CN114760364A (zh) * 2022-04-02 2022-07-15 沈阳飞机设计研究所扬州协同创新研究院有限公司 一种时间触发的串口设备通信的管理方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101752907A (zh) * 2010-01-11 2010-06-23 山东康威通信技术有限公司 模块化多功能监控主机
CN109450678A (zh) * 2018-10-30 2019-03-08 天津津航计算技术研究所 一种基于系统控制流程中串口交互数据的监控分析设备及方法
CN110535621A (zh) * 2019-09-25 2019-12-03 深圳市航顺芯片技术研发有限公司 一种串口通讯波特率校正装置及其校正方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101752907A (zh) * 2010-01-11 2010-06-23 山东康威通信技术有限公司 模块化多功能监控主机
CN109450678A (zh) * 2018-10-30 2019-03-08 天津津航计算技术研究所 一种基于系统控制流程中串口交互数据的监控分析设备及方法
CN110535621A (zh) * 2019-09-25 2019-12-03 深圳市航顺芯片技术研发有限公司 一种串口通讯波特率校正装置及其校正方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111722940A (zh) * 2020-05-22 2020-09-29 百富计算机技术(深圳)有限公司 基于异步串口的消息传输方法、终端设备及传输系统
CN111722940B (zh) * 2020-05-22 2024-04-16 百富计算机技术(深圳)有限公司 基于异步串口的消息传输方法、终端设备及传输系统
CN113965447A (zh) * 2020-07-20 2022-01-21 广东芬尼克兹节能设备有限公司 一种在线云诊断方法、装置、系统、设备及存储介质
CN113965447B (zh) * 2020-07-20 2023-07-21 广东芬尼克兹节能设备有限公司 一种在线云诊断方法、装置、系统、设备及存储介质
CN113593340A (zh) * 2021-08-02 2021-11-02 北京华云智联科技有限公司 一种北斗教学互动系统
CN114760364A (zh) * 2022-04-02 2022-07-15 沈阳飞机设计研究所扬州协同创新研究院有限公司 一种时间触发的串口设备通信的管理方法

Also Published As

Publication number Publication date
CN111177060B (zh) 2021-06-29

Similar Documents

Publication Publication Date Title
CN111177060B (zh) 串口数据发送方法、接收方法、相应装置及终端设备
CN107147553B (zh) 从站波特率及帧格式的调整方法、调整装置及调整设备
RU2596582C2 (ru) Способ и устройство для адаптируемой к размерам памяти последовательной передачи данных
RU2597467C2 (ru) Способ и устройство для адаптации надежности передачи данных в последовательной шинной системе
RU2620989C2 (ru) Способ и устройство для повышения пропускной способности при передаче данных в последовательной шинной системе
CN101710857A (zh) 串行通信波特率自适应方法及其装置
CN105068966A (zh) 串口自动识别方法
US6581100B1 (en) System and method for communication parameter determination
KR101001074B1 (ko) 버스 상에 데이터를 전송하기 위한 방법
JP3369874B2 (ja) 非同期データ・リンクの構成パラメータを検出する装置
CN101442380B (zh) 基于高速串行接口编码方式的误码率测试方法与装置
CN114884627B (zh) 一种波特率同步方法
CN108242977B (zh) 一种数据处理方法、数据处理装置及电子设备
CN114301991B (zh) 通信方法、设备、系统及计算机可读存储介质
WO2005027463A1 (en) Checksum determination
CN114443537A (zh) 一种pcie信号发送端参数配置方法、装置、设备及介质
CN110297794B (zh) 数据通信系统及方法
TWI282059B (en) Rate verification of an incoming serial alignment sequence
US5043989A (en) Terminal adapter having a multiple HDLC communication channels receiver for processing control network management frames
CN111490919A (zh) 一种主从机系统、设备终端及其通信校验方法
CN114726482B (zh) 一种spi数据传输方法
CN112104537B (zh) 一种通信控制器
CN110505038B (zh) 一种数据传输方法及相关装置
CN115766892A (zh) 数据发送方法及接收方法
CN113849443A (zh) I2c总线信号解析方法、系统、终端及存储介质

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