本書由淺入深、全面系統(tǒng)地介紹了DSP芯片的基本原理、開發(fā)和應(yīng)用。首先介紹了DSP芯片的基本結(jié)構(gòu)和特征,以及定點(diǎn)和浮點(diǎn)DSP處理的運(yùn)算基礎(chǔ);其次介紹了DSP芯片的開發(fā)工具,重點(diǎn)介紹了目前廣泛應(yīng)用的CCS集成開發(fā)環(huán)境及其使用方法;接著,介紹了基于C語言和匯編語言的開發(fā)方法以及DSP芯片的存儲(chǔ)資源管理,較為詳細(xì)地介紹了DSP系統(tǒng)的軟硬件設(shè)計(jì)方法;最后,通過應(yīng)用實(shí)例介紹了DSP系統(tǒng)開發(fā)過程和DSP系統(tǒng)實(shí)現(xiàn)方法。
本書按照“基礎(chǔ)知識(shí)—開發(fā)環(huán)境—軟件開發(fā)—硬件開發(fā)—綜合實(shí)例”的順序,由淺入深、全面系統(tǒng)地介紹了DSP芯片的基本原理、開發(fā)過程和應(yīng)用方法。首先,介紹了DSP系統(tǒng)的設(shè)計(jì)、DSP芯片的特點(diǎn)、DSP芯片的軟硬件開發(fā)環(huán)境以及定點(diǎn)和浮點(diǎn)DSP的運(yùn)算基礎(chǔ);其次,在介紹DSP芯片存儲(chǔ)資源管理的基礎(chǔ)上,重點(diǎn)介紹了基于C語言和匯編語言的軟件開發(fā)方法;接著,介紹了DSP系統(tǒng)的硬件設(shè)計(jì)和開發(fā)方法;最后,通過實(shí)例介紹了DSP綜合系統(tǒng)的開發(fā)過程和開發(fā)方法。
張雄偉,1992年起,歷任南京通信工程學(xué)院講師、副教授、教授;1999年起,任解放軍理工大學(xué)教授至今。主要從事數(shù)字語音信號(hào)處理、DSP 原理及應(yīng)用等方面科研任務(wù)。獲國家教學(xué)成果二等獎(jiǎng)1項(xiàng);國家科技進(jìn)步二等獎(jiǎng)1項(xiàng);省部級(jí)教學(xué)成果一等獎(jiǎng)2項(xiàng);省部級(jí)科技進(jìn)步一等獎(jiǎng)2項(xiàng);出版教材多部,其中1部為普通高等教育國家級(jí)規(guī)劃教材。
第1章 概述 1
1.1 引言 1
1.2 DSP系統(tǒng) 2
1.2.1 DSP系統(tǒng)的基本構(gòu)成 2
1.2.2 DSP系統(tǒng)的特點(diǎn) 2
1.2.3 DSP系統(tǒng)的設(shè)計(jì)與開發(fā) 3
1.2.4 DSP系統(tǒng)的開發(fā)工具 4
1.2.5 實(shí)時(shí)DSP系統(tǒng) 5
1.3 DSP芯片概述 6
1.3.1 DSP芯片的定義 6
1.3.2 DSP芯片的特點(diǎn) 6
1.3.3 DSP芯片的發(fā)展 7
1.3.4 DSP芯片的分類 8
1.3.5 DSP芯片的選擇 9
1.3.6 DSP系統(tǒng)的運(yùn)算量 12
1.3.7 DSP芯片的應(yīng)用 13
1.4 常用的DSP芯片 14
1.4.1 TI公司DSP芯片 14
1.4.2 ADI公司DSP芯片 19
1.5 內(nèi)容組織與常用術(shù)語 20
1.5.1 內(nèi)容組織結(jié)構(gòu) 20
1.5.2 常用術(shù)語 21
本章小結(jié) 21
習(xí)題與思考題 22
第2章 DSP芯片的基本結(jié)構(gòu)和特征 23
2.1 引言 23
2.2 DSP芯片的基本結(jié)構(gòu) 23
2.2.1 概述 23
2.2.2 總線結(jié)構(gòu) 23
2.2.3 流水線 25
2.3 中央處理單元(CPU) 25
2.3.1 算術(shù)邏輯單元(ALU) 26
2.3.2 累加器 27
2.3.3 桶形移位寄存器 27
2.3.4 乘累加單元 28
2.3.5 尋址單元 29
2.4 存儲(chǔ)單元 30
2.4.1 片內(nèi)存儲(chǔ)器 30
2.4.2 存儲(chǔ)器映射寄存器 31
2.4.3 Cache 31
2.4.4 外部擴(kuò)展存儲(chǔ)器 32
2.5 集成外設(shè)與接口 32
2.5.1 通用類外設(shè) 33
2.5.2 通信類外設(shè) 34
2.5.3 存儲(chǔ)類接口 35
2.5.4 DMA控制器 35
2.5.5 專用外設(shè)與接口 36
2.6 中斷 36
2.6.1 中斷源 37
2.6.2 中斷優(yōu)先級(jí) 37
2.6.3 中斷處理過程 39
2.6.4 中斷矢量表 39
本章小結(jié) 40
習(xí)題與思考題 40
第3章 DSP芯片的開發(fā)環(huán)境 41
3.1 引言 41
3.2 軟件開發(fā)流程 41
3.3 軟件開發(fā)環(huán)境 43
3.3.1 基本概念 44
3.3.2 CCS開發(fā)環(huán)境 46
3.3.3 軟件開發(fā)功能 51
3.3.4 DSP/BIOS 62
3.4 硬件開發(fā)流程 67
3.5 硬件開發(fā)環(huán)境 67
3.5.1 DSP仿真器 68
3.5.2 仿真器接口 68
3.5.3 TI公司仿真器 70
本章小結(jié) 70
習(xí)題與思考題 71
第4章 DSP的數(shù)值運(yùn)算基礎(chǔ) 72
4.1 引言 72
4.2 定點(diǎn)的基本概念 72
4.2.1 數(shù)的定標(biāo) 72
4.2.2 數(shù)的轉(zhuǎn)換 73
4.2.3 溢出保護(hù) 75
4.2.4 符號(hào)擴(kuò)展 76
4.2.5 舍入與截尾 76
4.3 定點(diǎn)運(yùn)算實(shí)現(xiàn)的基本原理 77
4.3.1 加法/減法運(yùn)算的C語言定點(diǎn)模擬 77
4.3.2 乘法運(yùn)算的C語言定點(diǎn)模擬 79
4.3.3 除法運(yùn)算的C語言定點(diǎn)模擬 80
4.3.4 程序變量的Q值確定 80
4.3.5 浮點(diǎn)至定點(diǎn)變換的C程序舉例 81
4.4 DSP定點(diǎn)算術(shù)運(yùn)算實(shí)現(xiàn)的基本原理 83
4.4.1 定點(diǎn)乘法 83
4.4.2 定點(diǎn)加法 84
4.4.3 定點(diǎn)除法 85
4.5 非線性運(yùn)算定點(diǎn)實(shí)現(xiàn)方法 87
4.5.1 級(jí)數(shù)展開法 87
4.5.2 查表法 87
4.5.3 混合法 89
4.6 浮點(diǎn)數(shù)的表示格式 91
4.6.1 IEEE浮點(diǎn)數(shù)格式 91
4.6.2 TMS320C3x浮點(diǎn)數(shù)格式 92
4.7 基本的浮點(diǎn)運(yùn)算 94
4.7.1 浮點(diǎn)乘法和加減法 94
4.7.2 浮點(diǎn)除法 94
4.8 非線性浮點(diǎn)運(yùn)算的快速實(shí)現(xiàn) 95
本章小結(jié) 97
習(xí)題與思考題 97
第5章 DSP芯片的存儲(chǔ)資源管理 98
5.1 引言 98
5.2 TMS320C54x的存儲(chǔ)區(qū)組織 98
5.2.1 程序空間 98
5.2.2 數(shù)據(jù)空間 99
5.2.3 I/O空間 99
5.2.4 存儲(chǔ)器映射寄存器 100
5.2.5 TMS320VC5416的存儲(chǔ)資源 100
5.3 TMS320C55x的存儲(chǔ)區(qū)組織 101
5.3.1 存儲(chǔ)空間組織 102
5.3.2 TMS320VC5509A的存儲(chǔ)資源 102
5.3.3 程序空間 103
5.3.4 數(shù)據(jù)空間 104
5.3.5 I/O空間 105
5.4 程序結(jié)構(gòu)與COFF目標(biāo)文件格式 105
5.4.1 塊(section) 106
5.4.2 匯編器對(duì)塊的處理 106
5.4.3 鏈接器對(duì)塊的處理 108
5.4.4 程序重定位 108
5.4.5 COFF文件中的符號(hào) 109
5.4.6 COFF文件格式編程示例 109
5.5 存儲(chǔ)區(qū)分配與CMD文件 111
5.5.1 文件鏈接方法 111
5.5.2 鏈接命令文件 112
5.5.3 TMS320 VC5509A的 CMD文件 112
本章小結(jié) 115
習(xí)題與思考題 115
第6章 基于C語言的DSP芯片開發(fā) 116
6.1 引言 116
6.2 TMS320C55x的C語言 116
6.2.1 變量和常數(shù) 118
6.2.2 函數(shù) 121
6.2.3 預(yù)處理 123
6.2.4 asm語句 125
6.3 C語言程序代碼的優(yōu)化 125
6.3.1 C語言程序代碼編譯分析 125
6.3.2 C語言程序的優(yōu)化方法 131
本章小結(jié) 141
習(xí)題與思考題 141
第7章 基于TMS320C55x的匯編語言開發(fā) 142
7.1 匯編語言源程序格式 142
7.2 匯編源程序中常見符號(hào)和偽指令 144
7.3 匯編指令系統(tǒng) 147
7.4 尋址方式 150
7.4.1 絕對(duì)尋址方式 150
7.4.2 直接尋址方式 151
7.4.3 間接尋址方式 153
7.5 匯編代碼的優(yōu)化 162
7.6 匯編語言和C的混合編程方法 162
7.6.1 獨(dú)立的C和匯編模塊接口 163
7.6.2 從C程序中訪問匯編程序變量 164
7.6.3 在匯編程序中訪問C程序變量 165
7.6.4 在C程序中直接嵌入?yún)R編語句 166
7.6.5 TMS320C55x混合編程舉例 166
本章小結(jié) 167
習(xí)題與思考題 167
第8章 DSP算法軟件開發(fā)實(shí)例 168
8.1 引言 168
8.2 基于FFT的單音檢測算法原理 168
8.2.1 單音檢測算法概述 168
8.2.2 DFT的基本原理 169
8.2.3 FFT算法的導(dǎo)出 169
8.3 基于MATLAB的DSP算法仿真 174
8.3.1 MATLAB簡介 174
8.3.2 單音檢測算法的MATLAB仿真 175
8.4 單音檢測算法的浮點(diǎn)C語言實(shí)現(xiàn) 177
8.5 單音檢測算法的定點(diǎn)C語言實(shí)現(xiàn) 181
8.5.1 FFT運(yùn)算溢出及避免方法 182
8.5.2 單音檢測算法的定點(diǎn)C語言實(shí)現(xiàn) 183
8.6 單音檢測算法的定點(diǎn)DSP芯片實(shí)現(xiàn) 188
本章小結(jié) 190
習(xí)題與思考題 190
第9章 DSP系統(tǒng)的硬件設(shè)計(jì) 191
9.1 引言 191
9.2 DSP系統(tǒng)硬件設(shè)計(jì)的基本步驟 191
9.3 最小DSP系統(tǒng)的硬件設(shè)計(jì) 192
9.3.1 電源電路 192
9.3.2 復(fù)位電路 195
9.3.3 時(shí)鐘電路 196
9.3.4 JTAG電路 197
9.3.5 引腳的電平轉(zhuǎn)換與處理 198
9.3.6 硬件系統(tǒng)的可靠性設(shè)計(jì) 200
9.4 外部存儲(chǔ)器接口設(shè)計(jì) 203
9.4.1 TMS320C54x存儲(chǔ)器接口設(shè)計(jì) 204
9.4.2 TMS320C55x存儲(chǔ)器接口設(shè)計(jì) 208
9.5 模數(shù)接口電路的設(shè)計(jì) 209
9.5.1 TLV320AIC23B接口的設(shè)計(jì) 209
9.5.2 MC145483接口的設(shè)計(jì) 212
9.6 通信接口的設(shè)計(jì) 213
9.6.1 通信接口 213
9.6.2 同步通信接口電路設(shè)計(jì) 214
9.6.3 異步通信接口電路設(shè)計(jì) 215
9.7 主從式系統(tǒng)的設(shè)計(jì) 215
9.7.1 共享存儲(chǔ)器實(shí)現(xiàn)雙機(jī)通信 216
9.7.2 利用HPI實(shí)現(xiàn)雙機(jī)通信 217
本章小結(jié) 218
習(xí)題與思考題 218
第10章 DSP芯片外設(shè)驅(qū)動(dòng)程序的開發(fā) 219
10.1 引言 219
10.2 基于CSL的外設(shè)程序設(shè)計(jì) 220
10.2.1 CSL簡介 220
10.2.2 CSL的特點(diǎn) 222
10.2.3 CSL程序開發(fā)基本步驟 224
10.3 中斷控制程序的開發(fā) 233
10.3.1 中斷初始化 234
10.3.2 中斷服務(wù)程序的開發(fā) 237
10.3.3 中斷控制程序?qū)嵗?238
10.4 典型接口功能的控制程序開發(fā) 241
10.4.1 外部存儲(chǔ)的控制程序 241
10.4.2 串行A/D和D/A功能的控制程序 244
10.4.3 外部主機(jī)通信功能的控制程序 249
10.5 DMA的控制程序開發(fā) 250
10.5.1 DSP芯片的DMA數(shù)據(jù)傳輸模式 251
10.5.2 DSP芯片的DMA傳輸?shù)刂?252
10.5.3 DSP芯片的DMA事件和中斷 252
10.5.4 DMA控制程序舉例 254
本章小結(jié) 257
習(xí)題與思考題 257
第11章 DSP脫機(jī)系統(tǒng)的開發(fā) 258
11.1 聯(lián)機(jī)系統(tǒng)和脫機(jī)系統(tǒng) 258
11.2 DSP芯片的BOOT 260
11.2.1 BOOT簡介 260
11.2.2 BOOT過程 261
11.2.3 BOOT表 266
11.3 DSP脫機(jī)系統(tǒng)實(shí)現(xiàn) 267
11.3.1 硬件設(shè)計(jì) 267
11.3.2 軟件代碼準(zhǔn)備與燒錄 268
11.4 DSP脫機(jī)系統(tǒng)軟件開發(fā)實(shí)例 271
11.4.1 并口FLASH脫機(jī)系統(tǒng)的軟件開發(fā) 271
11.4.2 串口FLASH脫機(jī)系統(tǒng)的軟件開發(fā) 273
本章小結(jié) 276
習(xí)題與思考題 277
第12章 DSP系統(tǒng)的開發(fā)實(shí)例 278
12.1 引言 278
12.2 基于TMS320VC5509A的DSP應(yīng)用系統(tǒng)實(shí)例 278
12.2.1 系統(tǒng)簡介 278
12.2.2 系統(tǒng)架構(gòu) 279
12.3 系統(tǒng)的硬件開發(fā) 280
12.3.1 器件選型 280
12.3.2 接口設(shè)計(jì) 282
12.3.3 電路設(shè)計(jì) 283
12.3.4 電路調(diào)試 286
12.4 系統(tǒng)的軟件開發(fā) 287
12.4.1 算法仿真程序編寫和測試 287
12.4.2 接口控制程序編寫和調(diào)試 289
12.5 系統(tǒng)的軟硬件集成 297
本章小結(jié) 307
習(xí)題與思考題 308
附錄A 縮略詞的中英文對(duì)照 309
附錄B TMS320VC5509A PGE LQFP引腳圖及定義 313
附錄C TMS320C55x 指令集 315
附錄D CSL庫函數(shù) 332
附錄E 代碼實(shí)例 346
附錄F CCS V5.5的安裝 365
附錄G 8位?律PCM/16位線性轉(zhuǎn)換的C語言程序 369
附錄H ?律PCM到線性變換表 371
參考文獻(xiàn) 372