控制部分電路是以51單片機為控制核心,接收上位機的脈沖信號和方向信號CLK1和CW1經過存儲處理后發(fā)送給驅動電路部分驅動步進電機工作。另外,單片機還要實時接收來自旋轉編碼器的反饋脈沖信號,對編碼器的兩相反饋脈沖信號進行處理,判斷步進電機的位置和旋轉方向是否與給定信息相符合,如果不相符就調用相應的算法進行自動補償,最終使步進電機達到預定的位置。由于旋轉編碼器的分辨率有高有低,如果選擇高分辨率的旋轉編碼器,在細分情況下,當步進電機在最高轉速時,要求單片機的相應速度要符合要求。本設計選用的單片機為宏晶科技的STC12C5201單片機,1個時鐘/機器周期,增強型8051內核,速度比普通8051快8~12倍。一般程序稍大的可選用STC12C5202或者STC12C5204。編碼器與STC12C5201的接口如圖3所示。
圖3編碼器與單片機接口
需要注意的是,上位機向單片機發(fā)送控制信號的時候要經過光耦隔離。光耦隔離的作用有兩個:第一,防止電機干擾和損壞前級芯片;第二,對控制信號進行整形。對于控制信號CLK和CW/CCW要選用中速或者高速的光耦,以保證信號經過光耦后不會發(fā)生延遲或者變形而影響步進電機的驅動[5]。
4軟件設計