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

申请号 : CN202111145934.0

文献号 : CN113595687B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 招子安张兴恩张立群陈思敏高萌赵伟威龚智浩

申请人 : 佛山冠湾智能科技有限公司

摘要 :

本发明涉及通讯数据纠错领域,尤其涉及一种通讯数据的错误纠正系统及方法,该系统包括:状态采样模块、纠正模块、解码模块和校验模块。通过增加对串行信号的过采样,输出噪声比特流,并结合校验模块输出的差错比特流进行比较,从而准确定位信息比特流中错误的数据比特进行纠正,实现单次比特流通讯的最大限度的数据纠正,避免数据丢失或通讯重发,进而提高数据通讯效率和提升伺服控制性能。可有效解决当控制周期仅能进行1次数据通讯的前提下,数据通讯错误导致控制周期内数据不准确的问题,最大限度地根据噪声比特流及差错比特流的信息对信息比特流进行纠正,恢复正确的数据,提高控制的可靠性。

权利要求 :

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

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

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

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

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

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

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

2.如权利要求1所述的一种通讯数据的错误纠正系统,其特征在于:所述根据多数显性原则获得每个比特的采样值结果,将每个比特的采样值结果依次组合形成信息比特流包括:当采样值结果为“1”出现次数大于等于(m+1)/2次时,以该采样值结果“1”作为该比特的值输出;否则,以采样值结果“0”作为该比特的值输出,将每个比特的采样值结果依次组合形成信息比特流。

3.如权利要求2所述的一种通讯数据的错误纠正系统,其特征在于:所述状态采样模块还接收有效采样次数n,当以采样值结果作为该比特的值输出、且该比特的值在m次状态采样中出现的次数小于有效采样次数n时,表示该比特的值存在噪声,将该比特的噪声比特值设为有效值;当以采样值结果作为该比特的值输出、且该比特的值在m次状态采样中出现的次数不小于有效采样次数n时,表示该比特的值无噪声,将该数据比特的噪声比特值设为无效值;依次将每个比特的噪声比特值组合,形成与信息比特流一一对应的噪声比特流输出,其中n为正整数,且满足m≥n≥(m+1)/2。

4.如权利要求3所述的一种通讯数据的错误纠正系统,其特征在于:所述的纠正模块,接收到信息比特流、噪声比特流和差错比特流时,对噪声比特流和差错比特流进行比较,当噪声比特流和差错比特流有多个一一对应位的值均为有效值时,说明信息比特流含有多个既存在噪声又存在校验差错的位,对信息比特流多个对应位的值统一取反纠正,并将纠正后的信息比特流作为纠正比特流输出给解码模块。

5.一种通讯数据的错误纠正方法,其特征在于,所述方法包括如下步骤:状态采样:逐一对串行信号的每个比特进行m次状态采样,根据多数显性原则,以在m次状态采样中出现次数多的采样值作为该比特的采样值结果,将每个比特的采样值结果依次组合形成信息比特流输出;

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

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

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

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

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

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

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

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

6.如权利要求5所述的一种通讯数据的错误纠正方法,其特征在于:所述状态采样步骤,根据多数显性原则,以在m次状态采样中出现次数多的采样值作为该比特的采样值结果,当采样值结果为“1”出现次数大于等于(m+1)/2次时,以该采样值结果“1”作为该比特的值输出;否则,以采样值结果“0”作为该比特的值输出。

7.如权利要求6所述的一种通讯数据的错误纠正方法,其特征在于:所述的纠正步骤,接收到信息比特流、噪声比特流和差错比特流时,对噪声比特流和差错比特流进行比较,当噪声比特流和差错比特流有多个一一对应位的值均为有效值时,说明信息比特流含有多个既存在噪声又存在校验差错的位,对信息比特流多个对应位的值统一取反纠正。

说明书 :

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

技术领域

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

背景技术

[0002] 在有线通讯领域中,设备之间的数据交互,为节省成本并提高可靠性,一般采用串行通讯的方式进行。数据发送设备,把一个具有Q个比特的数据,根据设备之间约定的通讯
时钟的发送边沿,把Q个比特逐个映射在串行信号上;数据接收设备,同样根据约定的通讯
时钟的接收边沿,把串行信号上的Q个比特数据,逐个接收并组合为Q个比特的数据。
[0003] 在这个通讯过程中,随着设备间通讯线路的延长,以及线路周边电磁环境的复杂化,容易对通讯过程中串行信号的电平进行干扰,导致数据接收设备接收到的1个至多个比
特数据发生错误,导致数据接收失败。多数情况下,为提高接收数据的可靠性,人们在软件
上增加校验码作为数据的除错手段,按照校验码的生成规则,对接收数据进行数据校验码
生成,并与通讯校验码进行比较,在比较一致的情况下,认为接收数据无误并输出,当比较
有差异的情况下,认为数据有误则丢弃,并在一定情况下,尝试对通讯数据进行多次发送,
以保证数据接收设备对通讯数据的可靠接收。
[0004] 上述通过重发的方法,当数据控制周期时间内允许2次或以上的数据通讯的前提下,具有较好的稳定性。但当数据控制周期仅支持1次数据通讯总时,则没法通过重发机制
进行数据恢复而被迫丢失一个控制周期的数据,从而导致对系统可靠性下降。特别在伺服
驱动控制产品上,为确保伺服控制性能,一般控制频率设定为16KHz,即控制周期为62.5us,
而每个控制周期所需的编码器位置数据的通讯获取则占用了32‑50us,则当编码器数据校
验错误时,没法通过重发而重新获取,则导致丢弃了一个准确的控制周期,从而影响伺服控
制的性能,进而引起抖动、效率降低等情况。

发明内容

[0005] 为解决上述问题,本公开实施例提供一种通讯数据的错误纠正方法及系统,有效解决当控制周期仅能进行1次数据通讯的前提下,数据通讯错误导致控制周期内数据不准
确的问题,最大限度地根据噪声比特流及差错比特流的信息对数据比特流进行纠正,从而
恢复正确的数据,避免控制过程因受到干扰而导致控制性能下降的问题,从而提高控制的
可靠性。
[0006] 根据本公开实施例的第一方面,提供一种通讯数据的错误纠正系统,所述系统包括:
[0007] 依次连接的状态采样模块、纠正模块、解码模块和校验模块,所述的校验模块同时与纠正模块连接;校验模块在有效数据和差错比特流二者之间择一输出,输出的差错比特
流由纠正模块接收;有效数据由本系统之外的其他设备接收;
[0008] 状态采样模块,用于接收串行信号和状态采样次数m,并逐一对串行信号每个比特进行m次状态采样,根据多数显性原则获得每个比特的采样值结果,将每个比特的采样值结
果依次组合形成信息比特流,输出给纠正模块;对每个比特的采样值结果进行噪声判断,当
判断有某一比特的采样值结果有噪声时,将该比特的噪声比特值设置为有效值,否则设置
为无效值,将每个比特的噪声比特值依次组合,形成与信息比特流一一对应的噪声比特流,
输出给纠正模块;其中m为正奇数;
[0009] 纠正模块,用于接收信息比特流和噪声比特流,当校验模块输出差错比特流时,同时也接收差错比特流;处理并输出纠正比特流给解码模块;
[0010] 当未接收到差错比特流时,将信息比特流作为纠正比特流输出给解码模块;
[0011] 当接收到差错比特流时,比较噪声比特流与差错比特流,当且仅当噪声比特流和差错比特流对某一位的表示均为有效值时,说明信息比特流的该位比特既存在噪声又存在
校验差错,对信息比特流该位的值进行取反纠正,并将纠正后的信息比特流作为纠正比特
流输出给解码模块;
[0012] 解码模块,用于接收纠正比特流并对纠正比特流进行解码,通过输入解码协议栈,处理并输出待校验数据及冗余校验码给校验模块;
[0013] 校验模块,用于接收待校验数据,并通过输入的校验函数,对待校验数据进行数据校验码计算,得到数据校验码;接收冗余校验码,并与数据校验码进行比较;若数据校验码
与冗余校验码不相等,将二者差错位的值设置为有效值,相同位的值设为无效值,依次组合
有效值或无效值形成与信息比特流等长且一一对应的差错比特流,输出给纠正模块,差错
比特流中的有效值表示纠正比特流的对应比特有校验差错;若数据校验码与冗余校验码相
等,将待校验数据转变为有效数据输出。
[0014] 在一个实施例中,优选地,所述根据多数显性原则获得每个比特的采样值结果,将每个比特的采样值结果依次组合形成信息比特流包括:当采样值结果为“1”出现次数大于
等于(m+1)/2次时,以该采样值结果“1”作为该比特的值输出;否则,以采样值结果“0”作为
该比特的值输出,将每个比特的采样值结果依次组合形成信息比特流。
[0015] 在一个实施例中,优选地,所述状态采样模块还接收有效采样次数n,当以采样值结果作为该比特的值输出、且该比特的值在m次状态采样中出现的次数小于有效采样次数n
时,表示该比特的值存在噪声,将该比特的噪声比特值设为有效值;当以采样值结果作为该
比特的值输出、且该比特的值在m次状态采样中出现的次数不小于有效采样次数n时,表示
该比特的值无噪声,将该数据比特的噪声比特值设为无效值;依次将每个比特的噪声比特
值组合,形成与信息比特流一一对应的噪声比特流输出,其中n为正整数,且满足m≥n≥(m+
1)/2。
[0016] 在一个实施例中,优选地,所述的纠正模块,接收到信息比特流、噪声比特流和差错比特流时,对噪声比特流和差错比特流进行比较,当噪声比特流和差错比特流有多个一
一对应位的值均为有效值时,说明信息比特流含有多个既存在噪声又存在校验差错的位,
对信息比特流多个对应位的值统一取反纠正,并将纠正后的信息比特流作为纠正比特流输
出给解码模块。
[0017] 根据本公开实施例的第二方面,提供一种通讯数据的错误纠正方法,所述方法包括如下步骤:
[0018] 状态采样:逐一对串行信号的每个比特进行m次状态采样,根据多数显性原则,以在m次状态采样中出现次数多的采样值作为该比特的采样值结果,将每个比特的采样值结
果依次组合形成信息比特流输出;
[0019] 接收有效采样次数n,将采样值结果在m次状态采样中出现的次数与有效采样次数n比较,当采样值结果在m次状态采样中出现的次数小于有效采样次数n,表示该比特存在噪
声,将该比特的噪声比特值设置为有效值;否则,将该比特的噪声比特值设置为无效值;依
次将每个比特的噪声比特值组合,形成与信息比特流一一对应的噪声比特流输出;其中m为
正奇数,n为正整数,且满足m≥n≥(m+1)/2;
[0020] 纠正:接收信息比特流和噪声比特流,当校验步骤输出与信息比特流一一对应的差错比特流时,同时也接收差错比特流;
[0021] 在未接收到差错比特流时,将信息比特流作为纠正比特流输出,跳转到解码步骤;
[0022] 在接收到差错比特流时,比较噪声比特流与差错比特流,当且仅当噪声比特流和差错比特流对某一位的表示均为有效值时,说明信息比特流的该位比特既存在噪声又存在
校验差错,对信息比特流该位的值进行取反纠正,并将纠正后的信息比特流作为纠正比特
流输出,跳转到解码步骤;
[0023] 解码:对纠正比特流进行解码,通过输入解码协议栈,处理并输出待校验数据及冗余校验码,跳转到校验步骤;
[0024] 校验:通过输入的校验函数,对解码后输出的待校验数据进行数据校验码计算,得出数据校验码,并比较数据校验码和冗余校验码;
[0025] 若数据校验码与冗余校验码不相等,将二者差错位的值设置为有效值,相同位的值设为无效值,依次组合有效值或无效值形成与信息比特流等长且一一对应的差错比特流
输出,返回到纠正步骤,所述差错比特流中的有效值表示纠正比特流的对应比特有校验差
错;
[0026] 若数据校验码与冗余校验码相等,将待校验数据转变为有效数据输出。
[0027] 在一个实施例中,优选地,所述状态采样步骤,根据多数显性原则,以在m次状态采样中出现次数多的采样值作为该比特的采样值结果,当采样值结果为“1”出现次数大于等
于(m+1)/2次时,以该采样值结果“1”作为该比特的值输出;否则,以采样值结果“0”作为该
比特的值输出。
[0028] 在一个实施例中,优选地,所述的纠正步骤,接收到信息比特流、噪声比特流和差错比特流时,对噪声比特流和差错比特流进行比较,当噪声比特流和差错比特流有多个一
一对应位的值均为有效值时,说明信息比特流含有多个既存在噪声又存在校验差错的位,
对信息比特流多个对应位的值统一取反纠正。
[0029] 本发明通过增加对串行信号的过采样,输出噪声比特流,并结合校验模块输出的差错比特流进行比较,从而准确定位信息比特流中错误的数据比特,并进行纠正,实现单次
比特流通讯的最大限度的数据纠正,避免数据丢失或通讯重发,进而提高数据通讯效率和
提升伺服控制性能。可有效解决当控制周期仅能进行1次数据通讯的前提下,数据通讯错误
导致控制周期内数据不准确的问题,最大限度地根据噪声比特流及差错比特流的信息对信
息比特流进行纠正,从而恢复正确的数据,避免控制过程因受到干扰而导致控制性能下降
的问题,从而提高控制的可靠性。

附图说明

[0030] 图1是根据一示例性实施例示出的一种通讯数据的错误纠正系统的结构图。
[0031] 图2是根据一示例性实施例示出的一种通讯数据的错误纠正系统数据流动示意图。
[0032] 图3是根据一示例性实施例示出的一种通讯数据的错误纠正方法的流程图。

具体实施方式

[0033] 下列实施例是对本发明的进一步解释和补充,对本发明不构成任何限制。
[0034] 图1是根据一示例性实施例示出的一种通讯数据的错误纠正系统的结构图。图2是根据一示例性实施例示出的一种通讯数据的错误纠正系统数据流动示意图。
[0035] 根据本公开实施例的第一方面,提供一种通讯数据的错误纠正系统,所述系统包括:
[0036] 依次连接的状态采样模块10、纠正模块20、解码模块30和校验模块40,所述的校验模块40同时与纠正模块20连接;校验模块40在有效数据和差错比特流二者之间择一输出,
输出的差错比特流由纠正模块20接收;有效数据由本系统之外的其他设备接收;
[0037] 状态采样模块10,用于接收串行信号和状态采样次数m,并逐一对串行信号每个比特进行m次状态采样,根据多数显性原则获得每个比特的采样值结果,将每个比特的采样值
结果依次组合形成信息比特流,输出给纠正模块20;对每个比特的采样值结果进行噪声判
断,当判断有某一比特的采样值结果有噪声时,将该比特的噪声比特值设置为有效值,否则
设置为无效值,将每个比特的噪声比特值依次组合,形成与信息比特流一一对应的噪声比
特流,输出给纠正模块20;其中m为正奇数;
[0038] 优选地,所述根据多数显性原则获得每个比特的采样值结果,将每个比特的采样值结果依次组合形成信息比特流包括:当采样值结果为“1”出现次数大于等于(m+1)/2次
时,以该采样值结果“1”作为该比特的值输出;否则,以采样值结果“0”作为该比特的值输
出,将每个比特的采样值结果依次组合形成信息比特流;
[0039] 优选地,所述状态采样模块还接收有效采样次数n,当以采样值结果作为该比特的值输出、且该比特的值在m次状态采样中出现的次数小于有效采样次数n时,表示该比特的
值存在噪声,将该比特的噪声比特值设为有效值;当以采样值结果作为该比特的值输出、且
该比特的值在m次状态采样中出现的次数不小于有效采样次数n时,表示该比特的值无噪
声,将该数据比特的噪声比特值设为无效值;依次将每个比特的噪声比特值组合,形成与信
息比特流一一对应的噪声比特流输出,其中m为正奇数,n为正整数,且满足m≥n≥(m+1)/2;
[0040] 纠正模块20,用于接收信息比特流和噪声比特流,当校验模块40输出差错比特流时,同时也接收差错比特流;处理并输出纠正比特流给解码模块30;
[0041] 当未接收到差错比特流时,将信息比特流作为纠正比特流输出给解码模块30;
[0042] 当接收到差错比特流时,比较噪声比特流与差错比特流,当且仅当噪声比特流和差错比特流对某一位的表示均为有效值时,说明信息比特流的该位比特既存在噪声又存在
校验差错,对信息比特流该位的值进行取反纠正,并将纠正后的信息比特流作为纠正比特
流输出给解码模块30;
[0043] 优选地,所述的纠正模块,接收到信息比特流、噪声比特流和差错比特流时,对噪声比特流和差错比特流进行比较,当噪声比特流和差错比特流有多个一一对应位的值均为
有效值时,说明信息比特流含有多个既存在噪声又存在校验差错的位,对信息比特流多个
对应位的值统一取反纠正,并将纠正后的信息比特流作为纠正比特流输出给解码模块。
[0044] 解码模块30,用于接收纠正比特流并对纠正比特流进行解码,通过输入解码协议栈,处理并输出待校验数据及冗余校验码给校验模块40;
[0045] 校验模块40,用于接收待校验数据,并通过输入的校验函数,对待校验数据进行数据校验码计算,得到数据校验码;接收冗余校验码,并与数据校验码进行比较;若数据校验
码与冗余校验码不相等,将二者差错位的值设置为有效值,相同位的值设为无效值,依次组
合有效值或无效值形成与信息比特流等长且一一对应的差错比特流,输出给纠正模块20,
差错比特流中的有效值表示纠正比特流的对应比特有校验差错;若数据校验码与冗余校验
码相等,将待校验数据转变为有效数据输出。
[0046] 文中所述的多数显性原则,是指的在m次状态采样中,采样值结果出现的次数大于等于(m+1)/2次时,以该采样值结果作为该比特的值,m为正奇数。
[0047] 该实施例通过状态采样模块10增加对串行信号的过采样,输出噪声比特流,并结合校验模块40输出的差错比特流进行比较,从而准确定位信息比特流中错误的数据比特,
并进行纠正,实现单次比特流通讯的最大限度的数据纠正,避免数据丢失或通讯重发,进而
提高数据通讯效率和提升伺服控制性能。可有效解决当控制周期仅能进行1次数据通讯的
前提下,数据通讯错误导致控制周期内数据不准确的问题,最大限度地根据噪声比特流及
差错比特流的信息对信息比特流进行纠正,从而恢复正确的数据,避免控制过程因受到干
扰而导致控制性能下降的问题,从而提高控制的可靠性。
[0048] 图3是根据一示例性实施例示出的一种通讯数据的错误纠正方法的流程图。
[0049] 根据本公开实施例的第二方面,提供一种通讯数据的错误纠正方法,如图3所示,所述方法包括:
[0050] 步骤S101,状态采样:逐一对串行信号的每个比特进行m次状态采样,根据多数显性原则,以在m次状态采样中出现次数多的采样值作为该比特的采样值结果,将每个比特的
采样值结果依次组合形成信息比特流输出;
[0051] 接收有效采样次数n,将采样值结果在m次状态采样中出现的次数与有效采样次数n比较,当采样值结果在m次状态采样中出现的次数小于有效采样次数n,表示该比特存在噪
声,将该比特的噪声比特值设置为有效值;否则,将该比特的噪声比特值设置为无效值;依
次将每个比特的噪声比特值组合,形成与信息比特流一一对应的噪声比特流输出;其中m为
正奇数,n为正整数,且满足m≥n≥(m+1)/2;
[0052] 优选地,所述状态采样步骤S101,根据多数显性原则,以在m次状态采样中出现次数多的采样值作为该比特的采样值结果,当采样值结果为“1”出现次数大于等于(m+1)/2次
时,以该采样值结果“1”作为该比特的值输出;否则,以采样值结果“0”作为该比特的值输
出。
[0053] 步骤S102,纠正:接收信息比特流和噪声比特流,当校验步骤输出与信息比特流一一对应的差错比特流时,同时也接收差错比特流;
[0054] 在未接收到差错比特流时,将信息比特流作为纠正比特流输出,跳转到到解码步骤S103;
[0055] 当接收到差错比特流时,比较噪声比特流与差错比特流,当且仅当噪声比特流和差错比特流对某一位的表示均为有效值时,说明信息比特流的该位比特既存在噪声又存在
校验差错,对信息比特流该位的值进行取反纠正,并将纠正后的信息比特流作为纠正比特
流输出,跳转到解码步骤S103;
[0056] 优选地,所述的纠正步骤S102,接收到信息比特流、噪声比特流和差错比特流时,对噪声比特流和差错比特流进行比较,当噪声比特流和差错比特流有多个一一对应位的值
均为有效值时,说明信息比特流含有多个既存在噪声又存在校验差错的位,对信息比特流
多个对应位的值统一取反纠正;
[0057] 步骤S103,解码:对纠正比特流进行解码,通过输入解码协议栈,处理并输出待校验数据及冗余校验码,跳转到校验步骤S104;
[0058] 步骤S104,校验:通过输入的校验函数,对解码后输出的待校验数据进行数据校验码计算,得出数据校验码,并比较数据校验码和冗余校验码;
[0059] 若数据校验码与冗余校验码不相等,将二者差错位的值设置为有效值,相同位的值设为无效值,依次组合有效值或无效值形成与信息比特流等长且一一对应的差错比特流
输出,返回到纠正步骤S102,所述差错比特流中的有效值表示纠正比特流的对应比特有校
验差错;
[0060] 若数据校验码与冗余校验码相等,将待校验数据转变为有效数据输出。
[0061] 该实施例通过状态采样步骤S101增加对串行信号的过采样,输出噪声比特流,并结合校验步骤S104输出的差错比特流进行比较,从而准确定位信息比特流中错误的数据比
特,并通过纠正步骤S102进行纠正,实现单次比特流通讯的最大限度的数据纠正,避免数据
丢失或通讯重发,进而提高数据通讯效率和提升伺服控制性能。可有效解决当控制周期仅
能进行1次数据通讯的前提下,数据通讯错误导致控制周期内数据不准确的问题,最大限度
地根据噪声比特流及差错比特流的信息对信息比特流进行纠正,从而恢复正确的数据,避
免控制过程因受到干扰而导致控制性能下降的问题,从而提高控制的可靠性。
[0062] 以图1、2、3为例,针对一串行信号的通讯数据的错误纠正系统和方法详细工作流程阐述如下:
[0063] 状态采样模块10,接收串行信号,并对该串行信号的每个位均进行m次的状态采样,该串行信号由1个32位数据1234567890和1个CRC8冗余校验码组成,CRC8冗余校验码的
值为{00001111b},为便于理解,将正常串行信号应包含的其他信息:比如包头、包尾、读写
操作等均排除在外了。将m的值设置为5,也就是针对该串行信号的每个比特,均进行5次的
状态采样。将n的值设置为4,也就是要求采样值结果出现的次数不小于4次才将该比特的噪
声比特值设置为无效值,否则就将该比特的噪声比特值设置为有效值,本实施例中所述所
有的有效值和与无效值均为取非逻辑关系,当有效值为“0”时,无效值为“非0”,当有效状态
为“非0”时,无效值为“0”。为了便于理解,本实施例将有效值取为“非0”,即“1”。
[0064] 32位数据值为1234567890,由4个字节组成。CRC8的多项式采用 。则4个字节+1个CRC8按第4个数据字节、第3个数据字节、第2个数据字节、第1个数据字节、CRC8字节
的顺序,每个字节的比特顺序为7‑0,该串行信号所组成的比特流为{01001001b,
10010110b,00000010b,11010010b,00001111b}。
[0065] 若第2个字节的值{00000010b}的最低位比特,通过状态采样模块10总共采样5次,其中状态采样结果为“0”的次数为3,状态采样结果为“1”的次数为2,根据多数显性原则,采
样值结果为“0”出现次数的为3,符合大于等于(5+1)/2次的条件,以采样值结果 “0”作为该
比特的值输出,判断得到该比特的值为“0”;又由于采样值结果为“0” 出现的次数3小于输
入的有效采样次数4次,因此代表其具有噪声,将对应的噪声比特的值设置为有效值,即
“1”,来表示该比特存在噪声。该字节的其他比特的值采样结果均正确,且均无噪声。对该字
节进行噪声还原后其值为{00000010b},该字节的噪声比特流为{00000001b}。
[0066] 下表是针对第2个字节的值{00000010b}的最低位比特进行5次状态采样的逻辑表。
[0067]
[0068] 若第3个字节的值{10010110b}的最高位比特,通过状态采样模块10总共采样5次,其中状态采样结果为“1”的次数为2,状态采样结果为“0”的次数为3,以多数显性原则,采样
值结果为“0”出现次数的为3,符合大于等于(5+1)/2次的条件,以该采样值“0”作为该数据
比特的值输出,判断得到该比特的值为“0”,又由于采样结果为“0”的次数小于输入的有效
采样次数4次,因此代表其具有噪声,将对应的噪声比特的值设置为有效值,即“1”,来表示
该比特存在噪声。该字节的其他比特位数据比特的值采样结果均正确,且均无噪声。对该字
节进行噪声还原后其值为{00010110b},该字节的噪声比特流为{10000000b}。
[0069] 下表是针对第3个字节的值{10010110b }的最高位比特进行5次状态采样的逻辑表。
[0070]
[0071] 若第4个字节的值{01001001b}的第3位比特,通过状态采样模块10总共采样5次,其中状态采样结果为“1”的次数为2,状态采样结果为“0”的次数为3,以多数显性原则,采样
值结果为“0”出现次数的为3,符合大于等于(5+1)/2次的条件,以该采样值作为该数据比特
的值输出,判断得到该比特的值为“0”;又由于采样值结果为“0”的次数3小于输入的有效采
样次数4次,因此代表其具有噪声,将对应的噪声比特设置为有效值,即“1”,来表示该比特
存在噪声。该字节的其他比特位数据比特的值采样结果均正确,且均无噪声。噪声还原后的
第4个字节的值{01000001b},该字节的噪声比特流为{00001000b}。
[0072] 下表是针对第4个字节的值{10010110b }的第3个比特进行5次状态采样的逻辑表。
[0073]
[0074] 第1个字节以及CRC8字节的采样结果均与原输入的串行信号无变化,且均没有噪声产生。
[0075] 因此,通过状态采样模块10,将获得到的比特的值依次组合形成的信息比特流为{01000001b,00010110b,00000010b,11010010b,00001111b},而与信息比特流一一对应的
噪声比特流为{00001000b,10000000b,00000001b,00000000b,00000000b}。
[0076] 可见,原始的串行信号{01001001b,10010110b,00000010b,11010010b,00001111b}与通过状态采样模块10采样获得的信息比特流{01000001b,00010110b,
00000010b,11010010b,00001111b}是有差异的。
[0077] 纠正模块20,接收信息比特流和噪声比特流,当校验模块40输出差错比特流时,同时也接收差错比特流,处理并输出纠正比特流;而在第一次接收时,还未经过校验模块40的
处理,因此是不会接收到差错比特流的,这时直接将信息比特流作为纠正比特流输出给解
码模块30;
[0078] 通过解码模块30,通过输入的解码栈协议,对纠正模块20输出的纠正比特流进行解码,解码的本质就是将纠正比特流进行拆分,分别得到待校验数据和冗余校验码,解码是
数据处理中常用技术,在此不作赘述。因此可知,解码后的纠正比特流分解成了待校验数据
{01000001b,00010110b,00000010b,11010010b},和冗余校验码{00001111b},待校验数据
其32位数据值为变成了1091961554,与输入的串行信号的数据值不相符。
[0079] 通过校验模块40,对上述所得的待校验数据进行CRC8数据校验码计算,数据校验码的计算方式,采用 多项式,其简化后的校验码计算方式为:8位校验码的每一个比
特,等于每个待校验字节的对应位的异或值,经过解码模块30可得待校验数据为
{01000001b,00010110b,00000010b,11010010b},异或过程及结果如下:
[0080] 01000001b(第4字节)
[0081] 异或  00010110b(第3字节)                            
[0082]          01010111b(第1次异或结果)
[0083] 异或  00000010b(第2字节)                            
[0084]          01010101b(第2次异或结果)
[0085] 异或  11010010b(第1字节)                            
[0086]          10000111b(第3次异或结果,数据校验码)
[0087] 计算得到数据校验码的值为{10000111b}。
[0088] 由上述计算可得,待校验数据通过多项式 计算得出的数据校验码为{10000111b},同时根据校验计算方法的特性可知,校验码每一个比特,仅与每个待校验字
节的对应比特有关,而与其他比特无关,则可知,若计算出的数据校验码与接收的冗余校验
码,在某一比特上不相同,表示所有待校验字节的对应位可能存在差错。数据校验码与冗余
校验码不相等,将二者差错位的值设置为有效值,相同位的值设为无效值,依次组合有效值
或无效值形成与信息比特流等长且一一对应的差错比特流。对收到的冗余校验码
{00001111b},与计算出的数据校验码{10000111b}比较可知,第3位和第7位存在差异,则说
明所有待校验字节的第3、7位存在差错,差错比特流中的有效值表示纠正比特流的对应比
特有校验差错;输出差错比特流{10001000b,10001000b,10001000b,10001000b,
10001000b}。
[0089] 差错比特流本质上是把解码模块30输出的待校验数据通过校验函数计算出的数据校验码,与解码模块输出30的冗余校验码进行比较并处理所得。其长度(比特数量)与纠
正比特流一致,其每一个差错比特,与纠正比特流对应顺序的数据比特对应,当差错比特为
有效值时,表示对应纠正比特流的比特存在差错。
[0090] 值得说明的是,差错比特流其计算方式会因校验函数的变化而发生变化。冗余校验码也可采用CRC24、CRC32,并不一定要采用本实施例中的计算方式,但不论采用何种计算
方式,其均会得出一个差错比特流。
[0091] 校验模块40生成了差错比特流之后,将差错比特流输出给纠正模块20,纠正模块20在接收到差错比特流时,比较噪声比特流与差错比特流,噪声比特流和差错比特流对某
一位的表示均为有效值时,说明该位比特存在噪声级校验差错,对信息比特流的该位的值
进行取反纠正,并将纠正后的信息比特流作为纠正比特流进行输出。其过程如下:把上述得
到的噪声比特流
[0092] {00001000b,10000000b,00000001b,00000000b,00000000b}
[0093] 与差错比特流
[0094] {10001000b,10001000b,10001000b,10001000b,10001000b}
[0095] 进行比较,当且仅当噪声比特流中的噪声比特的值和差错比特流中的差错比特的值均为有效值时,对信息比特流的对应位比特的值进行取反纠正,更新并输出纠正比特流。
当噪声比特流和差错比特流有多个一一对应位的值均为有效值时,说明信息比特流含有多
个既存在噪声又存在校验差错的位,对信息比特流多个对应位的值统一取反纠正,可以得
知:
[0096] 在第4字节的第3位及第3字节的最高位均既存在噪声,又存在校验差错,这时,对通过状态采样模块10采样获得的信息比特流{01000001b,00010110b,00000010b,
11010010b,00001111b}的第4字节的第3位及第3字节的最高位进行取反纠正,得到纠正比
特流{01001001b,10010110b,00000010b,11010010b,00001111b}。
[0097] 把得到的纠正比特流再次通过解码模块30及校验模块40,重新对上述纠正比特流进行解码、校验,得到待校验数据{01001001b,10010110b,00000010b,11010010b},再次对
待校验数据的每个字节异或,过程如下:
[0098]       01001001b(第4字节)
[0099] 异或  10010110b(第3字节)                            
[0100]          11011111b(第1次异或结果)
[0101] 异或  00000010b(第2字节)                            
[0102]          11011101b(第2次异或结果)
[0103] 异或  11010010b(第1字节)                            
[0104]          00001111b(第3次异或结果,数据校验码)
[0105] 计算得到数据校验码的值为{10000111b},与信息比特流中的CRC8冗余校验码相等,则由校验模块把待校验数据合并为32位数据,其值为1234567890,作为有效数据输出,
完成通讯数据的接收纠正。
[0106] 上述过程实现了单次比特流通讯的最大限度的数据纠正,避免数据丢失或通讯重发,进而提高数据通讯效率和提升伺服控制性能。可有效解决当控制周期仅能进行1次数据
通讯的前提下,数据通讯错误导致控制周期内数据不准确的问题,最大限度地根据噪声比
特流及差错比特流的信息对信息比特流进行纠正,从而恢复正确的数据,避免控制过程因
受到干扰而导致控制性能下降的问题,从而提高控制的可靠性。
[0107] 值得说明的是,上述实施例其所采用的CRC8多项式具备8位数据的差错定位能力,支持8位差错比特流的生成,但本发明的方法不仅限于此例,可采用其他冗余校验函数生成
数据校验码,通过校验模块40可生成更准确的差错比特流,实现更精准的数据比特纠正。另
外,实施例中所采用的协议格式、采样参数、采样数据也仅为描述本实施例而设定,本发明
适用但不限于此实施例应用。
[0108] 尽管通过以上实施例对本发明进行了揭示,但本发明的保护范围并不局限于此,在不偏离本发明构思的条件下,对以上各构件所做的变形、替换等均将落入本发明的权利
要求范围内。