一种通讯数据的错误纠正系统及方法

文档序号:195470 发布日期:2021-11-02 浏览:22次 >En<

阅读说明:本技术 一种通讯数据的错误纠正系统及方法 (Error correction system and method for communication data ) 是由 招子安 张兴恩 张立群 陈思敏 高萌 赵伟威 龚智浩 于 2021-09-28 设计创作,主要内容包括:本发明涉及通讯数据纠错领域,尤其涉及一种通讯数据的错误纠正系统及方法,该系统包括:状态采样模块、纠正模块、解码模块和校验模块。通过增加对串行信号的过采样,输出噪声比特流,并结合校验模块输出的差错比特流进行比较,从而准确定位信息比特流中错误的数据比特进行纠正,实现单次比特流通讯的最大限度的数据纠正,避免数据丢失或通讯重发,进而提高数据通讯效率和提升伺服控制性能。可有效解决当控制周期仅能进行1次数据通讯的前提下,数据通讯错误导致控制周期内数据不准确的问题,最大限度地根据噪声比特流及差错比特流的信息对信息比特流进行纠正,恢复正确的数据,提高控制的可靠性。(The invention relates to the field of communication data error correction, in particular to a system and a method for correcting errors of communication data, wherein the system comprises: the device comprises a state sampling module, a correcting module, a decoding module and a checking module. By adding oversampling to serial signals, noise bit streams are output and compared with error bit streams output by a check module, error data bits in information bit streams are accurately positioned and corrected, maximum data correction of single bit stream communication is realized, data loss or communication retransmission is avoided, and then data communication efficiency is improved and servo control performance is improved. The method can effectively solve the problem that data in the control period is inaccurate due to data communication errors on the premise that the control period can only carry out data communication for 1 time, corrects the information bit stream to the maximum extent according to the information of the noise bit stream and the error bit stream, recovers correct data and improves the reliability of control.)

一种通讯数据的错误纠正系统及方法

技术领域

本发明涉及通讯数据纠错领域,尤其涉及一种通讯数据的错误纠正系统及方法。

背景技术

在有线通讯领域中,设备之间的数据交互,为节省成本并提高可靠性,一般采用串行通讯的方式进行。数据发送设备,把一个具有Q个比特的数据,根据设备之间约定的通讯时钟的发送边沿,把Q个比特逐个映射在串行信号上;数据接收设备,同样根据约定的通讯时钟的接收边沿,把串行信号上的Q个比特数据,逐个接收并组合为Q个比特的数据。

在这个通讯过程中,随着设备间通讯线路的延长,以及线路周边电磁环境的复杂化,容易对通讯过程中串行信号的电平进行干扰,导致数据接收设备接收到的1个至多个比特数据发生错误,导致数据接收失败。多数情况下,为提高接收数据的可靠性,人们在软件上增加校验码作为数据的除错手段,按照校验码的生成规则,对接收数据进行数据校验码生成,并与通讯校验码进行比较,在比较一致的情况下,认为接收数据无误并输出,当比较有差异的情况下,认为数据有误则丢弃,并在一定情况下,尝试对通讯数据进行多次发送,以保证数据接收设备对通讯数据的可靠接收。

上述通过重发的方法,当数据控制周期时间内允许2次或以上的数据通讯的前提下,具有较好的稳定性。但当数据控制周期仅支持1次数据通讯总时,则没法通过重发机制进行数据恢复而被迫丢失一个控制周期的数据,从而导致对系统可靠性下降。特别在伺服驱动控制产品上,为确保伺服控制性能,一般控制频率设定为16KHz,即控制周期为62.5us,而每个控制周期所需的编码器位置数据的通讯获取则占用了32-50us,则当编码器数据校验错误时,没法通过重发而重新获取,则导致丢弃了一个准确的控制周期,从而影响伺服控制的性能,进而引起抖动、效率降低等情况。

发明内容

为解决上述问题,本公开实施例提供一种通讯数据的错误纠正方法及系统,有效解决当控制周期仅能进行1次数据通讯的前提下,数据通讯错误导致控制周期内数据不准确的问题,最大限度地根据噪声比特流及差错比特流的信息对数据比特流进行纠正,从而恢复正确的数据,避免控制过程因受到干扰而导致控制性能下降的问题,从而提高控制的可靠性。

根据本公开实施例的第一方面,提供一种通讯数据的错误纠正系统,所述系统包括:

依次连接的状态采样模块、纠正模块、解码模块和校验模块,所述的校验模块同时与纠正模块连接;校验模块在有效数据和差错比特流二者之间择一输出,输出的差错比特流由纠正模块接收;有效数据由本系统之外的其他设备接收;

状态采样模块,用于接收串行信号和状态采样次数m,并逐一对串行信号每个比特进行m次状态采样,根据多数显性原则获得每个比特的采样值结果,将每个比特的采样值结果依次组合形成信息比特流,输出给纠正模块;对每个比特的采样值结果进行噪声判断,当判断有某一比特的采样值结果有噪声时,将该比特的噪声比特值设置为有效值,否则设置为无效值,将每个比特的噪声比特值依次组合,形成与信息比特流一一对应的噪声比特流,输出给纠正模块;其中m为正奇数;

纠正模块,用于接收信息比特流和噪声比特流,当校验模块输出差错比特流时,同时也接收差错比特流;处理并输出纠正比特流给解码模块;

当未接收到差错比特流时,将信息比特流作为纠正比特流输出给解码模块;

当接收到差错比特流时,比较噪声比特流与差错比特流,当且仅当噪声比特流和差错比特流对某一位的表示均为有效值时,说明信息比特流的该位比特既存在噪声又存在校验差错,对信息比特流该位的值进行取反纠正,并将纠正后的信息比特流作为纠正比特流输出给解码模块;

解码模块,用于接收纠正比特流并对纠正比特流进行解码,通过输入解码协议栈,处理并输出待校验数据及冗余校验码给校验模块;

校验模块,用于接收待校验数据,并通过输入的校验函数,对待校验数据进行数据校验码计算,得到数据校验码;接收冗余校验码,并与数据校验码进行比较;若数据校验码与冗余校验码不相等,将二者差错位的值设置为有效值,相同位的值设为无效值,依次组合有效值或无效值形成与信息比特流等长且一一对应的差错比特流,输出给纠正模块,差错比特流中的有效值表示纠正比特流的对应比特有校验差错;若数据校验码与冗余校验码相等,将待校验数据转变为有效数据输出。

在一个实施例中,优选地,所述根据多数显性原则获得每个比特的采样值结果,将每个比特的采样值结果依次组合形成信息比特流包括:当采样值结果为“1”出现次数大于等于(m+1)/2次时,以该采样值结果“1”作为该比特的值输出;否则,以采样值结果“0”作为该比特的值输出,将每个比特的采样值结果依次组合形成信息比特流。

在一个实施例中,优选地,所述状态采样模块还接收有效采样次数n,当以采样值结果作为该比特的值输出、且该比特的值在m次状态采样中出现的次数小于有效采样次数n时,表示该比特的值存在噪声,将该比特的噪声比特值设为有效值;当以采样值结果作为该比特的值输出、且该比特的值在m次状态采样中出现的次数不小于有效采样次数n时,表示该比特的值无噪声,将该数据比特的噪声比特值设为无效值;依次将每个比特的噪声比特值组合,形成与信息比特流一一对应的噪声比特流输出,其中n为正整数,且满足m≥n≥(m+1)/2。

在一个实施例中,优选地,所述的纠正模块,接收到信息比特流、噪声比特流和差错比特流时,对噪声比特流和差错比特流进行比较,当噪声比特流和差错比特流有多个一一对应位的值均为有效值时,说明信息比特流含有多个既存在噪声又存在校验差错的位,对信息比特流多个对应位的值统一取反纠正,并将纠正后的信息比特流作为纠正比特流输出给解码模块。

根据本公开实施例的第二方面,提供一种通讯数据的错误纠正方法,所述方法包括如下步骤:

状态采样:逐一对串行信号的每个比特进行m次状态采样,根据多数显性原则,以在m次状态采样中出现次数多的采样值作为该比特的采样值结果,将每个比特的采样值结果依次组合形成信息比特流输出;

接收有效采样次数n,将采样值结果在m次状态采样中出现的次数与有效采样次数n比较,当采样值结果在m次状态采样中出现的次数小于有效采样次数n,表示该比特存在噪声,将该比特的噪声比特值设置为有效值;否则,将该比特的噪声比特值设置为无效值;依次将每个比特的噪声比特值组合,形成与信息比特流一一对应的噪声比特流输出;其中m为正奇数,n为正整数,且满足m≥n≥(m+1)/2;

纠正:接收信息比特流和噪声比特流,当校验步骤输出与信息比特流一一对应的差错比特流时,同时也接收差错比特流;

在未接收到差错比特流时,将信息比特流作为纠正比特流输出,跳转到解码步骤;

在接收到差错比特流时,比较噪声比特流与差错比特流,当且仅当噪声比特流和差错比特流对某一位的表示均为有效值时,说明信息比特流的该位比特既存在噪声又存在校验差错,对信息比特流该位的值进行取反纠正,并将纠正后的信息比特流作为纠正比特流输出,跳转到解码步骤;

解码:对纠正比特流进行解码,通过输入解码协议栈,处理并输出待校验数据及冗余校验码,跳转到校验步骤;

校验:通过输入的校验函数,对解码后输出的待校验数据进行数据校验码计算,得出数据校验码,并比较数据校验码和冗余校验码;

若数据校验码与冗余校验码不相等,将二者差错位的值设置为有效值,相同位的值设为无效值,依次组合有效值或无效值形成与信息比特流等长且一一对应的差错比特流输出,返回到纠正步骤,所述差错比特流中的有效值表示纠正比特流的对应比特有校验差错;

若数据校验码与冗余校验码相等,将待校验数据转变为有效数据输出。

在一个实施例中,优选地,所述状态采样步骤,根据多数显性原则,以在m次状态采样中出现次数多的采样值作为该比特的采样值结果,当采样值结果为“1”出现次数大于等于(m+1)/2次时,以该采样值结果“1”作为该比特的值输出;否则,以采样值结果“0”作为该比特的值输出。

在一个实施例中,优选地,所述的纠正步骤,接收到信息比特流、噪声比特流和差错比特流时,对噪声比特流和差错比特流进行比较,当噪声比特流和差错比特流有多个一一对应位的值均为有效值时,说明信息比特流含有多个既存在噪声又存在校验差错的位,对信息比特流多个对应位的值统一取反纠正。

本发明通过增加对串行信号的过采样,输出噪声比特流,并结合校验模块输出的差错比特流进行比较,从而准确定位信息比特流中错误的数据比特,并进行纠正,实现单次比特流通讯的最大限度的数据纠正,避免数据丢失或通讯重发,进而提高数据通讯效率和提升伺服控制性能。可有效解决当控制周期仅能进行1次数据通讯的前提下,数据通讯错误导致控制周期内数据不准确的问题,最大限度地根据噪声比特流及差错比特流的信息对信息比特流进行纠正,从而恢复正确的数据,避免控制过程因受到干扰而导致控制性能下降的问题,从而提高控制的可靠性。

附图说明

图1是根据一示例性实施例示出的一种通讯数据的错误纠正系统的结构图。

图2是根据一示例性实施例示出的一种通讯数据的错误纠正系统数据流动示意图。

图3是根据一示例性实施例示出的一种通讯数据的错误纠正方法的流程图。

具体实施方式

下列实施例是对本发明的进一步解释和补充,对本发明不构成任何限制。

图1是根据一示例性实施例示出的一种通讯数据的错误纠正系统的结构图。图2是根据一示例性实施例示出的一种通讯数据的错误纠正系统数据流动示意图。

根据本公开实施例的第一方面,提供一种通讯数据的错误纠正系统,所述系统包括:

依次连接的状态采样模块10、纠正模块20、解码模块30和校验模块40,所述的校验模块40同时与纠正模块20连接;校验模块40在有效数据和差错比特流二者之间择一输出,输出的差错比特流由纠正模块20接收;有效数据由本系统之外的其他设备接收;

状态采样模块10,用于接收串行信号和状态采样次数m,并逐一对串行信号每个比特进行m次状态采样,根据多数显性原则获得每个比特的采样值结果,将每个比特的采样值结果依次组合形成信息比特流,输出给纠正模块20;对每个比特的采样值结果进行噪声判断,当判断有某一比特的采样值结果有噪声时,将该比特的噪声比特值设置为有效值,否则设置为无效值,将每个比特的噪声比特值依次组合,形成与信息比特流一一对应的噪声比特流,输出给纠正模块20;其中m为正奇数;

优选地,所述根据多数显性原则获得每个比特的采样值结果,将每个比特的采样值结果依次组合形成信息比特流包括:当采样值结果为“1”出现次数大于等于(m+1)/2次时,以该采样值结果“1”作为该比特的值输出;否则,以采样值结果“0”作为该比特的值输出,将每个比特的采样值结果依次组合形成信息比特流;

优选地,所述状态采样模块还接收有效采样次数n,当以采样值结果作为该比特的值输出、且该比特的值在m次状态采样中出现的次数小于有效采样次数n时,表示该比特的值存在噪声,将该比特的噪声比特值设为有效值;当以采样值结果作为该比特的值输出、且该比特的值在m次状态采样中出现的次数不小于有效采样次数n时,表示该比特的值无噪声,将该数据比特的噪声比特值设为无效值;依次将每个比特的噪声比特值组合,形成与信息比特流一一对应的噪声比特流输出,其中m为正奇数,n为正整数,且满足m≥n≥(m+1)/2;

纠正模块20,用于接收信息比特流和噪声比特流,当校验模块40输出差错比特流时,同时也接收差错比特流;处理并输出纠正比特流给解码模块30;

当未接收到差错比特流时,将信息比特流作为纠正比特流输出给解码模块30;

当接收到差错比特流时,比较噪声比特流与差错比特流,当且仅当噪声比特流和差错比特流对某一位的表示均为有效值时,说明信息比特流的该位比特既存在噪声又存在校验差错,对信息比特流该位的值进行取反纠正,并将纠正后的信息比特流作为纠正比特流输出给解码模块30;

优选地,所述的纠正模块,接收到信息比特流、噪声比特流和差错比特流时,对噪声比特流和差错比特流进行比较,当噪声比特流和差错比特流有多个一一对应位的值均为有效值时,说明信息比特流含有多个既存在噪声又存在校验差错的位,对信息比特流多个对应位的值统一取反纠正,并将纠正后的信息比特流作为纠正比特流输出给解码模块。

解码模块30,用于接收纠正比特流并对纠正比特流进行解码,通过输入解码协议栈,处理并输出待校验数据及冗余校验码给校验模块40;

校验模块40,用于接收待校验数据,并通过输入的校验函数,对待校验数据进行数据校验码计算,得到数据校验码;接收冗余校验码,并与数据校验码进行比较;若数据校验码与冗余校验码不相等,将二者差错位的值设置为有效值,相同位的值设为无效值,依次组合有效值或无效值形成与信息比特流等长且一一对应的差错比特流,输出给纠正模块20,差错比特流中的有效值表示纠正比特流的对应比特有校验差错;若数据校验码与冗余校验码相等,将待校验数据转变为有效数据输出。

文中所述的多数显性原则,是指的在m次状态采样中,采样值结果出现的次数大于等于(m+1)/2次时,以该采样值结果作为该比特的值,m为正奇数。

该实施例通过状态采样模块10增加对串行信号的过采样,输出噪声比特流,并结合校验模块40输出的差错比特流进行比较,从而准确定位信息比特流中错误的数据比特,并进行纠正,实现单次比特流通讯的最大限度的数据纠正,避免数据丢失或通讯重发,进而提高数据通讯效率和提升伺服控制性能。可有效解决当控制周期仅能进行1次数据通讯的前提下,数据通讯错误导致控制周期内数据不准确的问题,最大限度地根据噪声比特流及差错比特流的信息对信息比特流进行纠正,从而恢复正确的数据,避免控制过程因受到干扰而导致控制性能下降的问题,从而提高控制的可靠性。

图3是根据一示例性实施例示出的一种通讯数据的错误纠正方法的流程图。

根据本公开实施例的第二方面,提供一种通讯数据的错误纠正方法,如图3所示,所述方法包括:

步骤S101,状态采样:逐一对串行信号的每个比特进行m次状态采样,根据多数显性原则,以在m次状态采样中出现次数多的采样值作为该比特的采样值结果,将每个比特的采样值结果依次组合形成信息比特流输出;

接收有效采样次数n,将采样值结果在m次状态采样中出现的次数与有效采样次数n比较,当采样值结果在m次状态采样中出现的次数小于有效采样次数n,表示该比特存在噪声,将该比特的噪声比特值设置为有效值;否则,将该比特的噪声比特值设置为无效值;依次将每个比特的噪声比特值组合,形成与信息比特流一一对应的噪声比特流输出;其中m为正奇数,n为正整数,且满足m≥n≥(m+1)/2;

优选地,所述状态采样步骤S101,根据多数显性原则,以在m次状态采样中出现次数多的采样值作为该比特的采样值结果,当采样值结果为“1”出现次数大于等于(m+1)/2次时,以该采样值结果“1”作为该比特的值输出;否则,以采样值结果“0”作为该比特的值输出。

步骤S102,纠正:接收信息比特流和噪声比特流,当校验步骤输出与信息比特流一一对应的差错比特流时,同时也接收差错比特流;

在未接收到差错比特流时,将信息比特流作为纠正比特流输出,跳转到到解码步骤S103;

当接收到差错比特流时,比较噪声比特流与差错比特流,当且仅当噪声比特流和差错比特流对某一位的表示均为有效值时,说明信息比特流的该位比特既存在噪声又存在校验差错,对信息比特流该位的值进行取反纠正,并将纠正后的信息比特流作为纠正比特流输出,跳转到解码步骤S103;

优选地,所述的纠正步骤S102,接收到信息比特流、噪声比特流和差错比特流时,对噪声比特流和差错比特流进行比较,当噪声比特流和差错比特流有多个一一对应位的值均为有效值时,说明信息比特流含有多个既存在噪声又存在校验差错的位,对信息比特流多个对应位的值统一取反纠正;

步骤S103,解码:对纠正比特流进行解码,通过输入解码协议栈,处理并输出待校验数据及冗余校验码,跳转到校验步骤S104;

步骤S104,校验:通过输入的校验函数,对解码后输出的待校验数据进行数据校验码计算,得出数据校验码,并比较数据校验码和冗余校验码;

若数据校验码与冗余校验码不相等,将二者差错位的值设置为有效值,相同位的值设为无效值,依次组合有效值或无效值形成与信息比特流等长且一一对应的差错比特流输出,返回到纠正步骤S102,所述差错比特流中的有效值表示纠正比特流的对应比特有校验差错;

若数据校验码与冗余校验码相等,将待校验数据转变为有效数据输出。

该实施例通过状态采样步骤S101增加对串行信号的过采样,输出噪声比特流,并结合校验步骤S104输出的差错比特流进行比较,从而准确定位信息比特流中错误的数据比特,并通过纠正步骤S102进行纠正,实现单次比特流通讯的最大限度的数据纠正,避免数据丢失或通讯重发,进而提高数据通讯效率和提升伺服控制性能。可有效解决当控制周期仅能进行1次数据通讯的前提下,数据通讯错误导致控制周期内数据不准确的问题,最大限度地根据噪声比特流及差错比特流的信息对信息比特流进行纠正,从而恢复正确的数据,避免控制过程因受到干扰而导致控制性能下降的问题,从而提高控制的可靠性。

以图1、2、3为例,针对一串行信号的通讯数据的错误纠正系统和方法详细工作流程阐述如下:

状态采样模块10,接收串行信号,并对该串行信号的每个位均进行m次的状态采样,该串行信号由1个32位数据1234567890和1个CRC8冗余校验码组成,CRC8冗余校验码的值为{00001111b},为便于理解,将正常串行信号应包含的其他信息:比如包头、包尾、读写操作等均排除在外了。将m的值设置为5,也就是针对该串行信号的每个比特,均进行5次的状态采样。将n的值设置为4,也就是要求采样值结果出现的次数不小于4次才将该比特的噪声比特值设置为无效值,否则就将该比特的噪声比特值设置为有效值,本实施例中所述所有的有效值和与无效值均为取非逻辑关系,当有效值为“0”时,无效值为“非0”,当有效状态为“非0”时,无效值为“0”。为了便于理解,本实施例将有效值取为“非0”,即“1”。

32位数据值为1234567890,由4个字节组成。CRC8的多项式采用。则4个字节+1个CRC8按第4个数据字节、第3个数据字节、第2个数据字节、第1个数据字节、CRC8字节的顺序,每个字节的比特顺序为7-0,该串行信号所组成的比特流为{01001001b,10010110b,00000010b,11010010b,00001111b}。

若第2个字节的值{00000010b}的最低位比特,通过状态采样模块10总共采样5次,其中状态采样结果为“0”的次数为3,状态采样结果为“1”的次数为2,根据多数显性原则,采样值结果为“0”出现次数的为3,符合大于等于(5+1)/2次的条件,以采样值结果 “0”作为该比特的值输出,判断得到该比特的值为“0”;又由于采样值结果为“0” 出现的次数3小于输入的有效采样次数4次,因此代表其具有噪声,将对应的噪声比特的值设置为有效值,即“1”,来表示该比特存在噪声。该字节的其他比特的值采样结果均正确,且均无噪声。对该字节进行噪声还原后其值为{00000010b},该字节的噪声比特流为{00000001b}。

下表是针对第2个字节的值{00000010b}的最低位比特进行5次状态采样的逻辑表。

若第3个字节的值{10010110b}的最高位比特,通过状态采样模块10总共采样5次,其中状态采样结果为“1”的次数为2,状态采样结果为“0”的次数为3,以多数显性原则,采样值结果为“0”出现次数的为3,符合大于等于(5+1)/2次的条件,以该采样值“0”作为该数据比特的值输出,判断得到该比特的值为“0”,又由于采样结果为“0”的次数小于输入的有效采样次数4次,因此代表其具有噪声,将对应的噪声比特的值设置为有效值,即“1”,来表示该比特存在噪声。该字节的其他比特位数据比特的值采样结果均正确,且均无噪声。对该字节进行噪声还原后其值为{00010110b},该字节的噪声比特流为{10000000b}。

下表是针对第3个字节的值{10010110b }的最高位比特进行5次状态采样的逻辑表。

若第4个字节的值{01001001b}的第3位比特,通过状态采样模块10总共采样5次,其中状态采样结果为“1”的次数为2,状态采样结果为“0”的次数为3,以多数显性原则,采样值结果为“0”出现次数的为3,符合大于等于(5+1)/2次的条件,以该采样值作为该数据比特的值输出,判断得到该比特的值为“0”;又由于采样值结果为“0”的次数3小于输入的有效采样次数4次,因此代表其具有噪声,将对应的噪声比特设置为有效值,即“1”,来表示该比特存在噪声。该字节的其他比特位数据比特的值采样结果均正确,且均无噪声。噪声还原后的第4个字节的值{01000001b},该字节的噪声比特流为{00001000b}。

下表是针对第4个字节的值{10010110b }的第3个比特进行5次状态采样的逻辑表。

第1个字节以及CRC8字节的采样结果均与原输入的串行信号无变化,且均没有噪声产生。

因此,通过状态采样模块10,将获得到的比特的值依次组合形成的信息比特流为{01000001b,00010110b,00000010b,11010010b,00001111b},而与信息比特流一一对应的噪声比特流为{00001000b,10000000b,00000001b,00000000b,00000000b}。

可见,原始的串行信号{01001001b,10010110b,00000010b,11010010b,00001111b}与通过状态采样模块10采样获得的信息比特流{01000001b,00010110b,00000010b,11010010b,00001111b}是有差异的。

纠正模块20,接收信息比特流和噪声比特流,当校验模块40输出差错比特流时,同时也接收差错比特流,处理并输出纠正比特流;而在第一次接收时,还未经过校验模块40的处理,因此是不会接收到差错比特流的,这时直接将信息比特流作为纠正比特流输出给解码模块30;

通过解码模块30,通过输入的解码栈协议,对纠正模块20输出的纠正比特流进行解码,解码的本质就是将纠正比特流进行拆分,分别得到待校验数据和冗余校验码,解码是数据处理中常用技术,在此不作赘述。因此可知,解码后的纠正比特流分解成了待校验数据{01000001b,00010110b,00000010b,11010010b},和冗余校验码{00001111b},待校验数据其32位数据值为变成了1091961554,与输入的串行信号的数据值不相符。

通过校验模块40,对上述所得的待校验数据进行CRC8数据校验码计算,数据校验码的计算方式,采用多项式,其简化后的校验码计算方式为:8位校验码的每一个比特,等于每个待校验字节的对应位的异或值,经过解码模块30可得待校验数据为{01000001b,00010110b,00000010b,11010010b},异或过程及结果如下:

01000001b(第4字节)

异或 00010110b(第3字节)

01010111b(第1次异或结果)

异或 00000010b(第2字节)

01010101b(第2次异或结果)

异或 11010010b(第1字节)

10000111b(第3次异或结果,数据校验码)

计算得到数据校验码的值为{10000111b}。

由上述计算可得,待校验数据通过多项式计算得出的数据校验码为{10000111b},同时根据校验计算方法的特性可知,校验码每一个比特,仅与每个待校验字节的对应比特有关,而与其他比特无关,则可知,若计算出的数据校验码与接收的冗余校验码,在某一比特上不相同,表示所有待校验字节的对应位可能存在差错。数据校验码与冗余校验码不相等,将二者差错位的值设置为有效值,相同位的值设为无效值,依次组合有效值或无效值形成与信息比特流等长且一一对应的差错比特流。对收到的冗余校验码{00001111b},与计算出的数据校验码{10000111b}比较可知,第3位和第7位存在差异,则说明所有待校验字节的第3、7位存在差错,差错比特流中的有效值表示纠正比特流的对应比特有校验差错;输出差错比特流{10001000b,10001000b,10001000b,10001000b,10001000b}。

差错比特流本质上是把解码模块30输出的待校验数据通过校验函数计算出的数据校验码,与解码模块输出30的冗余校验码进行比较并处理所得。其长度(比特数量)与纠正比特流一致,其每一个差错比特,与纠正比特流对应顺序的数据比特对应,当差错比特为有效值时,表示对应纠正比特流的比特存在差错。

值得说明的是,差错比特流其计算方式会因校验函数的变化而发生变化。冗余校验码也可采用CRC24、CRC32,并不一定要采用本实施例中的计算方式,但不论采用何种计算方式,其均会得出一个差错比特流。

校验模块40生成了差错比特流之后,将差错比特流输出给纠正模块20,纠正模块20在接收到差错比特流时,比较噪声比特流与差错比特流,噪声比特流和差错比特流对某一位的表示均为有效值时,说明该位比特存在噪声级校验差错,对信息比特流的该位的值进行取反纠正,并将纠正后的信息比特流作为纠正比特流进行输出。其过程如下:把上述得到的噪声比特流

{00001000b,10000000b,00000001b,00000000b,00000000b}

与差错比特流

{10001000b,10001000b,10001000b,10001000b,10001000b}

进行比较,当且仅当噪声比特流中的噪声比特的值和差错比特流中的差错比特的值均为有效值时,对信息比特流的对应位比特的值进行取反纠正,更新并输出纠正比特流。当噪声比特流和差错比特流有多个一一对应位的值均为有效值时,说明信息比特流含有多个既存在噪声又存在校验差错的位,对信息比特流多个对应位的值统一取反纠正,可以得知:

在第4字节的第3位及第3字节的最高位均既存在噪声,又存在校验差错,这时,对通过状态采样模块10采样获得的信息比特流{01000001b,00010110b,00000010b,11010010b,00001111b}的第4字节的第3位及第3字节的最高位进行取反纠正,得到纠正比特流{01001001b,10010110b,00000010b,11010010b,00001111b}。

把得到的纠正比特流再次通过解码模块30及校验模块40,重新对上述纠正比特流进行解码、校验,得到待校验数据{01001001b,10010110b,00000010b,11010010b},再次对待校验数据的每个字节异或,过程如下:

01001001b(第4字节)

异或 10010110b(第3字节)

11011111b(第1次异或结果)

异或 00000010b(第2字节)

11011101b(第2次异或结果)

异或 11010010b(第1字节)

00001111b(第3次异或结果,数据校验码)

计算得到数据校验码的值为{10000111b},与信息比特流中的CRC8冗余校验码相等,则由校验模块把待校验数据合并为32位数据,其值为1234567890,作为有效数据输出,完成通讯数据的接收纠正。

上述过程实现了单次比特流通讯的最大限度的数据纠正,避免数据丢失或通讯重发,进而提高数据通讯效率和提升伺服控制性能。可有效解决当控制周期仅能进行1次数据通讯的前提下,数据通讯错误导致控制周期内数据不准确的问题,最大限度地根据噪声比特流及差错比特流的信息对信息比特流进行纠正,从而恢复正确的数据,避免控制过程因受到干扰而导致控制性能下降的问题,从而提高控制的可靠性。

值得说明的是,上述实施例其所采用的CRC8多项式具备8位数据的差错定位能力,支持8位差错比特流的生成,但本发明的方法不仅限于此例,可采用其他冗余校验函数生成数据校验码,通过校验模块40可生成更准确的差错比特流,实现更精准的数据比特纠正。另外,实施例中所采用的协议格式、采样参数、采样数据也仅为描述本实施例而设定,本发明适用但不限于此实施例应用。

尽管通过以上实施例对本发明进行了揭示,但本发明的保护范围并不局限于此,在不偏离本发明构思的条件下,对以上各构件所做的变形、替换等均将落入本发明的权利要求范围内。

15页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:车联网设备之间的反馈信息传输方法、装置及系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类