本書采用通俗易懂、輕松靈活的語言介紹了DSP的設(shè)計(jì)與開發(fā)攻略,循序漸進(jìn)地介紹了TI公司C2000、C5000、C6000三大主流DSP的基本結(jié)構(gòu)、開發(fā)步驟以及應(yīng)用實(shí)例。全書共分為三部分:基礎(chǔ)原理部分介紹了DSP的基本概念以及主流DSP芯片的常用硬件資源;DSP軟件資源部分介紹了指令系統(tǒng)與CCS集成開發(fā)環(huán)境;實(shí)例部分重點(diǎn)討論了DSP開發(fā)中最常見、最有特色的例程。同時還總結(jié)了一些非常有用,但有時容易忽略的知識點(diǎn)。本書內(nèi)容實(shí)用,且系統(tǒng)性強(qiáng)、理論聯(lián)系實(shí)際,能夠使讀者快速、全面地掌握DSP系統(tǒng)設(shè)計(jì)與開發(fā)技巧。
李尚柏,四川大學(xué),研究員,先后負(fù)責(zé)和參加了30多項(xiàng)科研項(xiàng)目,其中軍工項(xiàng)目10項(xiàng),重點(diǎn)軍工項(xiàng)目5項(xiàng),項(xiàng)目總經(jīng)費(fèi)超過1200多萬。在國內(nèi)外學(xué)術(shù)刊物上發(fā)表論文多篇,先后為本科生、研究生講授《測控系統(tǒng)設(shè)計(jì)》、《嵌入式系統(tǒng)》等多門課程。獲取專利多項(xiàng)。
第1章 新手入門
1.1信號2
1.2數(shù)字信號處理3
1.3初識DSP4
1.3.1DSP概述4
1.3.2為什么DSP能算這么快5
1.3.3DSP芯片的現(xiàn)狀與發(fā)展趨勢7
1.4DSP的主流與非主流9
1.4.1N多種DSP9
1.4.2你會選擇誰10
1.4.3TI公司主流DSP12
1.5DSP和其他微芯片的比較13
1.5.1DSP和單片機(jī)的比較13
1.5.2DSP和ARM的比較13
1.6如何玩轉(zhuǎn)DSP14
1.6.1DSP技術(shù)知識點(diǎn)準(zhǔn)備14
1.6.2DSP參考資料14
1.6.3DSP開發(fā)流程15
1.6.4DSP軟件、硬件開發(fā)16
1.7要點(diǎn)與思考16
第2章 數(shù)字控制利器——TMS320C24X系列
2.1TMS320C24x系列CPU簡介18
2.2CPU結(jié)構(gòu)和內(nèi)核19
2.3系統(tǒng)總線20
2.4CPU內(nèi)核21
2.4.1輸入定標(biāo)移位器21
2.4.2乘法器22
2.4.3中央算術(shù)邏輯單元23
2.4.4累加器(ACC)24
2.4.5輸出數(shù)據(jù)定標(biāo)移位器25
2.4.6輔助寄存器算術(shù)單元25
2.4.7狀態(tài)寄存器26
2.5存儲器與I/O空間28
2.5.1片內(nèi)存儲器28
2.5.2程序存儲器29
2.5.3數(shù)據(jù)存儲器30
2.5.4I/O空間32
2.5.5外部存儲器接口34
2.6尋址方式35
2.7系統(tǒng)配置寄存器36
2.7.1系統(tǒng)控制和狀態(tài)寄存器1(SCSR1)36
2.7.2系統(tǒng)控制和狀態(tài)寄存器2(SCSR2)38
2.7.3器件標(biāo)識號寄存器(DINR)38
2.8中斷39
2.8.1中斷優(yōu)先級和中斷向量表39
2.8.2外設(shè)中斷擴(kuò)展控制器42
2.8.3中斷向量表43
2.8.4全局中斷使能44
2.8.5中斷響應(yīng)過程44
2.8.6中斷響應(yīng)延遲處理45
2.8.7中斷寄存器46
2.8.8外設(shè)中斷寄存器46
2.8.9復(fù)位與無效地址檢測51
2.8.10外部中斷控制寄存器51
2.9程序控制52
2.9.1程序地址的產(chǎn)生52
2.9.2流水線操作54
2.9.3無條件轉(zhuǎn)移、調(diào)用和返回55
2.9.4有條件轉(zhuǎn)移、調(diào)用和返回55
2.9.5重復(fù)指令56
2.10看門狗(Watch Dog,簡稱WD)57
2.11TMS320x240x的片上外設(shè)58
2.11.1通用I/O模塊(GPIO)58
2.11.2事件管理器(EV)60
2.11.3捕獲單元69
2.11.4正交編碼脈沖(QEP)電路72
2.11.5模數(shù)轉(zhuǎn)換模塊(ADC)73
2.11.6SCI串行通信接口模塊79
2.11.7SPI串行外設(shè)接口模塊80
2.11.8CAN控制器模塊80
2.12要點(diǎn)與思考82
第3章 適合便攜終端的低功耗產(chǎn)品——TMS320C54X系列
3.1TMS320C54x系列CPU簡介83
3.2總線結(jié)構(gòu)85
3.3CPU內(nèi)核86
3.3.1算術(shù)邏輯運(yùn)算單元ALU87
3.3.2累加器88
3.3.3桶形移位寄存器89
3.3.4乘法加法累加單元(MAC)90
3.3.5比較、選擇和存儲單元CSSU91
3.3.6指數(shù)編碼器92
3.3.7CPU寄存器92
3.4存儲器94
3.4.1存儲器結(jié)構(gòu)95
3.4.2程序存儲器96
3.4.3數(shù)據(jù)存儲器98
3.4.4I/O存儲器空間100
3.5中斷系統(tǒng)100
3.5.1中斷寄存器100
3.5.2中斷控制101
3.6片內(nèi)外設(shè)105
3.6.1通用I/O引腳105
3.6.2定時器105
3.6.3時鐘發(fā)生器106
3.6.4主機(jī)接口(HPI)108
3.6.5串行口109
3.7要點(diǎn)與思考112
第4章 高性能的代表——TMS320C6000系列
4.1TMS320C6000系列簡介113
4.2CPU結(jié)構(gòu)114
4.2.1程序執(zhí)行機(jī)構(gòu)115
4.2.2控制寄存器組119
4.2.3控制狀態(tài)寄存器119
4.3存儲器120
4.3.1程序存儲器及其控制器121
4.3.2數(shù)據(jù)存儲器及其控制器122
4.4中斷124
4.4.1中斷類型和優(yōu)先級124
4.4.2中斷源124
4.4.3中斷寄存器126
4.5片內(nèi)集成外設(shè)126
4.5.1外部存儲器接口(EMIF)127
4.5.2擴(kuò)展總線xBus130
4.6要點(diǎn)與思考133
第5章 開發(fā)好幫手——CCS集成開發(fā)環(huán)境
5.1CCS概述135
5.2CCS的安裝與配置137
5.3CCS文件類型138
5.4CCS基本界面139
5.4.1主界面139
5.4.2主菜單139
5.5CCS開發(fā)入門140
5.5.1創(chuàng)建工程140
5.5.2項(xiàng)目文件操作141
5.5.3工程配置142
5.5.4工程從屬關(guān)系142
5.5.5編譯和運(yùn)行程序143
5.6基礎(chǔ)調(diào)試144
5.6.1調(diào)試設(shè)置145
5.6.2運(yùn)行與單步調(diào)試145
5.6.3斷點(diǎn)147
5.6.4探針點(diǎn)147
5.6.5觀察窗口149
5.6.6內(nèi)存窗口150
5.6.7寄存器窗口152
5.6.8反匯編模式/混合模式152
5.7基礎(chǔ)軟件153
5.8要點(diǎn)與思考154
第6章 指揮工作靠軟件——指令和C語言程序設(shè)計(jì)
6.1概述155
6.2C2000指令系統(tǒng)155
6.2.1C2000尋址方式155
6.2.2C2000常用指令集156
6.2.3C2000常用偽指令157
6.3C5000指令系統(tǒng)157
6.3.1C5000尋址方式157
6.3.2C5000常用指令集158
6.3.3C5000常用偽指令159
6.4C6000指令結(jié)構(gòu)160
6.4.1C6000系列的基本尋址方式160
6.4.2C6000常用指令集160
6.5詳細(xì)指令集161
6.6DSP的C語言開發(fā)171
6.6.1簡介171
6.6.2DSP C語言數(shù)據(jù)類型172
6.6.3寄存器變量172
6.6.4pragma偽指令172
6.6.5ASM語句173
6.6.6I/O空間訪問173
6.6.7數(shù)據(jù)空間訪問173
6.6.8中斷服務(wù)函數(shù)173
6.6.9初始化系統(tǒng)174
6.7DSP匯編語言/C語言混合編程174
6.7.1混合編程環(huán)境設(shè)置174
6.7.2內(nèi)嵌匯編語句177
6.7.3C語言訪問匯編程序變量177
6.8要點(diǎn)與思考178
應(yīng)用實(shí)例篇
第7章 實(shí)施工作靠硬件——基本DSP硬件平臺搭建
7.1概述180
7.2DSP最小系統(tǒng)181
7.2.1電源電路設(shè)計(jì)181
7.2.2復(fù)位和時鐘電路設(shè)計(jì)184
7.2.3JTAG接口電路設(shè)計(jì)186
7.3C6x DSP與Flash存儲器的接口187
7.3.1C6x EMIF接口187
7.3.2EMIF與Flash存儲器接口191
7.3.3Flash編程示例195
7.4C6x DSP與SDRAM存儲器的接口199
7.4.1C6x兼容的SDRAM類型199
7.4.2C6x EMIF與SDRAM接口特點(diǎn)及其接口信號201
7.4.3C6x EMIF的SDRAM控制寄存器203
7.4.4EMIF支持的SDRAM命令及其時序參數(shù)206
7.4.5C6713B與MT48LC4M32B2 SDRAM的接口212
7.5要點(diǎn)與思考214
第8章 最常見DSP硬件資源配置與應(yīng)用
8.1概述215
8.2芯片支持庫簡介216
8.2.1CSL架構(gòu)216
8.2.2CSL的命名規(guī)則和數(shù)據(jù)類型219
8.2.3CSL函數(shù)220
8.2.4CSL宏221
8.2.5CSL的資源管理222
8.2.6芯片支持庫的使用223
8.3定時器和中斷應(yīng)用程序設(shè)計(jì)224
8.3.1C6x中斷控制器224
8.3.2芯片支持庫的中斷模塊IRQ230
8.3.3定時器233
8.3.4芯片支持庫的定時器模塊TIMER235
8.3.5定時器和中斷應(yīng)用實(shí)例238
8.4DMA和McBSP應(yīng)用程序設(shè)計(jì)242
8.4.1C54xx的DMA控制器243
8.4.2芯片支持庫的直接存儲器訪問模塊DMA249
8.4.3C54xx的多通道緩沖串口McBSP252
8.4.4芯片支持庫的多通道串口模塊McBSP262
8.4.5DMA和McBSP應(yīng)用實(shí)例265
8.5要點(diǎn)與思考276
第9章 讓程序自己跑起來——DSP程序的引導(dǎo)
9.1概述278
9.2LF240x DSP程序的引導(dǎo)279
9.2.1引導(dǎo)硬件配置279
9.2.2SPI同步傳輸協(xié)議和數(shù)據(jù)格式281
9.2.3SCI異步傳輸協(xié)議和數(shù)據(jù)格式281
9.3C54x DSP程序的引導(dǎo)282
9.3.1引導(dǎo)模式選擇283
9.3.2HPI引導(dǎo)284
9.3.3串行EEPROM引導(dǎo)286
9.3.4并行引導(dǎo)288
9.3.5標(biāo)準(zhǔn)串行引導(dǎo)290
9.3.6I/O 引導(dǎo)291
9.3.7產(chǎn)生引導(dǎo)表292
9.4C6x DSP程序的引導(dǎo)297
9.4.1引導(dǎo)控制邏輯297
9.4.2兩級引導(dǎo)過程299
9.4.3創(chuàng)建二級引導(dǎo)應(yīng)用程序300
9.4.4編寫用戶引導(dǎo)程序302
9.4.5C6x程序的燒錄305
9.4.6關(guān)于用戶引導(dǎo)程序的進(jìn)一步討論308
9.5要點(diǎn)與思考313
第10章 回歸重點(diǎn)——DSP在信號處理上的應(yīng)用
10.1概述315
10.2基于DSP的信號源設(shè)計(jì)316
10.2.1信號的生成與輸出316
10.2.2正弦信號的產(chǎn)生318
10.2.3調(diào)幅信號的產(chǎn)生326
10.3FIR濾波器329
10.3.1FIR濾波器程序設(shè)計(jì)考慮329
10.3.2FIR濾波器在C54x DSP上的實(shí)現(xiàn)331
10.4IIR濾波器337
10.4.1IIR濾波器程序設(shè)計(jì)考慮337
10.4.2IIR濾波器在C67x上的實(shí)現(xiàn)339
10.5快速傅里葉變換(FFT)343
10.5.1FFT算法原理簡介343
10.5.2FFT算法的編程考慮343
10.5.3FFT算法在C67x上的實(shí)現(xiàn)346
10.6要點(diǎn)與思考352
第11章 也許有一天你就會遇到——DSP覆蓋(Overlay)程序設(shè)計(jì)
11.1概述353
11.2鏈接命令文件354
11.2.1MEMORY指令355
11.2.2SECTIONS指令357
11.3Overlay源程序設(shè)計(jì)363
11.3.1程序功能劃分的考慮363
11.3.2設(shè)計(jì)實(shí)例364
11.3.3Overlay模塊的動態(tài)加載377
11.4Overlay程序的調(diào)試和運(yùn)行377
11.4.1加載Overlay代碼模塊到外部內(nèi)存378
11.4.2Overlay代碼的跟蹤調(diào)試378
11.5要點(diǎn)與思考382
第12章 給自己的程序打個分——DSP實(shí)時數(shù)據(jù)交換技術(shù)(RTDX)
12.1概述383
12.2RTDX詳解384
12.2.1RTDX的工作原理384
12.2.2RTDX用戶接口385
12.2.3RTDX的COM接口387
12.2.4主機(jī)RTDX配置393
12.2.5RTDX目標(biāo)庫緩沖區(qū)的配置395
12.3使用RTDX工具397
12.3.1RTDX監(jiān)視工具397
12.3.2RTDX診斷工具397
12.3.3日志文件查閱工具401
12.4RTDX工程實(shí)例401
12.4.1目標(biāo)應(yīng)用程序402
12.4.2主機(jī)客戶程序405
12.4.3RTDX程序的調(diào)試409
12.4.4RTDX程序的性能考慮411
12.5RTDX應(yīng)用實(shí)例412
12.5.1目標(biāo)應(yīng)用程序413
12.5.2主機(jī)客戶程序421
12.6要點(diǎn)與思考424