《可重構嵌入式系統設計與實現:基於Cypress PSoC4 BLE智慧型互聯平台》是2018年電子工業出版社出版的圖書,作者是何賓。
基本介紹
- 中文名:可重構嵌入式系統設計與實現:基於Cypress PSoC4 BLE智慧型互聯平台
- 作者:何賓
- 出版時間:2018年11月
- 出版社:電子工業出版社
- 頁數:272 頁
- ISBN:9787121351044
- 定價:69 元
- 開本:16 開
內容簡介,目 錄,
內容簡介
本書基於Cypress公司的PSoC4 BLE嵌入式平台,該平台以ARM Cortex-M0處理器為核心,集成了模擬可程式陣列和數字可程式陣列,並且新集成了低功耗藍牙模組,使得該平台成為物聯網套用的極佳選擇。
目 錄
第1章 可重構嵌入式系統設計導論 1
1.1 可重構嵌入式系統的背景和優勢 1
1.1.1 傳統的嵌入式系統構建方法 1
1.1.2 可重構嵌入式系統構建方法 2
1.1.3 PSoC性能比MCU更優越 4
1.2 可重構嵌入式系統的設計重用 5
1.3 PSoC4 BLE的結構及功能 6
1.4 PSoC4 BLE設計流程 9
1.4.1 硬體設計流程 9
1.4.2 軟體設計流程 10
1.5 PSoC4 BLE的硬體連線 11
第2章 可重構嵌入式系統基本設計流程 13
2.1 軟體的下載和安裝 13
2.2 建立新的設計工程 16
2.3 在原理圖中添加嵌入式硬體設計 18
2.3.1 在原理圖中添加數字輸出連線埠 18
2.3.2 在原理圖中添加片外外設註解 19
2.3.3 對硬體設計進行處理 24
2.3.4 查看分配的引腳位置 25
2.4 為嵌入式硬體開發軟體套用 26
2.5 下載設計到目標系統 27
第3章 Cortex-M0 CPU結構 28
3.1 ARM處理器類型 28
3.2 Cortex-M系列處理器概述 29
3.2.1 Cortex-M系列處理器的特點 29
3.2.2 Cortex-M系列處理器的性能參數 29
3.3 Cortex-M0處理器的性能和結構 30
3.3.1 Cortex-M0處理器的性能 30
3.3.2 Cortex-M0處理器的結構 31
3.4 Cortex-M0處理器的暫存器組 33
3.4.1 通用暫存器 33
3.4.2 堆疊指針 34
3.4.3 程式計數器 34
3.4.4 連結暫存器 34
3.4.5 組合程式狀態暫存器 35
3.4.6 中斷禁止特殊暫存器 36
3.4.7 特殊暫存器 36
3.5 Cortex-M0存儲器空間映射 37
3.6 Cortex-M0程式鏡像原理及生成方法 39
3.7 Cortex-M0處理器的端及分配 40
3.8 Cortex-M0處理器異常及處理 41
3.8.1 異常處理 41
3.8.2 異常優先權 41
3.8.3 向量表 42
3.8.4 異常類型 43
3.8.5 PSoC4中斷源 44
3.8.6 PSoC4中斷觸發方式 45
3.8.7 固定功能模組和UDB的中斷布線 46
第4章 Cortex-M0指令集 48
4.1 Thumb指令集 48
4.2 Cortex-M0彙編語言格式 49
4.3 暫存器訪問指令:MOVE 50
4.4 存儲器訪問指令:LOAD 51
4.5 存儲器訪問指令:STORE 54
4.6 多數據訪問指令:LDM和STM 55
4.7 堆疊訪問指令:PUSH和POP 56
4.8 算術運算指令 57
4.8.1 加法指令 57
4.8.2 減法指令 59
4.8.3 乘法指令 60
4.8.4 比較指令 60
4.9 邏輯操作指令 61
4.10 移位操作指令 62
4.10.1 右移指令 62
4.10.2 左移指令 64
4.11 反序操作指令 65
4.12 擴展操作指令 66
4.13 程式流控制指令 67
4.14 存儲器禁止指令 68
4.15 異常相關指令 69
4.16 休眠相關指令 69
4.17 其他指令 69
4.18 數據插入和對齊操作 70
第5章 AHB-Lite匯流排結構分析 71
5.1 匯流排及分類 71
5.1.1 匯流排的概念 71
5.1.2 匯流排的分類 71
5.2 ARM AMBA系統匯流排 72
5.3 AMBA3 AHB-Lite匯流排 73
5.3.1 AHB-Lite概述 73
5.3.2 AHB-Lite匯流排操作 73
5.4 AHB-Lite匯流排結構 74
5.4.1 全局信號 75
5.4.2 AHB-Lite主設備接口 75
5.4.3 AHB-Lite從設備接口 77
5.4.4 地址解碼器和多路選擇器 78
5.5 AHB-Lite匯流排時序 79
5.5.1 無等待基本讀傳輸 80
5.5.2 有等待基本讀傳輸 80
5.5.3 無等待基本寫傳輸 81
5.5.4 有等待基本寫傳輸 81
5.6 硬體實現 82
第6章 Cortex-M0低功耗特性 83
6.1 低功耗要求 83
6.2 Cortex-M0低功耗特性及優勢 83
6.2.1 Cortex-M0低功耗特性概述 83
6.2.2 Cortex-M0低功耗結構 84
6.3 Cortex-M0休眠模式 84
6.4 喚醒中斷控制器 86
6.5 降低功耗的其他方法 87
6.6 PSoC4 BLE低功耗特性 87
6.6.1 休眠模式 88
6.6.2 深度休眠模式 89
6.6.3 冬眠模式 90
6.6.4 停止模式 91
6.7 功耗降低技術 91
6.7.1 關閉未使用的組件 92
6.7.2 以較低速度運行組件 92
6.7.3 降低供電電壓 92
6.7.4 使用PSoC器件控制電流路徑 92
6.7.5 使用DMA傳輸數據 93
6.8 其他功耗模式中需要注意的事項 93
6.8.1 時鐘 93
6.8.2 看門狗定時器 94
6.8.3 GPIO 95
6.8.4 深度休眠模式和冬眠模式下的電壓調節器 96
6.8.5 調試接口 96
第7章 Cortex-M0彙編語言編程基礎 97
7.1 Keil MDK開發套件 97
7.1.1 下載MDK開發套件 97
7.1.2 安裝 MDK開發套件 99
7.1.3 MDK程式處理流程 100
7.2 Cortex-M0彙編語言程式設計 102
7.2.1 建立新設計工程 102
7.2.2 修改編譯器設定 102
7.2.3 添加彙編檔案 103
7.2.4 彙編語言語法說明 106
7.2.5 添加C設計代碼 111
7.3 設計的硬體調試和運行 111
7.4 彙編語言其他常用語法介紹 114
7.4.1 標識符的命名規則 114
7.4.2 變數 114
7.4.3 常數 115
7.4.4 EQU命令 116
7.4.5 IMPORT/EXTERN命令 116
7.4.6 子程式調用 117
7.4.7 宏定義和使用 117
第8章 中斷系統的構建和實現 119
8.1 設計定時器中斷系統 119
8.1.1 建立新的設計工程 119
8.1.2 構建定時器中斷硬體系統 120
8.1.3 配置定時器中斷組件 120
8.1.4 設定定時器中斷優先權 121
8.1.5 使用自動生成的ISR 121
8.1.6 創建自定義的ISR 123
8.2 設計GPIO中斷系統 125
8.2.1 建立新的設計工程 125
8.2.2 構建GPIO中斷硬體系統 126
8.2.3 配置GPIO中斷組件 126
8.2.4 添加引腳約束 128
8.2.5 編寫GPIO 的ISR 128
8.2.6 設計下載 129
8.3 有關中斷的高級主題 129
8.3.1 異常事件 129
8.3.2 中斷延遲 130
8.3.3 最佳化中斷代碼 131
8.3.4 帶有內置中斷的組件 131
8.3.5 強制中斷向量編號 131
8.3.6 Systick定時器 133
8.3.7 中斷嵌套 134
第9章 C語言代碼設計與最佳化方法 135
9.1 全局和本地變數 135
9.1.1 全局變數 135
9.1.2 局部變數 136
9.1.3 靜態變數 136
9.2 編譯器最佳化設定選項 137
9.3 屬性—attribute 139
9.4 LDR和STR指令 139
9.5 函式參數和結果 141
9.6 C語言和彙編混合編程 142
9.6.1 內嵌彙編的語法 142
9.6.2 自動變數 144
9.6.3 全局和靜態變數 144
9.6.4 函式參數 146
9.7 特殊功能指令 148
9.8 結構體的對齊處理 148
9.9 編譯器庫 149
9.9.1 使用標準的C語言庫 150
9.9.2 使用MicroLIB庫進行編譯 151
9.9.3 不使用庫進行編譯 151
9.10 放置代碼和變數 152
9.10.1 連結腳本檔案 152
9.10.2 放置程式 156
9.10.3 一般性考慮 157
第10章 電容感應觸摸控制模組原理及實現 159
10.1 CapSense基本原理 159
10.2 電容式觸摸感應方法 161
10.3 CapSense部件 162
10.3.1 按鍵(零維) 162
10.3.2 滑條(一維) 163
10.3.3 觸控螢幕/觸摸板(二維) 163
10.3.4 接近度感測器(三維) 164
10.4 禁止電極和保護感測器 165
10.5 PSoC4中的CSD模組 166
10.5.1 GPIO單元的電容-電流轉換器 166
10.5.2 開關時鐘發生器 168
10.5.3 電流-數字轉換器 168
10.5.4 模擬多路器 169
10.5.5 禁止電極 169
10.5.6 CMOD的預充電 170
10.6 電容感應觸摸的設計與實現 171
10.6.1 建立新的設計工程 171
10.6.2 在原理圖中添加設計元件 171
10.6.3 配置元件參數 172
10.6.4 配置系統時鐘 174
10.6.5 編寫軟體代碼 175
10.6.6 配置引腳約束 177
第11章 低功耗藍牙模組原理及實現 179
11.1 低功耗藍牙子系統(BLESS) 179
11.1.1 BLESS特性 179
11.1.2 BLESS框架和構成 180
11.1.3 BLE狀態 180
11.2 標準服務與自定義服務 181
11.3 健康溫度計硬體系統的設計與實現 182
11.3.1 建立新的設計工程 182
11.3.2 添加並配置BLE組件 183
11.3.3 添加和配置數字引腳組件 187
11.3.4 添加中斷組件 188
11.3.5 添加和配置溫度測量元件 189
11.3.6 添加引腳約束 193
11.3.7 修改系統時鐘頻率 193
11.4 健康溫度計軟體的設計與實現 194
11.4.1 配置固件 194
11.4.2 系統初始化 196
11.4.3 BLE事件處理程式 197
11.4.4 系統的正常操作模式 199
11.4.5 系統的低功耗工作狀態 199
11.4.6 感測器仿真 200
11.5 系統硬體配置 200
11.6 編程器件 200
11.7 更新編程器固件 201
11.8 使用CySmart中心仿真工具 201
11.9 CySmart手機套用 204
第12章 通用數字塊原理及實現 206
12.1 通用數字塊功能及特性 206
12.2 UDB內部功能塊 207
12.2.1 PLD模組結構 208
12.2.2 PLD宏單元 209
12.3 數據通道模組 210
12.3.1 工作暫存器 210
12.3.2 動態數據通道配置RAM 211
12.4 狀態和控制模組 212
12.5 基於UDB實現3位計數器設計 212
12.5.1 建立新的PSoC工程 213
12.5.2 添加自定義3位計數器IP核 213
12.5.3 調用自定義3位計數器元件 216
12.5.4 配置系統所用元件 217
12.5.5 連線設計中的所有元件 219
12.5.6 配置引腳 221
12.5.7 編程及調試 222
12.5.8 靜態時序分析 222
第13章 模擬子系統原理及實現 224
13.1 模擬子系統框架及功能 224
13.1.1 模擬子系統框架 224
13.1.2 高精度參考 224
13.1.3 SAR ADC 225
13.1.4 低功耗比較器 226
13.1.5 微型連續時間模組 226
13.1.6 LCD直接驅動模組 226
13.1.7 溫度感測器 228
13.2 同相模擬增益放大器的原理及實現 228
13.2.1 建立新的設計工程 228
13.2.2 在原理圖中添加模擬組件 229
13.2.3 修改元件參數 230
13.2.4 連線系統中的所有元件 232
13.2.5 引腳分配 233
13.2.6 添加軟體控制代碼 235
13.2.7 設計下載與測試 235
第14章 FreeRTOS原理及套用 236
14.1 嵌入式和實時的概念 236
14.2 FreeRTOS架構概述 237
14.2.1 FreeRTOS的功能 237
14.2.2 硬體注意事項 237
14.3 任務調度概述 240
14.3.1 任務優先權和就緒列表 240
14.3.2 系統節拍器(時鐘) 241
14.4 任務 242
14.4.1 任務控制塊 242
14.4.2 任務設定 244
14.5 列表 245
14.6 佇列 248
14.7 信號燈和互斥 250
14.8 實現 251
14.9 移植FreeRTOS到PSoC4 BLE 252
14.9.1 下載FreeRTOS源碼 252
14.9.2 建立一個新的設計工程 252
14.9.3 修改編譯器設定 253
14.9.4 添加FreeRTOS源檔案到工程 254
14.9.5 在原理圖中添加硬體組件 255
14.9.6 添加引腳約束檔案 255
14.9.7 在主檔案中添加套用代碼 256
14.9.8 下載設計到目標器件 256