一种波特率设置方法及系统技术方案

技术编号:38864730 阅读:39 留言:0更新日期:2023-09-17 10:05
本申请提供了一种波特率设置方法及系统,该方法包括:基于第一波特率向第二设备发送第一数据包;接收第二设备基于第一波特率发送的第一消息;根据第一消息确定第一区间,第一区间和第一波特率相关,第一区间包括第一边界值和第二边界值,第一边界值和第一波特率的关系为:S=T

【技术实现步骤摘要】
一种波特率设置方法及系统


[0001]本申请涉及通信
,尤其涉及一种波特率设置方法及系统。

技术介绍

[0002]在电子通信领域,波特率是指单位时间内传输的码元符号的个数,可以表征信道的数据传输速度。通信双方的设备可以事先设置相同的波特率,以保证设备间的正常通信,但由于设备差异,每个设备只能找到一个和设置的波特率相近的波特率使用,因此通信双方实际使用的波特率很可能不同,导致通信过程中会存在收发数据失败、出现乱码等问题。

技术实现思路

[0003]本申请公开了一种波特率设置方法及系统,能够针对通信双方的设备,自动确定“最佳”波特率,以使这对设备能够正常通信,解决了这对设备因通信过程中的实际波特率不一致导致的收发数据失败、出现乱码等问题。
[0004]第一方面,本申请实施例提供一种波特率设置方法,应用于第一设备,该方法包括:基于第一波特率向第二设备发送第一数据包;接收所述第二设备基于所述第一波特率发送的第一消息,所述第一消息指示所述第一设备和所述第二设备是否能正常通信;根据所述第一消息确定第一区间,所述第一区间和所述第一波特率相关,所述第一区间包括第一边界值和第二边界值,所述第一边界值和所述第一波特率的关系为:S=T

k1×
P1,所述S为所述第一边界值,所述T为所述第一波特率,所述k1为自然数,所述P1为第一步进,所述第二边界值和所述第一波特率的关系为:Q=S+k2×
P2,所述Q为所述第二边界值,所述k2为自然数,所述P2为第二步进,所述k1和所述k2不均为0;根据所述第一区间确定第二波特率,将所述第二波特率作为所述第一设备和所述第二设备通信的波特率。
[0005]在上述方法中,第一设备可以以第一波特率向第二设备发送第一数据包,并根据第二设备返回的第一消息确定第一设备和第二设备可以正常通信的第一区间,然后,第一设备可以从第一区间中确定出一个“最佳”的第二波特率并作为当前通信的波特率,该方法解决了主设备和从设备因通信过程中的实际波特率不一致导致的收发数据失败、出现乱码等问题,确定的“最佳”的波特率避免了偶然性较大的问题,提升了通信过程的稳定性。
[0006]在一种可能的实现方式中,所述第一边界值和所述第二边界值均为已测试的不能正常通信的波特率,所述第一区间包括多个已测试的能正常通信的波特率,任意一个所述已测试的能正常通信的波特率和所述第一波特率的关系为:R=T

k3×
P1或R=S+k4×
P,所述R为所述已测试的能正常通信的波特率,所述k3为小于k1的自然数,所述k4为小于k2的自然数。
[0007]在上述方法中,第一边界值和第二边界值是第一设备测试过的不能正常通信的波特率,即第一区间的边界值是无法正常通信的,但第一区间内的波特率均可以正常通信,其中,第一区间是通过多个测试过的能正常通信的波特率确定的,因此,第一区间是第一设备和第二设备可以正常通信的波特率范围。
[0008]在一种可能的实现方式中,所述根据所述第一消息确定第一区间,包括:根据所述第一消息确定所述第一设备的通信状态;若所述第一设备为结束状态UART_CMD_ACK_FINISH,则将所述第一波特率按照第一方向调整所述第一步进,得到第三波特率;将所述第一设备的通信状态调整为发送状态UART_CMD_SEND_CMD;基于所述第三波特率向所述第二设备发送第二数据包;接收所述第二设备基于所述第三波特率发送的第二消息,所述第二消息指示所述第一设备和所述第二设备是否能正常通信;根据所述第二消息确定所述第一设备的通信状态;若所述第一设备为回复失败UART_CMD_ACK_ERROR或未回复UART_CMD_NO_ACK,则确定所述第三波特率为所述第一边界值,基于所述第一边界值按照第二方向调整所述第二步进,得到所述第二边界值。
[0009]在上述方法中,通过判断第一设备的通信状态,可以执行相应的调整方式,当第一设备的通信状态为结束状态时,第一设备可以向第一方向调整第一步进,直到找到第一边界值,当第一设备的通信状态为回复失败或未回复时,第一设备可以向第二方向调整第二步进,直到找到第二边界值,通过这种方式,可以找到第一波特率周围的可正常通信的波特率,能够提升测试的准确性,提升确定的第一区间的精准度。
[0010]在一种可能的实现方式中,所述根据所述第一消息确定第一区间,包括:根据所述第一消息确定所述第一设备的通信状态;若所述第一设备为回复失败UART_CMD_ACK_ERROR或未回复UART_CMD_NO_ACK,则确定所述第一波特率为所述第一边界值,基于所述第一边界值按照第二方向调整所述第二步进,得到所述第二边界值。
[0011]在上述方法中,当第一设备的通信状态为回复失败或未回复时,第一设备可以将第一波特率确定为第一边界值,即此时第一设备不再向第一方向调整第一步进,而是直接从第一波特率(即第一边界值)处向第二方向调整第二步进,直到找到第二边界值,通过这种方式,可以找到第一波特率周围的可正常通信的波特率,能够提升测试的准确性,提升确定的第一区间的精准度。
[0012]在一种可能的实现方式中,所述基于所述第一边界值按照第二方向调整所述第二步进,得到所述第二边界值,包括:基于所述第一边界值按照第二方向调整所述第二步进,得到第四波特率;将所述第一设备的通信状态调整为所述发送状态UART_CMD_SEND_CMD;基于所述第四波特率向所述第二设备发送第三数据包;接收所述第二设备基于所述第四波特率发送的第三消息,所述第三消息指示所述第一设备和所述第二设备是否能正常通信;根据所述第三消息确定所述第一设备的通信状态;若所述第一设备为结束状态UART_CMD_ACK_FINISH,则将所述第四波特率按照所述第二方向调整所述第二步进,得到第五波特率;将所述第一设备的通信状态调整为所述发送状态UART_CMD_SEND_CMD;基于所述第五波特率向所述第二设备发送第四数据包;接收所述第二设备基于所述第五波特率发送的第四消息,所述第四消息指示所述第一设备和所述第二设备是否能正常通信;根据所述第四消息确定所述第一设备的通信状态;若所述第一设备为回复失败UART_CMD_ACK_ERROR或未回复UART_CMD_NO_ACK,则确定所述第五波特率为所述第二边界值。
[0013]在一种可能的实现方式中,所述根据所述第一消息确定所述第一设备的通信状态,包括:当所述第一消息指示所述第一设备和所述第二设备能正常通信、且所述第一消息为所述第一设备连续在预设次数内的最后一次收到的指示能正常通信的消息时,确定所述第一设备为所述结束状态UART_CMD_ACK_FINISH;当所述第一消息指示所述第一设备和所
述第二设备能正常通信、且所述第一消息不为所述第一设备连续在预设次数内的最后一次收到的指示能正常通信的消息时,确定所述第一设备为所述发送状态UART_CMD_SEND_CMD;当所述第一消息指示所述第一设备和所述第二设备不能正常通信、且所述第二设备有接收本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种波特率设置方法,其特征在于,应用于第一设备,所述方法包括:基于第一波特率向第二设备发送第一数据包;接收所述第二设备基于所述第一波特率发送的第一消息,所述第一消息指示所述第一设备和所述第二设备是否能正常通信;根据所述第一消息确定第一区间,所述第一区间和所述第一波特率相关,所述第一区间包括第一边界值和第二边界值,所述第一边界值和所述第一波特率的关系为:S=T

k1×
P1,所述S为所述第一边界值,所述T为所述第一波特率,所述k1为自然数,所述P1为第一步进,所述第二边界值和所述第一波特率的关系为:Q=S+k2×
P2,所述Q为所述第二边界值,所述k2为自然数,所述P2为第二步进,所述k1和所述k2不均为0;根据所述第一区间确定第二波特率,将所述第二波特率作为所述第一设备和所述第二设备通信的波特率。2.如权利要求1所述的方法,其特征在于,所述第一边界值和所述第二边界值均为已测试的不能正常通信的波特率,所述第一区间包括多个已测试的能正常通信的波特率,任意一个所述已测试的能正常通信的波特率和所述第一波特率的关系为:R=T

k3×
P1或R=S+k4×
P,所述R为所述已测试的能正常通信的波特率,所述k3为小于k1的自然数,所述k4为小于k2的自然数。3.如权利要求1或2所述的方法,其特征在于,所述根据所述第一消息确定第一区间,包括:根据所述第一消息确定所述第一设备的通信状态;若所述第一设备为结束状态UART_CMD_ACK_FINISH,则将所述第一波特率按照第一方向调整所述第一步进,得到第三波特率;将所述第一设备的通信状态调整为发送状态UART_CMD_SEND_CMD;基于所述第三波特率向所述第二设备发送第二数据包;接收所述第二设备基于所述第三波特率发送的第二消息,所述第二消息指示所述第一设备和所述第二设备是否能正常通信;根据所述第二消息确定所述第一设备的通信状态;若所述第一设备为回复失败UART_CMD_ACK_ERROR或未回复UART_CMD_NO_ACK,则确定所述第三波特率为所述第一边界值,基于所述第一边界值按照第二方向调整所述第二步进,得到所述第二边界值。4.如权利要求1或2所述的方法,其特征在于,所述根据所述第一消息确定第一区间,包括:根据所述第一消息确定所述第一设备的通信状态;若所述第一设备为回复失败UART_CMD_ACK_ERROR或未回复UART_CMD_NO_ACK,则确定所述第一波特率为所述第一边界值,基于所述第一边界值按照第二方向调整所述第二步进,得到所述第二边...

【专利技术属性】
技术研发人员:李克
申请(专利权)人:荣耀终端有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1