本書(shū)采用通俗易懂、輕松靈活的語(yǔ)言介紹了DSP的設(shè)計(jì)與開(kāi)發(fā)攻略,循序漸進(jìn)地介紹了TI公司C2000、C5000、C6000三大主流DSP的基本結(jié)構(gòu)、開(kāi)發(fā)步驟以及應(yīng)用實(shí)例。全書(shū)共分為三部分:基礎(chǔ)原理部分介紹了DSP的基本概念以及主流DSP芯片的常用硬件資源;DSP軟件資源部分介紹了指令系統(tǒng)與CCS集成開(kāi)發(fā)環(huán)境;實(shí)例部分重點(diǎn)討論了DSP開(kāi)發(fā)中最常見(jiàn)、最有特色的例程。同時(shí)還總結(jié)了一些非常有用,但有時(shí)容易忽略的知識(shí)點(diǎn)。本書(shū)內(nèi)容實(shí)用,且系統(tǒng)性強(qiáng)、理論聯(lián)系實(shí)際,能夠使讀者快速、全面地掌握DSP系統(tǒng)設(shè)計(jì)與開(kāi)發(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)超過(guò)1200多萬(wàn)。在國(guó)內(nèi)外學(xué)術(shù)刊物上發(fā)表論文多篇,先后為本科生、研究生講授《測(cè)控系統(tǒng)設(shè)計(jì)》、《嵌入式系統(tǒng)》等多門(mén)課程。獲取專(zhuān)利多項(xiàng)。
第1章 新手入門(mén)
1.1信號(hào)2
1.2數(shù)字信號(hào)處理3
1.3初識(shí)DSP4
1.3.1DSP概述4
1.3.2為什么DSP能算這么快5
1.3.3DSP芯片的現(xiàn)狀與發(fā)展趨勢(shì)7
1.4DSP的主流與非主流9
1.4.1N多種DSP9
1.4.2你會(huì)選擇誰(shuí)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ù)知識(shí)點(diǎn)準(zhǔn)備14
1.6.2DSP參考資料14
1.6.3DSP開(kāi)發(fā)流程15
1.6.4DSP軟件、硬件開(kāi)發(fā)16
1.7要點(diǎn)與思考16
第2章 數(shù)字控制利器——TMS320C24X系列
2.1TMS320C24x系列CPU簡(jiǎn)介18
2.2CPU結(jié)構(gòu)和內(nèi)核19
2.3系統(tǒng)總線(xiàn)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存儲(chǔ)器與I/O空間28
2.5.1片內(nèi)存儲(chǔ)器28
2.5.2程序存儲(chǔ)器29
2.5.3數(shù)據(jù)存儲(chǔ)器30
2.5.4I/O空間32
2.5.5外部存儲(chǔ)器接口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)識(shí)號(hào)寄存器(DINR)38
2.8中斷39
2.8.1中斷優(yōu)先級(jí)和中斷向量表39
2.8.2外設(shè)中斷擴(kuò)展控制器42
2.8.3中斷向量表43
2.8.4全局中斷使能44
2.8.5中斷響應(yīng)過(guò)程44
2.8.6中斷響應(yīng)延遲處理45
2.8.7中斷寄存器46
2.8.8外設(shè)中斷寄存器46
2.8.9復(fù)位與無(wú)效地址檢測(cè)51
2.8.10外部中斷控制寄存器51
2.9程序控制52
2.9.1程序地址的產(chǎn)生52
2.9.2流水線(xiàn)操作54
2.9.3無(wú)條件轉(zhuǎn)移、調(diào)用和返回55
2.9.4有條件轉(zhuǎn)移、調(diào)用和返回55
2.9.5重復(fù)指令56
2.10看門(mén)狗(Watch Dog,簡(jiǎn)稱(chēng)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簡(jiǎn)介83
3.2總線(xiàn)結(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比較、選擇和存儲(chǔ)單元CSSU91
3.3.6指數(shù)編碼器92
3.3.7CPU寄存器92
3.4存儲(chǔ)器94
3.4.1存儲(chǔ)器結(jié)構(gòu)95
3.4.2程序存儲(chǔ)器96
3.4.3數(shù)據(jù)存儲(chǔ)器98
3.4.4I/O存儲(chǔ)器空間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定時(shí)器105
3.6.3時(shí)鐘發(fā)生器106
3.6.4主機(jī)接口(HPI)108
3.6.5串行口109
3.7要點(diǎn)與思考112
第4章 高性能的代表——TMS320C6000系列
4.1TMS320C6000系列簡(jiǎn)介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存儲(chǔ)器120
4.3.1程序存儲(chǔ)器及其控制器121
4.3.2數(shù)據(jù)存儲(chǔ)器及其控制器122
4.4中斷124
4.4.1中斷類(lèi)型和優(yōu)先級(jí)124
4.4.2中斷源124
4.4.3中斷寄存器126
4.5片內(nèi)集成外設(shè)126
4.5.1外部存儲(chǔ)器接口(EMIF)127
4.5.2擴(kuò)展總線(xiàn)xBus130
4.6要點(diǎn)與思考133
第5章 開(kāi)發(fā)好幫手——CCS集成開(kāi)發(fā)環(huán)境
5.1CCS概述135
5.2CCS的安裝與配置137
5.3CCS文件類(lèi)型138
5.4CCS基本界面139
5.4.1主界面139
5.4.2主菜單139
5.5CCS開(kāi)發(fā)入門(mén)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觀(guān)察窗口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語(yǔ)言程序設(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語(yǔ)言開(kāi)發(fā)171
6.6.1簡(jiǎn)介171
6.6.2DSP C語(yǔ)言數(shù)據(jù)類(lèi)型172
6.6.3寄存器變量172
6.6.4pragma偽指令172
6.6.5ASM語(yǔ)句173
6.6.6I/O空間訪(fǎng)問(wèn)173
6.6.7數(shù)據(jù)空間訪(fǎng)問(wèn)173
6.6.8中斷服務(wù)函數(shù)173
6.6.9初始化系統(tǒng)174
6.7DSP匯編語(yǔ)言/C語(yǔ)言混合編程174
6.7.1混合編程環(huán)境設(shè)置174
6.7.2內(nèi)嵌匯編語(yǔ)句177
6.7.3C語(yǔ)言訪(fǎng)問(wèn)匯編程序變量177
6.8要點(diǎn)與思考178
應(yīng)用實(shí)例篇
第7章 實(shí)施工作靠硬件——基本DSP硬件平臺(tái)搭建
7.1概述180
7.2DSP最小系統(tǒng)181
7.2.1電源電路設(shè)計(jì)181
7.2.2復(fù)位和時(shí)鐘電路設(shè)計(jì)184
7.2.3JTAG接口電路設(shè)計(jì)186
7.3C6x DSP與Flash存儲(chǔ)器的接口187
7.3.1C6x EMIF接口187
7.3.2EMIF與Flash存儲(chǔ)器接口191
7.3.3Flash編程示例195
7.4C6x DSP與SDRAM存儲(chǔ)器的接口199
7.4.1C6x兼容的SDRAM類(lèi)型199
7.4.2C6x EMIF與SDRAM接口特點(diǎn)及其接口信號(hào)201
7.4.3C6x EMIF的SDRAM控制寄存器203
7.4.4EMIF支持的SDRAM命令及其時(shí)序參數(shù)206
7.4.5C6713B與MT48LC4M32B2 SDRAM的接口212
7.5要點(diǎn)與思考214
第8章 最常見(jiàn)DSP硬件資源配置與應(yīng)用
8.1概述215
8.2芯片支持庫(kù)簡(jiǎn)介216
8.2.1CSL架構(gòu)216
8.2.2CSL的命名規(guī)則和數(shù)據(jù)類(lèi)型219
8.2.3CSL函數(shù)220
8.2.4CSL宏221
8.2.5CSL的資源管理222
8.2.6芯片支持庫(kù)的使用223
8.3定時(shí)器和中斷應(yīng)用程序設(shè)計(jì)224
8.3.1C6x中斷控制器224
8.3.2芯片支持庫(kù)的中斷模塊IRQ230
8.3.3定時(shí)器233
8.3.4芯片支持庫(kù)的定時(shí)器模塊TIMER235
8.3.5定時(shí)器和中斷應(yīng)用實(shí)例238
8.4DMA和McBSP應(yīng)用程序設(shè)計(jì)242
8.4.1C54xx的DMA控制器243
8.4.2芯片支持庫(kù)的直接存儲(chǔ)器訪(fǎng)問(wèn)模塊DMA249
8.4.3C54xx的多通道緩沖串口McBSP252
8.4.4芯片支持庫(kù)的多通道串口模塊McBSP262
8.4.5DMA和McBSP應(yīng)用實(shí)例265
8.5要點(diǎn)與思考276
第9章 讓程序自己跑起來(lái)——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兩級(jí)引導(dǎo)過(guò)程299
9.4.3創(chuàng)建二級(jí)引導(dǎo)應(yīng)用程序300
9.4.4編寫(xiě)用戶(hù)引導(dǎo)程序302
9.4.5C6x程序的燒錄305
9.4.6關(guān)于用戶(hù)引導(dǎo)程序的進(jìn)一步討論308
9.5要點(diǎn)與思考313
第10章 回歸重點(diǎn)——DSP在信號(hào)處理上的應(yīng)用
10.1概述315
10.2基于DSP的信號(hào)源設(shè)計(jì)316
10.2.1信號(hào)的生成與輸出316
10.2.2正弦信號(hào)的產(chǎn)生318
10.2.3調(diào)幅信號(hà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算法原理簡(jiǎn)介343
10.5.2FFT算法的編程考慮343
10.5.3FFT算法在C67x上的實(shí)現(xiàn)346
10.6要點(diǎn)與思考352
第11章 也許有一天你就會(huì)遇到——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模塊的動(dòng)態(tài)加載377
11.4Overlay程序的調(diào)試和運(yùn)行377
11.4.1加載Overlay代碼模塊到外部?jī)?nèi)存378
11.4.2Overlay代碼的跟蹤調(diào)試378
11.5要點(diǎn)與思考382
第12章 給自己的程序打個(gè)分——DSP實(shí)時(shí)數(shù)據(jù)交換技術(shù)(RTDX)
12.1概述383
12.2RTDX詳解384
12.2.1RTDX的工作原理384
12.2.2RTDX用戶(hù)接口385
12.2.3RTDX的COM接口387
12.2.4主機(jī)RTDX配置393
12.2.5RTDX目標(biāo)庫(kù)緩沖區(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ī)客戶(hù)程序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ī)客戶(hù)程序421
12.6要點(diǎn)與思考424