控制部分电路是以51单片机为控制核心,接收上位机的脉冲信号和方向信号CLK1和CW1经过存储处理后发送给驱动电路部分驱动步进电机工作。另外,单片机还要实时接收来自旋转编码器的反馈脉冲信号,对编码器的两相反馈脉冲信号进行处理,判断步进电机的位置和旋转方向是否与给定信息相符合,如果不相符就调用相应的算法进行自动补偿,最终使步进电机达到预定的位置。由于旋转编码器的分辨率有高有低,如果选择高分辨率的旋转编码器,在细分情况下,当步进电机在最高转速时,要求单片机的相应速度要符合要求。本设计选用的单片机为宏晶科技的STC12C5201单片机,1个时钟/机器周期,增强型8051内核,速度比普通8051快8~12倍。一般程序稍大的可选用STC12C5202或者STC12C5204。编码器与STC12C5201的接口如图3所示。
图3编码器与单片机接口
需要注意的是,上位机向单片机发送控制信号的时候要经过光耦隔离。光耦隔离的作用有两个:第一,防止电机干扰和损坏前级芯片;第二,对控制信号进行整形。对于控制信号CLK和CW/CCW要选用中速或者高速的光耦,以保证信号经过光耦后不会发生延迟或者变形而影响步进电机的驱动[5]。
4软件设计