版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
目錄TOC\o"1-3"\u摘要 .2技術(shù)方案可行性研究2.2.1步進(jìn)電機(jī)的選型步進(jìn)電機(jī)包括反應(yīng)式步進(jìn)電機(jī)、永磁式步進(jìn)電機(jī)、混合式步進(jìn)電機(jī)等。永磁式步進(jìn)電機(jī)一般為兩相,轉(zhuǎn)矩和體積較小,步進(jìn)角一般為7.5度或15度;反應(yīng)式步進(jìn)電機(jī)一般為三相,可實(shí)現(xiàn)大轉(zhuǎn)矩輸出,步進(jìn)角一般為1.5度,但噪聲和振動(dòng)都很大?;旌鲜讲竭M(jìn)電機(jī)是指混合了永磁式和反應(yīng)式的優(yōu)點(diǎn)。精確度高、轉(zhuǎn)矩大、步進(jìn)角度小。它又分為兩相和五相:兩相步進(jìn)角一般為1.8度而五相步進(jìn)角一般為0.72度。反應(yīng)式(VR)永磁式(PM) 混合式(HB)圖2-2步進(jìn)電機(jī)的結(jié)構(gòu)反應(yīng)式步進(jìn)電機(jī)(VR)在歐美等發(fā)達(dá)國(guó)家80年代已被淘汰。而混合式步進(jìn)電機(jī)(HB)由于其步距角小、精確度高、功耗小等原因價(jià)格較貴,主要用于工業(yè)平臺(tái)領(lǐng)域。永磁式步進(jìn)電機(jī)具有啟動(dòng)頻率低、控制功率小、斷電時(shí)具有一定的轉(zhuǎn)矩保持、步距角大等特點(diǎn),多用于小型使用場(chǎng)合以及實(shí)驗(yàn)平臺(tái),且價(jià)格較便宜。本系統(tǒng)在Proteus仿真中所使用的步進(jìn)電機(jī),由于步距角可調(diào),可以設(shè)計(jì)為反應(yīng)式步進(jìn)電機(jī)、永磁式步進(jìn)電機(jī)、混合式步進(jìn)電機(jī)中任意一種。而在后期硬件電路的搭建中,考慮到以上的綜合因素,選用了永磁式步進(jìn)電機(jī)。其型號(hào)為35BY48BH10。具體參數(shù)如下表:表2-135BY48BH10型步進(jìn)電機(jī)參數(shù)型號(hào)步矩角相數(shù)電壓電流電阻最大靜轉(zhuǎn)矩定位轉(zhuǎn)距轉(zhuǎn)動(dòng)慣量35BY48BH107.5°412V0.2842Ω400g90g7.9g.cm圖2-3永磁式步進(jìn)電動(dòng)機(jī)示意圖圖2-435BY48H10型步進(jìn)電機(jī)接線圖2.2.2步進(jìn)電機(jī)的控制方式在步進(jìn)電機(jī)的微機(jī)控制中,包括開(kāi)環(huán)控制和閉環(huán)控制兩大類。步進(jìn)電機(jī)開(kāi)環(huán)控制中,不包含反饋通道,這樣就使得控制系統(tǒng)的成本較低,但是為了保證控制系統(tǒng)少出錯(cuò),在設(shè)計(jì)時(shí)必須要考慮一定得富裕度,即驅(qū)動(dòng)脈沖的頻率不宜過(guò)高,電機(jī)的負(fù)載不能太重。開(kāi)環(huán)控制的基本原理圖如下,在有些系統(tǒng)中,也將脈沖分配由微機(jī)軟件來(lái)實(shí)現(xiàn),即圖中虛線框內(nèi)的功能全部由單片機(jī)來(lái)實(shí)現(xiàn)。圖2-5開(kāi)環(huán)控制的基本原理框圖在采用單片機(jī)的步進(jìn)電機(jī)開(kāi)環(huán)系統(tǒng)中,控制系統(tǒng)的CP脈沖的頻率或者換向周期實(shí)際上就是控制步進(jìn)電機(jī)的運(yùn)行速度。系統(tǒng)可用兩種辦法實(shí)現(xiàn)步進(jìn)電機(jī)的速度控制。一種是延時(shí),一種是定時(shí)。延時(shí)方法是在每次換向之后調(diào)用一個(gè)延時(shí)子程序,待延時(shí)結(jié)束后再次執(zhí)行換向,這樣周而復(fù)始就可發(fā)出一定頻率的CP脈沖或換向周期。延時(shí)子程序的延時(shí)時(shí)間與換向程序所用的時(shí)間和,就是CP脈沖的周期,該方法簡(jiǎn)單,占用資源少,全部由軟件實(shí)現(xiàn),調(diào)用不同的子程序可以實(shí)現(xiàn)不同速度的運(yùn)行。但占用CPU時(shí)間長(zhǎng),不能在運(yùn)行時(shí)處理其他工作。因此只適合較簡(jiǎn)單的控制過(guò)程。定時(shí)方法是利用單片機(jī)系統(tǒng)中的定時(shí)器定時(shí)功能產(chǎn)生任意周期的定時(shí)信號(hào),從而可方便的控制系統(tǒng)輸出CP脈沖的周期。當(dāng)定時(shí)器啟動(dòng)后,定時(shí)器從裝載的初值開(kāi)始對(duì)系統(tǒng)及其周期進(jìn)行加計(jì)數(shù),當(dāng)定時(shí)器溢出時(shí),定時(shí)器產(chǎn)生中斷,系統(tǒng)轉(zhuǎn)去執(zhí)行定時(shí)中斷子程序。將電機(jī)換向子程序放在定時(shí)中斷服務(wù)程序中,定時(shí)中斷一次,電機(jī)換向一次,從而實(shí)現(xiàn)電機(jī)的速度控制。由于從定時(shí)器裝載完重新啟動(dòng)開(kāi)始至定時(shí)器申請(qǐng)中斷止,有一定的時(shí)間間隔,造成定時(shí)時(shí)間增加,為了減少這種定時(shí)誤差,實(shí)現(xiàn)精確定時(shí),要對(duì)重裝的計(jì)數(shù)初值作適當(dāng)?shù)恼{(diào)整。調(diào)整的重裝初值主要考慮兩個(gè)因素一是中斷響應(yīng)所需的時(shí)間。二是重裝初值指令所占用的時(shí)間,包括在重裝初值前中斷服務(wù)程序重的其他指令因。綜合這兩個(gè)因素后,重裝計(jì)數(shù)初值的修正量取8個(gè)機(jī)器周期,即要使定時(shí)時(shí)間縮短8個(gè)機(jī)器周期。用定時(shí)中斷方式來(lái)控制電動(dòng)機(jī)變速時(shí),實(shí)際上是不斷改變定時(shí)器裝載值的大小。在控制過(guò)程中,采用離散辦法來(lái)逼近理想的升降速曲線。為了減少每步計(jì)算裝載值的時(shí)間,系統(tǒng)設(shè)計(jì)時(shí)就把各離散點(diǎn)的速度所需的裝載值固化在系統(tǒng)的ROM中,系統(tǒng)在運(yùn)行中用查表法查出所需的裝載值,這樣可大幅度減少占用CPU的時(shí)間,提高系統(tǒng)的響應(yīng)速度。大多數(shù)步進(jìn)電機(jī)運(yùn)動(dòng)控制系統(tǒng)都運(yùn)行在開(kāi)環(huán)狀態(tài)下,因?yàn)槌杀据^低,并可提供運(yùn)動(dòng)控制技術(shù)固有的位置控制,無(wú)須反饋。但是,在個(gè)別應(yīng)用中,需要更多的可靠性、安全性或產(chǎn)品質(zhì)量的保證,因此,閉環(huán)控制也是一種選擇。與開(kāi)環(huán)控制不同的是,閉環(huán)控制具有反饋通道。閉環(huán)控制的基本原理圖如下:圖2-6閉環(huán)控制的基本原理框圖以下是一些實(shí)現(xiàn)步進(jìn)電機(jī)閉環(huán)控制的方法:1)步進(jìn)確認(rèn),這是最簡(jiǎn)單的位移控制,使用光學(xué)編碼器計(jì)算步進(jìn)移動(dòng)的數(shù)量。一個(gè)簡(jiǎn)單的回路與指令校驗(yàn)的步進(jìn)電機(jī)比較,驗(yàn)證步進(jìn)電機(jī)移動(dòng)到預(yù)計(jì)的位置;2)反電動(dòng)勢(shì):一種無(wú)傳感器的檢測(cè)方法,使用步進(jìn)電機(jī)的反電動(dòng)勢(shì)信號(hào),測(cè)量和控制速度。當(dāng)反電動(dòng)勢(shì)電壓降至監(jiān)測(cè)探測(cè)水平時(shí),閉環(huán)控制轉(zhuǎn)為標(biāo)準(zhǔn)開(kāi)環(huán),完成最終的位移移動(dòng);3)全伺服控制,指全時(shí)間的使用反饋設(shè)備,用于步進(jìn)電機(jī)、編碼器、解碼器、或其它反饋傳感器上,從而更為精確地控制步進(jìn)電機(jī)位移和轉(zhuǎn)矩。其它的方法包括各種不同的反電動(dòng)勢(shì)控制電機(jī)參數(shù)測(cè)量和軟件技術(shù),一些制造企業(yè)都會(huì)使用這些方法。這里,步進(jìn)驅(qū)動(dòng)監(jiān)控和測(cè)量電機(jī)線圈,使用電壓額電流信息提高步進(jìn)電機(jī)控制。正阻尼使用這一信息阻擋振動(dòng)的速度,產(chǎn)生更多的可用的轉(zhuǎn)矩輸出,降低轉(zhuǎn)矩的機(jī)械振動(dòng)損耗。無(wú)編碼器安裝監(jiān)測(cè)采用信息檢測(cè)同步速度的損耗。閉環(huán)控制由于具有反饋通道,因此,可以在失步時(shí)通過(guò)反饋回來(lái)的信號(hào)調(diào)整脈沖的輸出,這樣可以取得比較好的控制效果,但是,通常閉環(huán)系統(tǒng)成本過(guò)高,同時(shí)比較容易受到機(jī)械系統(tǒng)中的傳動(dòng)間隙等非線性因素引起機(jī)械振蕩,若要保證優(yōu)良的動(dòng)態(tài)性能,不如選用直流或交流位置伺服系統(tǒng)。在步進(jìn)電機(jī)的控制中,一般不采用閉環(huán)控制,而更多的采用開(kāi)環(huán)控制。基于以上的綜合考慮,在本系統(tǒng)的設(shè)計(jì)中,采用開(kāi)環(huán)控制。2.2.3步進(jìn)電機(jī)的驅(qū)動(dòng)電路步進(jìn)電機(jī)不能直接采用直流或者普通交流來(lái)供電,必須采用專門的步進(jìn)電機(jī)驅(qū)動(dòng)控制器,步進(jìn)電機(jī)驅(qū)動(dòng)控制器一般包括脈沖發(fā)生與分配單元、功率驅(qū)動(dòng)單元,閉環(huán)控制電路中還將加入反饋和保護(hù)單元。單極性驅(qū)動(dòng)電路單極性驅(qū)動(dòng)電路多適用于不需要電流繞組有正、反向流動(dòng)的步進(jìn)電機(jī),一般為反應(yīng)式步進(jìn)電機(jī)。常見(jiàn)的單極性驅(qū)動(dòng)電路有3類,分別為單電壓功率驅(qū)動(dòng)電路、高低壓功率驅(qū)動(dòng)電路以及斬波恒流功率驅(qū)動(dòng)電路。單電壓功率驅(qū)動(dòng)是步進(jìn)電機(jī)控制中最為簡(jiǎn)單的一種驅(qū)動(dòng)電路,它在本質(zhì)上是一個(gè)單間的反相器。單電壓功率驅(qū)動(dòng)器有如下特點(diǎn):線路簡(jiǎn)單,成本低,低頻時(shí)響應(yīng)較好;有共振區(qū),高頻時(shí),帶載能力迅速下降。其工作效率較低,特別是在高頻下更為突出。它的外接電阻R要消耗相當(dāng)一部分的熱量,這樣就會(huì)影響電路的穩(wěn)定性,所以這種驅(qū)動(dòng)方式一般只用在小功率的步進(jìn)電機(jī)的驅(qū)動(dòng)電路中。雙電壓功率驅(qū)動(dòng)電路一般采用兩種電源電壓來(lái)驅(qū)動(dòng),因這兩個(gè)電源分別是一個(gè)為高壓一個(gè)為低壓,因此也稱為高低壓功率驅(qū)動(dòng)電路。其基本思想是,利用短時(shí)間的高電壓供電以提高導(dǎo)通相繞組電流前沿的陡度與高度,經(jīng)過(guò)一個(gè)短時(shí)間,關(guān)斷高電壓,用低電壓來(lái)維持一定的電流,這樣可以改善驅(qū)動(dòng)系統(tǒng)的高頻性能,使步進(jìn)電機(jī)在高頻段也有較大的輸出轉(zhuǎn)矩,且靜止鎖定時(shí)的功耗也較小。雙電壓驅(qū)動(dòng)電路的缺點(diǎn)是在高低壓連接處電流出現(xiàn)谷點(diǎn),這樣必然引起力矩在谷點(diǎn)處下降,不利于電機(jī)的正常運(yùn)行。斬波恒流功率驅(qū)動(dòng)電路的基本思想是,使導(dǎo)通相電流不論在鎖定、低頻或高頻工作時(shí),均保持額定值,使得電機(jī)具有恒轉(zhuǎn)矩輸出特性,斬波恒流功率驅(qū)動(dòng)電路如圖2-7所示。斬波恒流功率驅(qū)動(dòng)電路很好的克服了雙電壓功率驅(qū)動(dòng)電路在高低壓連接時(shí)電流谷點(diǎn)處力矩下降的問(wèn)題,并且還可以提高步進(jìn)電機(jī)的效率。它可以用較高的電源電壓,同時(shí)無(wú)需外接電阻來(lái)限定期額定電流和減少時(shí)間常數(shù),而且低頻共振現(xiàn)象基本消除,在任何頻率下,電動(dòng)機(jī)都可穩(wěn)定運(yùn)行。斬波恒流功率驅(qū)動(dòng)電路是目前應(yīng)用較多的一種驅(qū)動(dòng)電路。但由于其波形頂部呈現(xiàn)鋸齒形波動(dòng),所以會(huì)產(chǎn)生較大的電磁噪聲。圖2-7斬波恒流功率驅(qū)動(dòng)電路圖雙極性驅(qū)動(dòng)電路雙極性驅(qū)動(dòng)是指對(duì)繞組正向和反向通電,其電路相對(duì)比較復(fù)雜。通常情況下,永磁式步進(jìn)電機(jī)和混合式步進(jìn)電動(dòng)機(jī),需要繞組的電流能夠正、反流動(dòng),常采用全橋式雙極性驅(qū)動(dòng)電路。最常用的方法是使用H橋驅(qū)動(dòng)。如圖2-8所示。圖2-8H橋電機(jī)驅(qū)動(dòng)電路圖H橋式電機(jī)驅(qū)動(dòng)電路包括4個(gè)三極管和一個(gè)電機(jī)。要使電機(jī)運(yùn)轉(zhuǎn),必須導(dǎo)通對(duì)角線上的一對(duì)三極管。根據(jù)不同三極管對(duì)的導(dǎo)通情況,電流可能會(huì)從左至右或從右至左流過(guò)電機(jī),從而控制電機(jī)的轉(zhuǎn)向。當(dāng)Q1管和Q4管導(dǎo)通時(shí),電流就從電源正極經(jīng)Q1從左至右穿過(guò)電機(jī),然后再經(jīng)Q4回到電源負(fù)極。從而驅(qū)動(dòng)電機(jī)按特定方向轉(zhuǎn)動(dòng)。當(dāng)Q2管和Q3管導(dǎo)通時(shí),電流將從右至左流過(guò)電機(jī),從而驅(qū)動(dòng)電機(jī)沿另一方向轉(zhuǎn)動(dòng)。驅(qū)動(dòng)電機(jī)時(shí),保證H橋上兩個(gè)同側(cè)的三極管不會(huì)同時(shí)導(dǎo)通非常重要。如果三極管Q1和Q2同時(shí)導(dǎo)通,那么電流就會(huì)從正極穿過(guò)兩個(gè)三極管直接回到負(fù)極。此時(shí),電路中除了三極管外沒(méi)有其他任何負(fù)載,因此電路上的電流就可能達(dá)到最大值(該電流僅受電源性能限制),甚至燒壞三極管。2.2.4驅(qū)動(dòng)電路的確定單極性和雙極性是步進(jìn)電機(jī)最常采用的兩種驅(qū)動(dòng)架構(gòu)。35BY48H10型永磁式步進(jìn)電機(jī)接線圖如圖2-4所示,其包含兩組帶有中間抽頭的線圈,整個(gè)電機(jī)共有六條線與外界連接。這類電機(jī)常被稱為四相電機(jī),但是它其實(shí)只有兩個(gè)相位,精確的說(shuō)法應(yīng)是二相六線式步進(jìn)電機(jī)。二相六線式步進(jìn)電機(jī)雖然又稱為單極性步進(jìn)電機(jī),實(shí)際上卻能同時(shí)使用單極性或雙極性驅(qū)動(dòng)電路。單極性驅(qū)動(dòng)電路的設(shè)計(jì)單極性是指步進(jìn)電機(jī)線圈中電流的流動(dòng)方向是固定的,即線圈中的電流只按一個(gè)方向流動(dòng)。步進(jìn)電機(jī)的單極性驅(qū)動(dòng)是使用4個(gè)晶體管來(lái)驅(qū)動(dòng)步進(jìn)電機(jī)的2組相位,電路結(jié)構(gòu)如圖2-9所示。電機(jī)的2個(gè)繞組的中間抽頭都接高電平,然后跟據(jù)其工作原理,將電機(jī)的其余4線的電平輪流拉低,步進(jìn)電機(jī)就會(huì)轉(zhuǎn)動(dòng)。實(shí)際設(shè)計(jì)中,控制器產(chǎn)生的脈沖通過(guò)達(dá)林頓管實(shí)現(xiàn)功率放大,從而驅(qū)動(dòng)電機(jī)正常轉(zhuǎn)動(dòng)。圖2-9單極性步進(jìn)電機(jī)驅(qū)動(dòng)電路雙極性驅(qū)動(dòng)電路的設(shè)計(jì)雙極性則是指步進(jìn)電機(jī)線圈中電流的流動(dòng)方向不是單向的,即繞組有時(shí)沿某一方向流動(dòng),有時(shí)按相反方向流動(dòng)。雙極性步進(jìn)電機(jī)的驅(qū)動(dòng)電路如圖2-10所示,它會(huì)使用8個(gè)晶體管來(lái)驅(qū)動(dòng)2組相位。對(duì)于兩相六線式步進(jìn)電機(jī)而言,2個(gè)繞組的中間接頭都懸空,根據(jù)步進(jìn)電機(jī)的工作原理,當(dāng)控制器給驅(qū)動(dòng)器發(fā)出驅(qū)動(dòng)信號(hào)時(shí),驅(qū)動(dòng)器經(jīng)過(guò)環(huán)形分配器和功率放大后,電機(jī)繞組依次通電,電機(jī)轉(zhuǎn)動(dòng)。圖2-10雙極性步進(jìn)電機(jī)驅(qū)動(dòng)電路在實(shí)際設(shè)計(jì)中,橋式電路中晶體管的參數(shù)由于各種影響會(huì)不一致,使控制難度加大,考慮到電壓、電流的等級(jí)以及尺寸等因素,一般使用L298作為橋式結(jié)構(gòu)的驅(qū)動(dòng)芯片,其內(nèi)部電路如圖2-11所示。圖2-11從結(jié)構(gòu)上看,對(duì)比圖2-9和圖2-10的驅(qū)動(dòng)電路圖可以看出,單極性驅(qū)動(dòng)電路比雙極性驅(qū)動(dòng)電路簡(jiǎn)單,也比較容易理解。從性能上看,實(shí)踐表明,2種驅(qū)動(dòng)電路在相同電壓的驅(qū)動(dòng)下,單極性驅(qū)動(dòng)電路的輸出力矩比雙極性驅(qū)動(dòng)電路要小。由于步進(jìn)電機(jī)的輸出力矩與電機(jī)的有效體積、線圈匝數(shù)、磁通量、電流成正比,所以電機(jī)有效體積越大,則勵(lì)磁安匝數(shù)越大,定轉(zhuǎn)子間的氣隙就越小,電機(jī)力矩越大,反之越小。單極性驅(qū)動(dòng)電路每次都借助中間抽頭導(dǎo)通繞組線圈的一半,而雙極性驅(qū)動(dòng)電路的繞組線圈每次都有電流通過(guò),在相同電壓的驅(qū)動(dòng)下其驅(qū)動(dòng)電流相當(dāng),但是,此時(shí)單極性驅(qū)動(dòng)電路產(chǎn)生的磁場(chǎng)集中在某個(gè)導(dǎo)通的線圈附近,而雙極性驅(qū)動(dòng)電路則在整個(gè)電機(jī)內(nèi)部產(chǎn)生一個(gè)相對(duì)均勻的磁場(chǎng),于是其穩(wěn)定性要優(yōu)于單極性驅(qū)動(dòng)電路,輸出力矩也較大。單極性驅(qū)動(dòng)電路簡(jiǎn)單易行、調(diào)試方便且造價(jià)簡(jiǎn)單,低頻時(shí)響應(yīng)較好,一般適用于小功率步進(jìn)電機(jī)的驅(qū)動(dòng);雙極性驅(qū)動(dòng)電路H橋接線較復(fù)雜,要防止橋路上下臂的穿通,但是驅(qū)動(dòng)的力矩和頻響較好,適用于大功率步進(jìn)電機(jī)的驅(qū)動(dòng)?;谝陨弦蛩鼐C合考慮,本設(shè)計(jì)中由于采取35BY48H10型永磁式步進(jìn)電機(jī),其功率較小,單極性驅(qū)動(dòng)電路已經(jīng)可以較好的滿足設(shè)計(jì)要求。故采用單極性驅(qū)動(dòng)電路。2.2.5脈沖分配及激勵(lì)方式脈沖分配器又稱環(huán)形分配器,步進(jìn)電機(jī)正常工作需要按照步進(jìn)電機(jī)的勵(lì)磁狀態(tài)表所規(guī)定的狀態(tài)和順序依次對(duì)各相繞組進(jìn)行通電或者斷電控制,各相驅(qū)動(dòng)信號(hào)來(lái)源于脈沖分配器。脈沖分配器的主要功能是把來(lái)源于控制環(huán)節(jié)的時(shí)鐘脈沖串按一定的規(guī)律分配給步進(jìn)電機(jī)驅(qū)動(dòng)器的各相輸入端,控制勵(lì)磁繞組的導(dǎo)通或者截止。同時(shí),由于步進(jìn)電機(jī)有正反轉(zhuǎn)的要求,所以脈沖分配器的輸出,既是周期的,又是可逆的。因此,脈沖分配器是一種特殊的可逆循環(huán)計(jì)數(shù)器,只是這種計(jì)數(shù)器的輸出不是一般的編碼,而是步進(jìn)電機(jī)勵(lì)磁狀態(tài)要求的特殊編碼。脈沖分配器可以通過(guò)硬件脈沖分配電路實(shí)現(xiàn),也可以通過(guò)軟件方便靈活的實(shí)現(xiàn)。隨著大規(guī)模集成電路技術(shù)的發(fā)展,現(xiàn)在很有多廠家生產(chǎn)出專門的用于步進(jìn)電機(jī)控制的脈沖分配芯片,如SGS公司的L297芯片,配合用于功率放大的驅(qū)動(dòng)電路就可以實(shí)現(xiàn)步進(jìn)電機(jī)的驅(qū)動(dòng)。在本設(shè)計(jì)中,由于單片機(jī)的硬件資源完全夠用,采取了軟件實(shí)現(xiàn)環(huán)形脈沖分配器的功能,使得硬件設(shè)計(jì)更為簡(jiǎn)潔。驅(qū)動(dòng)二相六線永磁式步進(jìn)電機(jī)的激勵(lì)方式有一相、二相、一至兩相三種。一相激勵(lì)方式是指每一時(shí)刻四相中只有一相接通,步進(jìn)電機(jī)以此方式工作時(shí),溫升較高,電源功率功耗小,但是當(dāng)速度較高時(shí)容易產(chǎn)生失步;二相激勵(lì)方式是指每一個(gè)時(shí)刻四相中有兩相導(dǎo)通,然后按四相的順序循環(huán),例如AB、BC、CD、DA這樣的導(dǎo)通方式;一至兩相激勵(lì)方式是指驅(qū)動(dòng)時(shí)一相導(dǎo)通和兩相導(dǎo)通交替出現(xiàn)的,如圖2-12所示。圖2-12一至二相激勵(lì)波形示意圖一至兩相激勵(lì)方式使步進(jìn)電機(jī)工作在半步狀態(tài),與整步工作狀態(tài)相較,半步狀態(tài)振動(dòng)較小,且控制更準(zhǔn)確。所以本設(shè)計(jì)選用一至兩相激勵(lì)方式驅(qū)動(dòng)步進(jìn)電機(jī)。2.2.6基本方案的確定因本次設(shè)計(jì)的要求,電機(jī)選用35BY48H10型永磁式步進(jìn)電機(jī),驅(qū)動(dòng)電路選用單極性功率驅(qū)動(dòng)電路,脈沖分配電路選擇為軟件分配方式,并使用一至兩相激勵(lì)方式產(chǎn)生激勵(lì)信號(hào)。單片機(jī)AT89C52產(chǎn)生的一至兩相激勵(lì)信號(hào)通過(guò)達(dá)林頓功率驅(qū)動(dòng)電路放大,從而驅(qū)動(dòng)步進(jìn)電機(jī)。通過(guò)按鍵,實(shí)現(xiàn)步進(jìn)電機(jī)的正轉(zhuǎn)、反轉(zhuǎn)、加速、減速等功能,并采用LCD1602顯示屏即時(shí)顯示控制電動(dòng)機(jī)的轉(zhuǎn)動(dòng)信息。
3系統(tǒng)硬件的詳細(xì)設(shè)計(jì)本系統(tǒng)的硬件設(shè)計(jì)主要包括最小單片機(jī)系統(tǒng)、步進(jìn)電機(jī)驅(qū)動(dòng)電路、LCD顯示電路、鍵盤電路等設(shè)計(jì)。3.1單片機(jī)主機(jī)系統(tǒng)電路本次設(shè)計(jì)以CPU選用AT89C52作為步進(jìn)電機(jī)的控制芯片。AT89C52是美國(guó)ATMEL公司生產(chǎn)的低電壓,高性能CMOS8位單片機(jī),片內(nèi)含8kbytes的可反復(fù)擦寫(xiě)的Flash只讀程序存儲(chǔ)器和256bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),與標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及8052產(chǎn)品引腳兼容,片內(nèi)置通用8位中央處理器(CPU)和Flash存儲(chǔ)單元,功能強(qiáng)大的AT89C52單片機(jī)適合于許多較為復(fù)雜控制應(yīng)用場(chǎng)合。3.1.1單片機(jī)的引腳功能·Vcc:電源電壓·GND:地·P0口:P0口是一組8位漏極開(kāi)路型雙向I/O口,也即地址/數(shù)據(jù)總線復(fù)用口·P1口:P1是一個(gè)帶內(nèi)部上拉電阻的8位雙向I/O口,P1的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTL邏輯門電路與AT89C51不同之處是,P1.0和P1.1還可分別作為定時(shí)/計(jì)數(shù)器2的外部計(jì)數(shù)輸入(P1.0/T2)和輸入(P1.1/T2EX)。參見(jiàn)表3-1。表3-1AT89C52的定時(shí)器2引腳號(hào)功能特性P1.0T2(定時(shí)/計(jì)數(shù)器/2外部計(jì)數(shù)脈沖輸入),時(shí)鐘輸出P1.1T2EX(定時(shí)/計(jì)數(shù)2捕獲/重裝載觸發(fā)和方向控制)·P2口:P2是一個(gè)帶有內(nèi)部上拉電阻的8位雙向I/O口,P2的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTL邏輯門電路·P3口:P3口是一組帶有內(nèi)部上拉電阻的8位雙向I/O口。P3口輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTL邏輯門電路?!ST:復(fù)位輸入。當(dāng)振蕩器工作時(shí),RST引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平將使單片機(jī)復(fù)位?!LE/PROG:當(dāng)訪問(wèn)外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。一般情況下,ALE仍以時(shí)鐘振蕩頻率的1/6輸出固定的脈沖信號(hào),因此它可對(duì)外輸出時(shí)鐘或用于定時(shí)目的。要注意的是:每當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí)將跳過(guò)一個(gè)ALE脈沖?!SEN:程序儲(chǔ)存允許(PSEN)輸出是外部程序存儲(chǔ)器的讀選通信號(hào),當(dāng)單片機(jī)由外部程序存儲(chǔ)器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次PSEN有效,即輸出兩個(gè)脈沖。在此期間,當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器,將跳過(guò)兩次PSEN信號(hào)?!A/VPP:外部訪問(wèn)允許。欲使CPU僅訪問(wèn)外部程序存儲(chǔ)器(地址為0000H—FFFFH),EA端必須保持低電平(接地)·XTAL1:振蕩器反相放大器的及內(nèi)部時(shí)鐘發(fā)生器的輸入端。·XTAL2:振蕩器反相放大器的輸出端。圖3-1AT89C52的引腳圖3.1.2AT89C52功能特性概述AT89C52提供以下標(biāo)準(zhǔn)功能:8k字節(jié)Flash閃速存儲(chǔ)器,256字節(jié)內(nèi)部RAM,32個(gè)I/O口線,3個(gè)16位定時(shí)/計(jì)數(shù)器,一個(gè)6向量?jī)杉?jí)中斷結(jié)構(gòu),一個(gè)全雙工串行通信口,片內(nèi)振蕩器及時(shí)鐘電路。同時(shí),AT89C52可降至0Hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停止CPU的工作,但允許RAM,定時(shí)/計(jì)數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM中的內(nèi)容,但振蕩器停止工作并禁止其它所有部件工作直到下一個(gè)硬件復(fù)位。3.1.3時(shí)鐘電路單片機(jī)的時(shí)鐘信號(hào)用來(lái)提供單片機(jī)片內(nèi)各種微操作的時(shí)間基準(zhǔn),時(shí)鐘信號(hào)通常用兩種電路形式得到:內(nèi)部振蕩和外部振蕩。單片機(jī)內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反向放大器,引腳XTALl和XTAL2分別是此放大電器的輸入端和輸出端,由于采用內(nèi)部方式時(shí),電路簡(jiǎn)單,所得的時(shí)鐘信號(hào)比較穩(wěn)定,實(shí)際使用中常采用這種方式,如圖3-2所示在其外接晶體振蕩器(簡(jiǎn)稱晶振)或陶瓷諧振器就構(gòu)成了內(nèi)部振蕩方式,片內(nèi)高增益反向放大器與作為反饋元件的片外石英晶體或陶瓷諧振器一起可構(gòu)成一個(gè)自激振蕩器并產(chǎn)生振蕩時(shí)鐘脈沖。圖3-2中外接晶體以及電容C2和C1構(gòu)成并聯(lián)諧振電路,它們起穩(wěn)定振蕩頻率、快速起振的作用,其值均為20pF左右,晶振頻率選12MHz。圖3-2AT89C52時(shí)鐘電路3.1.4復(fù)位電路為了初始化單片機(jī)內(nèi)部的某些特殊功能寄存器,必須采用復(fù)位的方式,復(fù)位后可使CPU及系統(tǒng)各部件處于確定的初始狀態(tài),并從初始狀態(tài)開(kāi)始正常工作。單片機(jī)的復(fù)位是靠外電路來(lái)實(shí)現(xiàn)的,在正常運(yùn)行情況下,只要RST引腳上出現(xiàn)兩個(gè)機(jī)器周期時(shí)間以上的高電平,即可引起系統(tǒng)復(fù)位,但如果RST引腳上持續(xù)為高電平,單片機(jī)就處于循環(huán)復(fù)位狀態(tài)。復(fù)位后系統(tǒng)將輸入/輸出(1/0)端口寄存器置為FFH,堆棧指針SP置為07H,SBUF內(nèi)置為不定值,其余的寄存器全部清0,內(nèi)部RAM的狀態(tài)不受復(fù)位的影響,在系統(tǒng)上電時(shí)RAM的內(nèi)容是不定的。復(fù)位操作有兩種情況,即上電復(fù)位和手動(dòng)(開(kāi)關(guān))復(fù)位。本設(shè)計(jì)采用上電復(fù)位方式。圖3-3中電阻和電容組成上電復(fù)位電路,其值R取為10K,C取值為10pF。圖3-3AT89C52上電復(fù)位電路圖3-4單片機(jī)最小系統(tǒng)3.2驅(qū)動(dòng)電路的設(shè)計(jì)一般脈沖分配器輸出的驅(qū)動(dòng)能力有限,不能直接驅(qū)動(dòng)步進(jìn)電機(jī),而需要經(jīng)過(guò)一級(jí)功率放大,即功率驅(qū)動(dòng)電路。本設(shè)計(jì)選用了單極性功率驅(qū)動(dòng)電路,將單片機(jī)產(chǎn)生的脈沖信號(hào)通過(guò)達(dá)林頓管ULN2803放大,然后輸出給步進(jìn)電機(jī)。達(dá)林頓管又稱復(fù)合管,它將二只三極管適當(dāng)?shù)倪B接在一起,以組成一只等效的新的三極管。組成的新的等效三極管的放大倍數(shù)是二者之積。在電子電路設(shè)計(jì)中,達(dá)林頓接法常用在功率放大器和穩(wěn)壓電源中。ULN2803是八組NPN型達(dá)林頓功放三極管集成芯片,典型的輸入電壓是5V,集電極輸出功率可達(dá)50V×600mA。ULN2803的設(shè)計(jì)與標(biāo)準(zhǔn)TTL電平兼容,這一特性使得該器件廣泛應(yīng)用于計(jì)算機(jī)控制、工業(yè)控制和消費(fèi)類產(chǎn)品中。ULN2803的選用使驅(qū)動(dòng)控制電路的可靠性、穩(wěn)定性和簡(jiǎn)潔性得到了極大的提高。圖3-5ULN2803的引腳圖及內(nèi)部電路單片機(jī)產(chǎn)生的脈沖經(jīng)過(guò)ULN2803達(dá)林頓管進(jìn)行放大,再驅(qū)動(dòng)步進(jìn)電機(jī)。具體的連接圖如3-6所示:圖3-6步進(jìn)電機(jī)驅(qū)動(dòng)電路圖3.3顯示電路及控制按鍵的設(shè)計(jì)3.3.1顯示模塊的設(shè)計(jì)本系統(tǒng)的顯示部分采用RT1602字符顯示模塊,與采用數(shù)碼管相比,硬件連接和軟件調(diào)試上都由優(yōu)勢(shì)。只要把要顯示的內(nèi)容放進(jìn)液晶模塊的顯示存儲(chǔ)器里面就可以直觀的顯示出指定的內(nèi)容,操作方便。本設(shè)計(jì)將LCD連接到AT89C52的P0.0-P0.7口上,其電路如圖3-7所示。圖3-7顯示電路原理圖LCD1602采用標(biāo)準(zhǔn)的14腳接口,其各引腳定義如下:第1腳:VSS為地電源。第2腳:VDD接5V正電源。第3腳:V0為液晶顯示器對(duì)比度調(diào)整端。第4腳:RS為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。第5腳:RW為讀寫(xiě)信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫(xiě)操作。當(dāng)RS和RW共同為低電平時(shí)可以寫(xiě)入指令或者顯示地址,當(dāng)RS為低電平RW為高電平時(shí)可以讀忙信號(hào),當(dāng)RS為高電平RW為低電平時(shí)可以寫(xiě)入數(shù)據(jù)。第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。第7~14腳:D0~D7為8位雙向數(shù)據(jù)線。第15~16腳:空腳。3.3.2鍵盤模塊的設(shè)計(jì)鍵盤的連接一般有兩種方式,一種是獨(dú)立式鍵盤;一種是行列式鍵盤。獨(dú)立式鍵盤就是各個(gè)鍵相互獨(dú)立,每個(gè)鍵盤接一根輸入線,通過(guò)檢測(cè)輸入線的電平狀態(tài)來(lái)確定那個(gè)鍵按下。這種鍵盤的輸入線較多,結(jié)構(gòu)復(fù)雜,一般適用于按鍵較少操作速度較高的場(chǎng)合。而行列式鍵盤是由行線和列線交叉組成,一般用于按鍵較多的場(chǎng)合。本次設(shè)計(jì)一共4個(gè)鍵,因此采用獨(dú)立式鍵盤,分別接到AT89C52的P2.4-P2.7口而實(shí)現(xiàn),獨(dú)立式鍵盤的示意圖如3-8所示。圖3-8鍵盤連接圖當(dāng)按鍵K未被按下時(shí),P2.4輸入為高電平。當(dāng)K閉合時(shí),P2.4輸入為低電平。通常按鍵所用的開(kāi)關(guān)為機(jī)械彈性開(kāi)關(guān),因此機(jī)械觸點(diǎn)斷開(kāi)、閉合時(shí)均會(huì)有一系列的抖動(dòng),如圖3-9所示。圖3-9按鍵抖動(dòng)抖動(dòng)時(shí)間長(zhǎng)短由按鍵的機(jī)械特性決定,一般是5到10ms。為了確保CPU對(duì)鍵的一次閉合只做一次處理,必須去除鍵盤抖動(dòng)。鍵盤消抖有硬件和軟件兩種方法,一般多使用軟件消抖。軟件消抖的方法是指,檢測(cè)到有按鍵按下時(shí),執(zhí)行一個(gè)10ms左右(具體時(shí)間應(yīng)視所使用的按鍵進(jìn)行調(diào)整)的延時(shí)程序后,產(chǎn)生延時(shí),等電壓穩(wěn)定后在讀取按鍵的狀態(tài),從而消除抖動(dòng)。同理,在檢測(cè)到該鍵釋放后,也應(yīng)采用相同的步驟,從而可消除抖動(dòng)的影響。圖3-10鍵盤及顯示器與MCU的接線圖
4系統(tǒng)軟件的詳細(xì)設(shè)計(jì)4.1系統(tǒng)軟件設(shè)計(jì)的基本原則系統(tǒng)中控制任務(wù)的實(shí)現(xiàn)最終是靠控制軟件來(lái)完成的,控制軟件的設(shè)計(jì)將直接決定整個(gè)系統(tǒng)的控制性能,以下首先闡述一下軟件設(shè)計(jì)的一些基本要求,然后再概述本系統(tǒng)軟件的設(shè)計(jì)方案。1)實(shí)時(shí)性單片機(jī)必須在一定的時(shí)間內(nèi),完成一系列的軟件處理過(guò)程,如對(duì)系統(tǒng)的被控參數(shù)(如轉(zhuǎn)速、轉(zhuǎn)角等)的信號(hào)進(jìn)行采樣、計(jì)算、邏輯判斷和分析,按照規(guī)定的控制算法進(jìn)行數(shù)值計(jì)算,輸出各種控制信號(hào),以及對(duì)可能出現(xiàn)的故障進(jìn)行處理。2)可靠性軟件的可靠性是指軟件在運(yùn)行過(guò)程中避免發(fā)生故障的能力,以及一旦發(fā)生故障后的解決和排除故障的能力。因此,為了提高軟件的可靠性,軟件設(shè)計(jì)要考慮系統(tǒng)運(yùn)行過(guò)程中可能出現(xiàn)的一切非正常情況,且在系統(tǒng)一旦出現(xiàn)故障,如用戶按錯(cuò)鍵,輸入錯(cuò)誤參數(shù)等誤操作,或發(fā)生程序受外界嚴(yán)重干擾而“跑飛”等情況時(shí),也要有一定的對(duì)策,以防止對(duì)系統(tǒng)造成嚴(yán)重?fù)p失。3)可維護(hù)性一個(gè)完整的控制軟件,通常需要一個(gè)不斷地設(shè)計(jì)、調(diào)試、修改和完善的過(guò)程,才會(huì)最終滿足系統(tǒng)所需的功能要求。因此,在軟件的總體設(shè)計(jì)時(shí),必須要有良好的程序結(jié)構(gòu)設(shè)計(jì),以便于程序的反復(fù)調(diào)試、修改和補(bǔ)充,并保證最終的軟件仍具有簡(jiǎn)潔明了的結(jié)構(gòu)。4.2主程序的設(shè)計(jì)系統(tǒng)軟件采用模塊化程序設(shè)計(jì),使程序流程清晰明了。系統(tǒng)主程序主要完成的內(nèi)容:系統(tǒng)參數(shù)初始化、打開(kāi)中斷、啟動(dòng)電機(jī)等。系統(tǒng)主程序流程圖如圖4-1所示??梢钥闯觯鞒绦蚴且粋€(gè)死循環(huán),在系統(tǒng)上電初始化完畢后,系統(tǒng)一直在不斷的執(zhí)行這個(gè)循環(huán)程序。在循環(huán)過(guò)程中,若產(chǎn)生中斷,則程序就轉(zhuǎn)去執(zhí)行相應(yīng)的中斷服務(wù)程序。在后面將逐一介紹中斷服務(wù)程序,功能子程序等的設(shè)計(jì)。圖4-1主程序流程圖4.3顯示子程序的設(shè)計(jì)4.3.1LCD1602顯示原理LCD1602液晶模塊內(nèi)部的字符發(fā)生存儲(chǔ)器(CGROM)已經(jīng)存儲(chǔ)了160個(gè)不同的點(diǎn)陣字符圖形,如表4-1所示,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫(xiě)、常用的符號(hào)等,每一個(gè)字符都有一個(gè)固定的代碼[10],比如大寫(xiě)的英文字母‘A’的代碼是41H,顯示時(shí)1602把地址41H中的點(diǎn)陣字符圖形顯示出來(lái),我們就能看到字母‘A’。表4-11602字符碼表它的讀寫(xiě)操作、屏幕和光標(biāo)的操作都是通過(guò)指令編程來(lái)實(shí)現(xiàn)的。指令如表4-2所示。表4-2LCD1602字符模塊指令表指令RSRWD7D6D5D4D3D2D1D0清顯示0000000001光標(biāo)返回000000001?置位輸入模式00000001I/DS顯示開(kāi)/關(guān)控制0000001DCB光標(biāo)或字符移位000001S/CR/L??置位顯示行、字體00001DLNF??置位字符發(fā)生存儲(chǔ)器0001字符發(fā)生存儲(chǔ)器地址(ACG)置位數(shù)據(jù)存儲(chǔ)器地址001顯示數(shù)據(jù)存儲(chǔ)器地址(ADD)讀忙標(biāo)志或地址01BF計(jì)數(shù)器地址(AC)寫(xiě)數(shù)到CGRAM或DDRAM10要寫(xiě)入的數(shù)據(jù)從CGRAM或DDRAM讀數(shù)11讀出的數(shù)據(jù)表中1代表高電平、0代表低電平,指令功能具體說(shuō)明如下:指令1:清顯示,指令碼01H,光標(biāo)復(fù)位到地址00H位置。指令2:光標(biāo)復(fù)位,光標(biāo)返回到地址00H。指令3:光標(biāo)和顯示模式設(shè)置。I/D:光標(biāo)移動(dòng)方向,高電平右移,低電平左移。S:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無(wú)效。指令4:顯示開(kāi)關(guān)控制。D:控制整體顯示的開(kāi)與關(guān),高電平表示開(kāi)顯示,低電平表示關(guān)顯示。C:控制光標(biāo)的開(kāi)與關(guān),高電平表示有光標(biāo),低電平表示無(wú)光標(biāo)。B:控制光標(biāo)是否閃爍,高電平閃爍,低電平不閃爍。指令5:光標(biāo)或顯示移位。S/C:高電平時(shí)移動(dòng)顯示的文字,低電平時(shí)移動(dòng)光標(biāo)。指令6:功能設(shè)置命令。DL:高電平時(shí)為4位總線,低電平時(shí)為8位總線。N:低電平時(shí)為單行顯示,高電平時(shí)雙行顯示。F:低電平時(shí)顯示5×7的點(diǎn)陣字符,高電平時(shí)顯示5×10的點(diǎn)陣字符。指令7:字符發(fā)生器RAM地址設(shè)置。指令8:DDRAM地址設(shè)置。指令9:讀忙信號(hào)和光標(biāo)地址。BF:為忙標(biāo)志位,高電平表示忙,此時(shí)模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙。指令10:寫(xiě)數(shù)據(jù)。指令11:讀數(shù)據(jù)。4.3.2LCD1602液晶顯示流程字符顯示模塊LCD1602的編程較為簡(jiǎn)單,只要先輸入命令字,設(shè)置其工作方式,然后在將顯示數(shù)據(jù)輸入指定的存儲(chǔ)器位置即可。流程圖如圖4-2所示。圖4-2LCD1602顯示子程序流程圖4.4鍵盤子程序的設(shè)計(jì)在“鍵盤模塊的設(shè)計(jì)”部分中提到了由于本設(shè)計(jì)的鍵盤鍵數(shù)較少,所以采取了獨(dú)立鍵盤作為設(shè)計(jì)的控制信號(hào)采集裝置。軟件實(shí)現(xiàn)時(shí),可以采用中斷方式,也可以采用查詢方式??紤]到AT89C52的中斷源合理分配,本設(shè)計(jì)采取了查詢方式。查詢方式是指在程序中用一段專門的掃描和讀按鍵程序不停查詢有無(wú)按鍵按下,確定鍵值。這種方式電路簡(jiǎn)單,但需要占用單片機(jī)的機(jī)器時(shí)間??刂菩畔⒉杉能浖鞒虉D如下:圖4-3鍵盤程序流程圖
4.5驅(qū)動(dòng)程序流程圖圖4-4驅(qū)動(dòng)程序流程圖4.6調(diào)速程序流程圖4.6.1正反轉(zhuǎn)程序流程圖步進(jìn)電機(jī)正向轉(zhuǎn)動(dòng)時(shí),單片機(jī)P1口輸出序列為:0xf3,0xf1,0xf9,0xf8,0xfc,0xf4,0xf6,0xf2;將單片機(jī)脈沖反向輸出即可實(shí)現(xiàn)步進(jìn)電機(jī)的反向轉(zhuǎn)動(dòng)。圖4-5正反轉(zhuǎn)程序流程圖轉(zhuǎn)速快慢程序流程圖定時(shí)器初始值定義后,改變定時(shí)器循環(huán)次數(shù),即可實(shí)現(xiàn)步進(jìn)電機(jī)的加減速調(diào)節(jié)。輸出頻率延時(shí)序列為:40,24,15,12,10,8,4,3,2,1,對(duì)應(yīng)的電機(jī)速度為:3,5,8,10,12,15,30,40,60,120轉(zhuǎn)/分鐘。圖4-6轉(zhuǎn)速快慢程序流程圖4.6.3定時(shí)中斷流程圖圖4-7中斷子程序流程圖
5系統(tǒng)的仿真在控制系統(tǒng)開(kāi)發(fā)中,常常需要消耗各種硬件資源,系統(tǒng)構(gòu)建時(shí)間長(zhǎng),而在調(diào)試時(shí)很難對(duì)硬件系統(tǒng)進(jìn)行修改,從而延長(zhǎng)開(kāi)發(fā)周期。隨著計(jì)算機(jī)仿真技術(shù)的出現(xiàn)和發(fā)展,可用計(jì)算機(jī)對(duì)系統(tǒng)進(jìn)行仿真,從而減小系統(tǒng)開(kāi)發(fā)開(kāi)支和周期。計(jì)算機(jī)仿真可分為整體仿真和實(shí)時(shí)仿真。整體仿真是對(duì)系統(tǒng)各個(gè)時(shí)間段對(duì)各個(gè)對(duì)象進(jìn)行計(jì)算和分析,從而對(duì)各個(gè)對(duì)象的變化情況有直觀的整體的了解,即能對(duì)系統(tǒng)進(jìn)行精確的預(yù)測(cè),如Matlab就是一個(gè)典型的整體仿真軟件。實(shí)時(shí)仿真是對(duì)時(shí)間點(diǎn)的動(dòng)態(tài)仿真,即隨著時(shí)間的推移它能動(dòng)態(tài)仿真出當(dāng)時(shí)系統(tǒng)的狀態(tài)。ProteusISIS是一個(gè)實(shí)時(shí)仿真軟件,用來(lái)仿真各種嵌入式系統(tǒng)。它能對(duì)各種微控制器進(jìn)行仿真,本系統(tǒng)即用ProteusISIS對(duì)步進(jìn)電機(jī)控制系統(tǒng)進(jìn)行仿真。5.1ProteusISIS介紹ProteusISIS是英國(guó)Labcenter公司開(kāi)發(fā)的電路分析與實(shí)物仿真軟件。它運(yùn)行于Windows操作系統(tǒng)上,可以仿真、分析(SPICE)各種模擬器件和集成電路。5.1.1ProteusISIS的特點(diǎn)1)實(shí)現(xiàn)了單片機(jī)仿真和SPICE電路仿真相結(jié)合。具有模擬電路仿真、數(shù)字電路仿真、單片機(jī)及其外圍電路組成的系統(tǒng)的仿真、RS232動(dòng)態(tài)仿真、I2C調(diào)試器、SPI調(diào)試器、鍵盤和LCD系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號(hào)發(fā)生器等。2)支持主流單片機(jī)系統(tǒng)的仿真。目前支持的單片機(jī)類型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、ARM系列、HC11系列以及各種外圍芯片。3)提供軟件調(diào)試功能。在硬件仿真系統(tǒng)中具有全速、單步、設(shè)置斷點(diǎn)等調(diào)試功能,同時(shí)可以觀察各個(gè)變量、寄存器等的當(dāng)前狀態(tài)。4)具有強(qiáng)大的原理圖繪制功能??傊?,Proteus是一款集單片機(jī)和SPICE分析于一身的仿真軟件,功能極其強(qiáng)大。Proteus與其它單片機(jī)仿真軟件不同的是,它不僅能仿真單片機(jī)CPU的工作情況,也能仿真單片機(jī)外圍電路或沒(méi)有單片機(jī)參與的其它電路的工作情況。因此在仿真和程序調(diào)試時(shí),關(guān)心的不再是某些語(yǔ)句執(zhí)行時(shí)單片機(jī)寄存器和存儲(chǔ)器內(nèi)容的改變,而是從工程的角度直接看程序運(yùn)行和電路工作的過(guò)程和結(jié)果。使用Proteus軟件可以在項(xiàng)目開(kāi)發(fā)的前期完全脫離硬件平臺(tái),可以說(shuō)是嵌入式開(kāi)發(fā)的一次革命。5.1.2Proteus仿真注意事項(xiàng)利用Proteus仿真C51時(shí),需要提供給仿真芯片HEX文件,HEX文件是編寫(xiě)的軟件經(jīng)編譯連接后進(jìn)行轉(zhuǎn)換所生成,它是硬件可直接識(shí)別的代碼格式,通過(guò)加載HEX文件,可實(shí)現(xiàn)對(duì)系統(tǒng)應(yīng)用功能的仿真。5.2系統(tǒng)電路仿真圖本系統(tǒng)的電路仿真圖如圖5-1所示。圖5-1系統(tǒng)電路仿真全圖在AT89C52的屬性中,可加載芯片運(yùn)行時(shí)所需的HEX文件,此文件是本設(shè)計(jì)的程序經(jīng)KeilC51編譯后所生成。5.3各子系統(tǒng)仿真設(shè)計(jì)5.3.1驅(qū)動(dòng)電路仿真Proteus的元件庫(kù)中提供許多種類型的電機(jī)元件,從簡(jiǎn)單的直流電機(jī)到步進(jìn)電機(jī)、伺服電機(jī)都有,我們選取步進(jìn)電機(jī)MOTOR-STEPPER來(lái)仿真。在MOTOR-STEPPER的屬性中可設(shè)置其參數(shù),本系統(tǒng)對(duì)MOTOR-STEPPER的參數(shù)設(shè)置如表5-1所示。表5-1Motor-Stepper參數(shù)表參數(shù)名參數(shù)值額定電壓12V步進(jìn)角度7.5線圈電阻120?線圈電感100mH最大轉(zhuǎn)速720rpmProteus的仿真元件庫(kù)中提供了ULN2803的芯片仿真模型,將ULN2803的1C-4C分別接入到MOTOR-STEPPER圖5-2電機(jī)驅(qū)動(dòng)電路仿真圖5.3.2鍵盤輸入仿真本系統(tǒng)用獨(dú)立式鍵盤實(shí)現(xiàn)轉(zhuǎn)速控制信號(hào)的輸入。在仿真時(shí)可通過(guò)鼠標(biāo)直接點(diǎn)擊仿真鍵盤上的按鍵模擬真實(shí)鍵盤的輸入。本設(shè)計(jì)中各按鍵的功能如下:①K1鍵用于控制電機(jī)的啟動(dòng)、停止。②K2鍵用于控制步進(jìn)電機(jī)轉(zhuǎn)向。③K3鍵用于控制步進(jìn)電機(jī)的轉(zhuǎn)速增加一級(jí)。④K4鍵用于控制步進(jìn)電機(jī)的轉(zhuǎn)速減少一級(jí)。鍵盤的仿真圖如圖5-3所示。圖5-3鍵盤的仿真圖5.3.3轉(zhuǎn)速顯示仿真在Proteus的元件庫(kù)中選取LCD1602模塊LM016L進(jìn)行仿真。1602采用標(biāo)準(zhǔn)的14腳接口,其中8位雙向數(shù)據(jù)線D0-D7接單片機(jī)P0.0-P0.7,寄存器選擇端RS接單片機(jī)P2.0,讀寫(xiě)信號(hào)線RW接單片機(jī)P2.1,使能端E接單片機(jī)P2.2。圖5-4LCD顯示仿真圖5.4系統(tǒng)仿真的運(yùn)行流程當(dāng)連接好仿真圖和載入AT89C52的執(zhí)行文件后,單擊Proteus的仿真啟動(dòng)按鈕,則開(kāi)始對(duì)本系統(tǒng)的仿真。其運(yùn)行流程如下:1)首先進(jìn)入啟動(dòng)界面,本系統(tǒng)每次啟動(dòng)后將進(jìn)入待機(jī)界面,同時(shí)步進(jìn)電機(jī)進(jìn)入待機(jī)狀態(tài)。如圖5-5所示。圖5-5啟動(dòng)仿真后LCD顯示2)當(dāng)按下K1/啟動(dòng)停止鍵后,此時(shí)系統(tǒng)將開(kāi)始驅(qū)動(dòng)電機(jī),電機(jī)將以0級(jí)速度3轉(zhuǎn)/分鐘正轉(zhuǎn),如圖5-6所示,LCD的第一行顯示的是系統(tǒng)的轉(zhuǎn)速級(jí)別,第二行顯示轉(zhuǎn)速和轉(zhuǎn)向。其中數(shù)字代表轉(zhuǎn)速值,前面的正負(fù)號(hào)代表轉(zhuǎn)向。圖5-6中步進(jìn)電機(jī)下方的數(shù)字代表轉(zhuǎn)動(dòng)中的電機(jī)實(shí)時(shí)相位。圖5-6電機(jī)以最低速正轉(zhuǎn)3)每按一次K3/速度加后,電機(jī)的速度將提高一個(gè)級(jí)別,當(dāng)連續(xù)按下7次后,電機(jī)將以6級(jí)速度30轉(zhuǎn)/分鐘正轉(zhuǎn),如圖5-7所示,直到9級(jí)最高速120轉(zhuǎn)/分鐘。圖5-7電機(jī)以6級(jí)速度正轉(zhuǎn)每按一次K4/速度減后,電機(jī)的速度將降低一個(gè)級(jí)別,直到0級(jí)最低速3轉(zhuǎn)/分鐘。在電機(jī)運(yùn)行的任何時(shí)刻可以按下K2/正反鍵,使電機(jī)在正反轉(zhuǎn)動(dòng)之間轉(zhuǎn)換。電機(jī)以6級(jí)速度30轉(zhuǎn)/分鐘反轉(zhuǎn)如圖5-8所示。圖5-8電機(jī)以6級(jí)速度反轉(zhuǎn)4)在電機(jī)運(yùn)行的任何時(shí)刻可以按下K1/啟動(dòng)停止鍵,此時(shí)電機(jī)將暫停運(yùn)行。再次按下K1/啟動(dòng)停止鍵,步進(jìn)電機(jī)將以暫停前的速度繼續(xù)運(yùn)行。如圖5-9所示。圖5-9系統(tǒng)暫停運(yùn)行5.5仿真設(shè)計(jì)與硬件實(shí)物5.5.1硬件實(shí)物在Proteus平臺(tái)仿真成功后,為了對(duì)比仿真設(shè)計(jì)和硬件實(shí)物設(shè)計(jì)的差別,本設(shè)計(jì)在最后階段進(jìn)行了硬件實(shí)物的設(shè)計(jì)。圖5-10硬件實(shí)物設(shè)計(jì)5.5.2對(duì)比分析1)由于在仿真中,是使用單片機(jī)的仿真模型代替真實(shí)電路的功能,這樣會(huì)有很多因素影響仿真結(jié)果,如仿真軟件所在的系統(tǒng)配置,用戶仿真過(guò)程中的其它活動(dòng),都會(huì)影響到仿真軟件的運(yùn)行。仿真測(cè)試的性能不能完全代表本系統(tǒng)的真實(shí)性能。2)由于仿真是基于軟件實(shí)現(xiàn)的,所以與在硬件實(shí)物上運(yùn)行的真實(shí)系統(tǒng)比較,仿真系統(tǒng)在實(shí)時(shí)性上有所降低,尤其本系統(tǒng)采用中斷方式控制轉(zhuǎn)速,計(jì)時(shí)器功能與實(shí)際相比,存在一定延時(shí)和誤差,故造成仿真中電機(jī)的轉(zhuǎn)速與硬件實(shí)物的轉(zhuǎn)速有較大的誤差。3)在仿真設(shè)計(jì)中,鍵盤不采用消抖設(shè)計(jì)對(duì)信息的采集不產(chǎn)生任何影響。而硬件實(shí)物的按鍵如果不消抖,則會(huì)出現(xiàn)按鍵不準(zhǔn)確,對(duì)整體設(shè)計(jì)的穩(wěn)定性有較大影響。4)在仿真設(shè)計(jì)中,電機(jī)在轉(zhuǎn)速較高的場(chǎng)合下,會(huì)出現(xiàn)失步或抖動(dòng)。而在硬件實(shí)物中,本設(shè)計(jì)電機(jī)控制的精度良好,沒(méi)有出現(xiàn)失步或抖動(dòng)。在本系統(tǒng)所要求的轉(zhuǎn)速范圍內(nèi),轉(zhuǎn)速控制的精度還是達(dá)到了較好的效果。綜上所述,在嵌入式設(shè)計(jì)的前期階段,使用計(jì)算機(jī)對(duì)系統(tǒng)進(jìn)行仿真,可以較好的滿足設(shè)計(jì)需要,有效地減少系統(tǒng)開(kāi)發(fā)開(kāi)支和周期,可以說(shuō)是嵌入式系統(tǒng)開(kāi)發(fā)和學(xué)習(xí)的一次革命。
結(jié)論本設(shè)計(jì)用單片機(jī)AT89C52及外部擴(kuò)展設(shè)備實(shí)現(xiàn)對(duì)步進(jìn)電機(jī)的轉(zhuǎn)速控制,在硬件上采用了大功率達(dá)林頓管單極性驅(qū)動(dòng)電路,解決了電機(jī)驅(qū)動(dòng)的效率問(wèn)題,在軟件上也采用了較為合理的系統(tǒng)結(jié)構(gòu)及算法,用軟件編程完成了轉(zhuǎn)速驅(qū)動(dòng),實(shí)現(xiàn)了對(duì)轉(zhuǎn)速的最優(yōu)化調(diào)節(jié),提高了單片機(jī)的使用效率。同時(shí)還實(shí)現(xiàn)了轉(zhuǎn)速的鍵盤輸入控制,轉(zhuǎn)速即時(shí)顯示等功能。歸納起來(lái),本文首先介紹了單片機(jī)以及步進(jìn)電機(jī)的基本概念和理論,接著介紹了基于AT89C52的嵌入式硬件設(shè)計(jì)和軟件設(shè)計(jì),并簡(jiǎn)要分析了各部分的設(shè)計(jì)結(jié)構(gòu)。然后分別介紹了硬件部分和軟件部分的實(shí)現(xiàn)技術(shù)及實(shí)現(xiàn)方法。最后通過(guò)ProteusISIS進(jìn)行仿真,取得了良好的結(jié)果,并與硬件實(shí)物進(jìn)行對(duì)比分析,使用Proteus仿真設(shè)計(jì)的步進(jìn)電機(jī)控制系統(tǒng)各項(xiàng)性能指標(biāo)都能夠滿足實(shí)際生產(chǎn)的要求。步進(jìn)電機(jī)調(diào)速系統(tǒng)適用各種現(xiàn)場(chǎng)自動(dòng)化控制,特別適用于小功率負(fù)載的控制,具有成本底,性能穩(wěn)定,可靠性高等優(yōu)點(diǎn)。步進(jìn)電機(jī)作為執(zhí)行元件,在科技的進(jìn)步中起到了非常重要的作用,而步進(jìn)電機(jī)調(diào)速系統(tǒng)可方便地應(yīng)用于各種自動(dòng)化控制領(lǐng)域。通過(guò)本次設(shè)計(jì),加強(qiáng)了對(duì)單片機(jī)應(yīng)用知識(shí)的掌握,同時(shí)了解了目前工業(yè)生產(chǎn)中數(shù)字化系統(tǒng)的重要性,使我對(duì)使用單片機(jī)實(shí)現(xiàn)自動(dòng)化控制的設(shè)計(jì)過(guò)程有了全面地了解。通過(guò)學(xué)習(xí)控制系統(tǒng)工作原理以及如何利用單片機(jī)控制步進(jìn)電機(jī),我查閱了大量相關(guān)資料,學(xué)會(huì)了許多知識(shí),培養(yǎng)了我獨(dú)立解決問(wèn)題的能力。同時(shí)在對(duì)硬件電路設(shè)計(jì)的過(guò)程中,鞏固了我的專業(yè)課知識(shí),使自己受益匪淺。當(dāng)然在本次設(shè)計(jì)中還有需要完善的地方,比如可以設(shè)計(jì)一個(gè)UPS電源,防止在斷電的情況下造成系統(tǒng)損害,保證生產(chǎn)的連續(xù)運(yùn)行。總之,通過(guò)本次設(shè)計(jì)不僅進(jìn)一步強(qiáng)化了專業(yè)知識(shí),還掌握了設(shè)計(jì)系統(tǒng)的方法、步驟等,為今后的工作和學(xué)習(xí)打下了堅(jiān)實(shí)的基礎(chǔ)。通過(guò)幾個(gè)月的努力,即將完成論文,當(dāng)然由于本人精力和時(shí)間有限,本論文中或多或少會(huì)存在一些缺點(diǎn),所設(shè)計(jì)的軟硬件難免存在一些不足,還懇請(qǐng)各位老師和同學(xué)給予批評(píng)和指正。
致謝畢業(yè)設(shè)計(jì)是一個(gè)理論聯(lián)系實(shí)際,培養(yǎng)科研素質(zhì)、科研能力的課題。因此,在此設(shè)計(jì)過(guò)程中必須將平時(shí)所學(xué)理論運(yùn)用于實(shí)踐,并在實(shí)踐過(guò)程中不斷學(xué)習(xí),不斷加深理解,解決大學(xué)階段理論學(xué)習(xí)與實(shí)踐的矛盾,達(dá)到鍛煉動(dòng)手能力的目的。在論文即將完成之際,我衷心的感謝所有指導(dǎo)、關(guān)心和幫助我的老師、同學(xué)和朋友。首先要感謝我的畢業(yè)設(shè)計(jì)指導(dǎo)老師王載陽(yáng)老師和楊宏老師。王老師和楊老師嚴(yán)謹(jǐn)求實(shí)的科研作風(fēng)、深邃敏捷的思想洞察、勤奮忘我的工作精神,給我留下了深刻的印象,正是由于他們?cè)谒枷搿W(xué)習(xí)和生活等各個(gè)方面的典范作用,在科研中創(chuàng)造的良好學(xué)術(shù)氣氛,在系統(tǒng)研究過(guò)程中的及時(shí)幫助,才使得我的本科畢業(yè)設(shè)計(jì)順利完成。在此,謹(jǐn)向老師致以衷心的感謝和崇高的敬意。此外,我還要感謝電信系實(shí)驗(yàn)室的各位老師。他們?yōu)檫@次畢業(yè)設(shè)計(jì)提供了良好的環(huán)境,在軟硬件設(shè)計(jì)及論文寫(xiě)作期間給了我許多幫助和建議,付出了辛勤的勞動(dòng)。最后,感謝所有評(píng)審本文和對(duì)本文提出寶貴意見(jiàn)的老師和同學(xué)。
參考文獻(xiàn)[1]周潤(rùn)景,張麗娜.基于Proteus的電路及單片機(jī)系統(tǒng)設(shè)計(jì)與仿真[M].北京:北京航空航天大學(xué)出版社,2006:182-183[2]代啟化.基于Proteus的電路設(shè)計(jì)與仿真[J].現(xiàn)代電子技術(shù),2006,29(19):84-86[3]胡文金,鐘秉翔,楊健.單片機(jī)應(yīng)用技術(shù)實(shí)訓(xùn)教程[M].重慶:重慶大學(xué)出版社,2005:2-3[4]寧成軍,張江霞.基于Proteus和Keil接口的單片機(jī)外圍硬件電路仿真[J].現(xiàn)代電子技術(shù),2006,18:142[5]李學(xué)禮,林海峰.基于Proteus軟件的單片機(jī)實(shí)驗(yàn)室建設(shè)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2005,9:5[6]張洪潤(rùn),藍(lán)清華.單片機(jī)應(yīng)用技術(shù)教程[M].北京:清華大學(xué)出版社,1997.[7]于海生,等.微型計(jì)算機(jī)控制技術(shù)[M].北京:清華大學(xué)出版社,1999.[8]王福瑞,等.單片機(jī)微機(jī)測(cè)控系統(tǒng)設(shè)計(jì)大全[M].北京:北京航空航天大學(xué)出版社,1998.[9]陳理壁.步進(jìn)電機(jī)及其應(yīng)用[M].上海:上海科學(xué)技術(shù)出版社,1989.[10]劉保延等.步進(jìn)電機(jī)及其驅(qū)動(dòng)控制系統(tǒng)[M].哈爾濱:哈爾濱工業(yè)大學(xué)出版社,1997.[11]季維發(fā),過(guò)潤(rùn)秋,嚴(yán)武升等.機(jī)電一體化技術(shù)[M].北京:電子工業(yè)出版社,1995.[12]郭敬樞,莊繼東,孔峰.微機(jī)控制技術(shù)[M].重慶:重慶大學(xué)出版社,1994.[13]劉國(guó)榮.單片微型計(jì)算機(jī)技術(shù)[M].北京:機(jī)械工業(yè)出版社,1996.[14]王福瑞.單片微機(jī)測(cè)控系統(tǒng)設(shè)計(jì)大全[M].北京:北京航空航天大學(xué)出版社,1998.[15]何立民.單片機(jī)應(yīng)用技術(shù)選編[M].北京:北京航空航天大學(xué)出版社,1993.[16]潘新民等:單片微型計(jì)算機(jī)實(shí)用系統(tǒng)設(shè)計(jì).北京:人民郵電出版社,1992.[17]王潤(rùn)孝,秦現(xiàn)生編著.機(jī)床數(shù)控原理與系統(tǒng).西安.西北工業(yè)大學(xué)出版社,1997.[18]李伯成,侯伯李等編.IBM-PC微機(jī)應(yīng)用系統(tǒng)設(shè)計(jì).西安.西安電子科技大學(xué),1996.[19]黃義源主編.機(jī)械設(shè)備電氣與數(shù)字控制.北京.中共廣播電視大學(xué)出版社,1992.
附錄Ⅰ程序#include<REG52.H>#include<intrins.h>#defineucharunsignedchar //用uchar代替unsignedchar#defineuintunsignedint //uint代替unsignedint#defineMotPortP1#defineTH0VAL-38536/256#defineTL0VAL-38536%256 //定時(shí)初始typedefunsignedcharBYTE;typedefunsignedintWORD;typedefbitBOOL;sbitrs=P2^0;sbitrw=P2^1;sbitep=P2^2;BYTEcodedis1[]={"INTELLGENTMOTOR"};BYTEcodedis2[]={"PRESSSTART"};BYTEcodedis3[]={"GRADE:"};BYTEcodedis4[]={"SPEED:"};ucharcodeMot1Code[]={0xf3,0xf1,0xf9,0xf8,0xfc,0xf4,0xf6,0xf2}; //M1步碼表ucharcodeSpeedTab[]={40,24,15,12,10,8,4,3,2,1}; //延遲表uintcodespeed[]={3,5,8,10,12,15,30,40,60,120}; //對(duì)應(yīng)的速度表ucharbdataMotorWorkMode=0; //馬達(dá)工作狀態(tài)寄存器sbitB_M1StartStop=MotorWorkMode^0; //M1運(yùn)動(dòng)/停止(0:停止;1:運(yùn)動(dòng))sbitB_M1Face=MotorWorkMode^1; //M1方向(0:正轉(zhuǎn);1:反轉(zhuǎn))sbitK_M1StartStop=P2^4; //M1停止/運(yùn)行sbitK_M1Face=P2^5; //M1正向/反向sbitK_SpeedAdd=P2^6; //速度加sbitK_SpeedDec=P2^7; //速度減ucharcount=1; //計(jì)數(shù)器ucharSpeedStep; //速度級(jí)0-9uchardisbuf[3];ucharspeedbuf[4];voiddelay(BYTEms);BOOLlcd_bz(void);voidlcd_wcmd(BYTEcmd);voidlcd_pos(BYTEdat);voidlcd_wdat(BYTEdat);voidlcd_init(void);voidmain() //主函數(shù){ BYTEi; TH0=TH0VAL; TL0=TL0VAL; //定時(shí)器0初值 TH1=(65536-50000)/256; TL1=(65536-50000)%256; TR0=1; //定時(shí)器0開(kāi)始計(jì)數(shù) ET0=1; //開(kāi)CTC0中斷 TR1=1; ET1=1; EA=1; //開(kāi)總中斷 P0=0xff; lcd_init(); delay(10); lcd_pos(0); i=0; while(dis1[i]!='\0') { lcd_wdat(dis1[i]); i++; } lcd_pos(0x40); i=0; while(dis2[i]!='\0') { lcd_wdat(dis2[i]); i++; } while(1) { if(!K_M1StartStop) { delay(10); while(!K_M1StartStop); delay(10); B_M1StartStop=!B_M1StartStop; } if(!K_M1Face) { delay(10); while(!K_M1Face); delay(10); B_M1Face=!B_M1Face; } if(!K_SpeedAdd) //速度加 { delay(10); while(!K_SpeedAdd); delay(10); SpeedStep++; if(SpeedStep==10){SpeedStep=9;} } if(!K_SpeedDec) //速度減 { delay(10); while(!K_SpeedDec); delay(10); SpeedStep--; if(SpeedStep==255){SpeedStep=0;} } }}voidTimer0(void)interrupt1using2 //定時(shí)器0中斷{ staticucharM1Index; //步碼索引 TH0=TH0VAL; TL0=TL0VAL; //定時(shí)器0初值 count--; if(count==0) { count=SpeedTab[SpeedStep]; //根據(jù)速度級(jí)重裝計(jì)數(shù)器,需要更快速度可更改定時(shí)器初值 switch(MotorWorkMode) { case0x1:{if(P_M1H==1) {M1Index++;} break;} //M1正轉(zhuǎn) case0x3:{if(P_M1L==1) {M1Index--;} break;} //M1反轉(zhuǎn) default:break; } if(M1Index==8) {M1Index=0;} else { if(M1Index==255){M1Index=7;} } MotPort=Mot1Code[M1Index]; //輸出M1步碼 }}voidTimer1(void)interrupt3{uchari,j;TH1=(65536-50000)/256;TL1=(65536-50000)%256;j++;disbuf[0]=SpeedStep/100;disbuf[1]=SpeedStep%100/10;disbuf[2]=SpeedStep%10;speedbuf[0]=speed[SpeedStep]/1000;speedbuf[1]=speed[SpeedStep]%1000/100;speedbuf[2]=speed[SpeedStep]%1000%100/10;speedbuf[3]=speed[SpeedStep]%10;if(j==20) { j=0; if((MotorWorkMode&0x01)==0x00) { lcd_pos(0); i=0; while(dis1[i]!='\0') { lcd_wdat(dis1[i]); i++; } lcd_pos(0x40); i=0; while(dis2[i]!='\0') { lcd_wdat(dis2[i]); i++; } } else { lcd_pos(0); i=0; while(dis3[i]!='\0') { lcd_wdat(dis3[i]); i++; } lcd_pos(0x40); i=0; while(dis4[i]!='\0') { lcd_wdat(dis4[i]); i++; } } switch(MotorWorkMode&0x3) { case0x1: { lcd_pos(0x46); lcd_wdat('+'); lcd_pos(0x06); lcd_wdat(disbuf[0]+0x30); lcd_pos(0x07); lcd_wdat(disbuf[1]+0x30); lcd_pos(0x08); lcd_wdat(disbuf[2]+0x30); lcd_pos(0x47); lcd_wdat(speedbuf[0]+0x30); lcd_pos(0x48); lcd_wdat(speedbuf[1]+0x30); lcd_pos(0x49); lcd_wdat(speedbuf[2]+0x30); lcd_pos(0x4a); lcd_wdat(speedbuf[3]+0x30); break; } case0x3: { lcd_pos(0x46); lcd_wdat('-'); lcd_pos(0x06); lcd_wdat(disbuf[0]+0x30); lcd_pos(0x07); lcd_wdat(disbuf[1]+0x30); lcd_pos(0x08); lcd_wdat(disbuf[2]+0x30); lcd_pos(0x47); lcd_wdat(speedbuf[0]+0x30); lcd_pos(0x48); lcd_wdat(speedbuf[1]+0x30); lcd_pos(0x49); lcd_wdat(speedbuf[2]+0x30); lcd_pos(0x4a); lcd_wdat(speedbuf[3]+0x30); break; } default:break; } }}voiddelay(BYTEms) //延時(shí)子程序{ BYTEi; while(ms--) { for(i=0;i<250;i++) { _nop_();_nop_();_nop_();_nop_(); } }}BOOLlcd_bz() //測(cè)試LCD忙碌狀態(tài){ BOOLresult; rs=0; rw=1; ep=1; _nop_();_nop_();_nop_();_nop_(); result=(BOOL)(P0&0x80); ep=0; returnresult;}voidlcd_wcmd(BYTEcmd) //寫(xiě)入指令數(shù)據(jù)到LCD{ while(lcd_bz()); rs=0; rw=0; ep=0; _nop_();_nop_(); P0=cmd; _nop_();_nop_();_nop_();_nop_(); ep=1; _nop_();_nop_();_nop_();_nop_(); ep=0;}voidlcd_pos(BYTEpos) //設(shè)定顯示數(shù)據(jù){ lcd_wcmd(pos|0x80);}voidlcd_wdat(BYTEdat) //寫(xiě)入字符顯示數(shù)據(jù)到LCD{ while(lcd_bz()); rs=1; rw=0; ep=0; P0=dat; _nop_();_nop_();_nop_();_nop_(); ep=1; _nop_();_nop_();_nop_();_nop_(); ep=0;}voidlcd_init() //LCD初始化{ lcd_wcmd(0x38); delay(1); lcd_wcmd(0x0c); delay(1); lcd_wcmd(0x06); delay(1); lcd_wcmd(0x01); //清除LCD顯示內(nèi)容 delay(1);}
附錄Ⅱ中文譯文教學(xué)用步進(jìn)電機(jī)和串行通信接口子板VenkatDronamraju,GurunathAthalye,JamesMConradUniversityofNorthCarolina-Charlotte【摘要】本文介紹了設(shè)計(jì)與開(kāi)發(fā)步進(jìn)電機(jī)驅(qū)動(dòng)器和串行接口組成的一種子板。這塊板子的目的是提供給嵌入式系統(tǒng)的學(xué)生一種手段來(lái)設(shè)計(jì)和開(kāi)發(fā)步進(jìn)電機(jī)和簡(jiǎn)單的RS-232C接口串行通信的自動(dòng)化應(yīng)用。該子板的步進(jìn)電機(jī)是一種雙極性6線電機(jī)。步進(jìn)電機(jī)和串行通信的驅(qū)動(dòng)軟件是在瑞薩嵌入式評(píng)估板所提供的High-performanceEmbeddedWorkshop(HEW)集成開(kāi)發(fā)環(huán)境下使用C語(yǔ)言編寫(xiě)的。步進(jìn)電機(jī)的驅(qū)動(dòng)可以使其工作在整步、半步和微步模式。最后在電路實(shí)驗(yàn)板上測(cè)試電路的功能和進(jìn)行PCB布局設(shè)計(jì)及制做?!娟P(guān)鍵詞】串行通信步進(jìn)電機(jī)1.導(dǎo)言在當(dāng)今世界上,需要越來(lái)越多的嵌入式工程師激增性的使用微控制器。全球電子設(shè)備中90%是嵌入式系統(tǒng),到2010年嵌入式程序員將是其它類型的程序員的10倍以上。因此,有必要制定不同的工具,用于嵌入式領(lǐng)域培養(yǎng)學(xué)生。同時(shí),在各種嵌入式系統(tǒng)課程的實(shí)驗(yàn)工作上,學(xué)生對(duì)各種接口技術(shù)往往要求增加更多的指導(dǎo)和經(jīng)驗(yàn)的傳授。步進(jìn)電機(jī)廣泛應(yīng)用于自動(dòng)化行業(yè)。各種通信技術(shù)被用來(lái)控制這些電機(jī),包括嵌入式系統(tǒng),個(gè)人電腦和可編程邏輯控制器。作者決定設(shè)計(jì)一個(gè)子卡,這個(gè)卡可以插入教學(xué)嵌入式評(píng)估板。子板的設(shè)計(jì)由步進(jìn)電機(jī)和串行通信接口組成。這個(gè)測(cè)試板開(kāi)發(fā)了一種工具,可以讓學(xué)生學(xué)習(xí)貫徹這兩個(gè)功能在各種自動(dòng)化上的應(yīng)用?;谖⒖刂破鞯牟竭M(jìn)電機(jī)接口是用來(lái)激勵(lì)電機(jī)繞組順序以及精確控制電機(jī)步長(zhǎng)。并行端口的接口是用來(lái)給電機(jī)線圈邏輯信號(hào)的。步進(jìn)電機(jī)驅(qū)動(dòng)并不能直接使用微控制器的信號(hào),必須將微控制器的信號(hào)通過(guò)功率放大器才能驅(qū)動(dòng)步進(jìn)電機(jī)。為了讓使用者更好的控制,微控制器的接口與使用RS-232C串行接口的個(gè)人電腦連通。RS-232C是一個(gè)數(shù)據(jù)終端設(shè)備和數(shù)據(jù)通信設(shè)備之間互連的標(biāo)準(zhǔn)串行二進(jìn)制接口。RS-232C是一種常用的計(jì)算機(jī)串行端口,但更重要的是,它被廣泛應(yīng)用于的簡(jiǎn)單、低速在完成電路板的設(shè)計(jì)后,在電路實(shí)驗(yàn)板上測(cè)試電路。測(cè)試成功后,設(shè)計(jì)及制做了一個(gè)雙層布局的PCB電路板。它包括兩個(gè)DB9連接器,一個(gè)RS-232C接口驅(qū)動(dòng)電路,和用來(lái)驅(qū)動(dòng)兩個(gè)步進(jìn)電機(jī)的4個(gè)步進(jìn)電機(jī)驅(qū)動(dòng)電路。圖1是子板的系統(tǒng)框圖。UART0和UART1用于串行通信端口,P4和P5用于驅(qū)動(dòng)電路的連接。該子板基于瑞薩SKP30626評(píng)估板設(shè)計(jì)圖1子板系統(tǒng)框圖電機(jī)接口模塊代表了步進(jìn)電機(jī)的驅(qū)動(dòng)電路,每個(gè)電機(jī)的驅(qū)動(dòng)電路都包括兩個(gè)LMD18245集成電路芯片。串行接口模塊包括了MAXIM232集成電路芯片。2.子板接口2.1步進(jìn)電機(jī)步進(jìn)電機(jī)系統(tǒng)是一種將激勵(lì)脈沖轉(zhuǎn)換為軸轉(zhuǎn)動(dòng)的電機(jī)旋轉(zhuǎn)裝置。它是一個(gè)無(wú)刷直流電動(dòng)機(jī),其轉(zhuǎn)動(dòng)是離散的角增量,而定子繞組的通電與否可以用編程的方式實(shí)現(xiàn)。之所以轉(zhuǎn)動(dòng)是因?yàn)榻o定子繞組的電極和輔助極之間的相繼通電引起的磁場(chǎng)的相互作用。轉(zhuǎn)子繞組沒(méi)有電,但突出磁化電極。因此,步進(jìn)電機(jī)是一個(gè)數(shù)字電機(jī),其輸入的形式是給定子繞組相繼的通電,其輸出的形式則是離散的步轉(zhuǎn)動(dòng)。這是一個(gè)特別適合用計(jì)算機(jī)控制和數(shù)字控制的驅(qū)動(dòng)器系統(tǒng)。步進(jìn)電機(jī)的繞組可以是單線也可以是雙線。單線是每一個(gè)定子電極都有一個(gè)繞組,所以一共有四根導(dǎo)線。雙線每個(gè)定子電極都有兩個(gè)相同的繞組。步進(jìn)電機(jī)有整步,半步,和微步運(yùn)行模式,任何電機(jī)的輸出模式取決于設(shè)計(jì)的驅(qū)動(dòng)程序。整步模式(標(biāo)準(zhǔn))下步進(jìn)電機(jī)有200轉(zhuǎn)齒,或者說(shuō)電機(jī)每200步轉(zhuǎn)一圈。每轉(zhuǎn)是360°,除以200步就是整步模式下步距角為1.8°。在整步模式下,繞組交替通電,因此,從驅(qū)動(dòng)輸出的一個(gè)脈沖即相當(dāng)于一步。在半步模式下電機(jī)轉(zhuǎn)動(dòng)為400步每轉(zhuǎn)。在這種模式下,先是一個(gè)繞組通電,然后兩個(gè)繞組通電,由此交替,所以轉(zhuǎn)子每次只旋轉(zhuǎn)一半的距離,即0.9°。雖然它提供了略低的扭矩,半步模式減少了在整步模式運(yùn)行下的“跳動(dòng)”。微步控制是將電機(jī)繞組兩極之間的電流的進(jìn)一步細(xì)分的控制方式,微步模式突破了電機(jī)速度的寬泛控制,其多用在精確定位和高分辨率上。2.2步進(jìn)電機(jī)接口步進(jìn)電機(jī)驅(qū)動(dòng)器使用LMD18245T集成電路芯片。由LMD18245T全橋功率放大器構(gòu)成的全電路模塊能驅(qū)動(dòng)控制刷型直流電機(jī)或單相兩極步進(jìn)電機(jī)的電流。如圖2所示。在LMD18245通過(guò)固定時(shí)間關(guān)斷斬波技術(shù)控制電機(jī)電流。根據(jù)反饋,斬波放大器通過(guò)開(kāi)關(guān)橋功率器可以控制和限制電機(jī)繞組中的電流。橋式電路是由4個(gè)固態(tài)功率開(kāi)關(guān)和4個(gè)二極管連接為H狀。圖2描述了LMD18245的內(nèi)部結(jié)構(gòu)。將數(shù)字輸入給數(shù)模轉(zhuǎn)換器,它會(huì)產(chǎn)生相應(yīng)的模擬電壓,作為閾值,將得到的閾值與繞組電流進(jìn)行比較,就能確定循環(huán),它向單穩(wěn)態(tài)多振動(dòng)器提供信號(hào)。如果繞組電流仍少于閾值,在H橋的另半側(cè)裝一個(gè)有源開(kāi)關(guān)和一個(gè)接收器開(kāi)關(guān),供電給繞組兩端的電壓,可以使繞組的電流迅速增加。圖3是H橋的內(nèi)部電路構(gòu)造。H橋的功率級(jí)由4個(gè)DMOS功率開(kāi)關(guān)和與其相連的二極管構(gòu)成。雖然H橋處于導(dǎo)通態(tài),繞組電流增大指數(shù)限制卻取決于電源電壓。隨后關(guān)閉接收器開(kāi)關(guān),這將引起將電壓瞬時(shí)發(fā)送給其他有源開(kāi)關(guān)的體二極管。在二極管壓值下降至電源電壓,二極管箝位的瞬間,并提供了一個(gè)替代系統(tǒng)電流的通路。盡管仍然處于導(dǎo)通態(tài),但它基本上可以使繞組短路以及讓繞組電流再循環(huán),并且使其衰減指數(shù)為零。在改變繞組的電流方向期間,無(wú)論是開(kāi)關(guān)還是體二極管都提供給繞組初始電流一個(gè)衰減通路。圖4中顯示了一個(gè)電機(jī)的驅(qū)動(dòng)電路。請(qǐng)注意,PGND(引腳5)和SGND(引腳12)是在子板上相互獨(dú)立的,但是短接到芯片上,以減少電源接地超過(guò)信號(hào)接地產(chǎn)生的高電流影響。圖2LMD18245T的功能框圖圖3LMD18245T的H橋結(jié)構(gòu)圖4電機(jī)的驅(qū)動(dòng)電路結(jié)構(gòu)圖2.3RS-232C接口串行通信MAX232是一種雙驅(qū)動(dòng)器/接收器,其中包括由電容式電壓發(fā)生器提供給EIA-232電壓強(qiáng)度為單5V的電源支持。接收器轉(zhuǎn)換EIA-232的輸入給TTL/CMOS5V電壓。這些接收器都有一個(gè)1.3V的典型閾值和一個(gè)0.5V典型滯后,并且可以接受±30V的輸入。驅(qū)動(dòng)器將TTL/CMOS的輸入電壓轉(zhuǎn)換為EIA-232的電壓。3.工程設(shè)計(jì)圖5顯示的是一般工程的流程圖。在電路實(shí)驗(yàn)板上進(jìn)行電路測(cè)試和系統(tǒng)功能的驗(yàn)證。然后畫(huà)出電路原理圖,并根據(jù)電路原理圖使用ORCAD對(duì)電路板進(jìn)行布局設(shè)計(jì)。圖5電路板設(shè)計(jì)流程3.1方案設(shè)計(jì)電路板的原理圖的設(shè)計(jì)使用了Cadence公司的PCB制版軟件ORCAD。電路的原理圖可分為兩部分。第一部分包括使用4個(gè)集成電路芯片來(lái)驅(qū)動(dòng)兩個(gè)電機(jī)的步進(jìn)電機(jī)接口部分,第二部分則包括了使用MAXIM232芯片的串行接口。整個(gè)電路板上的驅(qū)動(dòng)電路的電源和接地要合理布局,并且只在需要的地方連線。電路板被設(shè)計(jì)為可以直接插入瑞薩SKP30262板,因此在電路板的布局設(shè)計(jì)時(shí),其尺寸被瑞薩SKP30262板所約束。板子被設(shè)計(jì)為兩層和小心地采取了獨(dú)立的H橋設(shè)計(jì),以便H橋可以從數(shù)字信源承載更大的電壓。除了LMD18245T(220封裝),其他所有組成部分采取表面貼裝,這使我們減少了電路板的體積和成本。圖6是電路板示意圖。3.2ORCAD設(shè)計(jì)電路板的布局設(shè)計(jì)在CIS網(wǎng)列表的幫助下完成。面臨的挑戰(zhàn)是如何規(guī)劃布局,使步進(jìn)電機(jī)驅(qū)動(dòng)器和串行通信路線相對(duì)獨(dú)立,以降低系統(tǒng)的干擾。4.測(cè)試和運(yùn)行在電路板設(shè)計(jì)和制造的過(guò)程中使用了以下方法:(1)理論上計(jì)算額定功率,是電機(jī)額定功率和示意圖的構(gòu)成基礎(chǔ)。(2)電路板上個(gè)別虛擬的步進(jìn)電路和串行電路需要對(duì)其編程。(3)確認(rèn)電路板上電路是工作正常,確認(rèn)電路板上沒(méi)有錯(cuò)誤的連線,然后對(duì)模塊的接口之間進(jìn)行編程。(4)開(kāi)發(fā)電路板的PCB板。(5)測(cè)試印制好的PCB板有沒(méi)有短路和斷路。(6)焊接所有元件和測(cè)試電路板的功能,此時(shí)電路板已經(jīng)準(zhǔn)備好,可以用于不同的實(shí)驗(yàn)室項(xiàng)目。5.結(jié)論和下一步工作該子板可作為學(xué)生在未來(lái)的嵌入式系統(tǒng)課程中的實(shí)驗(yàn)測(cè)試板。隨著模塊的增加,如射頻通信,該子板有可能成為一個(gè)更全面的學(xué)生學(xué)習(xí)板。在這個(gè)項(xiàng)目上,今后的工作包括開(kāi)發(fā)一個(gè)前端,可以去設(shè)定電機(jī)在不同的模式下工作,也能讀出電機(jī)的參數(shù)。在我們項(xiàng)目中RS-232C通信接口已經(jīng)被使用,未來(lái)可以創(chuàng)造性的增加了幾個(gè)新的USB通信應(yīng)用。我們認(rèn)為,該子板將成為一個(gè)有效的工具,將給學(xué)生的項(xiàng)目學(xué)習(xí)、工作提供一個(gè)圖6子板電路圖6.參考資料[1]ConradJ.M.,“IntroducingStudentstotheConceptofEmbeddedSystems,”Proceedingsofthe2004InternationalConferenceonEngineeringEducation,Gainesville,FL,[2]Kamali,B.,“Developmentofanundergraduatestructuredlaboratorytosupportclassicalandnewbasetechnologyexperimentsincommunications,”IEEETransactionsonEducation,vol.37,no.1,Feb,1994,pp.97-105.[3]LMD18245T:NationalSemiconductors/pf/LM/LMD18245.html[4]MAXIM232IC:/quick_view2.cfm/qv_pk/1798[5]DouglasJones'ssteppingmotortutorial/~jones/step/types.html[6]/stepping101.html[7]Mysore,G.D.,Conrad,J.M.,Newberry,B.,“AMicrocontroller-BasedBed-of-NailsTestFixturetoProgramandTestSmallPrintedCircuitBoards”Proceedingsofthe2006SoutheastCon,March31-April2,2006,pp.104–107.附錄Ⅲ文獻(xiàn)原文AStepperMotorandSerialCommunicationInterfaceDaughterBoardforEducationalUseVenkatDronamraju,GurunathAthalye,JamesMConradUniversityofNorthCarolina-Charlottevrdronam,gmathaly,jmconrad@AbstractThispaperpresentsthedesignanddevelopmentofadaughterboardconsistingofsteppermotordriversandserialinterfaces.ThepurposeofthisboardistoprovideembeddedsystemsstudentswithatooltodesignanddevelopautomationapplicationsusingsteppermotorsandsimpleRS-232Cserialcommunications.Thesteppermotorsusedisabipolarsix–wireconfigurationmotor.Softwaredriversforserialcommunicationandthesteppermotorsarewritteninthe‘C’languageusingtheHigh-performanceEmbeddedWorkshop(HEW)IntegratedDevelopmentEnvironmentprovidedwiththeRenesasEmbeddedEvaluationBoard.Thesteppermotorsareprogrammedtodriveinfullstep,halfstep,andmicrostepmode.ThecircuitwastestedonabreadboardforfunctionalityandthePCBlayoutwasdesignedandmanufactured.Keywords:Serialcommunication,steppermotor1.
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 分公司副總經(jīng)理崗位職責(zé)說(shuō)明
- 第19課《大雁歸來(lái)》-統(tǒng)編版七年級(jí)語(yǔ)文上冊(cè)新教材閱讀綜合實(shí)踐+新增課文
- 江蘇省句容市二圣中學(xué)八年級(jí)生物下冊(cè) 第22章 第2節(jié) 生物的變異教案 (新版)蘇科版
- 八年級(jí)生物上冊(cè) 6.15.1《人體內(nèi)物質(zhì)的運(yùn)輸》第1課時(shí)教案 (新版)蘇科版
- 2024-2025學(xué)年高中語(yǔ)文 第三單元 第10課 菱角的喜劇教案 粵教版必修2
- 2024秋二年級(jí)語(yǔ)文上冊(cè) 課文3 9黃山奇石教案 新人教版
- 九年級(jí)化學(xué)上冊(cè) 第14章 第4節(jié)《歐姆定律的應(yīng)用》說(shuō)課稿 蘇科版
- 福建省福清市??阪?zhèn)高中數(shù)學(xué) 第二章 平面向量 2.1 平面幾何中的向量方法教案 新人教A版必修4
- 兒童入園體檢表
- 讀懂食物標(biāo)簽正確選擇食物(未修)
- 洞口封堵工程(混凝土樓板)施工方案
- 臨時(shí)便道施工方案47107
- 部編版五年級(jí)語(yǔ)文上冊(cè)單元教材分析全冊(cè)1-8單元
- 資產(chǎn)評(píng)估案例分析-——以貴州茅臺(tái)酒股份有限公司為例
- TDS-3000B(示波器使用基礎(chǔ)知識(shí))ppt課件
- 《項(xiàng)目管理標(biāo)準(zhǔn)化手冊(cè)》中交一航局
- (完整版)英語(yǔ)專八英美文學(xué)常識(shí)匯總
- (完整版)六宮格數(shù)獨(dú)100題
- 服裝專賣店設(shè)計(jì)(課堂PPT)
- 草莓栽培技術(shù)(課堂PPT)課件
- 昆山市企業(yè)退休人員基本養(yǎng)老金審批表
評(píng)論
0/150
提交評(píng)論