基于單片機(jī)的兩輪自平衡車控制系統(tǒng)設(shè)計(jì)_第1頁
基于單片機(jī)的兩輪自平衡車控制系統(tǒng)設(shè)計(jì)_第2頁
基于單片機(jī)的兩輪自平衡車控制系統(tǒng)設(shè)計(jì)_第3頁
基于單片機(jī)的兩輪自平衡車控制系統(tǒng)設(shè)計(jì)_第4頁
基于單片機(jī)的兩輪自平衡車控制系統(tǒng)設(shè)計(jì)_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、基于單片機(jī)的兩輪自平衡車控制系統(tǒng)設(shè)計(jì)摘要兩輪自平衡車是一種高度不穩(wěn)定的兩輪機(jī)器人,就像傳統(tǒng)的倒立擺一樣,本質(zhì)不穩(wěn)定是兩輪小車的特性,必須施加有效的控制手段才能使其穩(wěn)定。本文提出了一種兩輪自平衡小車的設(shè)計(jì)方案,采用重力加速度陀螺儀傳感器MPU-6050檢測(cè)小車姿態(tài),使用互補(bǔ)濾波完成陀螺儀數(shù)據(jù)與加速度計(jì)數(shù)據(jù)的數(shù)據(jù)融合。系統(tǒng)選用STC公司的8位單片機(jī)STC12C5A60S2為主控制器,根據(jù)從傳感器中獲取的數(shù)據(jù),經(jīng)過PID算法處理后,輸出控制信號(hào)至電機(jī)驅(qū)動(dòng)芯片TB6612FNG,以控制小車的兩個(gè)電機(jī),來使小車保持平衡狀態(tài)。整個(gè)系統(tǒng)制作完成后,小車可以在無人干預(yù)的條件下實(shí)現(xiàn)自主平衡,并且在引入適量干擾的

2、情況下小車能夠自主調(diào)整并迅速恢復(fù)至穩(wěn)定狀態(tài)。通過藍(lán)牙,還可以控制小車前進(jìn),后退,左右轉(zhuǎn)。關(guān)鍵詞:兩輪自平衡小車 加速度計(jì) 陀螺儀 數(shù)據(jù)融合 濾波 PID算法Design of Control System of Two-Wheel Self-Balance Vehicle based on MicrocontrollerAbstractTwo-wheel self-balance vehicle is a kind of highly unstable two-wheel robot. The characteristic of two-wheel vehicle is the nature

3、of the instability as traditional inverted pendulum, and effective control must be exerted if we need to make it stable. This paper presents a design scheme of two-wheel self-balance vehicle. We need using gravity accelerometer gyroscope sensor MPU6050 for the inclination angle of vehicle, and using

4、 complementary filter for the data fusion of gyroscope and accelerometer. We choose an 8-bit microcontroller named STC12C5A60S2 from STC Company as main controller of the control system. The main controller output control signal, which is based on the data from the sensors, to the motor drive chip n

5、amed TB6612FNG for controlling two motors of vehicle, and keeping the vehicle in balance. After the completion of the control system, the vehicle can achieve autonomous balance under the conditions of unmanned intervention, the vehicle can adjust automatically and restored to a stable state quickly

6、in the case of giving appropriate interference as well. In addition, we can control the vehicle forward, backward and turn around.Key words: Two-Wheel Self-Balance Vehicle; Accelerometer; Gyroscope; Data fusion; Complementary filter; PID algorithm1 緒論11.1 自平衡小車的研究背景11.2 自平衡小車研究意義11.3 論文的主要內(nèi)容22 課題任務(wù)與

7、關(guān)鍵技術(shù)22.1 主要任務(wù)22.2關(guān)鍵技術(shù)22.2.1 系統(tǒng)設(shè)計(jì)22.2.2 數(shù)學(xué)建模22.2.3姿態(tài)檢測(cè)32.2.4 控制算法33 系統(tǒng)原理分析33.1 控制系統(tǒng)任務(wù)分解33.2 控制原理43.3 數(shù)學(xué)模型54 系統(tǒng)硬件設(shè)計(jì)64.1 STC12C5A60S2單片機(jī)介紹74.2 電源管理模塊84.3 車身姿態(tài)感應(yīng)模塊94.3.1 加速度計(jì)104.3.2 陀螺儀124.4 電機(jī)驅(qū)動(dòng)模塊144.5 速度檢測(cè)模塊165 系統(tǒng)軟件設(shè)計(jì)165.1 軟件系統(tǒng)總體結(jié)構(gòu)175.2 單片機(jī)的硬件資源配置185.2.1定時(shí)/計(jì)數(shù)器設(shè)置185.2.2 PWM輸出設(shè)置205.2.3 串行通信設(shè)置235.2.4 中斷的

8、開放與禁止265.3 MPU6050資源配置275.3.1 普通IO口模擬IIC通訊285.3.2 MPU6050資源配置325.4 系統(tǒng)控制算法設(shè)計(jì)345.4.1 PID算法345.4.2 互補(bǔ)濾波算法355.4.3 角度控制與速度控制355.4.4 輸出控制算法366 總結(jié)與展望376.1 總結(jié)376.2 展望37參考文獻(xiàn)381 緒論1.1 自平衡小車的研究背景近幾年來,隨著電子技術(shù)的發(fā)展與進(jìn)步,移動(dòng)機(jī)器人的研究不斷深入,成為目前機(jī)器人研究領(lǐng)域的一個(gè)重要組成部分,并且其應(yīng)用領(lǐng)域日益廣泛,其所需適應(yīng)的環(huán)境和執(zhí)行的任務(wù)也更復(fù)雜,這就對(duì)移動(dòng)機(jī)器人提出了更高的要求。比如,戶外移動(dòng)機(jī)器人需要在凹凸不

9、平的地面上行走,有時(shí)機(jī)器人所需要運(yùn)行的地方比較狹窄等。如何解決機(jī)器人在這些環(huán)境中運(yùn)行的問題,已成為現(xiàn)實(shí)應(yīng)用中所需要面對(duì)的一個(gè)問題。兩輪自平衡小車就是在這些的需求下所產(chǎn)生的。這種機(jī)器人相對(duì)于其他移動(dòng)機(jī)器人的最顯著特點(diǎn)是:采用了兩輪共軸、各自獨(dú)立驅(qū)動(dòng)的方式工作,車身重心位于車輪軸上方,通過車輪的前后滾動(dòng)來保持車身的動(dòng)態(tài)平衡,并可以在直立平衡狀態(tài)下完成前進(jìn)、后退、左右轉(zhuǎn)等任務(wù)。正是由于其特殊的構(gòu)造,兩輪自平衡小車適應(yīng)地形變化的能力較強(qiáng),且運(yùn)動(dòng)靈活,可以勝任一些復(fù)雜環(huán)境中的工作。 兩輪自平衡車自面世以來,一直受到世界各國機(jī)器人愛好者和研究者的關(guān)注,這不僅是因?yàn)閮奢喿云胶廛嚲哂歇?dú)特的外形和結(jié)構(gòu),更重要的

10、是因?yàn)槠渥陨淼谋举|(zhì)不穩(wěn)定性和非線性使它成為很好的驗(yàn)證控制理論和控制方法的平臺(tái),具有很高的研究價(jià)值。早在1987年,日本電信大學(xué)教授山藤一雄就提出了兩輪自平衡機(jī)器人的概念。這個(gè)基本的概念就是用數(shù)字處理器來偵測(cè)平衡的改變,然后以平行的雙輪來保持機(jī)器的平穩(wěn)。本世紀(jì)初。美國發(fā)明家狄恩卡門與他的DEKA公司研發(fā)出了可以用于載人的兩輪自平衡車,并命名為賽格威,投入市場后,引發(fā)了自平衡車的流行。由于兩輪自平衡車有著活動(dòng)靈活,環(huán)境無害等優(yōu)點(diǎn),其被廣泛應(yīng)用于各類高規(guī)格社會(huì)活動(dòng)中,目前該車已用于奧運(yùn)會(huì)、世博會(huì)、機(jī)場、火車站等大型場合。1.2 自平衡小車研究意義由于兩輪自平衡小車具有結(jié)構(gòu)特殊、體積小、運(yùn)動(dòng)靈活、適應(yīng)

11、地形變化能力強(qiáng)、能夠方便的實(shí)現(xiàn)零半徑回轉(zhuǎn)、適合在擁擠和危險(xiǎn)的空間內(nèi)活動(dòng)、可以勝任一些復(fù)雜環(huán)境里的工作。因此兩輪自平衡車有著廣泛的應(yīng)用前景,其典型應(yīng)用包括代步工具、通勤車、空間探索、危險(xiǎn)品運(yùn)輸、高科技玩具、控制理論測(cè)試平臺(tái)等方面。目前自平衡車的應(yīng)用如自平衡的代步車正在流行開來。因此兩輪自平衡車的研究很有意義。1.3 論文的主要內(nèi)容本論文主要敘述了基于單片機(jī)的兩輪自平衡車控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)的整個(gè)過程。主要內(nèi)容為兩輪自平衡小車的平衡原理,直立控制,藍(lán)牙控制。整個(gè)內(nèi)容分為六章,包括緒論、課題任務(wù)與關(guān)鍵技術(shù)、系統(tǒng)原理概述、系統(tǒng)硬件設(shè)計(jì)、系統(tǒng)軟件設(shè)計(jì)和系統(tǒng)的機(jī)械安裝及調(diào)試。第一章主要講解了課題的研究背景

12、及意義,國內(nèi)外研究現(xiàn)狀。第二章主要講解了設(shè)計(jì)的主要任務(wù)與所需的關(guān)鍵技術(shù)。第三章主要講解了兩輪自平衡小車控制系統(tǒng)的直立控制原理,轉(zhuǎn)向控制原理。第四章主要講解了系統(tǒng)的硬件設(shè)計(jì),介紹了自平衡小車控制系統(tǒng)的硬件構(gòu)成,主控芯片STC12C5A60S2的結(jié)構(gòu)及組成,以及穩(wěn)壓電源模塊,傾角測(cè)量模塊,直流電機(jī)驅(qū)動(dòng)模塊,藍(lán)牙控制模塊和兩輪測(cè)速模塊的設(shè)計(jì)。第五章主要講解了軟件設(shè)計(jì)的算法功能與框架,主要描述了控制系統(tǒng)的程序?qū)崿F(xiàn)以及PID算法的使用。第六章主要講解了系統(tǒng)的調(diào)試與參數(shù)整定。最后總結(jié)與展望,總結(jié)本設(shè)計(jì)的各個(gè)模塊,并對(duì)兩輪自平衡小車的優(yōu)化方向進(jìn)行簡要的闡述。2 課題任務(wù)與關(guān)鍵技術(shù)2.1 主要任務(wù)本文研究并設(shè)

13、計(jì)了一種基于單片機(jī)的兩輪自平衡小車控制系統(tǒng),實(shí)現(xiàn)了兩輪小車的自主直立控制與藍(lán)牙控制功能。系統(tǒng)采用STC12C5A60S2單片機(jī)作為核心控制單元,通過增加各種傳感器,設(shè)計(jì)相應(yīng)電路并編寫相應(yīng)程序完成平衡控制與藍(lán)牙控制。系統(tǒng)需要利用加速度計(jì)和陀螺儀獲得車體的傾角和角速度,并對(duì)數(shù)據(jù)進(jìn)行互補(bǔ)濾波融合。通過編碼器獲得兩輪的速度信息。根據(jù)獲得的數(shù)據(jù)信息對(duì)速度和傾角進(jìn)行閉環(huán)控制。加入藍(lán)牙通信控制,將所有輸出數(shù)據(jù)進(jìn)行疊加,輸出至驅(qū)動(dòng)芯片,實(shí)現(xiàn)對(duì)小車的控制。2.2關(guān)鍵技術(shù)2.2.1 系統(tǒng)設(shè)計(jì)兩輪自平衡車的系統(tǒng)設(shè)計(jì)包括:車身機(jī)械結(jié)構(gòu)設(shè)計(jì),硬件系統(tǒng)設(shè)計(jì)和軟件系統(tǒng)設(shè)計(jì)。在機(jī)械結(jié)構(gòu)上必須保持小車重心的穩(wěn)定性,才能避免控制

14、系統(tǒng)過于復(fù)雜;硬件系統(tǒng)必須包含自平衡車所需的所有電子系統(tǒng)與電氣設(shè)備;軟件系統(tǒng)則負(fù)責(zé)車身平衡控制與目標(biāo)效果的實(shí)現(xiàn)。2.2.2 數(shù)學(xué)建模模型的建立有助于控制器的設(shè)計(jì),以及控制系統(tǒng)各項(xiàng)參數(shù)的大概確定。模型的建立主要使用牛頓力學(xué)定律。2.2.3姿態(tài)檢測(cè) 兩輪自平衡車是一個(gè)本質(zhì)不平衡的系統(tǒng),控制系統(tǒng)對(duì)小車的精確控制依賴于姿態(tài)檢測(cè)系統(tǒng)對(duì)車身姿態(tài)及運(yùn)動(dòng)狀態(tài)的精確檢測(cè)。目前,一般采用由陀螺儀和加速度計(jì)等慣性傳感器組成的姿態(tài)檢測(cè)系統(tǒng)對(duì)車身傾角進(jìn)行實(shí)時(shí)、準(zhǔn)確的檢測(cè)。但是由于慣性傳感器自身固有的特性,隨著溫度、震動(dòng)等外界變化,會(huì)產(chǎn)生不同程度的噪聲與漂移,因此必須采用一些濾波算法,對(duì)加速度計(jì)和陀螺儀所采集的數(shù)據(jù)進(jìn)行融

15、合,使測(cè)量角度更加真實(shí)穩(wěn)定。2.2.4 控制算法兩輪自平衡車所實(shí)現(xiàn)的平衡是一種動(dòng)態(tài)的平衡。在遇到外界干擾時(shí),需要通過控制算法來快速將小車恢復(fù)至平衡狀態(tài)。傳統(tǒng)的PID算法在各類工業(yè)場合有著廣泛的應(yīng)用,完全可以滿足本控制系統(tǒng)的要求,因此本控制系統(tǒng)設(shè)計(jì)采用PID控制算法。3 系統(tǒng)原理分析3.1 控制系統(tǒng)任務(wù)分解根據(jù)系統(tǒng)要求,小車必須能夠在沒有外界干預(yù)的情況下依靠兩個(gè)同軸安裝的車輪保持平衡,并完成前進(jìn),后退,左右轉(zhuǎn)等動(dòng)作。相對(duì)于四輪車,控制系統(tǒng)的任務(wù)更為復(fù)雜,為了能解決該問題,首先將復(fù)雜的問題分解成簡單的幾個(gè)問題進(jìn)行討論。對(duì)系統(tǒng)要求進(jìn)行分析,可知維持小車直立,并在受到外界干擾后迅速恢復(fù)穩(wěn)態(tài),完全依賴于

16、一對(duì)直流電機(jī)對(duì)車輪的驅(qū)動(dòng)。因此本控制系統(tǒng)的設(shè)計(jì)可以從對(duì)電機(jī)的控制著手,控制電機(jī)的轉(zhuǎn)速以及轉(zhuǎn)向來實(shí)現(xiàn)對(duì)小車的控制。小車的控制任務(wù)可以分解成以下三個(gè)基本任務(wù):(1) 控制小車直立:通過控制兩個(gè)電機(jī)的轉(zhuǎn)向保持小車的直立狀態(tài)。(2) 控制小車車速:通過控制兩個(gè)電機(jī)的轉(zhuǎn)速實(shí)現(xiàn)車速控制。(3) 控制小車轉(zhuǎn)向:通過控制兩個(gè)電機(jī)的轉(zhuǎn)速差實(shí)現(xiàn)轉(zhuǎn)向控制。以上三個(gè)任務(wù)都是通過控制小車兩個(gè)車輪的驅(qū)動(dòng)電機(jī)完成的。直流電機(jī)的控制最終取決于電機(jī)兩端輸入的電壓大小,將電機(jī)近似認(rèn)為處于線性狀態(tài),因此上述三個(gè)基本任務(wù)可以等效成三種不同控制目標(biāo)的電壓,將這三種電壓進(jìn)行疊加后,便可以得到最終所需的電壓,并將其施加在電機(jī)上以達(dá)到所追求

17、的控制效果。在這三個(gè)任務(wù)中,保持小車平衡是關(guān)鍵,三個(gè)任務(wù)執(zhí)行的優(yōu)先級(jí)為:平衡控制速度控制轉(zhuǎn)向控制。由于小車同時(shí)受到三種控制的影響,從平衡控制角度來看,其他兩個(gè)控制就成為了它的干擾。因此對(duì)小車速度、方向的控制應(yīng)該盡量保持平滑,以減少對(duì)平衡控制的干擾。上述三種控制各自獨(dú)立進(jìn)行,它們各自假設(shè)其他兩個(gè)控制都已經(jīng)達(dá)到穩(wěn)定。比如控制小車加速和減速的時(shí)候,平衡控制一直在起作用,它會(huì)自動(dòng)改變小車的傾角,使小車實(shí)現(xiàn)加速和減速。3.2 控制原理 生活中有很多直立控制的例子,例如一個(gè)正常人可以經(jīng)過簡單的練習(xí),讓一根直木棒在水平的掌心中保持直立。這需要兩個(gè)條件:一是托著木棒的手掌可以移動(dòng);二是眼睛可以觀察到木棒的傾斜

18、角和傾斜趨勢(shì)(角加速度)??梢酝ㄟ^手掌的移動(dòng)抵消木棒的傾斜角度和趨勢(shì),從而保持木棒的直立。這兩個(gè)條件缺一不可,這就是控制中的負(fù)反饋機(jī)制??刂平o定控制對(duì)象執(zhí)行機(jī)構(gòu)控制算法傳感器大腦手掌眼睛木棒 圖3.1 保持木棍直立的反饋控制系統(tǒng)小車的直立也是通過負(fù)反饋實(shí)現(xiàn)的,但相對(duì)于上面的例子來說相對(duì)簡單,因?yàn)樾≤囉袃蓚€(gè)車輪著地,因此車體只會(huì)在一個(gè)平面內(nèi)發(fā)生傾斜??刂栖囕嗈D(zhuǎn)動(dòng)便可抵消傾斜的趨勢(shì)從而保持車體直立。 車體垂直,車輪保持靜止車體向前傾斜,車輪向前加速行駛車體向后傾斜,車輪向后加速行駛圖3.2 通過車輪控制車體平衡3.3 數(shù)學(xué)模型二輪自平衡小車在建模時(shí)可以將其簡化為倒立擺,便于進(jìn)行受力分析并建立其數(shù)學(xué)

19、模型,從而更好的設(shè)計(jì)控制系統(tǒng)。 圖3.3 單擺模型與倒立擺模型通過對(duì)單擺模型的觀察可知,當(dāng)物體離開平衡位置后會(huì)受到重力與線的合作用力,驅(qū)使重物回復(fù)至平衡位置,并進(jìn)行周期運(yùn)動(dòng),由于空氣阻力的存在,單擺最終會(huì)停在平衡位置??梢缘贸?,單擺保持平衡的條件有兩點(diǎn):(1) 受到與位移方向相反的回復(fù)力作用;(2) 受到和運(yùn)動(dòng)速度相反的阻尼力作用。如果沒有阻尼力的作用,單擺會(huì)在平衡位置左右晃動(dòng)無法停止,如果阻尼力過小,單擺會(huì)在平衡位置震蕩,如果阻尼力過大,則單擺的回復(fù)時(shí)間將變長,因此存在一個(gè)臨界阻尼系數(shù),使得單擺停止在平衡位置所需時(shí)間最短。圖3.4 小車受力分析mgsin-macosmgm倒立擺在偏離平衡位置

20、時(shí),受到的合力與位移方向相同,因此倒立擺不能像單擺一樣穩(wěn)定在垂直位置,并且會(huì)加速偏離平衡位置直至倒下。為了讓倒立擺能像單擺一樣平衡在穩(wěn)定位置,只能通過增加額外受力使回復(fù)力與位移方向相反??刂栖囕喿黾铀龠\(yùn)動(dòng),以小車作為參考系,重心受到一個(gè)額外的慣性力,與車輪加速度大小相同,方向相反。因此倒立擺所受到的回復(fù)力為 F=mgsin-macos (3-1)根據(jù)控制系統(tǒng)的特性,角需要控制在很小的范圍內(nèi),并且假設(shè)控制車輪加速度與角成正比,比例系數(shù)為k1,因此上式可近似處理為 F=mg-mk1 (3-2)此時(shí),只要k1g,回復(fù)力的方向便和位移方向相反,此時(shí)小車可以恢復(fù)到平衡位置。為使小車能在平衡位置盡快的穩(wěn)定

21、下來,還需要有阻尼力,阻尼力與角速度方向相反,大小成正比。式(3-2)可變?yōu)?F=mg-mk1-mk2 (3-3)式中,k1,k2均為比例系數(shù),為小車傾角,為角速度。只要滿足k1g,k20,便可以將小車維持在直立狀態(tài)。k2是小車回到垂直位置的阻尼系數(shù),選取合適的阻尼系數(shù)可以保證小車可以盡快穩(wěn)定在垂直位置。因此為了控制小車穩(wěn)定,需要精確的測(cè)量小車傾角的大小和角速度的大小,并以此控制車輪的加速度。4 系統(tǒng)硬件設(shè)計(jì)本控制系統(tǒng)主要由以下幾個(gè)模塊組成:STC12C5A60S2單片機(jī)最小系統(tǒng)、電源管理模塊、車身姿態(tài)感應(yīng)模塊、電機(jī)驅(qū)動(dòng)模塊、速度檢測(cè)模塊、藍(lán)牙模塊,各模塊關(guān)系圖如下所示:主控制器STC12C5

22、A60S2陀螺儀加速度計(jì)MPU6050編碼器電機(jī)驅(qū)動(dòng)芯片TB6612FNG直流電機(jī)藍(lán)牙模塊加速度角速度圖4.1 硬件設(shè)計(jì)總體框圖4.1 STC12C5A60S2單片機(jī)介紹本控制系統(tǒng)采用STC12C5A60S2單片機(jī)作為控制核心。該單片機(jī)是深圳宏晶科技有限公司的典型單片機(jī)產(chǎn)品,采用了增強(qiáng)型8051內(nèi)核,片內(nèi)集成了60KB程序Flash、1KB數(shù)據(jù)Flash(EEPROM)、1280字節(jié)RAM、2個(gè)16位定時(shí)/計(jì)數(shù)器、44根I/O口線、兩個(gè)全雙工異步串行口(UART)、高速同步通信端口(SPI)、8通道10位ADC、2通道PWM/可編程計(jì)數(shù)器陣列/捕獲/比較單元(PWM/PCA/CCU)、MAX8

23、10專用復(fù)位電路和硬件看門狗等資源。STC12C5A60S2具有在系統(tǒng)可編程(ISP)功能和在系統(tǒng)調(diào)試(ISD)功能,可以省去價(jià)格較高的專門編程器,開發(fā)環(huán)境的搭建非常容易,并且該單片機(jī)所有指令和標(biāo)準(zhǔn)的8051內(nèi)核完全兼容,具有良好的兼容性和很強(qiáng)的數(shù)據(jù)處理能力。STC12C5A60S2系列單片機(jī)的內(nèi)部結(jié)構(gòu)框圖如下所示,該單片機(jī)中包含中央處理器(CPU)、程序存儲(chǔ)器(Flash)、數(shù)據(jù)存儲(chǔ)器(SRAM)、定時(shí)/計(jì)數(shù)器、UART串口、串口2、I/O接口、高速A/D轉(zhuǎn)換、SPI接口、PCA、看門狗及片內(nèi)R/C振蕩器和外部晶體振蕩電路等模塊。STC12C5A60S2單片機(jī)幾乎包含了數(shù)據(jù)采集和控制中所需的

24、所有單元模塊,可稱得上一個(gè)片上系統(tǒng)。圖4.2 STC12C5A60S2系列內(nèi)部結(jié)構(gòu)框圖 圖4.3 單片機(jī)最小系統(tǒng)4.2 電源管理模塊電源管理模塊為整個(gè)硬件電路提供所需的電源,其穩(wěn)定性是整個(gè)硬件電路可靠運(yùn)行的基礎(chǔ)。為了減少各個(gè)模塊之間的相互干擾,電源模塊由若干相互獨(dú)立的穩(wěn)壓電路模塊組成。整個(gè)系統(tǒng)由三節(jié)3.7V的18650鋰電池串聯(lián)供電。選擇LM2596S作為穩(wěn)壓芯片,整個(gè)系統(tǒng)的供電模塊如下圖所示。鋰電池LM2596S編碼器MPU6050TB6612FNG藍(lán)牙電機(jī)CH340D圖4.4 系統(tǒng)供電模塊示意圖LM2596S開關(guān)電壓調(diào)節(jié)器是降壓型電源管理單片集成電路,能夠輸出3A的驅(qū)動(dòng)電流,同時(shí)具有很好的

25、線性和負(fù)載調(diào)節(jié)特性。該器件內(nèi)部集成頻率補(bǔ)償和固定頻率發(fā)生器,開關(guān)頻率為150KHz,與低頻開關(guān)調(diào)節(jié)器相比較,可以使用更小規(guī)格的濾波元件。該器件還有其他一些特點(diǎn):在特定的輸入電壓和輸出載荷的條件下,輸出電壓的誤差可以保證在4%的范圍內(nèi),振蕩頻率誤差在15%的范圍內(nèi);可以用僅80uA的待機(jī)電流;可實(shí)現(xiàn)外部斷電;具有自我保護(hù)電路。該器件完全可以滿足系統(tǒng)需要。穩(wěn)壓電路原理圖如下圖所示。圖4.5 穩(wěn)壓電路原理圖4.3 車身姿態(tài)感應(yīng)模塊在第三章原理分析中可知,為了控制小車穩(wěn)定,需要精確的測(cè)量小車傾角的大小和角速度的大小,并以此控制車輪的加速度,以此消除小車的傾角。因此小車傾角以及傾角的角速度的測(cè)量成為了控

26、制小車直立的關(guān)鍵。測(cè)量小車傾角和角速度可以通過加速度傳感器和陀螺儀實(shí)現(xiàn)。本控制系統(tǒng)的設(shè)計(jì)使用了整合性6軸運(yùn)動(dòng)處理組件,相較于多組件方案,免除了組合陀螺儀與加速器時(shí)的軸間差的問題,減少了大量的封裝空間。MPU6050對(duì)陀螺儀和加速度計(jì)分別用了三個(gè)16位的ADC,將其測(cè)量的模擬量轉(zhuǎn)化為可輸出的數(shù)字量,和所有設(shè)備寄存器之間的通信采用400kHz的I2C接口。為了精確跟蹤快速和慢速的運(yùn)動(dòng),傳感器的測(cè)量范圍都是用戶可控的,陀螺儀的可測(cè)范圍為250,500,1000,2000/秒(dps),加速度計(jì)可測(cè)范圍為2,4,8,16g。量程越大,測(cè)量精度越低。MPU6050實(shí)物及坐標(biāo)軸示意圖如下圖所示。+Z+Y+

27、Z+X+Y+X圖4.6 MPU6050實(shí)物圖與對(duì)應(yīng)坐標(biāo)軸示意圖4.3.1 加速度計(jì)MPU6050的加速度計(jì)部分可以測(cè)量出各軸方向上的加速度,并經(jīng)過AD轉(zhuǎn)換后可輸出數(shù)字信號(hào)。加速度檢測(cè)的基本原理如下圖所示。圖4.7 加速度檢測(cè)的基本原理通過微機(jī)械加工技術(shù)在硅片上加工形成了一個(gè)機(jī)械懸臂。它與相鄰的電極形成了兩個(gè)電容。由于加速度使得機(jī)械懸臂與兩個(gè)電極之間的距離發(fā)生了變化,從而改變了兩個(gè)電容的參數(shù)。通過集成的開關(guān)電容放大電路測(cè)量電容參數(shù)的變化,形成了與加速度成正比的電壓輸出。 只需要測(cè)量出一個(gè)軸上的加速度,便可計(jì)算出小車的傾角。如下圖所示,設(shè)小車前進(jìn)方向是小車直立時(shí)MPU6050的Y軸正向。mgsin

28、mg圖4.8 小車受力分析當(dāng)小車前傾時(shí),小車重心在Y軸上所受的力便是重力在Y軸上的分力,為mgsin,因此MPU6050在Y軸上所獲得的加速度為 gsin。似乎只需要獲得加速度數(shù)據(jù)就可以獲得小車的傾角,但在實(shí)際小車的運(yùn)行過程中,由于小車本身的運(yùn)動(dòng)所產(chǎn)生的加速度會(huì)產(chǎn)生很大的干擾信號(hào)疊加在上述測(cè)量信號(hào)上,使得輸出信號(hào)無法準(zhǔn)確的反映小車的傾角,如下圖所示。圖4.9 加速度計(jì)信號(hào)波動(dòng)小車運(yùn)動(dòng)所產(chǎn)生的振動(dòng)加速度使得輸出電壓在實(shí)際傾角電壓附近波動(dòng),可以使用低通濾波將其過濾,但也會(huì)使得信號(hào)無法實(shí)時(shí)反映小車的傾角變化,從而影響對(duì)小車的控制,使得小車無法保持平衡。4.3.2 陀螺儀陀螺儀可以用來測(cè)量物體的旋轉(zhuǎn)角

29、速度,它利用了旋轉(zhuǎn)坐標(biāo)系中的物體會(huì)受到克里利奧力的原理,在器件中利用壓電陶瓷做成振動(dòng)單元。當(dāng)器件旋轉(zhuǎn)時(shí)會(huì)改變振動(dòng)頻率從而反映出物體旋轉(zhuǎn)的角速度。將MPU6050安裝在小車上時(shí),可以測(cè)量出小車傾斜的角速度,將角速度信號(hào)進(jìn)行積分便可得到小車的傾角。如下圖所示。測(cè)量積分tt圖4.10 小車的角速度和角度由于陀螺儀輸出的是車模的角速度,不會(huì)受到車體振動(dòng)的影響,因此該信號(hào)中的噪聲很小,小車的傾角數(shù)據(jù)又是由所測(cè)角速度積分得來,進(jìn)一步使信號(hào)變得平滑,從而使得角度信號(hào)更加穩(wěn)定。但是在實(shí)際情況中,測(cè)量所得的角速度信號(hào)存在微小的誤差,經(jīng)過積分運(yùn)算之后,會(huì)形成累計(jì)誤差,并會(huì)隨著時(shí)間的延長逐步增加,最終導(dǎo)致電路飽和,

30、無法形成正確的角度信號(hào)。如下圖所示。圖4.11 角度積分漂移如上所述,加速度計(jì)對(duì)加速度很敏感,所獲得的數(shù)據(jù)會(huì)由于小車的運(yùn)動(dòng)產(chǎn)生高頻噪聲。而陀螺儀所測(cè)得的數(shù)據(jù)受到車體振動(dòng)影響很少,但是隨著時(shí)間延長,容易存在積分漂移。因此可以使用互補(bǔ)濾波,使得這兩個(gè)傳感器正好能彌補(bǔ)相互的缺點(diǎn)。簡而言之,互補(bǔ)濾波就是在短時(shí)間內(nèi)采用陀螺儀得到的角度作為最優(yōu),定時(shí)對(duì)加速度轉(zhuǎn)化而來的角度進(jìn)行取平均值處理來校正陀螺儀所得到的角度。具體實(shí)現(xiàn)方法如下圖所示。積分比例陀螺儀加速度計(jì)+ + + - 角速度角度gTg圖4.12 互補(bǔ)濾波原理框圖+ 利用加速度計(jì)所獲得的角度信息g與陀螺儀積分后的角度進(jìn)行比較,將比較的誤差信號(hào)經(jīng)過比例T

31、g放大之后與陀螺儀輸出的角速度信號(hào)疊加之后再進(jìn)行積分。從上圖的框圖可以看出,對(duì)于加速度計(jì)給定的角度g,經(jīng)過比例、積分環(huán)節(jié)之后產(chǎn)生的角度必然最終等于g。由于加速度計(jì)獲得的角度信息不會(huì)存在積累誤差,所以最終將輸出角度中的積累誤差消除了。加速度計(jì)所產(chǎn)生的角度信息g中會(huì)疊加很強(qiáng)的噪聲信號(hào)。為了避免該噪聲信號(hào)對(duì)于角度的影響,比例系數(shù)Tg應(yīng)該非常小。這樣,加速度的噪聲信號(hào)經(jīng)過比例、積分后,在輸出角度信息中就會(huì)變得很小。由于存在積分環(huán)節(jié),所以無論Tg多小,最終輸出角度必然與加速度計(jì)測(cè)量的角度g相等,但是這個(gè)調(diào)節(jié)過程會(huì)隨著Tg的減小而延長。為了避免輸出角度跟著g過長,可以采取以下兩個(gè)方面的措施:(1) 仔細(xì)調(diào)

32、整陀螺儀的放大電路,使得它的零點(diǎn)偏置盡量接近于設(shè)定值,并且穩(wěn)定。(2) 在控制電路和程序運(yùn)行的開始,盡量保持小車處于直立狀態(tài),這樣一開始就使得輸出角度和g相等。此后,加速度計(jì)的輸出只是消除積分的偏移,輸出角度不會(huì)出現(xiàn)很大的偏差。4.4 電機(jī)驅(qū)動(dòng)模塊本控制系統(tǒng)采用了TB6612FNG作為直流電機(jī)驅(qū)動(dòng)器件,該器件具有很高的集成度,同時(shí)能提供足夠的輸出能力,運(yùn)行性能和能耗方面也具有優(yōu)勢(shì),因此在集成化、小型化的電機(jī)控制系統(tǒng)中,它可以作為理想的電機(jī)驅(qū)動(dòng)器件。TB6612FNG是東芝半導(dǎo)體公司生產(chǎn)的一款直流電機(jī)驅(qū)動(dòng)器件,它具有大電流MOSFET-H橋結(jié)構(gòu),雙通道電路輸出,可同時(shí)驅(qū)動(dòng)2個(gè)電機(jī)。該器件每通道輸

33、出最高1.2A的連續(xù)驅(qū)動(dòng)電流,啟動(dòng)峰值電流達(dá)2A/3.2A(連續(xù)脈沖/單脈沖);4種電機(jī)控制模式:正轉(zhuǎn)/反轉(zhuǎn)/制動(dòng)/停止;PWM支持頻率高達(dá)100kHz;待機(jī)狀態(tài);片內(nèi)低壓檢測(cè)電路與熱停機(jī)保護(hù)電路;工作溫度:-2085;SSOP24小型貼片封裝。圖4.13 TB6612FNG芯片功能示意圖如上圖所示,TB6612FNG的主要引腳功能:AIN1/AIN2、BIN1/BIN2、PWMA/PWMB為控制信號(hào)輸入端;AO1/AO2、BO1/BO2為2路電機(jī)控制輸出端;STBY為正常工作/待機(jī)狀態(tài)控制引腳;VM(4.515V)和VCC(2.75.5V)分別為電機(jī)驅(qū)動(dòng)電壓輸入和邏輯電平輸入端。TB6612

34、FNG是基于MOSFET的H橋集成電路,其效率高于晶體管H橋驅(qū)動(dòng)器,并且外圍電路簡單,只需外接電源濾波電容就可以直接驅(qū)動(dòng)電機(jī),利于減小系統(tǒng)尺寸。對(duì)于PWM信號(hào),它支持高達(dá)100kHz的頻率。TB6612FNG在本控制系統(tǒng)中的電路連接如下圖所示。圖4.14 TB6612FNG電路連接示意圖如上圖所示,AIN1/AIN2,BIN1/BIN2以及STBY連接直單片機(jī)的普通I/O口,STBY控制器件的工作狀態(tài),AIN1/AIN2和BIN1/BIN2的輸入決定電機(jī)的正反轉(zhuǎn)。單片機(jī)的PCA模塊產(chǎn)生PWM輸出作為電機(jī)轉(zhuǎn)速的控制手段,連接至TB6612FNG的PWMA/PWMB。電路采用耐壓值25V的10uF

35、電解電容和0.1uF的電容進(jìn)行電源濾波,使用功率MOSFET對(duì)VM和VCC提供電源反接保護(hù)。TB6612FNG的邏輯真值表如下圖所示。 表1 TB6612FNG邏輯真值表輸入輸出IN1IN2PWMSTBYO1O2模式狀態(tài)HHH/LHLL制動(dòng)LHHHLH反轉(zhuǎn)LHLHLL制動(dòng)HLHHHL正轉(zhuǎn)HLLHLL制動(dòng)LLHHOFF停止H/LH/LH/LLOFF待機(jī)4.5 速度檢測(cè)模塊本系統(tǒng)采用安華高公司的L15D11型光電編碼器作為車速檢測(cè)元件,其精度達(dá)到車輪每旋轉(zhuǎn)一周,旋轉(zhuǎn)編碼器產(chǎn)生448個(gè)脈沖,可滿足控制精度的要求。圖4.15 光電編碼器由于光電管器件直接輸出數(shù)字脈沖信號(hào),因此可以直接將這些脈沖信號(hào)連接

36、到單片機(jī)的計(jì)數(shù)器或外部中斷端口。編碼器每個(gè)光電管輸出兩個(gè)脈沖信號(hào),它們波形相同,相位相差90。如果電機(jī)正轉(zhuǎn),第二個(gè)脈沖落后90;如果電機(jī)反轉(zhuǎn),第二個(gè)脈沖超前90??梢酝ㄟ^這個(gè)關(guān)系判斷電機(jī)是否正反轉(zhuǎn),但是在實(shí)際電路中,只檢測(cè)一路脈沖信號(hào),通過該信號(hào)得到電機(jī)轉(zhuǎn)速,電機(jī)的轉(zhuǎn)向是通過控制程序最后輸出值的正負(fù)來判斷的。5 系統(tǒng)軟件設(shè)計(jì)設(shè)計(jì)好系統(tǒng)硬件之后,剩下的任務(wù)便是系統(tǒng)的軟件設(shè)計(jì)和調(diào)試。小車能否正常運(yùn)行,需要通過軟件的編寫和調(diào)試來完成。軟件編寫與調(diào)試的主要任務(wù)包括:(1) 建立軟件工程,配置單片機(jī)資源,初步編寫程序的主框架;(2) 建立軟件編譯、下載、調(diào)試的環(huán)境;(3) 編寫實(shí)現(xiàn)各個(gè)模塊,并測(cè)試各個(gè)模

37、塊的功能;(4) 逐步完成各個(gè)待定參數(shù)的整定;(5) 綜合測(cè)試。開發(fā)STC12C5A60S2單片機(jī)應(yīng)用程序可以使用Keil集成開發(fā)環(huán)境。5.1 軟件系統(tǒng)總體結(jié)構(gòu)根據(jù)控制系統(tǒng)的要求,整個(gè)軟件的功能模塊包括:(1) 小車姿態(tài)信息采集;(2) 小車的直立控制、速度控制、方向控制;(3) 電機(jī)PWM輸出;(4) 程序初始化、參數(shù)設(shè)定等;上述功能中,1-3需要在精確的時(shí)間周期內(nèi)完成,因此可以在一個(gè)周期定時(shí)中斷里完成。功能4的執(zhí)行不需要精確的時(shí)間周期,因此可以放在程序的主程序中完成。這兩類任務(wù)之間可以通過全局變量實(shí)現(xiàn)相互的通訊。關(guān)鍵程序流程圖如下圖所示。開始系統(tǒng)初始化等待定時(shí)中斷10ms定時(shí)中斷獲取加速度

38、值、角速度值并進(jìn)行角度控制獲取小車速度值并進(jìn)行速度控制電機(jī)PWM輸出小車是否跌倒否是小車停止運(yùn)行圖5.1 程序流程圖主程序是程序編譯的入口,是程序運(yùn)行的開始。如上圖所示,單片機(jī)上電運(yùn)行后,便運(yùn)行初始化程序,該工作包括所應(yīng)用到模塊的初始化和應(yīng)用程序的初始化兩部分。前者是對(duì)單片機(jī)所應(yīng)用到的各個(gè)模塊進(jìn)行初始化,這部分的代碼由STC單片機(jī)燒錄工具STC-ISP自動(dòng)生成。后者是應(yīng)用程序的初始化,是對(duì)控制程序中應(yīng)用到的變量值進(jìn)行初始化。初始化工作完成后,開啟總中斷,等待10ms定時(shí)器中斷,中斷產(chǎn)生后,進(jìn)入中斷服務(wù)子程序,該程序負(fù)責(zé)調(diào)用控制系統(tǒng)關(guān)鍵部分的函數(shù),是整個(gè)程序流程的關(guān)鍵所在。在該子程序中,MCU通

39、過IIC與MPU6050進(jìn)行通訊,獲取小車的加速度值和角速度值;分別使用外部中斷與單片機(jī)計(jì)數(shù)器對(duì)左右輪編碼器產(chǎn)生的脈沖進(jìn)行計(jì)數(shù),從而獲取小車行駛速度相關(guān)的數(shù)據(jù)。對(duì)從傳感器所獲得的數(shù)據(jù)使用PID算法進(jìn)行分析與計(jì)算后,將速度控制、角度控制、轉(zhuǎn)向控制的結(jié)果進(jìn)行疊加,并將最后程序運(yùn)算結(jié)果通過PWM與I/O口的高低電平輸出至電機(jī)。實(shí)現(xiàn)對(duì)小車的閉環(huán)控制。程序在主循環(huán)中只運(yùn)行藍(lán)牙控制函數(shù),實(shí)時(shí)通過串口獲取上位機(jī)通過藍(lán)牙發(fā)送的數(shù)據(jù),并將此數(shù)據(jù)作為轉(zhuǎn)向控制的依據(jù)。本控制系統(tǒng)程序共使用了三個(gè)中斷:定時(shí)器溢出中斷、計(jì)數(shù)器溢出中斷、外部中斷。定時(shí)器溢出中斷負(fù)責(zé)采樣周期的設(shè)定,在此中斷子程序中完成控制程序的絕大部分功能

40、功能。計(jì)數(shù)器溢出中斷負(fù)責(zé)右車輪編碼器產(chǎn)生脈沖的計(jì)數(shù)。外部中斷負(fù)責(zé)左車輪編碼器產(chǎn)生脈沖的計(jì)數(shù)。5.2 單片機(jī)的硬件資源配置時(shí)鐘頻率設(shè)置:該控制系統(tǒng)中,將晶振頻率設(shè)置為CPU工作頻率,為20M。5.2.1定時(shí)/計(jì)數(shù)器設(shè)置定時(shí)/計(jì)數(shù)器的核心是一個(gè)加1計(jì)數(shù)器。加1計(jì)數(shù)器的脈沖有兩個(gè)來源,一個(gè)是外部脈沖源,另一個(gè)是系統(tǒng)的時(shí)鐘振蕩器。計(jì)數(shù)器對(duì)這兩個(gè)脈沖源之一進(jìn)行輸入計(jì)數(shù),每輸入一個(gè)脈沖,計(jì)數(shù)值加1。當(dāng)計(jì)數(shù)器全為1時(shí),再輸入一個(gè)脈沖就使計(jì)數(shù)值回0,同時(shí),從最高位溢出一個(gè)脈沖使特殊功能寄存器TCON的TF0或TF1置1,作為計(jì)數(shù)器的溢出中斷標(biāo)志。如果定時(shí)/計(jì)數(shù)器工作于定時(shí)狀態(tài),則表示定時(shí)時(shí)間到;若工作于計(jì)數(shù)狀

41、態(tài),則表示計(jì)數(shù)回0。所以,加1計(jì)數(shù)器的基本功能是對(duì)輸入脈沖進(jìn)行計(jì)數(shù),至于其工作于定時(shí)還是計(jì)數(shù)狀態(tài),則取決于脈沖源。16位的加1計(jì)數(shù)器由兩個(gè)8位的特殊功能寄存器THX(高8位)和TLX(低8位)組成(X=0、1)。TMOD、TCON和AUXR用來確定定時(shí)/計(jì)數(shù)器的工作方式并控制其功能。其中,TMOD用于控制定時(shí)/計(jì)數(shù)器的工作方式;TCON用于控制定時(shí)器T0、T1的啟動(dòng)和停止,并包含了定時(shí)器的狀態(tài);AUXR用于設(shè)置定時(shí)器的速度。TMOD寄存器的各位定義如下:位號(hào)D7D6D5D4D3D2D1D0定時(shí)器名定時(shí)器1定時(shí)器0位名稱GATEC/M1M0GATEC/M1M0表5.1 定時(shí)/計(jì)數(shù)器的方式選擇M1

42、和M0:方式選擇控制位。定時(shí)器的方式選擇如下表所示M1M0工作方式功能說明00013位定時(shí)/計(jì)數(shù)器01116位定時(shí)/計(jì)數(shù)器102可自動(dòng)裝入的8位計(jì)數(shù)器113定時(shí)器0:分成兩個(gè)8位計(jì)數(shù)器定時(shí)器1:停止計(jì)數(shù)C/:功能選擇位。1:計(jì)數(shù)器功能0:定時(shí)器功能GATE:門控位,用于選通控制。1:為高電平且TRX置位時(shí),啟動(dòng)定時(shí)器工作。0:每當(dāng)TRX置位時(shí),就啟動(dòng)定時(shí)器工作。TCON寄存器的格式如下:位號(hào)D7D6D5D4D3D2D1D0位名稱TF1TR1TF0TR0IE1IT1IE0IT0TF1:T1溢出標(biāo)志位。T1啟動(dòng)計(jì)數(shù)后,T1從初值開始加1計(jì)數(shù);最高位產(chǎn)生溢出時(shí),TF1由硬件置1,并向CPU請(qǐng)求中斷;

43、當(dāng)CPU響應(yīng)中斷時(shí),由硬件清零。TF1也可以由程序查詢或清零。TR1:T1的運(yùn)行控制位。該位由軟件置位和清零。當(dāng)GATE(TMOD.7)=0,TR1=1時(shí)啟動(dòng)T1開始計(jì)數(shù),TR1=0時(shí)停止T1計(jì)數(shù)。當(dāng)GATE(TMOD.7)=1,TR1=1且輸入高電平時(shí),才允許T1計(jì)數(shù)。TF0:定時(shí)/計(jì)數(shù)器0溢出標(biāo)志位。含義和功能與TF1相似。TR0:定時(shí)器T0的運(yùn)行控制位。含義和功能與TR1相似。由于定時(shí)/計(jì)數(shù)器是可編程的,所以在任何一個(gè)定時(shí)/計(jì)數(shù)器開始計(jì)數(shù)或定時(shí)之前,必須對(duì)其寫入相應(yīng)的控制字。把方式控制字寫入TMOD,以選擇定時(shí)器的工作方式;把初值寫入THX、TLX控制計(jì)數(shù)長度,將TCON相應(yīng)位(TRX)

44、置1或清零實(shí)現(xiàn)啟動(dòng)或停止計(jì)數(shù)。輔助寄存器AUXR各位定義如下:位號(hào)D7D6D5D4D3D2D1D0位名稱T0x12T1x12UART_M0x6BRTRS2SMODBRTx12EXTRAMS1BRS與定時(shí)器速度相關(guān)的控制位有:T0x12:定時(shí)器0速度控制位。0:定時(shí)器0的速度是傳統(tǒng)8051單片機(jī)定時(shí)器的速度,即12分頻。1:定時(shí)器0的速度是傳統(tǒng)8051單片機(jī)定時(shí)器速度的12倍,即不分頻。T1x12:定時(shí)器1速度控制位,用法與T0x12相似。在本控制系統(tǒng)設(shè)計(jì)中,T0用作計(jì)數(shù)器,對(duì)右輪編碼器產(chǎn)生的脈沖進(jìn)行計(jì)數(shù)。因此T0初始化程序如下所示:Void Timer0Init() TMOD |= 0x05

45、; /定時(shí)器0用作計(jì)數(shù)器 ,16位計(jì)數(shù)器 TL0 = 0x00 ; TH0 = 0x00 ; /設(shè)置計(jì)數(shù)初值 TR0 = 1 ; /計(jì)數(shù)器T0開始計(jì)數(shù) ET0 = 1 ; /允許計(jì)數(shù)器0中斷,用于進(jìn)位T1用作定時(shí)器,用來產(chǎn)生10ms定時(shí)器中斷,決定了控制系統(tǒng)的采樣頻率。T1定時(shí)器初始化程序可由STC-ISP工具自動(dòng)生成:void Timer1Init(void)/10毫秒20.000MHzAUXR &= 0xBF;/定時(shí)器時(shí)鐘12T模式TMOD &= 0x0F;/設(shè)置定時(shí)器模式TMOD |= 0x10;/設(shè)置定時(shí)器模式TL1 = 0xE5; /設(shè)置定時(shí)初值TH1 = 0xBE; /設(shè)置定時(shí)初值

46、TF1 = 0; /清除TF1標(biāo)志TR1 = 1; /定時(shí)器1開始計(jì)時(shí) ET1 = 1; /允許定時(shí)器T1中斷5.2.2 PWM輸出設(shè)置在本控制系統(tǒng)設(shè)計(jì)中,PWM輸出由可編程計(jì)數(shù)器陣列(PCA)模塊產(chǎn)生。PCA模塊含有一個(gè)特殊的16位定時(shí)器,有2個(gè)16位的捕獲/比較模塊與之相連,如下圖所示。16位PCA定時(shí)/計(jì)數(shù)器模塊0模塊1P1.3/CEX0/PCA0/PWM0P1.4/CEX1/PCA1/PWM1圖5.2 PCA模塊結(jié)構(gòu)其中,16位PCA定時(shí)/計(jì)數(shù)器是2個(gè)模塊的公共時(shí)間基準(zhǔn)。寄存器CH和CL的內(nèi)容是自動(dòng)遞增計(jì)數(shù)的16位PCA定時(shí)器的值。PCA模塊中,與PWM輸出相關(guān)的寄存器有PCA工作模式

47、寄存器(CMOD)、PCA控制寄存器(CCON)、PCA比較/捕獲寄存器CCAPMn以及PCA捕捉/比較寄存器CCAPnL和CCAPnH。CMOD各位的定義如下:位號(hào)D7D6D5D4D3D2D1D0位名稱CIDLCPS2CPS1CPS0ECF其中,CIDL:空閑模式下是否停止PCA計(jì)數(shù)的控制位。CIDL=0時(shí),空閑模式下PCA計(jì)數(shù)器繼續(xù)計(jì)數(shù);CIDL=1時(shí),空閑模式下PCA計(jì)數(shù)器停止計(jì)數(shù)。CPS2、CPS1、CPS0:PCA計(jì)數(shù)脈沖源選擇控制位。PCA計(jì)數(shù)脈沖選擇如下表所示。表5.2 PCA計(jì)數(shù)脈沖源選擇CPS2CPS1CPS0PCA時(shí)鐘源輸入選擇000系統(tǒng)時(shí)鐘/12,F(xiàn)soc/12001系統(tǒng)

48、時(shí)鐘/2,F(xiàn)osc/2010定時(shí)器0溢出脈沖。011ECI/P1.2(或P4.1)腳輸入的外部時(shí)鐘100系統(tǒng)時(shí)鐘,F(xiàn)osc101系統(tǒng)時(shí)鐘/4,F(xiàn)osc/4110系統(tǒng)時(shí)鐘/6,F(xiàn)osc/6111系統(tǒng)時(shí)鐘/8,F(xiàn)osc/8ECF:PCA計(jì)數(shù)器溢出中斷使能位。EFC=1時(shí),允許寄存器CCON中CF位的中斷。ECF=0時(shí),禁止寄存器CCON中CF位的中斷。PCA控制寄存器(CCON)各位的定義如下:位號(hào)D7D6D5D4D3D2D1D0位名稱CFCRCCF1CCF0其中,CF:PCA計(jì)數(shù)器溢出標(biāo)志位。當(dāng)PCA計(jì)數(shù)器溢出時(shí),CF位由硬件置拉。如果CMOD寄存器的ECF位置位,則CF標(biāo)志可用來產(chǎn)生中斷。CF

49、位可通過硬件或軟件置位,但只能通過軟件清零。CR:PCA計(jì)數(shù)器的運(yùn)行控制位。置位CR位時(shí),啟動(dòng)PCA計(jì)數(shù)器計(jì)數(shù);清零CR位時(shí),關(guān)閉PCA計(jì)數(shù)器。CCF1/CCF0:PCA模塊的中斷標(biāo)志。當(dāng)發(fā)生匹配或捕獲時(shí)由硬件置拉。這些標(biāo)志位必須通過軟件清除。PCA比較/捕獲寄存器CCAPMn各位的定義如下:位號(hào)D7D6D5D4D3D2D1D0位名稱ECOMnCAPPnCAPNnMATnTOGnPWMnECCFn其中,ECOMn:允許比較器功能控制位。置1時(shí),允許比較器功能。CAPPn:正捕獲控制位,置1時(shí)允許上升沿捕獲。CAPNn:負(fù)捕獲控制位,置1時(shí)允許下降沿捕獲。MATn:匹配控制位。若該位置1,則PC

50、A計(jì)數(shù)值與模塊的比較/捕獲寄存器的值匹配時(shí)將置位CCON寄存器的中斷標(biāo)志位CCFn。TOGn:翻轉(zhuǎn)控制位。若該位置1,則PCA工作于高速輸出模式。PCA計(jì)數(shù)器的值與模塊的比較/捕獲寄存器的值匹配時(shí),CEXn腳(CEX0/PCA0/PWM0/P1.3,CEX1/PCA1/PWM1/P1.4)翻轉(zhuǎn)。PWMn:脈寬調(diào)制模式。該位置1時(shí),CEXn腳用作脈寬調(diào)制輸出。ECCFn:使能CCFn中斷。PCA模塊的工作模式設(shè)定如下表所示。表5.3 PCA模塊的工作模式設(shè)定(部分)ECOMnCAPPnCAPNnMATnTOGnPWMnECCFn模塊功能10000108位PWM,無中斷11000118位PWM,由

51、低變高可產(chǎn)生中斷10100118位PWM,由高變低可產(chǎn)生中斷11100118位PWM,由低變高或由高變低均可產(chǎn)生中斷當(dāng)PCA模塊用于PWM模式時(shí),PCA捕捉/比較寄存器(CCAPnL和CCAPnH)用來控制輸出的占空比,占空比=(255-CCAPnL)/255*100%。PWM初始化程序如下所示:void PWMInit() CCON = 0x00 ; /關(guān)閉PCA計(jì)數(shù)器,禁止計(jì)數(shù)中斷。 CL = 0 ; CH = 0 ; /自由遞增計(jì)數(shù)的16位PCA定時(shí)器的值,初始化為0CMOD = 0x08 ; /系統(tǒng)時(shí)鐘作為時(shí)鐘源,PWM頻率為 / 20M/256=78125Hz CCAP0H = CC

52、AP0L = 0xFF; /用于控制占空比,占空比初始化為0%。 CCAP1H = CCAP1L = 0xFF; /占空比=(255-CCAPnL)/255*100%, CCAPM0 = 0x42 ; /模塊1設(shè)置為PWM模式:8位PWM輸出,無中斷。 CCAPM1 = 0x42 ; /模塊1設(shè)置為PWM模式:8位PWM輸出,無中斷。 CR = 1 ; /PCA計(jì)數(shù)器陣列開始計(jì)數(shù)。5.2.3 串行通信設(shè)置計(jì)算機(jī)的CPU與外部設(shè)備之間,計(jì)算機(jī)和計(jì)算機(jī)之間的信息交換成為通信。通信分為并行通信和串行通信。在并行通信中,數(shù)據(jù)的各位同時(shí)進(jìn)行傳送;特點(diǎn)是傳輸速度快。在串行通信中,數(shù)據(jù)在一根數(shù)據(jù)信號(hào)線上一位一位的順序傳送,每一位數(shù)據(jù)都占據(jù)一個(gè)固定的時(shí)間長度。按照串行數(shù)據(jù)的同步方式,串行通信可以分為同步通信和異步通信兩類。在異步通信方式中,接收器和發(fā)送器使用各自的時(shí)鐘。它們的工作是非同步的。在異步傳送中,每一個(gè)字符要用起始位和停止位作為字符開始和結(jié)束的標(biāo)志,以字符為單位一個(gè)個(gè)的發(fā)送和接收。同步通信是一種連續(xù)串行傳送數(shù)據(jù)的通信方式,一次通信只傳送一幀信息。串行通信中的數(shù)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論