數(shù)字信號處理器(DSP)是專為數(shù)字信號處理而設(shè)計(jì)的大規(guī)稅佑成芯 片,是一種尚速、實(shí)時(shí)、可編程的嵌人式微處理器!禗SP原理與應(yīng)用教程(第二版)/普通高等教育“十二五”規(guī)劃教材》以T1公司的TMS320C54x系列DSP為例,洋細(xì)介紹DSP的硬件結(jié)構(gòu)和軟件設(shè)計(jì),包 括總線結(jié)構(gòu)、UMJ、流水線操作、存儲器映像、片內(nèi)外鬧設(shè)鉻、指令系統(tǒng) 及公共目標(biāo)文件格式等內(nèi)荇;詳細(xì)討論用匯編語言和C 語言進(jìn)行軟件設(shè) 計(jì)的方法;從應(yīng)用角度出發(fā),對CCS集成開發(fā)環(huán)境進(jìn)行介紹;詳細(xì)分析DSP綜合應(yīng)用系統(tǒng)的設(shè)計(jì)過程.給出典型的DSP硬件設(shè)計(jì)及接口技術(shù),并對在DSP系統(tǒng)設(shè)計(jì)中出觀的主要問題和解決方法進(jìn)行討論;最后,通過一個(gè)綜合應(yīng)用系統(tǒng)的設(shè)計(jì)實(shí)例,介紹DSP的開發(fā)設(shè)計(jì)全過程。此外, 還對TMS320C55xDSP進(jìn)行了簡要介紹。
更多科學(xué)出版社服務(wù),請掃碼獲取。
目錄
第二版前言
第一版前言
第1章 DSP技術(shù)概要 1
1.1 DSP系統(tǒng)和芯片的結(jié)構(gòu)特點(diǎn) 1
1.2 DSP的發(fā)展概況和趨勢 7
1.3 DSP芯片的分類、性能、命名規(guī)則及其應(yīng)用 11
思考題與習(xí)題 14
第2章 TMS320C54x硬件結(jié)構(gòu)及原理 15
2.1 芯片內(nèi)部結(jié)構(gòu)及特點(diǎn) 15
2.2 C54x的內(nèi)部多總線結(jié)構(gòu) 17
2.3 C54x的中央處理單元(CPU) 20
2.4 C54x的存儲器結(jié)構(gòu) 32
2.5 復(fù)位操作及省電方式 37
2.6 中斷系統(tǒng) 40
2.7 流水線 46
2.8 引腳及其功能 53
思考題與習(xí)題 59
第3章 匯編語言指令系統(tǒng) 62
3.1 C54x匯編語言指令集介紹 62
3.2 尋址方式 67
3. 3 C54x系列DSP的指令系統(tǒng) 75
思考題與習(xí)題 101
第4章 匯編語言程序設(shè)計(jì) 104
4.1 C54x的軟件開發(fā)過程 104
4.2 公共目標(biāo)文件格式COFF 105
4.3 匯編器的偽指令 113
4.4 C54x匯編語言的有關(guān)知識 122
4.5 匯編語言程序設(shè)計(jì) 129
思考題與習(xí)題 156
第5章C54x高級C語言程序設(shè)計(jì) 160
5.1 C54x C語言介紹 160
5.2 C54x C語言編程 171
5.3 C54x C代碼優(yōu)化 190
思考題與習(xí)題 193
第6章 eXpressDSP實(shí)時(shí)軟件開發(fā)技術(shù)及CCS應(yīng)用 194
6.1 eXpressDSP技術(shù)簡介 194
6.2 DSP開發(fā)流程 196
6.3 CCS安裝及目標(biāo)和主機(jī)設(shè)置 196
6.4 DSP使用舉例 199
思考題與習(xí)題 206
第7章TMS320C54x片內(nèi)外設(shè)及其應(yīng)用 207
7.1 通用I/O引腳(GPIO) 207
7.2 定時(shí)器 210
7.3 主機(jī)接口HPI 215
7.4 直接存儲器訪問DMA 221
7.5 多通道緩沖串行口 233
思考題與習(xí)題 260
第8章 TMS320C54x硬件設(shè)計(jì)及接口技術(shù) 262
8.1 基于C54x的DSP最小系統(tǒng)設(shè)計(jì) 262
8.2 C54x外部總線結(jié)構(gòu) 276
8.3 存儲器擴(kuò)展 288
8.4 A/D、D/A與DSP的接口技術(shù) 321
8.5 Bootloader功能的實(shí)現(xiàn) 336
思考題與習(xí)題 344
第9章 C54x綜合應(yīng)用系統(tǒng)設(shè)計(jì) 345
9.1 數(shù)字信號處理算法的DSP實(shí)現(xiàn) 345
9.2 C54x應(yīng)用系統(tǒng)設(shè)汁實(shí)例 349
9.3 DSP系統(tǒng)的調(diào)試與抗干擾措施 357
思考題與習(xí)題 360
第10章 TMS320C55x系列DSP簡介 361
10.1 C55x與C54x的主要區(qū)別 361
10.2 TMS320C5000應(yīng)用領(lǐng)域及發(fā)展方向 365
思考題與習(xí)題 366
參考文獻(xiàn) 367
附錄 369
附錄A TMS320C54x系列DSP芯片匯總表 369
附錄B TMS320C54x DSP的寄存器符號、名稱及地址 370
附錄C TMS320VC5402頭文件 374
附錄D 部分思考題與習(xí)題答案 379
《DSP原理與應(yīng)用教程(第二版)/普通高等教育“十二五”規(guī)劃教材》:
第1章 DSP技術(shù)概要
隨著計(jì)算機(jī)、信息技術(shù)和大規(guī)模集成電路的飛速發(fā)展,數(shù)字信號處理技術(shù)已經(jīng)形成一門獨(dú)立的學(xué)科系統(tǒng),并且在理論和實(shí)現(xiàn)技術(shù)兩個(gè)方面都獲得了高速的發(fā)展。數(shù)字信號處理①igital Signal Processing,DSR是采用數(shù)值計(jì)算的方法對信號進(jìn)行處理的一門學(xué)科。它研究的是怎樣對模擬信號進(jìn)行采樣,將其轉(zhuǎn)換為數(shù)字序列,然后對其進(jìn)行變換、濾波、增強(qiáng)、壓縮及識別等加工處理,從而提取有用信息并進(jìn)行應(yīng)用的理論和算法。而數(shù)字信號處理器①igital Signal Processors,DSR則是一種用于數(shù)字信號處理的可編程微處理器,它的誕生與快速發(fā)展,使各種數(shù)字信號處理算法得以實(shí)時(shí)實(shí)現(xiàn),為數(shù)字信號處理的研究和應(yīng)用打開了新局面,提供了低成本的實(shí)際工作環(huán)境和應(yīng)用平臺,推動了新的理論和應(yīng)用領(lǐng)域的發(fā)展。目前,DSP技術(shù)在通信、航空、航天、雷達(dá)、工業(yè)控制、醫(yī)療、網(wǎng)絡(luò)及家用電器等各個(gè)領(lǐng)域都得到了廣泛應(yīng)用。
1.1 DSP系統(tǒng)和芯片的結(jié)構(gòu)特點(diǎn)
數(shù)字信號處理圍繞著理論、實(shí)現(xiàn)和應(yīng)用這三個(gè)方面得到了迅速發(fā)展。在理論上,數(shù)字信號處理是把經(jīng)典理論(如數(shù)學(xué)、信號與系統(tǒng)分析等)作為基礎(chǔ),將快速算法和各類濾波技術(shù)等應(yīng)用于各個(gè)研究領(lǐng)域,包括圖像處理、語音處理和音頻處理、信息的編解碼、信號的調(diào)制和解調(diào)、移動通信及各種智能控制等。在實(shí)現(xiàn)上是將信號處理的理論應(yīng)用于某一具體的任務(wù)中。一般根據(jù)任務(wù)的不同可分為軟件實(shí)現(xiàn)和硬件實(shí)現(xiàn),軟件實(shí)現(xiàn)是指在通用的計(jì)算機(jī)上用軟件來仿真和研究某個(gè)算法,這種方法速度較慢,無法實(shí)時(shí)實(shí)現(xiàn);硬件實(shí)現(xiàn)是指采用專用DSP芯片、通用DSP芯片或者其他微處理器構(gòu)成的應(yīng)用系統(tǒng)去高速實(shí)時(shí)地完成數(shù)字信號處理的任務(wù)。
1.1.1 DSP系統(tǒng)的基本結(jié)構(gòu)
DSP系統(tǒng)的基本結(jié)構(gòu)如圖1-1所示。通過傳感器將非電物理量轉(zhuǎn)換為模擬電信號。預(yù)處理一般包括放大器和濾波器兩部分,信號經(jīng)過放大器的放大變?yōu)榫哂幸欢ǚ档哪M輸入信號,而濾波器(低通或帶通)的作用則是濾除輸入模擬信號中的無用頻率成分和噪聲,避免采樣后發(fā)生頻譜混疊失真。A/D轉(zhuǎn)換器的任務(wù)是在滿足奈奎斯特采樣定理的條件下,將模擬信號轉(zhuǎn)換為數(shù)字信號。DSP負(fù)責(zé)對輸入數(shù)字信號進(jìn)行某些算法,如卷積、相關(guān)、濾波或快速傅里葉變換(FFT)等。經(jīng)過處理之后的數(shù)字信號再進(jìn)行D/A 轉(zhuǎn)換,由于轉(zhuǎn)換輸出的模擬信號中含有許多高頻成分,因此要通過重建濾波器濾除這些高頻信號,以獲得平滑的模擬輸出信號。
實(shí)際上,為了完成數(shù)字信號處理的任務(wù),除了圖1-1所示的DSP基本結(jié)構(gòu)之外,還必須在DSP系統(tǒng)中配置人機(jī)接口、存儲器、通信接口、測試接口和電源設(shè)備等。
1.1.2 DSP芯片的結(jié)構(gòu)特點(diǎn)
什么是數(shù)字信號處理器(DSP)? DSP是專為實(shí)時(shí)數(shù)字信號處理而設(shè)計(jì)的大規(guī)模集成可編程微處理器。那么,DSP究竟有哪些結(jié)構(gòu)特點(diǎn)特別適合于數(shù)字信號處理呢?為了搞清楚這個(gè)問題,我們先來分析下面列出的數(shù)字信號處理的典型運(yùn)算類型。
。1)求兩序列信號的卷積。
。2)求兩序列信號的相關(guān)函數(shù)。
。3)求序列的能量。
(4)數(shù)字濾波器的數(shù)學(xué)表達(dá)式為
。5)對長度為N的輸人序列進(jìn)行快速傅里葉變換的公式為
通過這些典型算法可以看出,數(shù)字信號處理的基本運(yùn)算類型是乘法-累加(MAC)運(yùn)算,且在運(yùn)算過程中存在著大量的循環(huán)重復(fù)操作。因此,要提高數(shù)字信號處理的速度,達(dá)到實(shí)時(shí)應(yīng)用的要求,關(guān)鍵在于提高M(jìn)AC算法及循環(huán)重復(fù)操作的速度。這就要求有一個(gè)硬件平臺及軟件開發(fā)環(huán)境,通過它可以快速、高效、實(shí)時(shí)地完成數(shù)字信號處理任務(wù)。而數(shù)字信號處理器就是這樣一個(gè)專用的實(shí)時(shí)處理平臺。它具有下列一些特別適合于數(shù)字信號處理的結(jié)構(gòu)特點(diǎn)。
1.采用改進(jìn)型哈佛結(jié)構(gòu)
計(jì)算機(jī)的總線結(jié)構(gòu)分為:馮?諾依曼(von Neumann)結(jié)構(gòu)和哈佛(Harvard)結(jié)構(gòu)。
多數(shù)微處理器和單片機(jī)采用馮?諾依曼結(jié)構(gòu),如圖1-2所示。在這種結(jié)構(gòu)中只含一條內(nèi)部地址總線和數(shù)據(jù)總線,CPU只能使用同一條地址總線去分時(shí)傳送程序地址和數(shù)
據(jù)地址,使用同一條數(shù)據(jù)總線去分別讀取程序代碼或進(jìn)行數(shù)據(jù)的讀寫訪問,因此,對總線是分時(shí)使用,對指令的執(zhí)行也只能串行進(jìn)行,而不能并行進(jìn)行,因而處理速度慢,數(shù)據(jù)吞吐量低。
哈佛總線結(jié)構(gòu)如圖1-3(a)所示,程序存儲器和數(shù)據(jù)存儲器是分開的,有多條獨(dú)立的程序總線和數(shù)據(jù)總線,其中PAB、PDB和PCB分別是程序地址總線、程序數(shù)據(jù)總線和程序控制總線,DAB、DDB和DCB分別是數(shù)據(jù)地址總線、數(shù)據(jù)數(shù)據(jù)總線和數(shù)據(jù)控制總線,它們可同時(shí)對程序和數(shù)據(jù)進(jìn)行尋址及讀寫,因此,使指令的執(zhí)行和對數(shù)據(jù)的訪問能夠并行進(jìn)行,使CPU的運(yùn)行速度和處理能力都得以大幅度提高。
DSP采用的是改進(jìn)型哈佛總線結(jié)構(gòu),如圖1-3(b)所示。其改進(jìn)之處是:在數(shù)據(jù)總線和程序總線之間有局部的交叉連接,也就是說,在程序空間和數(shù)據(jù)空間之間有相互訪問的能力,從而增加了存儲器訪問的靈活性,提高了 DSP的運(yùn)行效率。DSP的哈佛總線改進(jìn)之處主要體現(xiàn)在下列3點(diǎn)。
。1)片內(nèi)RAM可以映象至數(shù)據(jù)空間,也可以映象至程序空間。當(dāng)片內(nèi)RAM被映象至程序空間時(shí),意味著可以利用程序總線來訪問數(shù)據(jù)。
。2)片內(nèi)ROM可以映象至程序空間,也可以映象至數(shù)據(jù)空間。當(dāng)片內(nèi)ROM被映象至數(shù)據(jù)空間時(shí),就可利用數(shù)據(jù)總線去讀取程序空間。
(3)具有根裝載(bootloader)功能,允許將片外的指令代碼調(diào)至片內(nèi)數(shù)據(jù)存儲器,供OG零等待運(yùn)行。
以TI公司的TMS320C2000系列DSP為例,其內(nèi)部總線如圖1-4所示。CPU內(nèi)含6個(gè)16位的內(nèi)部總線,它們是相互獨(dú)立的程序讀寫地址總線(PAB)、程序讀數(shù)據(jù)總線(PRDB)、數(shù)據(jù)讀地址總線(DRAB)、數(shù)據(jù)寫地址總線(DWAB)、數(shù)據(jù)讀數(shù)據(jù)總線(DRDB)和數(shù)據(jù)寫(或程序?qū)懀⿺?shù)據(jù)總線(DWEB),CPU可在同一機(jī)器周期內(nèi)使用這6個(gè)總線同時(shí)完成指令代碼的讀取和數(shù)存的讀、寫訪問。另外,C2000的片內(nèi)DARAM和 SARAM可以映象至數(shù)據(jù)/程序空間,片內(nèi)Flash也可映象至程序/數(shù)據(jù)空間,體現(xiàn)了改進(jìn)型哈佛總線結(jié)構(gòu)的特點(diǎn)。
2.流水線操作
CPU執(zhí)行一條指令通常分為4個(gè)階段。
⑴ F:取指(fetch)。
、 D:譯碼(decode)。
(3)O:取操作數(shù)(operand)。
。4)X:執(zhí)行(execute)。
圖1:表示了馮?諾依曼結(jié)構(gòu)的CPU執(zhí)行指令的過程。顯然,CPU是在完成一條指令的全部4個(gè)操作階段后再去執(zhí)行另一條指令的,從時(shí)間上看是一種串行執(zhí)行的過程,因此需要花費(fèi)較多的CPU時(shí)鐘周期。
下面討論DSP所采用的流水線操作。
所謂流水線操作就是將一條指令的不同階段分配在連續(xù)的幾個(gè)周期上,通過不同的硬件去完成指令的不同執(zhí)行階段(稱為級)。例如,當(dāng)取指硬件已經(jīng)完成了取指任務(wù),并將指令N送入了譯碼硬件后,它就可以去取下一條指令N+1,而譯碼硬件則同時(shí)對指令N進(jìn)行譯碼。
一個(gè)4級流水線的示意圖如圖1-6所示。假設(shè)指令1的4個(gè)操作階段分別是F1^ D1!01和E1;指令2的4個(gè)操作階段分別是F2! D2!02和E2;依次類推。那么,從圖1-6中可以看到,在時(shí)鐘周期1,指令1取指(F1);在時(shí)鐘周期2,指令1譯碼(D1),而指令2取指(F2) 在時(shí)鐘周期4,流水線中就會有4條指令處于4個(gè)不同階段,其中,指令1已進(jìn)入執(zhí)行階段E1,指令2在取操作數(shù)階段02,指令3處于譯碼階段D3,而指令4剛進(jìn)入取指操作F4?梢姡m然就一條指令而言,似乎要用4個(gè)時(shí)鐘周期才能完成全部操作,但從多條指令的角度看,則可認(rèn)為每條指令的運(yùn)行時(shí)間是單周期。這樣,就使指令的運(yùn)行速度得到了很大提高。當(dāng)然,這樣做所付出的代價(jià)是:必須有相應(yīng)的硬件支持這種多級流水線操作,且流水線的級數(shù)越高,對硬件的要求也越高。
在TI的TMS320系列DSP中,TMS320F24x系列采用4級流水線;TMS320F28x 系列采用8級流水線;TMS320C54x系列采用6級流水線;TMS320C6000系列定點(diǎn)芯片采用11級流水線,浮點(diǎn)芯片則采用16級流水線。
3.片內(nèi)集成有硬件乘法器和乘加單元
一般微處理器中沒有硬件乘法器,在做乘法運(yùn)算時(shí),需要調(diào)用內(nèi)部運(yùn)算序列去執(zhí)行一系列相加和移位運(yùn)算才能完成,所以要花費(fèi)多個(gè)時(shí)鐘周期。例如,MCS-51系列單片機(jī)完成一次乘法操作需要4個(gè)機(jī)器周期,是其指令集里執(zhí)行時(shí)間最長的指令之一。而 DSP為了適應(yīng)大批量乘法運(yùn)算的需要,在其CPU內(nèi)部集成了硬件乘法器和乘加單元,從硬件結(jié)構(gòu)上為高速完成卷積、相關(guān)、FFT及數(shù)字濾波等信號處理算法提供了基礎(chǔ)。例如,TMS320C54x系列片內(nèi)集成有一個(gè)17位X 17位的硬件乘法器和40位的加法器,可以高速完成乘法-累加運(yùn)算(MAC) TMS320C6000系列片內(nèi)有2個(gè)硬件乘法器,支持在單周期內(nèi)完成16位X 16位、16位X32位的乘法,并支持雙16位X 16位和4個(gè)8位 X 8位的乘法運(yùn)算。
4.功能強(qiáng)大的CPU結(jié)構(gòu)
除了上面提到的硬件乘法器和乘加單元,DSP的CPU —般還包括:算術(shù)邏輯運(yùn)算單元(ALU)、累加器、加法器、桶型移位器、程序地址產(chǎn)生和數(shù)據(jù)地址產(chǎn)生等部分。
DSP的累加器有很強(qiáng)的操作能力,一般會配置多個(gè)累加器,或是集成有超長字結(jié)構(gòu)的寄存器組。例如,TMS320C54x的累加器為40位,并且有2個(gè)累加器ACCA和 ACCB。TMS320C64x有64個(gè)32位的通用寄存器,每一個(gè)寄存器都可作為累加器來使用,并可被配置成寄存器對,用來進(jìn)行64位數(shù)據(jù)的訪問。
桶型移位器用來實(shí)現(xiàn)數(shù)據(jù)的移位,包括算術(shù)左移、右移和邏輯左移、右移等。通過它能夠方便地進(jìn)行定點(diǎn)定標(biāo)或其他的移位操作。
DSP的CPU通常含有一套獨(dú)立的程序地址產(chǎn)生邏輯和2套數(shù)據(jù)地址產(chǎn)生邏輯,可以同時(shí)產(chǎn)生一個(gè)程序取指地址和2個(gè)數(shù)據(jù)訪問地址,極大地提高了 CPU的尋址能力。例如,TMS320C54x有2個(gè)輔助算術(shù)邏輯單元ARAUO和ARAU1及8個(gè)輔助寄存器 ARO?AR7,可同時(shí)產(chǎn)生兩個(gè)數(shù)據(jù)地址供CPU使用。
TMS320C6000系列DSP的CPU與其他微處理器有很大不同,它采用了雙數(shù)據(jù)通道和8個(gè)功能單元的結(jié)構(gòu),如圖1-7所示。這種特殊結(jié)構(gòu)支持CPU在單周期內(nèi)最多可同時(shí)執(zhí)行8條指令,具有強(qiáng)大的超長指令字(VLIW)操作能力。
5.硬件循環(huán)重復(fù)機(jī)制
許多DSP芯片具有重復(fù)操作指令和支持重復(fù)操作的專用硬件,通過它們可以自動地重復(fù)執(zhí)行單條指令或一段指令。例如,TMS320C54x中有重復(fù)計(jì)數(shù)器(RPTC)和重復(fù)指令(RPT),當(dāng)執(zhí)行指令RPTN時(shí),CPU會將重復(fù)次數(shù)N賦給RPTC,則緊接RPTN后面的那條指令將被重復(fù)執(zhí)行NQ1次。每重復(fù)執(zhí)行一次,RPTC的數(shù)據(jù)會自動減1,直至減至零為止。這樣,就可以通過硬件自動完成循環(huán)操作的過程。而且,進(jìn)入重復(fù)機(jī)制的指令會自動變?yōu)閱沃芷趫?zhí)行,大大減少了執(zhí)行時(shí)間。
……