基于STM32的小車控制_第1頁
基于STM32的小車控制_第2頁
基于STM32的小車控制_第3頁
基于STM32的小車控制_第4頁
基于STM32的小車控制_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、對于小車的控制,即是對于電機的控制。電機作為機電能量轉(zhuǎn)換裝置,其應(yīng)用范圍已遍及國民經(jīng)濟的各個領(lǐng)域以及人們的日常生活中,所以怎么更好的對電機進行控制就顯得尤為重要?;贑ortex- M3內(nèi)核的STM32F10x系列芯片是新型的32位嵌入式微處理器,其性能優(yōu)良,移植性好,提高了對直流電機的控制效率,并對控制系統(tǒng)進行模塊化設(shè)計,有利于智能小車的功能擴展和升級。本論文主要分析了基于STM32F103的小車控制系統(tǒng)的設(shè)計過程。此系統(tǒng)主要包括STM32F103控制器、液晶顯示電路、鍵盤控制電路、電機驅(qū)動電路、紅外探測電路、觸角檢測電路等。以STM32F103主控芯片及其外圍擴展電路實現(xiàn)系統(tǒng)整體功能;小車

2、基本運動模式的選擇及速度調(diào)節(jié)用按鍵開關(guān)式的鍵盤輸入實現(xiàn);同時液晶模塊實時顯示小車運動參數(shù);用紅外探測電路實現(xiàn)小車循跡功能;用觸角傳感檢測模塊實現(xiàn)小車簡單避障功能。在硬件設(shè)計的基礎(chǔ)上提出了實現(xiàn)電機控制功能、LCD顯示功能及小車簡單循跡和避障功能的軟件設(shè)計方案,并在STM32集成開發(fā)環(huán)境IAR EWARM下編寫了控制程序。關(guān)鍵詞:PWM,STM32F103,電機,傳感器ABSTRACTThe controllingto the caristhe controlling to the motor.As a mechanical and electrical energy conversion dev

3、ices, motor has been applied in every field of national economy and people's daily life,therefore,howto control the motor better is particularly important.The STM32F10x series chipbased on Cortex-M3 kernel is the new32-bit embedded MCU, which have the good performance and portability, and the ST

4、M32F10x have improved the efficiency of DC motor control, furthermore, the modular designofcontrol system is helpful for function expansion and upgrades. This paper mainly analyzes the design process of the cars control system ,which usesthe STM32F103 as a master chip. This system primarily contains

5、 the STM32F103controller, LCDcircuit, the control circuit of keyboard, the circuit of motor-driven,the infrared detection circuit, the circuit of tentacles sensor etc.In this design, the whole system is controlled by the chip STM32F103 and its peripheral extended circuit;the basicmodels selection an

6、d speed accommodation can realize by the input of keyboard; at the moment , LCD module display the cars moving parameters real-timely; the infrared detection realize cars tracing function; tentacles sensor module complete the cars simple obstacle-avoidance function. Based on Hardwaredesign, the pape

7、rputs forwarda software design scheme to realize the motor controlling, LCD display function , the cars simple trace and obstacle avoidance function. Then the control codeis written on IAR EWARM 5.3 which is an IDEofSTM32F103.KEY WORDS: PWM, STM32F103, motor, sensor目錄前言1第1章緒論21.1 STM32芯片介紹2STM32處理器的

8、分類21.1.2 STM32處理器的內(nèi)部結(jié)構(gòu)及特點31.1.3 TIMx定時器介紹41.2 小車及其驅(qū)動器介紹61.2.1 小車結(jié)構(gòu)及功能簡介61.2.2 電機驅(qū)動電路簡介7第2章小車控制系統(tǒng)硬件設(shè)計92.1 系統(tǒng)功能實現(xiàn)及需求分析92.2 主要電路設(shè)計102.2.1 STM32F103及外圍電路設(shè)計102.2.2 電源電路設(shè)計122.2.3 電機驅(qū)動電路設(shè)計122.2.4 液晶顯示電路設(shè)計132.2.5 鍵盤擴展電路設(shè)計142.2.6 觸角探測電路設(shè)計152.2.7 紅外探測電路設(shè)計15第3章小車控制系統(tǒng)軟件設(shè)計173.1 IAR開發(fā)環(huán)境介紹173.2 程序設(shè)計思路及部分模塊程序183.2.

9、1 程序設(shè)計思路183.2.2 按鍵子程序193.2.3 循跡子程序213.2.4 自由行走子程序223.2.5 LCD顯示子程序23第4章結(jié)論24致謝25參考文獻26附錄27前言隨著計算機、微電子、信息技術(shù)的快速發(fā)展,智能化技術(shù)的開發(fā)速度越來越快,程度越來越高,廣泛應(yīng)用于海洋開發(fā)、宇宙探測、工農(nóng)業(yè)生產(chǎn)、軍事、社會服務(wù)、娛樂等各個領(lǐng)域。智能電動小車系統(tǒng)以迅猛發(fā)展的汽車電子為背景,涵蓋了控制、模式識別、傳感技術(shù)、電子、電氣、計算機、機械等多個學(xué)科,主要由路徑識別、角度控制及車速控制等功能模塊組成,被應(yīng)用于隧道探測、機器人、考古、娛樂等許多方面。因此,對智能小車的研究具有重要的實際意義。嵌入式技術(shù)

10、依靠其體積小、成本低、功能強等特點,適應(yīng)了智能化發(fā)展的最新要求。單片機作為控制系統(tǒng)的微處理器,在數(shù)據(jù)處理和代碼存儲等方面都已經(jīng)無法滿足系統(tǒng)的要求,ARM微處理器資源豐富,具有良好的通用性。Cortex-M3是ARM公司最新推出的第一款基于ARMv7體系的處理器內(nèi)核。它主要針對MCU領(lǐng)域,在存儲系統(tǒng)、中斷系統(tǒng)、調(diào)試接口等方面做了較大的改進,有別于過去的ARM7處理器;Cortex-M3具有高性能、低功耗、極低成本、穩(wěn)定等諸多優(yōu)點,非常適合汽車電子、工業(yè)控制系統(tǒng)、醫(yī)療器械、玩具等領(lǐng)域?;贑ortex-M3內(nèi)核的STM32系列處理器于2007年由ST公司率先推出,它集先進Cortex-M3內(nèi)核結(jié)構(gòu)

11、、出眾創(chuàng)新的外設(shè)、良好的功耗和低成本于一體,極大的滿足自動控制系統(tǒng)設(shè)計要求。作為先進的32位通用微控制器的領(lǐng)跑者,STM32以其出眾的性能、豐富且靈活的外設(shè)、很高的性價比以及令人意外的功耗水準,使其自面世以來得到眾多設(shè)計者的青睞,眾多行業(yè)領(lǐng)導(dǎo)者紛紛選用STM32作為新一代產(chǎn)品的平臺。因此將STM32F103應(yīng)用于智能小車的控制系統(tǒng)是一種較好的選擇?;诖?,本文提出了一個比較合理的智能小車系統(tǒng)設(shè)計方案。整個小車系統(tǒng)以STM32F103芯片為控制核心,附以外圍電路,利用紅外探測器、觸角傳感器采集外界信息和檢測障礙物;充分利用STM32F103的串口、并口資源和高速的運算、處理能力,來實現(xiàn)小車自動識

12、別路線按跡行走、躲避障礙物,并且通過LCD顯示器實時顯示小車運動參數(shù);配置STM32F103通用定時器為PWM輸出模式產(chǎn)生PWM波,通過步進調(diào)節(jié)PWM波占空比參數(shù)控制電機的轉(zhuǎn)速;設(shè)計簡便的按鍵式鍵盤輸入來切換小車運行模式,以及調(diào)節(jié)小車速度。第1章緒論1.1 STM32芯片介紹2006年ARM公司推出了基于ARMv7架構(gòu)的Cortex系列的標準體系結(jié)構(gòu),以滿足各種技術(shù)的不同性能要求,包含A、R、M三個分工明確的系列1。其中,A系列面向復(fù)雜的尖端應(yīng)用程序,用于運行開放式的復(fù)雜操作系統(tǒng);R系列適合實時系統(tǒng);M系列則專門針對低成本的微控制領(lǐng)域。Cortex-M3是首款基于ARMv7-M體系結(jié)構(gòu)的32位

13、標準處理器,具有低功耗、少門數(shù)、短中斷延遲、低調(diào)試成本等眾多優(yōu)點。它是專門為在微控制系統(tǒng)、汽車車身系統(tǒng)、工業(yè)控制系統(tǒng)和無線網(wǎng)絡(luò)等對功耗和成本敏感的嵌入式應(yīng)用領(lǐng)域?qū)崿F(xiàn)高系統(tǒng)性能而設(shè)計的,它大大簡化了編程的復(fù)雜性,集高性能、低功耗、低成本于一體2。半導(dǎo)體制造廠商意法半導(dǎo)體ST公司是ARM公司Cortex-M3內(nèi)核開發(fā)項目一個主要合作方,2007年6月11日ST公司率先推出了基于Cortex-M3內(nèi)核的STM32系列MCU。本章將簡要介紹STM32系列處理器的分類、內(nèi)部結(jié)構(gòu)及特點,并對本設(shè)計中重點應(yīng)用的通用定時器做進一步分析。1.1.1 STM32處理器的分類STM32系列處理器目前分為2個系列。S

14、TM32F101是標準型系列,工作在36MHZ;STM32F103是增強型系列,工作在72MHZ,帶有更多片內(nèi)RAM和更豐富的外設(shè)。這兩個系列的產(chǎn)品擁有相同的片內(nèi)Flash選項,在軟件和引腳封裝方面是兼容3。標準型系列是STM32處理器入門產(chǎn)品,其價格僅相同于16位MCU卻擁有32位MCU的性能,其外設(shè)的配置能提供優(yōu)秀的控制和聯(lián)接能力。增強型系列產(chǎn)品則將32位MCU的性能和功效引向一個新的級別。內(nèi)含的Cortex-M3內(nèi)核工作在72MHZ,能實現(xiàn)高端運算,其外設(shè)的配置能提供極好的控制和聯(lián)接能力。 STM32全系列處理器擁有的腳對腳、外設(shè)及軟件的高度兼容性,這給其應(yīng)用帶來全方位的靈活性,可以在不

15、必修改原始框架及軟件的條件下,將應(yīng)用升級到需要更多的存儲空間,或精簡到使用更少的存儲空間,或改用不同的封裝規(guī)格。對于使用同一平臺進行多個項目的開發(fā)而言,STM32更是一種非常好的選擇。因為在STM32全系列產(chǎn)品中,既有適合僅需少量的存儲空間和引腳,也有滿足需要更多的存儲空間和引腳;既有適于高性能應(yīng)用的,又有滿足低功耗要求的;既有適合低成本簡單應(yīng)用,也有滿足高端復(fù)雜應(yīng)用的。全系列兼容,使得項目之間的代碼重用和代碼移植變得非常方便。1.1.2 STM32處理器的內(nèi)部結(jié)構(gòu)及特點STM32F103系列微處理器是首款基于ARMv7-M體系結(jié)構(gòu)的32位標準RISC (精簡指令集)處理器,提供很高的代碼效率

16、,在通常8位和16位系統(tǒng)的存儲空間上發(fā)揮了ARM 內(nèi)核的高性能。該系列微處理器工作頻率為72MHz,內(nèi)置高達128K 字節(jié)的Flash存儲器存儲器存儲器是用來存儲程序和數(shù)據(jù)的部件,有了存儲器,計算機才有記憶功能,才能保證正常工作。它根據(jù)控制器指定的位置存進和取出信息。 全文和20K 字節(jié)的SRAM,具有豐富的通用I/O 端口。其內(nèi)部結(jié)構(gòu)圖如圖所示。圖1.1 STM32F10x內(nèi)部結(jié)構(gòu)圖4STM32F103系列微處理器主要資源和特點如下5:1. 多達51個快速I /O 端口,所有I/O口均可以映像到16個外部中斷,幾乎所有端口都允許5V 信號輸入。每個端口都可以由軟件配置成輸出(推挽或開漏)、輸

17、入(帶或不帶上拉或下拉)或其它的外設(shè)功能口。2. 2個12位模數(shù)轉(zhuǎn)換器,多達16個外部輸入通道,轉(zhuǎn)換速率可達1MHz,轉(zhuǎn)換范圍為0 36V;具有雙采樣和保持功能;內(nèi)部嵌入溫度傳感器溫度傳感器。3. 靈活的7路通用DMA 可以管理存儲器到存儲器、設(shè)備到存儲器和存儲器到設(shè)備的數(shù)據(jù)傳輸,無須CPU 任何干預(yù)。通過DMA可以使數(shù)據(jù)快速地移動,這就節(jié)省了 CPU 的資源來進行其他操作。DMA 控制器支持環(huán)形緩沖區(qū)的管理,避免了控制器傳輸?shù)竭_緩沖區(qū)結(jié)尾時所產(chǎn)生的中斷。它支持的外設(shè)包括:定時器、ADC、SPI、I2C和USART 等。4. 調(diào)試模式:支持標準的20腳JTAG 仿真調(diào)試以及針對Cortex-

18、M3內(nèi)核的串行單線調(diào)試(SWD)功能。通常默認的調(diào)試接口是JTAG 接口。5. 含有豐富的通信接口:三個USART異步串行通信接口、兩個I2C 接口、兩個SPI接口、一個CAN 接口和一個USB接口,為實現(xiàn)數(shù)據(jù)通信提供了保證。6. 內(nèi)部包含8個定時器。在本設(shè)計中電機調(diào)速通過定時器的PWM功能實現(xiàn)。這將在下一節(jié)做進一步介紹。1.1.3 TIMx定時器介紹STM32F10x系列處理器內(nèi)部有8個定時器,其中TIM1和TIM8為高級控制定時器,TIM2、TIM3、TIM4和TIM5為4個獨立的通用定時器,TIM6和TIM7為基本定時器。這8個定時器各包含一個16位自動裝載計數(shù)器,由各自的可編程預(yù)分頻器

19、驅(qū)動。其中基本定時器可以為通用定時器提供時間基準,特別地可以為數(shù)模轉(zhuǎn)換器(DAC)提供時鐘,實際上,它們在芯片內(nèi)部直接連接到DAC并通過觸發(fā)輸出直接驅(qū)動DAC。通用定時器TIMx,它適用于多種場合,包括測量輸入信號的脈沖長度(輸入捕獲)或者產(chǎn)生輸出波形(輸出比較和PWM)。通過對定時器預(yù)分頻器和RCC時鐘控制器預(yù)分頻器的編程,可將脈沖長度和波形周期在幾個微秒到幾個毫秒間進行調(diào)整。每個定時器都是完全獨立的,沒有互相共享任何資源,它們也可以一起同步操作。STM32F103主控芯片的8個定時器中,高級控制定時器TIM1和TIM8及4個通用定時器均可生成PWM波。高級控制定時器與通用定時器相比較,它們

20、有非常多的相似之處,雖然前者功能要強大些,但鑒于后者已能夠滿足設(shè)計要求,因此選用通用定時器作為PWM生成模塊。下面簡要介紹通用定時器的特性及功能。通用定時器TIMx (TIM2、TIM3、TIM4和TIM5)主要特性如下6:1. 16位向上、向下、向上/向下自動裝載計數(shù)器。2. 16位可編程(可以實時修改)預(yù)分頻器,計數(shù)器時鐘頻率的分頻系數(shù)為165536之間的任意數(shù)值。3. 4個獨立通道:輸入捕獲、輸出比較、PWM生成(邊緣或中間對齊模式)、單脈沖模式輸出。4. 使用外部信號控制定時器和定時器互連的同步電路。 5. 如下事件發(fā)生時產(chǎn)生中斷/DMA:更新:計數(shù)器向上溢出/向下溢出,計數(shù)器初始化(

21、通過軟件或者內(nèi)部/外部觸發(fā));觸發(fā)事件(計數(shù)器啟動、停止、初始化或者由內(nèi)部/外部觸發(fā)計數(shù));輸入捕獲;輸出比較。 6. 支持針對定位的增量(正交)編碼器和霍爾傳感器電路。7. 觸發(fā)輸入作為外部時鐘或者按周期的電流管理。對通用定時器TIMx功能簡要描述如下7:時基單元可編程通用定時器的主要部分是一個16位計數(shù)器和與其相關(guān)的自動裝載寄存器。這個計數(shù)器可以向上計數(shù) 、向下計數(shù)或者向上向下雙向計數(shù)。此計數(shù)器時鐘由預(yù)分頻器分頻得到。時基單元包含計數(shù)器寄存器(TIMx_CNT)、預(yù)分頻器寄存器 (TIMx_PSC)和自動裝載寄存器 (TIMx_ARR),它們都可以由軟件讀寫,在計數(shù)器運行時仍可以讀寫。預(yù)分

22、頻寄存器用于設(shè)定計數(shù)器的時鐘頻率;自動裝載寄存器的內(nèi)容是預(yù)先裝載的,其內(nèi)容被永久的保存在影子寄存器,或每次更新事件UEA發(fā)生時傳送到影子寄存器;當計數(shù)器達到溢出條件且當TIMx_CR1寄存器中的UDIS位為0時,產(chǎn)生更新事件。更新事件也可由軟件產(chǎn)生。定時器工作模式有計數(shù)器模式、輸入捕獲模式、PWM輸入模式、強制輸出模式、PWM模式等,根據(jù)設(shè)計要求,定時器應(yīng)配置成PWM模式生成不同占空比的PWM波。以下對PWM模式做簡要介紹。脈沖寬度調(diào)制(PWM)模式可以產(chǎn)生一個由TIMx_ARR寄存器確定頻率、由TIMx_CCRx寄存器確定占空比的信號。在TIMx_CCMRx寄存器中的OCxM位寫入110(P

23、WM模式1)或111(PWM模式2),能夠獨立地設(shè)置每個OCx輸出通道產(chǎn)生一路PWM。使用PWM模式,必須通過設(shè)置TIMx_CCMRx寄存器的OCxPE位使能相應(yīng)的預(yù)裝載寄存器,最后還要設(shè)置TIMx_CR1寄存器的ARPE位,(在向上計數(shù)或中心對稱模式中)使能自動重裝載的預(yù)裝載寄存器。因為僅當發(fā)生一個更新事件的時候,預(yù)裝載寄存器才能被傳送到影子寄存器,因此在計數(shù)器開始計數(shù)之前,必須通過設(shè)置TIMx_EGR寄存器中的UG位來初始化所有的寄存器。OCx的極性可以通過軟件在TIMx_CCER寄存器中的CCxP位設(shè)置,它可以設(shè)置為高電平有效或低電平有效。OCx的輸出使能通過(TIMx_CCER和TIM

24、x_BDTR寄存器中)CCxE、CCxNE、MOE、OSSI和OSSR位的組合控制。在PWM模式(模式1或模式2)下,TIMx_CNT和TIMx_CCRx始終在進行比較,依據(jù)計數(shù)器的計數(shù)方向以確定是否符合TIMx_CCRxTIMx_CNT或者TIMx_CNTTIMx_CCRx。 根據(jù)TIMx_CR1寄存器中CMS位的狀態(tài),定時器能夠產(chǎn)生邊沿對齊的PWM信號或中央對齊的PWM信號8。PWM輸出信號的占空比由TIMx_CRRx寄存器確定的。其公式為“占空比=(TIMx_CRRx/TIMx_ARR)*100%”,因此,可以通過向CRR中填入適當?shù)臄?shù)來輸出自己所需的頻率和占空比的方波信號,進而實現(xiàn)本設(shè)

25、計中調(diào)速功能。1.2 小車及其驅(qū)動器介紹1.2.1 小車結(jié)構(gòu)及功能簡介所謂小車控制實際上就是電機控制,本論文所設(shè)計的小車分為電機系統(tǒng)、顯示系統(tǒng)、控制系統(tǒng)、避障和循跡系統(tǒng)五大結(jié)構(gòu)。電機系統(tǒng)使用兩個電機(A和B),設(shè)定正轉(zhuǎn)、反轉(zhuǎn)和停止三種狀態(tài),分別控制左輪和右輪,通過兩個電機的轉(zhuǎn)動狀態(tài)切換控制小車的行駛方向,例如前進、后退、左轉(zhuǎn)、右轉(zhuǎn),實現(xiàn)小車的基本運動功能;通過對電機轉(zhuǎn)速的調(diào)節(jié)控制小車的運動速度。根據(jù)實際情況,假設(shè)兩個電機相對安裝,則表1-1是電機轉(zhuǎn)動狀態(tài)與小車運動方向的關(guān)系表。表1-1 電機轉(zhuǎn)動狀態(tài)與小車運動方向關(guān)系表運動狀態(tài)電機A(右輪)電機B(左輪)前進正轉(zhuǎn)反轉(zhuǎn)后退反轉(zhuǎn)正轉(zhuǎn)右轉(zhuǎn)停止正轉(zhuǎn)左轉(zhuǎn)

26、正轉(zhuǎn)停止小車的顯示系統(tǒng),即小車裝有液晶顯示器(128×64),初始化由編程設(shè)定,小車運動過程中實時顯示小車的運動參數(shù),并可在以后予以擴展,根據(jù)實際運用的需要顯示更多內(nèi)容。小車的控制系統(tǒng)為按鍵開關(guān)式的鍵盤,設(shè)定小車啟動/停止、自由行走模式/循跡模式、加速/減速六種狀態(tài),最初都賦以高電平,當按鍵被按下時,即觸發(fā)低電平,使小車按相應(yīng)狀態(tài)運動。小車避障系統(tǒng),即在自由行走模式下通過觸角傳感器對障礙物檢測,使小車實現(xiàn)自動避障功能。小車循跡系統(tǒng),即在循跡模式下通過紅外探測器對黑跡不斷進行檢測,自動識別路線,使小車按指定的路線行駛。1.2.2 電機驅(qū)動電路簡介電機驅(qū)動電路采用L298芯片控制。L29

27、8是恒壓恒流雙H橋集成電機芯片,可同時控制兩個電機,且輸出電流可達到2A。直流電機驅(qū)動電路使用最廣泛的就是H型全橋式電路,這種驅(qū)動電路可以很方便實現(xiàn)直流電機的四象限運行,分別對應(yīng)正轉(zhuǎn)、正轉(zhuǎn)制動、反轉(zhuǎn)、反轉(zhuǎn)制動。S2S4S3S1圖1.2 L298內(nèi)部原理圖全橋式驅(qū)動電路的4只開關(guān)管都工作在斬波狀態(tài),如圖1.2所示,S1、S2為一組,S3、S4 為另一組,兩組的狀態(tài)互補,一組導(dǎo)通則另一組必須關(guān)斷。當S1、S2導(dǎo)通時,S3、S4關(guān)斷,電機兩端加正向電壓,可以實現(xiàn)電機的正轉(zhuǎn)或反轉(zhuǎn)制動;當S3、S4導(dǎo)通時,S1、S2關(guān)斷,電機兩端為反向電壓,電機反轉(zhuǎn)或正轉(zhuǎn)制動。在小車動作的過程中,我們要不斷地使電機在四

28、個象限之間切換,即在正轉(zhuǎn)和反轉(zhuǎn)之間切換,也就是在S1、S2導(dǎo)通且S3、S4關(guān)斷,到S1、S2關(guān)斷且S3、S4導(dǎo)通,這兩種狀態(tài)之間轉(zhuǎn)換。在這種情況下,理論上要求兩組控制信號完全互補,但是,由于實際的開關(guān)器件都存在開通和關(guān)斷時間,絕對的互補控制邏輯必然導(dǎo)致上下橋臂直通短路,比如在上橋臂關(guān)斷的過程中,下橋臂導(dǎo)通了。這個過程可用圖1.3說明。圖1.3上下橋臂導(dǎo)通圖因此,為了避免直通短路且保證各個開關(guān)管動作之間的協(xié)同性和同步性,兩組控制信號在理論上要求互為倒相的邏輯關(guān)系,而實際上卻必須相差一個足夠的死區(qū)時間,這個矯正過程既可以通過硬件實現(xiàn),即在上下橋臂的兩組控制信號之間增加延時,也可以通過軟件實現(xiàn)。對于

29、PWM(脈沖寬度調(diào)制)控制,通常配合橋式驅(qū)動電路實現(xiàn)直流電機調(diào)速,非常簡單,且調(diào)速范圍大,它的原理就是直流斬波原理。若S3、S4 關(guān)斷,S1、S2受PWM控制,假設(shè)高電平導(dǎo)通,忽略開關(guān)管損耗,則在一個周期內(nèi)的導(dǎo)通時間為t,周期為T,則電機兩端的平均電壓為:U=Vcc*t/ T=*Vcc ,其中=t/T稱為占空比,Vcc為電源電壓(電源電壓減去兩個開關(guān)管的飽和壓降)9。PWM的占空比決定輸出到直流電機電樞電壓的平均電壓,進而決定了直流電機的轉(zhuǎn)速。L298的EN A(第6引腳)、EN B(第11引腳)分別與兩路PWM波輸出端相連,控制電機是否轉(zhuǎn)動。IN1-IN4兩對I/O輸入,控制電機轉(zhuǎn)動方向。S

30、ENSE A、SENSE B為電流反饋引腳。Vss電壓最小為,最大可達36V;Vs電壓最大值也是36V。但經(jīng)過實驗,Vs電壓應(yīng)該比Vss電壓高,否則有時會出現(xiàn)失控現(xiàn)象。第2章 小車控制系統(tǒng)硬件設(shè)計2.1 系統(tǒng)功能實現(xiàn)及需求分析本設(shè)計采用STM32F103芯片作為控制器來實現(xiàn)對小車電機、液晶顯示模塊、外置鍵盤、傳感器探測等外設(shè)的控制是一個合理的解決方案。STM32F103具有豐富的外設(shè)接口、實時性強等優(yōu)點,采用模塊化設(shè)計,滿足實際需要及擴展;用液晶顯示模塊可以實時顯示小車的工作狀態(tài),比如顯示小車是處在自由行走模式還是在循跡模式等;利用鍵盤的外部輸入實現(xiàn)對小車行走模式的選擇和速度的步進調(diào)節(jié);利用傳

31、感器檢測外界信息,實現(xiàn)小車簡單的避障和循跡功能。基于設(shè)計功能需求,本設(shè)計采用的是低電平觸發(fā)的按鍵開關(guān)式鍵盤,這樣可以合理地利用硬件資源,操作簡便,并且編程靈活。本論文設(shè)計的小車控制系統(tǒng)框圖如圖2.1所示。圖2.1 電機控制系統(tǒng)框圖由系統(tǒng)框圖可看出,小車整個控制系統(tǒng)設(shè)計主要包括電機驅(qū)動、液晶顯示、鍵盤擴展電路、觸角傳感電路、紅外收發(fā)檢測電路等模塊。整個系統(tǒng)的硬件電路設(shè)計原理圖見附錄,下面分別介紹各部分模塊的設(shè)計。2.2 主要電路設(shè)計2.2.1 STM32F103及外圍電路設(shè)計本設(shè)計采用STM32F103為主控芯片,則STM32F103芯片的最小系統(tǒng)設(shè)計如圖2.2、所示。圖2.2 STM32F10

32、3芯片最小系統(tǒng)圖圖STM32F103芯片最小系統(tǒng)圖續(xù)如圖、,此部分電路包括系統(tǒng)時鐘電路、實時時鐘電路、JTAG調(diào)試接口電路,復(fù)位電路和啟動模式選擇電路。下面對部分電路設(shè)計做簡要說明。1時鐘電路系統(tǒng)時鐘電路選用8MHZ的HSE晶體作為振蕩器晶振。如圖2.2所示,由R113、Y100(HSE晶振)、C108及C109構(gòu)成系統(tǒng)時鐘電路。HSE晶體可以通過設(shè)置時鐘控制寄存器里RCC_CR中的HSEON位被啟動和關(guān)閉。實時時鐘電路選擇LSE時鐘模式,如圖2.2所示,由Y101(LSE晶振)、C112及C113構(gòu)成LSE旁路,提供一個頻率的外部時鐘源。LSE晶體是一個的低速外部晶體或陶瓷諧振器。它為實時時

33、鐘或者其他定時功能提供一個低功耗且精確的時鐘源。2啟動模式選擇電路如圖2.3所示,通過BOOT1:0引腳可以選擇三種不同啟動模式。如下表2-1所示。表2-1 啟動模式啟動模式選擇引腳啟動模式說明BOOT1BOOT0X0主閃存存儲器主閃存存儲器被選為啟動區(qū)域01系統(tǒng)存儲器系統(tǒng)存儲器被選為啟動區(qū)域11內(nèi)置SRAM內(nèi)置SRAM被選為啟動區(qū)域在系統(tǒng)復(fù)位后,SYSCLK的第4個上升沿,BOOT引腳的值將被鎖存。此時可以通過設(shè)置BOOT1和BOOT0引腳的狀態(tài),來選擇在復(fù)位后的啟動模式。2.2.2 電源電路設(shè)計由于各電路模塊所需電壓不同,本設(shè)計需多種電源供電。STM32F103主控芯片采用供電,電機驅(qū)動采

34、用5V與12V,紅外收發(fā)檢測電路采用5V與,液晶顯示與觸角傳感電路均采用供電。外部電源采用12V的直流電壓,因此根據(jù)設(shè)計要求,本設(shè)計進行了電源轉(zhuǎn)換設(shè)計。1.采用KA7805芯片實現(xiàn)12V到5V的轉(zhuǎn)換。KA7805的作用是輸入大于5V的直流電壓,輸出5V的直流電壓,且管腳較少,易于連接和實現(xiàn),穩(wěn)定性高。圖2.4為KA7805芯片引腳接線圖。圖2.4 KA7805引腳接線圖2.本設(shè)計采用芯片將5V轉(zhuǎn)換為,具體電路設(shè)計如圖2.5所示。圖2.5引腳接線圖2.2.3 電機驅(qū)動電路設(shè)計STM32F103芯片外部擴展的電機驅(qū)動電路采用L298芯片控制,其基本電路圖如圖2.6。圖2.6電機驅(qū)動電路基本電路原理

35、圖如圖2.6所示,小車運動狀態(tài)通過電機A和B的不同方向轉(zhuǎn)動來實現(xiàn),電機有正轉(zhuǎn)、反轉(zhuǎn)和停止三種狀態(tài),每個電機由一對I/O口進行控制。表2-2是I/O端口狀態(tài)與電機制動對照表。表2-2 I/O端口狀態(tài)與電機制動對照表電機AIN1IN2電機BIN3IN4停止00停止00正轉(zhuǎn)10正轉(zhuǎn)10反轉(zhuǎn)01反轉(zhuǎn)011111L298芯片采用5V(VSS)與12V(VS)直壓供電,EN A和EN B分別用STM32F103主控芯片的TIM3_CH3和PB1/ADC_IN9/TIM3_CH4控制,產(chǎn)生PWM1和PWM2兩路PWM波輸出,IN1-IN4分別用PE3-PE6實現(xiàn)I/O輸出控制電機轉(zhuǎn)動方向。在L298與電機之

36、間加入二極管,以保護電路。2.2.4 液晶顯示電路設(shè)計顯示模塊采用LCD12864與STM32F103主控芯片串行通信方式,即LCD12864的15引腳(并/串行接口選擇)接地。液晶顯示模塊LCD12864的外部引腳連接關(guān)系如圖2.7。圖2.7 LCD12864的外部引腳連接圖2.2.5 鍵盤擴展電路設(shè)計鍵盤擴展電路與STM32F103的5個I/O引腳相連,實現(xiàn)對按鍵檢測。鍵盤擴展電路與STM32F103引腳連接圖如圖2.8。圖2.8鍵盤擴展電路引腳連接圖鍵盤擴展電路采用按鍵開關(guān)式電路,添加上拉電阻以保持按鍵檢測默認為高電平,采用低電平觸發(fā)方式,只要有按鍵按下,即觸發(fā)相應(yīng)電機轉(zhuǎn)動狀態(tài)。詳細對照

37、見表2-3。表2-3小車狀態(tài)與各按鍵高低電平對照表按鍵1按鍵2按鍵3按鍵4按鍵5啟動/停止低電平高高高高循跡模式高高低電平高高自由行走模式高高高低電平高加速高高高低電平高減速高高高高低電平2.2.6 觸角探測電路設(shè)計觸角傳感器由兩條胡須構(gòu)成,每條胡須都可簡化為一個機械式的、接地常開的單刀單擲開關(guān),當胡須沒有被觸動,連接胡須的I/O管腳的電壓是;當胡須被觸動時,I/O短接到地,所以I/O管腳的電壓是0V。通過低電平觸發(fā)方式,使小車實現(xiàn)簡單的避障功能。觸角探測電路與主控芯片STM32F103的2個I/O口相連,接收檢測信號。觸角傳感電路與STM32F103引腳連接圖如圖2.9。圖2.9觸角傳感電路

38、2.2.7 紅外探測電路設(shè)計直流驅(qū)動紅外探測器電路的設(shè)計如圖2.10所示,R401和V1構(gòu)成簡單直流發(fā)光二極管驅(qū)動電路,NE555及其外圍元件構(gòu)成施密特觸發(fā)器,其出發(fā)電平可通過W2控制,接收管V2和電阻R406構(gòu)成光電檢測電路,通過NE555輸出的TTL電平可直接驅(qū)動主控芯片I/O口。根據(jù)不同地面對紅外光不同的反射狀況,紅外探測器接收管接收不同反射,當尋到黑跡時,紅外光被吸收,輸出高電平;在光滑地面時則紅外光被大部分反射接收,輸出低電平。本次設(shè)計中,紅外發(fā)射與接收都由主控芯片STM32F103控制,STM32F103的PE1、PE2實現(xiàn)對發(fā)射電路的控制;PD5、PD6與紅外接收相連,實現(xiàn)紅外接

39、收信號的檢測。為方便對小車的控制,采用兩個紅外探測器分別對左右側(cè)進行探測,根據(jù)左右兩側(cè)接收到的信號可方便對小車的運動方向進行快速調(diào)整。具體電路設(shè)計如圖2.10所示。圖2.10紅外收發(fā)檢測電路第3章小車控制系統(tǒng)軟件設(shè)計3.1 IAR開發(fā)環(huán)境介紹IAR Systems是全球領(lǐng)先的嵌入式系統(tǒng)開發(fā)工具和服務(wù)的供應(yīng)商,提供的產(chǎn)品和服務(wù)涉及到嵌入式系統(tǒng)的設(shè)計、開發(fā)和測試的每一個階段,包括:帶有C/C+編譯器和調(diào)試器的集成開發(fā)環(huán)境(IDE)、實時操作系統(tǒng)和中間件、開發(fā)套件、硬件仿真器以及狀態(tài)機建模工具。IAR軟件是嵌入式設(shè)計軟件產(chǎn)品中優(yōu)質(zhì)的開發(fā)工具。它最著名的產(chǎn)品是C編譯器IAR Embedded Work

40、bench,支持眾多知名半導(dǎo)體公司的微處理器。許多全球著名的公司都在使用IAR SYSTEMS提供的開發(fā)工具,用以開發(fā)他們的前沿產(chǎn)品,從消費電子、工業(yè)控制、汽車應(yīng)用、醫(yī)療、航空航天到手機應(yīng)用系統(tǒng)。IAR Embedded Workbench for ARM 是IAR Systems公司為ARM微處理器開發(fā)的一個集成開發(fā)環(huán)境。比較其他的ARM開發(fā)環(huán)境,IAR EWARM具有入門容易、使用方便和代碼緊湊等特點。IAR EWARM中包含一個全軟件的模擬程序(simulator),用戶不需要任何硬件支持就可以模擬各種ARM內(nèi)核、外部設(shè)備甚至中斷的軟件運行環(huán)境,從中可以了解和評估IAR EWARM的功能

41、和使用用法。IAR EWARM包含項目管理器、編輯器、編譯連接工具和支持RTOS的調(diào)試工具,在該環(huán)境下可以使用C/C+和匯編語言方便地開發(fā)嵌入式應(yīng)用程序。IAR EWARM主界面如圖所示。圖3.1 IAR EWARM主界面3.2 程序設(shè)計思路及部分模塊程序3.2.1 程序設(shè)計思路整個小車控制系統(tǒng)的程序設(shè)計采用模塊化的編程思想,整個主程序的流程圖如圖3.2。圖3.2主程序流程圖根據(jù)圖,程序主要包括程序初始化、按鍵掃描子程序、自由行走模式子程序、循跡模式子程序、LCD顯示子程序。程序初始化,包括對STM32F103系統(tǒng)模塊、液晶顯示模塊、PWM波輸出模塊、電機驅(qū)動模塊的初始化,然后編寫各子模塊的實

42、現(xiàn)程序。3.2.2按鍵子程序系統(tǒng)初始化完成后,進入鍵盤掃描子程序,其程序流程圖如圖。開 始是否自由行走模式自由行走模式轉(zhuǎn)換為循跡模式Y(jié)ESN0N0是否開始執(zhí)行設(shè)置執(zhí)行標志YES是否加速是否減速YESYESYES退出PWM波占空比減10/300PWM波占空比增10/300占空比是否超出范圍PWM波輸出調(diào)節(jié)N0N0維持原始PWM波輸出N0圖鍵盤掃描子程序流程圖由上章鍵盤擴展電路設(shè)計可知,啟動/停止由1鍵控制切換,在程序中通過判斷標志變量值來切換;自由行走模式和循跡模式單獨按鍵控制;按小車加速和減速鍵,對小車速度進行相應(yīng)調(diào)節(jié)。本設(shè)計中小車運動方向轉(zhuǎn)變時,速度未做單獨處理,因此要求小車的運動速度不宜過

43、快,否則方向不易控制。通過對PWM波占空比范圍的控制限定小車的速度范圍,占空比一般在150/300以下,因此本次設(shè)計中占空比范圍設(shè)定為40/300-160/300。通過對定時器配置,產(chǎn)生時鐘頻率為10KHZ,周期為2.99ms的PWM波,由加速/減速鍵步進調(diào)節(jié)占空比參數(shù)TIM4_CCRx值,實現(xiàn)對小車運行速度的控制。具體定時器配置10以TIM3通道3為例程序如下: void PWM_Channel_configuration(u16 CCR_Val)u16 CCR3_Val=CCR_Val;TIM_OCInitTypeDef TIM_OCInitStructure; TIM_OCInitStr

44、ucture.TIM_OCMode = TIM_OCMode_PWM1; /PWM模式TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; /輸出使能 TIM_OCInitStructure.TIM_Pulse = CCR3_Val; /設(shè)置占空比=CCR_Val/(TIM_Period +1) TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low; /比較輸出極性 TIM_OC3Init(TIM3, &TIM_OCInitStructure); /配置通道3

45、 TIM_OC3PreloadConfig(TIM3, TIM_OCPreload_Enable); /使能 TIM3在 CCR3上的預(yù)裝載寄存器 TIM_ARRPreloadConfig(TIM3, ENABLE); /使能TIM3在 ARR 上的預(yù)裝載寄存器 TIM_Cmd(TIM3, ENABLE); 3.2.3循跡子程序循跡模式鍵按下,小車進入循跡模式,其流程圖如圖。圖3.4 循跡子流程圖將小車置于黑跡上,進入循跡模式,主控芯片控制紅外探測器使能,此時左右紅外探測器均未檢測到出界,小車開始向前行走,此后根據(jù)左右探測器的檢測信號對小車的運動狀態(tài)進行相應(yīng)調(diào)整,使小車按設(shè)定的軌跡行走,實現(xiàn)簡

46、單的循跡功能。3.2.4 自由行走子程序自由行走模式鍵按下,小車進入自由行走模式,其子程序流程圖如圖。圖3.5 自由行走子流程圖如圖所示,在自由行走模式下,由觸角傳感器檢測障礙物,低電平觸發(fā)來控制小車的運動方向。3.2.5 LCD顯示子程序顯示模塊實時顯示三個小車運動參數(shù),小車行走模式、小車運動方向及速度級數(shù),為滿足顯示要求,顯示子程序主要調(diào)用了三個函數(shù):(1)寫字節(jié)函數(shù)void LCD_Write(u32 inst,u8 ddata)(2)寫字符串函數(shù)void LCD_Dis_Str(u8row,u8 col,u8 *str)(3)寫十進制數(shù)函數(shù)void LCD_Dis_Digital(u8

47、 row,u8 col,u32 Dig_Data)利用這3個主要函數(shù)實現(xiàn)了狀態(tài)參數(shù)的實時更新。第4章結(jié)論本文根據(jù)設(shè)計內(nèi)容和要求,制定了設(shè)計方案,并逐步完成了硬件和軟件部分的設(shè)計。整個系統(tǒng)以STM32為主控芯片,實現(xiàn)對小車簡單運動的控制,其中硬件部分包括STM32F103及外圍電路、電平轉(zhuǎn)換電路、電機驅(qū)動電路、液晶顯示電路、紅外循跡檢測電路、觸角傳感避障電路、鍵盤擴展電路,完成各部分電路設(shè)計并使用PROTEL畫出電路設(shè)計原理圖;軟件部分在STM32集成開發(fā)環(huán)境IAR下編寫各模塊程序,包括PWM波輸出模塊、液晶顯示模塊、鍵盤掃描模塊、自由行走避障模塊和紅外循跡模塊,并通過主控制程序?qū)⒏髂K融合一起。整個設(shè)計將硬件與軟件相結(jié)合,實現(xiàn)對小車的控制,使小車能夠做出前進、后退、左轉(zhuǎn)、右轉(zhuǎn)等動作,并通過液晶顯示器實時顯示小車的運動參數(shù),同時可通過鍵盤輸入對小車行走模式進行切換及對小車速度進行調(diào)節(jié),并且能夠在不同模式下通過傳感檢測電路實現(xiàn)簡單的避障和循跡功能。論文基本完成了硬件和軟件的設(shè)計,并使之符合設(shè)計要求。本設(shè)計

溫馨提示

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

評論

0/150

提交評論