一种串行绝对编码器的编码方法技术

技术编号:20358608 阅读:29 留言:0更新日期:2019-02-16 14:44
本发明专利技术公开了一种串行绝对编码器的编码方法,采用基于二叉树的方法按照深度优先的原则逐位迭代确定编码位,实现了绝对编码序列的生成,生成的编码序列的编码字长和编码数可以根据需要进行设定。本发明专利技术提供的编码方法,由于采用了基于二叉树的方法按照深度优先的原则迭代确定编码位,因此能够根据需要设置任意编码字长和编码数,并且所生成的编码序列能够同时支持串行和并行读码方式,从而提高了编码方法的通用性,降低了系统装置的成本和安装技术难度。

【技术实现步骤摘要】
一种串行绝对编码器的编码方法
本专利技术涉及自动控制领域,具体涉及一种串行绝对编码器的编码方法。
技术介绍
目前,编码器主要有增量式和绝对式两种类型。相对于增量式编码器,绝对式编码器是在光栅上按照一定的规则刻录编码,每一位置都有唯一的编码与之对应,而且当出现断电的情况时,重新上电后这种对应关系仍保持不变,由此保证了数据的可靠性和稳定性。对于编码器的读码,有串行读码和并行读码两种方式。由于现有的编码方法中,主要包括二进制码如格雷码、十进制码和六十进制码等,以及在这些编码的基础上进行优化改进的编码方法。以上这些编码方法,一般只能通过并行读码的方式才能实现,导致成本偏高和设备安装的困难;另外,当需要进一步提高测量精度时,就需要增加码道,这对编码器的小型化带来困难;最后,由于这些编码方法都是在约定的编码方式上进行的修改,因此难以实现任意设置编码字长得到通用编码。
技术实现思路
有鉴于此,本专利技术提供了一种串行绝对编码器的编码方法,采用基于二叉树的方法按照深度优先的原则逐位迭代确定编码位,实现了绝对编码序列的生成,生成的编码序列的编码字长和编码数可以根据需要进行设定。本专利技术提供了一种串行绝对编码器的编码方法,包括如下步骤:步骤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本文档来自技高网...

【技术保护点】
1.一种串行绝对编码器的编码方法,其特征在于,包括如下步骤:步骤1、设定编码数和初始编码值;步骤2、采用二叉树按照深度优先的原则确定后一位编码位的取值,即为0或1,产生当前的编码序列;步骤3、对步骤2生成的编码序列进行正、反向的合法性校验,如果校验结果为满足合法性,则执行步骤4;如果校验结果为不满足合法性,则步骤2中确定的编码位选择另一个取值,形成新的编码序列再次进行校验,如果校验结果为满足,则执行步骤4;如果校验结果仍为不满足合法性,则回退到步骤2中所确定的编码位的前一位编码位重新进行选择,如果校验结果为满足,则执行步骤4,如果校验结果为不满足,则继续回退到再前一位编码位重新进行选择,直到校验结果为满足时,执行步骤4;步骤4、存储当前生成的编码序列,当编码序列中的编码位个数小于步骤1中设定的编码数时,返回步骤2迭代计算后续编码位;否则执行步骤5;步骤5、存储最终生成的编码序列。

【技术特征摘要】
1.一种串行绝对编码器的编码方法,其特征在于,包括如下步骤:步骤1、设定编码数和初始编码值;步骤2、采用二叉树按照深度优先的原则确定后一位编码位的取值,即为0或1,产生当前的编码序列;步骤3、对步骤2生成的编码序列进行正、反向的合法性校验,如果校验结果为满足合法性,则执行步骤4;如果校验结果为不满足合法性,则步骤2中确定的编码位选择另一个取值,形成新的编码序列再次进行校验,如果校验结果为满足,则执行步骤4;如果校验结果仍为不满足合法性,则回退到步骤2中所确定的编码位的前一位编码位重新进行选择,如果校验结果为满足,则执行步骤4,如果校验结果为不满足,则继续回退到再前一位编码位重新进行选择,直到校验结果为满足时,执行步骤4;步骤4、存储当前生成的编码序列,当编码序列中的编码位个数小于步骤1中设定的编码数时,返回步骤2迭代计算后续编码位;否则执行步骤5;步骤5、存储最终生成的编码序列。2.根据权利要求1所述的方法,其特征在于,所述步骤2中的二叉树深度优先原则为,设定当后一位编码位的值为0时为左子树,当后一位编码位的值为1时为右子树,按照先左后右深度优先的遍历原则来生成编码序列。3.根据权利要求1...

【专利技术属性】
技术研发人员:陈晓鹏程炜汪常进李敬甘明刚张伟民
申请(专利权)人:北京理工大学
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1