步進電機驅動微型輸注儀器的一種新方式
1、引言
本文引用地址:http://www.j9360.com/article/163943.htm步進電機是一種將數字信號直接轉換成角位移或線位移的控制驅動元件,具有快速起動和停止的特點。其機械位移和轉速分別與輸入脈沖的數量和脈沖頻率成正比。步進電機在工業生產及人們生活的方方面面的應用十分廣泛,而單片機控制步進電機具有功能靈活多樣,脈沖輸出準確,實時性強的特點,且系統成本較低。
現有的小型步進電機驅動電路,基本采用OC門驅動和三極管推拉式驅動。OC門電路驅動電機的缺點是驅動電流不夠,響應速度慢,而且OC門最好工作在+5V電壓環境下,在低電壓環境下,工作不穩定。三極管推拉式驅動步進電機的缺點是NPN和PNP三極管的選擇上。兩個三極管的PN結開關點要盡量相同,否則三極管會被擊穿,產生不安全隱患。
本文針對傳統小型步進電機驅動存在的這些問題,并結合一種微型輸注儀器的電機驅動裝置的設計,提出一種新型步進電機驅動方案。本方案采用MSP430單片機,通過其上運行的軟件控制MAX4685高速模擬開關的輸出,從而實現對步進電機的控制。
這種低成本,高穩定,高性能的驅動方式,適合低電壓,大電流,響應頻率比較高的場合。
本文研制的微型輸注儀器由三個部件組成:輸注液容器、一個小型電池驅動的泵、用于準確控制泵輸注劑量的計算機芯片。以上部件封裝后,形成一個大小如同尋呼機的輸注儀器,泵容器通過輸入指令的控制由細塑料管輸注液體。
該儀器的電機驅動裝置,包括指令輸入面板、驅動電路控制板、步進電機。驅動電路控制板采用集成電路MAX4685;其驅動電路控制板的輸出端連接小型步進電機的輸入端。該微型輸注儀器的電機驅動框圖如圖1所示。
圖1 電機驅動框圖
輸入面板是通過按鍵設置參數,通過在單片機運行的智能軟件控制單片機的IO端口輸出。單片機的IO端口連接集成電路MAX4685的輸入端。集成電路MAX4685為高速模擬開關,輸入為脈沖方波,控制MAX4685模擬開關的動作,使MAX4685的輸出為脈沖方波。這樣MAX4685可提供500mA的脈沖電流。MAX4685芯片為雙路模擬開關,開關閉合時具有0.8Ω的電阻(2.7V工作),1.8V到5.5V電壓工作范圍。響應速度最高可達1MHz,驅動電流最大可達500mA。
MAX4685具體的參數如下:
NC端閉合電阻最大為0.8Ω(工作電壓為2.7V);
NO端的閉合電阻最大為0.8Ω(工作電壓為2.7V);
兩個通道的匹配電阻最大為0.06Ω;
工作的電壓范圍1.8V-5.5V;
檻位電壓為1.8V,最高輸入信號電壓為5.5V。
本實例是驅動兩相直流步進電機。采用的單片機型號為MSP430F149。該型號的單片機是具有FLASH功能的超低功耗的16位單片機,工作電壓為1.8V-3.6V。用按鍵選擇菜單功能,設置參數。通過智能軟件控制單片機的P50、P51、P52、P55 等4個IO端口輸出驅動步進電機所用的脈沖波形,控制MAX4685的開關。用MAX4685的輸出提供驅動步進電機所需的電流。電機的轉速靠輸出脈沖波形的頻率來控制。電機的轉動推動注射器輸液。
具體的連接如圖2所示。
圖2 單片機、MAX4685、步進電機的連接關系圖
本設計用單片機控制MAX4685的開關,用MAX4685的輸出提供步進電機的脈沖波形,可確保輸出電壓波形穩定,驅動電流大,干擾小。達到低成本、高穩定性、響應速度快的低電壓微型電機的要求。OC門和三極管推拉式驅動不易集成化。
3、電機驅動程序的具體設計與實現
合實例的電機驅動部分的連接關系,MAX4685的輸入狀態如表1。
表1 MAX4685的輸入狀態表
本文用MSP430F149單片機控制MAX4685模擬開關的動作,來實現對步進電機的控制。MSP430F149單片機的P50、P51 IO端口經MAX4685驅動后,連接到步進電機的相A上;P52、P55 IO端口經驅動后,連接到步進電機的相B上。步進電機的轉動模式為全步模式,選用的是兩相,每圈20步的步進電機。每步的轉角為18度。每圈的轉動精度為±10度。
步進電機的相的輸入信號和轉動關系如圖3所示。相A和相B加的信號如果從1-4,將逆時針旋轉,從4-1將順時針旋轉。
圖3 步進電機相的輸入信號與轉動的關系
用MSP430F149的IO輸出端輸出信號,控制MAX4685的動作,產生相A和相B所需的信號。如表2所示。表中列出的信號為電機轉動每步所需的信號關系。電機轉動通過傳動裝置,推動注射器注液。
表2 單片機IO端口輸出信號與轉動的關系表
該微型輸注儀器的電機驅動程序的具體流程如圖4 所示,其中包括以下幾個關鍵步驟:
(1)單片機相關IO端口定義
P5.0 P5.1 P5.2 P5.3 P5.4 P5.5 P5.6 P5.7
A B C Data Vdd D
(2)電機相關定時器定時初始化
TBCCR0 = IntTime; //主定時器 總時間
TBCCR1 = IntTime1;
//定時器1 電機給電,高電平時間
TBCCR2 = IntTime2;
//定時器2 電機停歇,低電平時間
(3)啟動電機相關定時器
TBCCTL1 = 0x10; //開定時器1
TBCCTL2 = 0x10; //開定時器2
TBCTL = 0x0114; //開主定時器
(4)關閉電機相關定時器
TBCCTL0 = 0x00;
TBCCTL1 = 0x00;
TBCCTL2 = 0x00;
(5)中斷處理函數
interrupt[TIMERB1_VECTOR] void Timer_B1 (void)
根據定時器中斷向量TBIV 的值調整馬達走步方向,或將馬達走到相應位置。
圖4 電機驅動流程圖
4、結論
本設計改變了現有的OC門驅動和三極管推拉式的驅動方式,采用了MAX4685高速模擬開關直接驅動小型步進電機。這種驅動方案的響應速度可達到1MHz,驅動電流可達到500mA,可設計成低成本、高穩定性、響應速度高的電機驅動電路,直接驅動小型步進電機。同時具有原理簡單,易于實現的特點。
評論