昊芯HXS320F28034数字信号处理器DSP,对电机使用差分编码器,也称为增量式编码器,其工作原理是将位移转换成周期性的电信号,再将这
个电信号转变成计数脉冲,用脉冲的个数表示位移的大小。
其QEP测速的实现方式如下:
采用GPIO MUX定义引脚:其引脚对应在码盘的边缘上开有相等角度的缝隙(分为透明和不透明部分),在开缝码盘两边分别安装光源及光敏元
件。当码盘随工作轴一起转动时,每转过一个缝隙就产生一次光线的明暗变化,从而获取差分编码器正交脉冲QEPA与QEPB、索引QEPI信号;
通过QDECCTL[XCR]选择,上升沿、下降沿或双边沿捕获计数方式,得到时钟信号xCLK,变化的信号经过整形放大,可以得到一定幅值和功率的
电脉冲输出信号。脉冲数就等于转过的缝隙数。将该脉冲信号送到计数器中去进行计数,从测得的数码数就能知道码盘转过的角度;
经解码QDU逻辑处理,得到方向的高低电平信号iDIR;
通过QDECCTL[QSRC]选择引脚模式:正交、方向、增或减计数,读取方向QDIR、时钟QCLK信号;
通过QEPCTL[PCRM]选择,位置计数控制PCCU模式:索引位置事件、最大位置锁存、单位超时锁存;使能QEPCTL[QPEN],捕获N线光电编码器
输出双边沿脉冲,使位置计数器产生计数,从而计算电机转速。
其A\B\C对应差分编码器,通过检测码盘上的缝隙引起的光线明暗变化,将其转换为电脉冲信号,并通过计数器计算脉冲数量来测量位移大小。
同时,通过两套光电转换装置产生的相位差信号来判断旋转方向,常用方法如下:
(1)T法:一个脉冲周期fclk内,捕获脉冲计数,载入16位定时器QCTMR。单位事件发生时,更新载入QCPRDLAT,电机转速n=60*fclk/(4N*QCPRDLAT)。QCTMR上溢时,位置方向QDIR将变化,使捕获单元QEPSTS[COEF]发生错误标志,故仅适用于低速测量。
(2)M法:规定检测事件Tc内,捕获脉冲计数。单位事件发生时,锁存到32位QPOSILAT和QPOSSLAT,故电机转速n=60*QPOSSLAT/(4N*Tc),适用于高速测量。
由此设计QEP测速实例:EPWM配置1KHz PWM波,模拟1000线编码器旋转,EQEP采用M法与T法测量60rpm与6000rpm下旋转的转速,单位周期为 SysFreq*100,采用上升沿计数,捕获得到脉冲计数,实现转速测量,采用定时器中断实现三种不同功能切换,故硬件连接如下:GPIO0-GPIO20,GPIO1-GPIO21。基于以上分析,在CDK上开发QEP脉冲捕获输出,代码包括:EPWM与EQEP的GPIO引脚配置,EPWM 1KHz两路互差90°的PWM波输出配置,EQEP单位时间锁存计数捕获功能配置,定时器Timer0配置,计数捕获、M法与T法测速程序及其功能切换的定时器中断服务程序,主程序调用执行。
int main(void)
{
/*初始化系统控制*/
InitSysCtrl();
/*初始EPWM GPIO*/
InitEPwm1Gpio();
/*EQEP1引脚配置*/
InitEQep1Gpio();
/*初始化LED配置,用于指示实际转速是否到达给定转速*/
InitLED();
/*关中断*/
InitPieCtrl();
/*清中断*/
IER = 0x0000;
IFR = 0x0000;
/*初始化PIE中断向量表*/
InitPieVectTable();
/*定时器配置*/
Timer0_init();
EALLOW;
/*将timer0_ISR入口地址赋给TINT0,执行M法、T法测速切换中断服务程序*/
PieVectTable.TINT0 = &timer0_ISR;
EDIS;
/*电机转速初始化*/
MotorSpeed_init();
EALLOW;
/*禁用TBCLK同步,允许EPWM初始化配置*/
SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 0;
EDIS;
/*配置epwm1,用于模拟编码器旋转*/
EPWM1_Config();
EALLOW;
/*使能TBCLK同步,EPWM配置功能起作用*/
SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 1;
EDIS;
/*EQEP脉冲捕获配置*/
EQEP_pulseCap();
/*使能打开相应的CPU IER中断*/
IER |= M_INT1;
/*使能打开相应的PIE IER中断*/
PieCtrlRegs.PIEIER1.bit.INTx7 = 1;
/*使能打开全局中断*/
EINT;
while(1)
{}
return 0;
}
A\B\C三个相位如下图:
CDK上开发QEP测速程序,其编译结果为:
编译通过后,就可以开始调试了,其中M法测速调试结果如下:
T法测速调试结果如下:
所捕获的光电编码器QEP正交脉冲波形为