4. 电机的回授控制
图14 是本专题的电机控制示意图。由图14 可知10kHz 的PWM 是由MCU 内部硬件输出,再由MOSFET H-bridge 去驱动电机,之后电机会因MOSFET H-bridge 驱动后旋转,并且会回传路径 A 和 B 的两相讯号到Encoder Count ,Encoder Count 是由一颗CPLD 构成,CPLD 会自动累加计算目前电机所走的格数,以12Bit 为输出讯号给予MCU 的PID 控制程序,PID 会演算出目前该行走的速度,再加以控制MCU 内部的PWM 硬件缓存器,就这样一直反复的运算,来达到电机的伺服控制。
图14、电机回授控制示意图
电机回授的两相讯号A和B会传递给CPLD作为判断,CPLD利用两相讯号的相位差判断正转及反转,就如图15所示,假如channel A及 channel B 同时间信号为channel A = 1、 channel B = 0就是正转。
图15、电机的channel A and channel B 信号(正反转)
判断正转反转数据后再将信号切割成4 份,如图16 所示,切成4 份就会有相位改变的信号出现,之后CPLD 内会有一个12Bit 的计数器,累加相位改变的次数,去增加或者减少计数器内的数值。
图16、电机的channel A and channel B信号(步数)
有了这些判断信号的方式,再加上多任务器能够一次判断两颗电机数据,如图17所示,SWDATA 为多任务器,能够将分别不同组的电机输入信号所计数的数据,传递至相同的输出埠给予MCU,即可达成直流电机的速度控制。
图17、CPLD 内部规划程序图
4.1 电机控制器的设计