DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1362|回复: 0
打印 上一主题 下一主题

[待整理] 基于VHDL的旋转编码器接口电路的实现

[复制链接]
跳转到指定楼层
楼主
发表于 2014-10-12 17:48:59 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
旋转编码器是一种高精度的角位置测量传感器,具有分辨率高、响应速度快等特点,被广泛应用在以位置或角度为对象的控制系统中。将编码器安装在电机轴的非负载端跟随转动,其反馈信号传递给控制器,构成对电机的闭环控制[1]。

增量式旋转编码器发出两路正交脉冲,即两路(A、B)相位差90°的方波,其相位关系标志电机的转向,当A相超前B相90°时,标志电机正转,如图1所示;当B相超前A相90°时,标志电机反转,如图2所示。编码器旋转一圈,输出脉冲数固定,通过累加A、B两相信号的脉冲数可以计算电机转过的角度。

本文用VHDL语言设计了一种增量式旋转编码器的接口电路,可以配置在CPLD或者FPGA上,实现对编码器输出信号的四倍频、双向可逆计数和与单片机接口的功能。下面介绍各个电路的设计原理和实现源码。
1 四倍频电路设计原理

对于每个确定的编码器,其脉冲周期T对应的角位移固定为q,其量化误差为q/2。若将A和B信号四倍频,则计数脉冲的周期将减小到T/4,量化误差减小为q/8,从而使角位移测量精度提高4倍[2]。

如图1和图2所示,在任意一个周期T内,A、B两路信号各变化了两次,分别产生一次上升沿和一次下降沿,若用Y对A、B两路信号的跳变沿计数,则在一个脉冲周期内,信号Y就会出现4次变化,实现编码器信号的四倍频。

2 转向鉴别电路设计原理

在信号跳变沿时检测另一相信号的电平值可以判断转向[3]。例如,在A相信号上升沿时检测B相信号电平,若B为低电平(如图1),表示电机正转;若B为高电平(如图2),表示电机反转。结合上面所述四倍频原理,计数规则总结如下。

(1)检测到以下状态表示电机正转,加计数:
①A相上升沿,B=0;②A相下降沿,B=1;③B相上升沿,A=1;④B相下降沿,A=0。
(2)检测到以下状态表示电机反转,减计数:
①B相上升沿,A=0;②B相下降沿,A=1;③A相上升沿,B=1;④A相下降沿,B=0。

3 与单片机接口设计原理

编码器的脉冲计数值一般要传送给单片机或其他控制器进行处理,而CPLD的全局时钟的频率高于单片机的时钟频率,为保证CPLD和单片机之间计数值传输的正确性,单片机首先发送信号给CPLD,将计数值锁存后再进行传输。CPLD与单片机接口示意图如图3所示。本设计中CPLD检测到单片机锁存信号的上升沿后将当前计数值锁存[4],然后在单片机位选信号的上升沿和下降沿分时将16 bit计数值的高8位和低8位传送给单片机8 bit I/O端口。


4 实现电路的源代码

本设计利用D触发器的延时作用检测信号跳变沿,D输入端接脉冲信号,则Q输出端是上一个CLK周期的脉冲信号状态。在CLK的上升沿检测Q端输出和D端信号电平值是否一致,不一致表示出现跳变沿。

设A和B是A、B相的源信号,经过D触发器后A、B相信号记为A1、B1,则计数规则表示为:

[url=http://www.diybcq.com/data/11-04/20755227020424/1303870878_4702e51d.gif] [/url]
5 仿真结果

利用ALTERA的开发工具MAX+PlusⅡ,输入VHDL文本文件,目标设备为EPM7128SLC84[5],CLK周期为200 ns,A、B的周期为2 000 ns,编译后仿真波形如图4~图7所示。

图4是编码器正转时的仿真波形,在A相信号的1个周期,两条标记线内,计数值OUTPUT由初始值4增加到8,实现四倍频加计数。

图5是编码器反转时的仿真波形,在A相信号的1个周期内,计数值OUTPUT由初始值15减少到11,实现四倍频减计数。

图6是编码器由正转切换为反转时的仿真波形。如图中标记线所示,B相超前A相后的第一个CLK的上升沿,计数方向立即改变,由加计数变为减计数。

如图7中标记线所示,在锁存信号lock上升沿时16 bit计数值锁存于OUT_lock;位选信号choose上升沿后的第一个CLK上升沿,8 bit计数值OUTPUT8输出OUT_lock的高8位;choose下降沿时OUTPUT8输出OUT_lock的低8位。

由上述仿真波形可以看出,本电路的设计实现了编码器的转向鉴别、四倍频、双向计数以及与单片机通信的功能。

本文设计的编码器接口电路,结构简单、可靠性高,即使在正反转频繁切换的场合也能高精度地工作。本接口电路已应用在单级旋转倒立摆控制系统中,且运行良好。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2025-7-27 22:48 , 耗时 0.174685 秒, 21 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表