版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 《DSP技術(shù)與應用》課程設計報告</p><p> 題目: 步進電機 </p><p> 系 (院): 計算機工程系 </p><p> 專 業(yè): 計算機科學與技術(shù)(嵌入式軟件方向)</p><p> 班 級:
2、 計算機1073班 </p><p> 學 號: </p><p> 姓 名: </p><p> 指導教師: </p><p&
3、gt; 學年學期: 2009 ~ 2010 學年 第 2 學期</p><p> 2010年6月18日</p><p><b> 設計任務書</b></p><p><b> 摘要:</b></p><p> 步進電機作為一種電脈沖—角位移的轉(zhuǎn)換元件,由于具有價格低廉、易于控制、
4、無積累誤差和計算機接口方便等優(yōu)點,在機械、儀表、工業(yè)控制等領(lǐng)域中獲得了廣泛的應用。通過DSP對步進電機的控制可以實現(xiàn)系統(tǒng)實時、精確、高效、安全的設計要求,從而實現(xiàn)了自動化生產(chǎn)過程。作為重要部件的DSP是否實現(xiàn)控制要求是應用系統(tǒng)能否可靠工作的關(guān)鍵。許多研究機構(gòu)和電機生產(chǎn)廠家對于用單片機和用功率器件來設計步進電機驅(qū)動系統(tǒng)作了大量的研究,如把MCS-51系列的8031單片機、美國Microchip公司的PIC系列的PIC16C5X、各類PL
5、C和VMOS管等功率器件作為控制系統(tǒng)都是比較成熟的。這些方面的資料和經(jīng)驗對于將更高速的DSP器件用在驅(qū)動系統(tǒng)上都是很有幫助的?,F(xiàn)在流行的方法是將一系列外圍設備如數(shù)模轉(zhuǎn)換器(A/D)、脈寬調(diào)制發(fā)生器(PWM)和數(shù)字信號處理器(DSP)內(nèi)核集成在一起,就獲得一個強大又非常經(jīng)濟的電機控制專用的的DSP。許多廠家開發(fā)出了電機專用的DSP器件和支持各種通用算法的模擬軟件。不僅芯片的運算速度越來越快,且軟件中集成和固化在硬件中的算法模塊越來越多,使
6、得實現(xiàn)各種功能和進行電機性能研究變得現(xiàn)實和容易,能</p><p> 關(guān)鍵字:DSP;步進電機;控制</p><p><b> 目 錄</b></p><p><b> 一 實驗目的:1</b></p><p><b> 二 實驗原理:1</b></p>
7、;<p> 2.1 步進電機 :1</p><p> 2.2 步進電機種類及區(qū)別:2</p><p> 2.3控制系統(tǒng)的硬件組成2</p><p> 2.4 步進電機的工作原理2</p><p> 三 步進電機的驅(qū)動和控制電路:3</p><p> 3.1 步進電機的功率驅(qū)動電路3
8、</p><p> 3.2 步進電機控制電路:4</p><p> 四 步進電機的DSP控制方法:5</p><p> 五 程序設計及其流程圖:6</p><p><b> 六 實驗現(xiàn)象:6</b></p><p><b> 總 結(jié)7</b><
9、/p><p><b> 參考文獻8</b></p><p> 附件 程序源代碼9</p><p> 1.主程序 main.c9</p><p> 2. 頭文件 IO.h11</p><p> 3. 中斷向量表文件vectors.asm12</p><p>
10、 4. 命令文件 mycmd.cmd12</p><p><b> 一 實驗目的:</b></p><p> 1.1 熟悉步進電機的工作原理; </p><p> 1.2 掌握DSP控制方法;</p><p> 1.3 了解步進電機的控制方法。</p><p><b&g
11、t; 二 實驗原理:</b></p><p> 2.1 步進電機 : </p><p> 步進電機是一種將電脈沖轉(zhuǎn)化為角位移的執(zhí)行機構(gòu)。通俗一點講:當步進驅(qū)動器接收到一個脈沖信號,它就驅(qū)動步進電機按設定的方向轉(zhuǎn)動一個固定的角度(及步進角)??捎脕砜刂茩C器人手臂以及車輪等部件,工作可靠,控制容易。 可以通過控制脈沖個數(shù)來控制角位移量,從而達到準確定位的目的;同時您可以通過控
12、制脈沖頻率來控制電機轉(zhuǎn)動的速度和加速度,從而達調(diào)速的目的。因此在需要準確定位或調(diào)速控制時均可考慮使用步進電機。 電機鐵芯扭槽疊扣沖壓控制系統(tǒng)是為實現(xiàn)模具加工智能化控制要求,為企業(yè)設計的實用性產(chǎn)品,其要求是對高速沖床附加一智能模具控制器,該控制器在不影響沖床原有的運行及控制的基礎上,采集相關(guān)的輸入信號,并實現(xiàn)對所沖模具的有效控制。本文設計的控制器要求扭槽模具每沖一片后移動一個步距到達另一個特定位置,再沖另一片,連續(xù)沖出的鐵芯片,經(jīng)疊壓后,
13、形成所要求的扭槽形狀??刂葡到y(tǒng)強調(diào)鐵芯加工過程中的角度位移控制,希望具有足夠高精度的步距角,并且運行穩(wěn)定性好??刂葡到y(tǒng)選用了兩相混合型步進電機作為位置控制機構(gòu),通過DSP的控制,將輸入的脈沖信號線性地轉(zhuǎn)換為位移量,從而控制電機鐵芯的扭槽。 傳統(tǒng)步進電機控制電路的實現(xiàn)多</p><p> 2.2 步進電機種類及區(qū)別: </p><p> 步進電機分三種:永磁式(PM),反應式(V
14、R)和混合式(HB) 永磁式步進一般為兩相,轉(zhuǎn)矩和體積較小,步進角一般為7.5度或15度;反應式步進一般為三相,可實現(xiàn)大轉(zhuǎn)矩輸出,步進角一般為1.5度,但噪聲和振動都很大。在歐美等發(fā)達國家80年代已被淘汰?;旌鲜讲竭M是指混合了永磁式和反應式的優(yōu)點。它又分為兩相四相和五相:兩相步進09.12.20一般為1.8度而五相步進角一般為0.72度。這種步進電機的應用最為廣泛。</p><p> 2.3控制系統(tǒng)的硬件組成&
15、lt;/p><p> 步進電機控制的最大特點是開環(huán)控制,不需要反饋信號。因為步進電機的運動不產(chǎn)生旋轉(zhuǎn)量的誤差累積。由DSP實現(xiàn)的步進電機控制系統(tǒng)結(jié)構(gòu)如圖1所示??刂葡到y(tǒng)中的核心芯片是DSP,如虛線所示。它由兩大功能模塊組成:a.速度控制模塊,核心是鎖相環(huán)PLL宏模塊電路,它在不同速度控制信號作用下,可將經(jīng)時鐘分頻器分頻后的系統(tǒng)時鐘改變?yōu)椴煌腜WM信號,將此信號作為速度控制模塊的變頻時鐘,可達到改變步進電機速度的目
16、的;b.方向控制模塊,核心是脈沖分配電路,在每一個變頻時鐘周期內(nèi),脈沖分配器可在不同的方向控制信號下產(chǎn)生不同方向的步進時序脈沖,從而控制步進電機順2步進電機及其驅(qū)動器的選用步進電機可以用數(shù)字信號直接控制,隨著數(shù)字控制系統(tǒng)的發(fā)展,步進電機的應用也越來越廣泛。</p><p> 步進電機需配置一個專用的電源供電,電源的作用是讓電動機的控制繞組按照特定的順序通電,即受輸入的電脈沖控制而動作,這個專用電源稱為驅(qū)動電源(
17、或驅(qū)動電路)。步進電機及其驅(qū)動電源是一個互相聯(lián)系的整體,步進電機的運行性能是由電動機和驅(qū)動電源兩者配合所形成的綜合效果。</p><p> 2.4 步進電機的工作原理</p><p> 2.4.1 換相順序</p><p> 步進電機的通電換相順序是嚴格按照步進電機的工作方式進行的。通常把通電換相這一過程稱為“脈沖分配”。例如,四相步進電機的單四拍工作方式,其
18、各相通電的順序為A-B-C-D,通電控制脈沖必須嚴格地按照這一順序分別控制A、B、C、D相的通電和斷電。</p><p> 2.4.2步進電機的速度</p><p> 如果給步進電機發(fā)一個控制脈沖,它就轉(zhuǎn)一個步距角,再發(fā)一個脈沖,它會再轉(zhuǎn)一個步距角。兩個脈沖的間隔時間越短,步進電機就轉(zhuǎn)得越快。因此,脈沖的頻率?決定了步進電機的轉(zhuǎn)速,在可控制的速度范圍內(nèi),步進電機的轉(zhuǎn)速和脈沖的頻率成正比
19、。</p><p> 步進電機的每分轉(zhuǎn)速可由下式計算:</p><p> 其中是脈沖頻率,是轉(zhuǎn)子齒數(shù),是拍數(shù)。</p><p> 當步進電機的工作方式確定之后,調(diào)整脈沖的頻率,就可以對步進電機進行調(diào)整。</p><p> 2.4.3步進電機的轉(zhuǎn)向</p><p> 根據(jù)步進電機的工作原理,如果按給定的工作方式
20、正序通電換相,則步進電機正轉(zhuǎn);如果按方序通電換相,則步進電機反轉(zhuǎn)。例如四相步進電機工作在單四拍方式,通電換相的正序是A-B-C-D,電機就正轉(zhuǎn);如果按反序A-D-C-B,電機就反轉(zhuǎn)。如果四相步進電機工作在雙四拍方式,通電換相的正序是AB-BC-CD-DA,電機就正轉(zhuǎn);如果按反序DA-CD-BC-BA,電機就反轉(zhuǎn)。</p><p> 三 步進電機的驅(qū)動和控制電路:</p><p> 3.
21、1 步進電機的功率驅(qū)動電路</p><p> 步進電機是一種數(shù)字元件, 易于與數(shù)字電路接口, 但一般數(shù)字電路的信號能量遠遠不足以驅(qū)動步進電機。因此, 必須有一個與之匹配的驅(qū)動電路來驅(qū)動步進電機。</p><p> CI-53002步進電機模塊包含四相步進電機與功率驅(qū)動電路。功率驅(qū)動電路(FT5754)內(nèi)含四組達林頓晶體管當作電子開關(guān),分別來控制步進電機四組線圈A、B、/A、/B的通電與
22、否,這樣就構(gòu)成了步進電機的功率驅(qū)動電路。</p><p> 圖2 步進電機的功率驅(qū)動電路</p><p> 3.2 步進電機控制電路:</p><p> 實現(xiàn)步進電機通電換相控制也就是脈沖分配的方法有兩種:軟件法和硬件法,這里只介紹設計中采用的軟件法。軟件法是完全用軟件的方式,按照給定的通電換相順序,通過DSP的PWM輸出口向驅(qū)動電路發(fā)出控制脈沖。實驗電路圖2
23、所示就是用軟件法控制四相步進電機的硬件接口圖。分別用DSP的PWM1~PWM4,向四相步進電機各相傳送控制信號。</p><p> 圖3 步進電機的控制電路</p><p> 四 步進電機的DSP控制方法:</p><p> TDS2407EA是一塊以TMS320LF2407ADSP為核心的DSP評估板,通過擴展口的PWM波,可以很方便的對步進電機進行控制。&
24、lt;/p><p> 步進電機的驅(qū)動電路是根據(jù)控制信號工作的。在步進電機的DSP控制中,控制信號是由DSP產(chǎn)生的。以最簡單的四相單四拍為例,四相單四拍工作方式通電換相的正序為A-B-C-D,共有4個通電狀態(tài)。</p><p> 利用TMS320LF2407A DSP的EVA事件管理器,設計定時器T1的周期值為步進脈沖的周期,即T1PR=1/?。當周期中斷時,在中斷處理子程序中,通過修改比較
25、方式控制寄存器ACTRA中的相應位為“強制高”或“強制低”的方法,來控制某相通斷電,實現(xiàn)換相。修改ACTRA的具體方法是:“強制高”代表通電;“強制低”代表斷電,則可用4個控制字來對應這4個通電狀態(tài)。這4個控制字見表1。</p><p> 表1 四相四拍工作方式的控制字</p><p> 在T1周期中斷處理子程序中,通過查表的方法根據(jù)當前狀態(tài)和轉(zhuǎn)向查得控制字,將這個控制字送入比較方式
26、控制寄存器,就可以實現(xiàn)換相。每送一個控制字,就完成一“拍”,步進電機就轉(zhuǎn)過一個步距角。依次完成4次換相,步進電機就會正向轉(zhuǎn)動一個齒距角。如果按照控制字的反序查表,就會實現(xiàn)步進電機的反轉(zhuǎn)。</p><p> 五 程序設計及其流程圖:</p><p><b> 六 實驗現(xiàn)象:</b></p><p> 圖6 運轉(zhuǎn)模式功能仿真圖7 正反轉(zhuǎn)控
27、制功能仿真</p><p><b> 總 結(jié)</b></p><p> 此次的課程設計,我學到了很多知識。首先很感謝這次辛勤輔導我們的zz老師,在一周的時間中對我們進行了具體而深刻的教育。對于我不懂的問題及程序中的不足給出了正確的指導和良好的建議。同時感謝學校為我們提供了這么一個學習機會和良好的實習環(huán)境。另外本次課程設計過程中查閱了大量的圖書資料,感謝我們學
28、校圖書館管理人員的熱情服務??傊芨兄x本次的指導老師,正由于他們無私的幫助和指導才讓我的設計任務完成得很順利,在此,對學校,老師們表示由衷的感謝!</p><p> 步進電機實驗對于我計算機專業(yè)的學生電子電路基礎比較差,在設計中表現(xiàn)出來了,但是也表明了我要加倍的努力去學習電子電路方面的基礎知識。光靠這次的設計對能力提高不了多少,而是要記住這次設計經(jīng)驗,來更好地做好下次的設計,也就是說積累經(jīng)驗,這對將來走上社會有
29、很重要的作用。</p><p><b> 參考文獻</b></p><p> 1 劉和平. DSP原理及電機控制應用 .北京: 北京航空航天大學出版社, 2006.10</p><p> 2 唐介 .電機與拖動.高等教育出版社, 2003.7</p><p> 3 王海生. 微型計算機控制技術(shù). 北京: 清華大學
30、出版社, 2007.4</p><p> 4 鄭紅.DSP應用系統(tǒng)設計實踐.北京航空航天大學出版社,2006.5</p><p> 5 扈宏杰.DSP控制系統(tǒng)的實現(xiàn)與設計.機械工業(yè)出版社,2004.7</p><p><b> 附件 程序源代碼</b></p><p> 1.主程序 main.c</p>
31、;<p> #include "LF2407REGS.h"</p><p> #include "IO.h"</p><p> #define period 0x8000</p><p> unsigned char table[4]={0x0003,0x000c,0x0030,0x00c0};</
32、p><p> volatile unsigned int key=0;</p><p> volatile unsigned int count=0;</p><p> volatile unsigned int i=0;</p><p> volatile unsigned int speed=1;</p><
33、;p> volatile unsigned int nLed=0;</p><p> void initsys() //系統(tǒng)初始化</p><p><b> {</b></p><p> asm(" setc INTM");
34、 // 禁止所有中斷</p><p> asm(" setc SXM"); // 抑制符號位擴展</p><p> asm(" clrc OVM"); // 累加器結(jié)果正常溢出</p><p> asm(" clrc CNF");
35、 // B0被配置為數(shù)據(jù)存儲空間</p><p> *SCSR1 = 0x83fe ; // 2倍頻,30MHz</p><p> *EVAIMRA = *EVAIMRA|0x0080;</p><p> *EVAIFRA = 0xffff;</p><p> *W
36、DCR = 0x0e8 ; // 不能使用看門狗</p><p> *IMR = 0x0002 ; // 打開中斷2</p><p> *IFR = 0xFFFF ; // 清除所有的中斷標志,寫1清0</p><p> *WSGR = 0x0000 ;
37、 // 禁止所有等待狀態(tài)</p><p><b> }</b></p><p> void PWMinit()</p><p><b> {</b></p><p> *MCRA = 0;</p><p> *MCRA = *MCRA|0x
38、03c0; //IOPA6(PWM1),IOPA7(PWM2),IOPB0(PWM3),</p><p> //IOPB1(PWM4)配置為基本功能方式</p><p> *ACTRA = 0xAAAA;</p><p> *PBDATDIR = 0xfff8; </p><p> *DBTCONA= 0x0000
39、; //不使能死區(qū)控制</p><p> *CMPR1 = period/2; </p><p> *CMPR2 = period/2;</p><p> *T1PER = period; //設置定時器1的周期寄存器</p><p> *COMCONA= 0x8200;
40、 //使能比較操作</p><p> *GPTCONA = 0x0001;</p><p> *T1CON = 0x0E00; // 定時器1為連續(xù)增計數(shù)模式</p><p> *T1CNT = 0; // 定時器1計數(shù)清零</p><p><b>
41、 }</b></p><p> void main(void)</p><p><b> {</b></p><p> initsys(); //系統(tǒng)初始化</p><p> OUTMAC( _LED, nLed); //
42、I/O輸出端口初始化</p><p> PWMinit(); // PWM 初始化</p><p> asm(" clrc INTM"); //打開中斷</p><p> *T1CON = *T1CON|0x40; //啟動定時器1
43、</p><p><b> while(1);</b></p><p><b> }</b></p><p> void interrupt nothing(void)</p><p><b> {</b></p><p><b>
44、return;</b></p><p><b> }</b></p><p> void interrupt T1PER_ISR(void)</p><p><b> {</b></p><p> if(*PIVR==0x0027)</p><p><
45、;b> {</b></p><p> INMAC( _DIP, key); //讀入開關(guān)數(shù)值</p><p> speed=(key & 7)+1;</p><p> if(key>7) //正轉(zhuǎn)</p><p><
46、b> {</b></p><p><b> i++;</b></p><p> if(i>(4*speed-1)) i=0;</p><p><b> }</b></p><p> ese //反轉(zhuǎn)<
47、/p><p><b> {</b></p><p><b> i--;</b></p><p> if(i>250) i=4*speed-1;</p><p><b> }</b></p><p> count=i/speed;
48、 //確定轉(zhuǎn)速</p><p> *ACTRA = table[count]; //輸出脈沖</p><p> nLed = 15/speed; //15為定時器T1在1s中的中斷次數(shù)</p><p> nLed &= 0x000f;
49、 //LED顯示脈沖頻率</p><p> OUTMAC( _LED, count);</p><p><b> }</b></p><p> *EVAIFRA = *EVAIFRA|0x0080; //清中斷標志并返回</p><p><b> }</b></p&g
50、t;<p> 2. 頭文件 IO.h</p><p> #define _DIP 0008h</p><p> #define _LED 000ch</p><p> #define STR(x) #x</p><p> #define OUTMAC(address,data) </
51、p><p> asm(" LDPK _"STR(data)); </p><p> asm(" OUT _"STR(data) "," STR(address))</p><p> #define INMAC(address,data) </p>
52、<p> asm(" LDPK _"STR(data)); </p><p> asm(" IN _"STR(data) "," STR(address))</p><p> 3. 中斷向量表文件vectors.asm </p><p&
53、gt; .title "vectors.asm"</p><p> .ref _c_int0</p><p> .ref _nothing </p><p> .ref _T1PER_ISR</p><p> .sect ".vectors"</p><p>
54、; reset: B _c_int0 ; 00</p><p> int1: B _nothing ; 02</p><p> int2: B _T1PER_ISR ; 04</p><p> int3:B _nothing ; 06</p><p>
55、; int4:B _nothing ; 08</p><p> int5:B _nothing ; 0A</p><p> int6:B _nothing ; 0C</p><p><b> .end</b></p><p> 4. 命令文件 mycm
56、d.cmd</p><p> -c /* ROM自動初始化模型 */</p><p> -m main.map /* 創(chuàng)建映射文件 */</p><p> /* 即主程序的 文件名.map */</p><p> -o main.out /* 輸出文件
57、名 */</p><p> -l rts2xx.lib /* 運行支持庫 */</p><p> - stack 40</p><p> /* 特殊內(nèi)存Memory的配置 */</p><p><b> MEMORY</b></p><
58、p><b> {</b></p><p> /* 規(guī)定程序存儲器 */</p><p> PAGE 0: VECTS: origin = 0000h, length = 0040h /* 程序復位 */</p><p> PVECS: origin = 0040h, length = 0080h
59、 /* 外圍模塊中斷向量 */</p><p> PROG : origin = 2000h, length = 7F40h /* 在片 Flash */</p><p> /* 規(guī)定數(shù)據(jù)存儲器 */</p><p> PAGE 1: BAREA: origin = 0200h, length = 0200h /* B
60、0 和 B1 塊 */</p><p> B2: origin = 0060h, length = 0020h /* B2 塊 */</p><p> SARAM: origin = 0800h, length = 0800h /* SARAM 塊 */</p><p> EXT: origin
61、 = 8000h, length = 8000h /* 外部存儲器 */</p><p><b> }</b></p><p><b> SECTIONS</b></p><p><b> {</b></p><p> .vectors : {
62、} > VECTS PAGE 0 /* 中斷向量表 */</p><p> .pvecs : { } > PVECS PAGE 0 /* 外圍中斷向量表 */</p><p> .text : { } > PROGPAGE 0 /* 可執(zhí)行 代碼 和 浮點 變量
63、 */</p><p> .cinit : { } > PROGPAGE 0 /* 已初始化的全局變量和靜態(tài)變量*/</p><p> .switch : { } > PROGPAGE 0 /* 大型的 switch 語句的跳轉(zhuǎn)表 */</p><p> .const : { } > BARE
64、APAGE 1 /* 已初始化的字符串常量、 */</p><p> /*全局變量和靜態(tài)變量 */</p><p> .bss : { } > SARAMPAGE 1 /* 未初始化的全局變量和靜態(tài)變量 */</p><p> .stack : { } > SARAM PAGE 1 /* 定義軟件堆
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)字信號處理(dsp)課程設計報告
- dsp數(shù)字信號處理課程設計報告8
- dsp數(shù)字信號處理課程設計報告-- ad接口設計
- 數(shù)字信號課程設計--數(shù)字信號處理
- 數(shù)字信號處理課程設計報告
- 數(shù)字信號處理課程設計報告
- 數(shù)字信號處理課程設計報告
- dsp數(shù)字信號處理課程設計報告-- 語音壓縮與回放
- 基于dsp_builder數(shù)字信號處理課程設計
- 數(shù)字信號處理課程設計報告 (2)
- 數(shù)字信號處理課程設計報告 (3)
- 數(shù)字信號處理課程設計項目報告
- 數(shù)字信號處理課程設計
- 數(shù)字信號處理課程設計
- 數(shù)字信號處理課程設計
- 數(shù)字信號處理課程設計
- 數(shù)字信號處理課程設計
- 數(shù)字信號處理課程設計
- 數(shù)字信號處理課程設計
- 數(shù)字信號課程設計報告
評論
0/150
提交評論