交流伺服串行通信编码器位置反馈脉冲分频输出系统和方法

文档序号:10721495阅读:688来源:国知局
交流伺服串行通信编码器位置反馈脉冲分频输出系统和方法
【专利摘要】本发明一种交流伺服串行通信编码器位置反馈脉冲分频输出系统和方法,由发出脉冲数计算模块、分频脉冲发生器模块、发出脉冲计数器模块、正交脉冲输出状态机模块和原点信号输出计数器模块构成,将通信接收到的编码器位置数据转化为脉冲输出至上位装置,本发明以采样周期内输出的脉冲数为切入点,给出了采样周期内输出的脉冲数的计算方法及修正手段,能够确保输出脉冲的个数,保证位置数据不丢失,系统的抗干扰性更好;且以采样周期内的系统时钟个数为溢出门限,以系统时钟为基准时钟,可以突破编码器实际单圈脉冲数的限制,能够产生比编码器原始单圈脉冲数更高的脉冲数输出,且给出了原点信号的产生方式,使整个系统更加完善。
【专利说明】
交流伺服串行通信编码器位置反馈脉冲分频输出系统和方法
技术领域
[0001] 本发明属于伺服控制技术领域,涉及一种交流伺服串行通信编码器位置反馈脉冲 分频输出系统和方法。
【背景技术】
[0002] 对于高精度的控制场合下,一般使用分辨率高的编码器,为了减少数据传输过程 中受到的干扰,这类编码器大都使用串行通信的方式与伺服驱动器连接。在一些场合下,上 位控制器需要伺服驱动器反馈编码器的位置脉冲,脉冲式编码器可以直接将分频后的脉冲 输出给上位装置,而串行通信方式的编码器只包含位置数据,这就需要有一个方法,将通信 接收到的编码器位置数据转化为脉冲输出至上位装置。

【发明内容】

[0003] 本发明的目的是提供一种串行通信编码器位置反馈脉冲分频输出系统和方法,实 现将编码器反馈的位置数据转化为相互正交的两路脉冲信号(0A信号和0B信号)输出,同时 在原点位置输出一个原点信号(0Z信号),将通信接收到的编码器位置数据转化为脉冲输出 至上位装置。
[0004] 本发明一种串行通信编码器位置反馈脉冲分频输出系统,由发出脉冲数计算模 块、分频脉冲发生器模块、发出脉冲计数器模块、正交脉冲输出状态机模块和原点信号输 出计数器模块构成,其中,
[0005] 发出脉冲数计算模块,接收预置的编码器采样周期T、电机旋转单圈输出脉冲数 PPRSET、脉冲输出基准信号分频比DIV,编码器实际单圈脉冲数PPRE,计算编码器在采样周 期T内需要发出的脉冲数Ρ0ΡΤ,将在采样周期T内需要发出的脉冲数Ρ0ΡΤ和两次中断期间采 样的位置数据的差值SMPT发送给发出脉冲计数器模块,将计算得到的当前采样周期T内需 要输出的脉冲输出频率P0FRQ发送给分频脉冲发生器模块,将电机旋转单圈输出脉冲数 PPRSET发送给原点信号输出计数器模块;
[0006] 分频脉冲发生器模块,根据发出脉冲数计算模块给出的当前采样周期T内需要输出的 脉冲输出频率P0FRQ和系统时钟sysclk,计算其比值为:
将2n作为溢出门限寄存器的溢出门限值,其中η满足2n> (T X SYSCLK)的条件,在每个系统时 钟上升沿对累加准值进行累加,即对RATIO X 2"进行累加,存取累加结果,将累加结果与溢 出门限值比较,若大于,则输出进位标志carry信号,同时将累加结果减去溢出门限值,若小 于,则继续累加直至大于溢出门限值,将该进位标志Carry信号作为所需的脉冲输出基准信 号发送给发出脉冲计数器模块;
[0007] 发出脉冲计数器模块,在分频脉冲发生器模块开始输出脉冲输出基准信号时,对 该脉冲输出基准信号的高电平时间进行计数,当计数值达到采样周期T内需要发出的脉冲 数Ρ0ΡΤ时,阻断脉冲输出基准信号的高电平输出,在下一个采样周期T开始时清空上述计数 值,在脉冲输出基准信号为高电平期间,根据两次中断期间采样的位置数据的差值SMPT的 正负,来确定输出正向脉冲输出标志up和反向脉冲输出标志dn的电平,若SMPT为正,则正向 脉冲输出标志up为高电平,反向脉冲输出标志dn为低电平;若SMPT为负,贝lj正向脉冲输出标 志up为低电平,反向脉冲输出标志dn为高电平,并将正向脉冲输出标志up和反向脉冲输出 标志dn实时发送给正交脉冲输出状态机模块;
[0008] 正交脉冲输出状态机模块,置分频计数器初值div_cnt_init,根据发出脉冲计数 器模块输出的正向脉冲输出标志up和反向脉冲输出标志dn,对分频计数器初值进行加减, 当正向脉冲输出标志up为高电平时,该分频计数器值加1,当反向脉冲输出标志dn为高电平 时,该分频计数器值减1,当正向脉冲输出标志up为高电平且分频计数器值等于脉冲输出基 准信号分频比DIV时,将分频计数器值清零,同时输出正向切换信号ring_up;当反向脉冲输 出标志dn为高电平且分频计数器值为0时,重置分频计数器值为脉冲输出基准信号分频比 DIV的值,同时输出反向切换信号ring_dn;当正向切换信号Ring_up为高电平时,将0A脉冲 信号超前0B脉冲信号九十度;当反向切换信号Ring_dn为高电平时,将0A脉冲信号滞后0B脉 冲信号九十度,通过该脉冲输出正交化处理,即可得到所需的两路互为正交的脉冲输出信 号0A和0B信号,同时将正向切换信号ring_up和反向切换信号ring_dn输出至原点信号输出 计数器模块;
[0009] 原点信号输出计数器模块,接收预置的电机旋转单圈输出脉冲数PPRSET,根据正 交脉冲输出状态机模块输入的正向切换信号ring_up和反向切换信号ring_dn的电平对其 原点信号输出计数器的初值进行加减,当原点信号输出计数器值减小至零或者增大至电机 旋转单圈输出脉冲数PPRSET时,将原点信号输出计数器值重置为电机旋转单圈输出脉冲数 PPRSET或者重置为零,在原点信号输出计数器值为0时,输出原点信号。
[0010] 所述的一种串行通信编码器位置反馈脉冲分频输出系统的输出方法,包括如下步 骤:
[0011]步骤1:在系统运行前根据编码器的实际位置对原点信号输出计数器模块的原点 信号输出计数器的初值进行校正,以系统运行前编码器位置数据校正原点信号输出计数器 的初值 〇Z_CNT_INIT:
[0012]先获取编码器的初始位置值P0S_DATA_INIT,然后计算原点信号输出计数器的初 值0Z_CNT_INIT:
[0014]其中,PPRSET为电机旋转单圈输出脉冲数,PPRE为编码器实际单圈脉冲数;
[0015]在系统运行前,以该原点信号输出计数器的初值0Z_CNT_INIT来修正两路互为正 交的0A和0B脉冲信号的初始相位关系,以保证两路互为正交的0A和0B脉冲信号与原点信号 的相位关系满足:
[0016] {〇A,OB}= 0Z_CNT_INIT[1:0] (7)
[0017]同时,计算正交脉冲输出状态机模块的分频计数器的初值div_cnt_init:
[0018]其中 oz_cnt_init_rem 为 0Z_CNT_INIT 计算结果的余数;
[0019] 上述校正均只在系统运行前运行一次;
[0020] 步骤2、发出脉冲数计算模块接收预置的编码器采样周期T、电机旋转单圈输出脉 冲数PPRSET、脉冲输出基准信号分频比DIV,编码器实际单圈脉冲数PPRE,计算编码器在采 样周期T内需要发出的脉冲数Ρ0ΡΤ,计算公式如下:
[0021] SMPT = P0S_DATAn-P0S_DATAn-i (1)
[0022] 其中,SMPT为信号采样中断期间的编码器脉冲数,即两次中断期间采样的位置数 据的差值,P〇S_DATAn*本次中断采样的位置数据,POS+DATAr^为上次中断采样的位置数 据;
[0024]其中,PPRSET为预置的电机旋转单圈输出脉冲数,DIV为预置的脉冲输出基准信号 分频比,取值1~32之间的任意整数,REMA为上次计算的余数,PPRE为编码器实际单圈脉冲 数;
[0025]将计算得到的编码器在采样周期T内需要发出的脉冲数Ρ0ΡΤ和两次中断期间采样 的位置数据的差值SMPT发送给发出脉冲计数器;
[0026]步骤3、发出脉冲数计算模块根据步骤2计算得到的编码器在采样周期T内需要发 出的脉冲数Ρ0ΡΤ,计算出当前采样周期T内需要输出的脉冲输出频率P0FRQ,并发送给分频 脉冲发生器模块:
[0028]步骤4、采样周期T内脉冲输出的最高频率为系统时钟sysclk,则当前采样周期T内 需要输出的脉冲输出频率P0FRQ与脉冲输出的最高频率的比值为:
[0030] 将2n作为溢出门限寄存器的溢出门限值,其中η满足2n> (T X SYSCLK)的条件,在每 个系统时钟上升沿对累加准值进行累加,即对1^110\2"进行累加,存取累加结果,将累加 结果与溢出门限值比较,若大于,则输出进位标志carry信号,同时将累加结果减去溢出门 限值,若小于,则继续累加直至大于溢出门限值;将该进位标志Carry信号作为所需的脉冲 输出基准信号发送给发出脉冲计数器模块;
[0031] 对脉冲输出频率P0FRQ进行修正,修正后的比值公式如下:
[0033] 根据计算消耗的系统时钟数以及中断周期的偏移取Μ值,一般取4~8之间的任意 整数,确保不会减少输出的脉冲数;
[0034] 上述公式(1)至(5)在每个采样周期Τ内均只运算一次;
[0035] 步骤5、分频脉冲发生器模块开始输出脉冲输出基准信号,发出脉冲计数器模块对 该脉冲输出基准信号的高电平时间进行计数,当计数值达到采样周期Τ内需要发出的脉冲 数Ρ0ΡΤ时,阻断脉冲输出基准信号的高电平输出,在下一个采样周期Τ开始时清空上述计数 值,在脉冲输出基准信号为高电平期间,根据两次中断期间采样的位置数据的差值SMPT的 正负,来确定输出正向脉冲输出标志up和反向脉冲输出标志dn的电平,若SMPT为正,则正向 脉冲输出标志up为高电平,反向脉冲输出标志dn为低电平;若SMPT为负,贝lj正向脉冲输出 标志up为低电平,反向脉冲输出标志dn为高电平,并将正向脉冲输出标志up和反向脉冲输 出标志dn实时发送给正交脉冲输出状态机模块;
[0036]步骤6、正交脉冲输出状态机模块根据发出脉冲计数器模块输出的正向脉冲输出 标志up和反向脉冲输出标志dn,对分频计数器的初值di v_cnt_ini t进行加减,当正向脉冲 输出标志up为高电平时,该分频计数器值加1,当反向脉冲输出标志dn为高电平时,该分频 计数值减1,当正向脉冲输出标志up为高电平且分频计数值等于脉冲输出基准信号分频比 DIV时,将分频计数值清零,同时输出正向切换信号ring_up;当反向脉冲输出标志dn为高电 平且分频计数值为0时,重置分频计数值为脉冲输出基准信号分频比DIV的值,同时输出反 向切换信号ring_dn,当正向切换信号Ring_up为高电平时,将0A脉冲信号超前0B脉冲信号 九十度;当反向切换信号Ring_dn为高电平时,将0A脉冲信号滞后0B脉冲信号九十度,通过 该脉冲输出正交化处理,即可得到所需的两路互为正交的脉冲输出信号0A和0B信号,同时 将正向切换信号ring_up和反向切换信号ring_dn输出至原点信号输出计数器模块;
[0037]步骤7、原点信号输出计数器模块接收预置的电机旋转单圈输出脉冲数PPRSET,根 据正交脉冲输出状态机模块输入的正向切换信号ring_up和反向切换信号ring_dn的电平 对原点信号输出计数器的初值〇Z_CNT_INIT进行加减,当原点信号输出计数器值减小至零 或者增大至电机旋转单圈输出脉冲数PPRSET时,将原点信号输出计数器值重置为电机旋 转单圈输出脉冲数PPRSET或者重置为零,在原点信号输出计数器值为0时,输出原点信号。 [0038]本发明以采样周期内输出的脉冲数为切入点,给出了采样周期内输出的脉冲数的 计算方法及修正手段,能够确保输出脉冲的个数,保证位置数据不丢失,系统的抗干扰性更 好;本发明以采样周期内的系统时钟个数为溢出门限,以系统时钟为基准时钟,可以突破编 码器实际单圈脉冲数的限制,能够产生比编码器原始单圈脉冲数更高的脉冲数输出,且给 出了原点信号的产生方式,使整个系统更加完善。
【附图说明】
[0039]图1是本发明电路的原理框图。
[0040]以下结合附图和实施例对本发明作进一步详述。
【具体实施方式】
[0041 ] 在本实施例中,FPGA选用ALTERA公司的EP4CE6E22I7。
[0042]如图1所示,本发明一种串行通信编码器位置反馈脉冲分频输出系统,由发出脉冲 数计算模块1、分频脉冲发生器模块2、发出脉冲计数器模块3、正交脉冲输出状态机模块4和 原点信号输出计数器模块5构成,其中,
[0043]发出脉冲数计算模块1,接收预置的编码器采样周期T、电机旋转单圈输出脉冲数 PPRSET、脉冲输出基准信号分频比DIV,编码器实际单圈脉冲数PPRE,计算编码器在采样周 期T内需要发出的脉冲数Ρ0ΡΤ,将在采样周期T内需要发出的脉冲数Ρ0ΡΤ和两次中断期间 采样的位置数据的差值SMPT发送给发出脉冲计数器模块3,将计算得到的当前采样周期T内 需要输出的脉冲输出频率P0FRQ发送给分频脉冲发生器模块2,将电机旋转单圈输出脉冲数 PPRSET发送给原点信号输出计数器模块5;
[0044] 分频脉冲发生器模块2,根据发出脉冲数计算模块1给出的当前采样周期T内需要输出的 脉冲输出频率P0FRQ和系统时钟sysclk,计算其比值为 将2n作为溢出门限寄存器的溢出门限值,其中η满足2n> (T X SYSCLK)的条件,在每个系统时 钟上升沿对累加准值进行累加,即对RATIO X 2"进行累加,存取累加结果,将累加结果与溢 出门限值比较,若大于,则输出进位标志carry信号,同时将累加结果减去溢出门限值,若小 于,则继续累加直至大于溢出门限值,将该进位标志Carry信号作为所需的脉冲输出基准信 号发送给发出脉冲计数器模块3;
[0045] 发出脉冲计数器模块3,在分频脉冲发生器模块2开始输出脉冲输出基准信号时, 对该脉冲输出基准信号的高电平时间进行计数,当计数值达到采样周期T内需要发出的脉 冲数Ρ0ΡΤ时,阻断脉冲输出基准信号的高电平输出,在下一个采样周期T开始时清空上述计 数值,在脉冲输出基准信号为高电平期间,根据两次中断期间采样的位置数据的差值SMPT 的正负,来确定输出正向脉冲输出标志up和反向脉冲输出标志dn的电平,若SMPT为正,则正 向脉冲输出标志up为高电平,反向脉冲输出标志dn为低电平;若SMPT为负,贝lj正向脉冲输 出标志up为低电平,反向脉冲输出标志dn为高电平,并将正向脉冲输出标志up和反向脉冲 输出标志dn实时发送给正交脉冲输出状态机模块4;
[0046]正交脉冲输出状态机模块4,置分频计数器初值div_cnt_init,根据发出脉冲计数 器模块3输出的正向脉冲输出标志up和反向脉冲输出标志dn,对分频计数器值进行加减,当 正向脉冲输出标志up为高电平时,该分频计数器值加1,当反向脉冲输出标志dn为高电平 时,该分频计数器值减1,当正向脉冲输出标志up为高电平且分频计数器值等于脉冲输出基 准信号分频比DIV时,将分频计数器值清零,同时输出正向切换信号ring_up;当反向脉冲输 出标志dn为高电平且分频计数器值为0时,重置分频计数器值为脉冲输出基准信号分频比 DIV的值,同时输出反向切换信号ring_dn;当正向切换信号Ring_up为高电平时,将0A脉冲 信号超前0B脉冲信号九十度;当反向切换信号Ring_dn为高电平时,将0A脉冲信号滞后0B脉 冲信号九十度,通过该脉冲输出正交化处理,即可得到所需的两路互为正交的脉冲输出信 号0A和0B信号,同时将正向切换信号ring_up和反向切换信号ring_dn输出至原点信号输出 计数器模块5;
[0047]原点信号输出计数器模块5,接收预置的电机旋转单圈输出脉冲数PPRSET,根据正 交脉冲输出状态机模块4输入的正向切换信号ring_up和反向切换信号ring_dn的电平对其 原点信号输出计数器的初值进行加减,当原点信号输出计数器值减小至零或者增大至电机 旋转单圈输出脉冲数PPRSET时,将原点信号输出计数器值重置为电机旋转单圈输出脉冲 数PPRSET或者重置为零,在原点信号输出计数器值为0时,输出原点信号。
[0048] 本发明一种串行通信编码器位置反馈脉冲分频输出方法,具体实现包括如下步 骤:
[0049] 步骤1:由于原点信号位置与编码器本身的位置相关,因此需要在系统运行前根据 编码器的实际位置对原点信号输出计数器模块5的原点信号输出计数器的初值进行校正, 以系统运行前编码器位置数据校正原点信号输出计数器的初值〇Z_CNT_INIT:
[0050] 先获取编码器的初始位置值P〇S_DATA_INIT,然后计算原点信号输出计数器的初 值OZ_CNT_INIT:
[0052]其中,PPRSET为电机旋转单圈输出脉冲数,PPRE为编码器实际单圈脉冲数;
[0053]由于原点信号与0A和0B脉冲信号要保持相同的相位关系,因此还要在系统运行 前,以该原点信号输出计数器的初值〇Z_CNT_INIT来修正两路互为正交的0A和0B脉冲信号 的初始相位关系,以保证两路互为正交的0A和0B脉冲信号与原点信号的相位关系满足: [0054] {〇A,OB}= 0Z_CNT_INIT[1:0] (7)
[0055]同时,计算正交脉冲输出状态机模块4的分频计数器的初值div_cnt_init:
[0056]其中 oz_cnt_init_rem 为 0Z_CNT_INIT 计算结果的余数;
[0057]上述校正均只在系统运行前运行一次;
[0058] 步骤2、发出脉冲数计算模块1接收预置的编码器采样周期T、电机旋转单圈输出脉 冲数PPRSET、脉冲输出基准信号分频比DIV,编码器实际单圈脉冲数PPRE,计算编码器在采 样周期T内需要发出的脉冲数Ρ0ΡΤ,计算公式如下:
[0059] SMPT = P0S_DATAn-P0S_DATAn-i (1)
[0060] 其中,SMPT为信号采样中断期间的编码器脉冲数,即两次中断期间采样的位置数 据的差值,P〇S_DATAn*本次中断采样的位置数据,POS+DATAr^为上次中断采样的位置数 据;
[0062]其中,PPRSET为预置的电机旋转单圈输出脉冲数,DIV为预置的脉冲输出基准信号 分频比,取值1~32之间的任意整数,REMA为上次计算的余数,PPRE为编码器实际单圈脉冲 数;
[0063]这里引入脉冲输出基准信号分频比DIV,是为了在单圈输出脉冲数PPRSET较小时, 保证计算精度,在此处放大的倍数,通过正交脉冲输出状态机模块4内的分频来抵消;
[0064]将计算得到的编码器在采样周期T内需要发出的脉冲数Ρ0ΡΤ和两次中断期间采样 的位置数据的差值SMPT发送给发出脉冲计数器3;
[0065]步骤3、发出脉冲数计算模块1根据步骤2计算得到的编码器在采样周期T内需要发 出的脉冲数Ρ0ΡΤ,计算出当前采样周期T内需要输出的脉冲输出频率P0FRQ,并发送给分频 脉冲发生器模块2:
[0067]步骤4、采样周期T内脉冲输出的最高频率为系统时钟sysclk,则当前采样周期T内 需要输出的脉冲输出频率P0FRQ与脉冲输出的最高频率的比值为:
[0069]将2n作为溢出门限寄存器的溢出门限值,其中η满足2n> (T X SYSCLK)的条件,在每 个系统时钟上升沿对累加准值进行累加,即对1^1'10\2"进行累加,存取累加结果,将累加 结果与溢出门限值比较,若大于,则输出进位标志carry信号,同时将累加结果减去溢出门 限值,若小于,则继续累加直至大于溢出门限值;将该进位标志Carry信号作为所需的脉冲 输出基准信号发送给发出脉冲计数器模块3;
[0070]由于各项数据的计算需要消耗系统时钟,同时存在系统时钟偏移的情况,需要对 脉冲输出频率P0FRQ进行修正,修正后的比值公式如下:
[0072] 根据计算消耗的系统时钟数以及中断周期的偏移取Μ值,一般取4~8之间的任意 整数,用于抵消数据计算及系统时钟偏移消耗的时钟数,稍微增大输出脉冲的频率,确保不 会减少输出的脉冲数;
[0073] 上述公式(1)至(5)在每个采样周期Τ内均只运算一次;
[0074] 步骤5、分频脉冲发生器模块2开始输出脉冲输出基准信号,发出脉冲计数器模块3 对该脉冲输出基准信号的高电平时间进行计数,当计数值达到采样周期Τ内需要发出的脉 冲数Ρ0ΡΤ时,阻断脉冲输出基准信号的高电平输出,在下一个采样周期Τ开始时清空上述计 数值,在脉冲输出基准信号为高电平期间,根据两次中断期间采样的位置数据的差值SMPT 的正负,来确定输出正向脉冲输出标志up和反向脉冲输出标志dn的电平,若SMPT为正,则正 向脉冲输出标志up为高电平,反向脉冲输出标志dn为低电平;若SMPT为负,贝lj正向脉冲输出 标志up为低电平,反向脉冲输出标志dn为高电平,并将正向脉冲输出标志up和反向脉冲输 出标志dn实时发送给正交脉冲输出状态机模块4;
[0075]步骤6、正交脉冲输出状态机模块4根据发出脉冲计数器模块3输出的正向脉冲输 出标志up和反向脉冲输出标志dn,对分频计数器的初值div_cnt_init进行加减,当正向脉 冲输出标志up为高电平时,该分频计数器值加1,当反向脉冲输出标志dn为高电平时,该分 频计数值减1,当正向脉冲输出标志up为高电平且分频计数值等于脉冲输出基准信号分频 比DIV时,将分频计数值清零,同时输出正向切换信号ring_up;当反向脉冲输出标志dn为高 电平且分频计数值为0时,重置分频计数值为脉冲输出基准信号分频比DIV的值,同时输出 反向切换信号ring_dn,当正向切换信号Ring_up为高电平时,将0A脉冲信号超前0B脉冲信 号九十度;当反向切换信号Ring_dn为高电平时,将0A脉冲信号滞后0B脉冲信号九十度,通 过该脉冲输出正交化处理,即可得到所需的两路互为正交的脉冲输出信号0A和0B信号,同 时将正向切换信号ring_up和反向切换信号ring_dn输出至原点信号输出计数器模块5; [0076]该脉冲输出正交化处理的具体做法为:通过正交脉冲输出状态机模块4输出两路 互为正交的0A和0B脉冲信号,0A和0B脉冲信号组合起来共有00,01,11,10四种状态,通过正 向切换信号ring_up和反向切换信号ring_dn的电平可以确定脉冲信号输出的正反相位(SP 两路脉冲信号的相位超前与滞后关系,正转为〇〇, 10,11,〇1,反转为〇〇,〇1,11,10)和变换两 路脉冲信号的状态,输出符合要求的两路正交脉冲信号;
[0077]步骤7、原点信号输出计数器模块5接收预置的电机旋转单圈输出脉冲数PPRSET, 根据正交脉冲输出状态机模块4输入的正向切换信号ring_up和反向切换信号ring_dn的电 平对原点信号输出计数器的初值〇Z_CNT_INIT进行加减,当原点信号输出计数器值减小至 零或者增大至电机旋转单圈输出脉冲数PPRSET时,将原点信号输出计数器值重置为电机旋 转单圈输出脉冲数PPRSET或者重置为零,在原点信号输出计数器值为0时,输出原点信号。 [0078]以上所述,仅是本发明较佳实施例而已,并非对本发明的技术范围作任何限制,故 凡是依据本发明的技术实质对以上实施例所作的任何细微修改、等同变化与修饰,均仍属 于本发明技术方案的范围内。
【主权项】
1. 一种串行通信编码器位置反馈脉冲分频输出系统,其特征在于:由发出脉冲数计算 模块、分频脉冲发生器模块、发出脉冲计数器模块、正交脉冲输出状态机模块和原点信号输 出计数器模块构成,其中, 发出脉冲数计算模块,接收预置的编码器采样周期T、电机旋转单圈输出脉冲数 PPRSET、脉冲输出基准信号分频比DIV,编码器实际单圈脉冲数PPRE,计算编码器在采样周 期T内需要发出的脉冲数POPT,将在采样周期T内需要发出的脉冲数POPT和两次中断期间采 样的位置数据的差值SMPT发送给发出脉冲计数器模块,将计算得到的当前采样周期T内需 要输出的脉冲输出频率POFRQ发送给分频脉冲发生器模块,将电机旋转单圈输出脉冲数 PPRSET发送给原点信号输出计数器模块; 分频脉冲发生器模块,根据发出脉冲数计算模块给出的当前采样周期T内需要输出的脉 冲输出频率POFRQ和系统时钟sysc化,计算其比值另将2。作为溢出口限寄存器的溢出口限值,其中η满足2。> (T X SYSCLK)的条件,在每个系统时 钟上升沿对累加准值进行累加,即对RATIO X 2"进行累加,存取累加结果,将累加结果与溢 出口限值比较,若大于,则输出进位标志carry信号,同时将累加结果减去溢出口限值,若小 于,则继续累加直至大于溢出口限值,将该进位标志化r巧信号作为所需的脉冲输出基准信 号发送给发出脉冲计数器模块; 发出脉冲计数器模块,在分频脉冲发生器模块开始输出脉冲输出基准信号时,对该脉 冲输出基准信号的高电平时间进行计数,当计数值达到采样周期T内需要发出的脉冲数 P0PT时,阻断脉冲输出基准信号的高电平输出,在下一个采样周期T开始时清空上述计数 值,在脉冲输出基准信号为高电平期间,根据两次中断期间采样的位置数据的差值SMPT的 正负,来确定输出正向脉冲输出标志up和反向脉冲输出标志化的电平,若SMPT为正,则正向 脉冲输出标志up为高电平,反向脉冲输出标志dn为低电平;若SMPT为负,则正向脉冲输出标 志up为低电平,反向脉冲输出标志dn为高电平,并将正向脉冲输出标志up和反向脉冲输出 标志dn实时发送给正交脉冲输出状态机模块; 正交脉冲输出状态机模块,置分频计数器初值div_cnt_init,根据发出脉冲计数器模 块输出的正向脉冲输出标志up和反向脉冲输出标志dn,对分频计数器初值进行加减,当正 向脉冲输出标志up为高电平时,该分频计数器值加1,当反向脉冲输出标志dn为高电平时, 该分频计数器值减1,当正向脉冲输出标志up为高电平且分频计数器值等于脉冲输出基准 信号分频比DIV时,将分频计数器值清零,同时输出正向切换信号ring_up;当反向脉冲输出 标志dn为高电平且分频计数器值为0时,重置分频计数器值为脉冲输出基准信号分频比DIV 的值,同时输出反向切换信号ring_dn;当正向切换信号Ring_up为高电平时,将0A脉冲信号 超前0B脉冲信号九十度;当反向切换信号Ring_dn为高电平时,将0A脉冲信号滞后0B脉冲信 号九十度,通过该脉冲输出正交化处理,即可得到所需的两路互为正交的脉冲输出信号0A 和0B信号,同时将正向切换信号ring_up和反向切换信号ring_dn输出至原点信号输出计数 器模块; 原点信号输出计数器模块,接收预置的电机旋转单圈输出脉冲数PPRSET,根据正交脉 冲输出状态机模块输入的正向切换信号ring_up和反向切换信号;ring_dn的电平对其原点 信号输出计数器的初值进行加减,当原点信号输出计数器值减小至零或者增大至电机旋转 单圈输出脉冲数PPRSET时,将原点信号输出计数器值重置为电机旋转单圈输出脉冲数 PPRSET或者重置为零,在原点信号输出计数器值为加寸,输出原点信号。2.根据权利要求1所述的一种串行通信编码器位置反馈脉冲分频输出系统的输出方 法,其特征在于包括如下步骤: 步骤1:在系统运行前根据编码器的实际位置对原点信号输出计数器模块的原点信号 输出计数器的初值进行校正,W系统运行前编码器位置数据校正原点信号输出计数器的初 值 OZ_CNT_IWT: 先获取编码器的初始位置值P〇S_DATA_INI T,然后计算原点信号输出计数器的初值0Z_ CNT-INIT:其中,PPRSET为电机旋转单圈输出脉冲数,PPRE为编码器实际单圈脉冲数; 在系统运行前,W该原点信号输出计数器的初值〇Z_CNT_INIT来修正两路互为正交的 0A和0B脉冲信号的初始相位关系,W保证两路互为正交的0A和0B脉冲信号与原点信号的相 位关系满足: (0A,0B]=0Z_CNT_INIT[1:0](7) 同时,计算正交脉冲输出状态机模块的分频计数器的初值div_cnt_init:其中oz_cnt_init_rem为OZ_CNT_IN];T计算结果的余数; 上述校正均只在系统运行前运行一次; 步骤2、发出脉冲数计算模块接收预置的编码器采样周期T、电机旋转单圈输出脉冲数 PPRSET、脉冲输出基准信号分频比DIV,编码器实际单圈脉冲数PPRE,计算编码器在采样周 期T内需要发出的脉冲数POPT,计算公式如下: SMPT = POS_DATAn-POS_DATAn-i (1) 其中,SMPT为信号采样中断期间的编码器脉冲数,即两次中断期间采样的位置数据的 差值,POS_DATAn为本次中断采样的位置数据,POS_DATAn-功上次中断采样的位置数据;其中,PPRSET为预置的电机旋转单圈输出脉冲数,DIV为预置的脉冲输出基准信号分频 比,取值1~32之间的任意整数,REMA为上次计算的余数,PPRE为编码器实际单圈脉冲数; 将计算得到的编码器在采样周期T内需要发出的脉冲数POPT和两次中断期间采样的位 置数据的差值SMPT发送给发出脉冲计数器; 步骤3、发出脉冲数计算模块根据步骤2计算得到的编码器在采样周期T内需要发出的 脉冲数POPT,计算出当前采样周期T内需要输出的脉冲输出频率POFRQ,并发送给分频脉冲 发生器模块:步骤4、采样周期T内脉冲输出的最高频率为系统时钟sysc化,则当前采样周期T内需要 输出的脉冲输出频率POFRQ与脉冲输出的最高频率的比值为:将2。作为溢出口限寄存器的溢出口限值,其中η满足2n>(TXSYS化K)的条件,在每个系 统时钟上升沿对累加准值进行累加,即对RATI0X2n进行累加,存取累加结果,将累加结果 与溢出口限值比较,若大于,则输出进位标志car巧信号,同时将累加结果减去溢出口限值, 若小于,则继续累加直至大于溢出口限值;将该进位标志化r巧信号作为所需的脉冲输出基 准信号发送给发出脉冲计数器模块; 对脉冲输出频率P0FRQ进行修正,修正后的比值公式如下:根据计算消耗的系统时钟数W及中断周期的偏移取Μ值,一般取4~8之间的任意整数, 确保不会减少输出的脉冲数; 上述公式(1)至巧)在每个采样周期Τ内均只运算一次; 步骤5、分频脉冲发生器模块开始输出脉冲输出基准信号,发出脉冲计数器模块对该脉 冲输出基准信号的高电平时间进行计数,当计数值达到采样周期Τ内需要发出的脉冲数 Ρ0ΡΤ时,阻断脉冲输出基准信号的高电平输出,在下一个采样周期Τ开始时清空上述计数 值,在脉冲输出基准信号为高电平期间,根据两次中断期间采样的位置数据的差值SMPT的 正负,来确定输出正向脉冲输出标志up和反向脉冲输出标志化的电平,若SMPT为正,则正向 脉冲输出标志up为高电平,反向脉冲输出标志dn为低电平;若SMPT为负,则正向脉冲输出标 志up为低电平,反向脉冲输出标志dn为高电平,并将正向脉冲输出标志up和反向脉冲输出 标志dn实时发送给正交脉冲输出状态机模块; 步骤6、正交脉冲输出状态机模块根据发出脉冲计数器模块输出的正向脉冲输出标志 up和反向脉冲输出标志dn,对分频计数器的初值d i v_c η t _ i η i t进行加减,当正向脉冲输出 标志up为高电平时,该分频计数器值加1,当反向脉冲输出标志dn为高电平时,该分频计数 值减1,当正向脉冲输出标志up为高电平且分频计数值等于脉冲输出基准信号分频比DIV 时,将分频计数值清零,同时输出正向切换信号ring_up;当反向脉冲输出标志dn为高电平 且分频计数值为0时,重置分频计数值为脉冲输出基准信号分频比DIV的值,同时输出反向 切换信号ring_dn,当正向切换信号Ring_啡为高电平时,将0A脉冲信号超前0B脉冲信号九 十度;当反向切换信号Ring_dn为高电平时,将0A脉冲信号滞后0B脉冲信号九十度,通过该 脉冲输出正交化处理,即可得到所需的两路互为正交的脉冲输出信号0A和0B信号,同时将 正向切换信号ring_up和反向切换信号;ring_dn输出至原点信号输出计数器模块; 步骤7、原点信号输出计数器模块接收预置的电机旋转单圈输出脉冲数PPRSET,根据 正交脉冲输出状态机模块输入的正向切换信号ring_啡和反向切换信号ring_dn的电平对 原点信号输出计数器的初值〇Z_CNT_IN 口进行加减,当原点信号输出计数器值减小至零或 者增大至电机旋转单圈输出脉冲数PPRSET时,将原点信号输出计数器值重置为电机旋转单 圈输出脉冲数PPRSET或者重置为零,在原点信号输出计数器值为加寸,输出原点信号。
【文档编号】G01D5/244GK106092156SQ201610633929
【公开日】2016年11月9日
【申请日】2016年8月4日 公开号201610633929.7, CN 106092156 A, CN 106092156A, CN 201610633929, CN-A-106092156, CN106092156 A, CN106092156A, CN201610633929, CN201610633929.7
【发明人】陈鑫, 张镭, 陈天成, 王天来, 张畅
【申请人】泉州市桑川电气设备有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1