查看: 7699|回复: 4

verilog之:旋转编码器驱动————TONY

[复制链接]

该用户从未签到

发表于 2015-11-19 09:44:10 | 显示全部楼层 |阅读模式
分享到:
本帖最后由 TONY-NING 于 2015-11-25 10:43 编辑

旋转编码器可通过旋转可以计数正方向和反方向转动过程中输出脉冲的次数,旋转计数不像电位计,这种转动计数是没有限制的。配合旋转编码器上的按键,可以复位到初始状态,即从0开始计数。

工作原理: 增量编码器是一种将旋转位移转换为一连串数字脉冲信号的旋转式传感器。这些脉冲用来控制角位移。在Eltra编码器中角位移的转换采用了光电扫描原理。读数系统以由交替的透光窗口和不透光窗口构成的径向分度盘(码盘)的旋转为依据,同时被一个红外光源垂直照射,光把码盘的图像投射到接收器表面上。接收器覆盖着一层衍射光栅,它具有和码盘相同的窗口宽度。接收器的工作是感受光盘转动所产生的变化,然后将光变化转换成相应的电变化。再使低电平信号上升到较高电平,并产生没有任何干扰的方形脉冲,这就必须用电子电路来处理。读数系统通常采用差分方式,即将两个波形一样但相位差为180°的不同信号进行比较,以便提高输出信号的质量和稳定性。读数是再两个信号的差别基础上形成的,从而消除了干扰。


顺时针运动
逆时针运动
A B
1 1
0 1
0 0
1 0
A B
1 1
1 0
0 0
0 1
增量编码器


增量编码器给出两相方波,它们的相位差90°,通常称为A通道和B通道。其中一个通道给出与转速相关的信息,与此同时,通过两个通道信号进行顺序对比,得到旋转方向的信息。还有一个特殊信号称为Z或零通道,该通道给出编码器的绝对零位,此信号是一个方波与A通道方波的中心线重合。
增量型编码器精度取决于机械和电气两种因素,这些因素有:光栅分度误差、光盘偏心、轴承偏心、电子读数装置引入的误差以及光学部分的不精确性。确定编码器精度的测量单位是电气上的度数,编码器精度决定了编码器产生的脉冲分度。以下用360°电气度数来表示机械轴的转动,而轴的转动必须是一个完整的周期。要知道多少机械角度相当于电气上的360度,可以用下列公式来计算: 电气360 =机械360°/n°脉冲/转
图:A、B换向时信号
编码器分度误差是以电气角度为单位的两个连续脉冲波的最大偏移来表示。误差存在于任何编码器中,这是由前述各因素引起的。Eltra编码器的最大误差为±25电气角度(在已声明的任何条件下),相当于额定值偏移±7%,至于相位差90°(电气上)的两个通道的最大偏差为±35电气度数相当于额定值偏移±10%左右。
UVW信号增量型编码器
除了上述传统的编码器外,还有一些是与其它的电气输出信号集成在一起的增量型编码器。与UVW信号集成的增量型编码器就是实例,它通常应用于交流伺服电机的反馈。这些磁极信号一般出现在交流伺服电机中,UVW信号一般是通过模拟磁性原件的功能而设计的。在Eltra编码器中,这些UVW信号是用光学方法产生,并以三个方波的形式出现,它们彼此偏移120°。为了便于电机启动,控制电动机用的启动器需要这些正确的信号。这些UVW磁极脉冲可在机械轴旋转中重复许多次,因为它们直接取决于所连接的电机磁极数,并且用于4、6或更多极电机的UVW信号。

》》》》》》》》
了解了原理之后,我编写verilog代码,并在STEP小脚丫FPGA板子上做了验证。

verilog驱动】

该驱动是用于对增量型旋转编码器接FPGA的的驱动,可以方便的调用,这里提供详细的原理介绍、硬件连接、和设计源码,如果自己有兴趣可以在此基础上把旋转编码器具体应用到项目中去。

【驱动程序功能介绍】

  • 增量型旋转编码器有两路相位不同的信号输出,Phase A 和 Phase B,FPGA需要对这两路输入信号进行分析,判断出旋转的动作,输出一个加(up)或减(down)的脉冲信号。
  • 同时,很多旋转编码器都有按键功能,除了旋转以外可以按下,这个按键和旋转是独立的。FPGA内部对按键进行了消抖动,并响应动作产生一个脉冲信号

(key_out)

  • 改代码加入了现象的验证,输出为6位数据,可接上LED观看现象,旋转和按键会使LED产生流水灯效果
  • file:///C:/Users/Administrator/Documents/Tencent%20Files/492386679/Image/C2C/RTGX7Y5O3W54M0RFDUAY6MI.png

在小脚丫开发板上的现象如图,两个三色LED会按照如图方式进行切换轮流显示。视频中可以观看到

【旋转编码器描述】

旋转编码器可以用于仪器面板等很多场合

【适用类型】:增量型

各类双路输出的旋转编码器(输出两组A/B相位差90度的脉冲)

已测试类型:

  • Avago  HRPG-AD32#16F,
  • EC11,
  • EC12

其他同类淘宝上有很多,如下图,这种一般是5个脚,VCC,GND,Phase A,Phase B,KEY。(名称不完全一致,但实际是一样的)

【增量型旋转编码器】:

输出两组A/B相位差90度的脉冲

更详细的介绍http://www.elecfans.com/consume/279317.html

【硬件连接】

连接图中,主要有电源和GND,两路信号,按键信号(如果有按键),大地(接机壳,Avago HRPG-AD32#16F上没有按键,多了一个接机壳的地脚,仍然是5个脚)

【FPGA程序设计框架】

资源占用情况

【小脚丫开发板介绍 】

可编程逻辑的设计方法从根本上改变了现代数字电路的设计,不管是从最简单的与非门还是到最复杂的SoC。通过一句句硬件描述语言可编程逻辑器件FPGA帮我们实现了各种数字电路,这一切显得十分神奇又十分神秘。目前市场上有各种各样的FPGA开发板,它们不是功能太复杂,使用门槛太高就是核心芯片老旧,几乎要被淘汰。Step团队经过精心挑选,打造了小脚丫一代FPGA开发板,为大家提供一个非常酷,实用,入门简单的学习开发平台。

小脚丫的特性:

  • 食指大小——目前最小的FPGA开发板,尺寸52mm*18mm,即插即用;
  • USB供电,自带板载编程器,无需额外配置FPGA下载线
  • LCMXO2-1200,性价比最高最适合的FPGA芯片
  • 既可作学习数字逻辑的FPGA开饭,也可作核心功能模块使用,适合各种DIY和原型设计
  • 丰富的实例、代码支持

【几种对比】

第一个为鼠标用的,很小;第二种已经做了一块转接板,可以立在板子上,体积相对增大;第三者体积相对也小巧

第四个属于精密的,体积大;第五,第六和第三一样,一般仪器或音频设备等的设置功能都可以用这种。可以代替按键,寿命非常长。

【本设计中用到的主要芯片】

LCMXO2-1200:Lattice FPGA,主频133Mhz,PBGA132封装(LCMXO2-1200数据手册

Avago Technologies:HRPG AD32 16F,旋转编码器,(Avago HRPG-AD32#16F数据手册

小脚丫开发板:DIP40封装形式,小巧精悍的FPGA开发板,(小脚丫开发板相关信息


相关代码电路等移步电路城
电路城—旋转编码器驱动.verilog代码电路图,原理图,电路设计

回复

使用道具 举报

  • TA的每日心情
    擦汗
    2015-11-30 10:57
  • 签到天数: 8 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    发表于 2015-11-19 11:43:57 | 显示全部楼层
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-6-14 11:22
  • 签到天数: 44 天

    连续签到: 1 天

    [LV.5]常住居民I

    发表于 2015-11-19 12:58:25 | 显示全部楼层
    不错呀,好东西
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2016-9-5 01:38:57 | 显示全部楼层
    不错呀,好东西
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    昨天 21:00
  • 签到天数: 325 天

    连续签到: 28 天

    [LV.8]以坛为家I

    发表于 2024-1-30 11:03:11 | 显示全部楼层
    还是这个旋转编码器好一些,比按键调节的速度快多了
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-11-22 00:10 , Processed in 0.159184 second(s), 23 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.