CN117675113B - 基于通信终端连接状态检测的波特率动态调整方法及装置 - Google Patents
基于通信终端连接状态检测的波特率动态调整方法及装置 Download PDFInfo
- Publication number
- CN117675113B CN117675113B CN202410144315.7A CN202410144315A CN117675113B CN 117675113 B CN117675113 B CN 117675113B CN 202410144315 A CN202410144315 A CN 202410144315A CN 117675113 B CN117675113 B CN 117675113B
- Authority
- CN
- China
- Prior art keywords
- baud rate
- communication
- baud
- rates
- communication terminal
- 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
- 230000006854 communication Effects 0.000 title claims abstract description 1514
- 238000004891 communication Methods 0.000 title claims abstract description 1511
- 238000001514 detection method Methods 0.000 title claims abstract description 279
- 238000000034 method Methods 0.000 title claims abstract description 105
- 230000004044 response Effects 0.000 claims description 146
- 230000002159 abnormal effect Effects 0.000 claims description 27
- 238000004590 computer program Methods 0.000 claims description 16
- 238000012545 processing Methods 0.000 claims description 16
- 230000008569 process Effects 0.000 description 33
- 230000005611 electricity Effects 0.000 description 23
- 230000007246 mechanism Effects 0.000 description 9
- 230000003044 adaptive effect Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000005856 abnormality Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000008447 perception Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Landscapes
- Communication Control (AREA)
Abstract
本发明公开了一种基于通信终端连接状态检测的波特率动态调整方法及装置,该方法应用于第一通信终端所配置的通信模块,包括:获取通信模块中存储的波特率配置数据;其中,波特率配置数据是通信模块基于预设波特率集合与第二通信终端进行协商得到的;第一通信终端与第二通信终端相同或者不同;基于波特率配置数据中的多个可配置波特率中的第一波特率对第二通信终端的通信地址进行连接状态检测,得到连接状态检测结果;根据可配置波特率个数和连接状态检测结果确定是否切换至第二波特率进行连接状态检测,以确定是否调整第一波特率和/或波特率配置数据。由此基于波特率配置数据实现波特率自适应配置,有效提高波特率调整的效率。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种基于通信终端连接状态检测的波特率动态调整方法及装置。
背景技术
串行通信被广泛应用于电力设备物联通信等物联通信领域。随着新型物联设备的接入,物联通信网络中可能存在使用不同的波特率类型的通信终端,例如固定波特率类型、自适应波特率类型等。针对使用自适应波特率类型的通信终端,波特率自适应调整对于保证物联通信网络的通信稳定性具有重要作用。
相关技术中,通常采用波特率穷举法来实现波特率自适应调整,以使通信模块采用不同的波特率逐一尝试与通信终端通信。然而,相关技术中的波特率调整效率有待提高。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本发明提出一种基于通信终端连接状态检测的波特率动态调整方法及装置,充分利用支持多种波特率配置的通信终端的优势,提高波特率动态调整的效率,从而提高通信效率和业务处理效率。
为达到上述目的,本发明第一方面实施方式提出了一种基于通信终端连接状态检测的波特率动态调整方法,应用于第一通信终端所配置的通信模块;所述方法包括:获取所述通信模块中存储的波特率配置数据;其中,所述波特率配置数据是所述通信模块基于预设波特率集合与第二通信终端进行协商得到的,所述波特率配置数据中包括所述第二通信终端的通信地址、所述第二通信终端支持的多个可配置波特率,以及可配置波特率个数;所述第一通信终端与所述第二通信终端相同或者不同;基于所述多个可配置波特率中的第一波特率对所述第二通信终端的通信地址进行连接状态检测,得到连接状态检测结果;根据所述可配置波特率个数和所述连接状态检测结果确定是否切换至所述多个可配置波特率中第二波特率进行连接状态检测,以确定是否调整所述第一波特率和/或所述波特率配置数据。
根据本发明的一个实施方式,所述预设波特率集合中包括按照使用频次排序的多个预设波特率;通过以下方式协商得到所述波特率配置数据:根据所述多个预设波特率的排序关系在所述多个预设波特率中确定指定波特率;根据所述指定波特率发送第一通配地址请求;若在所述指定波特率下接收到所述第二通信终端针对所述第一通配地址请求发送的第一请求应答,在所述多个预设波特率中确定待协商波特率;其中,所述待协商波特率是所述多个预设波特率中大于所述指定波特率的波特率;基于所述指定波特率和所述待协商波特率与所述第二通信终端进行协商,得到所述波特率配置数据。
根据本发明的一个实施方式,所述基于所述指定波特率和所述待协商波特率与所述第二通信终端进行协商,得到所述波特率配置数据,包括:将所述指定波特率作为协商通信波特率,以及,将所述待协商波特率中最小的第一待协商波特率作为协商目标波特率;根据所述指定波特率向所述第二通信终端发送波特率协商帧;其中,所述波特率协商帧用于表明所述通信模块请求使用所述第一待协商波特率与所述第二通信终端进行通信;若在所述指定波特率下接收到所述第二通信终端针对所述波特率协商帧发送的协商应答帧,且所述协商应答帧用于表明所述第二通信终端同意使用所述第一待协商波特率进行通信,将所述指定波特率和所述第一待协商波特率加入可配置波特率集合;其中,所述可配置波特率集合被初始化为空集合;将所述第一待协商波特率作为协商通信波特率,以及,将所述待协商波特率中除所述第一待协商波特率以外的最小的第二待协商波特率作为协商目标波特率,重复执行上述协商的步骤,直至在协商通信波特率下未接收到所述第二通信终端发送的协商应答帧,或者,接收到的协商应答帧用于表明所述第二通信终端不同意使用协商目标波特率进行通信;根据所述第二通信终端的通信地址、可配置波特率集合中的多个可配置波特率,以及可配置波特率个数得到所述波特率配置数据。
根据本发明的一个实施方式,所述多个预设波特率包括若干第一类型波特率和若干第二类型波特率;所述第一类型波特率的使用频次大于所述第二类型波特率的使用频次。
根据本发明的一个实施方式,所述波特率配置数据中包括当前通信波特率;在进行连接状态检测之前,所述通信模块与所述第二通信终端在所述当前通信波特率下正常通信;所述第一波特率为所述当前通信波特率;所述基于所述多个可配置波特率中的第一波特率对所述第二通信终端的通信地址进行连接状态检测,得到连接状态检测结果,包括:在当前预设心跳周期内根据所述当前通信波特率对所述通信地址进行心跳检测,得到心跳检测结果;其中,所述连接状态检测结果包括所述心跳检测结果。
根据本发明的一个实施方式,所述根据所述可配置波特率个数和所述连接状态检测结果确定是否切换至所述多个可配置波特率中第二波特率进行连接状态检测,以确定是否调整所述第一波特率和/或所述波特率配置数据,包括:若所述心跳检测结果表明在所述当前预设心跳周期内所述通信模块与所述通信地址在所述当前通信波特率下不能正常通信,根据所述可配置波特率个数确定在预设窗口内用于进行连接状态检测的波特率数量阈值;其中,所述预设窗口是相邻两个预设心跳周期之间的时间窗口;若在所述预设窗口内的已检测波特率个数小于所述波特率数量阈值,在所述多个可配置波特率中除所述当前通信波特率以外的波特率中确定所述第二波特率;其中,所述已检测波特率个数是在所述预设窗口内已用于进行连接状态检测的波特率的个数;根据所述第二波特率发送第二通配地址请求;若在所述第二波特率下接收到所述第二通信终端针对所述第二通配地址请求发送的第二请求应答,确定调整所述当前通信波特率为所述第二波特率。
根据本发明的一个实施方式,所述基于通信终端连接状态检测的波特率动态调整方法还包括:若所述已检测波特率个数等于所述波特率数量阈值,或者,若已检测波特率总数等于所述可配置波特率个数,确定不调整所述当前通信波特率,并进入下一预设心跳周期;其中,所述已检测波特率总数是根据所述第一波特率和多个所述预设窗口内的已检测波特率个数得到的;在所述下一预设心跳周期内根据所述当前通信波特率对所述通信地址进行心跳检测,得到心跳检测结果;其中,若所述已检测波特率总数等于所述可配置波特率个数,将所述已检测波特率总数重置。
根据本发明的一个实施方式,所述波特率配置数据是在所述通信模块初次上电后与所述第二通信终端进行协商并存储在所述通信模块的非易失性存储空间中的;所述波特率配置数据中包括在所述通信模块初次上电后协商成功的用于与所述第二通信终端进行初次通信的成功通信波特率;所述成功通信波特率是所述多个可配置波特率中的最大的波特率;所述第一波特率为所述成功通信波特率。
根据本发明的一个实施方式,所述波特率配置数据是在所述通信模块重启之前存储在所述通信模块的非易失性存储空间中的。
根据本发明的一个实施方式,所述波特率配置数据中包括历史成功波特率;在所述通信模块重启之前,所述通信模块与所述第二通信终端在所述历史成功波特率下正常通信;所述第一波特率为所述历史成功波特率;所述基于所述多个可配置波特率中的第一波特率对所述第二通信终端的通信地址进行连接状态检测,得到连接状态检测结果,包括:根据所述历史成功波特率向所述通信地址发送通信请求,得到通信请求应答结果;其中,所述连接状态检测结果包括所述通信请求应答结果;所述根据所述可配置波特率个数和所述连接状态检测结果确定是否切换至所述多个可配置波特率中第二波特率进行连接状态检测,以确定是否调整所述第一波特率和/或所述波特率配置数据,包括:若所述通信请求应答结果表明所述通信模块与所述通信地址在所述历史成功波特率下不能建立通信连接,且已请求波特率个数小于所述可配置波特率个数,在所述多个可配置波特率中除所述历史成功波特率以外的波特率中确定所述第二波特率;其中,所述已请求波特率个数是所述多个可配置波特率中已用于发送通信请求的波特率的数量;根据所述第二波特率向所述通信地址发送通信请求;若在所述第二波特率下接收到所述第二通信终端发送的通信请求应答,调整所述历史成功波特率为所述第二波特率。
根据本发明的一个实施方式,所述基于通信终端连接状态检测的波特率动态调整方法还包括:若在所述第二波特率下未接收到所述第二通信终端发送的通信请求应答,且所述已请求波特率个数等于所述可配置波特率个数,基于所述预设波特率集合与所述第一通信终端进行协商,得到协商结果;根据所述协商结果调整所述波特率配置数据,或者,根据所述协商结果调整所述波特率配置数据和所述第一波特率。
根据本发明的一个实施方式,所述第一波特率是在连接状态检测之前所述通信模块与所述第二通信终端正常通信时的波特率;所述基于通信终端连接状态检测的波特率动态调整方法还包括:若确定调整所述第一波特率,基于调整后波特率、所述通信地址和第一通信耗时数据生成第一信息帧;其中,所述调整后波特率是对所述第一波特率进行调整后得到的;所述第一通信耗时数据是根据所述通信模块与所述第二通信终端在所述调整后波特率下的通信时延确定的;将所述第一信息帧发送至集中器通信单元;其中,所述集中器通信单元存储有所述通信地址,以及所述通信地址对应的所述第一波特率和第二通信耗时数据;所述第二通信耗时数据是根据所述通信模块与所述第二通信终端在所述第一波特率下的通信时延确定的;所述第一信息帧用于指示所述集中器通信单元在根据所述通信地址确定所述调整后波特率与所述第一波特率不同的情况下,基于所述第一波特率、所述调整后波特率、所述通信地址和所述第一通信耗时数据生成异常告警信息,以将所述异常告警信息发送至集中器。
根据本发明的一个实施方式,所述第一波特率是在连接状态检测之前所述通信模块与所述第二通信终端正常通信时的波特率;所述基于通信终端连接状态检测的波特率动态调整方法还包括:若确定调整所述波特率配置数据,或者,若确定调整所述第一波特率和所述波特率配置数据,基于调整后波特率、调整后通信地址和第三通信耗时数据生成第二信息帧;其中,所述调整后波特率是对所述波特率配置数据进行调整后得到的,或者,是对所述第一波特率进行调整后得到的;所述调整后通信地址是对所述波特率配置数据进行调整后得到的;所述第三通信耗时数据是所述通信模块与所述调整后通信地址在所述调整后波特率下的通信时延确定的;将所述第二信息帧发送至集中器通信单元;其中,所述第二信息帧用于指示所述集中器通信单元在确定所述集中器通信单元中不存储有所述调整后通信地址对应的通信波特率和通信耗时数据的情况下,基于所述调整后波特率、所述调整后通信地址和所述第三通信耗时数据生成波特率上报信息,以将所述波特率上报信息发送至集中器。
为达到上述目的,本发明第二方面实施方式提出了一种基于通信终端连接状态检测的波特率动态调整装置,其特征在于,应用于第一通信终端所配置的通信模块;所述装置包括:配置数据获取模块,用于获取所述通信模块中存储的波特率配置数据;其中,所述波特率配置数据是所述通信模块基于预设波特率集合与第二通信终端进行协商得到的,所述波特率配置数据中包括所述第二通信终端的通信地址、所述第二通信终端支持的多个可配置波特率,以及可配置波特率个数;所述第一通信终端与所述第二通信终端相同或者不同;连接状态检测模块,用于基于所述多个可配置波特率中的第一波特率对所述第二通信终端的通信地址进行连接状态检测,得到连接状态检测结果;数据调整确定模块,用于根据所述可配置波特率个数和所述连接状态检测结果确定是否切换至所述多个可配置波特率中第二波特率进行连接状态检测,以确定是否调整所述第一波特率和/或所述波特率配置数据。
根据本发明的一个实施方式,所述预设波特率集合中包括按照使用频次排序的多个预设波特率;所述基于通信终端连接状态检测的波特率动态调整装置还包括:第一波特率确定模块,用于根据所述多个预设波特率的排序关系在所述多个预设波特率中确定指定波特率;请求发送模块,用于根据所述指定波特率发送第一通配地址请求;第二波特率确定模块,用于若在所述指定波特率下接收到所述第二通信终端针对所述第一通配地址请求发送的第一请求应答,在所述多个预设波特率中确定待协商波特率;其中,所述待协商波特率是所述多个预设波特率中大于所述指定波特率的波特率;波特率协商模块,用于基于所述指定波特率和所述待协商波特率与所述第二通信终端进行协商,得到所述波特率配置数据。
根据本发明的一个实施方式,所述波特率配置数据中包括当前通信波特率;在进行连接状态检测之前,所述通信模块与所述第二通信终端在所述当前通信波特率下正常通信;所述第一波特率为所述当前通信波特率;所述连接状态检测模块,还用于在当前预设心跳周期内根据所述当前通信波特率对所述通信地址进行心跳检测,得到心跳检测结果;其中,所述连接状态检测结果包括所述心跳检测结果。
根据本发明的一个实施方式,所述数据调整确定模块,还用于若所述心跳检测结果表明在所述当前预设心跳周期内所述通信模块与所述通信地址在所述当前通信波特率下不能正常通信,根据所述可配置波特率个数确定在预设窗口内用于进行连接状态检测的波特率数量阈值;其中,所述预设窗口是相邻两个预设心跳周期之间的时间窗口;若在所述预设窗口内的已检测波特率个数小于所述波特率数量阈值,在所述多个可配置波特率中除所述当前通信波特率以外的波特率中确定所述第二波特率;其中,所述已检测波特率个数是在所述预设窗口内已用于进行连接状态检测的波特率的个数;根据所述第二波特率发送第二通配地址请求;若在所述第二波特率下接收到所述第二通信终端针对所述第二通配地址请求发送的第二请求应答,确定调整所述当前通信波特率为所述第二波特率。
根据本发明的一个实施方式,所述波特率配置数据是在所述通信模块重启之前存储在所述通信模块的非易失性存储空间中的;所述波特率配置数据中包括历史成功波特率;在所述通信模块重启之前,所述通信模块与所述第二通信终端在所述历史成功波特率下正常通信;所述第一波特率为所述历史成功波特率;所述连接状态检测模块,还用于根据所述历史成功波特率向所述通信地址发送通信请求,得到通信请求应答结果;其中,所述连接状态检测结果包括所述通信请求应答结果;所述数据调整确定模块,还用于若所述通信请求应答结果表明所述通信模块与所述通信地址在所述历史成功波特率下不能建立通信连接,且已请求波特率个数小于所述可配置波特率个数,在所述多个可配置波特率中除所述历史成功波特率以外的波特率中确定所述第二波特率;其中,所述已请求波特率个数是所述多个可配置波特率中已用于发送通信请求的波特率的数量;根据所述第二波特率向所述通信地址发送通信请求;若在所述第二波特率下接收到所述第二通信终端发送的通信请求应答,调整所述历史成功波特率为所述第二波特率。
根据本发明的一个实施方式,所述数据调整确定模块,还用于若在所述第二波特率下未接收到所述第二通信终端发送的通信请求应答,且所述已请求波特率个数等于所述可配置波特率个数,基于所述预设波特率集合与所述第一通信终端进行协商,得到协商结果;根据所述协商结果调整所述波特率配置数据,或者,根据所述协商结果调整所述波特率配置数据和所述第一波特率。
为达到上述目的,本发明第三方面实施例提出了一种计算机设备,包括存储器和处理器,所述存储器存储有第一计算机程序,所述处理器执行所述第一计算机程序时实现前述任一项实施方式所述的基于通信终端连接状态检测的波特率动态调整方法的步骤。
为达到上述目的,本发明第四方面实施例提出了一种芯片,包括存储单元和处理单元,所述存储单元存储有第二计算机程序,所述处理单元执行所述第二计算机程序时实现前述任一项实施方式所述的基于通信终端连接状态检测的波特率动态调整方法的步骤。
为达到上述目的,本发明第五方面实施例提出了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现前述任一项实施方式所述的基于通信终端连接状态检测的波特率动态调整方法的步骤。
根据本发明提供的多个实施方式,根据通信模块中事先存储的波特率配置数据,使通信模块获知通信终端可支持的波特率的配置。通过在波特率配置数据中的可配置波特率的范围中对相应的通信终端进行连接状态检测,以进行波特率自适应配置,可以减少不必要的通信尝试次数,降低通信资源损耗,从而提高波特率动态调整的效率,并进一步可以提高通信效率和业务处理效率。同时,通信模块的波特率自适应调整能够适配通信终端的不同波特率配置类型,使得通信模块能够适应多种不同的应用场景。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
图1a为根据本说明书实施方式提供的基于通信终端连接状态检测的波特率动态调整方法的应用场景示意图。
图1b为根据本说明书实施方式提供的基于通信终端连接状态检测的波特率动态调整方法的流程示意图。
图2为根据本说明书实施方式提供的协商得到波特率配置数据的流程示意图。
图3为根据本说明书实施方式提供的协商得到波特率配置数据的流程示意图。
图4为根据本说明书实施方式提供的确定是否调整第一波特率和/或波特率配置数据的流程示意图。
图5为根据本说明书实施方式提供的基于通信终端连接状态检测的波特率动态调整方法的流程示意图。
图6为根据本说明书实施方式提供的确定是否调整第一波特率和/或波特率配置数据的流程示意图。
图7为根据本说明书实施方式提供的基于通信终端连接状态检测的波特率动态调整方法的流程示意图。
图8为根据本说明书实施方式提供的基于通信终端连接状态检测的波特率动态调整方法的流程示意图。
图9a为根据本说明书实施方式提供的基于通信终端连接状态检测的波特率动态调整方法的流程示意图。
图9b为根据本说明书实施方式提供的通信模块的结构框图。
图9c为根据本说明书实施方式提供的集中器通信单元的结构框图。
图9d为根据本说明书实施方式提供的波特率动态调整方法的流程示意图。
图9e为根据本说明书实施方式提供的CCO波特率动态感知的流程示意图。
图10为根据本说明书实施方式提供的基于通信终端连接状态检测的波特率动态调整装置的结构框图。
图11为根据本说明书实施方式提供的计算机设备的结构框图。
图12为根据本说明书实施方式提供的芯片的结构框图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
由于串行通信具有成本低、简单且易于实现的特点,因此串行通信被广泛应用于物联通信领域,比如电力设备物联通信等领域。在一些物联通信网络中,随着新型物联设备的接入,物联通信网络中可能包括仅支持使用固定波特率进行通信的传统的物联设备,以及能够支持使用多种波特率进行通信的新型物联设备。例如,在电力物联网中,一些传统的智能电表的串口通信通常采用固定波特率,在通信过程中仅支持使用一种固定的波特率,比如使用1200bps、2400bps、4800bps、9600bps、115200bps等波特率中的任一种。而新型物联电表通常会具有多种波特率配置,即在通信过程中能够支持多种可配置的波特率,比如支持2400bps、4800bps、9600bps、14400bps、19200bps、28800bps、33600bps、38400bps、57600bps、115200bps、230400bps、460800bps等波特率中的多种。
以电力物联网为例,智能电表通常连接有电表通信模块(即STA(station,站点)模块)。相关技术中,在STA模块与电表进行首次通信时,STA模块通常采用波特率穷举法,通过尝试所有可能的波特率与相连接的电表进行通信,直到找到一个能够与电表成功通信的波特率,即为首次成功通信的波特率。在后续与电表通信时,STA模块以该首次成功通信的波特率作为与电表之间通信的固定波特率。另外,集中器本地的通信单元(即CCO(CentralCoordinator,中央协调器))通过STA模块抄读电表信息时,通常采用固定的超时时间等待,等待电表信息抄回或者电表信息抄读超时后,再进行其他抄读业务。
随着新型电力系统的发展,针对电力物联通信网络的业务需求增多,需要尽可能地提高通信速率、降低通信耗时,以合理分配业务周期,提高业务效率和通信资源的有效利用率。若STA模块采用以首次成功通信的固定波特率进行通信的技术手段与新型物联电表进行通信,不能充分利用新型物联电表的支持多种波特率配置的优势,从而难以达到降低通信耗时、提高业务数据处理能力的目的。
另外,针对支持多种波特率的智能电表,STA模块通常还与电表协商到一个较高的波特率进行通信。若配置高波特率,在某些特定状态下,例如电表遇到硬件故障、软件异常复位、电池更换或其他影响电表内部参数重置的事件时,电表可能会恢复到出厂默认的波特率配置,这个默认波特率往往较低且较为保守,以保证基本的兼容性和稳定性。在这种情况下,若STA模块仍以之前协商的较高的波特率作为固定波特率与电表尝试进行通信,容易导致电表与通信模块间的串口长时间通信失败的问题。
为了兼顾物联通信网络中物联设备的不同波特率配置类型,充分利用支持多种波特率配置的物联设备的优势,提高通信过程中波特率动态调整的效率,从而提高通信效率和业务处理效率,有必要提出一种基于通信终端连接状态检测的波特率动态调整方法及装置。该方法根据通信模块中事先存储的波特率配置数据,可以在波特率配置数据中的多个可配置波特率的范围中对相应的通信终端进行连接状态检测,以进行波特率自适应配置,避免在较大的包含所有可能的波特率的范围中对波特率进行遍历,减少不必要的通信尝试次数,降低通信资源损耗,从而提高波特率自适应调整的效率、通信效率和业务处理效率。同时,通信模块的波特率自适应调整能够适配通信终端的不同波特率配置类型,使得通信模块能够适应多种不同的应用场景。
图1a为本说明书提供的基于通信终端连接状态检测的波特率动态调整方法的应用场景示意图。以电力物联通信网络为例,基于传统电表、新型物联电表等电力网络设备,提供一种基于电力物联网的实现波特率动态调节及感知的波特率调整方法。参考图1a所示,电力物联网中包括集中器、集中器本地通信单元模块CCO、电表通信单元模块STA和电表。其中,CCO作为网络通信的中心单元,下挂多个STA。STA插在电表上工作,STA与电表一对一配对连接。电表包括仅支持固定波特率的传统电表以及支持多种波特率配置的新型物联电表。
在本场景示例中,将STA模块作为通信模块,电表作为通信终端,CCO作为集中器通信单元。针对任一STA模块,STA模块在运行过程中可以读取内部存储的波特率配置数据,通过波特率配置数据中记录的电表的通信地址,以及多个可配置波特率和可配置波特率个数,来对该通信地址对应的电表进行连接状态检测。STA模块基于波特率配置数据中多个可配置波特率中的第一波特率对波特率配置数据中电表的通信地址进行连接状态检测,得到连接状态检测结果,以确定对应的电表在第一波特率下是否能够正常通信。根据可配置波特率个数以及连接状态检测结果,STA模块可以确定是否需要切换至多个可配置波特率中的其他波特率继续进行连接状态检测。如果电表在第一波特率下无法正常通信,则可以依次尝试多个可配置波特率中的其他波特率,以确定是否能够找到可以成功通信的波特率,从而确定是否对第一波特率进行调整。如果在尝试多个可配置波特率后STA模块与电表仍无法建立通信连接,STA模块还可以对波特率配置数据进行调整,或者,可以对波特率配置数据和第一波特率进行调整。
其中,波特率配置数据是STA模块基于预设波特率集合与对应的电表进行波特率协商后得到的,并在连接状态检测之前已被存储在STA模块中。连接状态检测可以是在STA模块与所连接的电表进行通信的过程中进行的,也可以是在STA模块重启后请求与波特率配置数据中的通信地址重新建立通信连接的过程中进行的。
在本场景示例中,预设波特率集合中包括按照使用频次排序的多个预设波特率。在协商得到波特率配置数据的过程中,STA模块按照预设波特率集合中的多个预设波特率的顺序,依次尝试使用预设波特率发送通配地址请求。若在某一预设波特率下接收到电表发送的请求应答,STA模块可以得到电表的通信地址,并在该预设波特率下启动波特率协商。STA模块将预设波特率集合中大于该预设波特率的波特率作为待协商波特率,采用从低到高的顺序,基于该预设波特率和待协商波特率与电表进行波特率协商,以得到电表支持的多个可配置波特率。
示例性地,预设波特率集合中按照使用频次排序的多个预设波特率可以包括9600bps、2400bps、4800bps、1200bps、19200bps、115200bps、14400bps、28800bps、33600bps。STA模块按照多个预设波特率的顺序,首先根据波特率9600bps发送通配地址请求。若STA模块在波特率9600bps下接收到电表发送的请求应答,STA模块通过对请求应答进行解析可以得到电表的通信地址,并在波特率9600bps下启动波特率协商。STA模块根据预设波特率集合中大于9600bps的波特率可以得到待协商波特率包括19200bps、115200bps、14400bps、28800bps、33600bps。STA模块按照从低到高的顺序,在波特率9600bps下向电表发送波特率协商帧,用于请求协商至更高的14400bps进行通信。若STA模块在波特率9600bps下接收到电表发送的协商应答帧,且根据协商应答帧表明电表同意协商至14400bps进行通信,表明协商成功,则STA模块可以记录并更新电表的可配置波特率包括9600bps和14400bps,并切换至14400bps继续向电表发送波特率协商帧,用于请求协商至19200bps进行通信。若协商成功,则STA模块可以记录并更新电表的可配置波特率包括9600bps、14400bps和19200bps。以此类推,直至完成所有待协商波特率的协商过程,或者在某一波特率下超时未接收到电表发送的协商应答帧,或者在某一波特率下接收到的协商应答帧表明电表不同意协商至更高的波特率,则协商失败,停止协商,更新并记录电表支持的多个可配置波特率。
在一些可实现的方式中,预设波特率集合中的多个预设波特率可以包括若干第一类型波特率和若干第二类型波特率,且第一类型波特率的使用频次大于第二类型波特率的使用频次。其中,第一类型波特率可以包括传统的或者旧型的电表支持的常用波特率、根据标准协议推荐的常见波特率、新型物联电表的缺省波特率等,第二类型波特率可以包括新型物联电表支持的波特率、针对特定场景下的自定义波特率等。
在本场景示例中,若连接状态检测是在STA模块与所连接的电表进行通信的过程中进行的,则第一波特率可以是当前通信波特率。STA模块通过在当前预设心跳周期内根据当前通信波特率对电表进行心跳检测,以实现连接状态检测。若在当前预设心跳周期内STA模块与电表在当前通信波特率下不能正常通信,则进入预设窗口,并在预设窗口内根据多个可配置波特率中除当前通信波特率以外的其他波特率尝试与电表通信。
进一步地,在本场景示例中,根据可配置波特率个数可以确定在预设窗口内用于进行连接状态检测的波特率数量阈值。若在预设窗口内已用于进行连接状态检测的已检测波特率个数小于波特率数量阈值,STA模块可以在多个可配置波特率中选取第二波特率,以根据第二波特率发送通配地址请求。若在预设窗口内STA模块在第二波特率下接收到电表发送的请求应答,STA模块可以将当前通信波特率调整为第二波特率;若在预设窗口内STA模块在第二波特率下未接收到电表发送的请求应答,且预设窗口内的已检测波特率个数小于波特率数量阈值,STA模块可以继续在多个可配置波特率中选取用于发送通配地址请求的波特率,以尝试与电表通信。
再进一步地,若预设窗口内的已检测波特率个数等于波特率数量阈值,且STA模块在多个可配置波特率中未找到能够与电表成功通信的波特率,则不对当前通信波特率进行调整,并进入下一预设心跳周期,以继续使用当前通信波特率对电表进行心跳检测。
或者,若根据第一波特率和多个预设窗口内的已检测波特率个数得到的已检测波特率总数等于可配置波特率个数,STA模块也不对当前通信波特率进行调整,并进入下一预设心跳周期,继续使用当前通信波特率对电表进行心跳检测。
在本场景示例中,若波特率配置数据是在STA模块初次上电后与电表进行协商后并存储在STA模块中的,则波特率配置数据中可以包括在STA模块初次上电后与电表进行初次通信的成功通信波特率,且成功通信波特率是多个可配置波特率中的最大的波特率。在STA模块初次上电的情况下,连接状态检测是在STA模块与电表进行通信的过程中进行的,则第一波特率可以是成功通信波特率。
若波特率配置数据是在STA模块重启之前存储在STA模块中的,波特率配置数据中可以包括在STA模块重启之前与电表进行通信时的历史成功波特率。在STA模块重启后,连接状态检测可以是在STA模块请求与波特率配置数据中的通信地址重新建立通信连接的过程中进行的,则第一波特率可以是历史成功波特率。
具体地,在STA模块重启后,STA模块根据存储的波特率配置数据中的多个可配置波特率尝试与波特率配置数据中的通信地址进行通信。STA模块首先可以根据历史成功波特率向该通信地址发送通信请求,若超时未接收到该通信地址对应的电表发送的通信请求应答,则STA模块其次可以在多个可配置波特率中选取第二波特率用于发送通信请求。
若在第二波特率下未接收到对应的电表发送的通信请求应答,且已用于发送通信请求的已请求波特率个数小于可配置波特率个数,则STA模块可以继续在多个可配置波特率中选取波特率用于发送通信请求,直至STA模块在某一波特率下接收到对应的电表发送的通信请求应答,则STA模块将历史成功波特率调整为该波特率。
若STA模块尝试了多个可配置波特率后均不能与波特率配置数据中的通信地址恢复通信,则STA模块重启后所连接的电表可能与重启之前所连接的电表不同。STA模块可以基于预设波特率集合与重启后所连接的电表进行协商,以根据得到的协商结果调整波特率配置数据,或者,调整波特率配置数据和第一波特率。
在本场景示例中,第一波特率可以是在连接状态检测之前STA模块与波特率配置数据中的通信地址对应的电表正常通信时的波特率。在STA模块确定调整第一波特率的情况下,STA模块可以根据对第一波特率调整后的调整后波特率、波特率配置数据中的通信地址,以及STA模块与该通信地址对应的电表在调整后波特率下的第一通信耗时数据生成第一信息帧。STA模块将第一信息帧发送给CCO,CCO中存储有该通信地址以及该通信地址对应的第一波特率和第二通信耗时数据。CCO在接收到第一信息帧后,若根据第一信息帧中的通信地址确定对应的调整后波特率与第一波特率不同,则CCO可以基于第一波特率、调整后波特率、通信地址和第一通信耗时数据生成异常告警信息,并将异常告警信息发送给集中器,使集中器可以根据异常告警信息中的第一通信耗时数据等进行后续的业务数据处理调整和业务耗时统计等。
在STA模块确定调整波特率配置数据的情况下,或者,在STA模块确定调整波特率配置数据和第一波特率的情况下,STA模块可以根据对第一波特率或者波特率配置数据调整后的调整后波特率、对波特率配置数据调整后的调整后通信地址,以及STA模块与调整后通信地址对应的电表在调整后波特率下的第三通信耗时数据生成第二信息帧。STA模块将第二信息帧发送给CCO。CCO在接收到第二信息帧后,若根据第二信息帧中的调整后通信地址确定第二信息帧是首次上报的,即,若根据调整后通信地址确定CCO本地不存储有该通信地址对应的原有通信波特率和通信耗时数据,CCO可以保存调整后通信地址以及调整后通信地址对应的调整后波特率、第三通信耗时数据,并基于调整后波特率、调整后通信地址和第三通信耗时数据生成波特率上报信息,以将波特率上报信息发送给集中器,使集中器可以根据波特率上报信息中的第三通信耗时数据等进行后续的业务调整和业务耗时统计等。
本说明书实施方式提供一种基于通信终端连接状态检测的波特率动态调整方法,应用于第一通信终端所配置的通信模块。参考图1b所示,基于通信终端连接状态检测的波特率动态调整方法可以包括以下步骤。
S110、获取通信模块中存储的波特率配置数据;其中,波特率配置数据是通信模块基于预设波特率集合与第二通信终端进行协商得到的,波特率配置数据中包括第二通信终端的通信地址、第二通信终端支持的多个可配置波特率,以及可配置波特率个数;第一通信终端与第二通信终端相同或者不同。
S120、基于多个可配置波特率中的第一波特率对第二通信终端的通信地址进行连接状态检测,得到连接状态检测结果。
S130、根据可配置波特率个数和连接状态检测结果确定是否切换至多个可配置波特率中第二波特率进行连接状态检测,以确定是否调整第一波特率和/或波特率配置数据。
其中,通信终端是通信网络中的网络通信设备或物联通信设备,通信模块是配置在通信终端的用于进行信息交互的模块,具有可插拔的特性,可以通过插在通信终端上实现与通信终端连接。第一通信终端所配置的通信模块,即第一通信终端所连接的通信模块。
第一通信终端是通信模块当前连接的通信终端,或者,是进行连接状态检测时通信模块连接的通信终端,第二通信模块是进行连接状态检测之前通信模块连接的通信终端。
波特率配置数据用于记录第二通信终端的波特率配置情况和通信地址等相关信息。第二通信终端支持的多个可配置波特率是第二通信终端在通信过程中支持使用的多个波特率。
预设波特率集合用于存储通信网络中所有通信终端可能支持的所有波特率候选项,可以根据各通信终端的配置信息得到。
连接状态检测是通信模块检测是否能够与波特率配置数据中的通信地址所对应的通信终端正常通信的过程。
可以理解的是,若通信模块发生了重启,连接状态检测可以是在通信模块重启后进行的,第一通信终端可以是通信模块在当前上电启动后(即重启后)连接的通信终端,第二通信终端可以是通信模块在当前上电启动前(即重启前)连接的通信终端,则第一通信终端和第二通信终端可能是相同的,也可能是不同的。若通信模块未发生重启,连接状态检测可以是在通信模块当前工作过程中进行的,则第一通信终端和第二通信终端相同,为通信模块当前工作过程中连接的通信终端。
具体地,通信模块基于预设波特率集合中的波特率候选项与第二通信终端进行波特率协商,可以得到第二通信终端支持的多个波特率,作为第二通信终端支持的多个可配置波特率。根据第二通信终端的通信地址、支持的多个可配置波特率,以及可配置波特率个数,可以得到第二通信终端对应的波特率配置数据,并存储在通信模块中。
由于通信模块当前连接的第一通信终端与波特率配置数据中的通信地址对应的第二通信终端可能不同,或者,第一通信终端与第二通信终端相同,但是第二通信终端的波特率可能发生改变,因此,通信模块需要根据波特率配置数据中的通信地址进行连接状态检测,以确保后续通信正常。
通信模块获取内部存储的波特率配置数据,并基于波特率配置数据中的多个可配置波特率对第二通信终端的通信地址进行连接状态检测。通信模块可以在多个可配置波特率中确定第一波特率,根据第一波特率对该通信地址进行连接状态检测,以确定在第一波特率下,通信模块与第二通信终端之间的通信连接状态是否正常,从而得到连接状态检测结果。
根据可配置波特率个数以及连接状态检测结果,通信模块可以确定是否需要切换至其他波特率再次进行连接状态检测。若连接状态检测结果表明在第一波特率下通信模块与第二通信终端之间无法建立有效的通信连接,且根据可配置波特率个数确定多个可配置波特率中存在可以用于尝试通信的其他波特率,则通信模块可以在多个可配置波特率中确定第二波特率。通信模块切换至第二波特率对该通信地址进行连接状态检测,以确定在第二波特率下,通信模块与第二通信终端是否能够建立有效的通信连接。
按照上述方式,在通信模块能够从多个可配置波特率中找到与第二通信模块的通信地址成功建立通信连接的波特率的情况下,若该波特率与第一波特率不同,则通信模块可以确定调整第一波特率;若该波特率与第一波特率相同,则通信模块可以确定不调整第一波特率。若通信模块在多个可配置波特率中未找到能够与第二通信模块的通信地址成功建立通信连接的波特率,通信模块也可以确定调整波特率配置数据,即重新进行协商得到新的波特率配置数据,或者,可以确定调整波特率配置数据和第一波特率。
在一些实施例中,第一波特率可以是多个可配置波特率中的指定波特率。连接状态检测是在通信模块重启后进行的。连接状态检测可以通过发送通配地址请求、通信连接请求、测试数据包等方式中的任一种实现,本说明书中不作具体限定。
示例性地,将第二通信终端记为终端A,将第一通信终端记为终端B。在通信模块重启前,通信模块被配置在终端A上,通信模块基于预设波特率集合与终端A进行波特率协商,得到终端A支持的多个可配置波特率,从而得到终端A对应的波特率配置数据,并存储在通信模块中。假设终端A支持的多个可配置波特率包括4800bps、9600bps、14400bps、19200bps、28800bps,则可配置波特率个数为5。
在通信模块重启后,通信模块被配置在终端B上,通信模块获取内部存储的波特率配置数据,并可以在波特率配置数据中记录的多个可配置波特率中将最高的波特率作为第一波特率,即,可以将28800bps作为第一波特率。通信模块可以根据28800bps向波特率配置数据中记录的终端A的通信地址(记为地址A)发送通信连接请求,以进行连接状态检测。
若通信模块在波特率28800bps下接收到终端A针对通信连接请求发送的应答信息(或者,应答帧),可以认为在波特率28800bps下通信模块与终端A能够建立有效的通信连接(可以理解的是,终端A与终端B相同),则通信模块确定不调整第一波特率。
若通信模块在波特率28800bps下未接收到终端A针对通信连接请求发送的应答信息,可以认为在波特率28800bps下通信模块与终端A不能成功通信,则通信模块可以根据可配置波特率个数确定多个可配置波特率中存在可以用于尝试通信的其他波特率。通信模块可以在多个可配置波特率中将第二高的波特率作为第二波特率,即,可以将19200bps作为第二波特率。通信模块切换至19200bps向地址A发送通信连接请求,若通信模块在波特率19200bps下接收到终端A发送的应答信息,则通信模块可以确定将第一波特率28800bps调整为第二波特率19200bps。
若通信模块在波特率19200bps下仍未接收到终端A发送的应答信息,则通信模块可以确定不调整第一波特率,并可以根据可配置波特率个数确定多个可配置波特率中存在可以用于尝试通信的其他波特率。通信模块可以继续按照从高到低的顺序依次尝试使用其他波特率进行连接状态检测。若通信模块找到能够与地址A成功建立通信连接的波特率,假设为9600bps,则通信模块可以确定将第一波特率28800bps调整为9600bps。
若通信模块未找到能够与地址A成功建立通信连接的波特率,表明终端A可能和终端B不同,则通信模块可以重新与终端B进行协商得到终端B对应的波特率配置数据,以对通信模块内部存储的波特率配置数据进行调整,或者,对波特率配置数据和第一波特率进行调整。
可以理解的是,若通信模块未找到能够与地址A成功建立通信连接的波特率,终端A仍然可能和终端B相同,因此调整后的终端B对应的波特率配置数据可能和终端A对应的波特率配置数据相同。
示例性地,以上述终端A、终端B和终端A对应的波特率配置数据为例。若通信模块在第二波特率19200bps下仍未接收到终端A发送的应答信息,通信模块也可以确定将第一波特率28800bps调整为第二波特率19200bps,并将19200bps作为新的第一波特率,然后在多个可配置波特率中将第三高的14400bps作为第二波特率,以用于进行连接状态检测,具体不再赘述。
示例性地,以上述终端A、终端B和终端A对应的波特率配置数据为例。在通信模块重启后,通信模块获取内部存储的波特率配置数据,并可以在波特率配置数据中的多个可配置波特率中将最小的波特率作为第一波特率,即,可以将4800bps作为第一波特率。通信模块可以根据4800bps向波特率配置数据中记录的地址A发送通信连接请求,以进行连接状态检测。
若通信模块在波特率4800bps下未接收到终端A发送的应答信息,则通信模块可以在多个可配置波特率中将第二小的波特率作为第二波特率,即,可以将9600bps作为第二波特率,以进行连接状态检测。关于通信模块按照从低到高的顺序依次尝试使用其他波特率进行连接状态检测,以确定是否调整第一波特率和/或波特率配置数据的描述与上述描述类似,具体不再赘述。
在另一些实施例中,连接状态检测是在通信模块当前工作过程中进行的,第一波特率可以是通信模块当前使用的波特率。连接状态检测可以通过发送通配地址请求、通信连接请求、测试数据包、心跳检测包等方式中的任一种实现,本说明书中不作具体限定。
示例性地,将第二通信终端记为终端A,将第一通信终端记为终端B,则在通信模块当前工作过程中,终端A与终端B相同,且通信模块在连接状态检测之前能够与波特率配置数据中的通信地址A对应的终端A正常通信。通信模块获取内部存储的波特率配置数据,并可以在波特率配置数据中多个可配置波特率中的用于与终端A进行通信的当前波特率作为第一波特率。
假设终端A支持的多个可配置波特率包括4800bps、9600bps、14400bps、19200bps、28800bps,当前波特率为9600bps,则通信模块可以将9600bps作为第一波特率。通信模块根据9600bps向波特率配置数据中记录的地址A发送心跳检测包,以进行连接状态检测。
若通信模块在波特率9600bps下未接收到终端A发送的心跳检测应答信息,可以认为在波特率9600bps下通信模块与终端A不能成功通信,则通信模块可以根据可配置波特率个数确定多个可配置波特率中存在可以用于尝试通信的其他波特率。通信模块可以在多个可配置波特率中依次尝试其他波特率进行连接状态检测,以确定是否调整第一波特率,具体情况的描述与上述描述类似,这里不再赘述。
若通信模块未找到能够与地址A成功建立通信连接的波特率,则通信模块不调整第一波特率和波特率配置数据,继续根据第一波特率9600bps向地址A发送心跳检测包,以重新寻找能够与地址A成功建立通信连接的波特率。
需要说明的是,在第二通信终端的可配置波特率仅包括一个波特率的情况下,第一波特率即为该可配置波特率。若连接状态检测是在通信模块重启后进行的,通信模块基于该第一波特率对第二通信终端的通信地址进行连接状态检测,得到连接状态检测结果,然后可以根据连接状态检测结果确定是否调整波特率配置数据。
通信终端可以是电力物联网络中的电表、燃气物联网络中的燃气表、充电桩物联网络中的充电桩等网络通信设备中的任一种,通信模块可以是应用于对应类型的网络通信设备上的通信模块中的任一种,本说明书中不作具体限定。例如,若通信终端是电表,通信模块可以是与电表一一对应连接的STA模块。
上述实施方式中,根据通信模块中事先存储的波特率配置数据使通信模块获知相关通信终端可支持的波特率配置情况。通过在波特率配置数据中的多个可配置波特率的范围中对相应的通信终端进行连接状态检测,以确定波特率调整的方式,从而实现波特率自适应配置,可以避免在较大的包含所有可能的波特率的范围中对波特率进行遍历,减少不必要的通信尝试次数,降低通信资源损耗,从而提高波特率动态调整的效率、通信双方的通信效率和通信网络的业务处理效率。同时,通信模块的波特率动态调整能够适配通信终端的不同波特率配置类型,使得通信模块能够适应多种不同的应用场景。基于波特率配置数据实现波特率的动态调节及感知,能够灵活应对波特率重置、通信环境变化、通信终端替换等情况,以提高通信的稳定性和健壮性。
在一些实施方式中,预设波特率集合中包括按照使用频次排序的多个预设波特率。参考图2所示,可以通过以下方式协商得到波特率配置数据:
S210、根据多个预设波特率的排序关系在多个预设波特率中确定指定波特率。
S220、根据指定波特率发送第一通配地址请求。
S230、若在波特率下接收到第二通信终端针对第一通配地址请求发送的第一请求应答,在多个预设波特率中确定待协商波特率;其中,待协商波特率是多个预设波特率中大于指定波特率的波特率。
S240、基于指定波特率和待协商波特率与第二通信终端进行协商,得到波特率配置数据。
其中,通配地址请求可以用于请求获取通信终端的通信地址,也可以称为读通配地址帧。请求应答是通信终端根据通信终端的通信地址生成的响应信息,用于将通信地址发送给通信模块,以表明通信终端能够正常通信。预设波特率即波特率候选项。
具体地,可以事先设置包含多个预设波特率的预设波特率集合,且将多个预设波特率按照使用频次进行排序,使具有更高使用频次的预设波特率的排序位置更靠前。通信模块根据预设波特率集合中的排序关系,按照顺序从高使用频次开始选择预设波特率作为指定波特率。
通信模块根据指定波特率发送第一通配地址请求,并在指定波特率下等待一定的时间。若在等待时间内在指定波特率下接收到第二通信终端针对第一通配地址请求发送的第一请求应答,表明第二通信终端在指定波特率下可以正常接收和处理消息,并进行相应的反馈,即指定波特率是第二通信终端可支持的波特率。通信模块将预设波特率集合中大于指定波特率的波特率作为待协商波特率,以基于指定波特率和待协商波特率与第二通信终端进行波特率协商,在待协商波特率中进一步确定第二通信终端可支持的其他波特率,从而得到波特率配置数据。
示例性地,假设预设波特率集合中包括按照使用频次排序的多个预设波特率为9600bps、2400bps、4800bps、1200bps、19200bps、115200bps、14400bps、28800bps。其中,9600bps的使用频次最高,28800bps的使用频次最低。通信模块根据预设波特率集合中的排序关系,可以将9600bps作为指定波特率,以根据9600bps发送通配地址请求,并等待一定的时间。
若在等待时间内通信模块在波特率9600bps下接收到第二通信终端发送的请求应答,且通信模块能够成功解析请求应答得到第二通信终端的通信地址,表明9600bps是第二通信终端可支持的波特率,且第二通信终端当前使用9600bps进行通信。通信模块将预设波特率集合中大于9600bps的波特率作为协商波特率,即,将19200bps、115200bps、14400bps、28800bps作为协商波特率,以基于9600bps、19200bps、115200bps、14400bps、28800bps与第二通信终端进行波特率协商,从中确定第二通信终端支持的多个可配置波特率,从而得到波特率配置数据。
若通信模块在波特率9600bps下超时未接收到第二通信终端发送的请求应答,通信模块按照顺序在多个预设波特率中除波特率9600bps以外的其他波特率中确定指定波特率,即,将2400bps作为下一个指定波特率。通信模块在波特率2400bps下发送通配地址请求,并等待一定的时间。若在等待时间内通信模块在波特率2400bps下接收到第二通信终端发送的请求应答,通信模块可以将预设波特率集合中大于2400bps的波特率作为协商波特率,即,将9600bps、4800bps、19200bps、115200bps、14400bps、28800bps作为协商波特率,以与第二通信终端进行波特率协商。
在一些实施例中,可以按照从低到高的顺序基于指定波特率和待协商波特率与第二通信终端进行协商。
示例性地,以上述指定波特率为9600bps,待协商波特率包括19200bps、115200bps、14400bps、28800bps为例。通信模块可以按照从低到高的顺序依次根据9600bps、14400bps、19200bps、28800bps、115200bps与第二通信终端进行波特率协商。通信模块可以在波特率9600bps下向第二通信终端请求协商至14400bps,若第二通信终端同意协商至14400bps,则通信模块可以继续在波特率14400bps下向第二通信终端请求协商至19200bps。以此类推,可以得到第二通信终端支持的多个可配置波特率,以得到波特率配置数据。
其中,若请求协商至19200bps的协商失败,则通信模块可以继续在波特率14400bps下向第二通信终端请求协商至28800bps,也可以在波特率14400bps下停止协商。
在另一些实施例中,也可以按照从高到低的顺序基于指定波特率和待协商波特率与第二通信终端进行协商。
示例性地,以上述指定波特率为9600bps,待协商波特率包括19200bps、115200bps、14400bps、28800bps为例。通信模块可以按照从高到低的顺序依次根据115200bps、28800bps、19200bps、14400bps与第二通信终端进行波特率协商。通信模块可以在波特率9600bps下向第二通信终端请求协商至115200bps,若第二通信终端同意协商至115200bps,则通信模块可以继续在波特率115200bps下向第二通信终端请求协商至28800bps;若请求协商至115200bps的协商失败,则通信模块可以继续在波特率9600bps下向第二通信终端请求协商至28800bps。以此类推,可以得到第二通信终端支持的多个可配置波特率,以得到波特率配置数据。
在又一些实施例中,也可以按照使用频次的顺序基于指定波特率和待协商波特率与第二通信终端进行协商。
示例性地,以上述指定波特率为9600bps,待协商波特率包括19200bps、115200bps、14400bps、28800bps为例。按照使用频次对待协商波特率进行排序,得到排序后待协商波特率为19200bps、115200bps、14400bps、28800bps。通信模块可以在波特率9600bps下向第二通信终端请求协商至19200bps,若第二通信终端同意协商至19200bps,则通信模块可以继续在波特率19200bps下向第二通信终端请求协商至115200bps。以此类推,可以得到第二通信终端支持的多个可配置波特率,以得到波特率配置数据。
可以理解的是,根据指定波特率发送第一通配地址请求并等待请求应答的过程,也可以称为波特率探测的过程。
使用频次越高的波特率,可以理解为是通用性更高、兼容性更好的波特率,利用该波特率通信的成功概率越高,因此,预设波特率集合中的多个预设波特率也可以是按照成功概率排序的。预设波特率集合可以是事先存储在通信模块中的。
需要说明的是,通过波特率协商得到波特率配置数据的过程,可以是在通信模块初次上电后进行的,也可以是在通信模块确定需要调整波特率配置数据后进行的。
在本说明书中,预设波特率集合也可以称为波特率遍历表。
上述实施方式中,通过优先选择预设波特率集合中使用频次更高的波特率尝试与通信终端通信,可以更快地确定通信终端当前使用的波特率,减少不必要的尝试次数,从而减少协商和连接建立的时间。在确定通信终端当前使用的波特率的情况下,将该波特率作为基准,使用高于该波特率的其他波特率来进行波特率协商,可以减少协商的波特率数量,提高协商效率。同时,能够使通信模块和通信终端之间尽可能使用较高的波特率来提高通信的速率,且即使在某些特殊情况下通信终端恢复到默认的较低波特率的情况下,通信模块也能够快速地与通信终端重新建立连接。由此,可以满足多种通信场景下的通信需求,通过这种自适应协商机制能够更好地应对各种挑战,实现灵活高效的通信连接。
在一些实施方式中,参考图3所示,基于指定波特率和待协商波特率与第二通信终端进行协商,得到波特率配置数据,可以包括以下步骤。
S310、将指定波特率作为协商通信波特率,以及,将待协商波特率中最小的第一待协商波特率作为协商目标波特率。
S320、根据指定波特率向第二通信终端发送波特率协商帧;其中,波特率协商帧用于表明通信模块请求使用第一待协商波特率与第二通信终端进行通信。
S330、若在指定波特率下接收到第二通信终端针对波特率协商帧发送的协商应答帧,且协商应答帧用于表明第二通信终端同意使用第一待协商波特率进行通信,将指定波特率和第一待协商波特率加入可配置波特率集合;其中,可配置波特率集合被初始化为空集合。
S340、将第一待协商波特率作为协商通信波特率,以及,将待协商波特率中除第一待协商波特率以外的最小的第二待协商波特率作为协商目标波特率,重复执行上述协商的步骤,直至在协商通信波特率下未接收到第二通信终端发送的协商应答帧,或者,接收到的协商应答帧用于表明第二通信终端不同意使用协商目标波特率进行通信。
S350、根据第二通信终端的通信地址、可配置波特率集合中的多个可配置波特率,以及可配置波特率个数得到波特率配置数据。
其中,协商通信波特率表示波特率协商过程中用于发送波特率协商帧的波特率,协商目标波特率表示通信模块期望协商至的目标波特率。
可配置波特率集合用于在波特率协商过程中记录第二通信终端支持的波特率。
具体地,将指定波特率作为初始的协商通信波特率,用于发送波特率协商帧,以启动波特率协商过程。同时,从待协商波特率中选择最小的第一待协商波特率作为第一轮尝试的协商目标波特率。
根据当前设定的协商通信波特率(即指定波特率),向第二通信终端发送波特率协商帧,并等待一定的时间。该波特率协商帧中包含通信模块请求使用第一待协商波特率进行通信的信息,以用于请求协商至第一待协商波特率。若在等待时间内在当前的指定波特率下接收到第二通信终端针对波特率协商帧发回的协商应答帧,且协商应答帧表明第二通信终端同意使用第一待协商波特率进行通信,则表明协商成功。记录当前使用的指定波特率和第一待协商波特率,将指定波特率以及第一待协商波特率添加至可配置波特率集合中。
更新协商通信波特率,即,将指定波特率切换为第一待协商波特率,以将第一待协商波特率作为当前的协商通信波特率,并在待协商波特率中除第一待协商波特率以外的最小的第二待协商波特率作为新的协商目标波特率。重复上述协商步骤,直至等待时间超时且在某一协商通信波特率下没有接收到第二通信终端的协商应答帧,或者,在等待时间内在某一协商通信波特率下接收到的协商应答帧表示第二通信终端不同意使用相应的协商目标波特率进行通信,则停止协商。
通信模块基于第二通信终端的通信地址、可配置波特率集合中记录的协商成功的多个可配置波特率,以及可配置波特率个数,得到第二通信终端对应的波特率配置数据。
示例性地,假设通信终端为电表,通信模块为STA模块。假设预设波特率集合中包括按照使用频次排序的多个预设波特率为9600bps、2400bps、4800bps、1200bps、19200bps、115200bps、14400bps、28800bps。其中,9600bps的使用频次最高,28800bps的使用频次最低。
假设STA模块在波特率9600bps下接收到电表针对第一通配地址请求发送的第一请求应答,且正确解析得到电表的通信地址(以下也简称为电表地址),则以波特率9600bps启动波特率协商,并可以确定待协商波特率包括19200bps、115200bps、14400bps、28800bps。
STA模块采用从低到高的顺序进行协商。STA模块将9600bps作为初始的协商通信波特率,以9600bps发送波特率协商帧,请求协商更高的波特率,即,将待协商波特率中的14400bps作为协商目标波特率,以请求与电表协商至14400bps进行通信。若在波特率9600bps下接收到协商成功的应答,即,在波特率9600bps下接收到电表的协商应答帧,且协商应答帧表明电表同意协商至14400bps进行通信,则协商成功。STA模块更新并记录电表的协商成功的波特率(或者,可协商的波特率)作为可配置波特率,将9600bps和14400bps加入可配置波特率集合中。
STA模块后续以协商成功的波特率进行协商通信。STA以协商成功的波特率14400bps继续发送波特率协商帧,请求协商更高的波特率。即,STA模块以14400bps为当前的协商通信波特率,以19200bps为协商目标波特率,向电表发送波特率协商帧,以请求与电表协商至19200bps进行通信。若在波特率19200bps下接收到协商成功的应答,则记录协商成功的波特率,将19200bps加入可配置波特率集合中。
重复上述步骤,STA模块以19200bps为当前的协商通信波特率,以28800bps为协商目标波特率,向电表发送波特率协商帧,以请求与电表协商至28800bps进行通信,具体不再赘述。
若STA模块在某协商通信波特率下超时未收到协商成功的应答或者应答失败,则停止协商。假设STA模块在波特率19200bps下超时未接收到协商成功的应答,或者,接收到的协商应答帧表明电表不同意协商至28800bps进行通信,则停止协商,STA模块更新并记录电表的协商成功的波特率,得到最终的可配置波特率集合,则可配置波特率集合中包括波特率9600bps、14400bps、19200bps。
STA模块基于电表地址、可配置波特率集合中记录的协商成功的多个可配置波特率,以及可配置波特率个数,可以得到电表对应的波特率配置数据。
进一步地,若通信模块在指定波特率下接收到第二通信终端针对第一通配地址请求发送的第一请求应答,通信模块可以得到其与第二通信终端之间使用指定波特率通信的串口通信时延,因此,在通信模块与第二通信终端进行波特率协商和后续通信的过程中,可以根据该串口通信时延设置等待第二通信终端的应答或业务响应的等待时间,以提高协商和通信效率,在一定程度上减少不必要的等待时长。
上述实施方式中,采用从低到高的顺序进行波特率协商,以使通信模块获知通信终端支持的波特率的配置情况,以用于建立通信终端的波特率配置数据。由此,可以确保在通信模块和通信终端通信时至少能找到一个共同支持的较低的波特率,并可以在此基础上使通信模块更高效地获知通信终端支持的多个波特率,从而建立通信终端的波特率配置档案,在一定程度上能够减少时间和通信资源的浪费。
在一些实施方式中,多个预设波特率包括若干第一类型波特率和若干第二类型波特率;第一类型波特率的使用频次大于第二类型波特率的使用频次。
其中,第一类型波特率可以包括根据标准协议推荐的常见波特率、历史应用数据统计得出的常用波特率、根据通信网络中大部分的通信终端的配置信息得到的常用波特率、部分通信终端的缺省波特率等。第二类型波特率可以包括针对特定场景下的自定义波特率、根据通信网络中少部分的通信终端的配置信息得到的波特率、根据可能需要接入通信网络的新的通信终端的配置信息得到的波特率等。
具体地,根据使用频次可以将多个预设波特率划分为两个类别,即第一类型波特率和第二类型波特率。其中,第一类型波特率在实际应用过程中更为常用,第二类型波特率在实际应用过程中的使用频次相对较低。
进一步地,按照使用频次排序,可以得到多个预设波特率的排序关系为若干第一类型波特率、若干第二类型波特率。
示例性地,通信终端为电表,若干第一类型波特率可以包括根据电力物联网中传统的大部分旧型电表的配置信息得到的波特率和新型物联电表的缺省波特率,若干第二类型波特率可以包括根据电力物联网中的新型物联电表的配置信息得到的波特率。例如,若干第一类型波特率可以包括1200bps、2400bps、4800bps、9600bps、19200bps、115200bps等,若干第二类型波特率可以包括14400bps、28800bps、33600bps、38400bps、57600bps、230400bps、460800bps等。按照使用频次排序,排序顺序为若干第一类型波特率、若干第二类型波特率,可以得到预设波特率集合为{1200bps,2400bps,4800bps,9600bps,19200bps,115200bps,14400bps,28800bps,33600bps,38400bps,57600bps,230400bps,460800bps}。
在一些实施例中,若干第一类型波特率也可以按照各波特率的使用频次进行排序,若干第二类型波特率也可以按照各波特率的使用频次进行排序。
示例性地,以上述若干第一类型波特率和若干第二类型波特为例,按照各波特率的使用频次对若干第一类型波特率进行排序,假设排序后的若干第一类型波特率为9600bps、2400bps、4800bps、1200bps、19200bps、115200bps。按照各波特率的使用频次对若干第二类型波特率进行排序,假设排序后的若干第二类型波特率为38400bps、57600bps、28800bps、14400bps、33600bps、230400bps、460800bps。由此,可以得到预设波特率集合为{9600bps,2400bps,4800bps,1200bps,19200bps,115200bps,38400bps,57600bps,28800bps,14400bps,33600bps,230400bps,460800bps}。
在另一些实施例中,若干第一类型波特率可以按照各波特率的使用频次进行排序,若干第二类型波特率可以按照各波特率的大小进行排序。
示例性地,以上述若干第一类型波特率和若干第二类型波特为例,按照各波特率的使用频次对若干第一类型波特率进行排序,假设排序后的若干第一类型波特率为9600bps、2400bps、4800bps、1200bps、19200bps、115200bps。按照各波特率的大小对若干第二类型波特率进行排序,排序后的若干第二类型波特率为14400bps、28800bps、33600bps、38400bps、57600bps、230400bps、460800bps。由此,可以得到预设波特率集合为{9600bps,2400bps,4800bps,1200bps,19200bps,115200bps,14400bps,28800bps,33600bps,38400bps,57600bps,230400bps,460800bps}。
需要说明的是,第一类型波特率也可以称为常用波特率,第二类型波特率也可以称为非常用波特率或新型波特率或其他波特率。
在一些实施方式中,波特率配置数据中包括当前通信波特率;在进行连接状态检测之前,通信模块与第二通信终端在当前通信波特率下正常通信;第一波特率为当前通信波特率。基于多个可配置波特率中的第一波特率对第二通信终端的通信地址进行连接状态检测,得到连接状态检测结果,可以包括:在当前预设心跳周期内根据当前通信波特率对通信地址进行心跳检测,得到心跳检测结果;其中,连接状态检测结果包括心跳检测结果。
其中,心跳检测是在通信模块当前工作过程中进行的。
具体地,在通信模块当前工作过程中,波特率配置数据中记录有当前通信波特率,该波特率是在进行连接状态检测之前,通信模块与第二通信终端通信时使用的波特率。为了确保通信链路的有效性,通信模块可以启动心跳检测机制,定期对第二通信终端的连接状态进行检测。通信模块将当前通信波特率作为第一波特率,在当前预设心跳周期内根据当前通信波特率对波特率配置数据中的通信地址进行心跳检测,即,对第二通信终端进行心跳检测,得到心跳检测结果。
示例性地,通信模块为STA模块,通信终端为电表。STA模块与电表通信的过程中,假设STA模块当前使用波特率9600bps与电表进行通信。STA模块可以将9600bps作为第一波特率,以基于第一波特率定期对电表进行心跳检测。假设预设心跳周期为5min,在当前预设心跳周期内,STA模块可以在波特率9600bps下向电表发送心跳检测包,以此检查电表在波特率9600bps下是否能够维持正常通信,从而可以检查通信线路是否畅通,以及电表的波特率是否发生改变或者电表是否在线。
若在当前预设心跳周期内接收到电表对心跳检测包的响应,可以得到心跳检测结果为检测成功,表明通信链路正常,电表可以正常通信。若当前预设心跳周期超时未能接收到电表对心跳检测包的有效回应,则心跳检测结果为检测失败,可能意味着通信存在异常或不稳定,或者电表的波特率发生改变,或者电表已离线,电表无法正常通信。
可以理解的是,心跳检测可以是在通信模块初次上电并已与第二通信终端的通信地址建立通信连接后的工作过程中进行的,也可以是在通信模块重启后并已与第二通信终端的通信地址建立通信连接后的工作过程中进行的。此时,第一通信终端和第二通信终端相同。
进一步地,若在预设心跳周期范围内,主站抄读通信终端的信息成功,则心跳检测重新计时,以最后1次成功通信时刻为起始时间,即,以通信终端最后一次发送抄读信息的时刻为起始时间,进入新的预设心跳周期,以开启新的心跳检测。由此,在心跳检测过程中利用抄表业务,通过以抄表成功的结果代替串口通信心跳检测成功的结果,有利于提高心跳检测的效率。
需要说明的是,预设心跳周期也可以称为心跳检测周期,可以根据实际应用情况或应用需求等进行设置,本说明书中不作具体限定。
在一些实施方式中,参考图4所示,根据可配置波特率个数和连接状态检测结果确定是否切换至多个可配置波特率中第二波特率进行连接状态检测,以确定是否调整第一波特率和/或波特率配置数据,可以包括以下步骤。
S410、若心跳检测结果表明在当前预设心跳周期内通信模块与通信地址在当前通信波特率下不能正常通信,根据可配置波特率个数确定在预设窗口内用于进行连接状态检测的波特率数量阈值;其中,预设窗口是相邻两个预设心跳周期之间的时间窗口。
S420、若在预设窗口内的已检测波特率个数小于波特率数量阈值,在多个可配置波特率中除当前通信波特率以外的波特率中确定第二波特率;其中,已检测波特率个数是在预设窗口内已用于进行连接状态检测的波特率的个数。
S430、根据第二波特率发送第二通配地址请求。
S440、若在第二波特率下接收到第二通信终端针对第二通配地址请求发送的第二请求应答,确定调整当前通信波特率为第二波特率。
具体地,在两个预设心跳周期之间可以设置一个较短的时间窗口,作为预设窗口。若根据心跳检测结果确定在当前预设的心跳周期内通信模块无法与波特率配置数据中的通信地址(即,第二通信终端)在当前通信波特率下正常通信,通信模块可以根据可配置波特率个数来确定一个波特率数量阈值。这个阈值决定了在预设窗口内允许尝试用于连接状态检测的不同波特率的数量,即,决定了通信模块在预设窗口内需要使用多少个波特率来尝试与第二通信终端建立通信连接。
若在上述预设窗口内,已用于连接状态检测的波特率的数量小于波特率数量阈值,通信模块可以在多个可配置波特率中除当前通信波特率以外的波特率中选取待测试的波特率,作为第二波特率。通信模块在预设窗口内使用第二波特率发送第二通配地址请求,尝试通过第二波特率与第二通信终端重新建立通信连接,并等待一定的时间。
若在预设窗口内通信模块在等待时间内在第二波特率下成功接收到第二通信终端针对第二通配地址请求发送的第二请求应答,可以认为第二通信终端当前使用的波特率为第二波特率,则通信模块可以将当前通信波特率调整为第二波特率,以用于后续与第二通信终端进行通信。
进一步地,在将当前通信波特率调整为第二波特率后,通信模块可以将波特率配置数据中的当前通信波特率的数值更新为第二波特率的数值。
示例性地,通信模块为STA模块,通信终端为电表。假设当前通信波特率为19200bps,多个可配置波特率包括9600bps、14400bps、19200bps、28800bps、38400bps、57600bps、115200bps。假设预设心跳周期为5min,预设窗口为20s。
在当前预设心跳周期内,STA模块根据19200bps对电表进行心跳检测,向电表发送心跳检测包。若心跳检测周期超时,STA模块未接收到电表发送的针对心跳检测包的响应,则心跳结果为检测失败,表明在当前预设心跳周期内STA模块与电表在波特率19200bps下无法正常通信。STA模块根据可配置波特率个数确定预设窗口内的波特率数量阈值。由于不同电表的波特率配置表中的波特率配置范围及个数不相同,假设需要在m个检测周期内(每个检测周期包括一个预设心跳周期和一个预设窗口)遍历波特率配置数据中的所有可配置波特率,则每个检测周期内需要尝试的波特率个数CntPeriod可以按照如下公式计算得到:
CntPeriod=CntPeriod'+1=(CntMax-1)/m+1
其中,CntMax表示可配置波特率个数;CntPeriod'表示预设窗口内的波特率数量阈值,则CntPeriod'=(CntMax-1)/m。
假设需要在3个检测周期内遍历所有可配置波特率,则预设窗口内的波特率数量阈值CntPeriod'为2,即在当前预设心跳周期超时进入预设窗口后,STA模块可以在20s内使用2个波特率来尝试与电表重新建立通信连接。
在预设窗口内,已检测波特率个数被初始化为0,小于波特率数量阈值,STA模块在多个可配置波特率中除19200bps以外的波特率中选取用于连接状态检测的波特率,作为第二波特率。假设按照从低到高的顺序选取9600bps作为第二波特率,STA模块根据9600bps发送通配地址请求,若在预设窗口内STA模块在等待时间内在波特率9600bps下成功接收到电表发送的请求应答,则STA模块可以将当前通信波特率19200bps调整为9600bps,以用于后续与第二通信终端进行通信,并更新波特率配置数据中的当前通信波特率的数值。
若在预设窗口内等待时间超时,STA模块在波特率9600bps下未接收到电表发送的请求应答,此时预设窗口内已检测波特率个数为1,小于波特率数量阈值,则STA模块可以继续选取用于连接状态检测的波特率。STA模块可以按照顺序继续选取14400bps作为第二波特率,以根据14400bps发送通配地址请求,若在预设窗口内STA模块在等待时间内在波特率14400bps下成功接收到电表发送的请求应答,则STA模块可以将当前通信波特率19200bps调整为14400bps,并更新波特率配置数据中的当前通信波特率的数值。
由此,在通常情况下可以保证在3个检测周期内(由于预设窗口时间相对较短,因此可以理解为接近于在3个预设心跳周期内)遍历波特率配置数据中的所有波特率,以保证在接近于15min的时间内即与电表再次建立连接以恢复通信,保证电力曲线数据正常抄读,从而提升通信的稳定性和可靠性。在本说明书中,上述遍历所有可配置波特率的过程也可以称为通配地址搜表的过程。
示例性地,通信模块为STA模块,通信终端为电表。假设当前通信波特率为9600bps,多个可配置波特率包括9600bps、19200bps、38400bps、57600bps、115200bps。假设需要在3个检测周期内遍历所有可配置波特率,则3个预设窗口内的波特率数量阈值CntPeriod'分别为1个、1个和2个。例如,在第一个预设心跳周期超时进入第一个预设窗口后,STA模块可以在20s内使用1个波特率来尝试与电表重新建立通信连接。在第二个预设心跳周期超时进入第二个预设窗口后,STA模块可以在20s内使用1个波特率来尝试与电表重新建立通信连接。在第三个预设心跳周期超时进入第三个预设窗口后,STA模块可以在20s内使用2个波特率来尝试与电表重新建立通信连接。
可以理解的是,也可以在检测周期内已用于进行连接状态检测的波特率(包括在预设心跳周期内用于心跳检测的当前通信波特率,以及在预设窗口内用于连接状态检测的波特率)的个数小于需要尝试的波特率个数CntPeriod的情况下,在多个可配置波特率中确定第二波特率。
需要说明的是,上述用于确定波特率数量阈值的检测周期的数量可以根据实际应用情况或应用需求等进行设置,在多个可配置波特率中选取第二波特率的方式也可以根据实际应用需求确定,本说明书中不作具体限定。
上述实施方式中,通过预设窗口内的波特率数量阈值来能保证在较少的检测周期内(或者,较短的时间内)恢复通信,以保证业务数据的正常抄读,减少在异常场景下通信终端的波特率发生变化后,通信模块与通信终端之间的串口长时间通信失败的问题。
在一些实施方式中,参考图5所示,基于通信终端连接状态检测的波特率动态调整方法还可以包括以下步骤。
S510、若已检测波特率个数等于波特率数量阈值,或者,若已检测波特率总数等于可配置波特率个数,确定不调整当前通信波特率,并进入下一预设心跳周期;其中,已检测波特率总数是根据第一波特率和多个预设窗口内的已检测波特率个数得到的。
S520、在下一预设心跳周期内根据当前通信波特率对通信地址进行心跳检测,得到心跳检测结果;其中,若已检测波特率总数等于可配置波特率个数,将已检测波特率总数重置。
其中,根据第一波特率和多个预设窗口内的已检测波特率个数得到的已检测波特率总数,即为多个可配置波特率中已用于连接状态检测的波特率的总数。
具体地,当预设窗口内的已检测波特率个数等于波特率数量阈值时,意味着在预设窗口内已经尝试了足够数量的不同波特率来尝试建立通信连接,或者,当多个预设窗口内的用于连接状态检测的波特率加上第一波特率的总数等于可配置波特率个数时,意味着所有可能的可配置波特率都已经被用于连接状态检测,通信模块不对当前通信波特率进行调整,并直接进入下一个预设心跳周期。
在下一个预设心跳周期内,通信模块将继续使用当前通信波特率对第二通信终端的通信地址进行心跳检测,以确定连接是否恢复正常。其中,若在进入下一个预设心跳周期时上述已检测波特率总数等于可配置波特率个数,则通信模块可以将已检测波特率总数重置为0,或者,将已检测波特率总数重置为1(预设心跳周期内需要使用当前通信波特率进行心跳检测,因此已检测波特率总数可以重置为1),以便重新开始新一轮的检测流程。
示例性地,通信模块为STA模块,通信终端为电表。以前述当前通信波特率为19200bps,多个可配置波特率包括9600bps、14400bps、19200bps、28800bps、38400bps、57600bps、115200bps,预设心跳周期为5min,预设窗口为20s为例。
假设需要在3个检测周期内遍历所有可配置波特率,则预设窗口内的波特率数量阈值为2。在预设窗口内,已检测波特率个数被初始化为0,小于波特率数量阈值,STA模块可以选取9600bps作为第二波特率。STA模块根据9600bps发送通配地址请求,若在预设窗口内等待时间超时,STA模块在波特率9600bps下未接收到电表发送的请求应答,此时预设窗口内已检测波特率个数为1,小于波特率数量阈值,则STA模块可以继续选取14400bps作为第二波特率。
STA模块根据14400bps发送通配地址请求,若在预设窗口内等待时间超时,STA模块在波特率14400bps下未接收到电表发送的请求应答,此时预设窗口内已检测波特率个数为2,等于波特率数量阈值,则STA模块不调整当前通信波特率,直接进入下一预设心跳周期,并继续根据波特率19200bps进行心跳检测。
或者,STA模块根据14400bps发送通配地址请求,若在预设窗口内等待时间超时,STA模块在波特率14400bps下未接收到电表发送的请求应答,若此时多个可配置波特率中的已检测波特率总数等于可配置波特率个数,则STA模块不调整当前通信波特率,直接进入下一预设心跳周期,并继续根据波特率19200bps进行心跳检测。
上述实施方式中,通过在一定条件下使通信模块切换回当前通信波特率进行心跳检测,以继续检测通信链路的状态,能够较大程度上减少在因通信终端的串口偶发异常导致的偶发通信不佳的情况下,通信模块频繁切换波特率导致的通信失败的问题,确保通信的稳定性和可靠性。
在一些实施方式中,波特率配置数据是在通信模块初次上电后与第二通信终端进行协商并存储在通信模块的非易失性存储空间中的;波特率配置数据中包括在通信模块初次上电后协商成功的用于与第二通信终端进行初次通信的成功通信波特率;成功通信波特率是多个可配置波特率中的最大的波特率;第一波特率为成功通信波特率。
其中,初次通信是指通信模块初次上电后与第二通信终端在完成波特率协商后的初次通信。
本实施方式中,连接状态检测是在通信模块初次上电与第二通信终端完成协商后的工作过程中进行的,且通信模块未发生重启。
具体地,当通信模块初次上电时,通信模块可以基于预设波特率集合与第二通信终端进行波特率协商,以得到第二通信终端对应的波特率配置数据。在完成协商后,通信模块可以使用协商成功的多个可配置波特率中最大的波特率作为成功通信波特率,以使用该成功通信波特率与第二通信终端进行初次通信,使得通信模块与第二通信终端首次建立通信连接后优先使用更高的波特率进行通信,提高通信效率。该成功通信波特率被记录在波特率配置数据中,在通信模块的工作过程中,通信模块可以启动心跳检测机制,以将该成功通信波特率作为第一波特率,基于第一波特率对第二通信终端进行连接状态检测。
示例性地,通信模块为STA模块,通信终端为电表。假设预设波特率集合为{9600bps,2400bps,4800bps,1200bps,19200bps,115200bps,14400bps,28800bps,33600bps,38400bps,57600bps,230400bps,460800bps}。STA模块插入电表初次上电后,按照顺序遍历预设波特率集合中的多个预设波特率,以按照顺序将对应的预设波特率作为指定波特率,用于发送通配地址请求,以实现顺序轮询电表地址,直至在某个波特率下接收到电表应答正确的电表地址(即,STA接收到电表针对通配地址请求发送的请求应答,并能够解析得到电表的通信地址),则STA模块以该波特率启动波特率协商过程。按照从低到高的顺序进行协商。
假设STA模块在波特率9600bps下接收到电表应答正确的电表地址,则可以将接收到电表的请求应答的波特率称为电表应答波特率。STA模块以电表应答波特率9600bps发送波特率协商帧,协商请求更高的波特率14400bps。若接收到协商成功的应答,STA模块更新并记录电表可配置的波特率,继续切换至协商成功的14400bps进行通信,以根据14400bps发送波特率协商帧,协商更高的波特率19200bps。若接收到协商成功的应答,STA模块更新并记录电表可配置的波特率,继续切换至协商成功的19200bps进行通信,以根据19200bps发送波特率协商帧,协商更高的波特率28800bps。
若超时未接收到协商成功的应答,或者,应答失败(即,接收到的协商应答表明电表不同意协商至28800bps),则STA模块停止协商,更新并记录电表可配置的波特率,包括9600bps、14400bps、19200bps。STA模块将多个可配置波特率中的最大的波特率19200bps作为成功通信波特率,以使STA模块和电表首次建立串口通信连接后使用19200bps进行通信。
可以理解的是,19200bps是STA模块与电表当前协商成功的波特率,或者,当前成功通信的波特率,因此,成功通信波特率也可以称为当前协商成功波特率,或者,当前成功通信波特率。
需要说明的是,在本说明书中,通信模块按照顺序遍历预设波特率集合中的多个预设波特率,以按照顺序将对应的预设波特率作为指定波特率发送通配地址请求的过程,可以称为初次搜表的过程。通信模块基于预设波特率集合与通信终端进行协商得到波特率配置数据的过程,可以称为初次搜表、波特率协商双流程。
本实施方式中,若通信模块初次上电后未发生重启,则通过连接状态检测,可以仅确定是否调整第一波特率。
非易失性存储空间可以是flash等存储空间中的任一种,本说明书中不作具体限定。
在一些实施方式中,波特率配置数据是在通信模块重启之前存储在通信模块的非易失性存储空间中的。
其中,通信模块重启可以包括断电重启、复位重启、插拔重启中的任一种。本实施方式中,连接状态检测是在通信模块重启后进行的。
具体地,在通信模块重启之前,通信模块被配置在第二通信终端上,则通信模块将与第二通信终端进行协商得到的波特率配置数据存储在非易失性存储空间中。
在通信模块重启后,将配置有该通信模块的通信终端记为第一通信终端。通信模块获取内部存储的波特率配置数据,以基于波特率配置数据进行连接状态检测,确定第一通信终端的通信相关信息是否与第二通信终端的通信相关信息不同,从而确定是否调整第一波特率和/或波特率配置数据。
在一些实施方式中,波特率配置数据中包括历史成功波特率;在通信模块重启之前,通信模块与第二通信终端在历史成功波特率下正常通信;第一波特率为历史成功波特率。基于多个可配置波特率中的第一波特率对第二通信终端的通信地址进行连接状态检测,得到连接状态检测结果,可以包括:根据历史成功波特率向通信地址发送通信请求,得到通信请求应答结果;其中,连接状态检测结果包括通信请求应答结果。
相应地,参考图6所示,根据可配置波特率个数和连接状态检测结果确定是否切换至多个可配置波特率中第二波特率进行连接状态检测,以确定是否调整第一波特率和/或波特率配置数据,可以包括以下步骤。
S610、若通信请求应答结果表明通信模块与通信地址在历史成功波特率下不能建立通信连接,且已请求波特率个数小于可配置波特率个数,在多个可配置波特率中除历史成功波特率以外的波特率中确定第二波特率;其中,已请求波特率个数是多个可配置波特率中已用于发送通信请求的波特率的数量。
S620、根据第二波特率向通信地址发送通信请求。
S630、若在第二波特率下接收到第二通信终端发送的通信请求应答,调整历史成功波特率为第二波特率。
其中,历史成功波特率也可以称为历史成功通信波特率。
通信请求用于表明通信模块请求与通信地址对应的第二通信终端建立通信连接。通信请求应答结果可以包括通信请求应答成功和通信请求应答失败,若通信请求应答成功,则通信模块与第二通信终端能够成功通信;若通信请求应答失败,则通信模块与第二通信终端不能成功通信。
通信请求应答是通信终端在接收到通信请求的情况下,针对通信请求生成的响应信息。
通信模块重启后,已请求波特率个数被初始化为0。
具体地,波特率配置数据中记录有通信模块在重启前与第二通信终端之间成功通信的波特率,记为历史成功波特率。在通信模块重启后,将该历史成功波特率作为第一波特率,使通信模块根据该历史成功波特率以及波特率配置数据中的通信地址尝试进行通信,即,使通信模块根据该历史成功波特率向该通信地址发送通信请求,得到通信请求应答结果,以实现对第二通信终端的通信地址进行连接状态检测。
若通信模块在该历史成功波特率下超时未接收到第二通信终端针对通信请求发送的通信请求应答(或者,超时未接收到由第二通信终端的通信地址发回的通信请求应答),则通信请求应答结果为通信请求应答失败,表明通信模块与该通信地址(即第二通信终端)在历史成功波特率下不能成功建立通信连接。进一步可以判断多个可配置波特率中已用于发送通信请求的波特率的已请求波特率个数是否小于可配置波特率个数,若已请求波特率个数小于可配置波特率个数,表明多个可配置波特率中存在尚未用于发送通信请求以尝试建立通信连接的波特率,则通信模块可以在多个可配置波特率中除历史成功波特率以外的波特率中确定第二波特率。
通信模块以第二波特率向该通信地址发送通信请求。若在第二波特率下接收到第二通信终端发送的通信请求应答,认为通信模块与第二通信终端当前可以使用第二波特率进行通信,则通信模块可以将历史成功波特率调整为第二波特率,并可以将波特率配置数据中的历史成功波特率的数值更新为第二波特率的数值。
示例性地,通信模块为STA模块,通信终端为电表。假设历史成功波特率为19200bps,多个可配置波特率包括9600bps、14400bps、19200bps。在STA模块重启后,将该历史成功波特率19200bps作为第一波特率,以根据19200bps向波特率配置数据中的电表地址发送通信请求。
若STA模块在波特率19200bps下超时未接收到电表发送的通信请求应答,表明STA模块与该电表地址对应的电表在波特率19200bps下不能成功通信。此时,已请求波特率个数为1,小于可配置波特率个数,则STA模块可以在多个可配置波特率中除历史成功波特率以外的波特率中确定第二波特率。
假设按照从高到低的顺序选择波特率14400bps作为第二波特率,STA模块以14400bps向该电表地址发送通信请求。若在波特率14400bps下接收到电表发送的通信请求应答,则STA模块可以将历史成功波特率19200bps调整为第二波特率14400bps,并可以将波特率配置数据中的历史成功波特率的数值更新为第二波特率的数值。
可以理解的是,在调整历史成功波特率为第二波特率后,通信模块可以继续沿用第二通信终端对应的波特率配置数据,即,可以继续沿用第二通信终端对应的多个可配置波特率等数据,以用于进行后续通信过程中的心跳检测等。
需要说明的是,发送通信请求可以是发送通信连接请求、发送测试数据包、发送抄表帧等方式中的任一种,本说明书中不作具体限定。
上述实施方式中,在通信模块发生断电重启、复位重启、插拔重启中的任一种情况后,通过读取非易失性存储空间中存储的波特率配置数据,以波特率配置数据中的通信地址及波特率尝试进行通信,可以缩短异常场景下的波特率探测、重新建立串口通信的时长,提高通信网络的稳定性。
同时,波特率配置数据中的多个可配置波特率可以是理解为是通信模块与重启前连接的通信终端之间历史协商成功的多个波特率。通信模块通过读取非易失性存储空间中存储的波特率配置数据,以根据历史协商成功的多个波特率来尝试与该通信终端进行通信。与相关技术中仅根据历史协商成功的一个波特率尝试重新建立通信的方式相比,针对支持多种波特率的通信终端,本说明书提供的波特率动态调整方法可以有效提高通信模块与通信终端重新建立串口通信的效率。
在一些实施方式中,参考图7所示,基于通信终端连接状态检测的波特率动态调整方法还可以包括以下步骤。
S710、若在第二波特率下未接收到第二通信终端发送的通信请求应答,且已请求波特率个数等于可配置波特率个数,基于预设波特率集合与第一通信终端进行协商,得到协商结果。
S720、根据协商结果调整波特率配置数据,或者,根据协商结果调整波特率配置数据和第一波特率。
其中,协商结果可以包括第一通信终端的通信地址、可配置波特率以及可配置波特率的个数等。
具体地,通信模块以第二波特率向该通信地址发送通信请求,若在第二波特率下未接收到第二通信终端发送的通信请求应答,且已请求波特率个数等于可配置波特率个数,表明多个可配置波特率均已被用于发送通信请求,通信模块未在多个可配置波特率中找到能够用于与波特率配置数据中的通信地址对应的第二通信终端成功通信的波特率。
此时,通信模块重启后连接的第一通信终端可能与重启前连接的第二通信终端不同,因此,通信模块可以按照前述协商得到波特率配置数据的方式,基于预设波特率集合与第一通信终端进行波特率协商,得到协商结果。通信模块根据协商结果对内部存储的波特率配置数据进行更新和调整,或者,根据协商结果对波特率配置数据和第一波特率(即对应前述历史成功波特率)进行更新和调整。
示例性地,通信模块为STA模块,第一通信终端记为电表1,第二通信终端记为电表2。假设STA模块内部存储的波特率配置数据中历史成功波特率为19200bps,电表地址为电表地址2,多个可配置波特率包括9600bps、14400bps、19200bps。在STA模块重启后,将该历史成功波特率19200bps作为第一波特率,以根据19200bps向电表地址2发送通信请求。
若STA模块在波特率19200bps下超时未接收到电表2发送的通信请求应答,则通信失败,此时已请求波特率个数为1,小于可配置波特率个数。假设STA模块按照从高到低的顺序选择波特率14400bps作为第二波特率,向电表地址2发送通信请求。若在波特率14400bps下超时未接收到电表2发送的通信请求应答,则通信失败,此时已请求波特率个数为2,小于可配置波特率个数。STA模块可以继续选择波特率9600bps作为第二波特率,向电表地址2发送通信请求。
若STA模块在波特率9600bps下超时仍未接收到电表2发送的通信请求应答,则通信失败,此时,已请求波特率个数为3,等于可配置波特率个数,STA模块基于预设波特率集合与电表1进行协商,得到电表1对应的波特率配置数据,以利用电表1对应的波特率配置数据对内部存储的电表2对应的波特率配置数据进行更新和调整,或者,对电表2对应的波特率配置数据以及第一波特率进行更新和调整。
关于上述实施方式中基于预设波特率集合与第一通信终端进行协商的描述,请参考本说明书中关于基于预设波特率集合与第二通信终端进行协商的描述,这里不再赘述。
在一些实施方式中,第一波特率是在连接状态检测之前通信模块与第二通信终端正常通信时的波特率。参考图8所示,基于通信终端连接状态检测的波特率动态调整方法还可以包括以下步骤。
S810、若确定调整第一波特率,基于调整后波特率、通信地址和第一通信耗时数据生成第一信息帧;其中,调整后波特率是对第一波特率进行调整后得到的;第一通信耗时数据是根据通信模块与第二通信终端在调整后波特率下的通信时延确定的。
S820、将第一信息帧发送至集中器通信单元;其中,集中器通信单元存储有通信地址,以及通信地址对应的第一波特率和第二通信耗时数据;第二通信耗时数据是根据通信模块与第二通信终端在第一波特率下的通信时延确定的;第一信息帧用于指示集中器通信单元在根据通信地址确定调整后波特率与第一波特率不同的情况下,基于第一波特率、调整后波特率、通信地址和第一通信耗时数据生成异常告警信息,以将异常告警信息发送至集中器。
其中,集中器通信单元是集中器所配置的本地通信单元,也可以称为中央协调器CCO。
通信耗时数据为串口通信时延。异常告警信息可以用于指示集中器在第二通信终端使用的波特率等发生了改变的情况下,根据异常告警信息中的相关信息进行业务优化或调整等。
具体地,在进行连接状态检测之前,通信模块和第二通信终端之间具有能够正常通信的波特率,将这个波特率作为第一波特率。其中,通信模块和第二通信终端使用第一波特率通信时,通信模块可以得到在第一波特率下的通信时延,作为第二通信耗时数据。可以理解的是,在调整第一波特率之前,通信模块事先可以已经将包含有第二通信终端的通信地址,以及该通信地址对应的第一波特率和第二通信耗时数据的信息帧上报给集中器通信单元,使集中器通信单元将第二通信终端的通信相关信息进行存储。
若在连接状态检测之后,通信模块确定调整第一波特率,则对第一波特率进行调整以得到调整后波特率。通信模块根据在调整后波特率下与第二通信终端通信时的通信时延,可以得到第一通信耗时数据。通信模块基于调整后波特率、波特率配置数据中的通信地址,以及第一通信耗时数据,生成第一信息帧,并将第一信息帧发送给集中器通信单元。
集中器通信单元在接收到第一信息帧后,可以根据第一信息帧中的通信地址确定通信模块当前上报的是第二通信终端对应的调整后波特率和第一通信耗时数据。第一信息帧可以用于指示集中器通信单元在第二通信终端当前对应的调整后波特率与第一波特率不同的情况下,基于第一波特率、调整后波特率、第二通信终端的通信地址和第一通信耗时数据生成异常告警信息,以将异常告警信息发送至集中器,便于集中器评估业务的动态耗时。
可以理解的是,调整后波特率即通信模块与第二通信终端使用的当前通信波特率。
示例性地,通信模块为STA模块,第二通信终端为电表2,集中器通信单元为CCO。STA模块向CCO上报的信息帧可以采用如下表1所示的格式:
其中,U8表示无符号字符数据类型;BCD即Binary-Coded Decimal,表示二进码十进数。需要说明的是,本说明书中,STA模块向CCO上报的信息帧也可以称为波特率事件报文。
若确定调整第一波特率,则在调整第一波特率之前,STA模块已经向CCO上报的信息帧中的当前通信波特率为第一波特率,串口通信时延是在第一波特率下的第二通信耗时数据;在调整第一波特率之后,STA模块向CCO上报的信息帧中的当前通信波特率为调整后波特率,串口通信时延是在调整后波特率下的第一通信耗时数据。
CCO接收到STA模块上报的信息帧后,可以根据信息帧中的电表地址确定STA模块上报的是电表2的当前波特率信息(包括当前通信波特率和串口通信时延)。CCO在确定电表2的通信波特率发生变化,或者,确定电表的通信波特率和串口通信时延发生变化的情况下,即,CCO根据内部存储的电表2的第一波特率确定电表2当前使用的调整后波特率与第一波特率不同,或者,CCO根据内部存储的电表2的第一波特率和第二通信耗时数据,确定电表2当前使用的调整后波特率与第一波特率不同,且第一通信耗时数据和第二通信耗时数据不同的情况下,CCO根据第一波特率、调整后波特率、电表地址和第一通信耗时数据生成异常告警信息,上报给集中器。异常告警信息可以采用如下表2所示的格式:
其中,原通信波特率即第一波特率,当前通信波特率即调整后波特率,串口通信时延即第一通信耗时数据。
在一些可实现的方式中,CCO根据STA模块上报的信息帧中的串口通信时延可以计算CCO与电表2之间的通信耗时(CCO是集中器本地通信单元,因此也可以理解为是集中器与电表2之间的通信耗时),因此,CCO也可以在需要上报给集中器的信息中加入该通信耗时。
进一步地,波特率配置数据中也可以记录有STA模块与电表2通信时使用的通信波特率和在通信波特率下的串口通信时延。波特率配置数据也可以称为波特率配置表,被存储在STA模块的flash中。波特率配置表可以采用如下表3所示的格式:
其中,U32表示32位无符号长整型。数据长度为波特率配置表的数据长度;CRC(Cyclic Redundancy Check,循环冗余校验码)是根据表数据长度生成的CRC校验码。在STA模块需要从flash中读取波特率配置表、将flash中的波特率配置表加载到本地、对flash中的波特率配置表进行更新等任一种情况下,STA模块需要先根据波特率配置表中的CRC校验码对波特率配置表进行校验。
可以理解的是,前述实施方式中,在进行连接状态检测之前通信模块与第二通信终端用于正常通信的当前成功通信波特率、在通信模块初次上电后协商成功的用于与第二通信终端进行初次通信的成功通信波特率、在通信模块重启之前用于与第二通信终端正常通信的历史成功波特率中的任一个,即为上述表3中的当前成功通信波特率。
若确定调整第一波特率,则在调整第一波特率之前,波特率配置表中的串口通信时延为第二通信耗时数据,当前成功通信波特率为第一波特率;在调整第一波特率后,波特率配置表中的串口通信时延可以被更新为第一通信耗时数据,当前成功通信波特率被更新为调整后波特率。可以理解的是,当STA模块对波特率配置表进行更新时,CRC校验码也会被更新。
再进一步地,若STA模块初次上电,STA模块与电表2进行波特率协商得到波特率配置表后,表中记录的首个当前成功通信波特率可以是STA模块与电表2协商成功的最大波特率,即多个可配置波特率中的最大波特率,串口通信时延可以是STA模块与电表2首次通信成功时所使用的波特率下的通信时延。STA模块根据首个当前成功通信波特率、电表2的电表地址,以及串口通信时延生成信息帧,并上报给CCO,以此实现通信模块的波特率即采即报机制。
STA模块初次上电后,采用预设波特率集合中的多种预设波特率顺序轮询电表地址(即本说明书中顺序遍历预设波特率集合中的多个预设波特率并发送通配地址请求的过程)时,在这个过程中STA模块可以采用默认的最大等待时间等待电表的应答。在STA模块在某个波特率(比如,9600bps)下接收到电表2应答正确的电表地址后,该波特率即为STA模块与电表2首次通信成功时所使用的波特率。STA模块可以得到在该波特率下与电表通信的串口通信时延,并将其记录在波特率配置表中。在后续使用该波特率启动波特率协商的过程中,通信模块可以采用波特率配置表中的串口通信时延等待电表的协商应答帧。由此,可以进一步减少通信模块与通信终端之间波特率协商的时长,以提高协商的效率。
可以理解的是,在STA模块与电表2进行数据交互、STA模块对电表2进行连接状态检测(包括心跳检测,以及STA模块重启后的通信连接尝试)等过程中,STA模块均可以采用波特率配置表中的串口通信时延作为等待电表应答的等待时间。由此,可以有效提高通信效率,且由于波特率配置表中的串口通信时延可以根据实际通信状态进行动态更新,并可以通过波特率即采即报机制与通信波特率一起被及时上报给集中器,因此,相比于相关技术中集中器采用固定通信耗时的业务处理方式,本说明书提供的波特率动态调整方法可以实现集中器对通信网络中业务耗时的动态评估和调整,有效提高业务数据的处理能力。
在一些实施方式中,第一波特率是在连接状态检测之前通信模块与第二通信终端正常通信时的波特率。参考图9a所示,基于通信终端连接状态检测的波特率动态调整方法还可以包括以下步骤。
S910、若确定调整波特率配置数据,或者,若确定调整第一波特率和波特率配置数据,基于调整后波特率、调整后通信地址和第三通信耗时数据生成第二信息帧;其中,调整后波特率是对波特率配置数据进行调整后得到的,或者,是对第一波特率进行调整后得到的;调整后通信地址是对波特率配置数据进行调整后得到的;第三通信耗时数据是通信模块与调整后通信地址在调整后波特率下的通信时延确定的。
S920、将第二信息帧发送至集中器通信单元;其中,第二信息帧用于指示集中器通信单元在确定集中器通信单元中不存储有调整后通信地址对应的通信波特率和通信耗时数据的情况下,基于调整后波特率、调整后通信地址和第三通信耗时数据生成波特率上报信息,以将波特率上报信息发送至集中器。
可以理解的是,由前述实施方式中关于根据协商结果调整波特率配置数据,或者,根据协商结果调整波特率配置数据和第一波特率的描述可知,调整后通信地址即第一通信终端的通信地址。
具体地,若通信模块确定调整波特率配置数据,或者,若通信模块确定调整波特率配置数据和第一波特率,则对波特率配置数据进行调整可以得到调整后波特率和调整后通信地址,其中,调整后波特率也可以是对第一波特率调整后得到的。
通信模块根据在调整后波特率下与调整后通信地址对应的第一通信终端通信时的通信时延,可以得到第三通信耗时数据。通信模块基于调整后波特率、调整后通信地址,以及第三通信耗时数据,生成第二信息帧,并将第二信息帧发送给集中器通信单元。
集中器通信单元在接收到第二信息帧后,可以将第二信息帧中的调整后通信地址以及波特率信息与集中器通信单元本地存储的通信地址以及对应的波特率信息进行比较,以确定集中器通信单元本地是否已存储有该调整后通信地址对应的原有通信波特率和通信耗时数据,即,确定是否有STA模块在此前已上报过该通信地址对应的通信波特率和通信耗时数据。第二信息帧可以用于指示集中器通信单元在确定集中器通信单元中不存储有与该调整后通信地址对应的通信波特率和通信耗时数据的情况下,基于调整后波特率、调整后通信地址和第三通信耗时数据生成波特率上报信息,以将波特率上报信息发送给集中器。
若确定集中器通信单元中存储有与该调整后通信地址对应的通信波特率和通信耗时数据,则集中器通信单元可以将第二信息帧中的波特率信息与集中器通信单元本地存储的该通信地址对应的波特率信息进行对比。第二信息帧还可以用于指示集中器通信单元在该调整后通信地址对应的通信波特率、串口通信时延等发生了变化的情况下,按照前述方式生成异常告警信息,并将异常告警信息发送给集中器。以此,集中器通信单元可以对接收到的波特率事件进行判断,若判断是首次上报则将相关通信耗时和波特率告知集中器,若判断不是首次上报,且相关波特率发生了变更,则上报异常告警事件至集中器。
示例性地,通信模块为STA模块,第二通信终端为电表2,第一通信终端为电表1,集中器通信单元为CCO。电表2的通信地址记为电表地址2,电表1的通信地址记为电表地址1。其中,电表1与电表2可能相同或不同,因此电表地址1和电表地址2可能相同或不同。
STA模块根据与电表1进行波特率协商得到的协商结果对波特率配置数据进行调整,或者,对波特率配置数据和第一波特率进行调整,并可以得到调整后波特率、调整后通信地址和第三通信耗时数据。继续参考表3所示,对波特率配置表进行调整后,表中的电表地址为调整后通信地址,即电表地址1。当前成功通信波特率为调整后波特率,串口通信时延为第三通信耗时数据。波特率1至波特率N为STA模块与电表1进行波特率协商得到的多个可配置波特率。
STA模块按照如表1所示的格式生成第二信息帧并发送给CCO。其中,当前通信波特率为调整后波特率,电表地址为电表地址1,串口通信时延为第三通信耗时数据。
CCO在接收到第二信息帧后,可以将第二信息帧中与电表地址1对应的波特率信息与CCO本地存储的各通信地址对应的波特率信息进行比较,以确定CCO本地是否已存储有电表地址1对应的原有通信波特率和通信耗时数据。CCO在确定本地不存储有与电表地址1对应的原有通信波特率和通信耗时数据的情况下,保存第二信息帧中的信息,并基于调整后波特率、电表地址1和第三通信耗时数据生成波特率上报信息,以将波特率上报信息发送给集中器。波特率上报信息的格式可以与表1所示的信息帧格式相同。
可以理解的是,调整后波特率可能与第一波特率相同或不同,调整后通信地址也可能和第二通信终端的通信地址相同或不同。
在一些实施例中,本说明书提供的波特率动态调整方法可以应用于波特率动态调节及感知系统中,波特率动态调节及感知系统可以包括通信模块和集中器通信单元。其中,参考图9b所示,通信模块可以包括上电探测模块、协商模块、心跳检测模块、通信状态信息上报模块、通信信息存储模块这5个功能模块。参考图9c所示,集中器通信单元可以包括通信状态信息接收模块、异常告警模块、通信耗时上报模块这3个功能模块。
示例性地,通信模块为STA模块,通信终端为电表,集中器通信单元为CCO。参考图9d所示,应用于波特率动态调节及感知系统的波特率动态调整方法的主要流程可以包括:
(1)判断STA模块是否首次上电,若否,进入步骤(2);若是,进入步骤(4)。
(2)获取flash中存储的波特率配置表,读取波特率配置表中的波特率信息记录,以根据波特率配置表中波特率向表中的电表地址发送抄表帧(或者,通信请求)。
(3)判断是否接收到电表正确应答,若是,进入步骤(8);若否,进入步骤(4)。
(4)STA模块启动波特率探测。具体地,STA模块的上电探测模块采用预设波特率集合中的多种波特率来顺序轮询电表地址,即根据预设波特率集合中多个预设波特率的排序关系在多个预设波特率中确定指定波特率,根据指定波特率发送第一通配地址请求,以进行初次搜表。
(5)判断在指定波特率下是否接收到电表应答正确的电表地址,若否,切换下一个波特率进行波特率探测。若是,则停止波特率探测,将指定波特率作为电表应答波特率,并确定待协商波特率。STA模块的协商模块在该电表应答波特率下启动波特率协商,以该波特率发送波特率协商帧,请求协商至更高的波特率,并进入步骤(6)。
(6)判断在电表应答波特率下是否接收到波特率协商应答帧,若否,进入步骤(7);若是,则判断波特率协商是否结束后,即,判断待协商波特率是否均已协商完成。若判断波特率协商未结束,切换至协商成功的波特率继续进行波特率协商,以协商成功的波特率发送波特率协商帧。若判断波特率协商已结束,进入步骤(7)。
(7)STA模块的通信信息存储模块以初次搜表、波特率协商双流程更新并记录协商成功的波特率,并结合电表地址信息,形成波特率配置表,以将电表的波特率相关信息存储至STA模块的flash中。
(8)STA模块的通信状态信息上报模块启动波特率即采即报机制,上报与电表通信的当前波特率事件信息至CCO,包括当前通信波特率、电表地址和串口通信时延等。
(9)STA模块的心跳检测模块启动心跳检测机制,心跳检测周期T为5min。具体地,心跳检测模块以当前通信波特率发送心跳检测帧,在心跳检测周期内判断是否接收到电表的应答,或者判断是否接收到电表发送的抄表报文(即判断主站是否抄读电表成功),若接收到电表的应答或者接收到电表发送的抄表报文,则维持当前波特率,心跳检测重新计时,将最后1次成功通信时刻作为起始时间,启动新的心跳检测周期,以开启新的心跳检测。若否,进入步骤(10)。
(10)判断心跳检测周期是否超时,若未超时,则继续步骤(9)中判断是否接收到电表应答或者电表发送的抄表报文的步骤。若超时,则进入预设窗口,切换至波特率配置表中的下一个波特率发送通配地址请求,并进入步骤(11)。
(11)判断是否在该下一个波特率下接收到正确的电表地址应答,若是,STA模块更新波特率配置表中的当前成功通信波特率,STA模块的通信状态信息上报模块上报新的波特率信息至CCO,及时告知CCO发生了波特率变更。若否,进入步骤(12)。
(12)判断当前预设窗口或者当前检测周期(包括心跳检测周期和预设窗口)内切换使用的波特率的个数是否达到阈值,若是,进入新的心跳检测周期,启动新的心跳检测;若否,继续切换其他波特率进行波特率探测,以使用发送通配地址请求,并继续步骤(11)中判断是否在该波特率下接收到正确的电表地址应答的步骤,进行通配地址搜表。
通过上述流程,STA模块采用初始遍历(初始搜表)、从低到高的波特率协商、运行过程中心跳检测机制、掉电存储运行信息、重启或插拔后利用历史记录(flash中存储的波特率配置表中记录的电表地址和波特率)请求通信等方式,实现波特率动态调节及感知,可以降低STA模块与电表首次建立串口通信时的波特率探测时长,即降低STA模块与电表首次建立串口通信的时长,并可以降低在异常场景下波特率探测和重新建立串口通信的时长。
进一步地,参考图9e所示,CCO进行波特率动态感知的主要流程可以包括:
(1)CCO的通信状态信息接收模块接收到STA模块上报的波特率事件报文,即,接收到STA模块根据当前通信波特率、电表地址和串口通信时延生成并上报的信息帧。根据波特率事件报文判断是否是首次接收到该电表地址的波特率信息,若是,进入步骤(2),若否,进入步骤(3)。
(2)保存波特率事件报文中的波特率信息,并更新CCO本地的波特率信息,进入步骤(4)。
(3)与CCO本地存储的波特率信息进行对比,判断该电表地址对应的波特率信息是否发生变化,若该电表地址对应的波特率、串口通信延时等发生了变化,计算通信耗时,由CCO的异常告警功能模块生成异常告警信息,上报给集中器,并结束流程。若未发生变化,则直接结束流程。
(4)CCO的通信耗时上报模块上报波特率信息至集中器,包括电表地址,以及电表地址对应的当前通信波特率和通信耗时信息等,结束流程。
通过上述流程,STA模块通过波特率即采即报机制,将其与电表通信的当前波特率信息上报至CCO。CCO判断是否首次接收到该波特率事件,即,判断是否首次接收到该波特率事件中的电表地址对应的波特率信息。若CCO判断是首次接收到该波特率事件,则上报通信耗时等信息至集中器;若CCO判断不是首次接收到该波特率事件,且电表地址对应的波特率发生了变化,则上报异常告警信息至集中器。由此,CCO可以根据STA模块上报的信息确定电表的通信情况和波特率变化情况,以确定上报通信信息或异常信息至集中器,并通过当前通信波特率、串口通信延时将串口通信整体耗时告知集中器,可以便于集中器动态评估和调整业务耗时。
本说明书实施方式提供一种基于通信终端连接状态检测的波特率动态调整装置,应用于第一通信终端所配置的通信模块。参考图10所示,波特率动态调整装置1000可以包括:配置数据获取模块1010、连接状态检测模块1020、数据调整确定模块1030。
配置数据获取模块1010,用于获取通信模块中存储的波特率配置数据;其中,波特率配置数据是通信模块基于预设波特率集合与第二通信终端进行协商得到的,波特率配置数据中包括第二通信终端的通信地址、第二通信终端支持的多个可配置波特率,以及可配置波特率个数;第一通信终端与第二通信终端相同或者不同。
连接状态检测模块1020,用于基于多个可配置波特率中的第一波特率对第二通信终端的通信地址进行连接状态检测,得到连接状态检测结果。
数据调整确定模块1030,用于根据可配置波特率个数和连接状态检测结果确定是否切换至多个可配置波特率中第二波特率进行连接状态检测,以确定是否调整第一波特率和/或波特率配置数据。
在一些实施方式中,预设波特率集合中包括按照使用频次排序的多个预设波特率;波特率动态调整装置1000还可以包括:第一波特率确定模块、请求发送模块、第二波特率确定模块。
第一波特率确定模块,用于根据多个预设波特率的排序关系在多个预设波特率中确定指定波特率。
请求发送模块,用于根据指定波特率发送第一通配地址请求。
第二波特率确定模块,用于若在指定波特率下接收到第二通信终端针对第一通配地址请求发送的第一请求应答,在多个预设波特率中确定待协商波特率;其中,待协商波特率是多个预设波特率中大于指定波特率的波特率。
波特率协商模块,用于基于指定波特率和待协商波特率与第二通信终端进行协商,得到波特率配置数据。
在一些实施方式中,波特率配置数据中包括当前通信波特率;在进行连接状态检测之前,通信模块与第二通信终端在当前通信波特率下正常通信;第一波特率为当前通信波特率。连接状态检测模块1020,还用于在当前预设心跳周期内根据当前通信波特率对通信地址进行心跳检测,得到心跳检测结果;其中,连接状态检测结果包括心跳检测结果。
在一些实施方式中,数据调整确定模块1030,还用于若心跳检测结果表明在当前预设心跳周期内通信模块与通信地址在当前通信波特率下不能正常通信,根据可配置波特率个数确定在预设窗口内用于进行连接状态检测的波特率数量阈值;其中,预设窗口是相邻两个预设心跳周期之间的时间窗口;若在预设窗口内的已检测波特率个数小于波特率数量阈值,在多个可配置波特率中除当前通信波特率以外的波特率中确定第二波特率;其中,已检测波特率个数是在预设窗口内已用于进行连接状态检测的波特率的个数;根据第二波特率发送第二通配地址请求;若在第二波特率下接收到第二通信终端针对第二通配地址请求发送的第二请求应答,确定调整当前通信波特率为第二波特率。
在一些实施方式中,波特率配置数据是在通信模块重启之前存储在通信模块的非易失性存储空间中的;波特率配置数据中包括历史成功波特率;在通信模块重启之前,通信模块与第二通信终端在历史成功波特率下正常通信;第一波特率为历史成功波特率。
连接状态检测模块1020,还用于根据历史成功波特率向通信地址发送通信请求,得到通信请求应答结果;其中,连接状态检测结果包括通信请求应答结果。
数据调整确定模块1030,还用于若通信请求应答结果表明通信模块与通信地址在历史成功波特率下不能建立通信连接,且已请求波特率个数小于可配置波特率个数,在多个可配置波特率中除历史成功波特率以外的波特率中确定第二波特率;其中,已请求波特率个数是多个可配置波特率中已用于发送通信请求的波特率的数量;根据第二波特率向通信地址发送通信请求;若在第二波特率下接收到第二通信终端发送的通信请求应答,调整历史成功波特率为第二波特率。
在一些实施方式中,数据调整确定模块1030,还用于若在第二波特率下未接收到第二通信终端发送的通信请求应答,且已请求波特率个数等于可配置波特率个数,基于预设波特率集合与第一通信终端进行协商,得到协商结果;根据协商结果调整波特率配置数据,或者,根据协商结果调整波特率配置数据和第一波特率。
关于基于通信终端连接状态检测的波特率动态调整装置的具体限定可以参见上文中对于基于通信终端连接状态检测的波特率动态调整方法的限定,在此不再赘述。上述波特率动态调整装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
本说明书实施方式还提供一种计算机设备,参考图11所示,计算机设备1100可以包括存储器1110、处理器1120及存储在存储器1110上并可在处理器1120上运行的第一计算机程序1130,处理器1120执行第一计算机程序1130时,实现前述任一项实施方式中的基于通信终端连接状态检测的波特率动态调整方法。
本说明书实施方式还提供一种芯片,参考图12所示,芯片1200可以包括存储单元1210、处理单元1220及存储在存储单元1210上并可在处理单元1220上运行的第二计算机程序1230,处理单元1220执行第二计算机程序1230时,实现前述任一项实施方式中的基于通信终端连接状态检测的波特率动态调整方法。
本说明书实施方式还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现前述任一项实施方式中的基于通信终端连接状态检测的波特率动态调整方法。
需要说明的是,在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (22)
1.一种基于通信终端连接状态检测的波特率动态调整方法,其特征在于,应用于第一通信终端所配置的通信模块;所述方法包括:
获取所述通信模块中存储的波特率配置数据;其中,所述波特率配置数据是所述通信模块基于预设波特率集合与第二通信终端进行协商得到的,所述波特率配置数据中包括所述第二通信终端的通信地址、所述第二通信终端支持的多个可配置波特率,以及可配置波特率个数;所述第一通信终端与所述第二通信终端相同或者不同;
基于所述多个可配置波特率中的第一波特率对所述第二通信终端的通信地址进行连接状态检测,得到连接状态检测结果;
根据所述可配置波特率个数和所述连接状态检测结果确定是否切换至所述多个可配置波特率中第二波特率进行连接状态检测,以确定是否调整所述第一波特率和/或所述波特率配置数据。
2.根据权利要求1所述的方法,其特征在于,所述预设波特率集合中包括按照使用频次排序的多个预设波特率;通过以下方式协商得到所述波特率配置数据:
根据所述多个预设波特率的排序关系在所述多个预设波特率中确定指定波特率;
根据所述指定波特率发送第一通配地址请求;
若在所述指定波特率下接收到所述第二通信终端针对所述第一通配地址请求发送的第一请求应答,在所述多个预设波特率中确定待协商波特率;其中,所述待协商波特率是所述多个预设波特率中大于所述指定波特率的波特率;
基于所述指定波特率和所述待协商波特率与所述第二通信终端进行协商,得到所述波特率配置数据。
3.根据权利要求2所述的方法,其特征在于,所述基于所述指定波特率和所述待协商波特率与所述第二通信终端进行协商,得到所述波特率配置数据,包括:
将所述指定波特率作为协商通信波特率,以及,将所述待协商波特率中最小的第一待协商波特率作为协商目标波特率;
根据所述指定波特率向所述第二通信终端发送波特率协商帧;其中,所述波特率协商帧用于表明所述通信模块请求使用所述第一待协商波特率与所述第二通信终端进行通信;
若在所述指定波特率下接收到所述第二通信终端针对所述波特率协商帧发送的协商应答帧,且所述协商应答帧用于表明所述第二通信终端同意使用所述第一待协商波特率进行通信,将所述指定波特率和所述第一待协商波特率加入可配置波特率集合;其中,所述可配置波特率集合被初始化为空集合;
将所述第一待协商波特率作为协商通信波特率,以及,将所述待协商波特率中除所述第一待协商波特率以外的最小的第二待协商波特率作为协商目标波特率,重复执行上述协商的步骤,直至在协商通信波特率下未接收到所述第二通信终端发送的协商应答帧,或者,接收到的协商应答帧用于表明所述第二通信终端不同意使用协商目标波特率进行通信;
根据所述第二通信终端的通信地址、可配置波特率集合中的多个可配置波特率,以及可配置波特率个数得到所述波特率配置数据。
4.根据权利要求2所述的方法,其特征在于,所述多个预设波特率包括若干第一类型波特率和若干第二类型波特率;所述第一类型波特率的使用频次大于所述第二类型波特率的使用频次。
5.根据权利要求1所述的方法,其特征在于,所述波特率配置数据中包括当前通信波特率;在进行连接状态检测之前,所述通信模块与所述第二通信终端在所述当前通信波特率下正常通信;所述第一波特率为所述当前通信波特率;所述基于所述多个可配置波特率中的第一波特率对所述第二通信终端的通信地址进行连接状态检测,得到连接状态检测结果,包括:
在当前预设心跳周期内根据所述当前通信波特率对所述通信地址进行心跳检测,得到心跳检测结果;其中,所述连接状态检测结果包括所述心跳检测结果。
6.根据权利要求5所述的方法,其特征在于,所述根据所述可配置波特率个数和所述连接状态检测结果确定是否切换至所述多个可配置波特率中第二波特率进行连接状态检测,以确定是否调整所述第一波特率和/或所述波特率配置数据,包括:
若所述心跳检测结果表明在所述当前预设心跳周期内所述通信模块与所述通信地址在所述当前通信波特率下不能正常通信,根据所述可配置波特率个数确定在预设窗口内用于进行连接状态检测的波特率数量阈值;其中,所述预设窗口是相邻两个预设心跳周期之间的时间窗口;
若在所述预设窗口内的已检测波特率个数小于所述波特率数量阈值,在所述多个可配置波特率中除所述当前通信波特率以外的波特率中确定所述第二波特率;其中,所述已检测波特率个数是在所述预设窗口内已用于进行连接状态检测的波特率的个数;
根据所述第二波特率发送第二通配地址请求;
若在所述第二波特率下接收到所述第二通信终端针对所述第二通配地址请求发送的第二请求应答,确定调整所述当前通信波特率为所述第二波特率。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
若所述已检测波特率个数等于所述波特率数量阈值,或者,若已检测波特率总数等于所述可配置波特率个数,确定不调整所述当前通信波特率,并进入下一预设心跳周期;其中,所述已检测波特率总数是根据所述第一波特率和多个所述预设窗口内的已检测波特率个数得到的;
在所述下一预设心跳周期内根据所述当前通信波特率对所述通信地址进行心跳检测,得到心跳检测结果;其中,若所述已检测波特率总数等于所述可配置波特率个数,将所述已检测波特率总数重置。
8.根据权利要求1所述的方法,其特征在于,所述波特率配置数据是在所述通信模块初次上电后与所述第二通信终端进行协商并存储在所述通信模块的非易失性存储空间中的;
所述波特率配置数据中包括在所述通信模块初次上电后协商成功的用于与所述第二通信终端进行初次通信的成功通信波特率;所述成功通信波特率是所述多个可配置波特率中的最大的波特率;
所述第一波特率为所述成功通信波特率。
9.根据权利要求1所述的方法,其特征在于,所述波特率配置数据是在所述通信模块重启之前存储在所述通信模块的非易失性存储空间中的。
10.根据权利要求9所述的方法,其特征在于,所述波特率配置数据中包括历史成功波特率;在所述通信模块重启之前,所述通信模块与所述第二通信终端在所述历史成功波特率下正常通信;所述第一波特率为所述历史成功波特率;所述基于所述多个可配置波特率中的第一波特率对所述第二通信终端的通信地址进行连接状态检测,得到连接状态检测结果,包括:
根据所述历史成功波特率向所述通信地址发送通信请求,得到通信请求应答结果;其中,所述连接状态检测结果包括所述通信请求应答结果;
所述根据所述可配置波特率个数和所述连接状态检测结果确定是否切换至所述多个可配置波特率中第二波特率进行连接状态检测,以确定是否调整所述第一波特率和/或所述波特率配置数据,包括:
若所述通信请求应答结果表明所述通信模块与所述通信地址在所述历史成功波特率下不能建立通信连接,且已请求波特率个数小于所述可配置波特率个数,在所述多个可配置波特率中除所述历史成功波特率以外的波特率中确定所述第二波特率;其中,所述已请求波特率个数是所述多个可配置波特率中已用于发送通信请求的波特率的数量;
根据所述第二波特率向所述通信地址发送通信请求;
若在所述第二波特率下接收到所述第二通信终端发送的通信请求应答,调整所述历史成功波特率为所述第二波特率。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
若在所述第二波特率下未接收到所述第二通信终端发送的通信请求应答,且所述已请求波特率个数等于所述可配置波特率个数,基于所述预设波特率集合与所述第一通信终端进行协商,得到协商结果;
根据所述协商结果调整所述波特率配置数据,或者,根据所述协商结果调整所述波特率配置数据和所述第一波特率。
12.根据权利要求1所述的方法,其特征在于,所述第一波特率是在连接状态检测之前所述通信模块与所述第二通信终端正常通信时的波特率;所述方法还包括:
若确定调整所述第一波特率,基于调整后波特率、所述通信地址和第一通信耗时数据生成第一信息帧;其中,所述调整后波特率是对所述第一波特率进行调整后得到的;所述第一通信耗时数据是根据所述通信模块与所述第二通信终端在所述调整后波特率下的通信时延确定的;
将所述第一信息帧发送至集中器通信单元;其中,所述集中器通信单元存储有所述通信地址,以及所述通信地址对应的所述第一波特率和第二通信耗时数据;所述第二通信耗时数据是根据所述通信模块与所述第二通信终端在所述第一波特率下的通信时延确定的;所述第一信息帧用于指示所述集中器通信单元在根据所述通信地址确定所述调整后波特率与所述第一波特率不同的情况下,基于所述第一波特率、所述调整后波特率、所述通信地址和所述第一通信耗时数据生成异常告警信息,以将所述异常告警信息发送至集中器。
13.根据权利要求1所述的方法,其特征在于,所述第一波特率是在连接状态检测之前所述通信模块与所述第二通信终端正常通信时的波特率;所述方法还包括:
若确定调整所述波特率配置数据,或者,若确定调整所述第一波特率和所述波特率配置数据,基于调整后波特率、调整后通信地址和第三通信耗时数据生成第二信息帧;其中,所述调整后波特率是对所述波特率配置数据进行调整后得到的,或者,是对所述第一波特率进行调整后得到的;所述调整后通信地址是对所述波特率配置数据进行调整后得到的;所述第三通信耗时数据是所述通信模块与所述调整后通信地址在所述调整后波特率下的通信时延确定的;
将所述第二信息帧发送至集中器通信单元;其中,所述第二信息帧用于指示所述集中器通信单元在确定所述集中器通信单元中不存储有所述调整后通信地址对应的通信波特率和通信耗时数据的情况下,基于所述调整后波特率、所述调整后通信地址和所述第三通信耗时数据生成波特率上报信息,以将所述波特率上报信息发送至集中器。
14.一种基于通信终端连接状态检测的波特率动态调整装置,其特征在于,应用于第一通信终端所配置的通信模块;所述装置包括:
配置数据获取模块,用于获取所述通信模块中存储的波特率配置数据;其中,所述波特率配置数据是所述通信模块基于预设波特率集合与第二通信终端进行协商得到的,所述波特率配置数据中包括所述第二通信终端的通信地址、所述第二通信终端支持的多个可配置波特率,以及可配置波特率个数;所述第一通信终端与所述第二通信终端相同或者不同;
连接状态检测模块,用于基于所述多个可配置波特率中的第一波特率对所述第二通信终端的通信地址进行连接状态检测,得到连接状态检测结果;
数据调整确定模块,用于根据所述可配置波特率个数和所述连接状态检测结果确定是否切换至所述多个可配置波特率中第二波特率进行连接状态检测,以确定是否调整所述第一波特率和/或所述波特率配置数据。
15.根据权利要求14所述的装置,其特征在于,所述预设波特率集合中包括按照使用频次排序的多个预设波特率;所述装置还包括:
第一波特率确定模块,用于根据所述多个预设波特率的排序关系在所述多个预设波特率中确定指定波特率;
请求发送模块,用于根据所述指定波特率发送第一通配地址请求;
第二波特率确定模块,用于若在所述指定波特率下接收到所述第二通信终端针对所述第一通配地址请求发送的第一请求应答,在所述多个预设波特率中确定待协商波特率;其中,所述待协商波特率是所述多个预设波特率中大于所述指定波特率的波特率;
波特率协商模块,用于基于所述指定波特率和所述待协商波特率与所述第二通信终端进行协商,得到所述波特率配置数据。
16.根据权利要求14所述的装置,其特征在于,所述波特率配置数据中包括当前通信波特率;在进行连接状态检测之前,所述通信模块与所述第二通信终端在所述当前通信波特率下正常通信;所述第一波特率为所述当前通信波特率;
所述连接状态检测模块,还用于在当前预设心跳周期内根据所述当前通信波特率对所述通信地址进行心跳检测,得到心跳检测结果;其中,所述连接状态检测结果包括所述心跳检测结果。
17.根据权利要求16所述的装置,其特征在于,所述数据调整确定模块,还用于若所述心跳检测结果表明在所述当前预设心跳周期内所述通信模块与所述通信地址在所述当前通信波特率下不能正常通信,根据所述可配置波特率个数确定在预设窗口内用于进行连接状态检测的波特率数量阈值;其中,所述预设窗口是相邻两个预设心跳周期之间的时间窗口;若在所述预设窗口内的已检测波特率个数小于所述波特率数量阈值,在所述多个可配置波特率中除所述当前通信波特率以外的波特率中确定所述第二波特率;其中,所述已检测波特率个数是在所述预设窗口内已用于进行连接状态检测的波特率的个数;根据所述第二波特率发送第二通配地址请求;若在所述第二波特率下接收到所述第二通信终端针对所述第二通配地址请求发送的第二请求应答,确定调整所述当前通信波特率为所述第二波特率。
18.根据权利要求14所述的装置,其特征在于,所述波特率配置数据是在所述通信模块重启之前存储在所述通信模块的非易失性存储空间中的;所述波特率配置数据中包括历史成功波特率;在所述通信模块重启之前,所述通信模块与所述第二通信终端在所述历史成功波特率下正常通信;所述第一波特率为所述历史成功波特率;
所述连接状态检测模块,还用于根据所述历史成功波特率向所述通信地址发送通信请求,得到通信请求应答结果;其中,所述连接状态检测结果包括所述通信请求应答结果;
所述数据调整确定模块,还用于若所述通信请求应答结果表明所述通信模块与所述通信地址在所述历史成功波特率下不能建立通信连接,且已请求波特率个数小于所述可配置波特率个数,在所述多个可配置波特率中除所述历史成功波特率以外的波特率中确定所述第二波特率;其中,所述已请求波特率个数是所述多个可配置波特率中已用于发送通信请求的波特率的数量;根据所述第二波特率向所述通信地址发送通信请求;若在所述第二波特率下接收到所述第二通信终端发送的通信请求应答,调整所述历史成功波特率为所述第二波特率。
19.根据权利要求18所述的装置,其特征在于,所述数据调整确定模块,还用于若在所述第二波特率下未接收到所述第二通信终端发送的通信请求应答,且所述已请求波特率个数等于所述可配置波特率个数,基于所述预设波特率集合与所述第一通信终端进行协商,得到协商结果;根据所述协商结果调整所述波特率配置数据,或者,根据所述协商结果调整所述波特率配置数据和所述第一波特率。
20.一种计算机设备,包括存储器和处理器,所述存储器存储有第一计算机程序,其特征在于,所述处理器执行所述第一计算机程序时实现权利要求1至13中任一项所述的方法的步骤。
21.一种芯片,包括存储单元和处理单元,所述存储单元存储有第二计算机程序,其特征在于,所述处理单元执行所述第二计算机程序时实现权利要求1至13中任一项所述的方法的步骤。
22.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至13中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410144315.7A CN117675113B (zh) | 2024-02-01 | 2024-02-01 | 基于通信终端连接状态检测的波特率动态调整方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410144315.7A CN117675113B (zh) | 2024-02-01 | 2024-02-01 | 基于通信终端连接状态检测的波特率动态调整方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117675113A CN117675113A (zh) | 2024-03-08 |
CN117675113B true CN117675113B (zh) | 2024-05-10 |
Family
ID=90084825
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410144315.7A Active CN117675113B (zh) | 2024-02-01 | 2024-02-01 | 基于通信终端连接状态检测的波特率动态调整方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117675113B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019176289A (ja) * | 2018-03-28 | 2019-10-10 | 日本電気株式会社 | 無線通信装置、無線通信システムおよび無線通信方法 |
CN111314018A (zh) * | 2019-11-01 | 2020-06-19 | 珠海格力电器股份有限公司 | 波特率自适应调节处理系统及方法、信息数据处理终端 |
CN113891183A (zh) * | 2021-08-26 | 2022-01-04 | 宁波三星智能电气有限公司 | 一种双向互动型通信波特率自适应方法 |
CN116015549A (zh) * | 2022-12-19 | 2023-04-25 | 上海芯联芯智能科技有限公司 | 一种自适应波特率的通信方法及装置 |
CN116760508A (zh) * | 2023-08-18 | 2023-09-15 | 荣耀终端有限公司 | 一种波特率设置方法及系统 |
CN117254884A (zh) * | 2023-11-14 | 2023-12-19 | 深圳市顾美科技有限公司 | 通讯波特率调试方法、装置、设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102454640B1 (ko) * | 2022-01-04 | 2022-10-14 | (주)파인디어칩 | 적응형 uart 시리얼 인터페이스를 구비한 집적회로 |
-
2024
- 2024-02-01 CN CN202410144315.7A patent/CN117675113B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019176289A (ja) * | 2018-03-28 | 2019-10-10 | 日本電気株式会社 | 無線通信装置、無線通信システムおよび無線通信方法 |
CN111314018A (zh) * | 2019-11-01 | 2020-06-19 | 珠海格力电器股份有限公司 | 波特率自适应调节处理系统及方法、信息数据处理终端 |
CN113891183A (zh) * | 2021-08-26 | 2022-01-04 | 宁波三星智能电气有限公司 | 一种双向互动型通信波特率自适应方法 |
CN116015549A (zh) * | 2022-12-19 | 2023-04-25 | 上海芯联芯智能科技有限公司 | 一种自适应波特率的通信方法及装置 |
CN116760508A (zh) * | 2023-08-18 | 2023-09-15 | 荣耀终端有限公司 | 一种波特率设置方法及系统 |
CN117254884A (zh) * | 2023-11-14 | 2023-12-19 | 深圳市顾美科技有限公司 | 通讯波特率调试方法、装置、设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
一种新型串口速率自适应的算法与实现;黄建刚等;成都大学学报(自然科学版);20160930(第03期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117675113A (zh) | 2024-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230247388A1 (en) | Communication system, method and device for miniature intelligent sensor | |
CN101510167B (zh) | 一种插件运行的方法、装置及系统 | |
CN106453648A (zh) | 智能家居设备的设备状态确定方法及装置 | |
JP6342915B2 (ja) | インテリジェントネットワークの動作 | |
EP2579125A1 (en) | Method and apparatus to control link speed of an image forming apparatus | |
CN110445683B (zh) | 服务器、设备、监测服务器存活状态的方法及系统 | |
CN113746821B (zh) | 智能设备控制方法、装置、存储介质及电子设备 | |
CN103686854A (zh) | 控制ap的方法和装置 | |
CN112367643B (zh) | 一种无线传感器连接及远程升级方法及其监测系统 | |
EP3881521A1 (en) | Prioritized low power neighboring node discovery in an iot network | |
CN114258053A (zh) | 用于从故障中自动恢复的无线设备和方法 | |
CN113891183A (zh) | 一种双向互动型通信波特率自适应方法 | |
CN114866365A (zh) | 仲裁机选举方法、装置、智能设备及计算机可读存储介质 | |
CN112075102B (zh) | 低功耗蓝牙组网方法、电子设备、网络和存储介质 | |
CN117675113B (zh) | 基于通信终端连接状态检测的波特率动态调整方法及装置 | |
CN109714833A (zh) | 一种数据通信方法、装置及系统 | |
CN114793344A (zh) | 一种掉电告警方法及相关设备 | |
CN115004650A (zh) | 节点配置方法、装置、分布式系统及计算机可读介质 | |
CN111343700A (zh) | 无线传感网络通信方法 | |
JP2017152930A (ja) | 通信システム、および通信最適化装置 | |
CN114826982B (zh) | 一种微服务场景下的自适应心跳包调节方法 | |
CN114466321B (zh) | 消息发送方法及装置、电子设备及存储介质 | |
CN114143904B (zh) | 一种基于5g融合网络分流器的cpe管理方法 | |
CN105357078A (zh) | 一种智能设备网络状态的探测方法及系统 | |
CN116319670A (zh) | 一种充换电柜内多域名ip自动切换的方法及系统 |
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 |