CN109341726B - 一种串行绝对编码器的编码方法 - Google Patents
一种串行绝对编码器的编码方法 Download PDFInfo
- Publication number
- CN109341726B CN109341726B CN201811422617.7A CN201811422617A CN109341726B CN 109341726 B CN109341726 B CN 109341726B CN 201811422617 A CN201811422617 A CN 201811422617A CN 109341726 B CN109341726 B CN 109341726B
- Authority
- CN
- China
- Prior art keywords
- coding
- code
- bit
- sequence
- value
- 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
- 238000000034 method Methods 0.000 title claims abstract description 38
- 108091026890 Coding region Proteins 0.000 claims abstract description 26
- 238000012795 verification Methods 0.000 claims description 11
- 238000009434 installation Methods 0.000 abstract description 4
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01D—MEASURING NOT SPECIALLY ADAPTED FOR A SPECIFIC VARIABLE; ARRANGEMENTS FOR MEASURING TWO OR MORE VARIABLES NOT COVERED IN A SINGLE OTHER SUBCLASS; TARIFF METERING APPARATUS; MEASURING OR TESTING NOT OTHERWISE PROVIDED FOR
- G01D5/00—Mechanical means for transferring the output of a sensing member; Means for converting the output of a sensing member to another variable where the form or nature of the sensing member does not constrain the means for converting; Transducers not specially adapted for a specific variable
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明公开了一种串行绝对编码器的编码方法,采用基于二叉树的方法按照深度优先的原则逐位迭代确定编码位,实现了绝对编码序列的生成,生成的编码序列的编码字长和编码数可以根据需要进行设定。本发明提供的编码方法,由于采用了基于二叉树的方法按照深度优先的原则迭代确定编码位,因此能够根据需要设置任意编码字长和编码数,并且所生成的编码序列能够同时支持串行和并行读码方式,从而提高了编码方法的通用性,降低了系统装置的成本和安装技术难度。
Description
技术领域
本发明涉及自动控制领域,具体涉及一种串行绝对编码器的编码方法。
背景技术
目前,编码器主要有增量式和绝对式两种类型。相对于增量式编码器,绝对式编码器是在光栅上按照一定的规则刻录编码,每一位置都有唯一的编码与之对应,而且当出现断电的情况时,重新上电后这种对应关系仍保持不变,由此保证了数据的可靠性和稳定性。对于编码器的读码,有串行读码和并行读码两种方式。由于现有的编码方法中,主要包括二进制码如格雷码、十进制码和六十进制码等,以及在这些编码的基础上进行优化改进的编码方法。
以上这些编码方法,一般只能通过并行读码的方式才能实现,导致成本偏高和设备安装的困难;另外,当需要进一步提高测量精度时,就需要增加码道,这对编码器的小型化带来困难;最后,由于这些编码方法都是在约定的编码方式上进行的修改,因此难以实现任意设置编码字长得到通用编码。
发明内容
有鉴于此,本发明提供了一种串行绝对编码器的编码方法,采用基于二叉树的方法按照深度优先的原则逐位迭代确定编码位,实现了绝对编码序列的生成,生成的编码序列的编码字长和编码数可以根据需要进行设定。
本发明提供了一种串行绝对编码器的编码方法,包括如下步骤:
步骤1、设定编码数和初始编码值;
步骤2、采用二叉树按照深度优先的原则确定后一位编码位的取值,即为0或1,产生当前的编码序列;
步骤3、对步骤2生成的编码序列进行正、反向的合法性校验,如果校验结果为满足合法性,则执行步骤4;
如果校验结果为不满足合法性,则步骤2中确定的编码位选择另一个取值,形成新的编码序列再次进行校验,如果校验结果为满足,则执行步骤4;
如果校验结果仍为不满足合法性,则回退到步骤2中所确定的编码位的前一位编码位重新进行选择,如果校验结果为满足,则执行步骤4,如果校验结果为不满足,则继续回退到再前一位编码位重新进行选择,直到校验结果为满足时,执行步骤4;
步骤4、存储当前生成的编码序列,当编码序列中的编码位个数小于步骤1中设定的编码数时,返回步骤2迭代计算后续编码位;否则执行步骤5;
步骤5、存储最终生成的编码序列。
进一步地,所述步骤2中的二叉树深度优先原则为,设定当后一位编码位的值为0时为左子树,当后一位编码位的值为1时为右子树,按照先左后右深度优先的遍历原则来生成编码序列。
进一步地,设定编码字长,且将所述步骤2中的编码序列中编码位的编号按照由小到大的顺序进行排序,则所述步骤3中的正向合法性校验的过程为,按照编码位的编号由小到大的顺序,遍历当前编码序列选择出所有的由连续的、设定编码字长个编码位组成的编码值,并求出每个编码值所对应的十进制的数值,将所有的十进制数值进行比较,如果存在相等的数值,则认为当前编码序列不满足编码合法性约束;如果不存在相等的数值,则认为满足编码合法性约束;
所述步骤3中的反向合法性校验为,按照编码位的编号由大到小的顺序,遍历当前编码序列选择出所有的由连续的、设定编码字长个编码位组成的编码值,并求出每个编码值所对应的十进制的数值,将所有的十进制数值进行比较,如果存在相等的数值,则认为当前编码序列不满足编码合法性约束;如果不存在相等的数值,则认为满足编码合法性条件。
进一步地,所述步骤3.2中回退到步骤2中所确定的编码位的前一位编码位重新进行选择的过程为,当前一位编码位的取值为0时,则设定该编码位的取值为1,然后进行正、反向合法性校验;当前一位编码位的取值为1时,则直接继续回退到再前一位编码位进行判断。
有益效果:
本发明提供的编码方法,由于采用了基于二叉树的方法按照深度优先的原则迭代确定编码位,因此能够根据需要设置任意编码字长和编码数,并且所生成的编码序列能够同时支持串行和并行读码方式,从而提高了编码方法的通用性,降低了系统装置的成本和安装技术难度。
附图说明
图1为本发明采用的二叉树检索思想的示意图。
图2为本发明根据设计的算法得到的编码数为0100000010、编码字长为10、优先考虑0的编码序列的部分二叉树表示。
具体实施方式
下面结合附图并举实施例,对本发明进行详细描述。
本发明提供了一种串行绝对编码器的编码方法,其基本思想是:基于预先设定的编码数、编码字长和初始编码值,采用基于二叉树的方法按照深度优先的原则逐位迭代选择剩余编码位的值为0或1,再对生成的编码进行正反向的合法性校验,即,验证编码值是否唯一,校验合格则完成绝对编码序列的生成过程。
本发明所采用的二叉树思想,如图1所示,即,设定好初始编码数、编码字长和初始编码值,开始进行二叉树选择,判断初始编码值的后一位编码位取值为0时是否能够满足所有编码值的正向、反向唯一性要求,如果能够满足则继续判断下一位编码位的取值;否则,令初始编码值的后一位编码位取值为1,判断此时是否能够满足所有编码值的正向、反向唯一性要求,如果能够满足则继续判断下一位编码位的取值;否则,返回上一位编码位重复上述过程,生成的编码序列如图2所示。
实施例一:采用本发明提供的编码方法,实现编码的过程包括如下步骤:
步骤1、设定编码数为N、编码字长为W和初始编码值,通常情况下初始编码值设置为由W位0组成的编码值;
步骤2、设定一个长度可变的数组T,表示为T={b1,b2,...,bi,bi+1,...,bm},其中,bi为数组中的编码位,1≤i≤N,W≤m≤N;
步骤3、将初始编码值存储到数组T中,此时的数组T为包含了W个0的数组,即T={b1,b2,...,bi,bi+1,...,bW}={0,0,...,0,0,...,0};
步骤4、选择数组T中最后一位即bW作为二叉树的根节点,设定当bW+1=1时,表示bW+1为节点bW的右子树;而当bW+1=0时,表示bW+1为节点bW的左子树;这里,我们采取先左后右深度优先的遍历方法来生成编码序列,即在数组T中依次增加bW+j,其中,-W≤j≤(N-W),令j=1;
步骤5、依据先左后右深度优先的优先原则,首先设定bW+j=0,并将bW+j的值存储到数组T中的第W+j位,此时,数组T为:
T={b1,b2,...,bi,bi+1,...,bW,...,bw+j}={0,0,...,0,0,...,0,...,0};
在数组T中进行编码的正向和反向合法性检查:
步骤5.1、正向合法性检查,即按照编码位的编号由小到大的顺序,遍历数组T选择出所有的由连续的W位编码位组成的编码值,并求出每个编码值所对应的十进制的数值,将所有的十进制数值进行比较,如果存在相等的数值,则认为数组T不满足编码合法性约束,即,bW+j=0的值有误,执行步骤6;如果不存在相等的数值,则认为数组T满足编码合法性约束,执行步骤5.2;
步骤5.2、反向合法性检查,即按照编码位的编号由大到小的顺序,遍历数组T选择出所有的由连续的W位编码位组成的编码值,并求出每个编码值所对应的十进制的数值,将所有的十进制数值进行比较,如果存在相等的数值,则认为数组T不满足编码合法性约束,即,bW+j=0的值有误,执行步骤6;如果不存在相等的数值,则认为数组T满足编码合法性约束,执行步骤8;
步骤6、设定bW+j=1,并将bW+j的值存储到数组T中的第W+j位,此时,数组T为:
T={b1,b2,...,bi,bi+1,...,bW,...,bw+j}={0,0,...,0,0,...,0,...,1};
在数组T中进行编码的正向和反向合法性检查:
步骤6.1、正向合法性检查,即按照编码位的编号由小到大的顺序,遍历数组T选择出所有的由连续的W位编码位组成的编码值,并求出每个编码值所对应的十进制的数值,将所有的十进制数值进行比较,如果存在相等的数值,则认为数组T不满足编码合法性约束,即,bW+j=1的值有误,执行步骤7;如果不存在相等的数值,则认为数组T满足编码合法性约束,执行步骤6.2;
步骤6.2、反向合法性检查,即按照编码位的编号由大到小的顺序,遍历数组T选择出所有的由连续的W位编码位组成的编码值,并求出每个编码值所对应的十进制的数值,将所有的十进制数值进行比较,如果存在相等的数值,则认为数组T不满足编码合法性约束,即,bW+j=1的值有误,执行步骤7;如果不存在相等的数值,则认为数组T满足编码合法性约束,执行步骤8;
步骤7、令j自减1,当bW+j=0时,执行步骤6;当bW+j=1时,执行步骤7,即当编码位的取值为1时,则直接继续回退到再前一位编码位进行判断;
步骤8、令j自加1,当j≤(N-W)时,执行步骤5,否则执行步骤9;
步骤9、此时的数组T为满足合法性要求的编码数为N、编码字长为W的编码序列。
本发明设计的串行绝对编码器的编码方法,可以采用串行读码的方式,此外,如果不考虑成本和安装难度,也可以通过并行读取的方法一次性读取W位连续编码。当采用串行读码方式时,在编码器首次运行时需要成功连续阅读W个编码位后才能准确判断当前位置,其中,W为编码字长,之后则只需要移动一个编码位即可检测出当前的位置信息。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.一种串行绝对编码器的编码方法,其特征在于,包括如下步骤:
步骤1、设定编码数和初始编码值;
步骤2、采用二叉树按照深度优先的原则确定后一位编码位的取值,即为0或1,产生当前的编码序列;
步骤3、对步骤2生成的编码序列进行正、反向的合法性检查,如果校验结果为满足合法性,则执行步骤4;所述编码序列的编码字长为W;
所述正向合法性检查,即按照编码位的编号由小到大的顺序,遍历所述编码序列选择出所有的由连续的W位编码位组成的编码值,并求出每个编码值所对应的十进制的数值,将所有的十进制数值进行比较,如果存在相等的数值,则认为所述编码序列不满足合法性,如果不存在相等的数值,则认为所述编码序列满足合法性;
所述反向合法性检查,即按照编码位的编号由大到小的顺序,遍历所述编码序列选择出所有的由连续的W位编码位组成的编码值,并求出每个编码值所对应的十进制的数值,将所有的十进制数值进行比较,如果存在相等的数值,则认为所述编码序列不满足合法性;如果不存在相等的数值,则认为所述编码序列满足合法性;
如果校验结果为不满足合法性,则步骤2中确定的编码位选择另一个取值,形成新的编码序列再次进行校验,如果校验结果为满足,则执行步骤4;
如果校验结果仍为不满足合法性,则回退到步骤2中所确定的编码位的前一位编码位重新进行选择,如果校验结果为满足,则执行步骤4,如果校验结果为不满足,则继续回退到再前一位编码位重新进行选择,直到校验结果为满足时,执行步骤4;
步骤4、存储当前生成的编码序列,当编码序列中的编码位个数小于步骤1中设定的编码数时,返回步骤2迭代计算后续编码位;否则执行步骤5;
步骤5、存储最终生成的编码序列。
2.根据权利要求1所述的方法,其特征在于,所述步骤2中的二叉树深度优先原则为,设定当后一位编码位的值为0时为左子树,当后一位编码位的值为1时为右子树,按照先左后右深度优先的遍历原则来生成编码序列。
3.根据权利要求1所述的方法,其特征在于,设定编码字长,且将所述步骤2中的编码序列中编码位的编号按照由小到大的顺序进行排序,则所述步骤3中的正向合法性检查的过程为,按照编码位的编号由小到大的顺序,遍历当前编码序列选择出所有的由连续的、设定编码字长个编码位组成的编码值,并求出每个编码值所对应的十进制的数值,将所有的十进制数值进行比较,如果存在相等的数值,则认为当前编码序列不满足编码合法性约束;如果不存在相等的数值,则认为满足编码合法性约束;
所述步骤3中的反向合法性检查为,按照编码位的编号由大到小的顺序,遍历当前编码序列选择出所有的由连续的、设定编码字长个编码位组成的编码值,并求出每个编码值所对应的十进制的数值,将所有的十进制数值进行比较,如果存在相等的数值,则认为当前编码序列不满足编码合法性约束;如果不存在相等的数值,则认为满足编码合法性条件。
4.根据权利要求1所述的方法,其特征在于,所述步骤3中回退到步骤2中所确定的编码位的前一位编码位重新进行选择的过程为,当前一位编码位的取值为0时,则设定该编码位的取值为1,然后进行正、反向合法性检查;当前一位编码位的取值为1时,则直接继续回退到再前一位编码位进行判断。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811422617.7A CN109341726B (zh) | 2018-11-27 | 2018-11-27 | 一种串行绝对编码器的编码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811422617.7A CN109341726B (zh) | 2018-11-27 | 2018-11-27 | 一种串行绝对编码器的编码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109341726A CN109341726A (zh) | 2019-02-15 |
CN109341726B true CN109341726B (zh) | 2020-08-11 |
Family
ID=65318116
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811422617.7A Active CN109341726B (zh) | 2018-11-27 | 2018-11-27 | 一种串行绝对编码器的编码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109341726B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003050142A (ja) * | 1997-05-30 | 2003-02-21 | Agilent Technol Inc | 準絶対位置検出装置 |
CN101692200A (zh) * | 2008-03-11 | 2010-04-07 | 魏营隆 | 数字绳码编码解码及加减乘除倒数算术电路设计的方法 |
CN104065460A (zh) * | 2014-07-11 | 2014-09-24 | 成都卫士通信息产业股份有限公司 | 基于二叉树的编码方法和编码装置 |
CN104713479A (zh) * | 2015-03-11 | 2015-06-17 | 吉林大学珠海学院 | 一种绝对式直线光栅尺及其编码方法 |
-
2018
- 2018-11-27 CN CN201811422617.7A patent/CN109341726B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003050142A (ja) * | 1997-05-30 | 2003-02-21 | Agilent Technol Inc | 準絶対位置検出装置 |
CN101692200A (zh) * | 2008-03-11 | 2010-04-07 | 魏营隆 | 数字绳码编码解码及加减乘除倒数算术电路设计的方法 |
CN104065460A (zh) * | 2014-07-11 | 2014-09-24 | 成都卫士通信息产业股份有限公司 | 基于二叉树的编码方法和编码装置 |
CN104713479A (zh) * | 2015-03-11 | 2015-06-17 | 吉林大学珠海学院 | 一种绝对式直线光栅尺及其编码方法 |
Non-Patent Citations (4)
Title |
---|
Design of absolute encoder disk coding based on affine n digit N-ary gray code;Sarbajit Paul;《2016 IEEE international instrmentation and measurement technology conference》;20181014;第1-7页 * |
二进制数据的双相编码及其串行传送;王家奎等;《大连海事大学学报》;19960228;第22卷(第1期);第65-67页 * |
绝对式光学编码器串行编码方法的研究;邱成等;《光学技术》;20060930;第32卷(第5期);第723-725页 * |
采用单读码器件的串行编码绝对式光学编码器;邱成等;《光学技术》;20070331;第33卷(第2期);第262-265页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109341726A (zh) | 2019-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Bille et al. | Random access to grammar-compressed strings and trees | |
CN102741819B (zh) | 用于解码码字的方法和设备 | |
CN1012400B (zh) | 错误校正电路 | |
US12210412B2 (en) | Hard decoding methods in data storage devices | |
CN112929033A (zh) | 基于深度学习的MLC型NAND闪存Polar-RNNA量化器的优化方法 | |
CN116757158B (zh) | 基于半导体存储的数据管理方法 | |
CN107196665B (zh) | 一种纠错纠删rs码的识别方法 | |
CN110690907B (zh) | 一种已知支路信息turbo码删除模式估计方法 | |
US11734107B2 (en) | Decoding scheme for error correction code structure | |
US20180151197A1 (en) | Error correction code encoder, encoding method, and memory controller including the encoder | |
TWI492548B (zh) | 二元資料之改錯和偵錯方法 | |
CN109341726B (zh) | 一种串行绝对编码器的编码方法 | |
CN111464267B (zh) | 通信数据校验方法、装置、计算机设备和存储介质 | |
JPH0619721B2 (ja) | 符号誤り訂正方法 | |
CN103151078A (zh) | 一种存储器检错纠错码生成方法 | |
CN105973287B (zh) | 一种多轨绝对光栅尺图像编码解码方法 | |
CN103746711B (zh) | 基于译码端状态转移图的量子Viterbi译码算法 | |
CN114136351B (zh) | 一种具有检错纠错功能的单码道绝对式编码和解码方法 | |
CN110245248A (zh) | 一种遥感影像关键字查询方法 | |
CN110708077B (zh) | Ldpc码大数逻辑译码方法、装置和译码器 | |
CN115470035A (zh) | Dna存储的软判决信息译码方法及编码方法 | |
Dolev et al. | Correcting faults in write-once memory | |
CN104202060B (zh) | 一种turbo码码字起点的快速盲识别方法 | |
US20220284304A1 (en) | Codes to detect insertion and deletion errors in a dense storage medium | |
CN112947895B (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 |