<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于ARM的步進(jìn)電機(jī)控制系統(tǒng)

          基于ARM的步進(jìn)電機(jī)控制系統(tǒng)

          作者: 時(shí)間:2012-12-21 來(lái)源:網(wǎng)絡(luò) 收藏

          3 控制系統(tǒng)設(shè)計(jì)
          3.1 總體結(jié)構(gòu)設(shè)計(jì)
          本系統(tǒng)是以LPC2131為控制器,用電機(jī)驅(qū)動(dòng)芯片設(shè)計(jì)的驅(qū)動(dòng)電路,由于電機(jī)是12 V供電,那么還需要12 V的電壓,人機(jī)界面采用的是鍵盤顯示板,這樣可以實(shí)現(xiàn)良好的人機(jī)界面,方便現(xiàn)場(chǎng)調(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)來(lái)的電壓進(jìn)行穩(wěn)壓,輸出所需要的電源電壓。一般采用的是電源穩(wěn)壓芯片實(shí)現(xiàn)。這部分還有控制器的復(fù)位電路,復(fù)位電路一般有阻容式復(fù)位和芯片復(fù)位兩種,根據(jù)該控制器的芯片手冊(cè)中對(duì)復(fù)位要求,故選擇了芯片復(fù)位電路。

          本文引用地址:http://www.ex-cimer.com/article/148175.htm

          a.JPG


          第二部分是設(shè)計(jì)該系統(tǒng)的重點(diǎn)——驅(qū)動(dòng)電路,采用的是電機(jī)驅(qū)動(dòng)芯片設(shè)計(jì)的驅(qū)動(dòng)電路。該芯片是SGS公司的美國(guó)國(guó)家半導(dǎo)體公司生產(chǎn)的。是一個(gè)高電壓,高電流全橋驅(qū)動(dòng)電路,其支持TTL邏輯標(biāo)準(zhǔn)電平,是驅(qū)動(dòng)的良好方案。其工作的最大電壓可以達(dá)到46V,電流可達(dá)到4A,具有過(guò)電流保護(hù),低功耗芯片。其有15個(gè)引腳,內(nèi)含兩個(gè)H橋電路,能夠驅(qū)動(dòng)兩個(gè)直流電機(jī)和一個(gè)四相的。它接受PWM脈沖波,輸出為跟輸入PWM波占空比一樣的脈沖波驅(qū)動(dòng)電機(jī),這樣如果需要改變步進(jìn)電機(jī)的轉(zhuǎn)速,可以通過(guò)調(diào)整PWM的占空比和頻率實(shí)現(xiàn)。該驅(qū)動(dòng)電路可以控制電機(jī)的轉(zhuǎn)動(dòng)方向,只需要用GPIO控制L298N的方向引腳,設(shè)置其為低電平或者高電平這樣方可改變其方向。這部分還需要12 V的直流電源,可通過(guò)電壓穩(wěn)壓芯片實(shí)現(xiàn)。
          第三部分是鍵盤顯示部分,這部分主要是用來(lái)顯示電機(jī)的速度和給定,左邊顯示了速度的給定,右邊顯示電機(jī)當(dāng)前的速度,其中按鍵用來(lái)設(shè)定電機(jī)調(diào)速的調(diào)整參數(shù)。其設(shè)計(jì)原理是利用的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ǔ)器初始化和地址重映射初始化等操作,這部分主要是用匯編實(shí)現(xiàn)的,為C語(yǔ)言的運(yùn)行提供一個(gè)良好的環(huán)境。

          b.JPG


          第二部分是電機(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í)序來(lái)控制電機(jī)的轉(zhuǎn)動(dòng),其中PWM的占空比實(shí)現(xiàn)電機(jī)電壓的速度控制。I/O實(shí)現(xiàn)電機(jī)的方向控制,通過(guò)設(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)速,不過(guò)計(jì)算電機(jī)轉(zhuǎn)速時(shí)得注意電機(jī)的減速比。PID算法以實(shí)現(xiàn)電機(jī)的智能控制,通過(guò)設(shè)置給定轉(zhuǎn)速和捕獲回來(lái)的轉(zhuǎn)速,計(jì)算出下次需要給出的PWM占空比,以實(shí)現(xiàn)電機(jī)速度的準(zhǔn)確控制。
          第三部分是鍵盤顯示模塊。該模塊主要是實(shí)現(xiàn)通過(guò)鍵盤實(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é)束語(yǔ)
          為了提出一種更高效、實(shí)用性更強(qiáng)、更優(yōu)化的控制系統(tǒng),本文的控制系統(tǒng)是基于 LPC2131來(lái)設(shè)計(jì)的步進(jìn)電動(dòng)機(jī)控制系統(tǒng),其通過(guò)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ī)界面、操作簡(jiǎn)單和易于維修等特點(diǎn)。


          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();