內容簡介
Blackfin系列DSP是ADI開發的高性能定點DSP產品,共分為五大系列數十種型號,分別面向不同種類的套用環境。Blackfin 系列DSP的片上系統集成了大部分常見的工業匯流排與外設接口。Blackfin系列DSP具有強大的處理能力,豐富的外設接口與極低的功耗,使其更易滿足各類不同需求。
圖書目錄
第1章 數位訊號處理和DSP 1
1.1 數位訊號處理的發展 1
1.2 DSP在數位訊號處理中的套用 2
1.3 DSP晶片的結構特點 3
1.4 Blackfin系列DSP 5
1.4.1 Blackfin系列DSP的結構特點 5
1.4.2 ADSP-BF51x系列晶片 7
1.4.3 ADSP-BF52x系列晶片 8
1.4.4 ADSP-BF53x系列晶片 9
1.4.5 ADSP-BF54x系列晶片 10
1.4.6 ADSP-BF561雙核晶片 12
第2章 Blackfin系列DSP的內部結構 13
2.1 核心結構 13
2.1.1 暫存器組 14
2.1.2 算術邏輯單元(ALU) 15
2.1.3 乘法累加器(MAC) 16
2.1.4桶形移位器18
2.2 存儲器 19
2.2.1 存儲器空間分配 19
2.2.2 內部存儲器的詳細介紹 21
2.3 系統概述 33
2.3.1 內部匯流排 33
2.3.2 內部時鐘 35
2.3.3 處理器核心概述 35
2.3.4 接口 36
2.3.5 系統匯流排概述 40
2.4 程式控制器 44
2.4.1 概述 44
2.4.2 相關的暫存器 44
2.4.3 指令流水線 46
2.4.4 程式流的控制 47
2.5 中斷 48
2.5.1 概述 48
2.5.2 系統中斷過程 49
2.5.3 SIC的暫存器 51
2.5.4 CEC的暫存器 54
2.5.5 中斷的全局禁止和使能 55
2.5.6 事件向量表 56
2.5.7 中斷服務 60
2.5.8 中斷的嵌套 61
2.5.9 異常處理 63
2.6 DMA 64
2.6.1 DMA控制器 65
2.6.2 DMA流程 66
2.6.3 DMA暫存器 69
2.6.4 二維DMA 71
2.6.5 DMA性能最佳化 72
2.6.6 DMA軟體管理 74
2.6.7 DMA異常中斷條件 74
第3章 Blackfin系列DSP外部設備 76
3.1 外部匯流排 76
3.1.1 匯流排概述 78
3.1.2 EBIU仲裁 78
3.1.3 出錯檢測 78
3.1.4 異步存儲器接口 79
3.1.5 SDRAM控制器(SDC) 80
3.1.6 DDR SDRAM控制器 81
3.2 I/O接口 83
3.2.1 GPIO接口 83
3.2.2 鍵盤接口 86
3.3 Host DMA接口單元 89
3.3.1 Host DMA接口 89
3.3.2 HOSTDP的工作模式 89
3.3.3 HOSTDP的暫存器 92
3.4 增強型並行外設接口(EPPI) 95
3.4.1 EPPI的結構 95
3.4.2 ITU-656介紹 96
3.4.3 EPPI工作模式 98
3.4.4 EPPI的特性 102
3.4.5 EPPI暫存器 102
3.5 乙太網MAC(EMAC) 103
3.5.1 EMAC的接口 103
3.5.2 EMAC的配置 106
3.5.3 基本EMAC代碼示例 108
3.5.4 EMAC的工業特性 112
3.5.5 EMAC暫存器 112
3.6 存儲器接口 113
3.6.1 ATAPI 113
3.6.2 NAND Flash 119
3.6.3 SDH接口 121
3.7 定時器 124
3.7.1 概述 124
3.7.2 通用定時器 125
3.7.3 核心定時器 126
3.7.4 “看門狗”定時器 127
3.8 串列接口 127
3.8.1 SPI 127
3.8.2 SPORT接口 133
3.8.3 UART接口 138
3.8.4 TWI 140
3.8.5 USBD模組 144
3.9 其他接口簡介 151
3.9.1 基於LockBox技術的安全防護 151
3.9.2 像素合成器(PIXC) 152
3.9.3can模組153
第4章 Blackfin系列DSP硬體開發 156
4.1 引導(BOOT)程式 156
4.1.1 引導模式設定 156
4.1.2 引導過程 157
4.2 PLL與時鐘 157
4.2.1 時鐘系統概述 158
4.2.2 PLL與時鐘控制 158
4.2.3 PLL時鐘的倍頻因子和分頻比 159
4.2.4 PLL的MMR 161
4.3 動態電源管理 163
4.3.1 動態電源管理控制器(DPMC) 163
4.3.2 運行方式 163
4.3.3 運行方式的切換 165
4.3.4 外設的定時 167
4.3.5 動態電源電壓控制 167
4.4 處理器核心模式設定 169
4.4.1 概述 169
4.4.2 用戶模式 170
4.4.3 監控模式 171
4.4.4 仿真模式 172
4.4.5 空閒狀態 173
4.4.6 復位狀態 173
4.4.7 系統復位和上電設定 174
4.5 硬體設計 176
4.5.1 引腳處理 176
4.5.2 設計復用時鐘引腳 178
4.5.3 中斷配置和服務 179
4.5.4 信號量 179
4.5.5 PCI仲裁 180
4.5.6 USB設備連線 180
4.5.7 外部存儲器設計 181
4.5.8 高頻設計 184
第5章 Blackfin系列DSP指令集 186
5.1數據定址方式 186
5.2 Blackfin系列DSP指令系統特點 187
5.2.1 Blackfin系列DSP核心結構與指令 187
5.2.2 Blackfin系列DSP指令說明 188
5.3 程式流程控制指令 192
5.3.1 跳轉指令/條件跳轉指令 192
5.3.2 調用和返回指令 193
5.3.3 循環指令 193
5.4 載入和存儲指令 194
5.4.1 載入指令 194
5.4.2 存儲指令 195
5.5 數據轉移指令 196
5.5.1 暫存器數據轉移指令 196
5.5.2 擴展半個字到一個字的數據轉移指令 197
5.6 棧控制指令 197
5.6.1進棧指令 197
5.6.2 出棧指令 198
5.6.3 連線和撤銷連線指令 198
5.7 邏輯運算指令 199
5.7.1 與、或、非、異或 199
5.7.2 位方式異或指令 200
5.8 移位和循環指令 202
5.8.1算術移位指令 202
5.8.2 邏輯移位指令 203
5.8.3 加後移位指令 204
5.8.4 移位後加指令 204
5.8.5 循環移位指令 205
5.9 算術運算指令 206
5.9.1 加、減、乘、除 206
5.9.2 最大值指令和最小值指令 210
5.9.3 絕對值指令和取補指令 210
5.9.4 捨入指令 211
5.9.5 飽和指令 211
5.9.6 符號位指令 211
5.10 位操作指令 212
5.10.1 位清除指令 212
5.10.2 位置位指令 212
5.10.3 位取反指令 212
5.10.4 位測試指令 213
5.10.5 位域存放指令 213
5.10.6 位域提取指令 214
5.10.7 位復用指令 216
5.10.8 ONES指令 216
5.11 CC位操作指令 217
5.11.1 比較數據暫存器、指針、累加器指令 217
5.11.2 取補CC位指令 217
5.11.3 傳輸CC位指令 218
5.12 外部事件操作指令 218
5.12.1 空閒指令 218
5.12.2 核心同步指令 218
5.12.3 強制仿真指令 219
5.12.4 中斷指令 219
5.12.5 空指令 220
5.13 Cache控制指令 220
5.13.1 數據Cache預取指令220
5.13.2 數據Cache刷新指令 220
5.13.3 指令Cache無效指令 221
5.14 視頻像素操作指令 221
5.14.1 校正指令 221
5.14.2 雙16位操作 222
5.14.3 4個位元組數操作 223
5.15 向量操作指令 227
5.15.1 加、減、乘 227
5.15.2 向量最大值指令和向量最小值指令 230
5.15.3 向量移位指令 231
5.15.4 其他指令 232
5.16 並行指令 236
第6章 VisualDSP++ 240
6.1 VisualDSP++ 總體介紹 240
6.1.1 VisualDSP++簡單介紹 240
6.1.2 開發環境 243
6.2JTAG仿真器258
6.2.1 JTAG連線 258
6.2.2 ICE配置與測試 258
6.3 C/C++編譯器 259
6.3.1 數據類型 259
6.3.2 運行時環境與運行時庫 260
6.3.3 從命令行運行編譯器 260
6.3.4 在VisualDSP++中配置編譯器 262
6.3.5 最佳化控制 262
6.4 彙編器 264
6.4.1 彙編器命令 264
6.4.2 彙編程式結構和語法 265
6.4.3 預處理器 267
6.5 連結器 267
6.5.1 連結過程概述 267
6.5.2 連結檔案 268
6.5.3 連結器參數選擇 269
6.5.4 專家連結器(EL) 271
6.6 載入器 276
6.6.1 從命令行運行載入器 276
6.6.2 在VisualDSP++中配置載入器 279
6.7 作業系統核心(VDK) 280
6.7.1 核心的作用 280
6.7.2 調度 280
6.8 VDK的組成 281
6.8.1 執行緒 281
6.8.2 調度程式 282
6.8.3 中斷服務程式 284
第7章 軟體編程 286
7.1彙編編譯器286
7.1.1 彙編概要 286
7.1.2 支持C語言結構的彙編器 286
7.1.3 彙編語法 287
7.2 C/C++編譯器 295
7.2.1 C/C++編譯器簡介 295
7.2.2 數據類型存儲長度 295
7.2.3 C/C++編譯語言擴展 296
7.3 預處理指令 301
7.3.1 引用頭檔案 301
7.3.2 宏的編寫 302
7.3.3 條件彙編和編譯 302
7.4 C代碼最佳化 307
7.4.1 循環最佳化 307
7.4.2 內聯函式最佳化 310
7.4.3 使用彙編語言最佳化 312
7.5 C與彙編混合編程 313
7.5.1 C/C++和彙編接口命名規則 313
7.5.2 C運行時環境下暫存器的使用 314
7.5.3 參數傳遞和局部堆疊存儲分配——LINK和unlink指令 314
7.5.4 在C/C++程式中調用彙編子程式 315
7.5.5 在彙編程式中調用C/C++函式 316
7.6 VisualDSP++ 5.0 C/C++運行時庫函式介紹 317
7.7 VisualDSP++ 5.0 DSP庫函式介紹 319
7.8 VisualDSP++5.0設備驅動庫函式簡單介紹 321
第8章 套用實例 323
8.1 套用系統設計舉例 323
8.1.1 單片DSP系統 323
8.1.2 多片DSP系統 325
8.2 MPEG-4編碼系統 326
8.2.1 MPEG-4視頻壓縮方法簡介 326
8.2.2 DCT和IDCT327
8.2.3 量化 327
8.2.4運動估計327
8.2.5 熵編碼 328
8.3 代碼示例 328
8.3.1 PADDING算法代碼的編寫和最佳化 328
8.3.2 DCT算法代碼的編寫和最佳化 334
8.3.3 運動矢量預測 335
8.3.4 SAD最小搜尋 341
8.4 基於Blackfin ADSP-BF561晶片的CCD攝像頭圖像處理 342
8.4.1 系統簡介 342
8.4.2 系統功能與指標 342
8.4.3 系統概述 343
8.4.4 系統硬體設計 344
8.4.5 系統軟體設計 344
8.5 基於Blackfin ADSP-BF561晶片的智慧型視頻監控系統347
8.5.1 系統簡介 347
8.5.2 系統功能與指標 348
8.5.3 系統概述 348
8.5.4 系統硬體設計 349
8.5.5 系統軟體設計 350
……