步进电机控制中通过CAN总线通信,完成数据交换,主要包括核心控制单元、功率驱动和保护单元、键盘显示接口单元及电源几个部分。双MCU采用PIC16F877单片机,采用2片7226和4片专用集成功率驱动芯片L6219驱动4路步进电机,步进电机采用两相混合式步进电机,额定电流为1A,固有步进角1.8度。系统采用恒流斩波细分控制技术和电流反馈对步进电机进行微步细分控制。绕组电流反馈通过采样电阻实现电流采样,同时起电流保护作用。
细分控制效果取决于两相绕组上的电流波形,只需测量采样电阻上的相电流波形。从电机绕组实验电流波形来看,符合使得步进电机运行平滑、合成磁场均匀需要的相位相差90度正弦波形,能够使步进电机运行时得到均匀细分旋转步距。双通道切换过程中两相绕组电流变化波形正常,电机运行平稳。
由于步进电机的控制是采用细分控制方式,一个单片机要控制多个步进电机,采用分时控制算法,按细分电流表先输出第一个步进电机的一个细分电流,接下来输出下一个步进电机的一个细分电流,由于单片机的工作方式是一个大循环,在无中断情况下,大循环中所有任务安顺序执行下来,一个步进电机的细分电流的输出到下一个步进电机细分电流的输出之间的延时时间包括所有任务的执行延时时间和延时函数执行时间,与无通道切换任务时相比,有通道切换任务时会增加很短延时时间,可以通过有无通道切换标志位来判断,是否在执行的任务中增加了通道切换的任务,如果有则减少延时函数中循环执行NOP语句的时间,以补偿通道切换引起的延迟,因此尽管有通道切换过程,但对于多步进电机的细分控制方式来说,步进电机的运行不受影响。但由于增加了双机通信备份任务,输出到每一个步进电机的相邻两个细分电流之间最小延时时间增加,因而控制中对步进电机的最高转速会有所影响。