CN114647532A - 一种自纠错绝对值编码器数据传输方法 - Google Patents
一种自纠错绝对值编码器数据传输方法 Download PDFInfo
- Publication number
- CN114647532A CN114647532A CN202011502019.8A CN202011502019A CN114647532A CN 114647532 A CN114647532 A CN 114647532A CN 202011502019 A CN202011502019 A CN 202011502019A CN 114647532 A CN114647532 A CN 114647532A
- Authority
- CN
- China
- Prior art keywords
- self
- error
- check
- code
- bit
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明涉及传感器领域,具体地,涉及一种编码器与驱动器数据传输过程中,位置数据自纠错的方法。包括以下步骤:编码器将原始位置数据转换为自纠错码;驱动器对自纠错码进行校验;若自纠错码的校验结果正确,则驱动器将自纠错码恢复为原始位置数据进行传输;否则,驱动器对自纠错码进行纠错并修正,将修正后的自纠错码恢复为原始位置数据进行传输。通过本发明可以使编码器发出的原始绝对位置数据获得自纠错能力,即使发生错误,也可以通过纠错恢复原始数据,提高伺服驱动系统的稳定性。
Description
技术领域
本发明涉及传感器领域,具体地,涉及一种编码器与驱动器数据传输过程中,位置数据自纠错的方法。
背景技术
精密数控机床、工业机器人等现代化工业化设备的快速发展,对伺服驱动系统提出了越来越高的要求。在伺服驱动系统中,角度编码器作为位置检测装置,对伺服驱动系统的精度和可靠性有重要影响。
现有的绝对值编码器在传输位置数据时通常会带校验部分,如CRC或其他校验方法,若校验错误,则驱动器丢弃此数据。这种做法的缺点是,诸如CRC之类的校验方法只能发现错误,不能纠正错误。一旦出现错误,至少在一个通信周期内,驱动器得不到编码器反馈的位置数据,导致伺服驱动系统稳定性下降。
在伺服驱动系统中,绝对值编码器需要将测量到的绝对位置数据发送给驱动器。在编码器与驱动器的通信过程中,有可能因外界干扰产生误码,导致驱动器接收到错误的绝对位置信息,进一步导致驱动器对电机的控制出现错误,这会对伺服驱动系统的性能造成严重影响。
为了解决以上问题,通常的绝对值编码器在传输数据时额外添加一个byte的CRC校验数据。驱动器在收到编码器发送的绝对位置数据后,对此数据进行CRC校验,如果校验结果正确,驱动器继续执行运算程序;如果校验结果错误,则驱动器使用上一次编码器传输的绝对位置值进行本次计算。
这种方法的缺点是,一旦驱动器与编码器在数据传输过程中因外界干扰产生误码,驱动器将无法获得准确的绝对位置值。虽然可以使用编码器上次发送的绝对位置数据进行程序运算,降低因误码造成严重错误,但依然会导致伺服驱动系统性能下降。
发明内容
为了克服传统方法的缺点,本发明提出一种新的自纠错绝对值编码器数据传输方法。这种方法不但可以和传统方法一样,对错误进行校验,还可以针对错误进行纠错。即使驱动器与编码器在数据传输过程中遇到干扰,导致驱动器接收到的绝对位置值错误,也可以通过纠错一定程度上恢复正确的绝对位置值。使用这种具备自纠错功能的数据传输方法,可以大大降低驱动器在一个控制周期内无法接收到绝对位置数据的可能性,提高伺服驱动系统的稳定性。
本发明为实现上述目的所采用的技术方案是:
一种自纠错绝对值编码器数据传输方法,包括以下步骤:
编码器将原始位置数据转换为自纠错码;
伺服驱动器对自纠错码进行校验;
若自纠错码的校验结果正确,则驱动器将自纠错码恢复为原始位置数据进行传输;否则,驱动器对自纠错码进行纠错并修正,将修正后的自纠错码恢复为原始位置数据进行传输。
所述编码器将原始位置数据转换为自纠错码具体为:
编码器在n位的原始位置数据中插入p位的校验位,构成n+p位的自纠错码;
编码器对插入校验位的原始数据进行编码,得到自纠错码。
所述校验位的位数p满足条件2p-1>n+p,取满足条件的p的最小值作为校验位的位数。
所述编码器对插入校验位的原始数据进行编码具体为:
确定每一位检验码的位置:第k位校验码所处位置为自纠错码的第2k-1位,1≤k≤p;
确定每一位校验码的结果:第k位校验码的计算方式为:从第k位校验码所在位置开始,每隔2k-1位,取2k-1位,计算所有取出位的值的异或值,即为该位校验码的结果。
所述驱动器对自纠错码进行校验具体为:
从第k位校验码所在位置开始,每隔2k-1位,取2k-1位,1≤k≤p,作为一个校验组,计算该组校验组中所有位的值的异或值,若结果为0,则该组校验组无错误;当所有校验组的结果均为0,则自纠错码无错误。
所述驱动器对自纠错码进行纠错并修正具体为:
将插入带有校验码结果自纠错码,从第k位校验码所在位置开始,每隔2k-1位,取2k -1位,1≤k≤p,作为一个新的校验组,计算该组校验组中所有位的值的异或值;
按顺序将每组新的校验组的异或构成一个二进制数,将该二进制数转换为十进制,转换后的值即为自纠错码错误的位数;
将错误位数的值取反,完成错误修正。
本发明具有以下有益效果及优点:
1.本发明将自纠错编码方式应用于绝对值编码器数据传输,使驱动器对编码器发送的数据具备一定的纠错能力。
2.本发明在不改变硬件和接线方式的前提下,提高了绝对值编码器的抗干扰能力。
3.本发明只定义应用层的数据编码方式,物理层不变,不增加额外的硬件成本。
4.本发明在提高数据纠错能力的前提下,不增加数据传输延时。
5.本发明可以使用驱动器自带的串行通信接口读取数据。
附图说明
图1为自纠错码传输过程图;
图2为自纠错码校验码位置图;
图3为发生错误的自纠错码图。
具体实施方式
下面结合附图及实施例对本发明做进一步的详细说明。
通常编码器的通信协议使用CRC作为校验手段,CRC只有校验能力,没有纠错能力。
一旦发生错误,则在本周期内驱动器只能使用上次得到的绝对位置值进行计算,导致性能下降。
为了解决这一问题,采用一种新的绝对值编码器的数据传输方式,对编码器向驱动器传输的绝对位置数据重新编码,使其得到自纠错能力。即使在传输过程中发生错误,驱动器也可以一定程度上通过计算恢复原本的绝对位置值。
如图1所示,这种数据传输方式包括三个部分:
1.编码器将得到的原始位置数据转换为自纠错码
为使新编码具有自纠错能力,在原始位置数据的基础上插入校验位,假设将要进行检测的原始位置数据为n位,需要再加上k位的校验位,组成n+k位的自纠错码,新增加的校验位数k应满足:
2k-1>n+k
自纠错校验码的编码步骤为为:
第一步,确定校验码位置,第k位校验码所处位置为自纠错码的第2k-1位
第二步,确定校验码结果,第k位校验码的计算方式为,从第k位校验码所在位置开始,每隔2k-1位,取2k-1位,然后计算所有取出位的异或,即为校验码结果。
当k=6时,n的最大值为57,现有的绝对值编码器多圈值位数、单圈值位数、报警位数之和通常不会超过57b it,因此6b it的校验码已经可以满足要求。
2.驱动器对自纠错码进行校验
对自纠错码进行校验时,从第k位校验码所在位置开始,每隔2k-1位,取2k-1位,作为一个校验组,然后计算校验组中所有位的异或,若结果为0,则自纠错码无错误。
异或的具体运算方法为:
多位进行异或时,相当于不进位的加法
3.驱动器对自纠错码进行纠错
所述驱动器为伺服驱动器,用于驱动电机,若在第2部分驱动器发现自纠错码的校验结果错误,则查看第2部分中取出的校验组的公共数据位,只有数据位才可能被几个校验码进行校验,校验码只会包含于一个校验组。以最终确定是哪个数据位出了差错,对所找到的出错数据位取反即可实现纠错。
通过以上定义的编码器到驱动器数据传输过程,可以使编码器发出的原始绝对位置数据获得自纠错能力,即使发生错误,也可以通过纠错恢复原始数据,提高伺服驱动系统的稳定性。
实施例
假设编码器多圈分辨率为13bit,编码器读取到的原始位置数据为0100011101110,以此数据为例,将其转换为自纠错码。
1.编码器将得到的原始位置数据转换为自纠错码
第一步,确定校验码位置(如图2所示),校验码位置为第1、2、4、8、16位。
第二步,从第k位校验码所在位置开始,每隔2k-1位,取2k-1位,作为一个校验组,使每个校验组的所有位异或结果为0,即可计算出校验码结果。
第一组:P101001011
第二组:P200011110
第三组:P31001011
第四组:P40111011
第五组:P510
每组异或的结果为0,计算得到P1=0,P2=0,P3=0,P4=1,P5=1。
2.驱动器对自纠错码进行校验
若编码器向驱动器传输数据的过程没有干扰,则按照校验方法,从第k位校验码所在位置开始,每隔2k-1位,取2k-1位,作为一个校验组,计算每组异或结果,结果都应为0。
3.驱动器对自纠错码进行纠错
若结果不为0,则在传输过程中发生错误,假设传输过程中第10位发生错误(如图3所示),纠错方法如下。
从第k位校验码所在位置开始,每隔2k-1位,取2k-1位,作为一个校验组,使每个校验组的所有位异或结果为0,计算出校验位的结果。
第一组:001001011
第二组:000001110
第三组:01001011
第四组:10011011
第五组:110
计算每组的异或结果分别为:0、1、0、1、0,组合成一个二进制数,结果为01010,换算成十进制即为10,即第10位发生错误。只需要反转第10位,即可完成纠错。
假设需要传输的绝对值编码器多圈位数为13b it,单圈位数为17b it。
若使用T-FORMAT协议,则多圈值传输固定使用2byte,单圈值固定使用3byte空间,CRC校验固定为1byte,在串行总线上有效数据占全部位置值相关数据的比例为62.5%。使用这种新协议,校验位共计6b it,总计需要传输的数据长度为5byte,有效数据比例为90%。
与CRC校验对比,这种自纠错编码方式拥有一定的自纠错能力,而不需要增加编码器传输数据长度。
Claims (6)
1.一种自纠错绝对值编码器数据传输方法,其特征在于,包括以下步骤:
编码器将原始位置数据转换为自纠错码;
伺服驱动器对自纠错码进行校验;
若自纠错码的校验结果正确,则驱动器将自纠错码恢复为原始位置数据进行传输;否则,驱动器对自纠错码进行纠错并修正,将修正后的自纠错码恢复为原始位置数据进行传输。
2.根据权利要求1所述的一种自纠错绝对值编码器数据传输方法,其特征在于,所述编码器将原始位置数据转换为自纠错码具体为:
编码器在n位的原始位置数据中插入p位的校验位,构成n+p位的自纠错码;
编码器对插入校验位的原始数据进行编码,得到自纠错码。
3.根据权利要求2所述的一种自纠错绝对值编码器数据传输方法,其特征在于,所述校验位的位数p满足条件2p-1>n+p,取满足条件的p的最小值作为校验位的位数。
4.根据权利要求2所述的一种自纠错绝对值编码器数据传输方法,其特征在于,所述编码器对插入校验位的原始数据进行编码具体为:
确定每一位检验码的位置:第k位校验码所处位置为自纠错码的第2k-1位,1≤k≤p;
确定每一位校验码的结果:第k位校验码的计算方式为:从第k位校验码所在位置开始,每隔2k-1位,取2k-1位,计算所有取出位的值的异或值,即为该位校验码的结果。
5.根据权利要求1所述的一种自纠错绝对值编码器数据传输方法,其特征在于,所述驱动器对自纠错码进行校验具体为:
从第k位校验码所在位置开始,每隔2k-1位,取2k-1位,1≤k≤p,作为一个校验组,计算该组校验组中所有位的值的异或值,若结果为0,则该组校验组无错误;当所有校验组的结果均为0,则自纠错码无错误。
6.根据权利要求1所述的一种自纠错绝对值编码器数据传输方法,其特征在于,所述驱动器对自纠错码进行纠错并修正具体为:
将插入带有校验码结果自纠错码,从第k位校验码所在位置开始,每隔2k-1位,取2k-1位,1≤k≤p,作为一个新的校验组,计算该组校验组中所有位的值的异或值;
按顺序将每组新的校验组的异或构成一个二进制数,将该二进制数转换为十进制,转换后的值即为自纠错码错误的位数;
将错误位数的值取反,完成错误修正。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011502019.8A CN114647532A (zh) | 2020-12-18 | 2020-12-18 | 一种自纠错绝对值编码器数据传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011502019.8A CN114647532A (zh) | 2020-12-18 | 2020-12-18 | 一种自纠错绝对值编码器数据传输方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114647532A true CN114647532A (zh) | 2022-06-21 |
Family
ID=81991640
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011502019.8A Pending CN114647532A (zh) | 2020-12-18 | 2020-12-18 | 一种自纠错绝对值编码器数据传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114647532A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114915380A (zh) * | 2022-07-19 | 2022-08-16 | 中国科学院宁波材料技术与工程研究所 | 基于can总线的低成本高实时自动纠错通讯系统及方法 |
CN115031772A (zh) * | 2022-06-28 | 2022-09-09 | 重庆智能机器人研究院 | 一种交流伺服系统串行传输绝对式编码器值纠错方法 |
-
2020
- 2020-12-18 CN CN202011502019.8A patent/CN114647532A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115031772A (zh) * | 2022-06-28 | 2022-09-09 | 重庆智能机器人研究院 | 一种交流伺服系统串行传输绝对式编码器值纠错方法 |
CN114915380A (zh) * | 2022-07-19 | 2022-08-16 | 中国科学院宁波材料技术与工程研究所 | 基于can总线的低成本高实时自动纠错通讯系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114647532A (zh) | 一种自纠错绝对值编码器数据传输方法 | |
EP0280013B1 (en) | Device for verifying proper operation of a checking code generator | |
CA2206688C (en) | Digital transmission system for encoding and decoding attribute data into error checking symbols of main data, and method therefor | |
EP1929637A2 (en) | Method and apparatus for error management | |
US11356201B2 (en) | SPC sensor interface with partial parity protection | |
JPH088760A (ja) | 誤り訂正装置 | |
CN115208512B (zh) | 一种遥测数据帧编解码方式 | |
CN101060341B (zh) | 后维特比纠错装置及其相关方法 | |
CN111464267B (zh) | 通信数据校验方法、装置、计算机设备和存储介质 | |
US4696007A (en) | Method of correcting errors in binary coded words | |
CN1595812A (zh) | 纠错译码电路、数据总线控制方法以及数据总线系统 | |
JP3217716B2 (ja) | 無線パケット通信装置 | |
CN115037415A (zh) | 基于crc的纠错编码的方法、装置、终端 | |
JP3639184B2 (ja) | 通信システムにおける制御情報の符号化方法 | |
CN112564858B (zh) | 卫星导航用crc纠错方法及系统 | |
TWI430585B (zh) | 區塊碼解碼方法與裝置 | |
TWI399042B (zh) | To detect the wrong position of the detection device | |
CN113595687B (zh) | 一种通讯数据的错误纠正系统及方法 | |
CN101227192B (zh) | 后维特比纠错方法和装置 | |
US20020124220A1 (en) | Transmission data loss detection system | |
CN111786745B (zh) | 一种新型数据校验方法 | |
CN112416651B (zh) | 一种多平台通用的惯组诸元可靠性存储及校验方法 | |
CN115037414A (zh) | 基于crc的纠错解码的方法、装置、终端 | |
US11055423B2 (en) | Signal pattern checksum | |
US20090150727A1 (en) | Data transmission method |
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 |