本書按照“基礎知識―開發(fā)環(huán)境―軟件開發(fā)―硬件開發(fā)―綜合開發(fā)”的順序,由淺入深、全面系統(tǒng)地介紹了DSP芯片的基本原理、開發(fā)過程和應用方法。首先,介紹了DSP系統(tǒng)的設計、DSP芯片的特點、DSP芯片的軟硬件開發(fā)環(huán)境及定點數(shù)據(jù)處理的運算基礎;其次,在介紹DSP芯片存儲資源管理的基礎上,重點介紹了基于C語言和匯編語言的軟件開發(fā)方法;接著,介紹了DSP系統(tǒng)的硬件設計和開發(fā)方法;最后,介紹了DSP多任務系統(tǒng)的開發(fā)方法,并通過實例介紹了DSP綜合系統(tǒng)的開發(fā)過程和開發(fā)方法。
張雄偉,教授,博士生導師,全國優(yōu)秀教師,國務院特殊津貼獲得者。長期從事語音與圖像處理、智能信息處理等領域的教學研究工作,主持國家自然科學基金、863計劃項目多項,發(fā)表論文100余篇,培養(yǎng)研究生80余人,出版教材、譯著10部。
第1章 概述\t1
1.1 引言\t1
1.2 DSP系統(tǒng)\t2
1.2.1 DSP系統(tǒng)的基本構成\t2
1.2.2 DSP系統(tǒng)的特點\t3
1.2.3 DSP系統(tǒng)的設計與開發(fā)\t3
1.2.4 DSP系統(tǒng)的開發(fā)工具\t4
1.2.5 實時DSP系統(tǒng)\t5
1.3 DSP芯片概述\t6
1.3.1 DSP芯片的定義\t6
1.3.2 DSP芯片的特點\t7
1.3.3 DSP芯片的發(fā)展\t8
1.3.4 DSP芯片的分類\t9
1.3.5 DSP芯片的選擇\t10
1.3.6 DSP系統(tǒng)的運算量\t13
1.3.7 DSP芯片的應用\t14
1.4 常用的DSP芯片\t14
1.4.1 TI公司DSP芯片\t14
1.4.2 ADI公司DSP芯片\t20
1.5 內(nèi)容組織與常用術語\t21
1.5.1 內(nèi)容組織結構\t21
1.5.2 常用術語\t21
本章小結\t22
習題與思考題\t22
第2章 DSP芯片的基本結構和特征\t23
2.1 引言\t23
2.2 DSP芯片的基本結構\t23
2.2.1 概述\t23
2.2.2 總線結構\t23
2.2.3 流水線\t25
2.3 中央處理單元(CPU)\t25
2.3.1 算術邏輯單元(ALU)\t26
2.3.2 累加器\t27
2.3.3 桶形移位寄存器\t28
2.3.4 乘累加單元\t29
2.3.5 尋址單元\t30
2.4 存儲單元\t31
2.4.1 片內(nèi)存儲器\t31
2.4.2 存儲器映射寄存器\t32
2.4.3 Cache\t32
2.4.4 外部擴展存儲器\t33
2.5 集成外設與接口\t33
2.5.1 通用類外設\t34
2.5.2 通信類外設\t35
2.5.3 存儲類接口\t36
2.5.4 DMA控制器\t36
2.5.5 專用外設與接口\t37
2.6 中斷\t37
2.6.1 中斷源\t38
2.6.2 中斷優(yōu)先級\t38
2.6.3 中斷處理過程\t40
2.6.4 中斷矢量表\t40
本章小結\t42
習題與思考題\t42
第3章 DSP芯片的開發(fā)環(huán)境\t43
3.1 引言\t43
3.2 軟件開發(fā)流程\t43
3.3 軟件開發(fā)環(huán)境\t45
3.3.1 基本概念\t47
3.3.2 CCS開發(fā)環(huán)境\t48
3.3.3 軟件開發(fā)功能\t54
3.4 硬件開發(fā)流程\t65
3.5 硬件開發(fā)環(huán)境\t65
3.5.1 DSP仿真器\t66
3.5.2 仿真器接口\t67
3.5.3 TI公司仿真器\t68
本章小結\t69
習題與思考題\t69
第4章 DSP的數(shù)值運算基礎\t70
4.1 引言\t70
4.2 定點的基本概念\t70
4.2.1 數(shù)的定標\t70
4.2.2 數(shù)的轉換\t72
4.2.3 溢出保護\t73
4.2.4 符號擴展\t74
4.2.5 舍入與截尾\t74
4.3 定點運算實現(xiàn)的基本原理\t75
4.3.1 加法/減法運算的C語言定點模擬\t75
4.3.2 乘法運算的C語言定點模擬\t77
4.3.3 除法運算的C語言定點模擬\t78
4.3.4 程序變量的Q值確定\t78
4.3.5 浮點至定點變換的C程序舉例\t79
4.4 DSP定點算術運算實現(xiàn)的基本原理\t81
4.4.1 定點乘法\t81
4.4.2 定點加法\t82
4.4.3 定點除法\t83
4.5 非線性運算定點實現(xiàn)方法\t85
4.5.1 級數(shù)展開法\t85
4.5.2 查表法\t85
4.5.3 混合法\t87
4.6 基于數(shù)據(jù)規(guī)格化的定點運算精度提高\t88
4.6.1 數(shù)據(jù)規(guī)格化處理方法\t88
4.6.2 運算實例分析\t90
本章小結\t91
習題與思考題\t92
第5章 DSP芯片的存儲資源管理\t93
5.1 引言\t93
5.2 TMS320C54x的存儲區(qū)組織\t93
5.2.1 TMS320VC5416的存儲資源\t93
5.2.2 程序空間\t95
5.2.3 數(shù)據(jù)空間\t95
5.2.4 I/O空間\t96
5.2.5 存儲器映射寄存器\t96
5.3 TMS320C55x的存儲區(qū)組織\t97
5.3.1 TMS320VC5509A的存儲資源\t97
5.3.2 程序空間\t98
5.3.3 數(shù)據(jù)空間\t99
5.3.4 I/O空間\t100
5.4 TI KeyStone片上系統(tǒng)的存儲區(qū)組織\t100
5.4.1 存儲空間組織\t100
5.4.2 高速緩存器(Cache)\t102
5.4.3 存儲器保護單元\t103
5.5 程序結構與COFF目標文件格式\t103
5.5.1 塊(section)\t104
5.5.2 匯編器對塊的處理\t105
5.5.3 COFF文件格式編程示例\t106
5.5.4 COFF文件中的符號\t107
5.5.5 鏈接器對塊的處理\t108
5.6 存儲區(qū)分配與CMD文件\t109
5.6.1 文件鏈接方法\t109
5.6.2 鏈接命令文件\t109
5.6.3 TMS320VC5509A的CMD文件\t110
本章小結\t113
習題與思考題\t113
第6章 基于C語言的DSP芯片軟件開發(fā)\t114
6.1 引言\t114
6.2 TMS320C55x的C語言\t114
6.2.1 變量和常數(shù)\t116
6.2.2 函數(shù)\t119
6.2.3 預處理\t121
6.2.4 asm語句\t122
6.3 C語言程序代碼的優(yōu)化\t123
6.3.1 C語言程序代碼編譯分析\t123
6.3.2 C語言程序的優(yōu)化方法\t128
本章小結\t139
習題與思考題\t139
第7章 基于C55x匯編語言的DSP芯片軟件開發(fā)\t140
7.1 匯編語言源程序格式\t140
7.2 匯編源程序中常見符號和偽指令\t142
7.3 匯編指令系統(tǒng)\t145
7.4 尋址方式\t148
7.4.1 絕對尋址方式\t148
7.4.2 直接尋址方式\t149
7.4.3 間接尋址方式\t151
7.5 匯編代碼的優(yōu)化\t160
7.6 匯編語言和C的混合編程方法\t160
7.6.1 獨立的C和匯編模塊接口\t161
7.6.2 從C程序中訪問匯編程序變量\t162
7.6.3 在匯編程序中訪問C程序變量\t163
7.6.4 在C程序中直接嵌入?yún)R編語句\t164
7.6.5 TMS320C55x混合編程舉例\t164
本章小結\t165
習題與思考題\t165
第8章 DSP算法軟件開發(fā)實例\t166
8.1 引言\t166
8.2 基于FFT的單音檢測算法原理\t166
8.2.1 單音檢測算法概述\t166
8.2.2 DFT的基本原理\t167
8.2.3 FFT算法的導出\t167
8.3 基于MATLAB的DSP算法仿真\t172
8.3.1 MATLAB簡介\t172
8.3.2 單音檢測算法的MATLAB仿真\t173
8.4 單音檢測算法的浮點C語言實現(xiàn)\t175
8.5 單音檢測算法的定點C語言實現(xiàn)\t180
8.5.1 FFT運算溢出及避免方法\t180
8.5.2 單音檢測算法的定點C語言實現(xiàn)\t181
8.6 單音檢測算法的定點DSP芯片實現(xiàn)\t187
8.7 多路單音檢測算法的實現(xiàn)\t190
本章小結\t193
習題與思考題\t194
第9章 DSP系統(tǒng)的硬件設計\t195
9.1 引言\t195
9.2 DSP系統(tǒng)硬件設計的基本步驟\t195
9.3 最小DSP系統(tǒng)的硬件設計\t196
9.3.1 電源電路\t196
9.3.2 復位電路\t199
9.3.3 時鐘電路\t200
9.3.4 JTAG電路\t201
9.3.5 引腳的電平轉換與處理\t202
9.3.6 硬件系統(tǒng)的可靠性設計\t205
9.4 外部存儲器接口設計\t207
9.4.1 TMS320C54x存儲器接口設計\t208
9.4.2 TMS320C55x存儲器接口設計\t211
9.4.3 KeyStone系列DSP存儲器接口設計\t212
9.5 模數(shù)接口電路的設計\t213
9.5.1 與TLV320AIC23B接口的設計\t213
9.5.2 與MC145483接口的設計\t214
9.5.3 與多種音頻器件接口的設計\t214
9.6 通信接口的設計\t215
9.6.1 通用串行接口\t215
9.6.2 同步串行通信接口電路設計\t216
9.6.3 異步串行通信接口電路設計\t216
9.7 主從式系統(tǒng)的設計\t217
9.7.1 共享存儲器實現(xiàn)雙機通信\t218
9.7.2 利用HPI實現(xiàn)雙機通信\t219
9.7.3 OMAP5910芯片的雙核通信\t220
本章小結\t221
習題與思考題\t221
第10章 DSP芯片外設驅(qū)動程序的開發(fā)\t222
10.1 引言\t222
10.2 基于CSL的外設程序設計\t223
10.2.1 CSL簡介\t223
10.2.2 CSL的特點\t225
10.2.3 CSL程序開發(fā)基本步驟\t227
10.3 中斷控制程序的開發(fā)\t236
10.3.1 中斷初始化\t237
10.3.2 中斷服務程序的開發(fā)\t240
10.3.3 中斷控制程序?qū)嵗齖t241
10.4 典型接口功能的控制程序開發(fā)\t244
10.4.1 外部存儲的控制程序\t244
10.4.2 串行A/D和D/A功能的控制程序\t247
10.4.3 外部主機通信功能的控制程序\t252
10.5 DMA的控制程序開發(fā)\t253
10.5.1 DSP芯片的DMA數(shù)據(jù)傳輸模式\t254
10.5.2 DSP芯片的DMA傳輸?shù)刂穃t255
10.5.3 DSP芯片的DMA事件和中斷\t255
10.5.4 DMA控制程序舉例\t257
本章小結\t260
習題與思考題\t260
第11章 DSP脫機系統(tǒng)的開發(fā)\t261
11.1 聯(lián)機系統(tǒng)和脫機系統(tǒng)\t261
11.2 DSP芯片的BOOT\t263
11.2.1 BOOT簡介\t263
11.2.2 BOOT過程\t264
11.2.3 BOOT表\t269
11.2.4 二次BOOT\t270
11.3 DSP脫機系統(tǒng)實現(xiàn)\t271
11.3.1 硬件設計\t271
11.3.2 軟件代碼準備與燒錄\t272
11.4 DSP脫機系統(tǒng)軟件開發(fā)實例\t275
11.4.1 并口Flash脫機系統(tǒng)的軟件開發(fā)\t275
11.4.2 串口Flash脫機系統(tǒng)的軟件開發(fā)\t277
本章小結\t281
習題與思考題\t281
第12章 DSP多任務系統(tǒng)的開發(fā)\t282
12.1 引言\t282
12.2 多任務管理\t282
12.2.1 前后臺系統(tǒng)\t282
12.2.2 操作系統(tǒng)\t283
12.2.3 實時操作系統(tǒng)\t285
12.3 TI RTOS\t286
12.3.1 TI RTOS的實時多任務內(nèi)核\t286
12.3.2 SYS/BIOS的核心功能\t289
12.3.3 TI RTOS中的其他軟件\t293
12.4 基于TI RTOS的軟件開發(fā)\t294
12.4.1 單核DSP片上系統(tǒng)的RTOS軟件開發(fā)\t294
12.4.2 多核DSP片上系統(tǒng)的RTOS軟件開發(fā)\t303
12.4.3 基于OpenMP模型的并行代碼設計\t306
12.5 DSP片上系統(tǒng)的RTOS工程示例\t309
本章小結\t311
習題與思考題\t311
第13章 DSP系統(tǒng)的開發(fā)實例\t312
13.1 引言\t312
13.2 基于TMS320VC5509A的DSP應用系統(tǒng)實例\t312
13.2.1 系統(tǒng)簡介\t312
13.2.2 系統(tǒng)架構\t313
13.3 實例系統(tǒng)的硬件開發(fā)\t314
13.3.1 器件選型\t314
13.3.2 接口設計\t316
13.3.3 電路設計\t317
13.3.4 電路調(diào)試\t319
13.4 實例系統(tǒng)的軟件開發(fā)\t320
13.4.1 算法仿真程序編寫和測試\t321
13.4.2 接口控制程序編寫和調(diào)試\t323
13.5 實例系統(tǒng)的軟硬件集成\t330
本章小結\t340
習題與思考題\t341
附錄A 縮略詞的中英文對照\t342
附錄B TMS320VC5509A PGE LQFP引腳圖及定義\t346
附錄C TMS320C55x 指令集\t348
附錄D CSL庫函數(shù)\t349
附錄E 代碼實例\t350
附錄F CCS V5.5的安裝\t351
附錄G 8位μ律PCM/16位線性轉換的C語言程序\t352
附錄H μ律PCM到線性變換表\t354
參考文獻\t355