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是否为低电平,如果为低电平反转变量自加一

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

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

  • 相关阅读:
    C# 实现 Snowflake算法生成唯一性Id
    kafka可视化客户端工具(Kafka Tool)的基本使用(转)
    docker 安装kafka
    Model类代码生成器
    使用docker 部署rabbitmq 镜像
    Vue 增删改查 demo
    git 提交代码到库
    Android ble蓝牙问题
    mac 配置 ssh 到git (Could not resolve hostname github.com, Failed to connect to github.com port 443 Operation timed out)
    okhttp
  • 原文地址:https://www.cnblogs.com/-wenli/p/11482316.html
Copyright © 2011-2022 走看看