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