基于瑞薩M16C的步進電機精確控制_第1頁
基于瑞薩M16C的步進電機精確控制_第2頁
基于瑞薩M16C的步進電機精確控制_第3頁
基于瑞薩M16C的步進電機精確控制_第4頁
基于瑞薩M16C的步進電機精確控制_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、基于瑞薩m16c的步進電機精確控制摘 要本論文題目是在windows xp為操作系統(tǒng)的開發(fā)平臺下,使用瑞薩的hew編輯器,瑞薩的nc30編譯器和瑞薩的kd30調(diào)試器,編寫好控制系統(tǒng)代碼,使用瑞薩的m16c系列單片機芯片,來實現(xiàn)sihongmotor16h38-0806a二相六線步進電機的基本驅(qū)動,鍵盤的基本控制,lcd顯示器的基本顯示。并運用l298n驅(qū)動電路作為接受m16c系列單片機的電脈沖輸出信號從而滿足二相六線步進電機的基本驅(qū)動要求并通過lcd顯示器準(zhǔn)確的描述其基本轉(zhuǎn)動內(nèi)容。通過m16c系列單片機的芯片自帶定時器的pwm輸出來構(gòu)成對二相六線步進電機所需要的時序脈沖的輸入,進而實現(xiàn)對二相六

2、線步進電機的精確和細(xì)分的控制。本文主要論述的是二相六線步進電機應(yīng)用的背景知識和背景技術(shù)外,另外,還對二相六線步進電機的工作原理進行描述,然后以瑞薩的m16c系列單片機的芯片為主的控制器提出了整個系統(tǒng)的硬件設(shè)計方案及如何利用瑞薩的m16c系列單片機的芯片來控制二相六線步進電機的運行。關(guān)鍵詞:步進電機,m16c單片機,pwm,細(xì)分,精確控制precise control for stepper motor based on renesas m16cabstractthe topic of this paper is in the windows xp operating system develo

3、pment platform, the use of renesas hew editor, renesas nc30 compiler and kd30 debugger, to write a good control system code, the use of renesas m16c series single chip, to achieve sihongmotor16h38-0806a phase six wire stepper motor basic drive, keyboard control, lcd basic display display. and the us

4、e of l298n drive circuit as to accept the m16c series mcu electrical pulse output signal to meet two phase six wire stepper motor basic drive requirements and through the lcd display accurate description of its basic contents of rotation. through the m16c series mcu chip built-in timer pwm output of

5、 two phase six wire stepper motor need timing pulse input, and then the two phase six wire stepper motor subdivision control precision and.this article main elaboration is phase six wire stepper motor application background and technical background, in addition, also on two phase six wire stepper mo

6、tor principle are described, and then to renesas m16c series single chip based controller is presented. the system hardware design and how to use renesas m16c series mcu the chip to control the phase six wire stepper motor running.key words:stepper motor,renesas single-chip m16c,pwm,subdivision,prec

7、ise control目 錄第一章 緒論11.1 引言11.2 步進電機的分類11.3 步進電機應(yīng)用背景21.4 國內(nèi)外研究情況2第二章 技術(shù)概述32.1 單片機控制步進電機驅(qū)動原理32.1.1 步進電機驅(qū)動原理32.1.2 步進電機的細(xì)分原理42.2 瑞薩m16c芯片及其開發(fā)板的介紹52.3 nc30編譯器及kd30調(diào)試器使用技術(shù)說明62.3.1 nc30的編譯過程62.3.2 kd30軟件調(diào)試器的使用方法6第三章 步進電機控制系統(tǒng)的硬件設(shè)計83.1 控制系統(tǒng)總體構(gòu)成83.2 控制系統(tǒng)的電路圖93.2.1 瑞薩m16c芯片平面圖93.2.2 lcd電路圖103.2.3 按鍵的電路圖103.2

8、.4 細(xì)分控制按鍵電路圖113.2.5 瑞薩m16c單片機+二相六線步進電機+l298n的電路設(shè)計圖113.3 系統(tǒng)實現(xiàn)平臺及工具12第四章 步進電機控制系統(tǒng)的軟件設(shè)計134.1 步進電機控制系統(tǒng)的程序流程圖134.2 系統(tǒng)功能模塊層次劃分圖144.3 步進電機控制系統(tǒng)的操作序列圖和狀態(tài)遷移圖及示意圖154.4 步進電機的主要文件構(gòu)成表194.5 控制系統(tǒng)的功能檢測20第五章 結(jié)論21參考文獻22致謝23附 錄24第一章 緒論1.1 引言 歷史證明了,一個發(fā)展國家的制造業(yè)水平在相當(dāng)大的程度上決定了該國家的綜合實力,國家的發(fā)展也在相當(dāng)大的程度上依考于其先進的制造業(yè)水平,所以,絕大多數(shù)的發(fā)展國家都

9、相當(dāng)重視并發(fā)展制造業(yè),在二戰(zhàn)之后,計算機控制技術(shù)、微電子技術(shù)、信息和自動化技術(shù)有了疾快的發(fā)展,并在制造業(yè)中得到了越來越廣泛的應(yīng)用,擁有很多特點的步進電機就是一個極其重要角色。   步進電機又稱脈沖電機或稱階躍電機,是將電脈沖信號轉(zhuǎn)變?yōu)榫€位移或角位移的開環(huán)控制元件,它不能直接接到交流電源上。在不超載的情況下,步進電機的轉(zhuǎn)速,停止的位置只取決與電脈沖信號的脈沖數(shù)和頻率,而不會受其負(fù)載變化而變化, 其應(yīng)用發(fā)展己有八十多年的歷史。可以說步進電機是純粹的數(shù)字在控制的,步進電機驅(qū)動器通過控制電脈沖,控制步進電機各相繞組的導(dǎo)通或者是截止,從而使步進電機產(chǎn)生步進轉(zhuǎn)動。步進電機可以在很寬廣的

10、頻率范圍內(nèi)通過改變電脈沖頻率來實現(xiàn)其調(diào)速、快速起停、正反轉(zhuǎn)控制等,這也是步進電機最突出的特點。正是由于步進電機具有這么突出的特點,所以才能成為了機電一體化的關(guān)鍵產(chǎn)品之一,在廣泛應(yīng)用的各種自動化控制系統(tǒng)中。隨著微電子及其計算機技術(shù)的快速發(fā)展,步進電機的需求量與日俱增,與昔日不能相提并論,在各個國家的國民經(jīng)濟領(lǐng)域都有很廣泛的應(yīng)用,所以本課題的研究是非常有必要的。1.2 步進電機的分類步進電機種類很多,但,主要可以分為機械式,電磁式,組合式3種類。如果按其結(jié)構(gòu)分,可以分為反應(yīng)式(vr),永磁式(pm)和混合式(hb)3種類。(1)variable reluctant (反應(yīng)式步進電機)一般為三相的步

11、進電機,步進角為1.5度。其步進電機的轉(zhuǎn)子中沒有繞組,是由軟磁材料構(gòu)成的。成本低,結(jié)構(gòu)簡單,步距角也可以很小。但只有單段式的步進電機和多段式的步進電機,動態(tài)性能比較差。(2)permanent magnet (永磁式步進電機) 一般為兩相的步進電機,體積小,步進角一般為7.5度或者15度。其步進電機的轉(zhuǎn)子本身就是個磁源,是永磁材料構(gòu)成的。并定子極數(shù)和它的極數(shù)相等,所以一般的步距角相對的比較大。但,它的動態(tài)性能也相對的較好,消耗的功率也相對的比反應(yīng)式的要低。(3)hybri(混合式步進電機)其結(jié)構(gòu)上的轉(zhuǎn)子加有永磁體,這是提供軟磁材料的工作點。它是綜合了反應(yīng)式和永磁式兩種的特點。因此這種步進電機的

12、工作效率高,使用電流小,并具有較強的反電勢,在其轉(zhuǎn)動的過程中,比其他的平穩(wěn)且低噪聲。它一般分為兩相或者無相:兩相步進電機一般為1.8度,無相步進電機一般為0.72度。1.3 步進電機應(yīng)用背景步進電機是將其電脈沖信號轉(zhuǎn)變?yōu)榫€位移或角位移的開環(huán)控制元件。在其不超載的情況下,步進電機的轉(zhuǎn)速,停止的位置只取決于電脈沖信號的脈沖數(shù)和頻率,而不會受其負(fù)載變化而隨之變化的,這也使得其在速度、位置等方面更加讓人感覺到很簡單。步進電機的輸入脈沖數(shù)與輸出軸的角位移量成正比,不受其環(huán)境溫度及電壓的影響,沒有累積的定位誤差,所以控制輸入的數(shù)字脈沖數(shù)就可以實現(xiàn)步進電機的精確定位;而步進電機的輸入的脈沖頻率與輸出軸的轉(zhuǎn)速

13、成正比,所以控制輸入的脈沖頻率就能夠準(zhǔn)確的控制著步進電機的轉(zhuǎn)速,就可以實現(xiàn)在很寬廣的范圍內(nèi)精確調(diào)其轉(zhuǎn)速。并且由于它的體積小,控制方便等的特點,所以在自動生產(chǎn)線,自動化儀表,打印機,數(shù)控系統(tǒng),繪圖機,機器人及計算機外圍設(shè)備中得到非常廣泛應(yīng)用1。1.4 國內(nèi)外研究情況國內(nèi)外研究現(xiàn)狀與發(fā)展趨勢:電機產(chǎn)業(yè)經(jīng)過多年的發(fā)展,取得了長足進步。并且以每年一定的速度遞增,已成為國民經(jīng)濟和國防建設(shè)中不可缺少的基礎(chǔ)性工業(yè)。國民經(jīng)濟與科學(xué)技術(shù)的發(fā)展,世界電機制造基地正在快速地向中國轉(zhuǎn)移,為電機產(chǎn)業(yè)提供了無限的發(fā)展空間。國內(nèi):過去在浙江,江蘇,北京,四川等地都在生產(chǎn)且使用大力距步步進電機進行機床控制,資金雄厚的公司采用

14、了交流電動機進行機床控制。設(shè)施還是比較的落后。國外:基本不再使用大力距步步進電機,因為成本比較高,多數(shù)用直流電動機或者是空心轉(zhuǎn)杯電機。第二章 技術(shù)概述2.1 單片機控制步進電機驅(qū)動原理2.1.1 步進電機驅(qū)動原理如圖2-1-1和圖2-1-2所示,這是一個二相六線的步進電機,其在結(jié)構(gòu)上也是由轉(zhuǎn)子和定子組成的,當(dāng)脈沖電流流過其定子繞組時,在其磁拉力的作用下,帶動轉(zhuǎn)子旋轉(zhuǎn)了一個角度,使其磁極方向改變,且,又帶動轉(zhuǎn)子旋轉(zhuǎn)了一個角度。本論文以二相六線步進電機為例,若按abcda規(guī)律循環(huán)順序通電,這種控制方式稱為二相四拍。若按aabbbcccdddaa規(guī)律循環(huán)順序通電,這種控制方式稱為二相八拍。無論采取哪

15、一種方式,步進電機的轉(zhuǎn)角恒為一個齒距角。電機轉(zhuǎn)子的角位移用a表示,則a=360度,四拍的控制方式的步距角為a=360度/(50*4)=1.8度,俗稱為整步(圖2-1-3)。八拍的控制方式的步距角為a=360度/(50*8)=0.9度,俗稱為半步(圖2-1-4)。運用單片機的輸出功能,通過編程實現(xiàn)輸出四個信號分別給步進電機的四個端口a+(blk)、a-(grn)、b+(red)、b-(blu),通過改變步進電機的通電循環(huán)順序來改變電機的轉(zhuǎn)動方向5。圖2-1-1 兩相步進電機結(jié)構(gòu)的示意圖圖2-1-2 兩相步進電機繞線的示意圖圖2-1-3 整步狀態(tài)的電流方波和磁場矢量的示意圖圖2-1-4 半步狀態(tài)的

16、電流方波和磁場矢量的示意圖2.1.2 步進電機的細(xì)分原理電機的細(xì)分方法有諸多種,其中,pwm細(xì)分技術(shù)是目前較為常用的細(xì)分方式,其實質(zhì)是通過在其電機線圈中產(chǎn)生階梯型的電流,改善其電機性能并達到細(xì)分的目的3。也就是通過對步進電機勵磁繞組中的電流控制,使其內(nèi)部形成均勻的圓形旋轉(zhuǎn)磁場,并讓其電流范圍能在零到最大值之間有多個穩(wěn)定的電流值,磁場矢量值和方向也就會存在多個穩(wěn)定的值,從而實現(xiàn)步進電機步距角的細(xì)分。在正常的情況下,合成的磁場矢量值就決定了其步進電機的旋轉(zhuǎn)力矩的值,所以,相鄰的磁場矢量之間的夾角值也就決定了步距角的值。因此,要想進行對步進電機的恒力矩進行均勻細(xì)分控制,就必須得合理的控制步進電機繞組

17、線中的電流 7。pwm(pulse width modulation)控制技術(shù)-脈沖寬度調(diào)制方式,通過對一系列的脈沖寬度實行控制,來等效獲得自己所需要的波形,其技術(shù)在逆變電路中運用的非常的廣泛。其特點是從mcu到被控制系統(tǒng)的信號都是數(shù)字形式的,所以,不需要進行數(shù)模轉(zhuǎn)換。占空比-保持高電平的時間與其pmw的時鐘周期之間的比,只要帶寬足夠?qū)?,無論什么模擬值都可以用pmw實現(xiàn)編碼。這也就會增強了對噪聲抵抗的能力。使用自帶的pwm模塊的單片機通過配置硬件資源可以驅(qū)動步進電機,根據(jù)其方波所產(chǎn)生的占空比不同的方波,可以獲得類似與正弦波的階梯型狀態(tài)的電流,從而獲得較高的細(xì)分精度。適合運用在精確系數(shù)高的精準(zhǔn)控

18、制儀器上。圖2-1-5步進電機細(xì)分電流矢量的示意圖2.2 瑞薩m16c芯片及其開發(fā)板的介紹本論文所采用的瑞薩芯片是m16c/62p群中的m16c -m30626fhpfp mcu(圖2-2-1), 圖2-2-1 瑞薩m16c芯片產(chǎn)品型號,存儲器容量及封裝的示意圖該mcu是采用了80引腳的qfp塑封。具有高效率指令,高性能指令,1m字節(jié)的地址空間,快速執(zhí)行指令的能力同時還有高速dma控制器和乘法器,具備高速算術(shù)/邏輯運算處理的oa,通信設(shè)備及工業(yè)設(shè)備的控制8。其中,cpu有基本指令數(shù)為91條,最短指令執(zhí)行時間為41.7ns或100ns,運行模式為單芯片(模式)或者存儲器擴展(模式)或者微處理器(

19、模式),存儲器容量為1m字節(jié),可以通過擴展到4m字節(jié)。外圍功能有端口為114個(113個為輸入,1個為輸出),多功能定時器為定時器a(16為*5個通道)、定時器b(16為*5個通道)。(1)定時器am16c/62p(80引腳版)中的定時器a沒有定時器a1的ta1in引腳和ta1out引腳、定時器a2的ta2in引腳和ta2out引腳。其模式可以分為定時器(模式):對內(nèi)部計數(shù)源進行計數(shù)的模式、事件計數(shù)器(模式):對來自外部的脈沖、其它定時器的溢出或者其它定時器的下溢進行計數(shù)的模式、單次觸發(fā)定時器(模式):在計數(shù)值變?yōu)椤?000h”之前,只進行1次脈沖輸出的模式、脈寬調(diào)制(pwm)(模式):連續(xù)輸

20、出任意寬度的脈沖的模式。(2)定時器b m16c/62p(80引腳版)中的定時器b沒有定時器b1的tb1in引腳。其模式可以分為定時器(模式):對內(nèi)部計數(shù)源進行計數(shù)的模式、事件計數(shù)器(模式):對來自外部的脈沖、其它定時器的溢出或者其它定時器的下溢.進行計數(shù)的模式、脈沖周期測定/脈寬測定(模式):測定外部脈沖周期或者脈寬的模式,a/d轉(zhuǎn)換器為10位a/d轉(zhuǎn)換器(1個電路,26個通道)ad轉(zhuǎn)換的結(jié)果從a/d寄存器獲取10。,中斷為內(nèi)部(中斷)29個、外部(中斷)8個、軟件(中斷)4個、中斷優(yōu)先級有7級。小鍵盤、sw1-sw10控制鍵等。 圖2-2-2 瑞薩m16c芯片結(jié)構(gòu)示意圖2.3 nc30編譯

21、器及kd30調(diào)試器使用技術(shù)說明2.3.1 nc30的編譯過程(1) 編寫c語言源文件,匯編語言源文件,可再定位的目標(biāo)文件程序。(2) 對啟動程序ncrt0.a30進行匯編,對c語言源程序xxx.c進行編譯和匯編,連接可再定位的目標(biāo)文件ncrt0.r30和xxx.r30(3) 在命令提示符下生成目標(biāo)文件(xxx.x30)。2.3.2 kd30軟件調(diào)試器的使用方法(1) 裝載編譯過的目標(biāo)程序,在file中的load module下,選著指定的xxx.x30文件并裝入文件。(2) 執(zhí)行裝入的文件程序,并點擊運行按鈕,運行其目標(biāo)程序。 (3) 執(zhí)行裝入的文件程序到指定行,在代碼窗口中的brk列上設(shè)置我

22、們所需的斷點,并執(zhí)行其程序。(4) 打開含有主函數(shù)(main函數(shù))的源文件并開始調(diào)試目標(biāo)程序。(5) 切換調(diào)試程序顯示至匯編語言和c語言及混合顯示。(6) 以行為基本單位,確認(rèn)調(diào)試程序的流程。(7) 改變或者查看其變量內(nèi)容,通過basic打開c語言查看窗口,點擊添加按鈕添加調(diào)試變量,查看調(diào)試變量內(nèi)容。(8)將數(shù)組名賦給指針變量,查看或者改變指針指向的數(shù)組。(9) 查看或者改變其指定地址內(nèi)存的內(nèi)容,通過basic window打開寄存器窗口,點擊地址列,指定調(diào)試開始地址,查看內(nèi)存內(nèi)容。(10) 查看或者改變更多內(nèi)存的內(nèi)容,通過basic window打開跳轉(zhuǎn)窗口。其使用方法與寄存器窗口相類似。(

23、11) 查看或者改變其寄存器的內(nèi)容。第三章 步進電機控制系統(tǒng)的硬件設(shè)計3.1 控制系統(tǒng)總體構(gòu)成如圖3-1-1所示的是二相六線的步進電機控制系統(tǒng)的總體構(gòu)成圖,從圖可以看出控制鍵盤,控制指令(程序模塊),脈沖分配器(l298n驅(qū)動)和二相六線的步進電機之間控制的相互關(guān)系。即用戶可以通過控制鍵盤來控制瑞薩m16c單片機的相應(yīng)控制模塊,而其控制模塊將會把用戶的所需要的要求轉(zhuǎn)變?yōu)閷Χ嗔€的步進電機的控制信號,瑞薩m16c單片機對二相六線的步進電機的控制信號會經(jīng)過l298n驅(qū)動電路的轉(zhuǎn)化之后,再將其信號輸出給二相六線的步進電機。同時瑞薩m16c單片機控制模塊也將對二相六線的步進電機的運行信息同步到lcd

24、顯示器上顯示出來。圖3-1-1 控制系統(tǒng)總體構(gòu)成圖3.2 控制系統(tǒng)的電路設(shè)計3.2.1 瑞薩m16c芯片平面圖3-2-1 瑞薩m16c芯片平面的示意圖圖3-2-1所示的是本論文題目所用的瑞薩m16c芯片平面圖,從圖中可以看出共有100引腳。3.2.2 lcd電路圖圖3-2-2 lcd電路的示意圖圖3-2-2所示的是本論文題目所用的瑞薩m16c單片機開發(fā)板上的lcd電路圖,從圖中可以看出p10端口及p0端口是控制lcd顯示的數(shù)據(jù)控制端口。3.2.3 按鍵的電路圖圖3-2-3 步進電機輸入步數(shù)的控制按鈕電路的示意圖圖3-2-3所示的是本論文題目所用的瑞薩m16c單片機開發(fā)板上為二相六線的步進電機輸

25、入步數(shù)的控制按鈕電路圖,從圖中可以看出p1端口是輸入步數(shù)的控制按鈕的數(shù)據(jù)控制端口。3.2.4 細(xì)分控制按鍵電路圖圖3-2-4 步進電機細(xì)分控制按鈕電路圖的示意圖圖3-2-4所示的是本論文題目所用的瑞薩m16c單片機的開發(fā)板上為二相六線的步進電機細(xì)分控制的按鈕電路圖,從圖中可以看出p3端口是細(xì)分控制按鈕的數(shù)據(jù)控制端口。3.2.5 瑞薩m16c單片機+二相六線步進電機+l298n的電路設(shè)計圖3-3-5 瑞薩單片機+步進電機+l298n的電路設(shè)計圖的示意圖 如3-3-5 瑞薩單片機+步進電機+l298n的電路設(shè)計圖所示的是二相六線的步進電機的信號輸出端口即p7_2,p7_4,p7_6,p8_0,它們

26、各分別是瑞薩m16c單片機芯片上的四個定時器,即定時器a1,定時器a2,定時器a3,定時器a4的pwm脈沖輸出的引腳,它們輸出給予驅(qū)動二相六線的步進電機所需要的驅(qū)動信號,經(jīng)過l298n驅(qū)動電路的轉(zhuǎn)化之后,將會把其直接輸出給二相六線的步進電機。3.3 系統(tǒng)實現(xiàn)平臺及工具步進電機控制系統(tǒng)的構(gòu)成由瑞薩m16c開發(fā)板,l298n驅(qū)動電路,二相六線步進電機及(+)12v電源。運用匯編語言及c語言通過kd30,nc30及hew開發(fā)工具在windows xp操作系統(tǒng)下實現(xiàn)編寫并將其順利完成。第四章 步進電機控制系統(tǒng)的軟件設(shè)計4.1 步進電機控制系統(tǒng)的程序流設(shè)計圖4-1-1 步進電機控制系統(tǒng)的程序流程圖的示意

27、圖此二相六線步進電機的控制系統(tǒng)實現(xiàn)了以下功能:鍵盤功能鍵實現(xiàn)對sihongmotor16h38-0806a二相六線步進電機運行方式的基本控制,數(shù)字鍵實現(xiàn)對sihongmotor16h38-0806a二相六線步進電機參數(shù)的基本設(shè)置;顯示器能夠顯示sihongmotor16h38-0806a二相六線步進電機運行的步數(shù);通過鍵盤輸入預(yù)定步數(shù),實現(xiàn)瑞薩m16c單片機對sihongmotor16h38-0806a二相六線步進電機帶動負(fù)載進行預(yù)定工作的控制。本系統(tǒng)采用加速定位控制,避免了啟動速度過大而使sihongmotor16h38-0806a二相六線步進電機不能正常啟動。4.2 系統(tǒng)功能模塊層次劃分設(shè)

28、計 圖4-2-1 系統(tǒng)功能模塊結(jié)構(gòu)層次劃分的示意圖圖4-2-1所示的是系統(tǒng)功能模塊結(jié)構(gòu)層次劃分圖,從圖中可以看出步進電機的控制系統(tǒng)分為兩大模塊,即定時器中斷模塊和步進電機控制系統(tǒng)的主模塊。其中,定時器中斷模塊是用來產(chǎn)生定時掃描按鍵和定時運行系統(tǒng)的功能;步進電機控制系統(tǒng)的模塊主要實現(xiàn)的是步進電機控制系統(tǒng)的兩種模式,即普通驅(qū)動模式和精確控制模式以及其按鍵檢測功能。圖4-2-2 定時器中斷圖的示意圖定時器中斷服務(wù):步進電機控制系統(tǒng)一開啟就開始初始化,其中就包括定時器的初始化。定時器在每隔一定時間就會發(fā)生一次中斷請求用于其檢測是否有按下按鍵及其系統(tǒng)的運行情況。通過定義中斷標(biāo)志位來判定是否發(fā)生中斷請求。

29、中斷的動作:中止主程序,將控制轉(zhuǎn)移到中斷程序中;寄存器的值的保存在堆棧區(qū)域中;中斷的處理;恢復(fù)被保存的寄存器的值;從中斷程序返回到主程序中。4.3 步進電機控制系統(tǒng)的操作序列圖和狀態(tài)遷移圖及示意圖圖4-3-1 控制系統(tǒng)的普通驅(qū)動模式操作序列圖的示意圖圖4-3-2 控制系統(tǒng)的細(xì)分模式控制狀態(tài)遷移圖的示意圖圖4-3-1和圖4-3-2所示的是當(dāng)步進電機控制系統(tǒng)為普通驅(qū)動模式時,用戶,二相六線步進電機及步進電機控制系統(tǒng)三者之間對于對事件反應(yīng)的時間順序的關(guān)系圖和當(dāng)步進電機控制系統(tǒng)在選擇細(xì)分模式時的操作示意圖。步進電機控制系統(tǒng)會先初始化基本信息,根據(jù)用戶的實際需求可以選擇7種細(xì)分模式,即,將sw8為on即

30、六十四細(xì)分模式;sw8為off且sw7為on即三十二細(xì)分模式;sw8為off,sw7為off,sw6為on即十六細(xì)分模式;sw8為off,sw7為off,sw6為off,sw5為on即八細(xì)分模式;sw8為off,sw7為off,sw6為off,sw5為off,sw4為on即四細(xì)分模式;sw8為off,sw7為off,sw6為off,sw5為off,sw4為off,sw3為on即半步狀態(tài)模式,每次控制鍵的變化,系統(tǒng)都會隨之變化,lcd同步顯示出變化的信息。用戶選擇完細(xì)分模式后,可按sw9(run)鍵,步進電機控制系統(tǒng)啟動,當(dāng)用戶按下sw10(stop)時,步進電機控制系統(tǒng)停止,然后馬上停止步進電

31、機驅(qū)動信號的輸出。圖4-3-3 控制系統(tǒng)的精確控制模式操作序列圖的示意圖圖4-3-3所示的是步進電機控制系統(tǒng)的精確控制模式的操作序列圖,系統(tǒng)先會初始化信息。然后根據(jù)用戶將控制鍵sw2為on,然后將輸入步數(shù)的控制鍵sw3為on。就可以向控制系統(tǒng)輸入實際所需的步數(shù),如果用戶用鍵盤輸入的500的步數(shù)??刂葡到y(tǒng)則會在lcd顯示器上顯示出用戶所輸入的值即500,此時的步進電機控制系統(tǒng)的啟停狀態(tài)為run。當(dāng)500步的電脈沖驅(qū)動信號全部輸出時,控制系統(tǒng)將會停止向步進電機輸出電脈沖驅(qū)動信號,lcd顯示器也將顯示出步進電機控制系統(tǒng)的啟停狀態(tài)為stop。圖4-3-4 控制系統(tǒng)的戶模式切換操作序列圖的示意圖圖4-3

32、-4所示的是步進電機控制系統(tǒng)中用戶的兩種模式的切換的序列圖,步進電機控制系統(tǒng)開始顯示為普通驅(qū)動模式的信息,并在lcd顯示器上顯示出。將控制鍵sw1為on時,切換到精確控制模式,并在lcd顯示器上顯示出精確控制模式的信息。在精確控制模式下,將控制鍵sw3為off(禁止輸入),且將控制鍵sw1為off時,步進電機控制系統(tǒng)便會切換為普通驅(qū)動模式,并在lcd顯示器上顯示處普通驅(qū)動模式的信息。圖4-3-5 控制系統(tǒng)的啟停及速度控制狀態(tài)遷移圖的示意圖圖4-3-5所示的是步進電機控制系統(tǒng)的運行和停止之間的狀態(tài)相互轉(zhuǎn)變的示意圖。按下控制鍵sw9則是從停止?fàn)顟B(tài)遷移到運行狀態(tài)。按下控制鍵sw10則是從運行狀態(tài)遷移

33、到停止?fàn)顟B(tài)。運行速度狀態(tài)遷移事件則是通過旋轉(zhuǎn)控制旋轉(zhuǎn)verf旋鈕引起的a/d變化進而獲得二相六線步進電機的運行速速。圖4-3-6 控制系統(tǒng)的方向控制狀態(tài)遷移圖的示意圖圖4-3-6所示的是步進電機控制系統(tǒng)的二相六線步進電機旋轉(zhuǎn)方向(順勢針和逆時針)的狀態(tài)遷移圖。即將控制鍵sw2為on時,步進電機旋轉(zhuǎn)方向為順時針方向;將控制鍵sw2為off時,步進電機旋轉(zhuǎn)方向為逆時針方向。 圖4-3-7 控制系統(tǒng)的鍵盤示意圖圖4-3-7所示的是控制系統(tǒng)的鍵盤示意圖,鍵盤的輸入操作:鍵盤的字符分布為第一行:abcd, 第二行:efgh,第三行:ijkl,第四行:*mn#.鍵盤的數(shù)字分布為第一行:123#, 第二行:

34、456#,第三行:789#,第四行:#0#.在精準(zhǔn)控制模式下,用鍵盤向系統(tǒng)輸入步數(shù)時,以#號為結(jié)束信號,輸入大于三位數(shù)時,控制系統(tǒng)將自動結(jié)束輸入模塊,并顯示前三位所輸入的步數(shù)。圖4-3-8 控制系統(tǒng)的三次抖動取消算法的示意圖如圖4-3-8所示的是系統(tǒng)中啟動和停止的兩個控制鍵的三次抖動取消算法的示意圖,即將控制鍵sw9和控制鍵sw10的三次抖動取消算法。其主要目的是對控制鍵進行重復(fù)判斷,提高按鍵操作的靈敏度和減少操作所引起的誤差。圖4-3-9 控制系統(tǒng)的lcd顯示畫面設(shè)計示意圖如圖4-3-9所示的是步進電機控制系統(tǒng)的lcd顯示畫面設(shè)計圖。第一行,模式的顯示即步進電機控制系統(tǒng)的普通控制模式和精確控

35、制模式;第二行,步進角的顯示即步進電機在運行時的步進角為1.8度,0.9度,0.45度,0.225度,0.1125度,0.05625度,0.028125度,這里的步進角共有六種角度且會隨著選擇的變化而變化;第三行中,左邊是運行狀態(tài)的顯示:stop表示停止運行, run表示正在運行;右邊是轉(zhuǎn)向的顯示:l_d表示逆時針旋轉(zhuǎn), r_d表示順時針旋轉(zhuǎn);第四行中,步進電機的旋轉(zhuǎn)角速度的顯示,在步進電機運行時旋轉(zhuǎn)速度顯示會隨著a/d轉(zhuǎn)換器的變化而隨之改變。4.4 步進電機的主要文件構(gòu)成表 圖4-4-1 控制系統(tǒng)的主要文件及其功能表的示意圖如圖4-4-1所示的是控制系統(tǒng)的主要文件及其功能和作用,文件主要包括

36、有啟動文件, c語言頭文件,c語言源文件,匯編源文件。4.5 控制系統(tǒng)的功能檢測控制系統(tǒng)功能檢測是對步進電機控制系統(tǒng)運行之后,對所編寫的系統(tǒng)進行檢測和分析。(1)模式切換測試:控制鍵sw1為on,lcd顯示器顯示為精確控制模式;控制鍵sw3和控制鍵sw1都為off,lcd顯示器顯示為普通驅(qū)動模式。 (2)輸入控制測試:控制鍵sw1和控制鍵sw3都為on,鍵盤輸入步數(shù)的值不超過兩位并且以“#”結(jié)束鍵結(jié)束,輸入步數(shù)為三位時,控制系統(tǒng)自動結(jié)束,并且輸入步數(shù)位前三位的值。 (3)轉(zhuǎn)向控制測試:控制鍵sw2為on,二相六線步進電機順時針旋轉(zhuǎn);相反則,逆時針旋轉(zhuǎn)。(4)啟停控制測試:控制鍵sw9為on,二

37、線六線步進電機開始運行;控制鍵sw10為on,二相六線步進電機停止運行。(5)細(xì)分模式控制測試:sw8為on即六十四細(xì)分模式;sw8為off且sw7為on即三十二細(xì)分模式;sw8為off,sw7為off,sw6為on即十六細(xì)分模式;sw8為off,sw7為off,sw6為off,sw5為on即八細(xì)分模式;sw8為off,sw7為off,sw6為off,sw5為off,sw4為on即四細(xì)分模式;sw8為off,sw7為off,sw6為off,sw5為off,sw4為off,sw3為on即半步狀態(tài)模式。sw8為off,sw7為off,sw6為off,sw5為off,sw4為off,sw3為off即

38、整步狀態(tài)模式。 第五章 結(jié)論 通過實現(xiàn)基于瑞薩m16c的步進電機控制系統(tǒng)。有效地控制sihongmotor16h38-0806a二相六線步進電機的運行停止、轉(zhuǎn)向、轉(zhuǎn)速的控制及六十四細(xì)分等七種細(xì)分模式。利用lcd顯示器同步顯示sihongmotor16h38-0806a二相六線步進電機的運行情況。參考文獻1 謝寶昌,任永德. 電機的dsp控制技術(shù)及其應(yīng)用.北京:北京航空航天大學(xué)出版社,2005.2 王鴻鈺.步進電機控制技術(shù)入門.上海:同濟大學(xué)出版社,1990.3 李念強.單片機原理及應(yīng)用.北京:機械工業(yè)出版社,2007.4liyu cao,howard m.schwartz.oscillatio

39、n,instability and control of stepper motors. nonlinear dynamics.canada.springer netherlands,1999,4:383-404.5 沈志勤.電子技術(shù)基礎(chǔ).北京:清華大學(xué)出版社,2006.6 劉國永,陳杰平.單片機控制步進電機系統(tǒng)設(shè)計.安徽技術(shù)師范學(xué)院學(xué)報,2002,04:61-63.7 孫玲,尹福昌.單片機控制步進電機細(xì)分驅(qū)動的實現(xiàn)研究.科技資訊,2007,35:89-90.8 王義軍.單片機原理及應(yīng)用習(xí)題與實驗指導(dǎo)書.北京:中國電力出版社,2006.9 周根林.嵌入式系統(tǒng)原理與應(yīng)用.南京:南京大學(xué)出版社,2

40、006. 10 陸延豐.三菱m16c/62單片機原理和應(yīng)用.北京:北航出版社,1997. 致謝感謝在本論文題目的研究開發(fā)過程中得到趙海東老師的細(xì)心指導(dǎo),感謝在本論文撰寫的過程中得到于慶豐老師細(xì)心指導(dǎo),感謝給予我?guī)椭耐瑢W(xué)。附 錄 a/d旋轉(zhuǎn)按鈕控制程序:/*""funccomment""* function name : caladvdc(void);* function : get a/d result* return : int*""func commentend""*/int caladvdc(void) i

41、nt value_ad,result; /variable definitions value_ad = ad0;/get result from ad register result = 0; /variable definitions result = 0;/variable definitions/*change the value of ad register into a number between 0 and 500*/ if(value_ad & 0x0200)result += 2500; if(value_ad & 0x0100)result += 1250

42、; if(value_ad & 0x0080)result += 625; if(value_ad & 0x0040)result += 313; if(value_ad & 0x0020)result += 156; if(value_ad & 0x0010)result += 78; if(value_ad & 0x0008)result += 39; if(value_ad & 0x0004)result += 20; if(value_ad & 0x0002)result += 10; if(value_ad & 0x00

43、01)result += 5; result += 2; result += 5; result /= 10;return result;/*""func comment""* function name : void calpwmspeed()* function : get the motor 's speed and drive it*""func commentend""*/void calpwmspeed() /*get pwm vlaue from ad result*/ volatile un

44、signed int value; if(run=mtr.state)/if motor's state is run change pwm'value value=(unsigned int)(caladvdc()/500.0)*65535); /get the a/d result if(value<1799) ta0=1799; mtr.speed=2400/flgf; /calculate the motor's speed else ta0=value; mtr.speed=(unsigned int)(2400000*1.8/value/flgf);

45、/calculate the motor's speed motorturn(); /drive the motor for one step鍵盤按鈕的初始化:/ key code for characterconst char keychar = 'a', 'b', 'c', 'd','e', 'f', 'g', 'h','i', 'j', 'k', 'l','*', '

46、m', 'n', '#'/ key code for numberconst char keynum = 1, 2, 3, '#',4, 5, 6, '#',7, 8, 9, '#','#', 0, '#', '#'輸入控制程序:/*""func comment""* function name : unsigned int getvalue()* function : change the usee's inp

47、ut into a number* return : unsigned int*""func commentend""*/unsigned int getvalue() int i=0,sum=0;/variable definitions if(input0='#') input0='0' return 0; for(;inputi!='#'i+) if(inputi+1='#') sum+=inputi;inputi+=48; else sum+=inputi;inputi+=48;su

48、m*=10; inputi='0' return (unsigned int)(sum);中斷程序:/*""func comment""* function name : void ta0intr(void)* function : interrupt server*""func comment end""*/#define pwmnum 10void ta0intr(void)/*interrupt server function*/ static char pwmtime1=pwmnum; /s

49、w test waiting time static char pwmtime2=pwmnum; /system run waiting time if(0=-pwmtime1) /judge the count value pwmtime1=pwmnum; flgsw=true;/determine key tag value assignment if(0=-pwmtime2)/judge the count value pwmtime2=pwmnum;flgsys=true;/determine key tag value assignment 64細(xì)分控制程序:/*"&quo

50、t;func comment""* function name : void directionsw1(void)* function : detect sw1 to make sure motor run direction*""func commentend""*/void directionsw1(void)static flag_f_old=0; /variable of definition static char flag_m_old='c'/variable of definition if(!p3_0)

51、mtr.mode='n' /judgment mode control keyelsemtr.mode='a' if(p3_1=0)mtr.direct=right;/judging reverse control keyelsemtr.direct=left; if(mtr.mode='a')/to determine whether the precision model if(p3_2)flginput=false;/judgment input control keyselseflginput=true; if(mtr.mode='

52、;n')/to determine whether the normal mode flgf=1; if(!p3_2)flgf=2;/the 2 subdivision mode selectionif(!p3_3)flgf=4;/the 4 subdivision mode selectionif(!p3_4)flgf=8;/the 8 subdivision mode selectionif(!p3_5)flgf=16;/the 16 subdivision mode selectionif(!p3_6)flgf=32;/the 32 subdivision mode select

53、ionif(!p3_7)flgf=64;/the 64 subdivision mode selectionif(flag_f_old!=flgf&&flgf>=4)flgchange=true;if(flag_f_old!=flgf&&(flgf=1|flgf=2)flgchange1=true; if(flag_m_old!=mtr.mode) mtr.state=stop;mtr.speed=0;flag_f_old=flgf;flag_m_old=mtr.mode;精準(zhǔn)控制時步進角的初始化:constunsignedintstep1=0xfffe,0xfffe,0x0000,0x0000; constunsignedintstep2=0x0000,0x0000,0x0000,0x0000,0x0000,0xfffe,0xfffe,0xfffe; constunsignedint

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論