CN107147553B - 从站波特率及帧格式的调整方法、调整装置及调整设备 - Google Patents
从站波特率及帧格式的调整方法、调整装置及调整设备 Download PDFInfo
- Publication number
- CN107147553B CN107147553B CN201710324501.9A CN201710324501A CN107147553B CN 107147553 B CN107147553 B CN 107147553B CN 201710324501 A CN201710324501 A CN 201710324501A CN 107147553 B CN107147553 B CN 107147553B
- Authority
- CN
- China
- Prior art keywords
- frame
- baud rate
- data
- rule
- monitored
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/4013—Management of data rate on the bus
-
- 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/0006—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format
-
- 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/0006—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format
- H04L1/0007—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format by modifying the frame length
-
- 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/0078—Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
- H04L1/0079—Formats for control data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L2012/40208—Bus networks characterized by the use of a particular bus standard
- H04L2012/40228—Modbus
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Communication Control (AREA)
Abstract
本发明公开了一种从站波特率及帧格式的调整方法、调整装置及调整设备,其中,所述调整方法包括:触发从站以当前的波特率及当前的帧格式监听主站的帧数据;以预设的帧规则对监听到的帧数据进行识别;若所述帧数据可被识别,则将所述从站的当前的波特率确定为所述从站与所述主站通信的波特率,且将所述从站的当前的帧格式确定为所述从站与所述主站通信的帧格式;若所述帧数据不可被识别,则调整所述从站的当前的波特率和/或当前的帧格式,并返回执行所述触发从站以当前的波特率及当前的帧格式监听主站的帧数据的步骤以及后续步骤,直至监听到的帧数据可被识别。本发明方案使得从站能够自主调节与主站通讯时的波特率及帧格式,提高了从站的兼容性。
Description
技术领域
本发明涉及数据传输技术领域,具体涉及一种从站波特率及帧格式的调整方法、调整装置及调整设备。
背景技术
Modbus是一种工业现场总线协议,其遵循一主多从的通讯结构,并且支持标准的RS232、RS422、RS485及以太网设备,在可编程逻辑控制器(Programmable LogicController,PLC)系统中广泛应用。在Modbus网络中,只有一个主机,而主从设备的波特率和帧格式必须保持一致才能正常通讯,其中,波特率是对信号传输速率的一种度量,一般以波特(baud)为单位。
为了设置Modbus从站的波特率和帧格式,以便适应市场上各种各样的Modbus主机,传统的做法为使用拨码开关、TF卡(Trans-flash Card)或其他通讯口配置波特率、帧格式,使用起来比较繁琐,需要人工进行各种调试,且增加了额外的一些硬件成本。
发明内容
有鉴于此,本发明提供了一种从站波特率及帧格式的调整方法及调整装置,旨在实现从站对主站波特率及帧格式的自适应识别,减少从站硬件成本,提高从站的兼容性。
本发明的第一方面提供了一种从站波特率及帧格式的调整方法,所述调整方法包括:
触发从站以当前的波特率及当前的帧格式监听主站的帧数据,其中,初始的波特率及初始的帧格式为预设的波特率及帧格式;
以预设的帧规则对监听到的帧数据进行识别,其中,所述帧规则包括如下一种以上:帧长度的规则,奇偶校验的规则,冗余校验的规则及停止位的规则;
若所述帧数据可被识别,则将所述从站的当前的波特率确定为所述从站与所述主站通信的波特率,且将所述从站的当前的帧格式确定为所述从站与所述主站通信的帧格式;
若所述帧数据不可被识别,则调整所述从站的当前的波特率和/或当前的帧格式,并返回执行所述触发从站以当前的波特率及当前的帧格式监听主站的帧数据的步骤以及后续步骤,直至监听到的帧数据可被识别。
本发明的第二方面提供了一种从站波特率及帧格式的调整装置,所述调整装置包括:
数据监听单元,用于触发从站以当前的波特率及当前的帧格式监听主站的帧数据,其中,初始的波特率及初始的帧格式为预设的波特率及帧格式;
数据识别单元,用于以预设的帧规则对所述数据监听单元监听到的帧数据进行识别,其中,所述帧规则包括如下一种以上:帧长度的规则,奇偶校验的规则,冗余校验的规则及停止位的规则;
波特率及帧格式确定单元,用于当所述数据识别单元确定所述帧数据可被识别时,将所述从站的当前的波特率确定为所述从站与所述主站通信的波特率,且将所述从站的当前的帧格式确定为所述从站与所述主站通信的帧格式;
波特率及帧格式调整单元,用于当所述数据识别单元确定所述帧数据不可被识别时,调整所述从站的当前的波特率和/或当前的帧格式;
所述数据监听单元在所述波特率及帧格式调整单元调整所述从站的当前的波特率和/或当前的帧格式之后触发。
本发明的第三方面提供了一种从站波特率及帧格式的调整设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时可实现如上所述的从站波特率及帧格式的调整方法。
本发明的第四方面提供了一种计算机刻度存储介质,所述计算机程序被处理器执行时实现如上所述的从站波特率及帧格式的调整方法。
由上可见,在本发明中,首先触发从站以当前的波特率及当前的帧格式监听主站的帧数据,其中,初始的波特率及初始的帧格式为预设的波特率及帧格式,然后以预设的帧规则对监听到的帧数据进行识别,其中,所述帧规则包括如下一种以上:帧长度的规则,奇偶校验的规则,冗余校验的规则及停止位的规则,若所述帧数据可被识别,则将所述从站的当前的波特率确定为所述从站与主站通信的波特率,且将所述从站的当前的帧格式确定为所述从站与主站通信的帧格式,若所述帧数据不可被识别,则调整所述从站的当前的波特率和/或当前的帧格式,并返回执行所述触发从站以当前的波特率及当前的帧格式监听主站的帧数据的步骤以及后续步骤,直至监听到的帧数据可被识别。由于预设了帧规则,使得从站只有在波特率及帧格式均与主站匹配的情况下才能正确识别监测到的帧数据,而当数据无法被识别时,则会对从站波特率和/或帧格式进行调整,因此,本发明使得从站不需要设置额外的硬件设备就能够自主地调节与主站通讯时的波特率及帧格式,大大提升了从站的兼容性,使其能够与市面上具备各种各样的波特率和帧格式组合的Modbus主机通讯。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的从站波特率及帧格式的调整方法的实现流程图;
图2是本发明实施例提供的从站波特率及帧格式的调整方法步骤S102的第一种具体实现流程图;
图3是本发明实施例提供的从站波特率及帧格式的调整方法步骤S102的第二种具体实现流程图;
图4是本发明实施例提供的从站波特率及帧格式的调整方法步骤S102的第三种具体实现流程图;
图5是本发明实施例提供的从站波特率及帧格式的调整方法步骤S102的第四种具体实现流程图;
图6是本发明实施例提供的从站波特率及帧格式的调整装置的示意图;
图7是本发明实施例提供的从站波特率及帧格式的调整设备的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
实施例一
图1示出了本发明实施例一提供的从站波特率及帧格式的调整方法的实现流程,详述如下:
在步骤S101中,触发从站以当前的波特率及当前的帧格式监听主站的帧数据。
在本发明实施例中,首先触发从站以当前的波特率及当前的帧格式监听主站的帧数据,其中,初始的波特率及初始的帧格式为预设的波特率及帧格式。由于Modbus协议又细分为远程终端设备(Remote Terminal Unit,RTU)模式及美国信息交换码(AmericanStandard Code for Information Interchange,ASCII)模式,为了更好的解释本发明实施例的方案,后续以Modbus-RTU模式为例子对本发明实施例的方案进行说明。可选地,从站在首次上电时,可以以8位数据位、1位停止位、无校验位作为初始的帧格式,以9600bps作为初始的波特率,监听主站的Modbus-RTU帧数据。需要注意的是,上述初始的帧格式及初始的波特率仅仅是示意性的,可以根据用户需求由用户预先设定上述初始的帧格式及初始的波特率,此处不作限定。具体地,由于在Modbus-RTU模式下,主站可能采用如下表所示的任一种帧格式:
序号 | 帧格式 |
1 | 8位数据位,1位停止位,无校验 |
2 | 8位数据位,1位停止位,奇校验 |
3 | 8位数据位,1位停止位,偶校验 |
4 | 8位数据位,2位停止位,无校验 |
5 | 8位数据位,2位停止位,奇校验 |
6 | 8位数据位,2位停止位,偶校验 |
因而,在设定初始的从站的帧格式时,可以参照上表,选择其中一种作为初始的从站帧格式。
在步骤S102中,以预设的帧规则对监听到的帧数据进行识别。
在本发明实施例中,从站继续以预设的帧规则对步骤S101监听到的帧数据进行识别,其中,上述帧规则包括如下一种以上:帧长度的规则,奇偶校验的规则,冗余校验的规则及停止位的规则。如果在上述步骤S101中,从站的当前的帧格式不包含奇偶校验位,则在步骤S102中的帧规也无需包括奇偶校验的规则。进一步地,当帧长度的规则,奇偶校验的规则,冗余校验的规则及停止位的规则均包括在帧规则中时,可以以帧长度的规则,奇偶校验的规则,冗余校验的规则及停止位的规则的顺序,依次检测上述监听到的帧数据能否被识别。
在步骤S103中,若上述帧数据可被识别,则将上述从站的当前的波特率确定为上述从站与上述主站通信的波特率,且将上述从站的当前的帧格式确定为上述从站与上述主站通信的帧格式。
在本发明实施例中,若上述帧数据符合上述步骤S102中预设的帧规则中的所有规则,则确定上述帧数据可被识别,可以将上述从站的当前的波特率确定为上述从站与上述主站通信的波特率,并将上述从站的当前帧格式确定为上述从站与上述主站通信的帧格式。此时,从站的波特率和帧格式与主站匹配成功,从站还可以将当前的波特率及帧格式保存起来,在下次从站上电启动时,可以直接使用该保存的波特率及帧格式与主站通讯,免去再次识别主站波特率及帧格式的过程。
在步骤S104中,若上述帧数据不可被识别,则调整上述从站的当前的波特率和/或当前的帧格式,并返回执行上述触发从站以当前的波特率及当前的帧格式监听主站的帧数据的步骤以及后续步骤,直至监听到的帧数据可被识别。
在本发明实施例中,若上述帧数据不符合上述步骤S102中预设的帧规则中的任一项规则,则确定上述帧数据不可被识别,需要调整从站当前的波特率和/或当前的帧格式,并返回执行步骤S101以及后续步骤进行重新监听及识别,直至监听到的帧数据可被识别。
可选地,为了更好地说明如何对监听到的帧数据进行识别,图2示出了上述帧规则包括帧长度的规则时,上述步骤S102的具体实现流程:
在步骤S201中,检测上述监听到的帧数据的长度是否在预设的帧长度区间内。
在本发明实施例中,可以对上述步骤S101监听到的帧数据的长度进行判定,检测上述监听到的帧数据的长度是否在预设的帧长度区间内。上述预设的帧长度区间与采取的通讯协议的模式有关。当采取的是Modbus-RTU模式时,上述预设的帧长度区间为Modbus-RTU模式的帧长度区间;当采取的是Modbus-ASCII模式时,上述预设的帧长度区间为Modbus-ASCII模式的帧长度区间。
在步骤S202中,若上述监听到的帧数据的长度不在预设的帧长度区间内,则确定上述帧数据不可被识别。
在本发明实施例中,当上述步骤S201检测到上述监听到的帧数据的长度不在预设的帧长度区间内时,则表明以上述帧数据是错误的帧数据,不可被识别。此时,有很大的可能是因为从站当前的波特率与主站采用的波特率不匹配而导致的,因而可以进一步调整从站当前的波特率,重新监听数据并对监听到的数据再次进行识别。
可选地,为了更好地说明如何对监听到的帧数据进行识别,图3示出了上述帧规则包括奇偶校验的规则时,上述步骤S102的具体实现流程:
在步骤S301中,检测上述监听到的帧数据中数值为1的比特位的个数是否满足上述监听到的帧数据采用的奇偶校验的规则。
在本发明实施例中,利用串口检测上述步骤S101监听到帧数据中数值为1的比特位的个数是否满足上述监听到的帧数据采用的奇偶校验的规则。如果上述监听到的数据采用的是奇校验,则该帧数据中数值为1的比特位的个数需要为奇数;如果上述监听到的数据采用的是偶校验,则该帧数据中数值为1的比特位的个数需要为偶数。
在步骤S302中,若上述监听到的帧数据中数值为1的比特位的个数无法满足上述监听到的帧数据采用的奇偶校验的规则,则确定上述帧数据不可被识别。
在本发明实施例中,如果上述步骤S301中检测到上述监听到的帧数据中数值为1的比特位的个数不满足奇偶校验的规则,则表明以上述帧数据是错误的帧数据,不可被识别。此时,有很大的可能是因为从站当前的波特率与主站采用的波特率不匹配而导致的,因而可以进一步调整从站当前的波特率,重新监听数据并对监听到的数据再次进行识别。
可选地,为了更好地说明如何对监听到的帧数据进行识别,图4示出了上述帧规则包括冗余校验的规则,且冗余校验具体为循环冗余校验时,上述步骤S102的具体实现流程:
在步骤S401中,基于上述监听到的帧数据的循环冗余校验位确定上述监听到的帧数据的生成多项式。
在步骤S402中,以上述监听到的帧数据的生成多项式对上述监听到的帧数据进行模二除法计算。
在本发明实施例中,由于采用Modbus-RTU模式作为例子说明,因而此处的冗余校验为循环冗余校验;实际上,如果主站采用的是Modbus-ASCII模式,则此处的冗余校验需相应更改为纵向冗余校验。对于循环冗余校验来说,主站与从站通讯的过程中会约定一个不变的生成多项式,利用该不变的生成多项式产生循环冗余校验位。对于不同的循坏冗余校验位的形式,例如CRC8、CRC16或CRC32等,其相应的生成多项式的标准也并不相同。根据上述监听到的数据的循环冗余校验位,逆推得到生成多项式,然后以上述生成多项式对上述监听到的帧数据进行模二除法计算。
在步骤S403中,若上述模二除法计算的余数不为0,则确定上述帧数据不可被识别。
在本发明实施例中,如果上述模二除法计算的余数为0,则表明以上述帧数据是错误的帧数据,不可被识别。此时,有很大的可能是因为从站当前的波特率与主站采用的波特率不匹配而导致的,因而可以进一步调整从站当前的波特率,重新监听数据并对监听到的数据再次进行识别。
可选地,为了更好地说明如何对监听到的帧数据进行识别,图5示出了上述帧规则包括停止位的规则时,上述步骤S102的具体实现流程:
在步骤S501中,获取上述监听到的帧数据的理论字符时间。
在步骤S502中,测量上述监听到的帧数据的实际字符时间。
在本发明实施例中,对于Modbus-RTU模式来说,通常是在监听到的帧数据满足循环冗余校验的规则的前提下,才对上述监听到的帧数据是否满足停止位的规则进行检测。在帧数据循环冗余校验正确的前提下,能够得到以下特征值:波特率(Baud)、数据位(Databits)、校验位(Parity)及帧长度(Databytes),上述帧长度即为接收到的帧数据的字节数;而对于停止位(StopBits)这一特征值来说,仍无法确定停止位的具体位数。此时,可能出现主站发送的Modbus-RTU帧数据能够被从站正确接收,但是从站响应的数据主站不能正确接收的情况,此问题是由串口帧格式决定的,由于串口波形依次由起始位、数据位、校验位、停止位组成,停止位为高电平,串口没有活动时也是高电平,因此上述从站无法区分是1位还是2位停止位,也即说,此时只要上述监听到的帧数据满足停止位的规则,即可使得主站与从站正常通讯。
其中,理论字符时间,即单个字符占用的理论时间Ttheo的计算公式为:
假设实际测量的Modbus-RTU帧时间为Tsum,那么实际字符时间,即单个字符的实际时间Treal的计算公式为:
其中,通常在Modbus通讯中,帧数据中的字节流都是不间断的,即,字符间没有空闲时间。基于该特点,可以通过如下过程测量实际字符时间:开启串口的字符接收中断;在字符接收中断中,高精度定时器开始测量时间;在下一字符接收中断中,高精度定时器结束测量时间。由于上述过程可能导致单个字符的时间测量误差较大,因而,还可以等到全部字节流接收完成后,统计帧数据所用时间,然后再通过上式计算单个字符的平均时间。由于是在串口的字符接收中断中才开始测量时间,因此第一个字符所用的时间没有被定时器测量,为了使计算得到的实际字符时间更为准确,在统计帧数据所用时间时,应当减去一个字符进行计算。
进一步地,还可以使用另一个定时器来对串口数据没有活动时的时间进行计时,以便得出帧数据的结束边界,其中,当串口数据没有活动的时间达到了预设的超时时间时,则表明达到了帧数据的结束边界。具体地,可以选取帧格式组合中最长的时间作为基点,即选取8位数据位、1位奇偶校验位、2位停止位的帧格式作为基点,加上起始位,共12位宽度时间作为预设的超时时间。在实际应用中,由于定时器本身有误差以及软件中断延迟等原因,为了提高系统的冗余度和可靠性,可以选择1.5~3个字符时间作为预设的超时时间。在不同的波特率下,可以采用如下计算公式计算预设的超时时间:
其中,以波特率Baud为9600bps为例,一个字符的最大的时间为1250us,通过上式可得到预设的超时时间为2000us。
在步骤S503中,计算上述理论字符时间与上述实际字符时间的字符时间差值。
在本发明实施例中,计算上述步骤S501获得的理论字符时间与上述步骤S502获得的实际字符时间的字符时间差值,其公式为:
Ereal=Ttheo-Treal
其中,上述公式中的Ereal即为理论字符时间与实际字符时间的字符时间差值。
在步骤S504中,检测上述字符时间差值是否在预设的字符时间差值区间内。
在步骤S505中,若上述字符时间差值不在预设的字符时间差值区间内,则确定上述帧数据不可被识别。
在本发明实施例中,检测上述字符时间差值是否在预设的字符时间差值区间内。假定允许的误差为Etheo,那么,当满足|Ereal|≤|Etheo|时,即上述字符时间差值在预设的字符时间差值区间内,此时可以确定上述帧数据可以被正确识别,从站当前的波特率及帧格式与主站匹配;当不满足|Ereal|≤|Etheo|时,即上述字符时间差值不在预设的字符时间差值区间内,而在帧数据满足循环冗余校验的规则的前提下,很有可能是从站与主站帧格式不匹配导致的帧数据不可被识别,因而需要进一步调整从站当前的帧格式,重新监听数据并对监听到的数据再次进行识别。
由上可见,通过本发明实施例,从站在以当前的波特率及帧格式监听到数据后,通过帧长度的规则、奇偶校验的规则和/或冗余校验的规则对监听到的数据进行识别,以识别出主站的波特率,并在识别出主站的波特率后通过停止位的规则对监听到的数据进行进一步识别,以识别出主站的帧规则。当监听到的数据不可被识别时,从站会切换波特率和/或帧格式重新监听,直至监听到的数据可以被识别为止,在此过程中从站不需要设置额外的硬件设备就能够自主地调节与主站通讯时的波特率及帧格式,大大提升了从站的兼容性,使其能够与市面上具备各种各样的波特率和帧格式组合的Modbus主机通讯。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
实施例二
对应于上文实施例一的从站波特率及帧格式的调整方法,图6示出了本发明实施例提供的从站波特率及帧格式的调整装置的结构框图,为了便于说明,仅示出了与本发明实施例相关的部分。
参照图6,该从站波特率及帧格式的调整装置6包括:数据监听单元61,数据识别单元62,波特率及帧格式确定单元63,波特率及帧格式调整单元64。
其中,数据监听单元61,用于触发从站以当前的波特率及当前的帧格式监听主站的帧数据,其中,初始的波特率及初始的帧格式为预设的波特率及帧格式;
数据识别单元62,用于以预设的帧规则对上述数据监听单元61监听到的帧数据进行识别,其中,上述帧规则包括如下一种以上:帧长度的规则,奇偶校验的规则,冗余校验的规则及停止位的规则;
波特率及帧格式确定单元63,用于当上述数据识别单元62确定上述帧数据可被识别时,将上述从站的当前的波特率确定为上述从站与上述主站通信的波特率,且将上述从站的当前的帧格式确定为上述从站与上述主站通信的帧格式;
波特率及帧格式调整单元64,用于当上述数据识别单元62确定上述帧数据不可被识别时,调整上述从站的当前的波特率和/或当前的帧格式;
上述数据监听单元61在上述波特率及帧格式调整单元64调整上述从站的当前的波特率和/或当前的帧格式之后触发。
可选地,上述帧规则包括帧长度的规则,上述数据识别单元62,包括:
帧长度检测子单元,用于检测上述监听到的帧数据的长度是否在预设的帧长度区间内;
识别结果确定子单元,用于当上述监听到的帧数据的长度不在预设的帧长度区间内时,确定上述帧数据不可被识别。
可选地,上述帧规则包括奇偶校验的规则,上述数据识别单元62,包括:
奇偶检验检测子单元,用于检测上述监听到的帧数据中数值为1的比特位的个数是否满足上述监听到的帧数据采用的奇偶校验的规则;
识别结果确定子单元,用于当上述监听到的帧数据中数值为1的比特位的个数无法满足上述监听到的帧数据采用的奇偶校验的规则时,确定上述帧数据不可被识别。
可选地,上述帧规则包括冗余校验的规则,上述冗余校验具体为循环冗余校验,上述数据识别单元62,包括:
生成多项式确定子单元,用于基于上述监听到的帧数据的循环冗余校验位确定上述监听到的帧数据的生成多项式;
模二除法计算子单元,用于以上述监听到的帧数据的生成多项式对上述监听到的帧数据进行模二除法计算;
识别结果确定子单元,用于当上述模二除法计算的余数不为0时,确定上述帧数据不可被识别。
可选地,上述帧规则包括停止位的规则,上述数据识别单元62,包括:
理论字符时间获取子单元,用于获取上述监听到的帧数据的理论字符时间;
实际字符时间测量子单元,用于测量上述监听到的帧数据的实际字符时间;
字符时间差值计算子单元,用于计算上述理论字符时间与上述实际字符时间的字符时间差值;
字符时间差值检测子单元,用于检测上述字符时间差值是否在预设的字符时间差值区间内;
识别结果确定子单元,用于当上述字符时间差值不在预设的字符时间差值区间内时,确定上述帧数据不可被识别。
由上可见,通过本发明实施例,从站波特率及帧格式的调整装置能够使得从站在以当前的波特率及帧格式监听到数据后,通过帧长度的规则、奇偶校验的规则和/或冗余校验的规则对监听到的数据进行识别,以识别出主站的波特率,并在识别出主站的波特率后通过停止位的规则对监听到的数据进行进一步识别,以识别出主站的帧规则。当监听到的数据不可被识别时,从站会切换波特率和/或帧格式重新监听,直至监听到的数据可以被识别为止,在此过程中从站不需要设置额外的硬件设备就能够自主地调节与主站通讯时的波特率及帧格式,大大提升了从站的兼容性,使其能够与市面上具备各种各样的波特率和帧格式组合的Modbus主机通讯。
实施例三
图7是本发明实施例提供的从站波特率及帧格式的调整设备的示意图。如图7所示,该实施例的从站波特率及帧格式的调整设备7包括:处理器70、存储器71以及存储在上述存储器71中并可在上述处理器70上运行的计算机程序72。上述处理器70执行上述计算机程序72时实现上述方法实施例一中的步骤,例如图1所示的步骤S101至S104。或者,上述处理器70执行上述计算机程序72时实现上述各装置实施例中各单元的功能,例如图6所示单元61至64的功能。
示例性的,上述计算机程序72可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在上述存储器71中,并由上述处理器70执行,以完成本发明。上述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述上述计算机程序72在上述从站波特率及帧格式的调整设备7中的执行过程。例如,上述计算机程序72可以被分割成数据监听单元,数据识别单元,波特率及帧格式确定单元,波特率及帧格式调整单元,各单元具体功能如下:
数据监听单元,用于触发从站以当前的波特率及当前的帧格式监听主站的帧数据,其中,初始的波特率及初始的帧格式为预设的波特率及帧格式;
数据识别单元,用于以预设的帧规则对上述数据监听单元监听到的帧数据进行识别,其中,上述帧规则包括如下一种以上:帧长度的规则,奇偶校验的规则,冗余校验的规则及停止位的规则;
波特率及帧格式确定单元,用于当上述数据识别单元确定上述帧数据可被识别时,将上述从站的当前的波特率确定为上述从站与上述主站通信的波特率,且将上述从站的当前的帧格式确定为上述从站与上述主站通信的帧格式;
波特率及帧格式调整单元,用于当上述数据识别单元确定上述帧数据不可被识别时,调整上述从站的当前的波特率和/或当前的帧格式;
上述数据监听单元在上述波特率及帧格式调整单元调整上述从站的当前的波特率和/或当前的帧格式之后触发。
上述从站波特率及帧格式的调整设备7可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。上述从站波特率及帧格式的调整设备7可包括,但不仅限于,处理器70、存储器71。本领域技术人员可以理解,图7仅仅是从站波特率及帧格式的调整设备7的示例,并不构成对从站波特率及帧格式的调整设备7的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如上述从站波特率及帧格式的调整设备7还可以包括输入输出设备、网络接入设备、总线等。
上述处理器70可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
上述存储器71可以是上述从站波特率及帧格式的调整设备7的内部存储单元,例如从站波特率及帧格式的调整设备7的硬盘或内存。上述存储器71也可以是上述从站波特率及帧格式的调整设备7的外部存储设备,例如上述从站波特率及帧格式的调整设备7上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,上述存储器71还可以既包括上述从站波特率及帧格式的调整设备7的内部存储单元也包括外部存储设备。上述存储器71用于存储上述计算机程序以及上述从站波特率及帧格式的调整设备7所需的其他程序和数据。上述存储器71还可以用于暂时地存储已经输出或者将要输出的数据。
由上可见,通过本发明实施例,从站波特率及帧格式的调整设备使得从站在以当前的波特率及帧格式监听到数据后,通过帧长度的规则、奇偶校验的规则和/或冗余校验的规则对监听到的数据进行识别,以识别出主站的波特率,并在识别出主站的波特率后通过停止位的规则对监听到的数据进行进一步识别,以识别出主站的帧规则。当监听到的数据不可被识别时,从站会切换波特率和/或帧格式重新监听,直至监听到的数据可以被识别为止,在此过程中从站不需要设置额外的硬件设备就能够自主地调节与主站通讯时的波特率及帧格式,大大提升了从站的兼容性,使其能够与市面上具备各种各样的波特率和帧格式组合的Modbus主机通讯。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (8)
1.一种从站波特率及帧格式的调整方法,其特征在于,所述调整方法包括:
触发从站以当前的波特率及当前的帧格式监听主站的帧数据,其中,初始的波特率及初始的帧格式为预设的波特率及帧格式;
以预设的帧规则对监听到的帧数据进行识别,其中,所述帧规则包括如下一种以上:帧长度的规则,奇偶校验的规则,冗余校验的规则及停止位的规则;
若所述帧数据可被识别,则将所述从站的当前的波特率确定为所述从站与所述主站通信的波特率,且将所述从站的当前的帧格式确定为所述从站与所述主站通信的帧格式;
若所述帧数据不可被识别,则调整所述从站的当前的波特率和/或当前的帧格式,并返回执行所述触发从站以当前的波特率及当前的帧格式监听主站的帧数据的步骤以及后续步骤,直至监听到的帧数据可被识别;
其中,所述帧规则包括停止位的规则,所述以预设的帧规则对监听到的帧数据进行识别,包括:
获取所述监听到的帧数据的理论字符时间,所述理论字符时间的计算公式为其中,所述Baud为波特率,所述Databits、Parity及StopBits分别为数据位、校验位及停止位所占用的字符位数;
测量所述监听到的帧数据的实际字符时间,所述实际字符时间的计算公式为其中,所述Tsum为实际测量的帧时间,所述DataBytes为帧长度;
计算所述理论字符时间与所述实际字符时间的字符时间差值;
检测所述字符时间差值是否在预设的字符时间差值区间内;
若所述字符时间差值不在预设的字符时间差值区间内,则确定所述帧数据不可被识别。
2.如权利要求1所述的调整方法,其特征在于,所述帧规则包括帧长度的规则,所述以预设的帧规则对监听到的帧数据进行识别,包括:
检测所述监听到的帧数据的长度是否在预设的帧长度区间内;
若所述监听到的帧数据的长度不在预设的帧长度区间内,则确定所述帧数据不可被识别。
3.如权利要求1所述的调整方法,其特征在于,所述帧规则包括奇偶校验的规则,所述以预设的帧规则对监听到的帧数据进行识别,包括:
检测所述监听到的帧数据中数值为1的比特位的个数是否满足所述监听到的帧数据采用的奇偶校验的规则;
若所述监听到的帧数据中数值为1的比特位的个数无法满足所述监听到的帧数据采用的奇偶校验的规则,则确定所述帧数据不可被识别。
4.如权利要求1所述的调整方法,其特征在于,所述帧规则包括冗余校验的规则,所述冗余校验具体为循环冗余校验,所述以预设的帧规则对监听到的帧数据进行识别,包括:
基于所述监听到的帧数据的循环冗余校验位确定所述监听到的帧数据的生成多项式;
以所述监听到的帧数据的生成多项式对所述监听到的帧数据进行模二除法计算;
若所述模二除法计算的余数不为0,则确定所述帧数据不可被识别。
5.一种从站波特率及帧格式的调整装置,其特征在于,所述调整装置包括:
数据监听单元,用于触发从站以当前的波特率及当前的帧格式监听主站的帧数据,其中,初始的波特率及初始的帧格式为预设的波特率及帧格式;
数据识别单元,用于以预设的帧规则对所述数据监听单元监听到的帧数据进行识别,其中,所述帧规则包括如下一种以上:帧长度的规则,奇偶校验的规则,冗余校验的规则及停止位的规则;
波特率及帧格式确定单元,用于当所述数据识别单元确定所述帧数据可被识别时,将所述从站的当前的波特率确定为所述从站与所述主站通信的波特率,且将所述从站的当前的帧格式确定为所述从站与所述主站通信的帧格式;
波特率及帧格式调整单元,用于当所述数据识别单元确定所述帧数据不可被识别时,调整所述从站的当前的波特率和/或当前的帧格式;
所述数据监听单元在所述波特率及帧格式调整单元调整所述从站的当前的波特率和/或当前的帧格式之后触发;
其中,所述帧规则包括停止位的规则,所述数据识别单元,包括:
理论字符时间获取子单元,用于获取所述监听到的帧数据的理论字符时间,所述理论字符时间的计算公式为其中,所述Baud为波特率,所述Databits、Parity及StopBits分别为数据位、校验位及停止位所占用的字符位数;
实际字符时间测量子单元,用于测量所述监听到的帧数据的实际字符时间,所述实际字符时间的计算公式为其中,所述Tsum为实际测量的帧时间,所述DataBytes为帧长度;
字符时间差值计算子单元,用于计算所述理论字符时间与所述实际字符时间的字符时间差值;
字符时间差值检测子单元,用于检测所述字符时间差值是否在预设的字符时间差值区间内;
识别结果确定子单元,用于当所述字符时间差值不在预设的字符时间差值区间内时,确定所述帧数据不可被识别。
6.如权利要求5所述的调整装置,其特征在于,所述帧规则包括冗余校验的规则,所述冗余校验具体为循环冗余校验,所述数据识别单元,包括:
生成多项式确定子单元,用于基于所述监听到的帧数据的循环冗余校验位确定所述监听到的帧数据的生成多项式;
模二除法计算子单元,用于以所述监听到的帧数据的生成多项式对所述监听到的帧数据进行模二除法计算;
识别结果确定子单元,用于当所述模二除法计算的余数不为0时,确定所述帧数据不可被识别。
7.一种从站波特率及帧格式的调整设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时可实现如权利要求1至4任一项所述的从站波特率及帧格式的调整方法。
8.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述的从站波特率及帧格式的调整方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710324501.9A CN107147553B (zh) | 2017-05-10 | 2017-05-10 | 从站波特率及帧格式的调整方法、调整装置及调整设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710324501.9A CN107147553B (zh) | 2017-05-10 | 2017-05-10 | 从站波特率及帧格式的调整方法、调整装置及调整设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107147553A CN107147553A (zh) | 2017-09-08 |
CN107147553B true CN107147553B (zh) | 2019-12-17 |
Family
ID=59776897
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710324501.9A Active CN107147553B (zh) | 2017-05-10 | 2017-05-10 | 从站波特率及帧格式的调整方法、调整装置及调整设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107147553B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109936640A (zh) * | 2017-12-19 | 2019-06-25 | 苏州阿特斯阳光电力科技有限公司 | 从节点设备的地址分配方法和装置 |
CN108259130A (zh) * | 2017-12-29 | 2018-07-06 | 伟乐视讯科技股份有限公司 | 一种波特率奇偶校验位自适应的Modbus传输系统及方法 |
CN109656172B (zh) * | 2018-12-24 | 2021-06-25 | 深圳市道通科技股份有限公司 | 一种获取波特率的方法、装置 |
CN110489331B (zh) * | 2019-07-15 | 2022-08-30 | 百富计算机技术(深圳)有限公司 | 测试移动通信驱动程序的方法、终端设备和存储介质 |
CN110908940B (zh) * | 2019-10-14 | 2021-03-19 | 百富计算机技术(深圳)有限公司 | 串口通讯参数调整的方法及终端设备 |
CN111277478B (zh) * | 2020-02-20 | 2022-01-18 | 福建师范大学 | 一种基于不同波特率从设备的rs485总线复用控制方法 |
CN113438142B (zh) * | 2021-06-21 | 2023-06-20 | 京东方科技集团股份有限公司 | 一种通信方法、通信系统及储物系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102904688A (zh) * | 2012-10-12 | 2013-01-30 | 北京新雷能科技股份有限公司 | 一种调整波特率的方法和装置 |
CN104052579A (zh) * | 2014-06-26 | 2014-09-17 | 湖南先步信息股份有限公司 | Modbus-rtu通信波特率自动匹配 |
CN105577483A (zh) * | 2016-02-04 | 2016-05-11 | 北京安控科技股份有限公司 | 一种基于Modbus RTU通信协议的从站入网方法 |
-
2017
- 2017-05-10 CN CN201710324501.9A patent/CN107147553B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102904688A (zh) * | 2012-10-12 | 2013-01-30 | 北京新雷能科技股份有限公司 | 一种调整波特率的方法和装置 |
CN104052579A (zh) * | 2014-06-26 | 2014-09-17 | 湖南先步信息股份有限公司 | Modbus-rtu通信波特率自动匹配 |
CN105577483A (zh) * | 2016-02-04 | 2016-05-11 | 北京安控科技股份有限公司 | 一种基于Modbus RTU通信协议的从站入网方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107147553A (zh) | 2017-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107147553B (zh) | 从站波特率及帧格式的调整方法、调整装置及调整设备 | |
CN110908940B (zh) | 串口通讯参数调整的方法及终端设备 | |
CN111177060B (zh) | 串口数据发送方法、接收方法、相应装置及终端设备 | |
EP2849384B1 (en) | Approximate matching method and related device, and communication system | |
CN105068966B (zh) | 串口自动识别方法 | |
CN106294040B (zh) | 光模块状态信息的获取方法和装置 | |
CN112069098B (zh) | 波特率识别方法及装置 | |
CN108011692A (zh) | 一种用于单片机的数据通信方法 | |
TW201029410A (en) | Data communication device, communication control method, and program | |
CN108170630A (zh) | 一种串口通信波特率自适应方法、系统及设备 | |
EP3157185A1 (en) | Electronic device and data verification method | |
EP3118749A1 (en) | System and method of monitoring a serial bus | |
CN103559164A (zh) | 串口波特率识别方法和装置 | |
CN108242977B (zh) | 一种数据处理方法、数据处理装置及电子设备 | |
CN114024795B (zh) | 波特率自适应方法、装置、计算机设备和存储介质 | |
CN116048889A (zh) | 一种机柜服务器线缆连接的检测方法及相关装置 | |
CN110750399A (zh) | 一种串口误码率测试方法及装置、计算机设备、可读存储介质 | |
CN109800565B (zh) | 软件升级方法及终端设备 | |
CN115729872A (zh) | 一种计算设备及pcie线缆连接的检测方法 | |
US9621339B1 (en) | Host devices and data transmission methods | |
CN117200923A (zh) | 一种异步通信方法及装置 | |
CN114095300A (zh) | 自适应速率的数据读写方法及设备 | |
CN113645088A (zh) | 网卡ncsi信号的自动调节方法、系统、装置及可读存储介质 | |
CN114095296A (zh) | 波特率自适应系统、方法及装置 | |
CN115964320A (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 |