zoukankan      html  css  js  c++  java
  • 正交解码详解

    编码器

      编码器的定义:

    在数字系统里,常常需要将某一信息(输入)变换为某一特定的代码(输出)。把二进制码按一定的规律编排,例如8421码、格雷码等,使每组代码具有一特定的含义(代表某个数字或控制信号)称为编码。
    具有编码功能的逻辑电路称为编码器。编码器有若干个输入,在某一时刻只有一个输入信号被转换成为二进制码。如果一个编码器有N个输入端和n个输出端,则输出端与输入端之间应满足关系N≤2n。
    例如8线—3线编码器和10线—4线编码器分别有8输入、3位二进制码输出和10输入、4位二进制码输出。

      工作原理:

      应用于速度控制位置控制系统的检测元件。分为增量型编码器绝对型编码器

      我们这里只介绍增量型编码器的一种旋转编码器,旋转编码器是用来测量转速的装置。它分为单路输出和双路输出两种。技术参数主要有每转脉冲数(几十个到几千个都有),和供电电压等。单路输出是指旋转编码器的输出是一组脉冲,而双路输出的旋转编码器输出两组相位差90度的脉冲,通过这两组脉冲不仅可以测量转速,还可以判断旋转的方向。

    由一个中心有轴的光电码盘,其上有环形通、暗的刻线,有光电发射和接收器件读取,获得四组正弦波信号组合成A、B、C、D,每个正弦波相差90度相位差(相对于一个周波为360度),将C、D信号反向,叠加在A、B两相上,可增强稳定信号;另每转输出一个Z相脉冲以代表零位参考位。
    由于A、B两相相差90度,可通过比较A相在前还是B相在前,以判别编码器的正转与反转,通过零位脉冲,可获得编码器的零位参考位。

    线数
      分辨率—编码器以每旋转360度提供多少的通或暗刻线称为分辨率,也称解析分度、或直接称多少线,一般在每转分度5~10000线。如果一个编码器是512线,说明这个编码器转一圈对应的信号线会输出500个脉冲。这个还是比较有用的,我们如果要得到转动角度:脉冲计数/512。

    不同接法:

    • 单相联接,用于单方向计数,单方向测速。
    • A.B两相联接,用于正反向计数、判断正反向和测速。
    • A、B、Z三相联接,用于带参考位修正的位置测量。

    正交解码

    我在实验室里面使用的为四线:VCC、GND、A线、Dir线。淘宝地址

    以下来源:关于stm32的正交解码

    关于正交解码,我先解释何为正交解码,,,,其实名字挺高大上的,,,,还是先说编码器吧

    看一下我用过的一种编码器

    编码器的 线 数 ,是说编码器转一圈输出多少个脉冲,,,如果一个编码器是500线,,,说明这个编码器转一圈对应的信号线会输出500个脉冲,,,,为什么说是对应的,,,对于上面的编码器而言是这样的,,,,但是有的编码器里面有好多线,,,有的信号线是转一圈就输出对应多少线的脉冲,,,有的信号线是转一圈就输出一个脉冲,,,,这就要看编码器的资料了......

    看我上面用过的这个编码器,,使用A,B,VCC,GND这四根线,,

    编码器转一圈A信号线会输出500个脉冲,,,,B信号线也会输出500个脉冲,,不过

    正转的时候

    反转的时候

    正转的时候信号线A先输出信号,B信号线后输出

    反转的时候信号线B先输出信号,A信号线后输出

    假设只是单纯的测正转脉冲或者单纯的测反转脉冲,那么只需要用单片机随意选择一个信号线就行了,,然后就是脉冲计数,,,,

    如果说要是一个电机既有正转又有反转,,,,我想知道这个电机绝对正转了多少圈

    那么就需要用正转的圈数减去反转的圈数了,,,,,,那么问题来了,,,怎么测正转圈数和反转圈数

    其实传统的做法

    关于D触发器,,,,当clk引脚来一个上升沿,D引脚是什么电平,,那么Q就输出什么电平,,Q非,,与Q相反

    现在如果说电机正转

    可以看到每当B来上升沿的时候,A信号总为高电平,,,所以Q会输出高电平

    设置A为上升沿进入其,,,中断函数

    然后判断一下Q是否为高电平,如果为高电平正转变量自加一

    如果电机反转

    可以看到每当B来上升沿的时候,A信号总为低电平,,,所以Q会输出低电平

    设置B为上升沿进入其,,,中断函数

    然后判断一下Q是否为低电平,如果为低电平反转变量自加一

     然后 正转变量减去反转变量就能得到电机到底正转了多少圈......这样就会得到一个相对的变量,,这个变量呢,就是单片机正交解码的值

    说白了单片机的正交解码功能就是得到一个正反转,,,相对的变量,,,,这个变量呢,,你正转的时候他会加,你反转的时候他会减,

  • 相关阅读:
    Paypal开源nodejs框架研究(一)KrakenJs
    CoffeeScript 陷阱
    nodejs express route 的用法
    Moogoose实践之:Schema写全很重要,不然会把时间浪费在调错上!
    微软新一代输入法框架 TSF
    VC++在Win7和Win8系统下获得百度输入法的名字
    两款MongoDB的可视化管理工具
    网易开源游戏服务器框架-Pomelo实践(一)
    WinDbg之Page Heap实践
    MongoDB 备份与恢复的实践
  • 原文地址:https://www.cnblogs.com/-wenli/p/11482316.html
Copyright © 2011-2022 走看看