CN109510689B - 串口通信方法、装置及*** - Google Patents
串口通信方法、装置及*** Download PDFInfo
- Publication number
- CN109510689B CN109510689B CN201811587721.1A CN201811587721A CN109510689B CN 109510689 B CN109510689 B CN 109510689B CN 201811587721 A CN201811587721 A CN 201811587721A CN 109510689 B CN109510689 B CN 109510689B
- Authority
- CN
- China
- Prior art keywords
- serial port
- baud rate
- timer
- host
- communication
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0002—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission rate
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0015—Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the adaptation strategy
Landscapes
- Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Communication Control (AREA)
Abstract
本发明公开了一种串口通信方法、装置及***,涉及计算机技术领域,该方法通过随机变换通信设备的当前波特率,杜绝了通过串口随意通信的安全隐患。同时,本发明的通信设备和主机在波特率适配成功后还增加了认证过程,进一步保证了进行串口通信的主机的合法性,实现简单,具备较好的通用性。
Description
技术领域
本发明涉及计算机通信领域,尤其涉及一种串口通信方法、装置及***。
背景技术
串口通信因为成本低、易于实现,是目前嵌入式***中常用的一种通信模式。在串口通信中,波特率是一个衡量通信速度的参数,它表示每秒钟传送的bit的个数。串口通信常用的波特率选项有300、600、1200、2400、4800、9600、19200、38400、43000、56000、57600、115200等,通信的双方只有保持相同波特率的条件下才能适配成功,实现正常的串口通信,否则会出现调试指令无效、显示乱码的现象。
目前需要串口通信的场景中,由于通信设备通常采用固定波特率,主机只要选取相同的波特率就可以通过串口与通信设备进行串口通信,从而造成未知的安全隐患。鉴于此,如何找到一种安全的串口通信技术方案成了本领域技术人员亟待解决的问题。
发明内容
本发明提供一种串口通信方法、装置及***,解决了使用串口通信时,通信设备因采用固定波特率而导致的安全隐患问题。
第一方面,本发明提供一种串口通信方法,包括以下步骤:
主机按照其当前波特率通过串口发送请求连接消息到通信设备;所述通信设备按照其当前波特率等待所述请求连接消息;其中,所述主机的当前波特率是在支持的多种波特率中顺序循环选取的;所述通信设备的当前波特率是在支持的多种波特率中随机选取的;
确定所述主机的当前波特率与所述通信设备的当前波特率适配时,所述通信设备采用适配成功时的当前波特率通过串口向所述主机发送请求连接响应消息,所述主机接收所述请求连接响应消息后,采用适配成功时的当前波特率与所述通信设备进行串口通信;
其中,所述主机的串口和所述通信设备的串口都为全双工串口。
所述主机按照其当前波特率通过串口发送请求连接消息到通信设备,包括:所述主机的串口为UP状态时启动第一定时器,如果在所述第一定时器的定时周期内所述主机未收到所述通信设备发送的所述请求连接响应消息,在所述第一定时器超时后所述主机在支持的多种波特率中顺序循环选取下一个波特率作为最新的当前波特率;重新启动所述第一定时器,所述主机按照其最新的所述当前波特率通过串口继续发送请求连接消息到所述通信设备;
所述通信设备按照其当前波特率等待所述请求连接消息,包括:所述通信设备的串口为UP状态时启动第二定时器,如果在所述第二定时器的定时周期内所述通信设备未收到所述请求连接消息或者无法识别接收到的所述请求连接消息,在所述第二定时器超时后所述通信设备在支持的多种波特率中随机选取任一波特率作为最新的当前波特率;重新启动所述第二定时器,所述通信设备按照其最新的所述当前波特率继续等待所述请求连接消息;
所述确定所述主机的当前波特率与所述通信设备的当前波特率适配,包括:所述通信设备识别接收到的所述请求连接消息,所述通信设备维持其适配成功的当前波特率不再变化;
其中,所述主机支持的多种波特率与所述通信设备支持的多种波特率相同;所述第二定时器的定时周期等于所述支持的多种波特率个数乘以所述第一定时器的定时周期。
所述主机采用适配成功时的当前波特率与所述通信设备进行串口通信,包括:在所述通信设备采用适配成功时的当前波特率与所述主机进行串口通信时,启动第三定时器,如果在所述第三定时器的定时周期内所述通信设备未接收到所述主机发送的任何串口数据,在所述第三定时器超时后所述通信设备在支持的多种波特率中随机选取任一波特率作为最新的当前波特率;重新启动所述第三定时器,所述通信设备按照其最新的所述当前波特率继续等待所述请求连接消息;
所述主机采用适配成功时的当前波特率与所述通信设备进行串口通信时,启动第四定时器;如果在所述第四定时器的定时周期内所述主机未向所述通信设备发送任何串口数据,在所述第四定时器超时后所述主机如需再次向所述通信设备发送串口数据,所述主机在支持的多种波特率中顺序循环选取下一个波特率作为最新的当前波特率;所述主机先按照其最新的所述当前波特率重新通过串口发送所述请求连接消息到所述通信设备进行适配;待适配成功后,所述主机采用适配成功时的当前波特率与所述通信设备进行串口通信;其中,所述第四定时器的定时周期与所述第三定时器的定时周期相同。
在第一种可能的实现方式中,所述方法还包括:所述主机按照其当前波特率通过串口发送请求连接消息到通信设备,包括:所述主机按照其当前波特率通过串口发送携带有秘钥信息的请求连接消息到通信设备;所述通信设备按照其当前波特率等待所述请求连接消息,包括:所述通信设备按照其当前波特率等待携带有秘钥信息的所述请求连接消息;所述通信设备采用适配成功时的当前波特率通过串口向所述主机发送请求连接响应消息,包括:所述通信设备认证所述请求连接消息中的秘钥信息,采用适配成功时的当前波特率通过串口向所述主机发送携带有认证结果的请求连接响应消息;所述主机接收所述请求连接响应消息后,采用适配成功时的当前波特率与所述通信设备进行串口通信,包括:所述主机接收携带有认证结果的请求连接响应消息;如果所述认证结果指示认证成功,所述主机采用适配成功时的当前波特率与所述通信设备进行串口通信;否则,所述主机提示认证失败,所述通信设备继续按照其当前波特率等待携带有秘钥信息的所述请求连接消息。
第二方面,本发明提供一种串口通信装置,应用于通信设备,具体包括:
波特率发生器模块,用于产生所述通信设备的当前波特率;其中,所述通信设备的当前波特率是在所述通信设备支持的多种波特率中随机产生的;
串口通信模块,用于按照所述通信设备的当前波特率从串口等待主机发送的请求连接消息,并确定所述主机的当前波特率与所述通信设备的当前波特率是否适配;以及用于确定所述主机的当前波特率与所述通信设备的当前波特率适配时,采用适配成功时所述通信设备的当前波特率通过串口向所述主机发送请求连接响应消息,并与所述主机进行串口通信;其中,所述通信设备的串口为全双工串口。
其中,所述装置还包括定时器模块:所述定时器模块,用于在所述串口为UP状态时启动第二定时器;以及用于在接收到所述串口通信模块启动所述第二定时器的通知时,重新启动所述第二定时器;所述串口通信模块,具体用于如果在所述第二定时器的定时周期内未收到所述请求连接消息或者无法识别接收到的所述请求连接消息,在所述第二定时器超时后,通知所述波特率发生器模块产生一个最新的当前波特率;通知所述定时器模块重新启动所述第二定时器,所述串口通信模块按照所述通信设备最新的所述当前波特率从串口等待主机发送的请求连接消息;以及用于识别接收到的所述请求连接消息,并维持其适配成功的当前波特率不再变化;所述波特率发生器模块,还用于在接收所述串口通信模块的通知时,在支持的多种波特率中随机产生一个最新的当前波特率;其中,所述主机支持的多种波特率与所述通信设备支持的多种波特率相同。
可选的,所述定时器模块,还用于所述通信设备与所述主机进行串口通信时,启动第三定时器;以及用于在接收到所述串口通信模块启动所述第三定时器的通知时,重新启动所述第三定时器;所述串口通信模块,还用于如果在所述第三定时器的定时周期内所述串口通信模块未接收到所述主机发送的任何串口数据,在所述第三定时器超时后,通知所述波特率发生器模块产生一个最新的当前波特率;通知所述定时器模块重新启动所述第三定时器,所述串口通信模块按照最新的所述当前波特率继续等待所述请求连接消息。
可选的,所述装置还包括认证模块;所述认证模块,用于在所述串口通信模块确定所述主机的当前波特率与所述通信设备的当前波特率适配时,认证所述请求连接消息中的秘钥信息;所述串口通信模块,还具体用于在所述认证模块认证所述请求连接消息中的秘钥信息后,采用适配成功时所述通信设备的当前波特率通过串口向所述主机发送携带有认证结果的请求连接响应消息;如果所述认证结果指示认证成功,与所述主机进行串口通信;否则,继续按照所述通信设备的当前波特率从串口等待所述主机发送的携带有秘钥信息的请求连接消息。
第三方面,本发明提供一种串口通信装置,应用于主机,具体包括:
波特率发生器模块,用于产生所述主机的当前波特率;其中,所述主机的当前波特率是在所述主机支持的多种波特率中顺序循环产生的;所述主机支持的多种波特率与所述通信设备支持的多种波特率相同;
串口通信模块,用于按照所述主机的当前波特率通过串口发送请求连接消息到通信设备;以及用于接收请求连接响应消息,并采用适配成功时所述主机的当前波特率与所述通信设备进行串口通信;或者,所述串口通信模块,用于按照所述主机的当前波特率通过串口发送携带有秘钥消息的请求连接消息到所述通信设备;以及用于接收携带有认证结果的所述请求连接响应消息,如果认证结果指示认证成功,采用适配成功时所述主机的当前波特率与所述通信设备进行串口通信,否则,所述串口通信模块提示认证失败;其中,所述主机的串口为全双工串口。
可选的,所述装置还包括定时器模块;所述定时器模块,用于在所述串口为UP状态时启动第一定时器;以及用于在接收到所述串口通信模块启动所述第一定时器的通知时,重新启动所述第一定时器;所述串口通信模块,具体用于如果在所述第一定时器的定时周期内所述串口通信模块未收到所述通信设备发送的所述请求连接响应消息,在所述第一定时器超时后,通知所述波特率发生器模块产生一个最新的当前波特率;通知所述定时器模块重新启动所述第一定时器,按照最新的所述当前波特率通过串口继续发送请求连接消息到所述通信设备;或者,所述串口通信模块,具体用于如果在所述第一定时器的定时周期内所述串口通信模块未收到所述通信设备发送的携带有认证结果的所述请求连接响应消息,在所述第一定时器超时后,通知所述波特率发生器模块产生一个最新的当前波特率;通知所述定时器模块重新启动所述第一定时器,按照其最新的所述当前波特率通过串口继续发送所述携带有秘钥消息的请求连接消息到所述通信设备。
在第三种可能的实现方式中,所述定时器模块,还用于所述通信设备与所述主机进行串口通信时,启动第四定时器,其中,所述第四定时器的定时周期与所述第三定时器的定时周期相同;以及用于在接收到所述串口通信模块启动所述第四定时器的通知时,重新启动所述第四定时器;所述串口通信模块,还用于如果在所述第四定时器的定时周期内所述串口通信模块未向所述通信设备发送任何串口数据,在所述第四定时器超时后,所述串口通信模块如需再次向所述通信设备发送串口数据,通知所述波特率发生器模块产生一个最新的当前波特率;所述串口通信模块先按照最新的所述当前波特率重新通过串口发送所述请求连接消息或者携带有认证结果的的所述请求连接消息到所述通信设备进行适配;所述波特率发生器模块,还用于在接收所述串口通信模块的通知时,在支持的多种波特率中顺序循环产生一个最新的当前波特率。
第四方面,本发明提供一种串口通信***,具体包括:主机和通信设备;所述通信设备包括如第二方面所述的装置,所述主机包括如第三方面所述的装置;其中,所述第二定时器的定时周期等于所述支持的多种波特率个数乘以所述第一定时器的定时周期。
综上所述,本发明通过随机变换通信设备的当前波特率,杜绝了通过串口随意通信的安全隐患。而且本发明中通信设备和主机在波特率适配成功后还增加了认证过程,进一步保证了进行串口通信的主机的合法性,实现简单,具备较好的通用性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明实施例提供的一种串口通信方法的流程图;
图2示出了本发明实施例提供的一种应用于通信设备的串口通信装置示意图;
图3示出了本发明实施例提供的另一种应用于通信设备的串口通信装置示意图;
图4示出了本发明实施例提供的另一种应用于通信设备的串口通信装置示意图;
图5示出了本发明实施例提供的一种应用于主机的串口通信装置示意图;
图6示出了本发明实施例提供的另一种应用于主机的串口通信装置示意图;
图7示出了本发明实施例提供的一种串口通信***示意图。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面通过具体实施例,分别进行详细的说明。
实施例一
本发明实施例提供了一种串口通信方法,其示意图如图1所示,包括如下步骤:
步骤S101,主机按照其当前波特率通过串口发送请求连接消息到通信设备;所述通信设备按照其当前波特率等待所述请求连接消息。
其中,主机的当前波特率是在支持的多种波特率中顺序循环选取的;通信设备的当前波特率是在支持的多种波特率中随机选取的。主机支持的多种波特率与通信设备支持的多种波特率相同。例如,主机支持的多种波特率和通信设备支持的多种波特率都有9600、19200、38400、43000、56000、57600、115200七种波特率。
在本实施例中,请求连接消息可以包含一个起始字符,例如,请求连接消息使用0XF0作为起始字符,当主机的当前波特率与通信设备的当前波特率适配时,通信设备可以通过该起始字符识别请求连接消息。
步骤S102,确定所述主机的当前波特率与所述通信设备的当前波特率适配时,所述通信设备采用适配成功时的当前波特率通过串口向所述主机发送请求连接响应消息,所述主机接收所述请求连接响应消息后,采用适配成功时的当前波特率与所述通信设备进行串口通信。
其中,主机的串口和通信设备的串口都为全双工串口。本实施例中,主机的串口为UP状态时(通信连接状态为连通状态)启动第一定时器。如果在第一定时器的定时周期内主机未收到通信设备发送的请求连接响应消息,在第一定时器超时后主机在支持的多种波特率中顺序循环选取下一个波特率作为最新的当前波特率。例如,主机的当前波特率为115200,在第一定时器超时后,主机在支持的七种波特率中顺序循环选取下一个波特率9600作为最新的当前波特率。其中,请求连接响应消息可以包含一个起始字符,例如,请求连接响应消息使用0XFE作为起始字符,当主机的当前波特率与通信设备的当前波特率适配时,主机可以通过该起始字符识别请求连接响应消息。
主机在确定最新的当前波特率时,重新启动第一定时器,主机按照其最新的当前波特率通过串口继续发送请求连接消息到通信设备。通信设备的串口为UP状态时启动第二定时器。如果在第二定时器的定时周期内通信设备未收到请求连接消息或者无法识别接收到的请求连接消息,在第二定时器超时后通信设备在支持的多种波特率中随机选取任一波特率作为最新的当前波特率。通信设备在确定最新的当前波特率时,重新启动第二定时器,通信设备按照其最新的当前波特率继续等待请求连接消息。如果在第二定时器的定时周期内通信设备能够识别接收到的请求连接消息,说明主机的当前波特率与通信设备的当前波特率适配成功,此时通信设备维持其适配成功的当前波特率不再变化,采用适配成功的当前波特率等待主机发送的串口数据。主机接收请求连接响应消息后,停止发送请求连接消息,此时主机采用适配成功时的当前波特率可以向通信设备发送串口数据。其中,第二定时器的定时周期等于支持的多种波特率个数乘以第一定时器的定时周期。
本实施例中,在通信设备采用适配成功时的当前波特率与主机进行串口通信时,通信设备可以启动第三定时器。如果在第三定时器的定时周期内通信设备未接收到主机发送的任何串口数据,在第三定时器超时后通信设备在支持的多种波特率中随机选取任一波特率作为最新的当前波特率。重新启动第三定时器,通信设备按照其最新的当前波特率继续等待请求连接消息。在本发明实施例中,主机采用适配成功时的当前波特率与通信设备进行串口通信时,主机可以启动第四定时器。如果在第四定时器的定时周期内主机未向通信设备发送任何串口数据,在第四定时器超时后主机如需再次向通信设备发送串口数据,主机在支持的多种波特率中顺序循环选取下一个波特率作为最新的当前波特率。主机先按照其最新的当前波特率重新通过串口发送请求连接消息到通信设备进行适配。待适配成功后,主机采用适配成功时的当前波特率与通信设备进行串口通信。其中,第四定时器的定时周期与第三定时器的定时周期相同。
作为本实施例的另一个优选的技术方案,主机按照其当前波特率通过串口发送携带有秘钥信息的请求连接消息到通信设备。通信设备按照其当前波特率等待携带有秘钥信息的请求连接消息。当接收到携带有秘钥信息的请求连接消息时,通信设备认证请求连接消息中的秘钥信息,采用适配成功时的当前波特率通过串口向主机发送携带有认证结果的请求连接响应消息。主机接收携带有认证结果的请求连接响应消息,如果认证结果指示认证成功,主机采用适配成功时的当前波特率与通信设备进行串口通信;否则,主机提示认证失败,通信设备继续按照其当前波特率等待携带有秘钥信息的请求连接消息。
本实施例中,通信设备采用随机变换的当前波特率,可以杜绝串口随意连接的安全隐患。同时通信双方的当前波特率适配成功后,本实施例还支持对主机进行认证,进一步保证了进行串口通信的安全性。本实施例实现简单,复杂度低,具备较好的通用性。
实施例二
本发明实施例提供了一种串口通信装置20,应用于通信设备,其示意图如图2所示,具体包括:
波特率发生器模块201,用于产生所述通信设备的当前波特率。
其中,所述通信设备的当前波特率是在所述通信设备支持的多种波特率中随机产生的。
串口通信模块202,用于按照所述通信设备的当前波特率从串口等待主机发送的请求连接消息,并确定所述主机的当前波特率与所述通信设备的当前波特率是否适配;以及用于确定所述主机的当前波特率与所述通信设备的当前波特率适配时,采用适配成功时所述通信设备的当前波特率通过串口向所述主机发送请求连接响应消息,并与所述主机进行串口通信。
其中,所述通信设备的串口为全双工串口。优选的,如图3所示,应用于通信设备的装置20中除包括如图2所示的波特率发生器模块201和串口通信模块202外,还包括定时器模块203。所述定时器模块203,用于在所述串口为UP状态时启动第二定时器;以及用于在接收到所述串口通信模块202启动所述第二定时器的通知时,重新启动所述第二定时器。所述串口通信模块202,具体用于如果在所述第二定时器的定时周期内未收到所述请求连接消息或者无法识别接收到的所述请求连接消息,在所述第二定时器超时后,通知所述波特率发生器模块201产生一个最新的当前波特率。通知所述定时器模块203重新启动所述第二定时器,所述串口通信模块202按照所述通信设备最新的所述当前波特率从串口等待主机发送的请求连接消息。以及用于识别接收到的所述请求连接消息,并维持其适配成功的当前波特率不再变化。其中,所述主机支持的多种波特率与所述通信设备支持的多种波特率相同。
本实施例中,所述定时器模块203,还用于所述通信设备与所述主机进行串口通信时,启动第三定时器。以及用于在接收到所述串口通信模块202启动所述第三定时器的通知时,重新启动所述第三定时器。所述串口通信模块202,还用于如果在所述第三定时器的定时周期内所述串口通信模块202未接收到所述主机发送的任何串口数据,在所述第三定时器超时后,通知所述波特率发生器模块201产生一个最新的当前波特率;通知所述定时器模块203重新启动所述第三定时器,所述串口通信模块202按照最新的所述当前波特率继续等待所述请求连接消息。
优选的,作为本实施例的另一个技术方案,如图4所示,应用于通信设备的装置20除包括如图3所示的波特率发生器模块201、串口通信模块202和定时器模块203外,还包括认证模块204。所述认证模块204,用于在所述串口通信模块202确定所述主机的当前波特率与所述通信设备的当前波特率适配时,认证所述请求连接消息中的秘钥信息。所述串口通信模块202,还具体用于在所述认证模块204认证所述请求连接消息中的秘钥信息后,采用适配成功时所述通信设备的当前波特率通过串口向所述主机发送携带有认证结果的请求连接响应消息;如果所述认证结果指示认证成功,与所述主机进行串口通信;否则,继续按照所述通信设备的当前波特率从串口等待所述主机发送的携带有秘钥信息的请求连接消息。
本实施例中,通信设备采用随机变换的当前波特率,可以杜绝串口随意连接的安全隐患。同时通信双方的当前波特率适配成功后,本实施例还支持对主机进行认证,进一步保证了进行串口通信的安全性。本实施例实现简单,复杂度低,具备较好的通用性。
实施例三
本发明实施例提供了一种串口通信装置30,应用于主机,其示意图如图5所示,具体包括:
波特率发生器模块301,用于产生所述主机的当前波特率。
其中,所述主机的当前波特率是在所述主机支持的多种波特率中顺序循环产生的;所述主机支持的多种波特率与所述通信设备支持的多种波特率相同。
串口通信模块302,用于按照所述主机的当前波特率通过串口发送请求连接消息到通信设备。以及用于接收请求连接响应消息,并采用适配成功时所述主机的当前波特率与所述通信设备进行串口通信。优选的,所述串口通信模块302,用于按照所述主机的当前波特率通过串口发送携带有秘钥消息的请求连接消息到所述通信设备。以及用于接收携带有认证结果的所述请求连接响应消息,如果认证结果指示认证成功,采用适配成功时所述主机的当前波特率与所述通信设备进行串口通信,否则,所述串口通信模块302提示认证失败。其中,所述主机的串口为全双工串口。
本实施例中,如图6所示,应用于主机的装置30除包括如图5所示的波特率发生器模块301和串口通信模块302外,还包括定时器模块303。所述定时器模块303,用于在所述串口为UP状态时启动第一定时器。以及用于在接收到所述串口通信模块302启动所述第一定时器的通知时,重新启动所述第一定时器。所述串口通信模块302,具体用于如果在所述第一定时器的定时周期内所述串口通信模块302未收到所述通信设备发送的所述请求连接响应消息,在所述第一定时器超时后,通知所述波特率发生器模块301产生一个最新的当前波特率。通知所述定时器模块303重新启动所述第一定时器,按照最新的所述当前波特率通过串口继续发送请求连接消息到所述通信设备。优选的,所述串口通信模块302,具体用于如果在所述第一定时器的定时周期内所述串口通信模块302未收到所述通信设备发送的携带有认证结果的所述请求连接响应消息,在所述第一定时器超时后,通知所述波特率发生器模块301产生一个最新的当前波特率。通知所述定时器模块303重新启动所述第一定时器,按照其最新的所述当前波特率通过串口继续发送所述携带有秘钥消息的请求连接消息到所述通信设备。
本实施例中,所述定时器模块303,还用于所述通信设备与所述主机进行串口通信时,启动第四定时器,其中,所述第四定时器的定时周期与所述第三定时器的定时周期相同。以及用于在接收到所述串口通信模块302启动所述第四定时器的通知时,重新启动所述第四定时器。所述串口通信模块302,还用于如果在所述第四定时器的定时周期内所述串口通信模块302未向所述通信设备发送任何串口数据,在所述第四定时器超时后,所述串口通信模块302如需再次向所述通信设备发送串口数据,通知所述波特率发生器模块301产生一个最新的当前波特率。所述串口通信模块302先按照最新的所述当前波特率重新通过串口发送所述请求连接消息或者携带有认证结果的的所述请求连接消息到所述通信设备进行适配。所述波特率发生器模块301,还用于在接收所述串口通信模块302的通知时,在支持的多种波特率中顺序循环产生一个最新的当前波特率。
本实施例中,主机采用顺序变换的当前波特率与采用随机变换当前波特率的通信设备进行适配,可以杜绝串口随意连接的安全隐患。同时通信双方的当前波特率适配成功后,本实施例的主机还支持发送携带有秘钥信息的请求连接消息至通信设备进行认证,进一步保证了进行串口通信的安全性。本实施例实现简单,复杂度低,具备较好的通用性。
实施例四
本发明实施例提供了一种串口通信***40,如图7所示,具体包括:主机401和通信设备402。
所述通信设备402包括如实施例二所述的装置,所述主机401包括如实施例三所述的装置;其中,所述第二定时器的定时周期等于所述支持的多种波特率个数乘以所述第一定时器的定时周期。
本实施例中,通信设备采用随机变换的当前波特率,可以杜绝串口随意连接的安全隐患。同时通信双方的当前波特率适配成功后,本实施例还支持对主机进行认证,进一步保证了进行串口通信的安全性。本实施例实现简单,复杂度低,具备较好的通用性。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种串口通信方法,其特征在于,所述方法包括:
主机按照其当前波特率通过串口发送请求连接消息到通信设备;所述通信设备的串口为UP状态时启动第二定时器,如果在所述第二定时器的定时周期内所述通信设备未收到所述请求连接消息或者无法识别接收到的所述请求连接消息,在所述第二定时器超时后所述通信设备在支持的多种波特率中随机选取任一波特率作为最新的当前波特率;重新启动所述第二定时器,所述通信设备按照其最新的所述当前波特率继续等待所述请求连接消息;其中,所述主机的当前波特率是在支持的多种波特率中顺序循环选取的;
确定所述主机的当前波特率与所述通信设备的当前波特率适配时,所述通信设备采用适配成功时的当前波特率通过串口向所述主机发送请求连接响应消息,所述主机接收所述请求连接响应消息后,采用适配成功时的当前波特率与所述通信设备进行串口通信;
其中,所述主机的串口和所述通信设备的串口都为全双工串口。
2.如权利要求1所述的方法,其特征在于,所述主机按照其当前波特率通过串口发送请求连接消息到通信设备,包括:
所述主机的串口为UP状态时启动第一定时器,如果在所述第一定时器的定时周期内所述主机未收到所述通信设备发送的所述请求连接响应消息,在所述第一定时器超时后所述主机在支持的多种波特率中顺序循环选取下一个波特率作为最新的当前波特率;重新启动所述第一定时器,所述主机按照其最新的所述当前波特率通过串口继续发送请求连接消息到所述通信设备;
所述确定所述主机的当前波特率与所述通信设备的当前波特率适配,包括:所述通信设备识别接收到的所述请求连接消息,所述通信设备维持其适配成功的当前波特率不再变化;
其中,所述主机支持的多种波特率与所述通信设备支持的多种波特率相同;所述第二定时器的定时周期等于所述支持的多种波特率个数乘以所述第一定时器的定时周期。
3.如权利要求1所述的方法,其特征在于,所述主机接收所述请求连接响应消息后,采用适配成功时的当前波特率与所述通信设备进行串口通信,包括:
在所述通信设备采用适配成功时的当前波特率与所述主机进行串口通信时,所述通信设备启动第三定时器,如果在所述第三定时器的定时周期内所述通信设备未接收到所述主机发送的任何串口数据,在所述第三定时器超时后所述通信设备在支持的多种波特率中随机选取任一波特率作为最新的当前波特率;重新启动所述第三定时器,所述通信设备按照其最新的所述当前波特率继续等待所述请求连接消息;
所述主机采用适配成功时的当前波特率与所述通信设备进行串口通信时,所述主机启动第四定时器;如果在所述第四定时器的定时周期内所述主机未向所述通信设备发送任何串口数据,在所述第四定时器超时后所述主机如需再次向所述通信设备发送串口数据,所述主机在支持的多种波特率中顺序循环选取下一个波特率作为最新的当前波特率;所述主机先按照其最新的所述当前波特率重新通过串口发送所述请求连接消息到所述通信设备进行适配;待适配成功后,所述主机采用适配成功时的当前波特率与所述通信设备进行串口通信;其中,所述第四定时器的定时周期与所述第三定时器的定时周期相同。
4.如权利要求1所述的方法,其特征在于,
所述主机按照其当前波特率通过串口发送请求连接消息到通信设备,包括:所述主机按照其当前波特率通过串口发送携带有秘钥信息的请求连接消息到通信设备;
通信设备按照其当前波特率等待所述请求连接消息,包括:所述通信设备按照其当前波特率等待携带有秘钥信息的所述请求连接消息;
所述通信设备采用适配成功时的当前波特率通过串口向所述主机发送请求连接响应消息,包括:所述通信设备认证所述请求连接消息中的秘钥信息,采用适配成功时的当前波特率通过串口向所述主机发送携带有认证结果的请求连接响应消息;
所述主机接收所述请求连接响应消息后,采用适配成功时的当前波特率与所述通信设备进行串口通信,包括:所述主机接收携带有认证结果的请求连接响应消息;如果所述认证结果指示认证成功,所述主机采用适配成功时的当前波特率与所述通信设备进行串口通信;否则,所述主机提示认证失败,所述通信设备继续按照其当前波特率等待携带有秘钥信息的所述请求连接消息。
5.一种串口通信装置,其特征在于,应用于通信设备,所述装置包括:
定时器模块,用于在串口为UP状态时启动第二定时器;以及用于在接收到串口通信模块启动第二定时器的通知时,重新启动所述第二定时器;
波特率发生器模块,用于产生所述通信设备的当前波特率;以及用于在接收到串口通信模块的通知时,在支持的多种波特率中随机产生一个最新的当前波特率;其中,所述通信设备的当前波特率是在所述通信设备支持的多种波特率中随机产生的;
串口通信模块,用于按照所述通信设备的当前波特率从串口等待主机发送的请求连接消息,如果在所述第二定时器的定时周期内未收到所述请求连接消息或者无法识别接收到的所述请求连接消息,在所述第二定时器超时后,通知所述波特率发生器模块产生一个最新的当前波特率;通知所述定时器模块重新启动所述第二定时器后,按照所述通信设备最新的所述当前波特率从串口等待主机发送的请求连接消息;以及用于确定所述主机的当前波特率与所述通信设备的当前波特率适配时,采用适配成功时所述通信设备的当前波特率通过串口向所述主机发送请求连接响应消息,并与所述主机进行串口通信;其中,所述通信设备的串口为全双工串口。
6.如权利要求5所述的装置,其特征在于,
所述定时器模块,还用于所述通信设备与所述主机进行串口通信时,启动第三定时器;以及用于在接收到所述串口通信模块启动所述第三定时器的通知时,重新启动所述第三定时器;
所述串口通信模块,还用于如果在所述第三定时器的定时周期内所述串口通信模块未接收到所述主机发送的任何串口数据,在所述第三定时器超时后,通知所述波特率发生器模块产生一个最新的当前波特率;通知所述定时器模块重新启动所述第三定时器,所述串口通信模块按照最新的所述当前波特率继续等待所述请求连接消息。
7.如权利要求5所述的装置,其特征在于,所述装置还包括认证模块;
所述认证模块,用于在所述串口通信模块确定所述主机的当前波特率与所述通信设备的当前波特率适配时,认证所述请求连接消息中的秘钥信息;
所述串口通信模块,还具体用于在所述认证模块认证所述请求连接消息中的秘钥信息后,采用适配成功时所述通信设备的当前波特率通过串口向所述主机发送携带有认证结果的请求连接响应消息;如果所述认证结果指示认证成功,与所述主机进行串口通信;否则,继续按照所述通信设备的当前波特率从串口等待所述主机发送的携带有秘钥信息的请求连接消息。
8.一种串口通信装置,其特征在于,应用于主机,所述装置包括:
波特率发生器模块,用于产生所述主机的当前波特率;以使所述主机按照其当前波特率通过串口发送请求连接消息到通信设备;所述通信设备的串口为UP状态时启动第二定时器,如果在所述第二定时器的定时周期内所述通信设备未收到所述请求连接消息或者无法识别接收到的所述请求连接消息,在所述第二定时器超时后所述通信设备在支持的多种波特率中随机选取任一波特率作为最新的当前波特率;重新启动所述第二定时器,所述通信设备按照其最新的所述当前波特率继续等待所述请求连接消息;其中,所述主机的当前波特率是在所述主机支持的多种波特率中顺序循环产生的;所述主机支持的多种波特率与所述通信设备支持的多种波特率相同;
串口通信模块,用于按照所述主机的当前波特率通过串口发送请求连接消息到通信设备;以及用于接收请求连接响应消息,并采用适配成功时所述主机的当前波特率与所述通信设备进行串口通信;
或者,所述串口通信模块,用于按照所述主机的当前波特率通过串口发送携带有秘钥消息的请求连接消息到所述通信设备;以及用于接收携带有认证结果的所述请求连接响应消息,如果认证结果指示认证成功,采用适配成功时所述主机的当前波特率与所述通信设备进行串口通信,否则,所述串口通信模块提示认证失败;
其中,所述主机的串口为全双工串口。
9.如权利要求8所述的装置,其特征在于,所述装置还包括定时器模块;
所述定时器模块,用于在所述串口为UP状态时启动第一定时器;以及用于在接收到所述串口通信模块启动所述第一定时器的通知时,重新启动所述第一定时器;
所述串口通信模块,具体用于如果在所述第一定时器的定时周期内所述串口通信模块未收到所述通信设备发送的所述请求连接响应消息,在所述第一定时器超时后,通知所述波特率发生器模块产生一个最新的当前波特率;通知所述定时器模块重新启动所述第一定时器,按照最新的所述当前波特率通过串口继续发送请求连接消息到所述通信设备;
或者,所述串口通信模块,具体用于如果在所述第一定时器的定时周期内所述串口通信模块未收到所述通信设备发送的携带有认证结果的所述请求连接响应消息,在所述第一定时器超时后,通知所述波特率发生器模块产生一个最新的当前波特率;通知所述定时器模块重新启动所述第一定时器,按照其最新的所述当前波特率通过串口继续发送所述携带有秘钥消息的请求连接消息到所述通信设备;
所述定时器模块,还用于所述通信设备与所述主机进行串口通信时,启动第四定时器,其中,所述第四定时器的定时周期与所述通信设备的第三定时器的定时周期相同,其中,所述通信设备的第三定时器用于所述通信设备在所述第三定时器的定时周期内未接收到所述主机发送的任何串口数据,在所述第三定时器超时后所述通信设备在支持的多种波特率中随机选取任一波特率作为最新的当前波特率;以及用于在接收到所述串口通信模块启动所述第四定时器的通知时,重新启动所述第四定时器;
所述串口通信模块,还用于如果在所述第四定时器的定时周期内所述串口通信模块未向所述通信设备发送任何串口数据,在所述第四定时器超时后,所述串口通信模块如需再次向所述通信设备发送串口数据,通知所述波特率发生器模块产生一个最新的当前波特率;所述串口通信模块先按照最新的所述当前波特率重新通过串口发送所述请求连接消息或者携带有认证结果的所述请求连接消息到所述通信设备进行适配;
所述波特率发生器模块,还用于在接收所述串口通信模块的通知时,在支持的多种波特率中顺序循环产生一个最新的当前波特率。
10.一种串口通信***,其特征在于,所述***包括主机和通信设备;所述通信设备包括如权利要求5至7任一项所述的装置,所述主机包括如权利要求8或9所述的装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811587721.1A CN109510689B (zh) | 2018-12-25 | 2018-12-25 | 串口通信方法、装置及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811587721.1A CN109510689B (zh) | 2018-12-25 | 2018-12-25 | 串口通信方法、装置及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109510689A CN109510689A (zh) | 2019-03-22 |
CN109510689B true CN109510689B (zh) | 2022-03-22 |
Family
ID=65754599
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811587721.1A Active CN109510689B (zh) | 2018-12-25 | 2018-12-25 | 串口通信方法、装置及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109510689B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110213021B (zh) * | 2019-06-10 | 2022-01-25 | 海尔优家智能科技(北京)有限公司 | 串行通讯数据传输方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102231667A (zh) * | 2011-07-29 | 2011-11-02 | 飞天诚信科技股份有限公司 | 串口设备注册的方法和装置 |
CN104598417A (zh) * | 2015-01-04 | 2015-05-06 | 硅谷数模半导体(北京)有限公司 | 基于片上***的串口发送方法和装置 |
CN106209148A (zh) * | 2016-07-01 | 2016-12-07 | 中国电子科技集团公司第十研究所 | 多功能射频模块通用接口*** |
CN107566088A (zh) * | 2017-09-07 | 2018-01-09 | 维沃移动通信有限公司 | 一种波特率的调整方法及充电适配器 |
CN108092746A (zh) * | 2017-12-26 | 2018-05-29 | 上海斐讯数据通信技术有限公司 | 一种串口通信方法及*** |
CN108153696A (zh) * | 2017-12-29 | 2018-06-12 | 广州市中海达测绘仪器有限公司 | 嵌入式***串口模块匹配方法、装置、介质和计算机设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6675215B1 (en) * | 2000-02-17 | 2004-01-06 | Microsoft Corporation | Automatic baud rate detection of null modem unimodem client connection |
WO2015102579A1 (en) * | 2013-12-30 | 2015-07-09 | Schneider Electric It Corporation | System and method for automatically selecting baud rate in a can network |
CN109076032B (zh) * | 2016-02-23 | 2020-09-25 | 华为技术有限公司 | 校准相位偏移并提高波特率采样检相器增益的ffe辅助cdr |
-
2018
- 2018-12-25 CN CN201811587721.1A patent/CN109510689B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102231667A (zh) * | 2011-07-29 | 2011-11-02 | 飞天诚信科技股份有限公司 | 串口设备注册的方法和装置 |
CN104598417A (zh) * | 2015-01-04 | 2015-05-06 | 硅谷数模半导体(北京)有限公司 | 基于片上***的串口发送方法和装置 |
CN106209148A (zh) * | 2016-07-01 | 2016-12-07 | 中国电子科技集团公司第十研究所 | 多功能射频模块通用接口*** |
CN107566088A (zh) * | 2017-09-07 | 2018-01-09 | 维沃移动通信有限公司 | 一种波特率的调整方法及充电适配器 |
CN108092746A (zh) * | 2017-12-26 | 2018-05-29 | 上海斐讯数据通信技术有限公司 | 一种串口通信方法及*** |
CN108153696A (zh) * | 2017-12-29 | 2018-06-12 | 广州市中海达测绘仪器有限公司 | 嵌入式***串口模块匹配方法、装置、介质和计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
CN109510689A (zh) | 2019-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9998458B2 (en) | Identity verification method and device | |
JP4122341B2 (ja) | クライアント端末装置とサーバーとの間のセッション再設定のためのシステム及び方法 | |
JP6465098B2 (ja) | 車両用認証システム | |
CN104216748B (zh) | 应用程序安装方法、装置及*** | |
CN105791246B (zh) | 验证信息的验证方法、装置及*** | |
CN107360165B (zh) | 终端设备、云服务器以及管控操作***的方法及装置 | |
JP6399771B2 (ja) | 情報処理装置、その制御方法、及びプログラム | |
CN109510689B (zh) | 串口通信方法、装置及*** | |
CN106254312B (zh) | 一种通过虚拟机异构实现服务器防攻击的方法及装置 | |
CN109213530A (zh) | 一种基于usb的通信连接方法、移动终端及存储介质 | |
EP2469900A1 (en) | Client terminal for providing service, wireless terminal and binding implementation method | |
JP2017073951A (ja) | 電子機器及びプログラム | |
JP2014127005A (ja) | 画像形成装置及び機器情報管理システム | |
CN103812841A (zh) | 旁路认证方法、设备和*** | |
US9692916B2 (en) | Facsimile system, information processing device, and computer-readable storage medium | |
JP2022074531A (ja) | 電子機器および制御方法 | |
CN101640680B (zh) | 一种网络接入控制的方法、***和装置 | |
CN114584971A (zh) | 账号注册方法及装置、电子设备及存储介质 | |
CN101998382B (zh) | 网络配置方法、设备和网络配置*** | |
CN114143858A (zh) | WiFi接入方法、***、设备及介质 | |
JP4664089B2 (ja) | 情報処理システム、情報処理装置、情報処理方法、及びプログラム | |
CN113965444A (zh) | 一种家庭网关的远程恢复方法和装置 | |
CN112087745A (zh) | 家电设备的配网方法、装置、电子设备和存储介质 | |
CN108923994A (zh) | 一种通信故障检测方法及装置 | |
CN111859406B (zh) | 用于进行远程认证的方法、装置和*** |
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 | ||
CP02 | Change in the address of a patent holder |
Address after: 610041 nine Xing Xing Road 16, hi tech Zone, Sichuan, Chengdu Patentee after: MAIPU COMMUNICATION TECHNOLOGY Co.,Ltd. Address before: 610041 15-24 floor, 1 1 Tianfu street, Chengdu high tech Zone, Sichuan Patentee before: MAIPU COMMUNICATION TECHNOLOGY Co.,Ltd. |
|
CP02 | Change in the address of a patent holder |