嵌入式系統(tǒng)原理與應(yīng)用(俞建峰 )
在工業(yè)4.0時(shí)代,嵌入式系統(tǒng)作為芯片和軟件的結(jié)合體,在工業(yè)自動(dòng)化、機(jī)電控制、移動(dòng)設(shè)備、通信、汽車等領(lǐng)域發(fā)揮著不可替代的作用。本書(shū)系統(tǒng)介紹了嵌入式系統(tǒng)硬件與軟件的設(shè)計(jì),并簡(jiǎn)要介紹了多個(gè)應(yīng)用實(shí)例,使讀者全面了解嵌入式系統(tǒng)的內(nèi)部結(jié)構(gòu)、設(shè)計(jì)思路和開(kāi)發(fā)過(guò)程。書(shū)中配有適量習(xí)題,緊扣本書(shū)主旨,幫助讀者鞏固重要的知識(shí)點(diǎn)。
本書(shū)適宜機(jī)械、自動(dòng)控制、電子等相關(guān)專業(yè)的本科學(xué)生使用,也可供相關(guān)專業(yè)技術(shù)人員參考。
俞建峰,江南大學(xué)機(jī)械工程學(xué)院教授,博士生導(dǎo)師。無(wú)錫市青年科協(xié)會(huì)員、江蘇省農(nóng)業(yè)工程學(xué)會(huì)理事、中國(guó)電機(jī)工程學(xué)會(huì)會(huì)員、中國(guó)化工學(xué)會(huì)過(guò)濾與分離專業(yè)委員會(huì)委員、中國(guó)食品加工機(jī)械標(biāo)準(zhǔn)化技術(shù)委員。曾獲江蘇省科技進(jìn)步三等獎(jiǎng)2項(xiàng)(排第三)、2020年江蘇省普通高等學(xué)校本科優(yōu)秀畢業(yè)設(shè)計(jì)(論文)指導(dǎo)教師、2019年度江南大學(xué)榮智權(quán)獎(jiǎng)教金。2004年7月畢業(yè)于上海交通大學(xué)機(jī)械與動(dòng)力工程學(xué)院,獲機(jī)械電子工程專業(yè)工學(xué)博士學(xué)位。講授《嵌入式系統(tǒng)與人工智能》、《過(guò)程設(shè)備設(shè)計(jì)》、《機(jī)械有限元設(shè)計(jì)》、《過(guò)程裝備學(xué)科前沿》等課程。主要研究領(lǐng)域?yàn)殡姍C(jī)嵌入式系統(tǒng)、工業(yè)互聯(lián)與智能傳感、機(jī)器人運(yùn)動(dòng)控制、食品加工裝備。主持或參加各類科研課題30余項(xiàng),授權(quán)國(guó)家發(fā)明專利34項(xiàng),出版編著5部。
第1章緒 論1
1.1嵌入式系統(tǒng)1
1.1.1嵌入式系統(tǒng)定義1
1.1.2嵌入式系統(tǒng)結(jié)構(gòu)2
1.1.3嵌入式系統(tǒng)硬件組成3
1.1.4嵌入式系統(tǒng)軟件組成5
1.1.5嵌入式操作系統(tǒng)線程、進(jìn)程和協(xié)程7
1.2嵌入式處理器8
1.2.1嵌入式處理器分類8
1.2.2嵌入式處理器內(nèi)核架構(gòu)10
1.3ARM系列處理器11
1.3.1ARM處理器系列特點(diǎn)與優(yōu)勢(shì)11
1.3.2ARM Cortex-M3處理器結(jié)構(gòu)13
1.3.3ARM Cortex-M3指令系統(tǒng)14
1.3.4基于ARM Cortex-M3內(nèi)核的STM32微控制器14
1.3.5STM32微控制器程序運(yùn)行機(jī)制17
1.4習(xí)題18
第2章STM32微控制器硬件基礎(chǔ)20
2.1STM32微控制器20
2.1.1STM32微控制器特點(diǎn)與優(yōu)勢(shì)20
2.1.2STM32微控制器命名規(guī)則22
2.1.3STM32微控制器的應(yīng)用23
2.2STM32微控制器存儲(chǔ)結(jié)構(gòu)23
2.2.1系統(tǒng)結(jié)構(gòu)23
2.2.2存儲(chǔ)結(jié)構(gòu)24
2.2.3啟動(dòng)模式25
2.3STM32微控制器外設(shè)資源概述26
2.3.1電源管理與低功耗模式26
2.3.2RCC時(shí)鐘主頻系統(tǒng)27
2.3.3RTC實(shí)時(shí)時(shí)鐘資源29
2.3.4GPIO工作模式30
2.3.5外部中斷資源35
2.3.6ADC資源38
2.3.7看門(mén)狗資源41
2.3.8通用定時(shí)器資源44
2.3.9高級(jí)定時(shí)器資源48
2.4嵌入式系統(tǒng)I/O50
2.4.1通用輸入/輸出接口50
2.4.2模數(shù)/數(shù)模轉(zhuǎn)換接口51
2.5定時(shí)器和計(jì)數(shù)器52
2.5.1硬件定時(shí)器52
2.5.2軟件定時(shí)器52
2.5.3可編程間隔定時(shí)器53
2.6有線通信接口54
2.6.1本地通信接口54
2.6.2網(wǎng)絡(luò)通信接口78
2.6.3現(xiàn)場(chǎng)總線通信接口86
2.7習(xí)題93
第3章基本I/O口控制95
3.1STM32 GPIO簡(jiǎn)介95
3.1.1I/O基本情況96
3.1.2GPIO配置寄存器描述96
3.1.3端口輸出數(shù)據(jù)寄存器98
3.2寄存器操作98
3.3時(shí)鐘配置99
3.3.1時(shí)鐘樹(shù)100
3.3.2時(shí)鐘源101
3.3.3APB2外設(shè)時(shí)鐘使能寄存器(RCC_APB2ENR)102
3.4庫(kù)函數(shù)操作103
3.4.1GPIO_Init函數(shù)103
3.4.2RCC_APB2PeriphClockCmd106
3.4.3控制I/O輸出電平106
3.5實(shí)例:GPIO按鍵點(diǎn)燈實(shí)驗(yàn)107
3.5.1使用STM32CubeMX配置基礎(chǔ)參數(shù)107
3.5.2使用Keil MDK補(bǔ)充程序代碼109
3.5.3燒錄代碼110
3.6習(xí)題110
第4章數(shù)據(jù)的轉(zhuǎn)換與讀/寫(xiě)訪問(wèn)113
4.1ADC的編程應(yīng)用113
4.1.1ADC的原理、參數(shù)及類型113
4.1.2ADC的主要操作與特征117
4.1.3ADC相關(guān)庫(kù)函數(shù)概述124
4.2DAC的編程應(yīng)用132
4.2.1DAC的原理、參數(shù)及類型133
4.2.2DAC的主要操作與特征134
4.2.3常用的DAC庫(kù)函數(shù)139
4.3DMA數(shù)據(jù)訪問(wèn)與傳輸144
4.3.1DMA控制器概述144
4.3.2DMA結(jié)構(gòu)與數(shù)據(jù)配置144
4.3.3DMA控制器相關(guān)庫(kù)函數(shù)148
4.4實(shí)例1:ADC單通道數(shù)模轉(zhuǎn)換器實(shí)驗(yàn)152
4.4.1使用STM32CubeMX配置基礎(chǔ)參數(shù)152
4.4.2使用Keil MDK補(bǔ)充代碼153
4.4.3燒錄與測(cè)試154
4.5實(shí)例2:ADC+DMA多通道輸出實(shí)驗(yàn)154
4.5.1DMA介紹154
4.5.2使用STM32CubeMX配置基礎(chǔ)參數(shù)155
4.5.3使用Keil MDK補(bǔ)充代碼156
4.5.4燒錄代碼與測(cè)試158
4.6習(xí)題158
第5章STM32定時(shí)器/計(jì)數(shù)器160
5.1STM32定時(shí)器/計(jì)數(shù)器概述160
5.1.1TIMx定時(shí)器的區(qū)別與聯(lián)系160
5.1.2通用定時(shí)器162
5.1.3基本定時(shí)器167
5.1.4高級(jí)控制定時(shí)器168
5.1.5RTC定時(shí)器的功能與操作170
5.1.6SysTick時(shí)鐘功能介紹174
5.1.7看門(mén)狗定時(shí)器基本操作175
5.2定時(shí)器庫(kù)函數(shù)及其應(yīng)用180
5.2.1TIMx定時(shí)器相關(guān)函數(shù)180
5.2.2RTC與BKP相關(guān)函數(shù)191
5.2.3SysTick定時(shí)器相關(guān)函數(shù)196
5.2.4看門(mén)狗定時(shí)器相關(guān)函數(shù)197
5.3實(shí)例:LED跑馬燈實(shí)驗(yàn)200
5.3.1使用STM32CubeMX配置基礎(chǔ)參數(shù)200
5.3.2使用Keil MDK補(bǔ)充程序代碼202
5.3.3燒錄代碼202
5.4習(xí)題202
第6章中斷204
6.1STM32中斷和異常204
6.1.1中斷簡(jiǎn)介204
6.1.2中斷和異常205
6.2STM32中斷相關(guān)的基本概念208
6.2.1中斷優(yōu)先級(jí)208
6.2.2中斷控制器NVIC208
6.2.3NVIC的中斷向量?jī)?yōu)先級(jí)組210
6.3外部中斷212
6.3.1外部中斷基本情況212
6.3.2使用外部中斷的基本步驟212
6.4PWM控制技術(shù)214
6.4.1PWM面積等效原理214
6.4.2PWM波簡(jiǎn)介215
6.4.3通過(guò)定時(shí)器模擬實(shí)現(xiàn)PWM波的原理216
6.5實(shí)例1:1s輸出實(shí)驗(yàn)217
6.5.1基礎(chǔ)概念217
6.5.2STM32CubeMX配置217
6.5.3Keil MDK補(bǔ)充代碼217
6.6實(shí)例2:引腳輸入捕獲實(shí)驗(yàn)219
6.6.1基礎(chǔ)概念219
6.6.2STM32CubeMX配置219
6.6.3Keil MDK補(bǔ)充代碼219
6.7實(shí)例3:PWM輸出點(diǎn)燈實(shí)驗(yàn)221
6.7.1基礎(chǔ)概念221
6.7.2STM32CubeMX配置222
6.7.3Keil MDK補(bǔ)充代碼222
6.8習(xí)題223
第7章USART串口通信技術(shù)224
7.1通信的基本概念詳解224
7.1.1通信的分類與概念224
7.1.2串口通信協(xié)議解析227
7.2USART串口通信概述229
7.2.1USART 的主要功能、主要特性與硬件結(jié)構(gòu)229
7.2.2USART寄存器及其使用235
7.2.3USART 相關(guān)庫(kù)函數(shù)簡(jiǎn)介241
7.3實(shí)例:USART串口輸出實(shí)驗(yàn)249
7.4習(xí)題249
第8章嵌入式系統(tǒng)項(xiàng)目的開(kāi)發(fā)與調(diào)試251
8.1嵌入式系統(tǒng)的接口與設(shè)計(jì)251
8.1.1嵌入式接口251
8.1.2常見(jiàn)傳感器252
8.1.3嵌入式系統(tǒng)設(shè)計(jì)實(shí)例254
8.2嵌入式項(xiàng)目開(kāi)發(fā)前期準(zhǔn)備257
8.2.1嵌入式項(xiàng)目開(kāi)發(fā)模式與流程257
8.2.2嵌入式項(xiàng)目需求量化分析259
8.2.3嵌入式芯片選型分析261
8.2.4芯片外設(shè)資源分配264
8.3嵌入式項(xiàng)目實(shí)驗(yàn)開(kāi)發(fā)系統(tǒng)265
8.3.1嵌入式開(kāi)發(fā)板功能介紹265
8.3.2嵌入式開(kāi)發(fā)板最小系統(tǒng)265
8.3.3嵌入式開(kāi)發(fā)系統(tǒng)軟件運(yùn)行環(huán)境266
8.3.4嵌入式開(kāi)發(fā)板調(diào)試269
8.4電路板的設(shè)計(jì)270
8.4.1嵌入式開(kāi)發(fā)板系統(tǒng)簡(jiǎn)化270
8.4.2繪制電路圖與Altium Designer軟件基礎(chǔ)操作271
8.4.3電路板設(shè)計(jì)與制作流程272
8.5程序燒錄與調(diào)試273
8.5.1嵌入式系統(tǒng)軟件硬件結(jié)合方式273
8.5.2程序燒錄模式275
8.5.3芯片BOOT啟動(dòng)模式277
8.5.4程序串口燒錄方式278
8.5.5使用SWD方式燒錄程序282
8.6習(xí)題286
第9章基于STM32的物聯(lián)網(wǎng)遠(yuǎn)程監(jiān)控系統(tǒng)287
9.1電機(jī)狀態(tài)遠(yuǎn)程監(jiān)控系統(tǒng)需求分析與架構(gòu)設(shè)計(jì)287
9.1.1電機(jī)狀態(tài)遠(yuǎn)程監(jiān)控系統(tǒng)需求287
9.1.2電機(jī)遠(yuǎn)程監(jiān)控系統(tǒng)架構(gòu)與數(shù)據(jù)傳輸路徑分析287
9.1.3需求分析與芯片選型289
9.2基于各種外設(shè)的信息采集程序?qū)嵗?90
9.2.1電壓電流值采樣實(shí)例290
9.2.2多路開(kāi)關(guān)量采樣實(shí)例291
9.2.3溫度采樣實(shí)例293
9.3網(wǎng)絡(luò)通信實(shí)例296
9.3.14G網(wǎng)絡(luò)通信實(shí)例296
9.3.2心跳包功能的實(shí)現(xiàn)302
9.3.3云服務(wù)器基礎(chǔ)操作305
參考文獻(xiàn)314