串口通讯参数调整的方法及终端设备与流程

文档序号:20163973发布日期:2020-03-24 21:18阅读:551来源:国知局
串口通讯参数调整的方法及终端设备与流程

本发明属于通信技术领域,尤其涉及一种串口通讯参数调整的方法及终端设备。



背景技术:

任意两台电子设备之间通过串口进行通讯时,需要这两台电子设备的串口通讯参数一致,有且只有串口通讯参数完全一致,才能保证这两台电子设备能够进行正常通讯。一般通讯参数由起始位、数据位、校验位以及停止位组成,各位均采用二进制数据表示。例如通常起始位的值为0,数据位为任意值,数据位的位数固定,停止位的值为1,停止位的位数不固定。因此只有通讯双方的通讯参数的格式一致,且使用相同的波特率才能使得通讯双方正常收发数据。

目前通讯双方进行通讯前,通过查询双方电子设备说明手册,确认以通讯双方任意一方的通讯参数作为标准通讯参数,然后把对方的通讯参数设置成标准通讯参数,才能正常进行通讯。然而,当某一通讯设备分别与多个不同电子设备进行通讯时,则每次对接一种电子设备,都要查询该设备说明手册,按照其确定的通讯参数设计格式来进行通讯。这种应用方式虽然普遍,但使用过程非常繁琐,并且效率低。



技术实现要素:

有鉴于此,本发明实施例提供了一种串口通讯参数调整的方法及终端设备,以解决现有技术中通讯双方根据说明手册人为地设置相同的通讯参数,导致通讯参数调整过程繁琐并且效率低的问题。

本发明实施例的第一方面提供了一种串口通讯参数调整的方法,包括:

在接收发送端发送的预设指令时,确定由所述预设指令对应的串口物理层电信号触发所述接收端的多次gpio中断的中断时间和中断类型;

根据所述中断时间和所述中断类型,分别计算所述发送端发送的所述预设指令中包括的数据帧中的数据位位数以及数据位至停止位之间逻辑0的个数,并基于所述中断时间、所述中断类型以及所述数据位至所述停止位之间逻辑0的个数确定校验方式以及停止位位数;根据所述数据位位数、所述校验方式以及所述停止位位数确定所述发送端的通讯参数;

根据所述发送端的通讯参数,设置接收端的通讯参数,使所述发送端的通讯参数与所述接收端的通讯参数一致。

在一实施例中,所述预设指令包括连续的两个数据帧,所述两个数据帧为采用相同的协议格式传输的数据帧;其中第一数据帧中的数据位的最后一位为第一预设值,其余数据位为第二预设值,第二数据帧的中的数据位的最后两位为所述第一预设值,其余数据位为所述第二预设值。

在一实施例中,所述在接收发送端发送的预设指令时,确定由所述预设指令对应的串口物理层电信号触发所述接收端的多次gpio中断的中断时间和中断类型,包括:

在接收发送端发送的预设指令时,接收端通过多次gpio中断检测到所述预设指令对应的串口物理层电信号由于所述发送端发送的预设指令而跳变时,记录当前系统时间为中断时间以及记录当前的中断类型;

按照上述记录中断时间以及中断类型的方式依次记录其它的中断时间和对应的中断类型,直到完成所述预设指令的接收。

在一实施例中,在所述接收端通过多次gpio中断检测到所述预设指令对应的串口物理层电信号由于所述发送端发送的预设指令而跳变时,记录当前系统时间为中断时间以及记录当前的中断类型之后,还包括:

当记录中断时间的第一中断时间和第二中断时间之后,根据所述第一中断时间和所述第二中断时间的差值,确定所述发送端发送一个码元的码元长度;

根据所述预设指令中数据帧的预设起始位位数、预设最大数据位位数、预设校验位位数、预设最大停止位位数以及确定的所述码元长度,确定定时时间,并以所述定时时间启动定时器;

所述按照上述记录中断时间以及中断类型的方式依次记录其它的中断时间和对应的中断类型,直到完成所述预设指令的接收,包括:

按照上述记录中断时间以及中断类型的方式依次记录其它的中断时间和对应的中断类型,直到所述定时器超时完成所述预设指令的接收。

在一实施例中,所述根据所述预设指令中数据帧的预设起始位位数、预设最大数据位位数、预设校验位位数、预设最大停止位位数以及确定的所述码元长度,确定定时时间,包括:

根据t0=2*td*(ta+tb+tc+te)-1确定定时时间;

其中,t0表示定时时间,td表示所述发送端发送一个码元的长度,ta表示预设起始位位数,tb表示预设最大数据位位数,tc表示预设校验位位数,te表示预设最大停止位位数。

在一实施例中,所述中断时间还包括第三中断时间;所述计算所述发送端发送的所述预设指令中包括的数据帧中的数据位位数,包括:

当记录中断时间的第一中断时间和第二中断时间之后,根据所述码元长度,确定所述发送端的波特率;

根据所述第二中断时间和对应中断类型、所述第三中断时间和对应中断类型以及所述波特率,计算数据位位数。

在一实施例中,所述中断时间中还包括第四中断时间、第五中断时间、第七中断时间和第八中断时间;所述计算所述发送端发送的所述预设指令中包括的数据帧中的数据位至停止位之间逻辑0的个数,并基于所述中断时间、所述中断类型以及所述数据位至所述停止位之间逻辑0的个数确定校验方式以及停止位位数,包括:

根据所述第三中断时间、所述波特率以及所述第四中断时间,计算所述第一数据帧中数据位至停止位之间逻辑0的个数;

根据所述第七中断时间、所述第八中断时间以及所述波特率,计算所述第二数据帧中数据位至停止位之间逻辑0的个数;

当第一数据帧中数据位至停止位之间逻辑0的个数为第一值时,根据所述第四中断时间、所述第五中断时间以及所述波特率计算所述第一数据帧的停止位位数,根据所述第一值、所述第二数据帧中数据位至停止位之间逻辑0的个数、所述第一数据帧的停止位位数以及所需中断时间对应的中断类型,确定所述第一数据帧和所述第二数据帧中的校验方式以及所述第一数据帧的停止位位数;

当第一数据帧中数据位至停止位之间逻辑0的个数为第二值时,根据所述第二值、所述第二数据帧中数据位至停止位之间逻辑0的个数以及所需中断时间对应的中断类型,确定所述第一数据帧和所述第二数据帧中的校验方式;同时根据所述第四中断时间、所述第五中断时间以及所述波特率计算所述第一数据帧的停止位位数。

在一实施例中,所述根据所述码元长度,确定所述发送端的波特率,包括:

根据s=1/td,确定所述发送端的波特率;

其中,s表示所述发送端的波特率;

所述根据所述第二中断时间和对应中断类型、所述第三中断时间和对应中断类型以及所述波特率,计算数据位位数,包括:

根据n数=(t3-t2)*s+1,计算数据位位数;

其中,n数表示数据位位数,t3表示所述第三中断时间;

所述计算所述第一数据帧的停止位位数,包括:

根据stn1=(t5-t4)/td,计算所述第一数据帧的停止位位数;

其中,stn1表示所述第一数据帧的停止位位数,t5表示第五中断时间,t4表示第四中断时间。

本发明实施例的第二方面提供了一种串口通讯参数调整的装置,包括:

确定模块,用于在接收发送端发送的预设指令时,确定由所述预设指令对应的串口物理层电信号触发所述接收端的多次gpio中断的中断时间和中断类型;

处理模块,用于根据所述中断时间和所述中断类型,分别计算所述发送端发送的所述预设指令中包括的数据帧中的数据位位数以及数据位至停止位之间逻辑0的个数,并基于所述中断时间、所述中断类型以及所述数据位至所述停止位之间逻辑0的个数确定校验方式以及停止位位数;根据所述数据位位数、所述校验方式以及所述停止位位数确定所述发送端的通讯参数;

设置模块,用于根据所述发送端的通讯参数,设置接收端的通讯参数,使所述发送端的通讯参数与所述接收端的通讯参数一致。

本发明实施例的第三方面提供了一种终端设备,包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述任一实施例提供的串口通讯参数调整的方法所述的步骤。

本发明实施例与现有技术相比存在的有益效果是:通过由所述预设指令对应的串口物理层电信号触发所述接收端的多次gpio中断,记录中断时间和中断类型,根据所述中断时间和所述中断类型,分别计算所述发送端发送的所述预设指令中包括的数据帧中的数据位位数以及数据位至停止位之间逻辑0的个数,并基于所述中断时间、所述中断类型以及所述数据位至所述停止位之间逻辑0的个数确定校验方式以及停止位位数;根据所述数据位位数、所述校验方式以及所述停止位位数确定所述发送端的通讯参数;根据所述发送端的通讯参数,设置接收端的通讯参数,使所述发送端的通讯参数与所述接收端的通讯参数一致,从而可以在不需要通讯双方预设一样的通讯参数,也不需要后期人工根据电子设备用户手册进行设置,即使无法知道双方通讯参数的情况下,均可实现通讯参数自适应,因此使用效率更高、更灵活、更便捷。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的串口通讯参数调整的方法的实现流程示意图;

图2是本发明实施例提供的确定中断时间和中断类型的方法的实现流程示意图;

图3是本发明实施例提供的依次记录的两数据帧的中断时间示意图;

图4是本发明实施例提供的计算数据位位数的示意图;

图5是本发明实施例提供的确定校验方式以及停止位位数示意图;

图6是本发明实施例提供的串口通讯参数调整的装置的示意图;

图7是本发明实施例提供的终端设备的示意图。

具体实施方式

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。

为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。

本发明实施例提供的串口通讯参数调整的方法,适用于所有不同类型的具备串口通讯功能的电子设备。图1为本发明实施例提供的串口通讯参数调整的方法的实现流程示意图,详述如下。

步骤101,在接收发送端发送的预设指令时,确定由所述预设指令对应的串口物理层电信号触发所述接收端的多次通用输入/输出口(general-purposeinput/output,gpio)中断的中断时间和中断类型。

可选的,串口通讯协议中规定通讯双方以数据帧为单位进行通讯。通讯双方的数据帧格式要约定一致,同时使用相同的波特率才能正常收发数据。

可选的,预设指令即预设识别信号,预设指令指连续的两个数据帧,数据内容为预设的值。两个数据帧为采用相同的协议格式传输的数据帧,都包括起始位、数据位、校验位以及停止位,且数据位均采用二进制数据表示,即采用0或1表示,且数据位的个数为预设固定个数。其中第一数据帧中的数据位的最后一位为第一预设值,其余数据位为第二预设值,第二数据帧的中的数据位的最后两位为所述第一预设值,其余数据位为所述第二预设值。可选的,在本实施例中,数据位可以为5-8位。可选的,第一预设值可以为0,第二预设值可以为1。则本实施例中预设识别信号可以为:第一数据帧中数据位为“1…10”、第二数据帧中数据位为“1…100”。

可选的,发送端设置完成预设识别信号后,按照自身的通信协议格式来发送预设的识别信号,即生成预设指令。

可选的,如图2所示,本步骤可以包括以下步骤。

步骤201,在接收发送端发送的预设指令时,接收端通过多次gpio中断检测到所述预设指令对应的串口物理层电信号由于所述发送端发送的预设指令而跳变时,记录当前系统时间为中断时间以及记录当前的中断类型。

中断类型包括由逻辑“1”跳变为逻辑“0”和由逻辑“0”跳变为逻辑“1”两种类型。

接收端进入通讯参数自适应模式,等待信号的起始位到来,接收端记录每次gpio中断的时间和中断类型。接收端可以检测到串口物理层电信号的跳变。例如,接收端可以检测到串口物理层电信号由1变0的跳变,记录当前系统时间为t1,即表示接收端接收到第一数据帧的起始位的时刻值。接着继续等待串口物理层电信号由0变1,当串口物理层电信号由0变1时,记录当前系统时间t2,即接收端检测到数据位第一位的时刻值,完成第一数据帧的起始位的测量。

可选的,串口通讯处于空闲状态时,其信号状态为逻辑“1”,当由逻辑“1”变为逻辑“0”时,即表示为接收到数据帧的起始位。在串口通信中,数据帧的起始位一般都为“0”。串口(serialcommunication)是一种电子设备间非常常用的串行通讯方式,因为它简单便捷,大部分电子设备都支持该通讯方式,在现实生活中应用非常广泛,到处可见。

可选的,如图2所示,在本步骤之后,还包括步骤203和步骤204。

步骤203,当记录中断时间的第一中断时间和第二中断时间之后,根据所述第一中断时间和所述第二中断时间的差值,确定所述发送端发送一个码元的码元长度。

当由逻辑“1”变为逻辑“0”时,即表示为接收到数据帧的起始位,该状态变化时间为一个码元的时间。

可选的,根据td=t2-t1,确定所述发送端发送一个码元的码元长度;其中,t2表示所述第二中断时间,t1表示所述第一中断时间,td表示所述发送端发送一个码元的长度。

步骤204,根据所述预设指令中数据帧的预设起始位位数、预设最大数据位位数、预设校验位位数、预设最大停止位位数以及确定的所述码元长度,确定定时时间,并以所述定时时间启动定时器。

可选的,根据t0=2*td*(ta+tb+tc+te)-1确定定时时间;其中,t0表示定时时间,ta表示预设起始位位数,tb表示预设最大数据位位数,tc表示预设校验位位数,te表示预设最大停止位位数。这里“-1”是减去第一数据帧中起始位的接收时间。

可选的,通常根据串口通讯协议,预设最大数据位位数可以为8,校验位位数可以为1,预设最大停止位位数可以为2。

在确定定时时间时采用预设最大数据位位数以及预设最大停止位位数进行计算,是为了保证采集到完整的两数据帧。

步骤202,按照上述记录中断时间以及中断类型的方式依次记录其它的中断时间和对应的中断类型,直到完成所述预设指令的接收。

可选的,本步骤可以为按照上述记录中断时间以及中断类型的方式依次记录其它的中断时间和对应的中断类型,直到所述定时器超时完成所述预设指令的接收。如图3所示,依次记录的信号跳变的中断时间,中断时间包括第一中断时间至第九中断时间。

这里以“所述定时器超时完成所述预设指令的接收”是因为第二数据帧只能采集到数据位最后一位或者校验位参数为0的校验位,无法采集到停止位,因为停止位和串口通讯处于空闲状态时的信号相同,都为1。

步骤102,根据所述中断时间和所述中断类型,分别计算所述发送端发送的所述预设指令中包括的数据帧中的数据位位数以及数据位至停止位之间逻辑0的个数,并基于所述中断时间、所述中断类型以及所述数据位至所述停止位之间逻辑0的个数确定校验方式以及停止位位数;根据所述数据位位数、所述校验方式以及所述停止位位数确定所述发送端的通讯参数。

可选的,通讯双方需保持通讯参数一致,这里的通讯参数包括:数据位、检校方式、停止位以及波特率,只有通讯参数完全一致,双方才能正常进行通讯,并且通讯双方只能传递数据位部分,其它位由串口硬件控制器根据配置的通讯参数自动完成。

可选的,如图4所示,本步骤计算所述发送端发送的所述预设指令中包括的数据帧中的数据位位数可以包括以下步骤。

步骤401,当记录中断时间的第一中断时间和第二中断时间之后,根据所述码元长度,确定所述发送端的波特率。

可选的,根据s=1/td,确定所述发送端的波特率;其中,s表示所述发送端的波特率。

步骤402,根据所述第二中断时间和对应中断类型、所述第三中断时间和对应中断类型以及所述波特率,计算数据位位数。

可选的,根据n数=(t3-t2)*s+1,计算数据位位数;其中,n数表示数据位位数,t3表示所述第三中断时间。这里(t3-t2)*s计算的是第一数据帧中逻辑1的个数,后面“+1”表示加一个逻辑0,即第一数据帧中的数据位的最后一位为第一预设值。

可选的,确定数据位位数之后,可以根据数据位中预设的第一预设值和第二预设值分别确定第一数据帧和第二数据帧的数据位参数。例如,数据位位数为8,则第一数据帧的数据位参数为“11111110”,第二数据帧的数据位参数为“11111100”;数据位位数为6,则第一数据帧的数据位参数为“111110”,第二数据帧的数据位参数为“111100”。

可选的,如图5所示,本步骤计算所述发送端发送的所述预设指令中包括的数据帧中的数据位至停止位之间逻辑0的个数,并基于所述中断时间、所述中断类型以及所述数据位至所述停止位之间逻辑0的个数确定校验方式以及停止位位数可以包括以下步骤。

步骤501,根据所述第三中断时间、所述波特率以及所述第四中断时间,计算所述第一数据帧中数据位至停止位之间逻辑0的个数。

可选的,根据cn1=(t4-t3)*s计算所述第一数据帧中数据位至停止位之间逻辑0的个数;其中,cn1表示第一数据帧中数据位至停止位之间逻辑0的个数,t4表示第四中断时间,t3表示第三中断时间。

可选的,根据识别信号的特征和数据帧格式,计算结果cn1的值可能为1,可能为2。因为第一数据帧中预设的数据位中本身包含一个逻辑“0”,当cn1=1时,则推出无校验位或者校验位参数为逻辑“1”;当cn1=2,则推出存在校验位并且校验位参数为逻辑“0”。

步骤502,根据所述第七中断时间、所述第八中断时间以及所述波特率,计算所述第二数据帧中数据位至停止位之间逻辑0的个数。

可选的,根据cn2=(t8-t7)*s,确定所述第二数据帧中数据位至停止位逻辑0的个数;其中,cn2表示第二数据帧中数据位至停止位逻辑0的个数,t8表示第八中断时间,t7表示第七中断时间。

可选的,根据识别信号的特征和数据帧格式,cn2可能为2,可能为3。因为预设的数据位中本身含有两个逻辑“0”,当cn2=2,则可以推断无校验位或者校验位参数为逻辑“1”,即c2=1;当cn2=3,则可以推断存在校验位并且校验位参数为逻辑“0”即c2=0。

步骤503,当第一数据帧中数据位至停止位之间逻辑0的个数为第一值时,根据所述第四中断时间、所述第五中断时间以及所述波特率计算所述第一数据帧的停止位位数,根据所述第一值、所述第二数据帧中数据位至停止位之间逻辑0的个数、所述第一数据帧的停止位位数以及所需中断时间对应的中断类型,确定所述第一数据帧和所述第二数据帧中的校验位位数、校验方式以及所述第一数据帧的停止位位数。

可选的,第一值为cn1=1。

可选的,当cn1=1时,可以推断所述第一数据帧中校验位的校验方式可以为无校验、1校验、奇校验或者偶校验,当cn2=2时,可以推断校验方式可以为无校验或者1校验中任意一种,此时可以继续通过停止位的位数推断具体的校验方式。

可选的,可选的,根据stn1=(t5-t4)*s,计算所述第一数据帧的停止位位数;其中,stn1表示所述第一数据帧的停止位位数,t5表示第五中断时间,t4表示第四中断时间。

当计算获得的stn1大于停止位最大位数时,说明存在校验位,并且校验方式为1校验。1校验时不管有效数据中的内容是什么,校验位总为“1”。此时停止位位数为(stn1-1),因为需要去掉校验位占用的1位,才可得到第一数据帧中停止位位数。

当计算获得的stn1小于或者等于停止位最大位数时,此时无法判断校验方式是无校验还是1校验,因此统一按照无校验位进行处理。此时停止位位数为stn1。

可选的,当cn1=1时,可以推断校验方式可以为无校验、1校验或者奇偶校验,当cn2=3时,可以推断存在校验位,并且校验方式为奇校验或偶校验中的一种,此时可以继续通过停止位的位数推断具体的校验方式。此时根据校验位的规则和数据帧中计算的数据位中1的个数,即可推导出具体的校验方式。

步骤504,当第一数据帧中数据位至停止位之间逻辑0的个数为第二值时,根据所述第二值、所述第二数据帧中数据位至停止位之间逻辑0的个数以及所需中断时间对应的中断类型,确定所述第一数据帧和所述第二数据帧中的校验位位数以及校验方式;同时根据所述第四中断时间、所述第五中断时间以及所述波特率计算所述第一数据帧的停止位位数。

可选的,第二值为cn1=2。

可选的,当cn1=2时,可以确定所述第一数据帧中存在校验位c1且校验位参数为0,可以记为c1=0,当cn2=2时,即c2=1,可以推断校验方式为奇校验或偶校验,此时根据校验位的规则和数据帧中计算的数据位中1的个数,即可推导出具体的校验方式。同时根据stn1=(t5-t4)*s,计算所述第一数据帧的停止位位数;其中,stn1表示所述第一数据帧的停止位位数,t5表示第五中断时间,t4表示第四中断时间。

可选的,当cn1=2时,可以确定所述第一数据帧中存在校验位c1且校验位参数为0,可以记为c1=0,当cn2=3时,即c2=0,可以推断校验方式为0校验。

需要说明的是,第二数据帧仅能采集到数据位最后一位或者校验位,由于最后是停止位,停止位的状态为逻辑“1”,因此不管停止位有多少位,与信号线上空闲状态的逻辑一样,都是逻辑“1”,因此第二帧数据停止位后,不再存在逻辑“1”与逻辑“0”的跳变,即无法采集到停止位。

可选的,虽然无法采集到第二数据帧的停止位,但是可以根据第一数据帧的停止位确定第二数据帧的停止位。

根据确定的停止位的位数,例如停止位位数为1,则第一数据帧中停止位参数为1,第二数据帧中停止位参数为1,例如停止位位数为2,则第一数据帧中停止位参数为11,第二数据帧中停止位参数为11。

可选的,在确定数据帧中的数据位位数、校验位位数、校验方式以及停止位位数后,即可确定发送端的通讯参数。

步骤103,根据所述发送端的通讯参数,设置接收端的通讯参数,使所述发送端的通讯参数与所述接收端的通讯参数一致。

当确定了第一数据帧和第二数据帧构成的通讯参数后,设置接收端串口硬件控制的通讯参数,即可按发送端的通讯参数同步接收端。

可选的,通讯过程中,通讯双方的通讯参数一旦确认,中途就不会改变,不管期间收发多少帧数据,通讯参数始终都是不变的,除非双方重新进行配置。

可选的,在本步骤之后还可以包括:接收端退出自适应模式,进入正常的串口通讯模式。自适应模式的目的是进行测量信号线上的数据信号,进而计算分析推导出各种可变参数即通讯参数的具体取值,然后用这些具体的通讯参数设置接收端串口控制器,达到同步发送端的通讯参数的作用。正常通讯模式,是指通过配置和发送端一致的通讯参数后,能进行正常的数据通讯。

上述串口通讯参数调整的方法,通过由所述预设指令对应的串口物理层电信号触发所述接收端的多次gpio中断,记录中断时间和中断类型,根据所述中断时间和所述中断类型,分别计算所述发送端发送的所述预设指令中包括的数据帧中的数据位位数以及数据位至停止位之间逻辑0的个数,并基于所述中断时间、所述中断类型以及所述数据位至所述停止位之间逻辑0的个数确定校验方式以及停止位位数;根据所述数据位位数、所述校验方式以及所述停止位位数确定所述发送端的通讯参数;根据所述发送端的通讯参数,设置接收端的通讯参数,使所述发送端的通讯参数与所述接收端的通讯参数一致,从而可以在不需要通讯双方预设一样的通讯参数,也不需要后期人工根据电子设备用户手册进行设置,即使无法知道双方通讯参数的情况下,均可实现通讯参数自适应,因此使用效率更高、更灵活、更便捷。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

对应于上文实施例所述的串口通讯参数调整的方法,图6示出了本发明实施例提供的串口通讯参数调整的装置的示例图。如图6所示,该装置可以包括:确定模块601、处理模块602和设置模块603。

确定模块601,用于在接收发送端发送的预设指令时,确定由所述预设指令对应的串口物理层电信号触发所述接收端的多次gpio中断的中断时间和中断类型;

处理模块602,用于根据所述中断时间和所述中断类型,分别计算所述发送端发送的所述预设指令中包括的数据帧中的数据位位数以及数据位至停止位之间逻辑0的个数,并基于所述中断时间、所述中断类型以及所述数据位至所述停止位之间逻辑0的个数确定校验方式以及停止位位数;根据所述数据位位数、所述校验方式以及所述停止位位数确定所述发送端的通讯参数;

设置模块603,用于根据所述发送端的通讯参数,设置接收端的通讯参数,使所述发送端的通讯参数与所述接收端的通讯参数一致。

可选的,所述预设指令包括连续的两个数据帧,所述两个数据帧为采用相同的协议格式传输的数据帧;其中第一数据帧中的数据位的最后一位为第一预设值,其余数据位为第二预设值,第二数据帧的中的数据位的最后两位为所述第一预设值,其余数据位为所述第二预设值。

可选的,确定模块601确定由所述预设指令对应的串口物理层电信号触发所述接收端的多次gpio中断的中断时间和中断类型时,可以用于:在接收发送端发送的预设指令时,接收端通过多次gpio中断检测到所述预设指令对应的串口物理层电信号由于所述发送端发送的预设指令而跳变时,记录当前系统时间为中断时间以及记录当前的中断类型;按照上述记录中断时间以及中断类型的方式依次记录其它的中断时间和对应的中断类型,直到完成所述预设指令的接收。

可选的,确定模块601在记录当前系统时间为中断时间以及记录当前的中断类型之后,还可以用于:当记录中断时间的第一中断时间和第二中断时间之后,根据所述第一中断时间和所述第二中断时间的差值,确定所述发送端发送一个码元的码元长度;根据所述预设指令中数据帧的预设起始位位数、预设最大数据位位数、预设校验位位数、预设最大停止位位数以及确定的所述码元长度,确定定时时间,并以所述定时时间启动定时器;

所述确定模块601,用于:按照上述记录中断时间以及中断类型的方式依次记录其它的中断时间和对应的中断类型,直到所述定时器超时完成所述预设指令的接收。

可选的,所述确定模块601,用于根据t0=2*td*(ta+tb+tc+te)-1确定定时时间;其中,t0表示定时时间,td表示所述发送端发送一个码元的长度,ta表示预设起始位位数,tb表示预设最大数据位位数,tc表示预设校验位位数,te表示预设最大停止位位数。

可选的,所述处理模块602所述中断时间还包括第三中断时间;所述计算所述发送端发送的所述预设指令中包括的数据帧中的数据位位数时,可以用于:当记录中断时间的第一中断时间和第二中断时间之后,根据所述码元长度,确定所述发送端的波特率;根据所述第二中断时间和对应中断类型、所述第三中断时间和对应中断类型以及所述波特率,计算数据位位数。

可选的,所述处理模块602确定校验方式以及停止位位数时,可以用于:

根据所述第三中断时间、所述波特率以及所述第四中断时间,计算所述第一数据帧中数据位至停止位之间逻辑0的个数;

根据所述第七中断时间、所述第八中断时间以及所述波特率,计算所述第二数据帧中数据位至停止位之间逻辑0的个数;

当第一数据帧中数据位至停止位之间逻辑0的个数为第一值时,根据所述第四中断时间、所述第五中断时间以及所述波特率计算所述第一数据帧的停止位位数,根据所述第一值、所述第二数据帧中数据位至停止位之间逻辑0的个数、所述第一数据帧的停止位位数以及所需中断时间对应的中断类型,确定所述第一数据帧和所述第二数据帧中的校验方式以及所述第一数据帧的停止位位数;

当第一数据帧中数据位至停止位之间逻辑0的个数为第二值时,根据所述第二值、所述第二数据帧中数据位至停止位之间逻辑0的个数以及所需中断时间对应的中断类型,确定所述第一数据帧和所述第二数据帧中的校验方式;同时根据所述第四中断时间、所述第五中断时间以及所述波特率计算所述第一数据帧的停止位位数。

可选的,所述处理模块602确定所述发送端的波特率时,可以用于:

根据s=1/td,确定所述发送端的波特率;其中,s表示所述发送端的波特率;

可选的,所述处理模块602计算数据位位数时,可以用于:

根据n数=(t3-t2)*s+1,计算数据位位数;其中,n数表示数据位位数,t3表示所述第三中断时间;

可选的,所述处理模块602计算所述第一数据帧的停止位位数时,可以用于:根据stn1=(t5-t4)*s,计算所述第一数据帧的停止位位数;其中,stn1表示所述第一数据帧的停止位位数,t5表示第五中断时间,t4表示第四中断时间。

上述串口通讯参数调整的装置,通过由所述预设指令对应的串口物理层电信号触发所述接收端的多次gpio中断,确定模块记录中断时间和中断类型,根据所述中断时间和所述中断类型,处理模块分别计算所述发送端发送的所述预设指令中包括的数据帧中的数据位位数以及数据位至停止位之间逻辑0的个数,并基于所述中断时间、所述中断类型以及所述数据位至所述停止位之间逻辑0的个数确定校验方式以及停止位位数;根据所述数据位位数、所述校验方式以及所述停止位位数确定所述发送端的通讯参数;根据所述发送端的通讯参数,设置模块设置接收端的通讯参数,使所述发送端的通讯参数与所述接收端的通讯参数一致,从而可以在不需要通讯双方预设一样的通讯参数,也不需要后期人工根据电子设备用户手册进行设置,即使无法知道双方通讯参数的情况下,均可实现通讯参数自适应,因此使用效率更高、更灵活、更便捷。

图7是本发明一实施例提供的终端设备的示意图。如图7所示,该实施例的终端设备700包括:处理器701、存储器702以及存储在所述存储器702中并可在所述处理器701上运行的计算机程序703,例如串口通讯参数调整的程序。所述处理器701执行所述计算机程序703时实现上述串口通讯参数调整的方法实施例中的步骤,例如图1所示的步骤101至103,或者图2-图5中所示,所述处理器701执行所述计算机程序703时实现上述各装置实施例中各模块的功能,例如图6所示模块601至603的功能。

示例性的,所述计算机程序703可以被分割成一个或多个程序模块,所述一个或者多个程序模块被存储在所述存储器702中,并由所述处理器701执行,以完成本发明。所述一个或多个程序模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序703在所述串口通讯参数调整的装置或者终端设备700中的执行过程。例如,所述计算机程序703可以被分割成确定模块601、处理模块602和设置模块603,各模块具体功能如图6所示,在此不再一一赘述。

所述终端设备700可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器701、存储器702。本领域技术人员可以理解,图7仅仅是终端设备700的示例,并不构成对终端设备700的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。

所称处理器701可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

所述存储器702可以是所述终端设备700的内部存储单元,例如终端设备700的硬盘或内存。所述存储器702也可以是所述终端设备700的外部存储设备,例如所述终端设备700上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述存储器702还可以既包括所述终端设备700的内部存储单元也包括外部存储设备。所述存储器702用于存储所述计算机程序以及所述终端设备700所需的其他程序和数据。所述存储器702还可以用于暂时地存储已经输出或者将要输出的数据。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1