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