QEI模块对正交编码器转轮所产生的两位格雷码进行解码,从而通过位置计数器累计值计算位置,以及确定旋转的方向。另外,该接口还能够捕获编码转轮运行时的速率。
位置积分器和速度捕获功能可以单独使用,但是在使能速度捕获前必须先使能位置积分器才可以。phA和phB这两个相位信号在被QEI模块解码前可以进行交换,以改变正向和反向的意义和纠正系统的错误接线。
QEI模块支持两种信号操作模式:正交相位模式和时钟/方向模式。在正交相位模式中,编码器产生两个相位差为90度的时钟信号,它们的边沿关系被用来确定旋转的方向。在时钟/方向模式中,编码器产生一个时钟信号和一个方向信号来分别表示步长和旋转方向。QEI模块配置为何种模式主要依赖于所选用的码盘是何种类型。
群星系列单片机自带的QEI模块,在控制方面提供了极大的方便,在许多电机控制领域都可以胜任其职能。
当在正交模式时,phA的边沿超前与phB的边沿时,位置计数器在每检测到一个边沿就加1,phA的边沿落后与phB的边沿时,位置计数器在每检测到一个边沿就减1。当一对上升沿和下降沿出现在其中一个相位上,而在另一个相位上没有任何边沿时,旋转方向已经发生了改变。
在时钟和方式模式下,当方向信号为高电平时,位置计数器在每检测到一个边沿就加1;当方向信号为低电平时,位置计数器在每检测到一个边沿就减1。位置计数器的值在感测到索引脉冲或者达到最大位置时会复位。
QEI模块里面自带一个定时器,设置定时器的定时时间,在预设的时间周期内,获取捕获到的pha和phB的边沿数目,此数目与编码器的速率成正比例。软件初始化QEI时,设置好捕获的模式和捕获的边沿对象,并设置好定时器的时间,即可读取在预设时间内的边沿数,就可以换算出编码器的速率。
QEI模块可以在以下4种情况下产生中断: