微控制器原理及應(yīng)用——基于TI C2000實(shí)時(shí)微控制器
定 價(jià):59.8 元
叢書名:普通高等教育電子信息類系列教材
- 作者:蔡逢煌 王武 江加輝
- 出版時(shí)間:2022/12/1
- ISBN:9787111714828
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:TP332.3
- 頁(yè)碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
本書以TI公司C2000系列TMS320F28027PT微控制器為載體,介紹微控制器的基本原理和應(yīng)用方法。本書以學(xué)生認(rèn)知過程為導(dǎo)向組織內(nèi)容,從簡(jiǎn)單到復(fù)雜,從模塊到系統(tǒng),按照項(xiàng)目驅(qū)動(dòng)的思路展開教學(xué),著重培養(yǎng)學(xué)生的實(shí)踐應(yīng)用能力。
全書共14章,分為3部分:第1部分(第1~4章)為系統(tǒng)平臺(tái)模塊,介紹嵌入式系統(tǒng)定義、開發(fā)板硬件平臺(tái)、嵌入式C語(yǔ)言、軟件架構(gòu)和CCS集成開發(fā)環(huán)境;第2部分(第5~13章)為基本外設(shè)模塊,分別介紹TMS320F28027PT的*常用外設(shè)模塊,包括GPIO、中斷、定時(shí)器、eCAP、ePWM、ADC、SCI、SPI、I2C等,每個(gè)模塊先介紹通用知識(shí),再介紹TMS320F28027PT相應(yīng)模塊的工作原理、寄存器驅(qū)動(dòng)函數(shù)、軟件思維導(dǎo)圖和應(yīng)用實(shí)例;第3部分(第14章)為綜合案例,介紹C2000系列微控制器在電力電子控制系統(tǒng)中的應(yīng)用,為后續(xù)從事微控制器系統(tǒng)的復(fù)雜工程設(shè)計(jì)奠定基礎(chǔ)。
本書可作為普通高校電氣工程、自動(dòng)化等專業(yè)本科生或研究生的教材,也可供從事電力電子、機(jī)電一體化、自動(dòng)控制等系統(tǒng)開發(fā)的工程技術(shù)人員參考。
從大學(xué)學(xué)生時(shí)期接觸MCS51單片機(jī)開始,在學(xué)習(xí)單片機(jī)、使用單片機(jī)進(jìn)行科研工作期間,編者研讀了不少優(yōu)秀的單片機(jī)教材和芯片參考手冊(cè)。近十幾年來一直從事單片機(jī)的教學(xué)工作,時(shí)常參加單片機(jī)大學(xué)計(jì)劃教學(xué)研討會(huì),聆聽了同行們的新教學(xué)理念和新想法,因此就有了撰寫本書的最初計(jì)劃。
單片機(jī)芯片種類繁多,包括MCS51、摩托羅拉、英飛凌、瑞薩、德州儀器等廠家的單片機(jī),以及最近的ARM系列。編程語(yǔ)言從匯編語(yǔ)言到現(xiàn)在的C語(yǔ)言,芯片內(nèi)部存儲(chǔ)資源不斷豐富,C語(yǔ)言的結(jié)構(gòu)化,表明單片機(jī)已進(jìn)入工具化的時(shí)代。從2014年起,編者在福州大學(xué)自動(dòng)化專業(yè)進(jìn)行試點(diǎn),弱化硬件寄存器的講授,引入軟件工程理念,重新構(gòu)建軟件架構(gòu),從原理轉(zhuǎn)向應(yīng)用。理論上任何一種型號(hào)的單片機(jī)都可以作為案例來講授這種新觀念。
本書選用TI公司的TMS320F28027為研究對(duì)象,原因有以下兩方面:其一,2002年編者涉足電力電子系統(tǒng)的數(shù)字化研究工作,對(duì)TI公司不同時(shí)期的C2000系列MCU芯片,諸如240、2407、2812、28335、28377D等,都有較好的項(xiàng)目應(yīng)用經(jīng)驗(yàn);其二,得益于TI公司中國(guó)大學(xué)計(jì)劃,基于他們無償提供的幾百套LaunchPad開發(fā)板,我們建立了移動(dòng)的單片機(jī)實(shí)驗(yàn)室。本書選擇F28027為腳本,借助它來闡述外設(shè)模塊的工作原理,讀者要跳出這個(gè)局限,真正去讀懂并領(lǐng)會(huì)軟件的架構(gòu),才是本書真正的“用”意。
簡(jiǎn)單回憶一下以F28027為腳本的教學(xué)歷程。2012年,編者開始在電氣工程及其自動(dòng)化專業(yè)針對(duì)大四學(xué)生開設(shè)F28027的選修課,參考教材是英文版芯片手冊(cè),為學(xué)生提供LaunchPad 28027作為實(shí)驗(yàn)器材。2014年,“嵌入式系統(tǒng)原理”課程,成為自動(dòng)化專業(yè)學(xué)生的專業(yè)基礎(chǔ)課,2017年該課程更名為“單片機(jī)原理及應(yīng)用”,授課的內(nèi)容沒有變化。為了配合課程建設(shè),課題組在福州大學(xué)課程中心建立了“嵌入式系統(tǒng)原理”網(wǎng)絡(luò)課程,課程的講稿發(fā)布于網(wǎng)絡(luò)課程上。2014年,編者把課程教案整理匯編成為“嵌入式系統(tǒng)技術(shù)基礎(chǔ)與實(shí)踐”,各種原因?qū)е挛凑匠霭妗?019年,我們?cè)谥袊?guó)大學(xué)MOOC平臺(tái)上開設(shè)了“嵌入式系統(tǒng)原理”課程,自編內(nèi)容作為線上課程的文本資源。本書成稿時(shí)增補(bǔ)了不少內(nèi)容,如軟件思維導(dǎo)圖和綜合案例介紹等。需要特別說明的是,本書中不管是單片機(jī)系統(tǒng)還是嵌入式系統(tǒng),都是指微控制器(MCU)。
本書提出了一種統(tǒng)一的軟件和硬件架構(gòu),F(xiàn)有的嵌入式系統(tǒng)課程大多數(shù)在外設(shè)模塊教學(xué)時(shí)是孤立的,只注重外設(shè)模塊的功能。該架構(gòu)設(shè)置軟件接口實(shí)現(xiàn)對(duì)外設(shè)模塊的平行化,不管是功能復(fù)雜還是功能簡(jiǎn)單的外設(shè)模塊,都是一樣的模式。在軟件架構(gòu)上,基于編者多年的教學(xué)實(shí)踐,本書提出了四層架構(gòu)模型,即主程序?qū)、?yīng)用模塊層、用戶模塊層、MCU驅(qū)動(dòng)模塊層。該軟件架構(gòu)的特點(diǎn)是上層可以調(diào)用下層的模塊函數(shù),同一層模塊不能互相調(diào)用,從而利用分層技術(shù)實(shí)現(xiàn)軟件的“高內(nèi)聚,低耦合”這一軟件工程思想,實(shí)現(xiàn)了軟件開發(fā)和維護(hù)的高度靈活性,以及功能模塊的復(fù)用度。
使用本書時(shí),可以選用德州儀器公司開發(fā)的LaunchPad口袋實(shí)驗(yàn)室。該口袋實(shí)驗(yàn)室集成了編程器、仿真器、28027運(yùn)行系統(tǒng)、按鍵和LED顯示,功能簡(jiǎn)單夠用,具有小型化和低成本化的特點(diǎn),可以很好地解決嵌入式類課程的實(shí)踐問題。借助口袋實(shí)驗(yàn)室,學(xué)生不需要進(jìn)入實(shí)驗(yàn)室就可以進(jìn)行實(shí)驗(yàn),打破了傳統(tǒng)實(shí)驗(yàn)室使用的空間限制,為泛在學(xué)習(xí)的實(shí)踐活動(dòng)提供技術(shù)保障。
福州大學(xué)科華恒盛電力電子研究中心的研究生陳偉東、雷文浩、石安邦、詹銘松、謝鴻彪、林俊騰、楊富陽(yáng)、廖淑瀅、梁鑫釗、張家翔、龔興陽(yáng)和沈明杰等參與了本書的資料整理、硬件設(shè)計(jì)和代碼驗(yàn)證等工作。本書編寫過程中,還得到了TI中國(guó)大學(xué)計(jì)劃的鼎力支持,在此向他們表示衷心的感謝!
由于時(shí)間倉(cāng)促和水平有限,雖盡力完善,但書中難免有疏漏和不足之處,懇請(qǐng)讀者批評(píng)指正,以便持續(xù)改進(jìn)。
編者
前言
電子資源一覽表
第1章嵌入式系統(tǒng)概述1
1.1嵌入式系統(tǒng)簡(jiǎn)介1
1.1.1什么是嵌入式系統(tǒng)1
1.1.2嵌入式系統(tǒng)和通用計(jì)算機(jī)系統(tǒng)的比較1
1.1.3嵌入式系統(tǒng)的特點(diǎn)2
1.1.4嵌入式系統(tǒng)的分類3
1.2MCU簡(jiǎn)介5
1.2.1MCU的基本組成5
1.2.2MCU的特點(diǎn)7
1.2.3MCU的發(fā)展7
1.2.4MCU的應(yīng)用7
1.3TI C2000系列實(shí)時(shí)微控制器8
1.3.1C2000系列實(shí)時(shí)微控制器簡(jiǎn)介8
1.3.2芯片命名規(guī)則9
1.3.3芯片特性9
1.3.4芯片封裝12
思考與練習(xí)13
第2章C2000系列微控制器及硬件平臺(tái)14
2.1MCU硬件資源14
2.1.1資源概覽14
2.1.2引腳說明15
2.2MCU硬件功能概述19
2.3內(nèi)存映射23
2.4時(shí)鐘27
2.5看門狗電路29
2.6低功耗模式30
2.7片內(nèi)電壓調(diào)節(jié)器/欠電壓復(fù)位/上電復(fù)位31
2.8硬件平臺(tái)32
2.8.1MCU小系統(tǒng)32
2.8.2LaunchPad實(shí)驗(yàn)板32
思考與練習(xí)36
第3章微控制器程序設(shè)計(jì)基礎(chǔ)38
3.1編程語(yǔ)言38
3.2匯編語(yǔ)言簡(jiǎn)介40
3.2.1TMS320C28x匯編指令40
3.2.2CPU 執(zhí)行指令的過程41
3.3嵌入式C語(yǔ)言簡(jiǎn)介43
3.3.1數(shù)據(jù)及其處理43
3.3.2程序流控制46
3.3.3函數(shù)49
3.3.4構(gòu)造型數(shù)據(jù)類型50
3.3.5指針52
3.3.6編譯預(yù)處理53
3.3.7C28x IQ數(shù)學(xué)庫(kù)介紹54
3.4軟件開發(fā)工具概述57
思考與練習(xí)59
第4章軟件架構(gòu)與CCS集成開發(fā)環(huán)境60
4.1寄存器的C語(yǔ)言訪問60
4.1.1了解GPIO寄存器60
4.1.2使用結(jié)構(gòu)體指針操作寄存器62
4.2軟件架構(gòu)64
4.2.1MCU模塊層——固件函數(shù)庫(kù)65
4.2.2用戶模塊層66
4.2.3應(yīng)用層67
4.2.4主程序?qū)?7
4.3文件管理68
4.4CCS集成開發(fā)環(huán)境77
4.4.1CCS安裝注意事項(xiàng)77
4.4.2創(chuàng)建工作區(qū)77
4.4.3導(dǎo)入項(xiàng)目和編譯項(xiàng)目78
4.4.4仿真調(diào)試82
4.5CMD文件83
4.5.1COFF格式和段的概念83
4.5.2CMD文件簡(jiǎn)介85
4.6軟件的啟動(dòng)引導(dǎo)過程89
4.7將函數(shù)從Flash復(fù)制到RAM運(yùn)行91
思考與練習(xí)92
第5章通用輸入輸出口93
5.1GPIO的基礎(chǔ)知識(shí)93
5.1.1GPIO輸出驅(qū)動(dòng)器93
5.1.2GPIO輸入驅(qū)動(dòng)器95
5.1.3GPIO引腳管理96
5.2C2000的GPIO模塊96
5.2.1GPIO概述96
5.2.2GPIO內(nèi)部結(jié)構(gòu)97
5.2.3GPIO功能描述97
5.2.4GPIO輸入濾波98
5.3GPIO的軟件架構(gòu)99
5.3.1寄存器及驅(qū)動(dòng)函數(shù)99
5.3.2軟件思維導(dǎo)圖102
5.4應(yīng)用實(shí)例——“我的燈,我做主”103
思考與練習(xí)106
第6章中斷系統(tǒng)107
6.1中斷的基礎(chǔ)知識(shí)107
6.1.1什么是中斷107
6.1.2中斷的名詞術(shù)語(yǔ)108
6.1.3中斷處理過程108
6.2C2000的中斷系統(tǒng)109
6.2.1中斷系統(tǒng)概述109
6.2.2PIE內(nèi)部結(jié)構(gòu)111
6.3中斷系統(tǒng)的軟件架構(gòu)121
6.3.1寄存器及驅(qū)動(dòng)函數(shù)121
6.3.2軟件思維導(dǎo)圖123
6.4應(yīng)用實(shí)例——“等待觸發(fā),輕松
應(yīng)對(duì)”124
思考與練習(xí)128
第7章CPU定時(shí)器129
7.1定時(shí)器的基礎(chǔ)知識(shí)129
7.2C2000的定時(shí)器130
7.2.1定時(shí)器概述130
7.2.2定時(shí)器內(nèi)部結(jié)構(gòu)130
7.2.3定時(shí)器功能描述131
7.3定時(shí)器的軟件架構(gòu)131
7.3.1寄存器及驅(qū)動(dòng)函數(shù)131
7.3.2軟件思維導(dǎo)圖132
7.4應(yīng)用實(shí)例——“我的時(shí)間準(zhǔn)”133
思考與練習(xí)135
第8章增強(qiáng)型捕獲模塊137
8.1捕獲模塊的基礎(chǔ)知識(shí)137
8.2C2000的eCAP138
8.2.1eCAP概述138
8.2.2eCAP內(nèi)部結(jié)構(gòu)138
8.2.3eCAP功能描述138
8.3eCAP的軟件架構(gòu)142
8.3.1寄存器及驅(qū)動(dòng)函數(shù)142
8.3.2軟件思維導(dǎo)圖143
8.4應(yīng)用實(shí)例——“捕捉瞬息萬變”144
思考與練習(xí)147
第9章增強(qiáng)型脈寬調(diào)制模塊148
9.1PWM的基礎(chǔ)知識(shí)148
9.1.1PWM概述148
9.1.2PWM信號(hào)的產(chǎn)生148
9.2C2000的ePWM149
9.2.1ePWM概述149
9.2.2時(shí)基(TB)子模塊150
9.2.3計(jì)數(shù)比較(CC)子模塊155
9.2.4動(dòng)作限定(AQ)子模塊157
9.2.5死區(qū)(DB)子模塊162
9.2.6PWM斬波(PC)子模塊165
9.2.7故障聯(lián)防(TZ)子模塊168
9.2.8事件觸發(fā)與中斷管理(ET)
子模塊169
9.2.9軟件思維導(dǎo)圖173
9.3應(yīng)用實(shí)例——“PWM,時(shí)間寵兒”175
思考與練習(xí)177
第10章模/數(shù)轉(zhuǎn)換器179
10.1ADC的基礎(chǔ)知識(shí)179
10.1.1ADC轉(zhuǎn)換步驟179
10.1.2ADC主要性能參數(shù)180
10.1.3ADC主要類型181
10.1.4ADC工作流程182
10.1.5ADC應(yīng)用注意事項(xiàng)182
10.2C2000的ADC模塊183
10.2.1ADC概述183
10.2.2ADC功能框圖183
10.2.3ADC功能描述184
10.3ADC的軟件架構(gòu)193
10.3.1寄存器及驅(qū)動(dòng)函數(shù)193
10.3.2軟件思維導(dǎo)圖194
10.4應(yīng)用實(shí)例——“模擬數(shù)字兩個(gè)
世界”196
思考與練習(xí)199
第11章串行通信接口200
11.1串行通信的基礎(chǔ)知識(shí)200
11.1.1串行通信與并行通信200
11.1.2數(shù)據(jù)位的表示201
11.1.3異步串行通信的幀格式201
11.1.4串行通信的波特率202
11.1.5奇偶校驗(yàn)202
11.1.6串行通信的傳輸方式202
11.1.7RS-232串口203
11.2C2000的SCI模塊203
11.2.1SCI概述203
11.2.2SCI內(nèi)部結(jié)構(gòu)204
11.2.3SCI功能描述204
11.2.4SCI多機(jī)通信模式210
11.3SCI的軟件架構(gòu)212
11.3.1寄存器及驅(qū)動(dòng)函數(shù)212
11.3.2軟件思維導(dǎo)圖213
11.4應(yīng)用實(shí)例——“一定要把數(shù)據(jù)送
出去”215
思考與練習(xí)220
第12章串行外設(shè)接口221
12.1SPI的基礎(chǔ)知識(shí)221
12.1.1SPI總線接口221
12.1.2SPI的工作原理222
12.2C2000的SPI模塊223
12.2.1SPI概述223
12.2.2SPI內(nèi)部結(jié)構(gòu)224
12.2.3SPI功能描述224
12.3SPI的軟件架構(gòu)230
12.3.1寄存器及驅(qū)動(dòng)函數(shù)230
12.3.2軟件思