Rs485通讯端口自动波特率和通讯地址检测方法

文档序号:7995163阅读:7606来源:国知局
Rs485通讯端口自动波特率和通讯地址检测方法
【专利摘要】本发明公开了一种RS485通讯端口自动波特率和通讯地址检测方法,即本方法当主机与单台从机连接时,主机以广播模式发送固定握手协议,每种波特率一次,直到有从机响应建立通信联系;当主机与多台从机连接时,主机对每台从机地址发送一条握手协议,从机解码并确认为是发送给本从机的握手协议时,该从机应答主机给出站号,否则该从机不作应答;主机收到从机应答,则解码并建立通信联系,记录与该从机通信的波特率和站号,如无应答则进入下个循环。本方法可准确检测RS485通讯端口自动波特率和通讯地址,方便实现主从机间的通信联系,免去硬件的额外开销。也避免了通讯时发生干扰而引起的误差。
【专利说明】RS485通讯端口自动波特率和通讯地址检测方法
【技术领域】
[0001]本发明涉及一种RS485通讯端口自动波特率和通讯地址检测方法。
【背景技术】
[0002]RS485通讯端口是一种被广泛使用的数据通信总线,常应用在集中控制枢纽与分散控制单元之间。若信号传输距离或线路上节点数超过芯片额定参数时,如何保证信号在线路上的准确传输是通信系统十分重要的任务。RS485通讯端口采用差分信号负逻辑,+2V~+6V表示“O”,- 6V~-2V表示“I”。RS485有两线制和四线制两种接线,四线制是全双工通讯方式,两线制是半双工通讯方式。在RS485通信网络中一般采用的是主从通信方式,即一个主机带多个从机。
[0003]由于RS-485通讯接口标准出现较早,难免有不足之处,主要有以下几点:
无法自动检测波特率和从机站号。两线制端口使用一根信号输出线和一根信号返回线而构成共地的传输形式,这种共地传输容易产生共模干扰,所以抗噪声干扰性弱。这样使得RS485通讯端口自动波特率和通讯地址检测无法做到简便通用。
[0004]现有的方法是采用检测一个单独位时间。即主机发送一个特定的字符或字符串,从机根据不同的波特率接受到的数据也不同,从而自动调整与主机匹配的波特率,以建立与主机的通信联系。但该方法只能检测波特率,无法检测从机的站号,主机还是无法与从机实现通讯。而且如果发生干扰,尤其是半双工通讯方式,那么有可能从机的解析将发生错误,得到的波特率也会出错。通常通过手动试探重复更改相应参数,才能建立主从机的通信联系。如此严重影响RS485通讯端口的使用,采用RS485通讯端口建立主从机通信联系变得较为困难。其他也有增加专用的检测电路,增加了硬件开销及成本。

【发明内容】

[0005]本发明所要解决的技术问题是提供一种RS485通讯端口自动波特率和通讯地址检测方法,利用本方法可准确检测RS485通讯端口自动波特率和通讯地址,方便实现主从机间的通信联系,免去硬件的额外开销。也避免了通讯时发生干扰而引起的误差。
[0006]为解决上述技术问题,本发明RS485通讯端口自动波特率和通讯地址检测方法包括如下步骤:
步骤一、当主机与单台从机连接时,主机以RS485通讯端口广播模式发送固定的握手协议,每种波特率一次,直到有从机响应为止,并以该从机响应的波特率和站号建立通信联系;
步骤二、当主机与多台从机连接时,主机对每台从机地址发送一条握手协议,各台从机收到握手协议后开始解码,当确认是主机发送给本从机的握手协议时,该从机发送应答给主机,告知主机本从机的站号,如主机发送的握手协议不是访问本从机,则该从机不作应答;
步骤三、如果主机收到从机应答,则解码应答并建立通信联系,记录下当前与该从机通信的波特率和站号,如果主机没有收到应答,则重复执行步骤二进入下个循环。
由于本发明RS485通讯端口自动波特率和通讯地址检测方法采用了上述技术方案,即本方法当主机与单台从机连接时,主机以广播模式发送固定握手协议,每种波特率一次,直到有从机响应建立通信联系;当主机与多台从机连接时,主机对每台从机地址发送一条握手协议,从机解码并确认为是发送给本从机的握手协议时,该从机应答主机给出站号,否则该从机不作应答;主机收到从机应答,则解码并建立通信联系,记录与该从机通信的波特率和站号,如无应答则进入下个循环。本方法可准确检测RS485通讯端口自动波特率和通讯地址,方便实现主从机间的通信联系,免去硬件的额外开销。也避免了通讯时发生干扰而引起的误差。
【专利附图】

【附图说明】
[0007]下面结合附图和实施方式对本发明作进一步的详细说明:
图1为本发明RS485通讯端口自动波特率和通讯地址检测方法流程图。
【具体实施方式】
[0008]如图1所示,本发明RS485通讯端口自动波特率和通讯地址检测方法包括如下步骤:
步骤一、当主机与单台从机连接时,主机以RS485通讯端口广播模式发送固定的握手协议,每种波特率一次,直到有从机响应为止,并以该从机响应的波特率和站号建立通信联系;
步骤二、当主机与多台从机连接时,主机对每台从机地址发送一条握手协议,各台从机收到握手协议后开始解码,当确认是主机发送给本从机的握手协议时,该从机发送应答给主机,告知主机本从机的站号,如主机发送的握手协议不是访问本从机,则该从机不作应答;
步骤三、如果主机收到从机应答,则解码应答并建立通信联系,记录下当前与该从机通信的波特率和站号,如果主机没有收到应答,则重复执行步骤二进入下个循环。
[0009]本方法采用在主机与从机间发送握手协议及作相应应答,从而建立主从机之间的通信联系,免去了增加专用电路的硬件开销,也避免了通讯时发生干扰而引起的误差以及为建立通信联系而进行的繁杂的手工调试,节省了大量的时间和人力资源,提高工作效率。由于RS485通讯的特性,总线上只能有一方发送数据,为避免应答冲突,当多台从机串联时,主机需要对每个地址的从机发送握手协议,收到从机应答后主机则记录下从机站号和建立通信联系的波特率,如此用户无需手动修改从机的通讯参数,就能实现主机与从机之间建立通讯联系。
【权利要求】
1.一种RS485通讯端口自动波特率和通讯地址检测方法,其特征在于本方法包括如下步骤: 步骤一、当主机与单台从机连接时,主机以RS485通讯端口广播模式发送固定的握手协议,每种波特率一次,直到有从机响应为止,并以该从机响应的波特率和站号建立通信联系; 步骤二、当主机与多台从机连接时,主机对每台从机地址发送一条握手协议,各台从机收到握手协议后开始解码,当确认是主机发送给本从机的握手协议时,该从机发送应答给主机,告知主机本从机的站号,如主机发送的握手协议不是访问本从机,则该从机不作应答; 步骤三、如果主机收到从机应答,则解码应答并建立通信联系,记录下当前与该从机通信的波特率和站号,如果主机没有收到应答,则重复执行步骤二进入下个循环。
【文档编号】H04L12/26GK103916284SQ201310003372
【公开日】2014年7月9日 申请日期:2013年1月6日 优先权日:2013年1月6日
【发明者】肖智明 申请人:上海开通数控有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1