民權縣職業技術教育中心機電工程系 杜冬梅
本文提出了以AT89S51單片機為控制核心,以SJ-230M2為驅動器、以ADS7846為觸摸屏操作按鍵控制兩相步進電機系統,實現了步進電機的啟停、速度調節、方向調節、手動調節的功能,實驗驗證本控制系統具有精度高、穩定性好、噪聲低的優點。
隨著科技經濟的不斷發展,人們逐漸從勞動力解放出來且對自動化程度的要求越來越高,控制技術發展得到人們的重視,做為控制系統重要的控制部件之一的步進電機在現代社會的各行各業得到了廣泛的應用,因此研究以51單片機為控制核心的步進電機控制系統顯得尤為重要。

圖1 總體框圖
本控制系統包括MCU、輸入設備、顯示設備、電機驅動器以及控制元件步進電機。
2.1.1 單片機最小系統
傳統控制步進電機的控制器一般采用的是AT89C51種類的,本文為了設計需要選用了AT89S51。AT89S51的相對于傳統的AT89C51新增了以下功能:支持串行ISP接口(P1引腳5、6、7的第二功能口)編程與并行編程、計算速度較快、編程電壓較低、工作電壓的范圍較大4-5.5V,抗干擾性強、采用加密功能更強的加密算法等,性價比高。結合我校實驗室現有設備條件的情況下設計出基本的硬件支撐單片機最小系統。下面對單片機最小系統復位電路與時鐘電路進行設計。
(1)時鐘電路
AT89S51運行速度的快慢與穩定程度主要取決于時鐘電路中晶振的頻率與質量。一般情況下晶振的工作頻率為1.2MHZ-12MH。在我們實驗室現有的條件下選用了晶振為12MHZ的時鐘電路。時鐘電路中的電容選值為30PF。
(2)復位電路
單片機的復位電路主要是在系統重新啟動時或者當系統發生失控現象時能夠讓單片機恢復到到默認狀態,因此單片機的復位系統在進行單片機系統設計時十分重要,本文采用的是按鍵復位。
2.1.2 驅動器設計
由于步進電機在運行過程中會時常不穩定、抗干擾性不強、噪聲大、遇到斷電等情況不能進行手動調節等缺點,本文針對以上出現的弊端,采用SJ-230M2
驅動器,SJ-230M2是原裝進口模塊,可以實現高頻斬波,恒流驅動,具有很強的抗干擾性,高頻性能好,起動頻率高,控制信號與內部信號試驗光電隔離,電流可選。其中具體的細分數設定規則如下所示:
設定細分數及相電流的功能的是驅動器上的撥盤開關實現的。在考慮控制器頻率允許的情況下,我們盡量選用高細分數的方法進行設定如表1所示。

表1 設定表
脈沖信號CP、方向可控信號DIR、脫機信號FREE組成了驅動器SJ-230M2的3路控制信號。
步進電機位置與速度控制的過程是上電初始化后,驅動器每接受一個CP信號,步進電機就同時轉動一定的步距角。步進電機位置主要取決于接受脈沖的個數。即通過輸送驅動器脈沖個數可以直接控制步進電機的位置。對于步進電機速度的控制主要是驅動器接受脈沖信號頻率的高低,頻率越高則步進電機轉動的速度越快。本驅動器的CP信號為低電平有效,要求CP信號的驅動電流為8-15mA,對CP的脈沖寬度也有一定的要求,一般不小于5uS。
步進電機轉動方向的控制主要是通過DIR信號實現的。其主要的工作過程是對DIR信號的賦值。當DIR=1即高電平時,步進電機執行一個方向。當DIR=0即低電平時,步進電機執行反方向。步進電機進行轉向時一定在電機停止后進行并且注意方向信號脈沖的施加時間。
脫機信號是低電平有效。當沒有脈沖施加或者是施加脈沖后由于出現某種特殊情況又想手動調節步進脈沖時使用。
驅動器的三路信號有一個共同端OPTO端口,在本控制系統中須把此端口接+5V電源電壓。目的是能夠為驅動器內部光電耦合器提供驅動電流。保證驅動器正常工作。具體的連接設計步驟是:將單片機的EA選擇開關在1的位置。用單片機的P2.0和P2.1端口分別接驅動器的CP端和DIR端,將驅動器的撥碼開關1打到ON檔2、3、4分別打到OFF檔位置。驅動器電流調節電位器調到0.8A的位置。具體連接方式如圖2所示。

圖2 驅動器與控制單元連接電路
2.1.3 輸入電路設計
傳統的輸入電路采用的是獨立按鍵的操作模式設計電機的啟停、加速減速、正反轉等。本文采用目前應用比較廣泛的觸摸屏技術對輸入信號如啟動、停止、加速、減速、正反轉、進行操作。觸摸屏的優勢:壽命長,美觀性好,更符合現代人的使用習慣、更加智能便捷,精準度高。基于以上優點本文采用觸摸屏的方式設置電機的啟停、正反轉、加減速等。觸摸屏從工作原理上來分可以分為電容式,紅外線式,表面式等,本文采用的是電阻式觸摸屏ADS7846。ADS7846是最普遍的四線電阻式觸摸屏,其內部是有一個多路選擇器和一個12位的AD轉換器組成。
觸摸屏控制器ADS7846與單片機AT89S51要實現通訊控制兩者之間應加一SPI接口。如圖3所示。當檢測有觸摸動作時,此時ADS7846的PEN IRQ輸出低電平發出中斷請求,通過SPI接口將中斷信號傳輸給單片機,單片機接受到ADS7846發出的中斷請求進而讀取信息。

圖3 觸摸屏控制電路圖
2.1.4 顯示電路設計
為了方便查看電機的加速減速正反轉以及啟停的情況,特設計顯示電路作為輔助電路。主要用單片機的P0口作為控制端口,因為PO口內部沒有上拉電阻因此需要外加10KΩ上拉電阻,并采用三八線74LS745作為驅動進行顯示電路的控制。
2.1.5 步進電機
步進電機在工業過程及生活的各個方面起著十分重要控制作用,其本身具有精度高、價格便宜、結構簡單、且不需要進行模擬信號與數字信號的轉換直接可以計算機的數字信號等特點,因此在空調出風口定位等一些定位場合應用的十分廣泛。
本控制方案將選用5V直流步進電機,即將脈沖信號一運算處理后轉化成角位移的執行,因為可通過數字量驅動,所以該步進電機十分適合于單片機的控制。
本文是以windowns7為操作系統,以keil為編程平臺,以C語言為編程語言對本文的設計進行編程。其中包含有主函數、中斷函數、初始化函數、顯示函數等。其中主函數流程圖4如所示。

圖4 主函數流程圖
結論:本文提出的以AT89S51單片機為控制核心,并引入現代人們習慣使用的觸摸屏ADS7846代替獨立按鍵、以SJ-230M2穩定性好、抗干擾能力強、噪聲小的驅動器對步進電機的轉向、速度、啟停進行控制,根據設計需求進行了相關程序的編寫并進行了實驗,實驗證明該控制系統具有精度高、穩定好等優點,該系統對步進電機最優控制的研究提供了一定的基礎理論與指導。