基于PIC16C621A和A3955的步進(jìn)電機驅動(dòng)器設計
摘要: 本文介紹了利用A3955對步進(jìn)電機實(shí)現控制的方法及其電路設計。
關(guān)鍵詞: 步進(jìn)電機;PIC16C621A; A3955;脈寬調制
引言
步進(jìn)電機廣泛應用于對精度要求比較高的運動(dòng)控制系統中,如機器人、打印機、軟盤(pán)驅動(dòng)器、繪圖儀、機械閥門(mén)控制器等。目前,對步進(jìn)電機的控制主要有由分散器件組成的環(huán)形脈沖分配器、軟件環(huán)形脈沖分配器、專(zhuān)用集成芯片環(huán)形脈沖分配器等。分散器件組成的環(huán)形脈沖分配器體積比較大,同時(shí)由于分散器件的延時(shí),其可靠性大大降低;軟件環(huán)形分配器要占用主機的運行時(shí)間,降低了速度;專(zhuān)用集成芯片環(huán)形脈沖分配器集成度高、可靠性好,但其適應性受到限制,同時(shí)開(kāi)發(fā)周期長(cháng)、需求費用較高。
步進(jìn)電機控制
步進(jìn)電機是數字控制電機,它將脈沖信號轉變成角位移,即給一個(gè)脈沖信號,步進(jìn)電機就轉動(dòng)一個(gè)角度,因此非常適合于單片機控制。步進(jìn)電機可分為反應式步進(jìn)電機(VR)、永磁式步進(jìn)電機(PM)和混合式步進(jìn)電機(HB)。 步進(jìn)電機區別于其他控制電機的最大特點(diǎn)是,它是通過(guò)輸入脈沖信號來(lái)進(jìn)行控制的,即電機的總轉動(dòng)角度由輸入脈沖數決定,而電機的轉速由脈沖信號頻率決定。步進(jìn)電機的驅動(dòng)電路根據控制信號工作,控制信號由單片機產(chǎn)生。其基本控制如下:
*控制換相順序—通電換相這一過(guò)程稱(chēng)為脈沖分配。例如:混合式步進(jìn)電機的工作方式,其各相通電順序為A-B-C-D,通電控制脈沖必須嚴格按照這一順序分別控制A,B,C,D相的通斷,這就是所謂脈沖環(huán)形分配器。
*控制步進(jìn)電機的轉向—如果給定工作方式正序換相通電,步進(jìn)電機正轉,如果按反序通電換相,則電機就反轉。
*控制步進(jìn)電機的速度—如果給步進(jìn)電機發(fā)一個(gè)控制脈沖,它就轉一步,再發(fā)一個(gè)脈沖,它會(huì )再轉一步。兩個(gè)脈沖的間隔越短,步進(jìn)電機就轉得越快。
PIC16C621A和A3955
PIC16C621A是美國Microchip公司推出的一種性?xún)r(jià)比很高的8位單片機。它價(jià)格低、封裝小、采用CMOS工藝,具有OTP型,開(kāi)發(fā)起來(lái)很方便。它內含4路8位高速ADC,將它擴展到11位后,可以大大提高單片機應用系統的性?xún)r(jià)比。主要特性為:高性能的RISC結構CPU,精簡(jiǎn)的指定集。指令周期時(shí)間為200nS。八級硬件堆棧,直接,間接,相對三種尋址方式。雙向可編程設置I/O,2路比較輸出/PWM輸出,16位定時(shí)器/計數器,內置上電復位電路,程序保密位,可防程序代碼的非法拷貝。A3955是美國Allegro公司推出的一款性?xún)r(jià)比很高的脈寬調制電流輸出的電機驅動(dòng)芯片。主要特性為:最大1.5A的最大驅動(dòng)電流,最高50V的供電電壓,帶有過(guò)熱自動(dòng)關(guān)斷保護電路,欠電壓鎖定(UVLO)保護,輸出抗浪涌的瞬間保護功能,自帶PWM 電流控制,3位的線(xiàn)性DAC,帶細分控制,不同組合不同的細分數,最多8細分。
硬件設計
通常步進(jìn)電機的脈沖控制是由邏輯電路或專(zhuān)用芯片實(shí)現的脈沖環(huán)形分配的,因A3955不自帶環(huán)形分配功能,本設計采用兩片A3955驅動(dòng)步進(jìn)電機的兩個(gè)線(xiàn)圈,來(lái)實(shí)現脈沖環(huán)形分配的實(shí)現。
本設計采用脈沖加方向的步進(jìn)電機控制方式,應用于驅動(dòng)二相或四相混合式步進(jìn)電機。電機的出線(xiàn)方式不同,與驅動(dòng)器的連接也不同,一般有以下幾種方式:
*對于二相四根線(xiàn)電機,可以直接和驅動(dòng)器相連(見(jiàn)圖1);
*對于四相六根線(xiàn)電機,中間抽頭的二根線(xiàn)懸空不接,其它四根線(xiàn)和驅動(dòng)器相連(見(jiàn)圖1)。
圖1 二相四根線(xiàn)電機與驅動(dòng)器連接
具體硬件如圖2,CLK 為外部脈沖輸入端,DIR為外部方向輸入端,步進(jìn)脈沖信號CLK用于控制步進(jìn)電機的位置和速度,本驅動(dòng)器的設計為CLK信號為上升沿有效,要求CLK信號的驅動(dòng)電流為8-15mA,對CLK的脈沖寬度也有一定的要求,一般不小于5mS。方向電平信號DIR用于控制步進(jìn)電機的旋轉方向。此端為高電平時(shí),電機逆時(shí)針?lè )较蜣D,此端為低電平時(shí),電機為順時(shí)針?lè )较蜣D。CLK和DIR信號默認幅值為5V,如果不是5V則須外部另加限流電阻R,如信號幅度為12V時(shí),加680W的電阻。MS0,MS1,MS2 為細分輸入端,最多為8細分(見(jiàn)表1)。
圖2 具體硬件電路圖
軟件設計
為了防止程序進(jìn)入到非程序區,在非程序區設置攔截措施,使程序進(jìn)入陷阱,然后強迫程序回到初始狀態(tài),從而保護程序的正常運行。程序設計首先判斷細分數,其次判斷方向信號DIR,最后判斷脈沖信號CLK,當沒(méi)有脈沖信號時(shí),程序進(jìn)入休眠狀態(tài),隨時(shí)準備接收中斷來(lái)的信號,進(jìn)入程序區,根據判斷的細分數和方向信號進(jìn)行電機的驅動(dòng)。代碼如下:
MAIN CLRF PORTA
BSF STATUS,5
MOVLW 0x07 ;整步
MOVWF ADCON1
MOVLW 0X06 ;半步
MOVWF OPTIONREG
MOVLW 0x04 ;四細分
MOVWF TRISA
CLRF PORTB
BSF STATUS,5
MOVLW 0X00 ;八細分
MOVWF TRISB
BCF STATUS,5
MOVWF TMR0
TEST BTFSS PORTA,0
GOTO CW ;正轉
BTFSC PORTA,0
GOTO CCW ;反轉
INT MOVLW 0XFF ;中斷接收脈沖
MOVWF TMR0
BCF INTCON,2
RETFIE
結語(yǔ)
采用此設計的八細分步進(jìn)電機驅動(dòng)器,在驅動(dòng)二相或四相混合式步進(jìn)電機時(shí)運動(dòng)平穩,速度快,噪音低,控制精高,而且專(zhuān)用芯片細分數可選。在外觀(guān)采用鋁鎂合金,散熱性好,價(jià)格低廉,可廣泛應用于需要驅動(dòng)電流小于1.5A的混合式兩相或四相步進(jìn)電機的系統中。
參考文獻:
1. PIC16CXX Datasheet,美國Microchip公司
2. A3955 Datasheet,美國Allegro公司
3. 哈爾濱科利達智能控制公司的KLD-4H042NA使用說(shuō)明書(shū)
4. 王有諸、李拉成,PIC系列單片機接口技術(shù)及應用系統設計,北京航空航天大學(xué)出版社,2000年
評論