正交解码详解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
正交解码详解
编码器
编码器的定义:
在数字系统⾥,常常需要将某⼀信息(输⼊)变换为某⼀特定的代码(输出)。
把⼆进制码按⼀定的规律编排,例如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线。
以下来源:
关于正交解码,我先解释何为正交解码,,,,其实名字挺⾼⼤上的,,,,还是先说编码器吧
看⼀下我⽤过的⼀种编码器
编码器的线数 ,是说编码器转⼀圈输出多少个脉冲,,,如果⼀个编码器是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是否为低电平,如果为低电平反转变量⾃加⼀
然后正转变量减去反转变量就能得到电机到底正转了多少圈......这样就会得到⼀个相对的变量,,这个变量呢,就是单⽚机正交解码的值说⽩了单⽚机的正交解码功能就是得到⼀个正反转,,,相对的变量,,,,这个变量呢,,你正转的时候他会加,你反转的时候他会减,。