基于ARM的步進(jìn)電機(jī)控制系統(tǒng)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:ARM已經(jīng)被廣泛應(yīng)用于工業(yè)控制和生產(chǎn)生活方面,本文設(shè)計(jì)一種基于ARM為核心的步進(jìn)電機(jī)控制系統(tǒng),該系統(tǒng)相對(duì)于傳統(tǒng)單片機(jī)控制系統(tǒng),具有處理速度快,外圍接口資源豐富,控制方便,精度高等特點(diǎn)。
關(guān)鍵詞:ARM;L298N;電機(jī)控制;步進(jìn)電機(jī)
在現(xiàn)代的工業(yè)控制系統(tǒng)中步進(jìn)電機(jī)是一個(gè)重要的執(zhí)行器件,其被廣泛地應(yīng)用于自動(dòng)化工業(yè)控制系統(tǒng)和機(jī)電一體化的產(chǎn)品。在現(xiàn)代的大部分電子產(chǎn)品和工業(yè)產(chǎn)品中都是以步進(jìn)電機(jī)為動(dòng)力核心,如工業(yè)機(jī)器人、打印機(jī)、數(shù)控機(jī)床、繪圖儀等。隨著對(duì)產(chǎn)品的要求越來越高,對(duì)其控制也要求越來越高,以前的步進(jìn)電機(jī)控制系統(tǒng)的控制能力無法滿足現(xiàn)在的要求,因此,提出一種更高效、實(shí)用性更強(qiáng)的控制系統(tǒng)變得更加重要。
傳統(tǒng)的工業(yè)控制大多數(shù)是采用8位單片機(jī)為控制內(nèi)核,其價(jià)格便宜、設(shè)計(jì)簡單,容易滿足一般控制要求,但是該單片機(jī)存儲(chǔ)空間小,外設(shè)資源較少,往往需要與PC機(jī)聯(lián)合控制才能實(shí)現(xiàn),這樣帶來的問題是實(shí)時(shí)性較差,人機(jī)交互較為復(fù)雜,操作麻煩等問題。采用功能較為強(qiáng)大的32位ARM為控制核心,把電源、電機(jī)控制板、步進(jìn)電機(jī)和人機(jī)界面集成一體將形成一個(gè)更為強(qiáng)大的嵌入式一體化控制系統(tǒng)。其優(yōu)勢(shì)是控制性能強(qiáng),實(shí)時(shí)控制強(qiáng)、人機(jī)界面友好、總體成本低、外設(shè)資源豐富、控制精度高,可以根據(jù)控制情況適時(shí)地調(diào)整控制參數(shù)以實(shí)現(xiàn)更優(yōu)化控制。本文提出的是基于ARM7內(nèi)核的LPC2131為控制核心的步進(jìn)電機(jī)控制系統(tǒng),實(shí)現(xiàn)對(duì)步進(jìn)電機(jī)的驅(qū)動(dòng)和速度準(zhǔn)確控制,并具有很好的人機(jī)界面。
1 LPC2131概述
根據(jù)系統(tǒng)的實(shí)際需要和成本,該系統(tǒng)選擇了NXP公司生產(chǎn)的基于LPC2131,它的CPU是ARM7TDMI,是一種高性能、低功耗、價(jià)格便宜的RISC處理器,具有豐富的片上外設(shè)資源,可在3.3 V的電壓下工作,非常適合于嵌入式產(chǎn)品的開發(fā)。其主要特點(diǎn)如下:
(1)32位144引腳的ARM7TDMI內(nèi)核;
(2)L/O電壓是3.3 V,CPU工作電壓是1.8 V;
(3)有16K字節(jié)的SRAM,8K的片內(nèi)Flash;
(4)通過片內(nèi)PLL可實(shí)現(xiàn)60 MHz的主頻;
(5)對(duì)片內(nèi)FLASH支持三種編程方式:ISP,IAP,JTAG在線仿真調(diào)試;
(6)具有兩個(gè)低功耗模式:空閑和掉電模式;
(7)2路32位定時(shí)器,6路PWM,實(shí)時(shí)時(shí)鐘和看門狗;
(8)具有2路工業(yè)標(biāo)準(zhǔn)的異步串口(UART)、高速I2C和2個(gè)SPI接口;
(9)8路數(shù)據(jù)轉(zhuǎn)換器(ADC),轉(zhuǎn)換時(shí)間可低至2.44 m;
(10)通過配置可有112個(gè)GPIO。
綜上所述,LPC2131非常適合于該步進(jìn)電機(jī)的控制系統(tǒng)的設(shè)計(jì),并且具有很好的功能擴(kuò)展性。
2 步進(jìn)電機(jī)的工作原理
步進(jìn)電機(jī)是一種將電脈沖轉(zhuǎn)換為對(duì)應(yīng)的角度或者位移的執(zhí)行器件。如果電機(jī)沒有超載,電脈沖信號(hào)的頻率和脈沖數(shù)決定步進(jìn)電機(jī)的轉(zhuǎn)速和電機(jī)的位移長度,負(fù)載的變化對(duì)其沒有影響。也就是說只要給電機(jī)一個(gè)脈沖,那么電機(jī)就轉(zhuǎn)一個(gè)對(duì)應(yīng)的角度;按照步進(jìn)電機(jī)的正轉(zhuǎn)時(shí)序給脈沖,那么電機(jī)就正轉(zhuǎn),如果給的是反轉(zhuǎn)時(shí)序,那么電機(jī)就反轉(zhuǎn)。步進(jìn)電機(jī)的種類很多,按其結(jié)構(gòu)可分為永磁式、激勵(lì)式和反應(yīng)式三種,按其相數(shù)分可分為單相、兩相和多相三種。
2.1 步進(jìn)電機(jī)的主要特征
(1)步進(jìn)電機(jī)需要驅(qū)動(dòng)電路才能轉(zhuǎn)動(dòng),驅(qū)動(dòng)電路產(chǎn)生驅(qū)動(dòng)電脈沖信號(hào),如果沒有脈沖信號(hào),步進(jìn)電機(jī)靜止不動(dòng),如果按照電機(jī)的驅(qū)動(dòng)時(shí)序驅(qū)動(dòng)電機(jī),則電機(jī)按照一定的方向轉(zhuǎn)動(dòng)。電機(jī)轉(zhuǎn)動(dòng)的速度與脈沖的頻率正比關(guān)系,不受負(fù)載影響。
(2)步進(jìn)電機(jī)可以方便地實(shí)現(xiàn)瞬間啟動(dòng)、急速停止、正轉(zhuǎn)、反轉(zhuǎn),并且速度響應(yīng)特性好。
(3)步進(jìn)電機(jī)沒有累計(jì)誤差,因?yàn)椴竭M(jìn)電機(jī)只有周期性的誤差,完成一周以后誤差清零。
(4)步進(jìn)電機(jī)可以通過改變電脈沖信號(hào)的順序?qū)崿F(xiàn)改變其轉(zhuǎn)動(dòng)方向。
(5)當(dāng)步進(jìn)電機(jī)停止時(shí)可以實(shí)現(xiàn)自鎖。
(6)步進(jìn)電機(jī)的驅(qū)動(dòng)信號(hào)一般要專門的控制電路產(chǎn)生,不能直接使用普通的交流或直流電源驅(qū)動(dòng)。步進(jìn)電機(jī)必須由雙環(huán)形脈沖信號(hào)、功率驅(qū)動(dòng)電路等組成驅(qū)動(dòng)控制系統(tǒng)方可使用。
2.2 步進(jìn)電機(jī)的測(cè)速辦法
將驅(qū)動(dòng)信號(hào)的電脈沖信號(hào)轉(zhuǎn)換為角位移或者線位移,這樣的測(cè)速優(yōu)勢(shì)是:
(1)過載性好:由于步進(jìn)電機(jī)的轉(zhuǎn)速不受負(fù)載的影響,即當(dāng)負(fù)載加大時(shí)電機(jī)的速度保持不變。
(2)容易控制:由于步進(jìn)電機(jī)是一步一步的運(yùn)轉(zhuǎn),可以按角度來對(duì)其控制。
(3)整體結(jié)構(gòu)簡單:由于測(cè)速是將轉(zhuǎn)速轉(zhuǎn)換為電壓,并傳遞到輸入端實(shí)現(xiàn)閉環(huán)控制,整體結(jié)構(gòu)減少了傳統(tǒng)的機(jī)械部分和位置控制結(jié)構(gòu)部分。
[!--empirenews.page--]
3 控制系統(tǒng)設(shè)計(jì)
3.1 總體結(jié)構(gòu)設(shè)計(jì)
本系統(tǒng)是以LPC2131為控制器,用L298N電機(jī)驅(qū)動(dòng)芯片設(shè)計(jì)的驅(qū)動(dòng)電路,由于電機(jī)是12 V供電,那么還需要12 V的電壓,人機(jī)界面采用的是鍵盤顯示板,這樣可以實(shí)現(xiàn)良好的人機(jī)界面,方便現(xiàn)場調(diào)試與參數(shù)設(shè)定。
3.2 硬件設(shè)計(jì)
該系統(tǒng)的整體硬件設(shè)計(jì)框圖如圖1所示,該硬件設(shè)計(jì)系統(tǒng)主要包括三個(gè)部分,第一部分是LPC2131最小系統(tǒng),由于LPC2131的工作電壓必須是3.3 V,就得把輸入進(jìn)來的電壓進(jìn)行穩(wěn)壓,輸出所需要的電源電壓。一般采用的是電源穩(wěn)壓芯片實(shí)現(xiàn)。這部分還有控制器的復(fù)位電路,復(fù)位電路一般有阻容式復(fù)位和芯片復(fù)位兩種,根據(jù)該控制器的芯片手冊(cè)中對(duì)復(fù)位要求,故選擇了芯片復(fù)位電路。
第二部分是設(shè)計(jì)該系統(tǒng)的重點(diǎn)——步進(jìn)電機(jī)驅(qū)動(dòng)電路,采用的是L298N電機(jī)驅(qū)動(dòng)芯片設(shè)計(jì)的驅(qū)動(dòng)電路。該芯片是SGS公司的美國國家半導(dǎo)體公司生產(chǎn)的。L298N是一個(gè)高電壓,高電流全橋驅(qū)動(dòng)電路,其支持TTL邏輯標(biāo)準(zhǔn)電平,是驅(qū)動(dòng)步進(jìn)電機(jī)的良好方案。其工作的最大電壓可以達(dá)到46V,電流可達(dá)到4A,具有過電流保護(hù),低功耗芯片。其有15個(gè)引腳,內(nèi)含兩個(gè)H橋電路,能夠驅(qū)動(dòng)兩個(gè)直流電機(jī)和一個(gè)四相的步進(jìn)電機(jī)。它接受PWM脈沖波,輸出為跟輸入PWM波占空比一樣的脈沖波驅(qū)動(dòng)電機(jī),這樣如果需要改變步進(jìn)電機(jī)的轉(zhuǎn)速,可以通過調(diào)整PWM的占空比和頻率實(shí)現(xiàn)。該驅(qū)動(dòng)電路可以控制電機(jī)的轉(zhuǎn)動(dòng)方向,只需要用GPIO控制L298N的方向引腳,設(shè)置其為低電平或者高電平這樣方可改變其方向。這部分還需要12 V的直流電源,可通過電壓穩(wěn)壓芯片實(shí)現(xiàn)。
第三部分是鍵盤顯示部分,這部分主要是用來顯示電機(jī)的速度和給定,左邊顯示了速度的給定,右邊顯示電機(jī)當(dāng)前的速度,其中按鍵用來設(shè)定電機(jī)調(diào)速的調(diào)整參數(shù)。其設(shè)計(jì)原理是利用ARM的SPI進(jìn)行串行通信實(shí)現(xiàn)每次傳送兩個(gè)字節(jié),其中第一個(gè)字節(jié)是段碼,該段碼是八段數(shù)碼管的段碼值,它是8個(gè)數(shù)碼管公用的段碼;第二個(gè)字節(jié)是位碼,該位碼的8位分別對(duì)應(yīng)8個(gè)數(shù)碼管的公共端。用兩個(gè)74HC164移位寄存器實(shí)現(xiàn)數(shù)據(jù)的移位傳輸,并且把8個(gè)按鍵連接到8個(gè)數(shù)碼管的公共端,這樣實(shí)現(xiàn)動(dòng)態(tài)掃描顯示數(shù)碼管。
3.3 軟件設(shè)計(jì)
軟件設(shè)計(jì)主要是包含三個(gè)部分,分別是系統(tǒng)初始化模塊、電機(jī)調(diào)速控制模塊和鍵盤顯示模塊。設(shè)計(jì)流程如圖2所示,其中第一部分系統(tǒng)初始化模塊。主要實(shí)現(xiàn)LPC2131的啟動(dòng)設(shè)置,包括初始化中斷向量表、初始化堆棧、系統(tǒng)變量初始化、中斷系統(tǒng)初始化、I/O初始化、外圍設(shè)備初始化、存儲(chǔ)器初始化和地址重映射初始化等操作,這部分主要是用ARM匯編實(shí)現(xiàn)的,為C語言的運(yùn)行提供一個(gè)良好的環(huán)境。
第二部分是電機(jī)調(diào)速模塊。這部分是該系統(tǒng)設(shè)計(jì)的重點(diǎn),其中需要PWM初始化,定時(shí)器捕獲初始化、I/O初始化和PID算法實(shí)現(xiàn)。對(duì)于PWM模塊的初始化需要兩路PWM以實(shí)現(xiàn)四相電機(jī)時(shí)序來控制電機(jī)的轉(zhuǎn)動(dòng),其中PWM的占空比實(shí)現(xiàn)電機(jī)電壓的速度控制。I/O實(shí)現(xiàn)電機(jī)的方向控制,通過設(shè)置低電平和高電平設(shè)置不同的電機(jī)轉(zhuǎn)向。定時(shí)器捕獲模塊實(shí)現(xiàn)閉環(huán)調(diào)速系統(tǒng),用定時(shí)器捕獲電機(jī)轉(zhuǎn)動(dòng)時(shí)電機(jī)葉子切割紅外線產(chǎn)生的脈沖數(shù)進(jìn)而算出電機(jī)的轉(zhuǎn)速,不過計(jì)算電機(jī)轉(zhuǎn)速時(shí)得注意電機(jī)的減速比。PID算法以實(shí)現(xiàn)電機(jī)的智能控制,通過設(shè)置給定轉(zhuǎn)速和捕獲回來的轉(zhuǎn)速,計(jì)算出下次需要給出的PWM占空比,以實(shí)現(xiàn)電機(jī)速度的準(zhǔn)確控制。
第三部分是鍵盤顯示模塊。該模塊主要是實(shí)現(xiàn)通過鍵盤實(shí)時(shí)的調(diào)整PID參數(shù),那么左邊顯示的是給定的電機(jī)轉(zhuǎn)速,右邊顯示的是當(dāng)前的電機(jī)轉(zhuǎn)速。在該模塊中需要定時(shí)器模塊、SPI模塊,其中定時(shí)器模塊實(shí)現(xiàn)對(duì)數(shù)碼管的動(dòng)態(tài)掃描和獲取按鍵的鍵值;SPI模塊實(shí)現(xiàn)把數(shù)碼管的段碼和位碼串行發(fā)送出去。其中按鍵的功能主要實(shí)現(xiàn)加法、減法、修改和確定,這樣就可以實(shí)時(shí)的根據(jù)當(dāng)前的轉(zhuǎn)速修改PID參數(shù),以實(shí)現(xiàn)電機(jī)轉(zhuǎn)速的實(shí)時(shí)控制。
4 結(jié)束語
為了提出一種更高效、實(shí)用性更強(qiáng)、更優(yōu)化的控制系統(tǒng),本文的控制系統(tǒng)是基于ARM LPC2131來設(shè)計(jì)的步進(jìn)電動(dòng)機(jī)控制系統(tǒng),其通過ARM的高速和豐富的外設(shè)資源對(duì)步進(jìn)電機(jī)實(shí)現(xiàn)轉(zhuǎn)速的精確控制和實(shí)時(shí)監(jiān)測(cè)控制,具有對(duì)步進(jìn)電機(jī)實(shí)時(shí)控制、數(shù)據(jù)處理速度快、精度高、良好的人機(jī)界面、操作簡單和易于維修等特點(diǎn)。