《DSP晶片的原理與開發應用(第4版)》
《DSP晶片的原理與開發應用(第4版)》
GITHUB:
https://github.com/jash-git/Jash-good-idea-20220101-001/tree/main/HW/DSP
內
容 簡
介; 2
第4 版說明; 3
前 言; 4
目 錄; 6
第1 章 概 述; 10
1.1 引 言; 10
1.2 DSP 系統; 11
1.2.1 DSP 系統的基本構成; 11
1.2.2 DSP 系統的特點; 11
1.2.3 DSP 系統的設計; 12
1.2.4 DSP 系統的開發; 13
1.3 DSP 晶片; 14
1.3.1 DSP 晶片的定義; 14
1.3.2 DSP 晶片的特點; 14
1.3.3 DSP 晶片的發展; 15
1.3.4 TI 公司的DSP 晶片; 16
1.3.5 DSP 晶片的分類; 17
1.3.6 DSP 晶片的選擇; 18
1.3.7 DSP 系統的運算量; 19
1.3.8 DSP 晶片的應用; 20
1.4 小 結; 21
1.5 習題與思考題; 21
第2 章 DSP 晶片的基本結構和特徵; 22
2.1 引 言; 22
2.2 DSP 晶片的基本結構; 22
2.3 中央處理單元(CPU); 23
2.3.1 算數邏輯單位(ALU); 23
2.3.2 累加器; 24
2.3.3 桶形移位暫存器; 25
2.3.4 乘累加單元; 25
2.3.5 定址單元; 26
2.4 匯流排結構和流水線; 27
2.5 片內記憶體; 29
2.6 集成外設; 31
2.6.1 通用I/O 介面; 31
2.6.2 計時器; 31
2.6.3 主機介面(HPI); 31
2.6.4 串列口; 31
2.6.5 軟體可程式設計等候狀態產生器; 33
2.7
TI 定點DSP 晶片; 33
2.7.1 早期的定點DSP 晶片; 33
2.7.2 TMS320C2000 系列; 40
2.7.3 TMS320C5000 系列; 41
2.7.4 TMS320C62x/C64x 系列; 44
2.8 TI 浮點DSP 晶片; 45
2.8.1 TMS320C3x; 45
2.8.2 TMS320C67x; 48
2.9 其他DSP 晶片簡介; 48
2.9.1 AD 公司的DSP 晶片; 48
2.9.2 AT&T 公司DSP 晶片; 50
2.9.3 Motorola 公司DSP 晶片; 50
2.10 小 結; 51
2.11 習題與思考題; 51
第3 章 DSP 的數值運算基礎; 52
3.1 引 言; 52
3.2 定點的基本概念; 52
3.2.1 數的定標; 52
3.2.2 數的轉換; 53
3.2.3 溢出保護; 54
3.2.4 符號擴展; 55
3.2.5 舍入與截尾; 55
3.3 定點運算實現的基本原理; 56
3.3.1 加法/減法運算的C 語言定點類比; 56
3.3.2 乘法運算的C 語言定點類比; 58
3.3.3 除法運算的C 語言定點類比; 59
3.3.4 程式變數的Q 值確定; 59
3.3.5 浮點至定點變換的C 程式舉例; 60
3.4 DSP 定點算數運算實現的基本原理; 62
3.4.1 定點乘法; 62
3.4.2 定點加法; 64
3.4.3 定點除法; 64
3.5 非線性運算定點實現方法; 66
3.5.1 級數展開法; 66
3.5.2 查表法; 67
3.5.3 混合法; 68
3.6 浮點數的表示格式; 70
3.6.1 IEEE 浮點數格式; 70
3.6.2 TMS320C3x 浮點數格式; 71
3.7 基本的浮點運算; 73
3.7.1 浮點乘法和加減法; 73
3.7.2 浮點除法; 73
3.8 非線性浮點運算的快速實現; 74
3.9 小 結; 76
3.10 習題與思考題; 76
第4 章 DSP 晶片的開發環境; 77
4.1 引 言; 77
4.2 軟體發展; 77
4.3 軟體發展環境; 79
4.3.1 CCS 安裝與設置; 79
4.3.2 CCS 基本環境; 83
4.3.3 CCS 工程開發實例; 97
4.3.4 DSP/BIOS; 108
4.4 硬體開發; 110
4.5 硬體開發環境; 111
4.6 小 結; 112
4.7 習題與思考題; 112
第5 章 基於C 語言的DSP 晶片開發; 113
5.1 引 言; 113
5.2 CCS 支援的C 語言; 113
5.2.1 變數和常數; 114
5.2.2 函數; 119
5.2.3 預處理; 122
5.3 C 語言程式碼的優化; 122
5.3.1 C 語言程式碼編譯分析; 122
5.3.2 C 語言程式的優化方法; 127
5.4 小 結; 131
5.5 習題與思考題; 131
第6 章 DSP 晶片的存儲資源管理; 132
6.1 引 言; 132
6.2 DSP 晶片的記憶體; 132
6.2.1 片內記憶體; 132
6.2.2 外部擴展記憶體; 133
6.3 存儲區的組織; 133
6.3.1 程式空間; 133
6.3.2 資料空間; 134
6.3.3 I/O 空間; 135
6.3.4 記憶體映射寄存器; 135
6.3.5 TMS320VC5416 的存儲資源; 135
6.4 DSP 晶片中的代碼存儲結構; 137
6.4.1 塊; 137
6.4.2 彙編器對塊的處理; 138
6.4.3 連結器對塊的處理; 139
6.4.4 程式重定位; 140
6.4.5 COFF 檔中的符號; 141
6.4.6 COFF 格式程式設計示例; 142
6.5 存儲區分配示例; 143
6.5.1 TMS320C2xx 連結命令檔示例; 143
6.5.2 TMS320VC5416 連結命令檔示例; 144
6.6 小 結; 145
6.7 習題與思考題; 145
第7 章 TMS320C5000 DSP 晶片的組合語言; 146
7.1 組合語言來源程式格式; 146
7.2 彙編來源程式中常見符號和虛擬指令; 147
7.3 彙編指令系統; 150
7.4 定址方式; 194
7.4.1 數據定址; 194
7.4.2 程式定址; 203
7.5 小 結; 205
7.6 習題與思考題; 205
第8 章 基於C 和組合語言混合程式設計的DSP 晶片開發; 206
8.1 引 言; 206
8.2 基於C 和組合語言的混合程式設計方法; 206
8.2.1 獨立的C 和彙編模組介面; 206
8.2.2 從C 程式中訪問組合語言程式變數; 209
8.2.3 在組合語言程式中訪問C 程式變數; 210
8.2.4 在C 程式中直接嵌入彙編語句; 211
8.2.5 修改C 編譯器的輸出; 213
8.3 基於C 和組合語言的混合程式設計舉例; 214
8.3.1 TMS320C3x/C4x 混合程式設計舉例; 214
8.3.2 TMS320C2x/C5x 混合程式設計舉例; 215
8.3.3 TMS320C54x 混合程式設計舉例; 216
8.4 DSP 代碼的優化; 216
8.4.1 C 代碼的優化; 217
8.4.2 彙編代碼的優化; 220
8.5 小 結; 227
8.6 習題與思考題; 227
第9 章 DSP 晶片集成外設的開發; 228
9.1 引 言; 228
9.2 中 斷; 229
9.2.1 概述; 229
9.2.2 DSP 中斷資源; 233
9.2.3 DSP 中斷程式實現; 234
9.3
DMA; 236
9.3.1 DMA 資料傳輸模式; 237
9.3.2 DSP 的DMA 控制; 237
9.3.3 DSP 的DMA 配置舉例; 241
9.4 時序模組; 243
9.4.1 PLL 模組; 243
9.4.2 定時模組; 245
9.5 介面模組; 249
9.5.1 概述; 249
9.5.2 多通道緩衝串列口; 250
9.5.3 主機介面(HPI); 257
9.5.4 外部記憶體介面(EMIF); 262
9.5.5 通用I/O 口; 267
9.6 基於CSL 的外設開發; 267
9.6.1 CSL 概述; 267
9.6.2 CSL 程式開發; 268
9.7 小 結; 273
9.8 習題與思考題; 273
第10 章 DSP 離線系統設計; 274
10.1 引 言; 274
10.2 DSP 晶片的初始化; 274
10.2.1 寄存器初始化; 274
10.2.2 中斷向量表初始化; 277
10.2.3 串列口初始化; 279
10.3 DSP 系統的BOOT 設計; 283
10.3.1 TMS320C50 的BOOT 設計; 283
10.3.2 TMS320C54x 的BOOT 設計; 285
10.3.3 TMS320C55x 的BOOT 設計; 291
10.3.4 TMS320C6x 的BOOT 設計; 294
10.4 小 結; 295
10.5 習題與思考題; 296
第11 章 DSP 硬體系統設計; 297
11.1 引 言; 297
11.2 DSP 系統的基本硬體設計; 297
11.2.1 電源電路; 297
11.2.2 重定電路; 299
11.2.3 引腳的電平轉換與處理; 300
11.2.4 硬體系統的可靠性設計; 303
11.3 DSP 典型硬體系統舉例; 306
11.3.1 外部記憶體介面設計; 306
11.3.2 模數介面電路的設計; 314
11.3.3 通信介面的設計; 318
11.3.4 主從式系統的設計; 321
11.4 小 結; 329
11.5 習題與思考題; 329
第12 章 DSP 晶片應用系統開發實例; 330
12.1 引 言; 330
12.2 一個基於TMS320C203 DSP 應用系統的開發; 330
12.2.1 系統簡介; 330
12.2.2 系統硬體設計; 331
12.2.3 系統軟體設計; 333
12.2.4 硬體調試; 333
12.2.5 軟體調試; 336
12.2.6 獨立系統實現; 336
12.3 一個基於TMS320C31 DSP 系統的開發; 337
12.3.1 系統簡介; 337
12.3.2 系統構成; 337
12.3.3 系統軟硬體設計; 338
12.3.4 軟硬體調試; 340
12.3.5 獨立系統實現; 342
12.4 一個基於TMS320VC5409 DSP 應用系統的開發; 343
12.4.1 G.729A 及系統簡介; 343
12.4.2 系統構成; 344
12.4.3 系統軟硬體設計; 345
12.4.4 系統調試; 346
12.4.5 獨立系統形成; 347
12.5 小 結; 349
12.6 習題與思考題; 349
第13 章 數位濾波器演算法的DSP 實現; 350
13.1 引 言; 350
13.2 FIR 濾波器的DSP 實現; 350
13.2.1 FIR 濾波器的基本原理和設計方法; 350
13.2.2 FIR 濾波器的定點DSP 實現; 353
13.2.3 FIR 濾波器的浮點DSP 實現; 356
13.3 IIR 濾波器的DSP 實現; 358
13.3.1 IIR 濾波器的基本原理和設計方法; 358
13.3.2 IIR 濾波器的定點DSP 實現; 361
13.3.3 IIR 濾波器的浮點DSP 實現; 363
13.4 自我調整濾波器的DSP 實現; 366
13.4.1 自我調整濾波器的基本原理; 366
13.4.2 自我調整濾波器的TMS320C2xx 定點實現; 367
13.4.3 自我調整濾波器的TMS320C54x 定點實現; 369
13.4.4 自我調整濾波器的TMS320C3x 浮點實現; 373
13.5 小 結; 374
13.6 習題與思考題; 374
第14 章 FFT 演算法的DSP 實現; 375
14.1 引 言; 375
14.2 FFT 的基本原理; 375
14.2.1 DFT 的基本原理; 375
14.2.2 FFT 演算法的匯出; 376
14.3 FFT 演算法的C 語言實現; 380
14.4 FFT 的定點DSP 實現; 382
14.4.1 運算溢出及避免方法; 382
14.4.2 FFT 的TMS320C2xx 實現; 383
14.4.3 FFT 的TMS320C54x 實現; 388
14.5 FFT 的浮點DSP 實現; 394
14.6 小 結本; 401
14.7 習題與思考題; 401
附錄A TMS320C54x 指令集; 402
附錄B TI 格式檔轉化為二進位檔案; 409
附錄C 8 位μ律/16 位元線性互換的C 語言程式; 413
附錄D μ律到線性變換表; 415
附錄E 縮寫詞的英文對照; 416
參考文獻; 419