主从站通信波特率自动匹配的制作方法

文档序号:12490730阅读:616来源:国知局
主从站通信波特率自动匹配的制作方法与工艺

本发明涉及电子与通信工程技术领域,具体涉及主从站通信波特率自动匹配。



背景技术:

串口通信的前提是通信设备之间有着相同的波特率,主从站串口通信、被广泛应用的通信协议,它描述了一个集中器及协议转换器请求访问其它设备的过程,如何回应来自其它设备的请求,以及怎样侦测错误并记录。在RS-485总线上,大部分采用主从通信方式,一台主机,连接多从站。主机与从站通信主要依靠从站ID号来标识,使主站与相应的从站进行数据交换。而主站与从站通信的前提是,主站与从站通信的波特率要一致,现有的技术主要采用拨码开关来设置每台从站的波特率或通过软件来设置从站的波特率,在使用时只要主站的波特发生更改,就要通过拨码开关或软件对通信总线上设备就要每台设置波特率,使用起来很不方便,特别在整个系统运行起来以后通信不稳定,需要改变总线的波特率时,所需要的时间较长严重的影响系统的使用。

RS-485总线通信,连接在同一总线上的设备通信波特率必须一致,现有RS-485通信的设波特率设置都是通过拨码开发、软件或其他方式单台进行设置,需要更改总线通信的波特率必须对总线上的每台设备进行设置,在一条总线上可能有几十台设备,每台设备相距几十米到几百米,有可能上千米,整个系统运行起来以后如果通信不稳定,需要降低通信波特率来增强通信的稳定性的时候,就需要将停止整个总线设备运行,通过拨码开发、软件或其他方式人工单台进行设置,设置完以后重新运行整个总线上的设备,这个过程需要几十分钟到几个小时,1、增加整个系统的维护人工成本;2、停止整个总线设备运行几十分钟到几个小时会给整个系统带来严重后果。



技术实现要素:

本发明的目的是提供主从站通信波特率自动匹配,以实现主从站波特率的快速自动匹配。

本发明是这样实现的,主从站通信波特率自动匹配的配置步骤如下:

①主从站约定一组波特率;

②主从站约定0xAA作为校验报文;

③从站上电时设置串口的波特率为默认的波特率,等待接收串口总线上的校验报文并监控第一个字节的脉冲宽度,如果连续3次接收到的报文与约定好的校验报文不一致,则根据脉冲宽度计算波特率,将约定好的波特率与计算出来的波特率进行对比,然后选择最接近的约定波特率作为从站的通信波特率。

优选的,所述主从站约定的一组波特率为9600、19000、38400、57600、93750、1115200、187500、250000、300000、500000、1000000、2000000、2500000bit/s。

本发明的有益效果是,现有自动匹配波特率的方式有人工方式即每台从站手动设置,耗时长,工作量大;也有软件方式,主要的方式是主从站约定几种波特率,然后一个个枚举,一旦从站收到的报文与约定的校验报文一致,则说明该波特率正确,这种方式相对人工方式耗时短,工作量也小,但是本专利通过计算脉冲宽度最终计算出波特率,而不需要一个个去枚举,因此本专利效率更高,匹配时间更短。

本发明通过改进技术实现了主从站波特率的自动匹配,设置一次波特率的时间只需要几秒钟到几分钟,降低了维护成本。主站与从站进行通信,能相互发送指令并被处理,主从站双方的通信波特率保持一致,保证了通信的指令能被正确接收。

附图说明

图1是本发明的实现流程图;

图2是本发明的硬件连接图;

图3是0XAA波形图。

具体实施方式

下面结合实施例对本发明的具体实施方式作进一步详细说明:

如图1-图3所示,主从站通信波特率自动匹配的配置步骤如下:

①主从站约定几种波特率。主从站设备通讯部分的硬件连接如图1所示 ,主站设备要向从站设备发出指令主要通过微控制单元(MCU)发出代表业务逻辑的数字信号,数字信号再经RS485串口模块进行数字信号到模拟信号的转换,模拟信号经过电缆线进行传输,从站设备从电缆线上接收到由主站发出的模拟信号后,经从站的RS485串口模块进行模拟信号到数字信号的转换,再将数字信号发送给从站的微控制单元(MCU)进行处理,反之从站要发出指令到主站也是如此。

根据电、传输介质等物理特性结合串口设备使用的要求,串口设备的波特率不能是任意的数值,例如常用的电话线传输介质,其带通是300—3khz,当时HAYES先搞的modem,所以用的2400hz信号,对应波特率是2400。由于基本频率确定了,以后采用的提高通讯速率的方法都是在2400基础上倍频的,所以形成了9600,19200,因此主站与从站所设置的波特率只能从一定范围数值的波特率中进行选择,主从站约定几种波特率(9600、19000、38400、57600、93750、1115200、187500、250000、300000、500000、1000000、2000000、2500000bit/s)。

②主从站约定0xAA作为校验报文。通信开始时先让主站设备发出校验报文0XAA的波形如图2,这样的波形有利于计算一个BIT的脉冲宽度。

③从站上电时设置串口的波特率为默认的波特率,等待接收串口总线上的校验报文并监控第一个字节的脉冲宽度,如果连续3次接收到的报文与约定好的校验报文不一致,则根据脉冲宽度计算波特率,将约定好的波特率与计算出来的波特率进行对比,然后选择最接近的约定波特率作为从站的通信波特率。

计算一个BIT的脉冲宽度:如图1所示硬件的GPIO脚设置成上升沿触发,并开一个定时器,当每次接收到3次错误报文时,使能GPIO的中断及打开定时器,每次上升沿中断时记录定时当前的值T1把这次的值T-T1(前一次中断时的定时器的值),差值为TZ,取最小的TZ等待一个报文接收完时取最小的TZ值(保证是一BIT的脉冲宽度)作为脉冲宽度,TM=TZ*定时器的时间间隔(单位为NS)。

计算波特率:根据上个步骤得出的脉冲宽度TM代入到公式BUAD=1S*1000000000(NS)/TM,这种计算存在一定误差(由于定时器精度有限),所以最后还要根据从站设备与主站设备已约定好的波特率中选择一种与计算出来的BUAD最近值的波特率作为设置串口的波特率来消除这种误差。以上所述仅是本发明的优选实施方式,应当指出,对于本领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应当视为在本发明的保护范围之内。

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