基于单片机的旋转编码器鉴相方法


# 鉴相方法及相应算法
在 , 个脉冲周期时间 ! 内"单片机应该能准确判断
88
件纵横
!
!"#$%"#& ’&()*+,-&
采 样 的 时 间 间 隔 约 为 ) 9: # 即 可 以 基 本 上 避 免 抖 动 " 在 ) 个 时 间 周 期 ! 内 #! !" 点 电 平 会 变 化 / 次 # 即 单片机可以根据 ) 个脉 冲信号 做出 / 次判断 #具有 倍频 的效果 "但是 由于毛 刺的 存在 #在不要 求倍 频的场 合#通
出 ! 点相对于 " 点的相位情况" 根据开始采样检测的 时刻不同#在 ! 内可以将采样的波形 分为 如图 + 所 示的
/ 种不同的组合情况" 若两点产生波形的组合不在下列 / 种情况中#则表明由 于外 部干 扰或抖 动产 生了异 常的
波形 #通常把 这种 波形称 为$毛 刺%"
!) !* !+ !, !!. !/ !0
" # ( % ! 相 位 落 后 " 相 位 &’ !
图 ) 编码器输出脉冲示意图
化发生 " 次时#通过分别比对正 !反旋转序列来进行 判 断 " 假 设 " ;/# 即 每 ) 个 周 期 ! 进 行 ) 次 判 断 % # 检 测 到 / 次 变 化 后 #! 缓 冲 区 内 的 值 为 ’ !) !) !’ #" 缓 冲 区 内 的 值 为 ’ ! ’ ! ) ! ) # 则 比 对 序 列 7’’ # )’ # )) # ’)8 可 得 为 正 旋 转 " 假 设 " ;- # 检 测 - 次 变 化 后 # ! 缓 冲 区 内 的 值 为 ’ !
读 取 ! !" 点 电 平
图 +
编码器周期内输出波形的 / 种组合
方法 #去掉繁 琐的 判断与 比较#使 得运 行时间 大大 缩短# 从而提高响应速 度" 组成地址的方法是& 设 " 次变化进行 ) 次鉴 相 # 第 # 次 变 化 前 #!!" 电 平 值 分 别 记 为 ! # ! "#
缓冲区满1 电平有变化1
! 旋转编码器简介 !"! 旋 转 编 码 器 的 分 类
根据结 构和 工作原 理不 同 "编 码器可 以分 为光电 式 编 码器 %电磁式 编码 器和机 械接 触式 编码器 $ 其中 "光电 式编码器由于具有较高的精度!抗干扰能力强!接口简 单!使 用方便 等特 点得到 了广 泛应 用 $ 根据测量的参数不同"编码器又可分为旋转式和直 线式编码器$ 旋转式编码器用于测量转角转速"直线式 编码器用于直线位移!运动速度的精密测量$ 旋转编码器又可分为增量式编码器和绝对式编码
数 ! 每 中 断 " 次 / " 5"6 ! 将 缓 冲 区 值 比 对 " 次 ! 正 反 转 序 列进行 " 次判 断!也 可以 采 用 组 合 地 址 的 方 法 来 缩 短 中 断响应时间$
! 纠错方法
由于编 码器 工作的 环境 可能 比较恶 劣 !输 出脉冲 较 易 受干 扰!产生 毛刺 ’在编码 器快 速旋 转时 !尤 其 是 在 倍 频工作时!由于采样速率 不够!可 能导 致采 样的脉 冲有 遗漏$ 这些都会导致鉴相得出 错误 的结果 !需要 在单片 机程序实现中对这些情况进行纠正$ 如前所述!可以在 单片机处理程序中用比对序列的方法来避免误判$ 此外 还有以下 4 种方法&
# 其 中 ’> # > " ?)% " 则 可 以
组 成 地 址 !)")!+"+ ’’
3
匹配序列1
2
清空缓冲区
!""" " 每 个 地 址 在 @A$:B
程序存储区中都对应一 个值用来鉴相#或者可以 直接存 放程 序地址 #用程
3
判断旋转方向 !处理 图 鉴相算法流程
序计数器直接加载跳转到鉴相完成后的处理程序" 例 如 # 设 " ;- # <) 对 应 反 向 旋 转 # ) 对 应 正 向 旋 转 # ’ 表 示 异常不处理或状态无变化" 根据正!反旋转序列可以得 到如表 + 所示的组合地址存放数据表" 设 ) 个字节长度 的 全 局 变 量 (CD 作 为 缓 冲 区 用 来 存 储 电 平 状 态 值 # 同 时 作 为 @A$:B 存 储 区 的 低 字 节 地 址 " 记 录 ! ! " 点 电 平 值 时 采 用 的 是 先 将 (CD 左 移 两 位 # 然 后 同 ’’’’’’!#"# 相 $ 与 % 的 方 式 " 存 储 - 次 后 # 得 到 (CD 为 ’’ !)")!+"+ !-"- # 将 该 值 作 为 @A$:B 寻 址 地 址 的 低 , 位 # 取 出 数 据 即 可 得 到鉴相结果" 这种方法实际上是采取了用程序存储空间 来换取时间的思路" 在单片机上实现循环检测一般有 - 种方法&
! 采 用 定 时 中 断 ! 在 中 断 处 理 程 序 中 检 测 * "+ 点
3
电平值存入缓冲区
2
’) ! )’ ! )) # 可 以 根 据 / 种 组 合 状 态 之 间 的 变 化 进 行 鉴 相 " 若 正 旋 转 # 则 可 得 到 对 应 的 序 列 7’’ # )’ # )) # ’) # ’’8 #
反 旋 转 则 有 对 应 的 序 列 7’’ # ’) # )) # )’ # ’’8 " 如 表 ) 所 示 的 判 断 表 中 # 行 表 示 当 前 !!" 点 电 平 值 组 合 # 列 表 示 上 一 次 变 化 前 ! !" 点 电 平 值 组 合 # 检 测 到 发 生 ) 次 电 平 变 化 即 可 进 行 鉴 相 " 需 要 指 出 的 是 #若 ! !" 两 点 电 平 相 比上次均发生了变化#则无法进行判断#这说明检测时 遗漏了脉冲或产生了$毛刺%"
’ ! ’ # " 缓 冲 区 内 的 值 为 ’ ! ) ! ’ # 无 法 匹 配 序 列 7’’ ! ’) ! ’’8 # 则 判 断 为 产 生 毛 刺 " 如 果 只 检 测 ) 次 # 会 做 出 ’’ <= ’) 反 转 ! ’)<=’’ 正 转 的 判 断 # 导 致 误 判 "
该鉴相方法具体程序流程如图 - 所示" 按此算法设 计的程序#由于判断比较指令较多#运 行时间较长#总 体响应速度比较低"为了 克服这一缺点#可以采用 将电平状态组成地址的
!"# 编 码 器 工 作 原 理
大多数直线式和旋转式编码器都是光透过光电码 盘和光栏板夹缝形成忽明忽暗的光信号"硅光敏器件把 光信号转换成两组近似于正弦的电信号输送出去 "然后 根据需要把这些信号进行差 值或数 字化 处理 "两 组正 弦 信 号 ! ! " 在 相 位 上 相 差 $% ! $ 经 放 大 整 形 后 变 成 ! ! " 两 组 相 位 相 差 &% ! 的 方 波 $ 根 据 ! ! " 之 间 的 相 位 关 系 即 通过鉴相可确定旋钮的正反转$ 当 ! 超前于 " 时为正 转"而当 " 超前于 ! 时 为反 转"如图 ’ 所示 $ 旋转 编码 器的输出脉冲宽度随着旋转速度而变化"即转速越高 其 脉 冲 宽 度 越 窄 $ 通 常 每 圈 的 计 数 脉 冲 有 ()% 个 ! *+% 个 ! , %%% 个 等 " 用 户 可 根 据 精 度 的 需 要 进 行 选 择 $
" # $ % ! 相 位 领 先 " 相 位 &’ ! !
常采用多次检测判断来识别毛刺#以增强判断的可靠性 " 通 过 设 立 两 个 缓 冲 区 用 来 分 别 存 储 ! !" 点 的 电 平 # 当 检 测 到 ! !" 两 点 中 任 何 一 点 电 平 发 生 变 化 时 # 把 ! !" 两点的电平值分别存入各自缓冲区中" 当检测到电平变
表!
’’ ’) )’ ))
" !# 相 位 判 断 表
’’
无 正 反 错
’)
反 无 错 正
)’
正 错 无 反
))
错 反 正 无
为 了 保 证 采 样 ! !" 电 平 时 没 有 脉 冲 遗 漏 # 对 采 样 频率要求比较高" 通常需要保证在编码器以最快速度旋 转 时 # 在 !!" 任 一 点 + 次 电 平 变 化 之 间 有 + 次 以 上 的 采样 #以便可以比较最 近 + 次 的电平 #去除 因为 其他外 界条 件变化 产生 的抖 动"试验 表明 #对于常 用的 编码 器 #
!"# $#%#&$’" () *"# $(*+$, -.’(/-$ !% 0"+%- /-*-’*-/ 1-*"(/% 2+%-/ (. 345
;< =>?’ " =< 3@AB CD?/ " E=!FC G@AB,
9, . F@. , 4H>I @J CK>LD>MH NMDLHAM " OPHQMK@A?Q OAB?AHHK?AB RASM?MDMH " =HJH? /(%%(0 " TU?A> & /. )%/ " OPHQMK@A?Q OAB?AHHK?AB RASM?MDMH " =HJH? /(%%(0 " TU?A>: $%&’()*’ ! 4UH V>VHK >A>PWXHS MUH IHMU@LS @J LHMHQM?AB VU>SH @J MUH ?AQKHIHAM>P K@M>KW HAQ@LHK YW ZT<" MUHA B?[HS S@IH >PB@K?MUIS @J MUH VU>SH LHMHQM ?A Q@II@A DSH >AL ’YDKK ( ?LHAM?J?HL IHMU@LS. \?A>PPW" MUH >PB@K?MUIS >KH MHSM?J?HL YW VK@BK>II?AB ?A !23. +,- ./(0& ! ZT<& K@M>KW HAQ@LHK & VU>SH LHMHQM 旋转编码器作为速度和位移的反馈传感器广泛应 用于家电!无线电设备控制中"同时在电动机!电梯 等需 要对运动速度和位移信息反馈的自动化控制场合也起 着 重 要 作 用 # 编 码 器 通 常 有 ! 相 !" 相 两 路 输 出 信 号 "信 号包含了被测对象的旋转方 向以及 旋转 角度等 信息 "通 常需要由硬件电路或单片机程序进行鉴相处理$ 本文根 据旋转编码器以及单片机的特点"研究并总结了利用单 片机进行鉴相的方法"同时给出了相应的鉴相算法$ 器$ 增量式编码器每转过 # 个单位"编码器就输出 # 个 脉冲 "故称 为增量 式$ 绝 对 式 编 码 器 是 直 接 输 出 数 字 量 的传感器"它的特点是 不需 要计数 "在转 轴的 任何一 个 位置都可读出一个与位置对应的数字码$
合集下载

51单片机检测光电旋转编码器每周实际脉冲数

51单片机检测光电旋转编码器每周实际脉冲数

程序代码/**************************************************************** **** 文件名: main.c** 创建人: 飘扬** 日期: 2006.10.04** 修改人:** 日期:** 描述: 本程序使用伟纳300A型实验板,来检测光电旋转编码器的实际每周** 输出脉冲数。

程序中,定时器0用于8位数码管动态扫描定时,时间** 为1ms(12MHZ晶振)。

定时器1工作于模式1,计数器方式,直接测量** 接在T1脚的脉冲个数。

外部中断0,工作于边沿触发方式,接在旋转** 编码器的Z信号输出上,用于检测编码器完整旋转一周。

8位数码管,** 接成动态扫描,接在P0和P2口。

左4位,用来显示上一周的实际脉冲** 数,右4位,用来显示当前周的脉冲数。

**** 实际使用,感觉效果还可以。

程序准确的测量出某牌光电旋转编码** 器(400脉冲),实际工作时,双路信号输出脉冲数量不等,及脉冲** 数与标称值的误差情况。

**** 本程序的显示部分,直接修改于伟纳提供的数码管显示1-8例程。

**----------------------------------------------------------------*/#include <reg51.h>#include <intrins.h>unsigned char data dis_digit;unsigned char code dis_code[11]={0xc0,0xf9,0xa4,0xb0, // 0, 1, 2, 30x99,0x92,0x82,0xf8,0x80,0x90, 0xff};// 4, 5, 6, 7, 8, 9, offunsigned char data dis_buf[8];unsigned char data dis_index;unsigned int counter1,counter2; //左右计数器数值void main(){P0 = 0xff;P2 = 0xff;TMOD = 0x51; //定时器0工作在模式1定时器方式,定时器1工作在模式1计数器方式TH0 = 0xFC;TL0 = 0x17;TH1 = 0;TL1 = 0;IE = 0x83; //开定时器0中断和外部中断0IT0 = 1; //外部中断0为边沿触发方式//显示初始化counter1=0; //右测显示的本周当前脉冲数counter2=0; //左测显示的上一周脉冲数dis_digit = 0xfe;dis_index = 0;TR0 = 1;//主程序TR1 = 1;while(1){counter1=(TH1*0xff)+TL1;dis_buf[0] = dis_code[0x0a];dis_buf[1] = dis_code[counter2/100];dis_buf[2] = dis_code[(counter2%100)/10];dis_buf[3] = dis_code[counter2%10];dis_buf[4] = dis_code[0x0a];dis_buf[5] = dis_code[counter1/100];dis_buf[6] = dis_code[(counter1%100)/10];dis_buf[7] = dis_code[counter1%10];}}//外部中断0void int0() interrupt 0{TL1=0;TH1=0;counter2=counter1;}void timer0() interrupt 1// 定时器0中断服务程序, 用于数码管的动态扫描// dis_index --- 显示索引, 用于标识当前显示的数码管和缓冲区的偏移量// dis_digit --- 位选通值, 传送到P2口用于选通当前数码管的数值, 如等于0xfe时, // 选通P2.0口数码管// dis_buf --- 显于缓冲区基地址{TH0 = 0xFC;TL0 = 0x17;P2 = 0xff; // 先关闭所有数码管P0 = dis_buf[dis_index]; // 显示代码传送到P0口P2 = dis_digit; //dis_digit = _crol_(dis_digit,1); // 位选通值左移, 下次中断时选通下一位数码管dis_index++; //dis_index &= 0x07; // 8个数码管全部扫描完一遍之后,再回到第一个开始下一次扫描}。

单片机编码器编程实例 -回复

单片机编码器编程实例 -回复

单片机编码器编程实例-回复“单片机编码器编程实例”编码器是一种常用的输入设备,广泛应用于各种电子设备中。

在单片机编程中,编码器常被用于控制和监测电机运动、旋转角度的测量以及用户界面交互等方面。

本文将以编码器编程为主题,一步一步介绍如何在单片机中实现编码器的功能。

第一步:了解编码器的基本原理和工作方式编码器是一种将旋转运动转化为电信号的设备。

常见的编码器有旋转编码器和线性编码器两种。

旋转编码器通常由一对光电传感器和一个带有刻度盘的旋转轴组成。

当旋转轴旋转时,光电传感器会感知到刻度盘的变化,并将其转化为电信号输出。

线性编码器则是通过传感器感知物体的移动,并将其转化为电信号输出。

第二步:了解编码器的输出类型和工作原理编码器的输出类型有两种,一种是增量式编码器,另一种是绝对式编码器。

增量式编码器通常输出两路信号,一路表示方向(A相信号),另一路表示旋转角度(B相信号)。

绝对式编码器则输出更多的信号,可以精确表示旋转位置或线性位移。

第三步:选择合适的编码器类型和接口在单片机编程中,通常会选择增量式编码器,因为其相对简单且较为常用。

选择适合的编码器接口是编程前必须考虑的因素之一。

常见的编码器接口有两种:脉冲计数接口和磁编码接口。

对于脉冲计数接口,编码器输出的脉冲信号通过单片机的IO口进行读取;对于磁编码接口,编码器输出的信号可以通过SPI、I2C等通信协议进行读取。

第四步:编写初始化函数在进行编码器编程之前,首先需要编写初始化函数,对编码器进行初始化设置。

初始化函数主要包括设置IO口的输入输出方向、使能编码器等操作。

第五步:编写中断服务函数编码器的工作是通过中断来实现的。

当编码器发生旋转或位移时,会产生相应的中断信号,通过中断服务函数来处理这些信号。

中断服务函数主要包括读取编码器的脉冲信号、计算旋转角度或位移,以及对应的控制逻辑。

第六步:编写主程序逻辑在编写主程序逻辑时,可以根据需要选择编码器的工作模式和功能。

基于单片机的旋转编码器鉴相方法

基于单片机的旋转编码器鉴相方法

! 旋转编码器简介 !"! 旋 转 编 码 器 的 分 类
根据结 构和 工作原 理不 同 "编 码器可 以分 为光电 式 编 码器 %电磁式 编码 器和机 械接 触式 编码器 $ 其中 "光电 式编码器由于具有较高的精度!抗干扰能力强!接口简 单!使 用方便 等特 点得到 了广 泛应 用 $ 根据测量的参数不同"编码器又可分为旋转式和直 线式编码器$ 旋转式编码器用于测量转角转速"直线式 编码器用于直线位移!运动速度的精密测量$ 旋转编码器又可分为增量式编码器和绝对式编码
读 取 ! !" 点 电 平
图 +
编码器周期内输出波形的 / 种组合
方法 #去掉繁 琐的 判断与 比较#使 得运 行时间 大大 缩短# 从而提高响应速 度" 组成地址的方法是& 设 " 次变化进行 ) 次鉴 相 # 第 # 次 变 化 前 #!!" 电 平 值 分 别 记 为 ! # ! "#
缓冲区满1 电平有变化1
处理点的相位情况根据开始采样检测的时刻不同在种不同的组合情况若两点产生波形的组合不在下列种情况中则表明由于外部干扰或抖动产生了异常的波形通常把这种波形称为毛刺依据单片机工作方式通常有以下两种鉴相方法查询法单片机的45点通过循环采样读取点电平来判断当前旋钮是否旋转以及旋转的方向所示的判断表中行表示当前点电平值组合列表示上一次变化前点电平值组合检测到发生次电平变化即可进行鉴相需要指出的是若两点电平相比上次均发生了变化则无法进行判断这说明检测时遗漏了脉冲或产生了毛刺为了保证采样电平时没有脉冲遗漏对采样频率要求比较高通常需要保证在编码器以最快速度旋次以上的采样以便可以比较最近次的电平去除因为其他外界条件变化产生的抖动试验表明对于常用的编码器采样的时间间隔约为次判断具有倍频的效果但是由于毛刺的存在在不要求倍频的场合通常采用多次检测判断来识别毛刺以增强判断的可靠性通过设立两个缓冲区用来分别存储两点的电平值分别存入各自缓冲区中当检测到电平变化发生通过分别比对正

旋转编码器与单片机的通用接口

旋转编码器与单片机的通用接口

机械测量中旋转编码器与单片机的通用接口技术分类:微处理器与DSP | 2009-03-12南昌大学自动化系郭敏初始化程序为:void ECT_initial(void) //ECT初始化{DDRT_DDRT1=0; //置PT1(IOC1)脚为输入TIOS_IOS0=0;TIOS_IOS1=0; //通道1为输入捕捉TCTL4=0b00001101; //通道1为任何沿捕捉TSCR1_TEN=1; //计数器1使能ICOVW_NOVW1 = 1; //保护ICPAR_PA1EN = 1; //脉冲累加器使能}在每一控制周期开始时,MC9S12DG128读取脉冲累加器中的数值(average[5]),然后与前5个控制周期的脉冲累加器值求和(all_speed)再求平均值,做为当前速度反馈值(speed)。

程序流程图如图3所示。

图3 直流电机测速流程图计数速度的测试采用以下两种方法对电机测速部分进行测试:1)让智能车在赛道上行驶,每20ms将赛车当前速度值通过SCI串口发送到上位机上,并利用串口调试器进行监控。

对正好在一圈当中赛车行驶的速度值进行累加求和,再乘以20ms,得到的总行驶距离约为27m,而模拟赛道总长约为26m,两者的相对误差不到4%。

这说明,速度传感器测量基本准确。

2)直流电机空载运行时,改变脉冲捕捉方式,在上升沿、下降沿和任何沿捕捉方式间进行切换。

不改变驱动电机占空比设置,理想情况下,单位时间内捕捉的脉冲数满足:上升沿获取下的脉冲数=下降沿获取下的脉冲数=任何沿获取下的脉冲数/2。

在脉冲捕捉方式不变的情况下,改变PWM信号占空比(即改变速度给定值),检测的速度值与占空比近似成线性比例关系。

以上间接说明脉冲检测的可靠性。

pic16单片机 旋转编码器 计数

pic16单片机 旋转编码器 计数

pic16单片机旋转编码器计数一、概述pic16单片机作为一种常见的微控制器,被广泛应用于各种各样的嵌入式系统中。

而在许多嵌入式系统中,旋转编码器也是一种常见的输入设备,用于接收用户的旋转操作,并将其转换成数字信号。

本文将围绕pic16单片机如何实现对旋转编码器的计数功能展开讨论。

二、旋转编码器的工作原理旋转编码器是一种常用的用于探测旋转方向和角度的传感器。

它由两个通常相互垂直的轴组成,并且当旋转编码器旋转时,两个轴的相对位置会改变,从而可以通过检测这种位置的变化来判断旋转的方向和角度。

旋转编码器一般有两种类型:绝对编码器和增量编码器。

对于pic16单片机来说,增量编码器更为常见。

三、pic16单片机对旋转编码器的计数原理pic16单片机通过外部中断来接收旋转编码器发出的脉冲信号,从而实现对旋转的计数。

一般来说,旋转编码器每旋转一次会产生一定数量的脉冲信号,根据脉冲信号的数量和方向,pic16单片机可以实现对旋转的准确计数。

四、pic16单片机旋转编码器计数的实现步骤1. 确定旋转编码器的工作方式:不同型号的旋转编码器工作方式可能不同,需要先确定旋转编码器产生脉冲信号的规律。

2. 连接旋转编码器和pic16单片机:将旋转编码器的脉冲输出端连接至pic16单片机的外部中断引脚,同时连接旋转编码器的电源和接地端。

3. 初始化pic16单片机的外部中断:通过设置pic16单片机的寄存器,初始化外部中断的工作方式和触发条件。

4. 编写中断服务程序:当pic16单片机接收到外部中断信号时,中断服务程序会被触发,需要编写相应的中断服务程序来处理旋转编码器发送的脉冲信号。

5. 实现计数功能:在中断服务程序中,对旋转编码器发出的脉冲信号进行计数,并根据方向进行相应的加减操作。

五、pic16单片机旋转编码器计数的应用pic16单片机对旋转编码器的计数功能在许多嵌入式系统中都有广泛的应用。

在机器人控制系统中,可以用旋转编码器来获取电机的转动情况,以便控制机器人的移动;在工业自动化设备中,也可以利用旋转编码器和pic16单片机来实现对设备操作的精确控制。

基于增量式旋转编码器的角速度测试仪

基于增量式旋转编码器的角速度测试仪

题 。 以增 量式 旋 转编码 器 为基础 的角度 、角 速度
和位 移测 试应 用 一直 局 限于数 控机 床 、高端 测量
系统 和 伺服 系统 等 。但 近 年来 ,技 术 的进步 己使
得 以低 成本 的单 片机 和旋 转编 码器 构成 的测 量 系 统在 测 量领 域得 到广 泛应 用 。这种 低成 本 的高 精
右 移) 1 0 0 1 0 00 1 101 0 0 。分 0 10 , 1 0 ,0 10 , 1 10 1 0 11 1 l 0 1
次 转速 计算 之外 ,每 个脉 冲沿 到来 时 都可 以对转 速 结 果进 行更 新 , 比单 纯检 测上 升沿 或者 下 降沿 得 到 的采样 率提 高一 倍 。 于 两路 正交脉 冲来 说 , 对 约每 1 个脉 冲周 期更 新一 次转 速结 果 ,相 当于 / 4 把 编码 器 分辨 率提 高 了 4倍 。”没有 考虑 脉冲 干
p l b tb表 usb t 【 {x ,x ,x ,x 9 us a ( l .a 】 O f O f O f 0 6 e p e b = ,
.
单 片机 嵌入 旋 转编 码器 ,配 以各 种格 式 的通 信 接 口,将扩 大编 码器 的应 用 范 围。 目前市场 上 已经 有输 出信 号满 足 RS 3C协 议 的编码 器 。无 22 线通信 模 块是 考虑 能某 些情 况 不改变 系 统 的硬 件 接 线 ,而 增加 编码 器 的信 号输入 。同时 也便 于一 台手持 设 备查看 和分 析 多个编码 器 的数据 。
别 记录 A B相 上一 个周期 内的脉冲 状态 , 2 0l 每 5 s x
第 4期
林 励 : 基 于 增 量 式 旋 转 编 码 器 的 角 速 度 测 试 仪

编码器四倍频鉴相电路


四倍频鉴相电路
换向
原 因 方向信号不能准确反映相应计数脉冲
解决
对计数脉冲进行延迟 (延迟时间大于方向信号)
四倍频鉴相电路
改善后的FPGA电路设计
四倍频鉴相电路 编码器按检测原理分为:光电式、磁式、感应式、电容式,按信号输出形式分为增量式和绝对式。
此时的方波信号电平并不一定符合FPGA能够处理的电平,因而可再经过施密特触发器将电压转换为合理电压(3.
为什么要四倍频鉴相?
编码器每转过一个固定角,就对应一个 脉冲信号,若将AB信号四倍频,即在一个 周期内产生四个脉冲信号,则将测量精度提 高了四倍。
单纯的A相或者B相信号不含有方向信息, AB信号具有相位超前/落后的关系,反映了 旋转方向。
四倍频鉴相电路
方法一:利用A、B信号与其延迟信号的逻辑关 系输出脉冲信号,最终一路输出正脉冲,一路输 出负脉冲
输出信号处理
1、初始输出信号
以码盘为例,首先从编码器出来 的有3组正/余弦信号:A+、A-、B+、 B-、Z+、Z-,其中AB两组信号是位置 检测脉冲信号,Z相信号是码盘旋转 一周输出信号,用于系统清零。
如果电机正转,则A组信号比B 组信号提前90O相位,如果电机反转, 则反之。
输出信号处理
2、滤波
四倍频鉴相电路
正转 计数脉冲
四倍频鉴相电路
正转 方向信号
四倍频鉴相电路
反转 方向信号
四倍频鉴相电路
方向 计数
基于FPGA的电路设计
四倍频鉴相电路
危机
输出的方向信号有尖脉冲
当运动方向不停变化时会产生计数误差
四倍频鉴相电路
原因 解决
仿真波形图
A与B信号经延迟后并不一定同步 对方向信号进行滤波

基于单片机的旋转编码器鉴相方法研究

2.0 E e t nc n ie r g n tue, fi 3 0 7, hn ) 6 2, lcr i E gn ei I s tt Hee 2 0 3 C ia o n i
Ab ta t T e a e n lz s h me h d o d t ci g h s o h i ce n a oa y n o e b MC s r c : h p p r a ay e t e t o s f e e t p a e f t e n r me t l t r e c d r y n r U, t e gv s o h n ie s me
ag r h f t e p a e d t c n c mmo s n “ u r i e t e t o s i al lo i ms o h h s e e t i o t n u e a d b r ” d n i d me h d .F n l i f y.t e ag r h r e t e y p o r mmig i h lo i ms a e t si d b r g a t i f n n
单 、 用方便 等特 点得 到 了广泛应 用 。 使
根 据 测 量 的 参 数 不 同 , 码 器 又 可 分 为 旋 转 式 和 直 编 线 式 编 码 器 。 旋 转 式 编 码 器 用 于 测 量 转 角 转 速 , 线 式 直
关 键词 :单 片机 ; 转 编码 器 ; 相 旋 鉴
中 图分 类 号 :T 3 1 P 1 文 献 标 识 码 :A 文 章 编 号 :17 — 7 0 2 1 )3 0 2 — 3 6 4 7 2 (0 0 1 — 0 0 0
Th r s a c o he o a y n o e ph s d t c e m e ho s e e e rh f t r t r e c d r S a e ee t d t d

如何使用单片机计数旋转编码器

如何使用单片机计数旋转编码器1、测试环境:(1)MCU: AU6840(增强型51内核单片机)@12MHz,Atmega48(AVR单片机)@3.6864MHz;(2)Encodr:E1132X1B-H1FE05-00 ,分辨率:20/周;(3)编码规则:硬件为低有效,常态输出高;故正向: A:1 0 0 1 1 0 0 1 1B:1 1 0 0 1 1 0 0 1反向: A:1 1 0 0 1 1 0 0 1B:1 0 0 1 1 0 0 1 1(4)硬件测试结果(通常情况下):暂态相位持续时间:2-30mS;相位变化抖动时间(不使用或使用小于103电容滤波):<0.5mS;相位变化抖动时间(104电容滤波):可以忽略,但输出波形严重变形;2、解码方案推荐:(1)中断解码:将Encoder输出接到单片机中断输入引脚上,像Atmega48这种全IO中断,且具有电平变化中断功能的单片机尤佳。

(2)主程序轮询解码:对于无中断或外部中断已被占用的情况下,必须使用主程序轮询解码,应该尽量提高单片机主频,缩短主程序运行时间。

3、解码程序设计要点:(1)去抖动设计,强烈推荐使用473-104的电容进行硬件去抖动。

应用中断解码,且具有剩余定时器资源的的情况下,可以考虑软件去抖动;主程序十分简单的情况下,采用轮询解码也可以考虑软件去抖动(可以考虑延时去抖)。

需要注意的是,具有按键去抖优化的单片机(如AU6840),应该考虑禁用相应IO的按键去抖优化,因为按键去抖一般在10mS以上,用在Encoder上会滤掉有用信息。

(2)轮询解码设计:问题的焦点在于如何提高轮询速度。

可以考虑将主程序的任务划分为不同的时间优先级,为不同的任务分配不同的时间片,使得每次主循环执行的任务尽量少。

单片机中断程序ORG 0000HLJMP STARTORG 001BHLJMP TT1ORG 0300HSTART:CLR P3.5MOV SP,#60HMOV R0,#20CLR P1.1MOV TMOD,#10HMOV TH1,#3CHMOV TL1,#0B0HSETB ET1SETB EASETB TR1SJMP $TT1: MOV TH1,#3CHMOV TL1,#0B0HDJNZ R0,BACKCPL P1.1MOV R0,#20BACK: RETIEND中断产生之后,中断系统自动停止主程序的执行,跳入相应的中断子程序入口。

基于光电增量式旋转编码器的四倍频检测电路设计

河南理工大学毕业设计(论文)题目基于光电增量式旋转编码器的四倍频检测电路设计姓名qq764604355学院计算机科学与技术学院专业通信工程班级07-4学号3107090204xx日期2011.3—2011.6指导教师李x摘要随着科学技术的飞速发展,光电编码器已被广泛应用于各种位置伺服控制系统当中,用来检测机械运动的位移、速度以及加速度等信息。

常见的光电编码器有绝对位置式和增量式两种。

光电增量式旋转编码器,通过检测转轴转过的角度,直接将位移信号转换成数字信号。

本文在原有输出低精度波形的基础上,进行四倍频电路的设计,在不增加硬件投入的前提下,提高精度和准确度,使此电路适合于位移检测精度较高的场合。

它主要包括判向电路和四倍频电路。

本文简要介绍了编码器的分类和原理,介绍了单稳态触发器SN74174N的特性及其功能,详细介绍了光电式旋转编码器的工作原理和功能,设计了四倍频检测电路,并采用Multisim对电路进行了仿真。

实验证明本系统稳定可靠,具有很大的实用价值。

关键词:光电编码器四倍频电路Multisim 数字电路仿真ABSTRACTAlong with the rapid development of science and technology, photoelectric encoder has been widely applied in position servo control system by all means and used to detect mechanical motion of displacement, velocity and acceleration and so on.There two kinds of photoelectric encoder we use the most is absolute position photoelectric encoder and incremental type.Photoelectric incremental revolving encoder displacement signal converted into digital signals by detecting the angle of shaft turned. This paper based on the original low precision output waveform then design frequency circuit of four times. Without any increase input in hardware and improving precision and accuracy, make this circuit be suitable for displacement detection precision occasion. It mainly includes circuit of four times and frequency circuit.This paper briefly introduces the principle, the classification and encoder .Then introduced the characteristics of single state flip-flop SN74174N and its function, introduces photoelectric revolving encoder。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档