《嵌入式系統原理與接口技術》已經出版


image

最新更新

本書已經出版,各大網絡書城均有銷售,本書的主要定位是教材,部分內容在博客里都有寫,各位如果覺得不錯的話歡迎支持。

關於本書


這本書寫作花了半年多的時間,到今年和出版社校稿有陸續花了幾個月時間,如今將由電子工業出版社出版,由於本身的水平有限,更多做的是一個整理和融合的工作,在此期間閱讀了大量的相關書籍、技術博客、芯片手冊等,盡量把相關內容系統,有邏輯的表述出來。由於導師的時間要求,本書部分內容有妥協的結果,部分內容借鑒了芯片手冊,同時由於作為教材的定位,在內容安排上也有所限制,但是這仍然是一本花了心思,盡力做到最好的書籍。如果有和意見或者建議歡迎通過博客中涉及的聯系方式與我聯系。

自己平時的過程中經常查閱下書籍,時間久了發現國內的一些書籍是在是難以入目(國內最多的是北航出版社的書),很多高校老師是為了寫書而寫書,經常傳出一個老師一年弄了多少本教材,這些老師只注重自己出了多少教材多少專著,卻從來不在乎書究竟如何。因此在開始寫的時候本着的第一原則就是不制造垃圾,盡管水平有限,一定要多花時間做到更好。

本書的部分內容在一年前就發表在本博客的相關分類中,后續還會整理部分章節,同時PPT、實驗教程、視頻教程、程序代碼也會陸續更新,歡迎有興趣的同學關注。

寫作的一些想法


嵌入式系統本身是一個很寬泛的概念,基本上電氣類的專業也都開設這門課程,目前市場上類似的教材和書籍也都非常多,很多書都追求大而全,然而僅憑一門課一本書根部無法去學習嵌入式如此豐富的內容,因此,本書選取功能強大、易於上手,方便從傳統單片機過渡的Cortex-M3處理器為例,結合具體的應用介紹嵌入式系統的一些基本知識。本書內容有限,所選取例子和內容也不能有絕對的代表性,但是在本書的編寫過程中側重嵌入式系統設計中相通的部分,一方面通過和生活的緊密聯系普及嵌入式系統知識,另一方面結合具體應用傳授嵌入式系統設計的一般方法。

嵌入式系統是一門實踐性和理論性都很強的課程,但是嵌入式系統的學習,最終還是為了工程實踐當中的應用,因此嵌入式系統的教學不能脫離實際應用。很多教材都具有全面、深入的特點,然而在實際教學中,由於一個學期的學時限制,很多教師根本無法對涉及的內容進行深入講解。而且很多高校的課堂教學和實驗仍然偏重於ARM處理器的內部結構、指令系統、匯編程序設計等部分,雖然學習了部分基礎知識,然而很多學生對嵌入式系統卻仍然缺乏一個整體的認識,同時枯燥的理論知識學習也極大地降低了同學們的學習興趣,因此即使在嵌入式系統的課程學習之后,很多同學面對相關的工程設計仍然束手無策。

本書從嵌入式工程實踐入手,以基於ARM Cortex-M3內核STM32F103系列微處理器為例,針對嵌入式應用中最直接相關的部分——接口技術,不追求能夠全面、深入、細致的介紹相關的理論知識(如教材中經常出現的寄存器、存儲器、中斷異常、指令集、匯編程序設計等),但是希望通過理論與實踐相結合的講解方式能夠讓同學們對嵌入式系統、嵌入式系統設計方法以及嵌入式系統設計過程中相通的接口技術和思維方式能夠有一個直觀的了解。由於嵌入式系統相關的知識和理論較多,本書無法一一講述,但是本書根據學以致用的原則對相關的知識進行搭配,側重於對嵌入式系統的整體認識和工程實踐,希望能夠擺脫以往嵌入式系統枯燥的學習模式。

 

目 錄

第1章 緒論··· 1

1.1 嵌入式系統概述··· 1

1.1.1 嵌入式系統的概述··· 1

1.1.2 嵌入式系統的特征··· 2

1.1.3 嵌入式系統的組成··· 5

1.1.4 嵌入式系統的現狀及發展趨勢··· 6

1.2 嵌入式處理器··· 8

1.2.1 哈佛結構和馮·諾依曼結構··· 8

1.2.2 CISC指令集與RISC指令集··· 9

1.2.3 x86指令集和ARM指令集:··· 11

1.2.4 通用處理器(x86)與嵌入式處理器(ARM)小結··· 12

1.2.5 嵌入式處理器的分類··· 13

1.3 嵌入式操作系統··· 16

1.3.1 嵌入式操作系統的概述··· 16

1.3.2 常見的嵌入式操作系統··· 16

第2章 嵌入式系統工程設計概述··· 20

2.1 嵌入式系統設計的基本流程··· 20

2.1.1 需求分析··· 20

2.1.2 詳細說明··· 21

2.1.3 結構設計··· 21

2.1.4 組件設計··· 24

2.1.5 系統集成··· 25

2.2 嵌入式系統設計的流程模型··· 26

2.2.1 瀑布模型··· 26

2.2.2 逐步求精模型··· 27

2.2.3 螺旋模型··· 27

2.3 嵌入式系統的開發模式··· 28

2.3.1 面向硬件的開發模式··· 29

2.3.2 面向軟件的開發模式··· 29

2.3.3 兩種開發模式的區別與聯系··· 29

第3章 ARM嵌入式處理器··· 31

3.1 ARM嵌入式處理器簡介··· 31

3.1.1 ARM處理器的特點··· 32

3.1.2 ARM體系結構的版本及系列··· 32

3.1.3 ARM處理器核系列··· 34

3.1.4 綜述··· 40

3.2 ARM Cortex-M3處理器簡介··· 41

3.2.1 概述··· 41

3.2.2 寄存器組··· 42

3.2.3 操作模式和特權級別··· 44

3.2.4 向量中斷控制器··· 45

3.2.5 存儲器映射··· 46

3.2.6 總線接口··· 46

3.2.7 存儲器保護單元··· 47

3.2.8 指令集··· 47

3.2.9 中斷和異常··· 48

3.2.10 調試支持··· 49

3.3 Cortex-M3指令系統與匯編語言基礎··· 49

3.3.1 匯編語言基礎··· 49

3.3.2 指令集··· 52

3.3.3 匯編語言初步應用··· 56

第4章 嵌入式系統的開發環境··· 67

4.1 嵌入式集成開發環境··· 68

4.1.1 嵌入式集成開發環境概述··· 68

4.1.2 嵌入式系統集成開發環境的組成··· 70

4.2 常見的嵌入式開發環境··· 71

4.2.1 Keil 71

4.2.2 IAR Embedded Workbench· 72

4.2.3 TKStudio· 74

4.2.4 GCC·· 81

4.2.5 其他開發環境··· 81

4.3 ARM嵌入式集成開發環境的對比與選擇··· 83

4.3.1 主要ARM嵌入式集成開發環境的對比··· 83

4.3.2 ARM嵌入式集成開發環境的選擇··· 86

4.4 開發調試工具··· 86

4.4.1 JTAG仿真器··· 86

4.4.2 其他開發調試工具··· 90

第5章 STM32系列微控制器開發基礎··· 91

5.1 STM32系列微控制器概述··· 91

5.1.1 STM32系列微控制器概述··· 91

5.1.2 STM32系列微控制器的優勢··· 92

5.1.3 STM32系列微控制器的應用··· 92

5.2 STM32F103系列微控制器··· 93

5.2.1 主要特點··· 93

5.2.2 總體結構··· 95

5.2.3 功能概述··· 98

5.2.4 片上外設概述··· 100

5.3 基於標准外設庫的軟件開發··· 104

5.3.1 STM32標准外設庫概述··· 104

5.3.2 使用標准外設庫開發的優勢··· 105

5.3.3 STM32F10xxx標准外設庫結構與文件描述··· 105

5.3.4 STM32F10xxx標准外設庫的使用··· 109

5.4 使用Keil MDK以及標准外設庫創建STM32工程··· 117

5.4.1 開發工具與開發環境··· 118

5.4.2 MDK的操作與設置··· 119

5.4.3 使用Keil MDK運行第一個STM32F10x程序··· 126

第6章 STM32系列微控制器 存儲器與外設··· 138

6.1 存儲器和總線結構··· 138

6.1.1 系統結構··· 138

6.1.2 存儲器組織··· 140

6.1.3 存儲器映射··· 140

6.1.4 啟動配置··· 141

6.2 電源控制··· 142

6.2.1 電源··· 142

6.2.2 電源管理··· 144

6.2.3 低功耗模式··· 145

6.2.4 睡眠模式··· 146

6.2.5 停止模式··· 147

6.2.6 待機模式··· 148

6.2.7 低功耗模式下的自動喚醒(AWU)··· 149

6.3 復位和時鍾··· 150

6.3.1 復位··· 150

6.3.2 時鍾··· 151

6.4 GPIO·· 156

6.4.1 GPIO簡介··· 156

6.4.2 GPIO功能描述··· 157

6.4.3 GPIO配置··· 158

6.5 中斷和事件··· 160

6.5.1 嵌套向量中斷控制器··· 160

6.5.2 外部中斷/事件控制器··· 163

6.6 DMA控制器··· 167

6.6.1 簡介··· 167

6.6.2 功能描述··· 168

6.6.3 DMA應用實例··· 172

第7章 嵌入式系統接口應用基礎··· 174

7.1 嵌入式系統的接口類型··· 174

7.2 嵌入式系統的電平匹配··· 175

7.2.1 電平匹配概述··· 175

7.2.2 接口相關電路及概念··· 178

7.2.3 電平匹配的電路設計··· 181

7.3 嵌入式系統的通信形式的匹配··· 185

7.4 嵌入式系統的電氣隔離··· 186

7.4.1 電氣隔離概述··· 186

7.4.2 供電系統的隔離··· 187

7.4.3 數字信號的隔離··· 188

7.4.4 模擬信號的隔離··· 194

7.4.5 嵌入式系統的電氣隔離設計··· 199

7.5 嵌入式系統接口的保護··· 200

7.5.1 嵌入式系統接口的電源保護··· 200

7.5.2 靜電保護··· 202

7.6 嵌入式系統接口的控制方式··· 203

7.6.1 程序輪詢方式··· 203

7.6.2 中斷處理方式··· 203

7.6.3 直接存儲器存取DMA傳送方式··· 203

第8章 基於STM32系列微控制器的 接口應用實踐··· 205

8.1 USART串行接口及其應用··· 205

8.1.1 USART串行接口簡介··· 205

8.1.2 STM32F10x系列USART功能描述··· 207

8.1.3 STM32 USART接口應用實例··· 216

8.2 SPI串行接口及其應用··· 219

8.2.1 SPI串行接口簡介··· 219

8.2.2 STM32 SPI功能描述··· 223

8.2.3 STM32 SPI總線應用實例··· 224

8.3 I2C總線及其應用··· 226

8.3.1 I2C總線簡介··· 226

8.3.2 STM32 I2C簡介··· 229

8.3.3 STM32 I2C功能描述··· 230

8.3.4 STM32 I2C總線應用實例··· 234

8.4 CAN總線及其應用··· 241

8.4.1 CAN總線簡介··· 241

8.4.2 CAN總線的系統結構及數據傳輸··· 242

8.5 STM32 bxCAN·· 245

8.5.1 功能特點··· 245

8.5.2 bxCAN總體描述··· 246

8.5.3 bxCAN工作模式··· 247

8.5.4 測試模式··· 248

8.5.5 bxCAN功能描述··· 249

8.6 FSMC接口及其應用··· 255

8.6.1 STM32 FSMC·· 255

8.6.2 STM32 FSMC外部設備地址映像··· 257

8.6.3 FSMC應用實例··· 258

8.7 USB串行接口及其應用··· 265

8.7.1 USB總線概述··· 265

8.7.2 USB總線數據傳輸··· 267

8.7.3 USB OTG·· 267

8.7.4 USB接口器件··· 268

8.7.5 STM32 USB功能描述··· 268

8.8 1-Wire單總線及其應用··· 270

8.8.1 1-Wire單總線及其連接··· 270

8.8.2 1-Wire單總線器件DS18B20的應用··· 272

8.8.3 基於STM32的DS18B20操作實例··· 276

8.9 數據采集接口及其應用設計··· 280

8.9.1 數據采集概述··· 280

8.9.2 數據采集系統的結構··· 281

8.9.3 A/D轉換器的量化與編碼··· 287

8.9.4 STM32F10x 系列內置ADC簡介··· 289

8.9.5 STM32F10x 系列內置ADC功能描述··· 290

8.10 常用人機交互接口及其應用設計··· 294

8.10.1 常用鍵盤接口設計··· 294

8.10.2 LED顯示器件及接口設計··· 298

8.10.3 串口屏··· 301

第9章 嵌入式系統工程開發實戰··· 303

9.1 需求分析··· 303

9.1.1 需求背景··· 303

9.1.2 主要功能··· 304

9.2 詳細說明··· 304

9.3 結構設計··· 305

9.3.1 系統架構設計··· 305

9.3.2 主要元器件與開發平台的選擇··· 306

9.3.3 主要功能模塊的連接··· 308

9.3.4 控制器最終結構··· 309

9.4 組件設計··· 309

9.4.1 硬件電路的設計··· 309

9.4.2 主要軟件部分的設計··· 319

9.4.3 控制器的PCB設計··· 328

9.5 系統集成··· 329

9.5.1 子功能模塊之間的集成··· 329

9.5.2 系統的集成測試··· 329

參考文獻··· 330


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM