本書以嵌入式系統在自動控制系統中的應用為背景,基于ARM Cortex-M3 內核的STM32 嵌入式微處理器,系統地介紹嵌入式控制系統的基礎知識、軟件設計技術、接口設計技術以及嵌入式控制系統的特殊需求和設計內涵。
本書共7 章:第1 章介紹了嵌入式控制系統的基礎知識;第2 章介紹了ARM Cortex-M3 內核的基礎知識;第3 章介紹了嵌入式系統的匯編語言、C 語言程序設計、Thumb-2 指令集、嵌入式C 語言及混合編程;第4 章介紹了嵌入式控制系統的設計步驟和方法;第5 章介紹了嵌入式控制系統接口技術;第6 章介紹了嵌入式操作系統;第7 章介紹了嵌入式控制系統的設計案例。
本書可作為普通高校電氣工程自動化、電子信息、計算機等相關專業的本科教材,也可供有關專業的研究生使用,并對從事自動控制系統設計的技術人員有較高的參考價值。
前言
第1章嵌入式控制系統基礎1
1.1嵌入式系統的概念1
1.1.1嵌入式系統的定義1
1.1.2嵌入式系統的組成3
1.1.3嵌入式系統的特點6
1.1.4嵌入式系統的應用7
1.2嵌入式控制系統9
1.2.1嵌入式控制系統的概念9
1.2.2嵌入式控制系統的工作原理10
1.2.3嵌入式控制系統的優勢13
本章小結13
思考題與習題14
第2章ARM微處理器基礎15
2.1微處理器的基礎知識15
2.1.1微處理器的基本結構17
2.1.2微處理器的工作原理19
2.2嵌入式微處理器概述22
2.2.1嵌入式微處理器的特點22
2.2.2嵌入式微處理器的分類23
2.3ARM微處理器概述26
2.3.1ARM微處理器的體系結構26
2.3.2ARM微處理器的特點28
2.3.3ARMCortex-M3微處理器內核28
2.4ARMCortex-M3的編程模型30
2.4.1數據類型30
2.4.2存儲器格式30
2.4.3寄存器組織31
2.4.4操作模式34
2.4.5異常和中斷35
本章小結39
思考題與習題39
第3章編程基礎40
3.1匯編基礎40
3.1.1匯編語言:基本語法40
3.1.2匯編語言:后綴的使用41
3.1.3匯編語言:統一匯編語言41
3.1.4指令列表42
3.2指令描述47
3.2.1匯編語言:傳送數據47
3.2.2LDR和ADR偽指令49
3.2.3匯編語言:處理數據50
3.2.4匯編語言:調用和無條件跳轉53
3.2.5匯編語言:決斷和條件跳轉54
3.2.6匯編語言:組合比較和條件跳轉55
3.2.7匯編語言:使用IT指令的條件執行55
3.2.8匯編語言:指令屏障和存儲器屏障指令56
3.2.9匯編語言:飽和運算56
3.3Cortex-M3支持的其他匯編語言57
3.3.1MSR和MRS57
3.3.2SDIV和UDIV58
3.3.3REV?REVH和REVSH58
3.3.4位反轉58
3.3.5SXTB?SXTH?UXTB和UXTH58
3.3.6位域清除和位域插入59
3.3.7UBFX和SBFX59
3.3.8LDRD和STRD59
3.3.9表格跳轉字節和表格跳轉半字60
3.4嵌入式C語言程序設計基礎60
3.5匯編語言與C語言的混合編程63
3.5.1簡介63
3.5.2內嵌匯編指令64
3.5.3匯編與C程序的變量相互訪問66
3.5.4匯編與C程序的函數相互調用68
本章小結70
思考題與習題70
第4章嵌入式控制系統設計基礎71
4.1嵌入式控制系統的設計方法71
4.1.1嵌入式控制系統設計流程71
4.1.2軟硬件協同設計技術73
4.2嵌入式系統硬件設計75
4.2.1原理圖設計的基本原則75
4.2.2PCB圖設計的基本規則79
4.3嵌入式系統軟件設計82
4.3.1交叉開發環境82
4.3.2輪詢系統83
4.3.3前后臺系統84
4.3.4實時多任務系統86
本章小結88
思考題與習題88
第5章嵌入式系統接口技術90
5.1嵌入式微處理器的最小系統90
5.1.1電源電路91
5.1.2晶振電路94
5.1.3復位電路95
5.1.4JTAG調試接口電路96
5.1.5STM32啟動模式電路97
5.2GPIO端口98
5.2.1GPIO端口簡介98
5.2.2GPIO寄存器99
5.2.3GPIO庫函數102
5.2.4GPIO使用示例105
5.3UART串行接口108
5.3.1串行通信基礎108
5.3.2USART簡介109
5.3.3STM32的USART硬件結構110
5.3.4USART操作112
5.3.5USART寄存器113
5.3.6USART庫函數113
5.3.7RS-232接口電路及使用示例116
5.4EXTI中斷系統121
5.4.1中斷的基本概念122
5.4.2STM32的中斷系統簡介122
5.4.3嵌套向量中斷控制器126
5.4.4NVIC和EXTI寄存器128
5.4.5庫函數128
5.4.6中斷示例130
5.5通用定時器133
5.5.1STM32的通用定時器134
5.5.2通用定時器的寄存器136
嵌入式控制系統原理及設計
5.5.3通用定時器的庫函數137
5.5.4通用定時器的使用示例139
5.6模/數轉換器(ADC)142
5.6.1ADC簡介142
5.6.2STM32的ADC概述143
5.6.3ADC的寄存器146
5.6.4ADC的庫函數146
5.6.5ADC示例150
5.7CAN總線153
5.7.1CAN簡介153
5.7.2CAN總線的幀結構154
5.7.3STM32CAN總線156
5.7.4CAN的寄存器161
5.7.5CAN的庫函數162
5.7.6CAN接口電路及示例166
本章小結171
思考題與習題171
第6章嵌入式操作系統及應用173
6.1嵌入式實時操作系統概述173
6.1.1嵌入式實時操作系統的概念174
6.1.2應用程序在操作系統上的執行過程176
6.1.3操作系統的分類177
6.1.4常見的嵌入式操作系統178
6.2?C/OS-II的內核機制182
6.2.1?C/OS-II的內核結構182
6.2.2?C/OS-II的任務管理188
6.2.3?C/OS-II的時間管理190
6.2.4任務間的通信與同步191
6.3?C/OS-II的程序設計模式193
6.4?C/OS-II的移植195
6.4.1?C/OS-II的體系結構195
6.4.2移植文件196
6.4.3測試移植代碼200
本章小結200
思考題與習題200
第7章嵌入式控制系統案例分析202
7.1設計背景202
7.2雙軸伺服轉臺的需求分析203
7.3系統總體設計204
目錄
7.3.1系統總體結構204
7.3.2控制策略設計209
7.4系統研發218
7.4.1硬件概要設計218
7.4.2軟件概要設計219
7.4.3控制算法設計221
7.5系統測試222
7.5.1測試設備222
7.5.2測試方法223
本章小結226
思考題與習題226
附錄227
參考文獻229