《電子技術(shù)應用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應用 > 基于A3967SLB的步進電機細分驅(qū)動系統(tǒng)設(shè)計
基于A3967SLB的步進電機細分驅(qū)動系統(tǒng)設(shè)計
電子設(shè)計應用
趙運福 劉慶想等
摘要: 本系統(tǒng)中,利用PC的豐富軟硬件資源和強大的系統(tǒng)功能,,可進行一些數(shù)據(jù)處理,、顯示等工作;而從控制器AT89C52則用于實時控制,。另外,,該系統(tǒng)為開放式結(jié)構(gòu),便于系統(tǒng)升級,。
Abstract:
Key words :

步進電機精度高,,慣性小,在不失步的情況下沒有步距誤差積累,,特別適用于數(shù)字控制的定位系統(tǒng),。傳統(tǒng)的細分驅(qū)動電路由細分環(huán)行分配器、放大器和合成器等部分組成,。這種電路應用復雜,,靈活性差。本文利用A3967SLB作為步進電機微控芯片,,簡化了步進電機的控制實現(xiàn),。由于單片機資源沒有PC豐富,人機界面也沒有PC友好,,因此,,本文采用了主從式結(jié)構(gòu),,即PC用于管理,單片機用于執(zhí)行,。

由A3967SLB構(gòu)成步進電機的驅(qū)動部分

A3967SLB是美國Allegro公司生產(chǎn)的PWM恒流控制微步距驅(qū)動二相步進電機專用驅(qū)動器,。它的工作電壓可達30V,驅(qū)動電流達750mA,,一個A3967SLB即可驅(qū)動一臺二相步進電機,,可實現(xiàn)8細分驅(qū)動。芯片內(nèi)部的PWM電流控制電路可通過加在PFD的電壓設(shè)置為慢,、快,、混合三種電流衰減模式,如果PFD端的電壓高于0.6Vdd,,則選擇慢衰減方式,。若低于0.21Vdd,則選擇快衰減模式,。處于兩者之間為混合衰減模式,。另外,A3967SLB還能提供完善的保護措施,,包括抑制瞬態(tài)電壓,,過熱保護、防止電流直通,、欠電壓自鎖等功能,。

A3967SLB和微處理器之間不需要附加其他的接口電路,該芯片采用Easy Stepper接口,,將8條控制線減少了2條(步長和方向),只要簡單地輸入控制步進電機的脈沖,,其內(nèi)嵌的轉(zhuǎn)換器就可以實現(xiàn)對步進電機的控制,。A3967SLB還需要一些電阻、電容來調(diào)整其工作參數(shù),,整個驅(qū)動電路非常簡單,。

如圖1所示,MS1和MS2是步進電機細分分辨率選擇的邏輯輸入口,;DIR是電機運轉(zhuǎn)方向的選擇口,;RESET用于重置芯片初始值,屏蔽所有外部輸出,;STEP為脈沖輸入端口,;OUT1A、OUT1B,、OUT2A,、OUT2B為H橋的兩對輸出端口,;ENABLE為使能端;SLEEP為睡眠模式,;SENSE1,、SENSE2為H橋的電流檢測電阻;REF為參考電壓,;GND為邏輯地和電源地,;RC1、RC2為H橋固定截止時間模擬輸入,。最大限流Imax是由取樣電阻Rs和取樣比較器的輸入?yún)⒖茧妷篤ref決定的:

Imax=Vref/8Rs

AT89C52具有8KB Flash,,256B內(nèi)部RAM,32個I/O口線,,3個16位定時/記數(shù)器,,一個6向量兩級中斷系統(tǒng),一個全雙工串行通信接口,,同時片內(nèi)還有振蕩器和時鐘電路,。使用很方便。在這個系統(tǒng)中,,單片機主要用來產(chǎn)生控制脈沖并與上位機進行串行通信,。

通信電路

在最簡單的RS-232直接傳送通信系統(tǒng)中,只要發(fā)送和接受雙方同時準備好,,僅用信號發(fā)送端(TXD),、信號接收端(RXD)和信號地(GND)3根信號線就可以進行通信;若以應答方式進行數(shù)據(jù)通信,,可使用請求發(fā)送(RTS),、清除發(fā)送(CTS)或數(shù)據(jù)終端準備(DTR)、數(shù)據(jù)裝置準備(DSR)4個信號進行硬件握手,。在AT89C52單片機系統(tǒng)中,,分別從P3.0和P3.1引出串口線RXD和TXD,通過專用的電平轉(zhuǎn)換芯片轉(zhuǎn)換成RS-232接口標準的電平,,這樣,,二者之間就可以通過RS-232接口進行數(shù)字信號的傳送。單片機可以通過直接傳送或應答握手的方式與主機進行數(shù)據(jù)通信,,但由于握手方式占用其它端口,,而單片機的端口數(shù)量有限,所以,,計算機與單片機的通信常采用直接傳送的方式,。通信電路如圖2所示。

軟件設(shè)計

軟件部分的設(shè)計主要包括下位機按MCU的接收程序,、脈沖控制程序以及上位機的串口發(fā)送程序,。上位機與下位機之間進行數(shù)據(jù)通信,。上位機的程序主要通過Windows可視化編程VC++實現(xiàn)。

下位機程序主要負責接受PC發(fā)來的數(shù)據(jù),,按照要求產(chǎn)生控制脈沖,,具體流程為:首先對要使用的串口進行初始化,然后P2輸出口清零,,接著進入住程序的死循環(huán),,等待中斷觸發(fā)。接收一個字節(jié)的數(shù)據(jù),,RI=1,,接著將RI清零。當單片機接收完數(shù)據(jù)后,,標志位置1,。將緩存中的數(shù)據(jù)存入控制的變量中,以便控制時使用(具體操作時先法數(shù)據(jù)幀再發(fā)啟動幀),。軟件控制流程如圖3所示,。

結(jié)語

結(jié)合以上介紹的基于A3967SLB的步進電機控制系統(tǒng),在VC++環(huán)境下,,利用MSComm控件實現(xiàn)了PC與單片機之間的串行通信,。實驗結(jié)果表明,,用這種方式實現(xiàn)上位機對基于A3967SLB的步進電機的控制系統(tǒng)進行精確的驅(qū)動可行有效,。

本系統(tǒng)中,,利用PC的豐富軟硬件資源和強大的系統(tǒng)功能,,可進行一些數(shù)據(jù)處理、顯示等工作,;而從控制器AT89C52則用于實時控制,。另外,,該系統(tǒng)為開放式結(jié)構(gòu),,便于系統(tǒng)升級,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。