基于STM32的步進電機控制系統(tǒng)_第1頁
基于STM32的步進電機控制系統(tǒng)_第2頁
基于STM32的步進電機控制系統(tǒng)_第3頁
基于STM32的步進電機控制系統(tǒng)_第4頁
基于STM32的步進電機控制系統(tǒng)_第5頁
已閱讀5頁,還剩48頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、基于STM32的步進電機控制系統(tǒng)沈陽航空航天大學2010年6月本文的主要工作是基于STM32步進電機控制系統(tǒng)的設計。隨著越來越多的高科技產品逐漸融入了日常生活中,步進電機控制系統(tǒng)發(fā)生了巨大的變化。單片機、C語言等前沿學科的技術的日趨成熟與實用化,使得步進電機的控制系統(tǒng)有了新的的研究方向與意義。本文描述了一個由STM32散處理器、步進電機、LCD顯示器、鍵盤等模塊構成的,提供基于STM32勺PWMH分技術的步進電機控制系統(tǒng)。該系統(tǒng)采用STM32散處理器為核心,在MDK勺環(huán)境下進行編程,根據鍵盤的輸入,使STM32產生周期性PWM1號,用此信號對步進電機的速度及轉動方向進行控制,并且通過LCD顯示

2、出數據。結果表明該系統(tǒng)具有結構簡單、工作可靠、精度高等特點.關鍵詞:STM32散處理器;步進電機;LCD顯示;PWM&號;細分技術AbstractAswellasthehigh-techproductsgraduallyintegratedintothedailylife,servocontrolsystemhasundergonetremendouschangesSCMandClanguageofthefrontierdisciplinessuchmaturetechnologyandpractical,steeringcontrolsystemisanewresearchdirec

3、tionandmeaningThispaperdescribesaSTM32microprocessors,steering,LCDdisplayandkeyboard,BasedontheSTM32servocontrolsystemofPWMsignal,ThissystemusesSTM32microprocessorasthecore,MDKintheenvironment,accordingtothekeyboardinput,STM32produceperiodicPWMsignal,withthissignaltothevelocityandAngleofsteeringgear

4、control,andthroughtheLCDdisplaydata.Thefeaturesofthesimplehardware,stableoperationandhighprecisionareincarnatedintheproposedsystem.Keywords:STM32microprocessors;Steeringsystem;LCDdisplay;pulsewidthmodulationsignal;Subdividetechnology第1章緒論11.1 課題背景11.2 課題目標及意義21.3 課題任務及要求31.4 課題內容分析與實現(xiàn)31.5 課題論文安排介紹3第

5、2章步進電機控制系統(tǒng)的總體方案論證51 總體方案51 步進電機控制系統(tǒng)硬件方案51 步進電機控制系統(tǒng)軟件方案6第3章系統(tǒng)的硬件設計71 STM32開發(fā)板簡介71 步進電機模塊8 步進電機驅動模塊8 步進電機驅動控制模塊10 步進電機的一些特點11 步進電機的一些基本參數12 步進電機的驅動方法131 A/D轉換模塊13 模擬/數字轉換(ADC)介紹13 模擬/數字轉換(ADC)主要特性13 模擬/數字轉換(ADC)功能描述141 LCD顯示模塊161 硬件電路17第4章控制系統(tǒng)軟件設計184.1.* 控制系統(tǒng)軟件設計步驟184.2.* KeilforARM軟件開發(fā)環(huán)境194.3.* PWM細分

6、技術簡介20* PWM細分技術簡介20* PWM細分技術驅動原理20* PWM細分調壓調速原理224.4.* 主程序設計234.5.* 各模塊程序設計25* 系統(tǒng)初始化25* A/D轉換程序設計26* PWM細分程序設計29* 電機控制程序設計30* LCD顯示程序設計32第5章步進電機控制系統(tǒng)綜合調試與分析331 硬件電路調試331 軟件電路調試341 系統(tǒng)聯(lián)調結果與分析34結論35社會經濟效益分析36參考文獻37致謝38附錄I電路原理圖39附錄R程序清單41附錄IV元器件清單錯誤!未定義書簽。隨著電力電子技術、微電子技術、控制理論以及永磁材料的快速發(fā)展,步進電機得以迅速發(fā)展。在現(xiàn)代工業(yè)生產

7、中,生產機械一般都用電動機拖動。隨著現(xiàn)代化的發(fā)展,工業(yè)自動化水平不斷提高,各種自動控制系統(tǒng)中也日益廣泛地應用各種控制電機。為了提高生產率和保證產品質量,大量的生產機械要求步進電機以不同的速度工作。這就要求人們采用一定的方法來改變機組的轉速,即對步進電機進行調速。對電機的轉速不僅要能調節(jié),而且要求調節(jié)的范圍寬廣,過程平滑,調節(jié)的方法要簡單、經濟。步進電機在上述方面都具有獨到的優(yōu)點,使它得到廣泛的應用。本文針對步進電機具有起動轉距大、體積小、重量輕、轉矩和轉速容易控制以及效率高等十分優(yōu)良的特點,根據自動控制原理,采用PWM0分控制方式,設計了一個步進電機控制系統(tǒng),以更好地對步進電機進行精確而又迅速

8、的控制。課題背景STM3深列32位閃存微控制器使用來自于AR您司具有突破性的Cortex-M3內核,該內核是專門設計于滿足集高性能、低功耗、實時應用、具有競爭性價格于一體的嵌入式領域的要求。Cortex-M3在系統(tǒng)結構上的增強,讓STM32受益無窮;Thumb2?指令集帶來了更高的指令效率和更強的性能;通過緊耦合的嵌套矢量中斷控制器,對中斷事件的響應比以往更迅速;所有這些又都融入了業(yè)界領先的功耗水準。STM3源歹I給MCUB戶帶來了前所未有的自由空間,提供了全新的32位產品選項,結合了高性能、實時、低功耗、低電壓等特性,同時保持了高集成度和易于開發(fā)的優(yōu)勢。由于集成了更豐富的資源、方便使用的架構

9、以及低功耗的特性,加上有競爭力的價格,使得從16位升級到32位變得容易。在工業(yè)生產中,常常要用到步進電機在一些對位置控制要求不高的電機控制系統(tǒng)如傳動控制系統(tǒng)中,傳統(tǒng)電機如步進電機仍有很大的優(yōu)勢,而要對其進行精確而又迅速的控制,就需要復雜的控制系統(tǒng)。步進電機是一種將電脈沖轉化為角位移的執(zhí)行機構。當步進驅動器接收到一個脈沖信號,它就驅動步進電機按設定的方向轉動一個固定的角度(稱為“步距角”),它的旋轉是以固定的角度一步一步運行的。可以通過控制脈沖個數來控制角位移量,從而達到準確定位的目的;同時可以通過控制脈沖頻率來控制電機轉動的速度和加速度,從而達到調速的目的。通過細分來控制步進電機可以更加精確。

10、細分的基本概念為:步進電機通過細分驅動器的驅動,其步距角變小了。如驅動器工作在10細分狀態(tài)時,其步距角只為電機固有步距角的十分之一,也就是:當驅動器工作在不細分的整步狀態(tài)時,控制系統(tǒng)每發(fā)一個步進脈沖,電機轉動1.8°而用細分驅動器工作在10細分狀態(tài)時,電機只轉動了0.18°。細分功能完全是由驅動器靠精確控制電機的相電流所產生的,與電機無關。步進電機的細分技術實質上是一種電子阻尼技術,其主要目的是提高電機的運轉精度,實現(xiàn)步進電機步距角的高精度細分。其次,細分技術的附帶功能是減弱或消除步進電機的低頻振動,低頻振蕩是步進電機(尤其是反應式電機)的固有特性,而細分是消除它的唯一途徑

11、,如果步進電機有時要在共振區(qū)工作(如走圓?。?,選擇細分驅動器是唯一的選擇。驅動器細分后的主要優(yōu)點為:完全消除了電機的低頻振蕩;提高了電機的輸出轉矩,尤其是對三相反應式電機,具力矩比不細分時提高約30-40%;提高了電機的分辨率,由于減小了步距角、提高了步距的均勻度,提高電機的分辨率是不言而喻的。課題目標及意義STM32是近年來發(fā)展非常迅速的處理器,有很好的應用前景。將其應用于步進電機的調速控制,有極大的使用價值。以脈寬調制技術為代表的電機數字驅動技術也在迅猛發(fā)展,將計算機應用于這一領域正好可以發(fā)揮其在數字控制方面的優(yōu)勢.微電子技術和計算機技術的發(fā)展,為計算機控制技術的發(fā)展和應用奠定了堅實的基礎

12、??梢赃@樣說,沒有微處理器的儀器不能稱其為儀器,沒有微型機的控制系統(tǒng)更談不上現(xiàn)代工業(yè)控制系統(tǒng)。隨著微型計算機、超大規(guī)模集成電路、新型電力電子開關器件和傳感器的出現(xiàn),以及自動控制理論、電力電子技術、計算機控制技術的深入發(fā)展,電氣傳動裝置日新月異地更新?lián)Q代,直流傳動系統(tǒng)也在不斷地更新和發(fā)展。步進電機是常用的動力提供元件,在日常生活中占據著重要的地位。步進電機是最常見的一種電機,在各領域中得到廣泛應用。研究步進電機的速度控制,有著非常重要的意義。研究直流電機的控制方法,對提高控制精度、節(jié)約能源等都具有重要意義。本方案以STM32為控制核心,實現(xiàn)普通步進電機的轉速、正反轉調節(jié)功能,為進一步研究和優(yōu)化步

13、進電機控制方法提供基礎。課題任務及要求通過STM32s現(xiàn)對步進電機的精確控制,通過按鍵實現(xiàn)正轉、反轉、加速、減速,并將這些信息通過TFT彩色LCD顯示出來。課題內容分析與實現(xiàn)本設計是一種采用STM32為核心實現(xiàn)步進電機控制系統(tǒng)?;谠O計目標的要求,本設計需要實現(xiàn)的硬件部分是系統(tǒng)的SPGT62C19B電機控制模組以及整個控制系統(tǒng)的編程。首先,根據課題背景綜合成本和控制精度指標等因素,選擇需要的步進電機。其次,基于成本和結構復雜的原因,本設計通過A/D轉換代替鍵盤輸入,將電壓模擬信號轉換為數字信號并通過LCD顯示出來。再次,設計SPGT62C19B電機控制模組,并完成硬件搭建。最后,整體硬件和軟件

14、聯(lián)調,實現(xiàn)任務要求。課題論文安排介紹本文的主要工作是基于STM32的步進電機控制系統(tǒng)的設計,介紹了整個控制系統(tǒng)的設計思想、主要模塊的電路原理、程序結構以及測試結果等內容,整體上分為軟件和硬件的兩大部分來設計。本次課題設計內容安排可分為三部分:第一部分是硬件設計,包括方案主要模塊的電路設計、元器件的選擇等。具體的硬件電路是SPGT62C19B電機控制模組步進電機驅動模塊和STM32開發(fā)板兩大電路模塊。先對每一個模塊的各個芯片測試成功后,再焊接其對應的整個模塊電路,且每一部分都要進行單獨調試,各個部分調試成功后,聯(lián)接調試整個硬件電路,對在途中出現(xiàn)的錯誤進行分析和改正,最后得出結論。第二部分是軟件設

15、計,軟件采用C語言編寫,軟件設計的思想主要是自頂向下,模塊化設計,逐一設計各個子模塊,分別進行調試,最后的連調整個程序,判斷是否達到預期的要求,做出結論。第三部分在軟硬件模塊調試都成功的前提下,進行硬、軟件連調,這是整個控制系統(tǒng)設計的關鍵,也是設計的重點、難點所在。本文對步進電機控制系統(tǒng)的設計進行了詳細的介紹,共分五章。第1章簡要介紹了整個課題的研究背景、目的、意義及整個任務的要求安排;第2章是針對此次課題的任務進行總體方案介紹;第3章具體介紹了步進電機控制系統(tǒng)的硬件設計,包括SPGT62C19B電機控制模塊電路的設計;第4章闡述了步進電機控制系統(tǒng)的軟件設計,包括PWM細分等子程序的設計;第5

16、章是針對硬件調試、軟件調試和整機連調的結果進行了具體的分析和說明。第2章步進電機控制系統(tǒng)的總體方案論證步進電機控制系統(tǒng)的整個設計中最重要的部分是利用PWM細分實現(xiàn)步進電機調速的處理,雖然PWM調速很早就開始研究應用,但如何用PWM細分調速的快速性和準確性至今仍是生產和科研的課題。隨著微電子技術的發(fā)展與普及,更多高性能的單片機應用使得PWM細分實現(xiàn)步進電機PWM調速的快速性和準確性都有了極大的提高??傮w方案根據課題要求,本設計采用STM32cortex-M3處理器,由SPGT62C19B電機控制模塊作為直流電機的驅動芯片,由ADC輸入電位器產生調速命令,用TFT彩色LCD作為顯示模塊。步進電機控

17、制系統(tǒng)硬件方案本系統(tǒng)主要由一塊STM32平臺、SPGT62C19B型步進電機驅動模塊構成,以STM32為核心,包括電機驅動、電機、A/D轉換、LCD顯示等模塊。系統(tǒng)的結構框圖如圖2.1所示。STM32作為主控芯片,通過I/O端口來控制SPGT62C19B型步進電機驅動芯片,從而實現(xiàn)對步進電機的控制。通過ADC輸入電位器產生調速命令反饋給STM32,STM32調節(jié)SPGT62C19B型步進電機驅動模塊的狀態(tài),從而使電機改變轉速和方向。同時,電機轉速可由彩色液晶LCD顯示出來,用ADC輸入電位器來對步進電機的轉動方向和轉速等進行設定。圖2.1控制系統(tǒng)結構框圖步進電機控制系統(tǒng)軟件方案硬件功能的實現(xiàn)離

18、不開軟件的設計與完成。軟件設計是步進電機控制系統(tǒng)設計中最重要、最關鍵的部分,也是本次畢業(yè)設計的難點之處。由于本系統(tǒng)使用STM32平臺,運用KeilforARM開發(fā)環(huán)境,在KeiluVision軟件平臺進行開發(fā)。本課題軟件設計的思想主要是自頂向下,模塊化設計,逐一設計各個子模塊,分別進行調試,最后的連調整個程序,判斷是否達到預期的要求,做出結論。各個部分函數都可相互調用又相對獨立可調,保證調試的便利與程序的可讀性。第3章系統(tǒng)的硬件設計本系統(tǒng)采用STM32乍為主控制器,采用ADC俞入電位器作為輸入部分,步進電機及其驅動電路采用SPGT62C19型步進電機驅動模塊。下面分別對STM32以及相關模塊的

19、特性進行具體介紹。3.1STM32開發(fā)板簡介根據本課題設計的任務要求,須采用STM32乍為開發(fā)平臺,因此本課題設的控制電路由采用ST的STM32F103RB5片及其外圍電路組成。芯片的引腳圖如圖3.1所示。圖3.1STM32F103RB片引腳排列圖1.1.2STM32F103RB開發(fā)板硬件資源特性采用ST的STM32F103RBE片*(72MHz,128KBFlash,20KBSRAM2XSPI,2XI2C,USB,CANPWM2XADC3XUSAR丁3個16位定時器一8位/16位單片機的終結者)工業(yè)級設計,可穩(wěn)定運行于-40到85攝氏度1個串口1個CAN端口1個USB接口1個SD卡插槽1個1

20、60x128圖形點陣彩色TFTLCD標準20針JTAG口,用于下載與調試1個可調模擬電壓控制用于ADC輸入,用來測試STM32F103的模數轉換特性。1只揚聲器用于測試PWM俞出。1只五向游戲桿,作為開關量輸入用。1片I2C器件24C02已經將芯片所有信號引出,方便二次開發(fā)。STM32系歹32位閃存微控制器基于突破性的ARMCortex-M3內核,這是一款專為嵌入式應用而開發(fā)的內核。Cortex-M3內核:英國ARM公司力推內核,致力于替代8位/16位單片機。使用THUMB-2指令集,32位性能,16位密度,與ARM7TDM相比,Cortex-M3內核要快35%代碼減少45%STM32系列產品

21、得益于Cortex-M3在架構上進行的多項改進,包括提升性能的同時又提高了代碼密度的Thumb-2指令集,大幅度提高的中斷響應,而且所有新功能都同時具有業(yè)界最優(yōu)的功耗水平。步進電機模塊步進電機驅動模塊本設計選用專用的電機驅動芯片SPGT62C19BSPGT62C19B機控制模組是為學生以及單片機愛好者學習步進電機和直流電機控制而設計的學習套件。模組采用凌陽SPGT62C19B機驅動芯片,配置兩相步進電機和直流電機各一臺,并提供4位LED數碼管用來顯示電機轉速等信息。模組針對SPCE061A片機設計,可以方便地用排線與SPCE061A簡開發(fā)板(即“61板”)連接,可作為單片機教學、產品開發(fā)前期驗

22、證等輔助工具使用。模組配備的步進電機為35BYJ26型永磁步進電機,工作方式為雙極性兩相四拍。步進電機是一種將電脈沖轉化為角位移的執(zhí)行機構。當步進電機接收到一個脈沖信號,它就按設定的方向轉動一個固定的角度(稱為“步距角”)??梢酝ㄟ^控制脈沖個數來控制角位移量,從而達到準確定位的目的;同時可以通過控制脈沖頻率實現(xiàn)步進電機的調速。SPGT62C19B低電壓單片式步進電機驅動器集成電路芯片,可驅動一臺兩相步進電機,或者兩臺直流電機。它帶有雙路H橋,可分別驅動兩個獨立的PNP功率管。每一個H橋都有各自獨立的使能引腳,因此非常適合于需要獨立控制的步進電機驅動系統(tǒng)。SPGT62C19B?出電壓可達40v,

23、輸出電流可達750mA由輸入的邏輯電平來決定輸出脈沖的寬度及頻率,所以由這款芯片組成的電機驅動系統(tǒng)將脈沖發(fā)生器、脈沖分配器、脈沖放大器合為一體,省去了很多外圍器件。SPGT62C19的內部由兩組完全相同的控制電路組成了兩路輸出通道。輸入控制信號經前級緩沖后送入片內控制器,然后由控制部分進行處理并驅動晶體管,最后由OU琢口輸出驅動信號以控制電機的運行。SPGT62C19的控制腳有如下6個:表3.2.1SPGT62C19B的控制引腳引腳名稱用途20I01通道1的電流大小控制17I11通道1的電流大小控制16PHASE1通道1的電流力1可拴制8I02通道2的電流大小控制9I12通道2的電流大小控制1

24、0PHASE2通道2的電流方向控制以通道1為例,控制口I01與I11的不同邏輯組合可使通道1輸出端產生不同大小的電流輸出:表3.2.2控制腳I01與I11邏輯組合與輸出電流的關系I01邏輯值I11邏輯值輸出電流00Imax102/3*Imax011/3*Imax110上表中,Imax是輸出電流的上限值,它與圖2.3中Vref和Rs的值有關。其關系式為:Imax=Vref/10*RsPHASE1的邏輯電平值決定了該通道的電流輸出方向。PHASE1與電流方向的對應關系表3.2.3控制腳PHASE1與輸出電流的關系PHASE1輯值輸出電流方向0OUT1B->OUT1A1OUT1A->OU

25、T1B步進電機驅動控制模塊步進電機作為執(zhí)行元件,是機電一體化的關鍵產品之一,廣泛應用在各種自動化控制系統(tǒng)中。隨著微電子和計算機技術的發(fā)展,步進電機的需求量與日俱增,在各個國民經濟領域都有應用。步進電機是一種將電脈沖轉化為角位移的執(zhí)行機構。當步進驅動器接收到一個脈沖信號,它就驅動步進電機按設定的方向轉動一個固定的角度(稱為“步距角”),它的旋轉是以固定的角度一步一步運行的。可以通過控制脈沖個數來控制角位移量,從而達到準確定位的目的;同時可以通過控制脈沖頻率來控制電機轉動的速度和加速度,從而達到調速的目的。在非超載的情況下,電機的轉速、停止的位置只取決于脈沖信號的頻率和脈沖數,而不受負載變化的影響

26、,即給電機加一個脈沖信號,電機則轉過一個步距角。這一線性關系的存在,加上步進電機只有周期性的誤差而無累積誤差等特點。使得在速度、位置等控制領域用步進電機來控制變的非常的簡單。雖然步進電機已被廣泛地應用,但步進電機并不能象普通的直流電機,交流電機在常規(guī)下使用。它必須由雙環(huán)形脈沖信號、功率驅動電路等組成控制系統(tǒng)方可使用。因此用好步進電機卻非易事,它涉及到機械、電機、電子及計算機等許多專業(yè)知識。步進電機可以作為一種控制用的特種電機,利用其沒有積累誤差(精度為100%)的特點,廣泛應用于各種開環(huán)控制。現(xiàn)在比較常用的步進電機包括反應式步進電機(VR、永磁式步進電機(PM、混合式步進電機(HB和單相式步進

27、電機等。永磁式步進電機一般為兩相,轉矩和體積較小,步進角一般為7.5度或15度;反應式步進電機一般為三相,可實現(xiàn)大轉矩輸出,步進角一般為1.5度,但噪聲和振動都很大。反應式步進電機的轉子磁路由軟磁材料制成,定子上有多相勵磁繞組,利用磁導的變化產生轉矩。混合式步進電機是指混合了永磁式和反應式的優(yōu)點。它又分為兩相和五相:兩相步進角一般為1.8度而五相步進角一般為0.72度。這種步進電機的應用最為廣泛,也是本次細分驅動方案所選用的步進電機。步進電機的一些特點.一般步進電機的精度為步進角的3-5%,且不累積。.步進電機外表允許的最高溫度。步進電機溫度過高首先會使電機的磁性材料退磁,從而導致力矩下降乃至

28、于失步,因此電機外表允許的最高溫度應取決于不同電機磁性材料的退磁點;一般來講,磁性材料的退磁點都在攝氏130度以上,有的甚至高達攝氏200度以上,所以步進電機外表溫度在攝氏80-90度完全正常。.步進電機的力矩會隨轉速的升高而下降。當步進電機轉動時,電機各相繞組的電感將形成一個反向電動勢;頻率越高,反向電動勢越大。在它的作用下,電機隨頻率(或速度)的增大而相電流減小,從而導致力矩下降。.步進電機低速時可以正常運轉,但若高于一定速度就無法啟動,并伴有嘯叫聲。步進電機有一個技術參數:空載啟動頻率,即步進電機在空載情況下能夠正常啟動的脈沖頻率,如果脈沖頻率高于該值,電機不能正常啟動,可能發(fā)生丟步或堵

29、轉。在有負載的情況下,啟動頻率應更低。如果要使電機達到高速轉動,脈沖頻率應該有加速過程,即啟動頻率較低,然后按一定加速度升到所希望的高頻(電機轉速從低速升到高速)。步進電動機以其顯著的特點,在數字化制造時代發(fā)揮著重大的用途。伴隨著不同的數字化技術的發(fā)展以及步進電機本身技術的提高,步進電機將會在更多的領域得到應用。步進電機的一些基本參數電機固有步距角:它表示控制系統(tǒng)每發(fā)一個步進脈沖信號,電機所轉動的角度。電機出廠時給出了一個步距角的值,如86BYG250“電機給出的值為0.9°/1,8°(表示半步工作時為0.9°、整步工作時為1.8°),這個步距角可以稱之

30、為電機固有步距角,它不一定是電機實際工作時的真正步距角,真正的步距角和驅動器有關。步進電機的相數:是指電機內部的線圈組數,目前常用的有二相、三相、四相、五相步進電機。電機相數不同,其步距角也不同,一般二相電機的步距角為0.9°/1.8°、三相的為0.75°/1.5°、五相的為0.36°/0.72°。在沒有細分驅動器時,用戶主要靠選擇不同相數的步進電機來滿足自己步距角的要求。如果使用細分驅動器,則相數將變得沒有意義,用戶只需在驅動器上改變細分數,就可以改變步距角。保持轉矩(HOLDINGTORQUE是指步進電機通電但沒有轉動時,定子鎖住

31、轉子的力矩。它是步進電機最重要的參數之一,通常步進電機在低速時的力矩接近保持轉矩。由于步進電機的輸出力矩隨速度的增大而不斷衰減,輸出功率也隨速度的增大而變化,所以保持轉矩就成為了衡量步進電機最重要的參數之一。比如,當人們說2N.m的步進電機,在沒有特殊說明的情況下是指保持轉矩為2N.m的步進電機。步進電機的驅動方法步進電動機不能直接接到工頻交流或直流電源上工作,而必須使用專用的步進電動機驅動器,如圖3.5.1所示,它由脈沖發(fā)生控制單元、功率驅動單元、保護單元等組成。圖中點劃線所包圍的二個單元可以用微機控制來實現(xiàn)。圖3.5.1步進電機驅動控制器框圖A/D轉換模塊本次設計采用ADC俞入電位器作為輸

32、入部分。模擬/數字轉換(ADC)介紹12位ADC是一種逐次逼近型模擬數字轉換器。它有18個通道,可測量16個外部和2個內部信號源。各通道的A/D轉換可以單次、連續(xù)、掃描或間斷模式執(zhí)行。ADC的結果可以左對齊或右對齊方式存儲在16位數據寄存器中。模擬/數字轉換(ADC)主要特性12-位分辨率轉換結束,注入轉換結束和發(fā)生模擬看門狗事件時產生中斷單次和連續(xù)轉換模式從通道0到通道n的自動掃描模式自校準帶內嵌數據一致的數據對齊通道之間采樣間隔可編程規(guī)則轉換和注入轉換均有外部觸發(fā)選項間斷模式雙重模式(帶2個ADC的器件)ADC轉換時間:-STM32F103xx增強型產品:ADC時鐘為56MHz時為1s(A

33、DC時鐘為72MHz為1.17ps)-STM32F101xx基本型產品:ADC時鐘為28MHz時為1s(ADC時鐘為36MHz為1.55ps)ADC供電要求:2.4V到3.6VADC輸入范圍:VREF-<VIN<VREF+規(guī)則通道轉換期間有DMA請求產生。3.3.3模擬/數字轉換(ADC)功能描述ADCFF關控制通過設置ADC_CR倚存器的ADONB可給ADC上電。當第一次設置ADON立時,它將ADC從斷電狀態(tài)下喚醒。ADC上電延遲一段時間后(tSTAB),再次設置ADONa時開始進行轉換。通過清除ADONB可以停止*換,并將ADC置于斷電模式。在這個模式中,ADC幾乎不耗電(僅幾

34、個pA)。單次轉換模式單次轉換模式里,ADC只執(zhí)行一次轉換。這個模式既可通過設置ADC_CR鬲存器白ADON立(只適用于規(guī)則通道)啟動也可通過外部觸發(fā)啟動(適用于規(guī)則通道或注入通道),這時CONTa為00一旦選擇通道的轉換完成:如果一個規(guī)則通道被轉換:轉換數據被儲存在16位ADC_DFW存器中EOC(專換結束)標志被設置如果設置了EOCIE,則產生中斷。如果一個注入通道被轉換:轉換數據被儲存在16位的ADC_DRJ倚存器中JEOC注入轉換結束)標志被設置如果設置了JEOCIE位,則產生中斷。然后ADC停止。連續(xù)轉換模式在連續(xù)轉換模式中,當前面ADC轉換一結束馬上就啟動另一次轉換。此模式可過外部

35、觸發(fā)啟動或通過設置ADC_CR鬲存器上的ADONB啟動,此時CONT位是1。每個轉換后:如果一個規(guī)則通道被轉換:轉換數據被儲存在16位的ADC_DFW存器中EOC(專換結束)標志被設置如果設置了EOCIE,則產生中斷。如果一個注入通道被轉換:轉換數據被儲存在16位的ADC_DRJ倚存器中JEOC注入轉換結束)標志被設置如果設置了JEOCIE位,則產生中斷。ADC管腳:名稱注解VREF+輸入,模擬經委正極ADCS用的高端/正極參考電壓,2.4V<VREF-KVDDAVDDA輸入,模擬電源等效于VDD勺模擬電源且:2.4V<VDDA<VDD(3.6V)VREF-輸入,模擬經委負極

36、AD/t用的低端/負極參考電壓,VREF-=VSSAVSSA輸入,模擬電源地等效于VSS勺模擬電源地ADC_IN15:0模擬輸入信號16個模擬輸入通道3.4LCD顯示模塊顯示電路是本設計硬件的主要構成部分,STM3沙卜接TFT模塊,MzT24彩色TFT模塊是一個2.4英寸的TFT模塊,內置TFT控制器,對外連接直接通過8位的8080總線進行指令和數據的傳輸。MzT2的像素點數為240X320,色彩7度為16位色,也就是每一個像素點需要用16位的數據來表示其顯示的內容。MzT24奠塊的顯示操作非常簡便,需要改變某一個像素點的顏色時,只需要對該點所對應的2個字節(jié)的顯存進行操作即可。這部分電路連接時

37、主要是把數據準確穩(wěn)定的顯示出來,因此連接電路時需注意端口對應的準確連接,否則嚴重影響數據顯示的穩(wěn)定,甚至出現(xiàn)顯示不出來數據。在外接LCD顯示時,需在LED_A端口外接一個電路放大電壓,否則無法達到需要的電壓值,使電壓由3.3V放大到5V,這樣才能夠點亮LCD顯示器,當鍵盤的輸入量經過AD轉換和STM32微處理器進行數據的處理,由模擬量轉換成數據量,傳給LCD進行數據的顯示。本系統(tǒng)采用型號為MzT24彩色TFT模塊的LCD,因為STM32開發(fā)板Z32R所使用的LCD也為此型號,技術資料齊全,縮短開發(fā)周期。擴展LCD接口原理圖如圖所示。3.5硬件電路硬件電路實物圖如圖3.5所示:第4章控制系統(tǒng)軟件

38、設計控制系統(tǒng)軟件設計步驟對于一個完整的嵌入式應用系統(tǒng)的開發(fā),硬件的設計與調試工作僅占整個工作量的一半,應用系統(tǒng)的程序設計也是嵌入式系統(tǒng)設計一個非常重要的方面,程序的質量直接影響整個系統(tǒng)功能的實現(xiàn),好的程序設計可以克服系統(tǒng)硬件設計的不足,提高應用系統(tǒng)的性能,反之,會使整個應用系統(tǒng)無法正常工作。不同于基于PC平臺的程序開發(fā),嵌入式系統(tǒng)的程序設計具有其自身的特點,在編寫嵌入式系統(tǒng)應用程序時,可采取如下幾個步驟:(1)明確所要解決的問題:根據問題的要求,將軟件分成若干個相對獨立的部分,并合理設計軟件的總體結構(2)合理配置系統(tǒng)的資源:與基于8位或16位微控制器的系統(tǒng)相比較,基于32位微控制器的系統(tǒng)資源

39、要豐富得多,但合理的資源配置可最大的限度發(fā)揮系統(tǒng)的硬件潛能,提高系統(tǒng)的性能。對于一個特定的系統(tǒng)來說,其系統(tǒng)資源,如Flash、EEPROM、SDRAM、中斷控制等,都是有限的,應合理配置系統(tǒng)資源。(3)程序的設計、調試與優(yōu)化:根據軟件的總體結構編寫程序,同時采用各種調試手段,找出程序的各種語法和邏輯錯誤,最后應使各功能程序模塊化,縮短代碼長度以節(jié)省存儲空間并減少程序的執(zhí)行時間。止匕外,由于嵌入式系統(tǒng)一般都應用在環(huán)境比較惡劣的場合,易受各種干擾,從而影響到系統(tǒng)的可靠性,因此,應用程序的抗干擾技術也是必須考慮的,這也是嵌入式系統(tǒng)應用程序不同于其他應用程序的一個重要特點。系統(tǒng)的軟件程序是通過對硬件設

40、備的控制來完成控制任務的,只有充分了解硬件系統(tǒng)的工作過程才能確定軟件的任務,最終達到完美的統(tǒng)一。在進行軟件程序編寫之前首先要進行系統(tǒng)的需求分析,以確定系統(tǒng)要實現(xiàn)的功能,明確系統(tǒng)最終的任務指標。在本課題中,軟件主要實現(xiàn)的是驅動電機、數據處理、通信、PWM信號產生等功能。因為直接編寫整套程序很煩瑣并且容易出現(xiàn)錯,所以我們可以采用自上向下逐層分解的方式,把復雜的系統(tǒng)進行合理分解。將軟件劃分為若干個相互獨立的部分,再根據各部分的關系設計出軟件的整體框架。在程序設計時盡可能采用結構化模塊設計,根據軟件任務導出軟件模塊,每個軟件模塊功能要單一,盡量把各個模塊之間的聯(lián)系減少到最底。KeilforARM軟件開

41、發(fā)環(huán)境KeiluVision調試器可以幫助用戶準確的調試ARMS件的片內外圍功能(中斷、I/O口、A/D轉換器和PWMK塊等功能)ULINKUSB-JTAG專換器將PC機的US端口與用戶的目標硬件相連(通過JTAG或OCD,使用戶可在目標硬件上調試代碼。通過使用KeiluVisionIDE/調試器和ULINKUSB-JTAG專換器,用戶可以很方便地編輯、下載和在實際的目標硬件上測試嵌入式程序。圖4.1Keil軟件開發(fā)平臺PWM細分技術簡介步進電機的細分控制,從本質上講是通過對步進電機的勵磁繞組中電流的控制使步進電機內部的合成磁場為均勻的圓形旋轉磁場,從而實現(xiàn)步進電機步距角的細分。一般情況下,合

42、成磁場矢量的幅值決定了步進電機旋轉力矩的大小,相鄰兩合成磁場矢量之間夾角的大小決定了步距角的大小。因此,要想實現(xiàn)對步進電機包轉矩的均勻細分控制,必須合理控制電機繞組中的電流,使步進電機內部合成磁場的幅值恒定,且每個進給脈沖所引起的合磁場的角度變化也要均勻。PWM細分技術簡介細分的基本概念為:步進電機通過細分驅動器的驅動,其步距角變小了。如驅動器工作在10細分狀態(tài)時,其步距角只為電機固有步距角的十分之一,也就是:當驅動器工作在不細分的整步狀態(tài)時,控制系統(tǒng)每發(fā)一個步進脈沖,電機轉動1.8°而用細分驅動器工作在10細分狀態(tài)時,電機只轉動了0.18°。細分功能完全是由驅動器靠精確控

43、制電機的相電流所產生的,與電機無關。步進電機的細分技術實質上是一種電子阻尼技術,其主要目的是提高電機的運轉精度,實現(xiàn)步進電機步距角的高精度細分。其次,細分技術的附帶功能是減弱或消除步進電機的低頻振動,低頻振蕩是步進電機(尤其是反應式電機)的固有特性,而細分是消除它的唯一途徑,如果步進電機有時要在共振區(qū)工作(如走圓?。?,選擇細分驅動器是唯一的選擇。PWM細分技術驅動原理所謂細分驅動就是把機械步距角細分成若干個電的步距角,當轉子從一個位置轉到下一個位置的時候,會出現(xiàn)一些“暫態(tài)停留點”。這樣使得電機啟動時的過調量或者停止時的過調量就會減小,電機軸的振動也會減小,使電機轉子旋轉過程變得更加平滑,更加細

44、膩,從而減小了噪聲。其電機驅動示意圖如圖4.2所示陳沖信號四生功事放大券圖4.2電機驅動示意圖當分別給各相繞組通電時,各相繞組產生的旋轉磁場如下:僅有A相導通時,旋轉磁場指向A;僅有B相導通時,旋轉磁場指向B;僅有C相導通時,旋轉磁場指向C;僅有D相導通時,旋轉磁場指向d依次為各相繞組通電,每切換一次,旋轉磁場矢量轉過90°,電機轉過一個步距角1.80o當旋轉磁場矢量轉過360°時,電機轉過一個齒距,這種工作方式稱為整步工作。如果改變上述加電過程,采用四相八拍工作,即通電順序依次為:AABBBCCCD-D0A4I此工作方式稱半步工作,旋轉磁場的矢量變化如圖4.3所示。每改變

45、一次通電狀態(tài),旋轉磁場的矢量轉過45°。圖4.3四細分驅動磁場矢量圖同理,旋轉磁場轉過360,電機轉過一個齒距。由半步原理給予啟發(fā),如果讓旋轉磁場矢量每次轉過22.5,這樣就實現(xiàn)了四細分驅動。其旋轉磁場矢量變化如圖4.4所示BD圖4.4步進電機四細分驅動磁場矢量圖為了使電機輸出轉距大小一致,也就是使電機勻速轉動,我們控制流入A,B,C,D各相電流的大小,具體按公式sin2a+cos2a=1來計算。圖4.5給出了四細分驅動時各相電機輸入電流值的變換曲線。圖4.5四細分驅動轉距均勻輸出原理圖4.3.3PWM細分調壓調速原理電流矢量恒幅均勻旋轉細分驅動方法。同時改變兩相電流的大小,使電流合

46、成矢量恒幅均勻旋轉。這種方式可稱為步進電機的模擬運行,它是一種基于交流同步電機概念的特殊細分技術,實質是對運行于交流同步電機狀態(tài)的步進電機所受的交流模擬信號在一個周期內細分,即每個細分點對應于一個交流值。當細分數相當大時,例如本系統(tǒng)中將一個四分之一周期分成4096個點,電機繞組的電流信號就逼近模擬連續(xù)信號。這種細分技術可以極大地提高步進電機的分辨率和運行穩(wěn)定性。電流合成矢量的旋轉示意圖如圖4.6所示。圖4.6電流合成矢量的旋轉示意圖步進電動機的細分控制函數數學模型:ia=im*cosXib=im*sinX式中:iaA相繞組電流ibB相繞組電流x控制參數im電流幅值cosx一控制參數余弦值sin

47、x一控制參數正弦值主程序設計本次設計的軟件部分采用模塊化的設計思想,將各個功能都編成了相應的子程序。程序運行時,通過主程序的調用及相應模塊之間的嵌套調用,實現(xiàn)系統(tǒng)的整體功能。開始運行程序,系統(tǒng)時鐘、GPIQNVIGA/D轉換分別進行初始化,讀取A/D轉換值判斷,如果轉換值大于0,則步進電機正轉,否則步進電機反轉。如果轉換值大于170,則步進電機最大速度正轉。如果轉換值小于-170,則步進電機最大速度反轉。如果讀取的A/D轉換值與顯示的值一樣,則繼續(xù)讀取A/D值。如果讀取值與顯示值不一樣,則重新計算顯示。主程序流程圖如圖4.7所示。各模塊程序設計本次課程設計軟件程序包括A/D轉換子程序、PWMB

48、分子程序、電機控制子程序、LCD顯示子程序構成。系統(tǒng)初始化本設計所需的STM32勺外設包括PAD、PB口、PC口和定時器端口,所以也要對外設的時鐘進行設置。由于PAD、PB口、PC口在APB1系統(tǒng)總線外設上,定時器TIM2和TIM3在APB2系統(tǒng)總線外設上,所以要對APB1和APB2總線的時鐘頻率進行設置。經過APB1與APB2的分頻,將SYSCLK專換成可以進行外設及TIM可以接收的系統(tǒng)時鐘。在時鐘初始化子程序中先對系統(tǒng)時鐘的模式進行選擇,即將系統(tǒng)時鐘設置為HSE奠式(外部時鐘模式),然后設置AHB寸鐘等于系統(tǒng)時鐘,且設置了低速或高速AHB最后使能的時鐘,時鐘初始化子程序的流程圖如下圖。圖4

49、.8時鐘初始化流程圖本課設中需要對STM32勺端口進行程序的配置,下為PA口的配置程序,GPIO_InitTypeDefGPIO_InitStructure;GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_2|GPIO_Pin_0;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOA,&GPIO_InitStructure)根據指定的參數初始化外設GPIOA

50、U存器,首先GPIO_InitStructure.GPIO_Pin選擇待設置的GPIOA管腳,通過使用操作符“|”一次選中了多個管腳,選擇了PA0端口、PA2端口,PA6端口、PA7端口,GPIO_Speed用以設置選中管腳的速率,管腳的速率有三種:10MHz2MHzffi50MHz由于STM32雖大的處理能力,為了能夠達系統(tǒng)速率的提高,選擇了端口的最高輸出速率為50MHzGPIO_Mod刈以設置選中管腳的工作狀態(tài)。,GPIO端口有八種工作狀態(tài):GPIO_Mode_AIN真擬輸入,GPIO_Mode_IN_FLOATING空輸入,GPIO_Mode_IPD下拉輸入,GPIO_Mode_IPU上

51、拉輸入,GPIO_Mode_Out_OtDF漏輸出,GPIO_Mode_Out_PPf隹挽輸出,GPIO_Mode_AF_OD用開漏輸出,GPIO_Mode_AF_P應用推挽輸出。由于選擇的PA2端口和PA6端口需要產生PWM1號,因此選擇了復用推挽輸出的工作狀態(tài),需要設置注意:當某管腳設置為上拉或者下拉輸入模式,使用寄存器Px_BSRRffiPxBRR。GPIO_Modcfc許同時設置GPIO方向(輸入/輸出)和對應的輸入/輸出設置。當I/O端口被配置為輸出時:(1)輸出緩沖器被激活一開漏模式:輸出寄存器上的0'激活N-MOS而輸出寄存器上的1'將端口置于高阻狀態(tài)(P-MOS

52、從不被激活)。一推挽模式:輸出寄存器上的0'激活N-MOS而輸出寄存器上的1'將激活P-MOS(2)施密特觸發(fā)輸入被激活(3)弱上拉和下拉電阻被禁止(4)出現(xiàn)在I/O腳上的數據在每個APB2時鐘被采樣到輸入數據寄存器(5)在開漏模式時,對輸入數據寄存器的讀訪問可得到I/O狀態(tài)(6)在推挽式模式時,對輸出數據寄存器的讀訪問得到最后一次寫的值。A/D轉換程序設計在開始ADC轉換和14個時鐘周期后,EOC標志被設置,16位ADC數據寄存器包含轉換的結果,ADC在開始精確轉換前需要一個穩(wěn)定時間Tstab0時序圖如下在ADC初始化設置時,首先開啟AHB外設時鐘使能寄存器DMA1時鐘,定義

53、轉換數據量,設置DMA勺通道1的初始化,獨立地選擇通道的采樣時間,在通道1設置看門狗,開啟ADC1并啟動轉換,應用連續(xù)轉換模式,使用DMA奠式,接著便開始轉換規(guī)則通道,完成由模擬量到數據量的轉變。voidadc_Init(void)/GPIOA->CRL&=0x0000000F;/*setPIN1analoginput(seestm32_Init.c)*/RCC->AHBENR|=(1<<0);/*enableperipheralclockforDMA*/DMA1_Channel1->CMAR=(unsignedlong)&analog;/*set

54、chnlmemoryaddress*/DMA1_Channel1->CPAR=(unsignedlong)&(ADC1->DR);/*setchn1peripheraladdress*/DMA1_Channel1->CNDTR=3;/*transmit3words*/DMA1_Channel1->CCR=0x00002520;/*configureDMAchannel1*/DMA1_Channel1->CCR=0x000025A0;/*configureDMAchannel1*/*circularmode,memoryincrementmode*/*mem

55、ory&peripheralsize16bit*/*channelpriotityhigh/DMA1_Channel1->CCR|=(1<<0);/*enableDMAChanne1/RCC->APB2ENR|=(1<<9);/*enableperiperalclockforADC1*/ADC1->SQR1=0x00200000;/*threeconversions/ADC1->SQR3=(3<<10)|(2<<5)|(1<<0);/*setordertochn1-chn2chn3*/ADC1->

56、SMPR2=(5<<9)(5<<6)(5<<3);/*setsampletime(55,5cycles)*/ADC1->CR1=0x00000100;/*useindependantmode,SCANmode*/ADC1->CR2=0X000E0103;conversion*/*/*/ADC1->CR2|=0x00500000;*/)/*dataalignright,cont.EXTSEL=SWSTARTenableADC,DMAmode/*startSWconversion4.5.3PWM細分程序設計脈沖寬度調制(PWM是英文“Pulse

57、WidthModulation”的縮寫,簡稱脈寬調制。它是利用微處理器的數字輸出來對模擬電路進行控制的一種非常有效的技術,廣泛應用于測量,通信,功率控制與變換等許多領域。實現(xiàn)STM32t時器的PWM信號的產生的子程序如下,#include"stm32f10x.h”structMotor2P_Table/細分表結構unsignedcharmQuadrant;/象限0-3unsignedcharmX_Pwm;/x輸出的PWMunsignedcharmY_Pwm;/y輸出的PWM);structMotor2PunsignedcharmTableld;/細分表IDunsignedcharmTask;/馬達驅動的任務轉移號unsig

溫馨提示

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

評論

0/150

提交評論