本发明涉及一种用于串行帧同步传输数据的通讯方式,尤其涉及一种校验简便、同步精度高的串行帧同步多型锁定控制方法。
背景技术:
现代工业控制中,往往需要很多的独立模块相互配合来共同完成一个复杂的控制过程,很多情况下各模块之间需要进行串口通信。串口的通信协议是提高系统稳定性、准确性及可靠性的必要条件。若要可靠准确地完成特定的通信协议,就需要建立完善的同步机制,提高控制系统的实时性。串口通信中的同步方法很多,有逐次比较的帧同步法、基于ftfo队列的帧同步法,但是这两种同步法,实现同步消耗的时间比较长,较难实现同步。基于有限状态机的帧同步法,虽然较上两种同步法有所提高,但是在接收完一帧数据后还要把系统的接收状态重新设置,否则会影响到下一帧的数据接收,因此这种同步法在同步处理上又存在比较繁琐的缺陷。
技术实现要素:
本发明为了解决上述技术问题,提供一种串行帧同步多型锁定控制方法,其将同步数据帧结构进行优化,帧结构简单,校验简便,同步精度高,有效提高了串行帧数据的同步性和准确性,为控制系统实时稳步运行提供了保证,确保系统通信及控制的实时性和可靠性。
本发明的上述技术问题主要是通过下述技术方案得以解决的:本发明的帧结构包括依次相连的帧同步头、帧类型、帧信息长度、帧信息和帧校验,串行帧同步多型锁定控制方法包括特征字符同步头控制方法、时间间隔同步控制方法和字节持续寻找方法。帧校验用于判定收到帧数据的正确性,帧校验字节通常放置在一帧数据的尾部,为提高字节有效利用率,本发明中省略了帧尾,直接由帧校验字节作为帧的结尾。当然有时为了保密等需要,实际使用中,帧校验字节可以放置在每一帧的任何部位。本发明将同步数据帧结构进行优化,帧结构简单,减小判断耗时,校验简便。
作为优选,所述的特征字符同步头控制方法为:选择在帧的内部最少出现的单字节或多字节作为帧同步头或者选择指定字节的特征值作为帧同步头;接收帧数据时,对帧数据各字节进行判断,如果帧同步头不正确,则丢弃首字节,继续判断下一字节捕捉帧同步头;如果帧同步头正确,则接收下一字节。对于帧同步头的设计,一般来讲,帧同步头为单字节或多字节,但是同步头不能过长,否则会增加帧数据判断时间,降低传输效率。因此,为了避免过长的帧同步头,缩短帧数据的判断时间,采用特殊的字符或者指定字节的特征值作为同步头。比如,帧同步头用指令、数据某个字节,也可采用帧计数特征值来比较前、后两帧数据。帧同步头最佳的选择是把在帧的内部最少出现的单字节或多字节作为帧同步头。本发明有效减少帧数据判断时间,提高数据传输效率。
作为优选,所述的时间间隔同步控制方法为:同一帧内相邻两个字节允许的接收间隔时间称为同步间隔时间,将同步间隔时间作为同步的判断条件,帧数据接收方要对接收到的相邻两字节的接收间隔时间t进行检测,如果(11/f)<t<(2×11/f),那么认为接收或发送具有连续性,符合同步要求,则接收下一字节;反之,如果t≤(11/f)或t≥(2×11/f),那么认为接收或发送不连续,不符合同步要求,则丢弃这一帧数据,接收下一帧数据;其中,f为传输波特率,单位为b/s。控制系统要满足较高的实时性和同步性,则要求发送方和接收方在发送和接收时具有连续性。发送方比较容易实现,接收方的同步性比较难实现。一个字节有8bits,包括起始位、校验位和停止位在内,发送一个字节,需要11bits,则接收一个字节所耗时间为(11/f)s,接收下一个字节的最小时间为(11/f)s,最大时间应为(2×11/f)s,所以,本技术方案中,同一帧内相邻两个字节允许的接收间隔时间t为(11/f)<t<(2×11/f)(即为一个字节的传输时间)。如果同步性要求更高的,可以缩短允许的接收间隔时间的范围。本技术方案同步精度高,有效提高了串行帧数据的同步性和准确性,为控制系统实时稳步运行提供了保证,确保系统通信及控制的实时性和可靠性。
作为优选,所述的字节持续寻找方法为:先锁定所述的帧同步头和同步间隔时间,逐次比较帧同步头和同步间隔时间,在帧同步头和同步间隔时间都正确的情况下,继续接收下一字节,直到帧校验字节也正确,则认为当前一帧数据已经完整接收,当前一帧为正确帧;如果同步间隔时间超出允许范围,则确认当前帧不是正确帧,剔除最前面接收到的首字节,丢弃该帧,接收下一帧数据,继续寻找正确帧。
本发明的有益效果是:帧结构简单,校验简便,缩短了同步头的判断耗时,有效提高了串行帧数据同步的实时性和准确性,接收数据的准确度高,为控制系统实时稳步运行提供了保证,确保系统通信及控制的实时性和可靠性。
附图说明
图1是本发明中帧结构的一种结构示意图。
图2是本发明中相邻两个字节允许的接收间隔时间的示意图。
图中1.帧同步头,2.帧类型,3.帧信息长度,4.帧信息,5.帧校验。
具体实施方式
下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明。
实施例:本实施例的串行帧同步多型锁定控制方法,将同步数据帧结构进行优化,如图1所示,帧结构包括依次相连的帧同步头1、帧类型2、帧信息长度3、帧信息4和帧校验5,帧校验用于判定收到帧数据的正确性,帧校验字节通常放置在一帧数据的尾部,为提高字节有效利用率,本发明中省略了帧尾,直接由帧校验字节作为帧的结尾。
串行帧同步多型锁定控制方法包括特征字符同步头控制方法、时间间隔同步控制方法和字节持续寻找方法。
根据串口通信协议定义如下的帧率和帧长度等参数分别为:
波特率:f(b/s)
发送帧率:m(f/s)
发送帧长:l(bytes)
控制系统中串口通信的帧数据的发送按照上面给出的帧率进行发送,接收时,为了保证良好的同步性和连续性,帧数据各字节的逐次比较判断过程为:先判断帧同步头,如果正确则接收下一字节,如果不正确则丢弃首字节,进入下一字节的判断,依此类推,逐个对帧类型、帧信息长度、帧信息和帧校验进行正确性判断。在同一帧内,相邻两个字节的接收间隔时间在允许的范围内,则接收下一字节;如果超出允许范围,则丢弃该帧,接收下一帧数据。
对于帧同步头的设计,一般来讲,帧同步头为单字节或多字节,但是帧同步头不能过长,否则会增加帧数据判断时间,降低传输效率,因此,为了避免过长的帧同步头,缩短帧数据的判断时间,本发明采用了特征字符同步头控制方法:选择在帧的内部最少出现的单字节或多字节作为帧同步头或者选择指定字节的特征值作为帧同步头;接收帧数据时,对帧数据各字节进行判断,如果帧同步头不正确,则丢弃首字节,继续判断下一字节捕捉帧同步头;如果帧同步头正确,则接收下一字节。
控制系统要满足较高的实时性和同步性,则要求发送方和接收方在发送和接收时具有连续性。发送方比较容易实现,接收方的同步性比较难实现,本发明采用了时间间隔同步控制方法,如图2所示:同一帧内相邻两个字节允许的接收间隔时间称为同步间隔时间,将同步间隔时间作为同步的判断条件,帧数据接收方要对接收到的相邻两字节的接收间隔时间t进行检测,如果(11/f)<t<(2×11/f),那么认为接收或发送具有连续性,符合同步要求,则接收下一字节;反之,如果t≤(11/f)或t≥(2×11/f),那么认为接收或发送不连续,不符合同步要求,则丢弃这一帧数据,接收下一帧数据;其中,f为传输波特率,单位为b/s。
一个字节有8bits,包括起始位、校验位和停止位在内,发送一个字节,需要11bits,则接收一个字节所耗时间为(11/f)s,接收下一个字节的最小时间为(11/f)s,最大时间应为(2×11/f)s,所以,时间间隔同步控制方法中,同一帧内相邻两个字节允许的接收间隔时间t为(11/f)<t<(2×11/f)(即为一个字节的传输时间)。如果同步性要求更高的,可以缩短允许的接收间隔时间的范围。
字节持续寻找方法为:先锁定帧同步头和同步间隔时间,逐次比较帧同步头和同步间隔时间,在帧同步头和同步间隔时间都正确的情况下,继续接收下一字节,直到帧校验字节也正确,则认为当前一帧数据已经完整接收,当前一帧为正确帧;如果同步间隔时间超出允许范围,则确认当前帧不是正确帧,剔除最前面接收到的首字节,丢弃该帧,接收下一帧数据,继续寻找正确帧。
本发明与现有串行同步方法相比,数据帧结构中采用了特殊字符作为帧同步头,缩短了帧同步头的判断耗时;用相邻两个字节的接收间隔时间作为同步的判断条件,提高了同步的实时性和准确性。本发明帧结构简单,校验简便,实时性高,接收数据的准确度高,为控制系统实时稳步运行提供了保证,确保系统通信及控制的实时性和可靠性。
以上所述的具体实施方式,对本发明作了进一步的详细说明。所应理解的是,以上所述仅为本发明的较佳实例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围内。