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