利用ARM控制步進(jìn)電機(jī)實(shí)驗(yàn)_第1頁
利用ARM控制步進(jìn)電機(jī)實(shí)驗(yàn)_第2頁
利用ARM控制步進(jìn)電機(jī)實(shí)驗(yàn)_第3頁
利用ARM控制步進(jìn)電機(jī)實(shí)驗(yàn)_第4頁
利用ARM控制步進(jìn)電機(jī)實(shí)驗(yàn)_第5頁
已閱讀5頁,還剩49頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

ARM板控制步進(jìn)電機(jī)杜建軍張國慶2008年5月【單片機(jī)與嵌入式系統(tǒng)實(shí)驗(yàn)三】實(shí)驗(yàn)要求·利用提供的ARM板編程控制步進(jìn)電機(jī)的起停和正反轉(zhuǎn)。轉(zhuǎn)速要求在20~100轉(zhuǎn)/分?!び心芰Φ耐瑢W(xué)可以考慮實(shí)現(xiàn)步進(jìn)電機(jī)的T形加減速。實(shí)驗(yàn)?zāi)康牧私獠竭M(jìn)電機(jī)的工作原理了解步進(jìn)電機(jī)驅(qū)動器的內(nèi)部結(jié)構(gòu)及工作原理熟悉ADS集成開發(fā)環(huán)境。了解使用ARM技術(shù)進(jìn)行開發(fā)的基本流程熟悉ARM

GPIO功能模塊第一章

步進(jìn)電機(jī)步進(jìn)電機(jī)是一種作為控制用的特種電機(jī),它的旋轉(zhuǎn)是以固定的角度(稱為“步距角”)一步一步運(yùn)行的,其特點(diǎn)是沒有積累誤差(精度為100%),所以廣泛應(yīng)用于各種開環(huán)控制。步進(jìn)電機(jī)的運(yùn)行要有一電子裝置進(jìn)行驅(qū)動,這種裝置就是步進(jìn)電機(jī)驅(qū)動器,它是把控制系統(tǒng)發(fā)出的脈沖信號轉(zhuǎn)化為步進(jìn)電機(jī)的角位移,或者說:控制系統(tǒng)每發(fā)一個脈沖信號,通過驅(qū)動器就使步進(jìn)電機(jī)旋轉(zhuǎn)一步距角。所以步進(jìn)電機(jī)的轉(zhuǎn)速與脈沖信號的頻率成正比。雖然步進(jìn)電機(jī)已被廣泛地應(yīng)用,但步進(jìn)電機(jī)并不能象普通的直流電機(jī),交流電機(jī)在常規(guī)下使用。它必須由雙環(huán)形脈沖信號、功率驅(qū)動電路等組成控制系統(tǒng)方可使用。因此用好步進(jìn)電機(jī)卻非易事,它涉及到機(jī)械、電機(jī)、電子及計算機(jī)等許多專業(yè)知識。右圖是常州澤明自動化設(shè)備有限公司生產(chǎn)的57BYG型兩相混合式步進(jìn)電機(jī)。步進(jìn)角:相數(shù):2電流:3AA——綠/A——白B——紅/B——黑步進(jìn)電機(jī)內(nèi)部結(jié)構(gòu)圖步進(jìn)電機(jī)轉(zhuǎn)子為什么兩部分的齒不對齊?步進(jìn)電機(jī)的內(nèi)部原理圖怎樣計算步距角?兩個基本概念步距角:指每給一個電脈沖信號電動機(jī)轉(zhuǎn)子所應(yīng)轉(zhuǎn)過的角度的理論值,步距角式中: ——轉(zhuǎn)子齒數(shù)——運(yùn)行拍數(shù),通常等于相數(shù)或相數(shù)的整數(shù)倍即——電動機(jī)相數(shù)齒距角:相鄰兩齒中心線間的夾角,通常定子和轉(zhuǎn)子具有相同的齒距角。齒距角第二章

步進(jìn)電機(jī)驅(qū)動器步進(jìn)電機(jī)不能直接接到直流電源上工作,而必須使用專用設(shè)備——步進(jìn)電動驅(qū)動器。步進(jìn)電機(jī)驅(qū)動系統(tǒng)的性能,除與電機(jī)自身的性能有關(guān)外,也在很大程度上取決于驅(qū)動器的優(yōu)劣。步進(jìn)電機(jī)驅(qū)動器的主要構(gòu)成如下圖所示,一般由環(huán)形分配器、信號處理級、推動級、驅(qū)動級等各部分組成,用于功率步進(jìn)電機(jī)的驅(qū)動器還要有多種保護(hù)線路.環(huán)形分配器環(huán)形分配器用來接受來自控制器的CP脈沖,并按步進(jìn)電機(jī)狀態(tài)轉(zhuǎn)換表要求的狀態(tài)順序產(chǎn)生各相導(dǎo)通或截止的信號。每來一個CP脈沖,環(huán)形分配器的輸出轉(zhuǎn)換一次。因此,步進(jìn)電動機(jī)轉(zhuǎn)速的高低、升速或降速、起動或停止都完全取決于CP脈沖的有無或頻率。同時,環(huán)形分配器還必須接受控制器的方向信號,從而決定其輸出的狀態(tài)轉(zhuǎn)換是按正序或者按反序轉(zhuǎn)換,于是就決定了步進(jìn)電動機(jī)的轉(zhuǎn)向。接受CP脈沖和方向電平是環(huán)形分配器的最基本勸能。信號放大處理級從環(huán)形分配器輸出的各相導(dǎo)通或截止的信號送入信號放大處理級。信號放大的作用是將環(huán)形分配器輸出信號加以放大變成足夠大的信號送入推動級,這中間一般既需電壓放大,也需電流放大。信號處理是實(shí)現(xiàn)信號的某些轉(zhuǎn)換合成等功能,產(chǎn)生斬波、抑制等特殊功能的信號,從而產(chǎn)生特殊功能的驅(qū)動。本級還經(jīng)常與各種保護(hù)電路、各種控制電路組合在一起,形成較高性能的驅(qū)動輸出。推動級和保護(hù)級推動級的作用是將較小的信號加以放大.變成足以推動驅(qū)動級輸入的較大信號。有時,推動級還承擔(dān)電平轉(zhuǎn)換的作用。保護(hù)級的作用是保護(hù)駁動級的安全。一般可根據(jù)需要設(shè)置過電流保護(hù),過熱保護(hù)、過壓保護(hù)、欠壓保護(hù)等,有時還需要對輸入信號進(jìn)行監(jiān)護(hù),發(fā)現(xiàn)輸入異常也提供保護(hù)動作,實(shí)驗(yàn)中,我們使用的是常州澤明自動化設(shè)備有限公司的WZM-2H057M型步進(jìn)電機(jī)驅(qū)動器如右圖。WZM-2H057M驅(qū)動器特點(diǎn)每相最大驅(qū)動器電流為3.0安培,且電流八檔可調(diào)。細(xì)分?jǐn)?shù)可選(1/2,1/5,1/10,1/20,1/40)。所有輸入信號都經(jīng)過光電隔離。電機(jī)的相電流為正弦波。電源:DC(24-40V)/3ACP:步進(jìn)脈沖信號DIR:方向信號,不接或接正順時針轉(zhuǎn),接地逆時針。FREE:脫機(jī)電平信號OPTO:接開發(fā)板的輸出電壓正端A——綠/A——白B——紅/B——黑本驅(qū)動器是用驅(qū)動器上的拔盤開關(guān)來設(shè)定細(xì)分?jǐn)?shù)及相電流的,根據(jù)面板的標(biāo)注設(shè)定即可;請您在控制器頻率允許的情況下 方法請參考下表:拔,盤盡開關(guān)量設(shè)選定u用p=0,高dow細(xì)n=1分?jǐn)?shù);具體設(shè)置拔,盤盡開關(guān)量設(shè)選定u用p=0,高dow細(xì)n=1分?jǐn)?shù);具體設(shè)置拔,盤盡開關(guān)量設(shè)選定u用p=0,高dow細(xì)n=1分?jǐn)?shù);具體設(shè)置拔,盤盡開關(guān)量設(shè)選定u用p=0,高dow細(xì)n=1分?jǐn)?shù);具體設(shè)置拔,盤盡開關(guān)量設(shè)選定u用p=0,高dow細(xì)n=1分?jǐn)?shù);具體設(shè)置拔,盤盡開關(guān)量設(shè)選定u用p=0,高dow細(xì)n=1分?jǐn)?shù);具體設(shè)置拔,盤盡開關(guān)量設(shè)選定u用p=0,高dow細(xì)n=1分?jǐn)?shù);具體設(shè)置拔,盤盡開關(guān)量設(shè)選定u用p=0,高dow細(xì)n=1分?jǐn)?shù);具體設(shè)置拔,盤盡開關(guān)量設(shè)選定u用p=0,高dow細(xì)n=1分?jǐn)?shù);具體設(shè)置拔,盤盡開關(guān)量設(shè)選定u用p=0,高dow細(xì)n=1分?jǐn)?shù);具體設(shè)置拔,盤盡開關(guān)量設(shè)選定u用p=0,高dow細(xì)n=1分?jǐn)?shù);具體設(shè)置拔,盤盡開關(guān)量設(shè)選定u用p=0,高dow細(xì)n=1分?jǐn)?shù);具體設(shè)置拔,盤盡開關(guān)量設(shè)選定u用p=0,高dow細(xì)n=1分?jǐn)?shù);具體設(shè)置拔,盤盡開關(guān)量設(shè)選定u用p=0,高dow細(xì)n=1分?jǐn)?shù);具體設(shè)置拔,盤盡開關(guān)量設(shè)選定u用p=0,高dow細(xì)n=1分?jǐn)?shù);具體設(shè)置拔,盤盡開關(guān)量設(shè)選定u用p=0,高dow細(xì)n=1分?jǐn)?shù);具體設(shè)置拔,盤盡開關(guān)量設(shè)選定u用p=0,高dow細(xì)n=1分?jǐn)?shù);具體設(shè)置拔,盤盡開關(guān)量設(shè)選定u用p=0,高dow細(xì)n=1分?jǐn)?shù);具體設(shè)置拔,盤盡開關(guān)量設(shè)選定u用p=0,高dow細(xì)n=1分?jǐn)?shù);具體設(shè)置拔,盤盡開關(guān)量設(shè)選定u用p=0,高dow細(xì)n=1分?jǐn)?shù);具體設(shè)置拔,盤盡開關(guān)量設(shè)選定u用p=0,高dow細(xì)n=1分?jǐn)?shù);具體設(shè)置電機(jī)相電流設(shè)定(位6,7,8)位678電流位678電流0000.5A1001.7A0011.0A1012.0A0101.3A1102.4A0111.5A1113.0A脫機(jī)電平信號FREE:當(dāng)驅(qū)動器上電后,步進(jìn)電機(jī)處于鎖定狀態(tài)(未施加CP脈沖時)或運(yùn)行狀態(tài)(施加CP脈沖時),但用戶想手動調(diào)整電機(jī)而又不想關(guān)閉驅(qū)動器電源,怎么辦呢?這時可以用到此信號。當(dāng)此信號起作用時(低電平有效),電機(jī)處于自由無力矩狀態(tài);當(dāng)此信號為高電平或懸空不接時,取消脫機(jī)狀態(tài)。此信號用戶可選用,如果不需要此功能,此端不接即可。控制信號輸入連接圖本驅(qū)動器的輸入信號共有三路,它們是:步進(jìn)脈沖信號CP、方向電平信號DIR、脫機(jī)信號FREE。它們在驅(qū)動器內(nèi)部分別通過270歐的限流電阻接入光耦的負(fù)輸入端,且電路形式完全相同。OPTO端為三路信號的公共正端(三路光耦的正輸入端),三路輸入信號在驅(qū)動器內(nèi)部接成共陽方式,所以O(shè)PTO端須接外部系統(tǒng)的VCC,如果VCC是+5V則可直接接入;如果VCC不是+5V則須外部另加限流電阻R,保證給驅(qū)動器內(nèi)部光耦提供8-15mA?!と绻斎腚妷撼^5V,請參照表1,加裝外接電阻R限流。輸入信號電壓外部電阻(R)阻值直流5V不加外部電阻直流12V680歐姆直流24V1.8k驅(qū)動器控制信號內(nèi)部接口示意圖步進(jìn)電機(jī)的微步(細(xì)分)控制步進(jìn)電機(jī)在正常情況下,一個脈沖走1.8°的樣子,但是這個在低速的時候抖動就比較厲害,走走停停。于是便出現(xiàn)了帶有細(xì)分功能的步進(jìn)電機(jī)驅(qū)動器,有的細(xì)分值達(dá)到上萬步,也就是給一個脈沖走1.8÷10000度,非常精確。要理解細(xì)分的原理首先要明白步進(jìn)電機(jī)的工作原理:它是靠線圈的合成磁場把轉(zhuǎn)子磁鐵“吸”過去的。比如兩個垂直的線圈(相差90度),分別通電可以依次得到相差90度角的磁場,轉(zhuǎn)子也就會被吸到對應(yīng)的角度如果我們設(shè)計復(fù)雜些,給兩個線圈同時通電,那就可以得到相差45度的磁場了再考慮得更復(fù)雜,一個通10%,另一個通90%,就會合成一個以9度為間隔的磁場了?!?兩個步進(jìn)之間的角度不是按電流比例的,而是按cos,sin比例的。假設(shè)你需要讓電機(jī)停在某步和下一步之間80%的地方,你需要給當(dāng)前線圈通cos(0.8*π/2)*I的電流,給下一步的線圈通sin(0.2*π/2)*I的電流。第三章ARM開發(fā)板簡介EasyARM2131開發(fā)板是廣州周立功公司設(shè)計的EasyARM系列開發(fā)套件之一,采用了PHILIPS公司基于ARM7TDMI-S核、單電源供電、LQFP64封裝的LPC2131,具有JTAG仿真調(diào)試、ISP編程等功能。EasyARM2131開發(fā)板功能框圖EasyARM2131開發(fā)板元件布局圖EasyARM2131開發(fā)板跳線一覽表ARM2131連接器一覽表第四章ADS集成開發(fā)環(huán)境ADS集成開發(fā)環(huán)境是ARM公司推出的ARM核微控制器集成開發(fā)工具。英文全稱為ARMDeveloperSuite,成熟版本為ADS1.2。ADS1.2支持ARM10之前的所有ARM系列微控制器,支持軟件調(diào)試及JTAG硬件仿真調(diào)試,支持匯編、C.C++源程序,具有編譯效率高、系統(tǒng)庫功能強(qiáng)等特點(diǎn),可以在Windows98、WindowsXP、Windows2000以及RedHatLinux上運(yùn)行。ADS1.2使用了CodeWarriorIDE集成開發(fā)環(huán)境,并集成了ARM匯編器、ARM的C/C++編譯器、Thumb的C/C++編譯器、ARM連接器,包含工程管理器、代碼生成接口、語法敏感(對關(guān)鍵字以不同顏色顯示)編輯器、源文件和類瀏覽器等等。CodeWarrior

IDE集成開發(fā)環(huán)境的啟動使用工程模版CodeWarrior開發(fā)環(huán)境生成Hex文件首先,選用工程的生成目標(biāo)為DebugInFLASH或RelInFLASH,這樣工程連接時將會使用mem_c.scf或mem_a.scf分散加載描述文件,生成可固化到FLASH中的二進(jìn)制代碼。然后,打開工程的DebugInFLASHSettings窗口,在TargetSettings項中設(shè)置Post-linker選取ARMfromELF如下圖所示。接著,在ARMformELF項中設(shè)置輸出文件類型,如設(shè)置為Intel32bitHex,然后設(shè)置輸出文件名,也可指定目錄,若不指定目錄,則生成文件存放在當(dāng)前工程的目錄中(如下圖所示)。重新編譯連接,編譯通過即會生成指定的輸出文件(比如:leddisp.hex)。用ISP軟件下載生成HEX文件后,接下來使用串口延長線連接PC串口(如COM1)和EasyARM2131開發(fā)板(UART0),并將開發(fā)板上的ISP(JP1)跳線短接。打開LPC2000FlashUtility軟件,并設(shè)置串口、波特率、系統(tǒng)晶振(注意,晶振頻率項單位為kHz)等,如下圖所示。設(shè)置好參數(shù)后,點(diǎn)擊ReadDeviceID按鈕,讀取芯片ID號,若讀取成功(狀態(tài)欄顯示“ReadPartIDSuccessfully!”),則ISP連接成功。否則,當(dāng)出錯提示為復(fù)位LPC2000信息時,首先按EasyARM2131開發(fā)板上的RST鍵復(fù)位,然后再確定提示,如下圖所示。連接成功后,先使用Erase按鈕擦除選定扇區(qū)的FLASH,然后在Filename項中輸入要下載的HEX文件全名,點(diǎn)擊UploadtoFlash按鈕即開始下載程序。程序固化后,將ISP(JP1)跳線斷開,重新復(fù)位系統(tǒng)即可運(yùn)行程序。第五章GPIOLPC2131具有多達(dá)47個通用I/O口(GPIO,GeneralPurposeI/Oports),分別為P0[31:0]、P1[31:16],其中,P0.24未用P0.31僅為輸出口。由于口線與其它功能復(fù)用,因而需要進(jìn)行相關(guān)的管腳連接模塊(PINSEL0、PINSEL1.PINSEL2)選擇連接GPIO,然后通過IODIR進(jìn)行輸入/輸出屬性設(shè)置后才能操作。當(dāng)管腳選擇GPIO功能時,有3個寄存器用于控制GPIO的使用,IOSET、IOCLR和IOPIN。IOSET用于口線置1,而IOCLR則用于口線清零,IOPIN則反映當(dāng)前IO口的狀態(tài),讀回IOSET則反映當(dāng)前IO口設(shè)定狀態(tài)。特性:單個位的方向控制;單獨(dú)控制輸出的置位和清零;所有I/O口在復(fù)位后默認(rèn)為輸入。將相應(yīng)管腳的PINSELn位設(shè)置為00即選擇GPIO功能;大部分管腳復(fù)位后默認(rèn)為GPIOLPC2131有2個32位的通用I/O口。PORT0使用了30個管腳,PORT1有多達(dá)16個管腳可用作GPIO功能。PORT0和PORT1由2組(4個)寄存器控制,如下表所示。1.GPIO管腳值寄存器-GPIOPinValueRegister(IO0PIN-0xE0028000,IO1PIN–0xE0028010)IOPIN寄存器提供GPIO管腳的值,它反映了外部環(huán)境對管腳的影響,不能反映非GPIO配置管腳的活動,因此不能使用IOPIN寄存器來監(jiān)控非GPIO配置管腳。2.GPIO輸出置位寄存器-GPIOOutputSetRegister(IO0SET-0xE0028004,IO1SET–0xE0028014)當(dāng)管腳配置為GPIO輸出模式時,可使用該寄存器從管腳輸出高電平。寫入1使對應(yīng)管腳輸出高電平,寫入0無效。如果一個管腳被配置為輸入或第二功能,寫IOSET無效。讀IOSET寄存器返回GPIO輸出寄存器中的值。該值由前一次對IOSET和IOCLR(或IOPIN)的寫操作決定,不反映任何外部環(huán)境對管腳的影響。3.GPIO輸出清零寄存器-GPIOOutputClearRegister(IO0CLR-0xE002800C,IO1CLR–0xE002801C)當(dāng)管腳配置為GPIO輸出模式時,可使用該寄存器從管腳輸出低電平。寫入1使對應(yīng)管腳輸出低電平并清零IOSET寄存器中相應(yīng)的位,寫入0無效。如果一個管腳被配置為輸入或第二功能,寫IOCLR無效。4.GPIO方向寄存器-GPIODirectionRegister(IO0DIR-0xE0028008,IO1DIR–0xE0028018)當(dāng)管腳配置為GPIO模式時,可使用該寄存器控制管腳的方向。只有當(dāng)管腳選擇GPIO時,IODIR設(shè)置才有意義。使用示· 將例管腳用作GPIO,需要先設(shè)置管腳連接(PINSEL),然后再根據(jù)應(yīng)用設(shè)置方向(IODIR),流程如下圖所示。1.設(shè)置P0.0口為輸出模式如程序清單所示為設(shè)置P0.0口為GPIO輸出模式的代碼。程序清單:設(shè)置P0.0為輸出模式PINSEL0

=

0x00000000;IO0DIR

=

0x00000001;//P0.0選擇GPIO功能//設(shè)置P0.0為輸出模式2.GPIO讀寫操作如程序清單所示,程序?qū)x取P0.7~P0.4腳值,然后從P0.3~P0.0輸出。程序清單:GPIO讀寫操作bak=IO0PIN;IO0CLR=0x0000000F;//讀取引腳上的值//將P0.0~P0.3輸出0IO0SET=(bak

&

0x000000F0)>>4;//設(shè)置P0.0~P0.3輸出(為1的位輸出1)3

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論