基于ARM的步進電機控制系統
3 控制系統設計
3.1 總體結構設計
本系統是以LPC2131為控制器,用L298N電機驅動芯片設計的驅動電路,由于電機是12 V供電,那么還需要12 V的電壓,人機界面采用的是鍵盤顯示板,這樣可以實現良好的人機界面,方便現場調試與參數設定。
3.2 硬件設計
該系統的整體硬件設計框圖如圖1所示,該硬件設計系統主要包括三個部分,第一部分是LPC2131最小系統,由于LPC2131的工作電壓必須是3.3 V,就得把輸入進來的電壓進行穩(wěn)壓,輸出所需要的電源電壓。一般采用的是電源穩(wěn)壓芯片實現。這部分還有控制器的復位電路,復位電路一般有阻容式復位和芯片復位兩種,根據該控制器的芯片手冊中對復位要求,故選擇了芯片復位電路。本文引用地址:http://www.biyoush.com/article/148175.htm
第二部分是設計該系統的重點——步進電機驅動電路,采用的是L298N電機驅動芯片設計的驅動電路。該芯片是SGS公司的美國國家半導體公司生產的。L298N是一個高電壓,高電流全橋驅動電路,其支持TTL邏輯標準電平,是驅動步進電機的良好方案。其工作的最大電壓可以達到46V,電流可達到4A,具有過電流保護,低功耗芯片。其有15個引腳,內含兩個H橋電路,能夠驅動兩個直流電機和一個四相的步進電機。它接受PWM脈沖波,輸出為跟輸入PWM波占空比一樣的脈沖波驅動電機,這樣如果需要改變步進電機的轉速,可以通過調整PWM的占空比和頻率實現。該驅動電路可以控制電機的轉動方向,只需要用GPIO控制L298N的方向引腳,設置其為低電平或者高電平這樣方可改變其方向。這部分還需要12 V的直流電源,可通過電壓穩(wěn)壓芯片實現。
第三部分是鍵盤顯示部分,這部分主要是用來顯示電機的速度和給定,左邊顯示了速度的給定,右邊顯示電機當前的速度,其中按鍵用來設定電機調速的調整參數。其設計原理是利用ARM的SPI進行串行通信實現每次傳送兩個字節(jié),其中第一個字節(jié)是段碼,該段碼是八段數碼管的段碼值,它是8個數碼管公用的段碼;第二個字節(jié)是位碼,該位碼的8位分別對應8個數碼管的公共端。用兩個74HC164移位寄存器實現數據的移位傳輸,并且把8個按鍵連接到8個數碼管的公共端,這樣實現動態(tài)掃描顯示數碼管。
3.3 軟件設計
軟件設計主要是包含三個部分,分別是系統初始化模塊、電機調速控制模塊和鍵盤顯示模塊。設計流程如圖2所示,其中第一部分系統初始化模塊。主要實現LPC2131的啟動設置,包括初始化中斷向量表、初始化堆棧、系統變量初始化、中斷系統初始化、I/O初始化、外圍設備初始化、存儲器初始化和地址重映射初始化等操作,這部分主要是用ARM匯編實現的,為C語言的運行提供一個良好的環(huán)境。
第二部分是電機調速模塊。這部分是該系統設計的重點,其中需要PWM初始化,定時器捕獲初始化、I/O初始化和PID算法實現。對于PWM模塊的初始化需要兩路PWM以實現四相電機時序來控制電機的轉動,其中PWM的占空比實現電機電壓的速度控制。I/O實現電機的方向控制,通過設置低電平和高電平設置不同的電機轉向。定時器捕獲模塊實現閉環(huán)調速系統,用定時器捕獲電機轉動時電機葉子切割紅外線產生的脈沖數進而算出電機的轉速,不過計算電機轉速時得注意電機的減速比。PID算法以實現電機的智能控制,通過設置給定轉速和捕獲回來的轉速,計算出下次需要給出的PWM占空比,以實現電機速度的準確控制。
第三部分是鍵盤顯示模塊。該模塊主要是實現通過鍵盤實時的調整PID參數,那么左邊顯示的是給定的電機轉速,右邊顯示的是當前的電機轉速。在該模塊中需要定時器模塊、SPI模塊,其中定時器模塊實現對數碼管的動態(tài)掃描和獲取按鍵的鍵值;SPI模塊實現把數碼管的段碼和位碼串行發(fā)送出去。其中按鍵的功能主要實現加法、減法、修改和確定,這樣就可以實時的根據當前的轉速修改PID參數,以實現電機轉速的實時控制。
4 結束語
為了提出一種更高效、實用性更強、更優(yōu)化的控制系統,本文的控制系統是基于ARM LPC2131來設計的步進電動機控制系統,其通過ARM的高速和豐富的外設資源對步進電機實現轉速的精確控制和實時監(jiān)測控制,具有對步進電機實時控制、數據處理速度快、精度高、良好的人機界面、操作簡單和易于維修等特點。
評論