本書以TMS320C55x系列DSP為核心,詳細介紹了數字信號處理器的背景知識,以及該系列芯片的CPU內部結構、存儲器空間結構、匯編指令系統和片內外設,并且對應用程序開發流程、C語言編程方法和集成開發環境CCS進行了系統的闡述。本書以TMS320C55x系列DSP為核心,詳細介紹了數字信號處理器的背景知識,以及該系列芯片的CPU內部結構、存儲器空間結構、匯編指令系統和片內外設,并且對應用程序開發流程、C語言編程方法和集成開發環境CCS進行了系統的闡述。
本書在語言描述上保證嚴謹性,同時盡量做到通俗易懂;內容組織上注意由淺入深、循序漸進,結合具體實例進行輔助說明,讓讀者對所講內容理解得更透徹。本書既可作為本專科院校電子信息類專業學生的教材,也可作為工程技術人員學習DSP應用技術的入門參考資料。
信息技術的發展對數字信息處理能力的要求越來越高。DSP芯片以其強大的數字運算能力、超低功耗、體積小等特點,已廣泛應用于通信、工業控制、醫學成像和交通監控等領域。
從美國德州儀器公司(TI公司)1982年研制出第一代DSP處理芯片開始,數字處理器的發展十分迅猛。目前市場上的DSP產品主要有TI公司的TMS320系列、AD公司的ADSP系列、Motorola公司的DSP56xx系列和DSP96xx系列等器件。其中,美國TI公司的產品占據市場份額的60%左右。TI公司從第一代TMS320C1x DSP發展到目前的TMS320C6x DSP,其性能得到了極大提升。其中,TMS320C55x DSP是5000系列DSP中具備16位定點數據處理的高性價比DSP芯片。55x DSP在擁有自己的指令系統的同時,兼容54x DSP指令,具有低功耗、速度快、運算能力強等特點,被廣泛應用于人們的生產和生活當中。
目前為初學者介紹55x系列DSP的相關書籍和教材較少。為了使學習者較容易地學習DSP的入門知識,編者結合多年的教學經驗和體會編寫了這本書。本書具有以下特點。
(1) 作為一本入門教材,書中介紹有關55x DSP所必須掌握的知識點,不求大而全,對涉及的知識點盡量講述清晰、透徹。
(2) 每章開始都概括介紹本章知識要點,使學習者對本章的學習任務和要求一目了然。每章最后有思考題,使學習者加深對知識點的理解和鞏固。
(3) 講述基本原理時盡可能結合插圖和實例進行,使學習者能夠輕松理解并掌握。書中引用了許多插圖和實例講述DSP的基本結構、指令、匯編語言和C語言基本編程方法以及片內外設的應用。
(4) 在教材內容編寫上,力求由淺入深、循序漸進、突出重點。語言描述上強調條理清楚,用詞準確。
本書介紹了TMS320C55x DSP的原理及應用。全書分為7章,第1章介紹DSP的基本知識。第2章和第3章詳細介紹55x DSP的硬件體系結構和匯編指令系統,包括DSP內部總線結構、CPU結構、存儲空間配置以及匯編指令系統的符號定義、尋址方式及指令系統。第4章系統地介紹55x DSP軟件開發過程,包括匯編語言編程方法、COFF文件、匯編器和鏈接器使用、C語言編程方法、55x DSP庫函數的使用以及C語言編程實例等。第5章全面介紹55x DSP片內外設的基本結構和工作原理。第6章介紹DSP相關外圍電路的工作原理。第7章介紹在集成開發環境CCS下應用程序的設計和調試方法。附錄部分介紹5509 DSP引腳信號說明、55x DSP匯編指令集、55x DSP CPU內部寄存器和55x DSP外設寄存器。
課程學習建議40課時。其中,第1章2課時,第2章6課時,第3章8課時,第4章6課時,第5章10課時,第6章6課時,第7章2課時。實際授課時,請教師根據課時情況酌情增減,有些內容可以讓學生通過自學和實踐來完成。
本書由藺鵬、胡玫擔任主編,藺鵬負責編寫第3~5章;胡玫負責編寫第1章、第2章、第6章、第7章和附錄部分。編者在編寫過程中參閱了大量TI公司公開資料以及國內相關書籍,結合多年DSP教學經驗完成。本書出版得到清華大學出版社的大力支持,在此表示衷心的感謝!
由于編者的經驗和水平有限,書中難免存在不足之處,懇請廣大讀者批評、指正。
編者2015年4月
第1章緒論1 1.1數字信號處理技術1
1.1.1概述1
1.1.2DSP芯片的特點4
1.1.3DSP產品簡介5
1.2TMS320系列DSP芯片概述6
1.2.1DSP芯片的發展6
1.2.2TMS320系列的典型應用7
1.2.3TMS320C55x系列8
1.3數據運算格式8
1.3.1定點格式8
1.3.2浮點格式11
1.4DSP的性能參數指標11
第2章TMS320C55x DSP的硬件體系結構14
2.1概述14
2.1.1TMS320C55x芯片引腳功能介紹14
2.1.2TMS320C55x基本結構及主要特性18
2.2總線結構及存儲器接口單元20
2.2.1總線結構20
2.2.2存儲器接口單元22
2.3中央處理器CPU結構22
2.3.1指令緩沖單元(I)22
2.3.2程序流程單元(P)23
2.3.3數據地址流程單元(A)25
2.3.4數據計算單元(D)27〖3〗[4]2.3.5指令流水線28
2.4存儲空間配置31
2.4.1存儲器映射31
2.4.2程序空間31
2.4.3數據空間32
2.4.4I/O空間34
2.5片內外設介紹34
第3章TMS320C55x DSP匯編指令系統36
3.1術語、符號與縮寫36
3.1.1指令集術語、符號和縮寫36
3.1.2指令集條件字段38
3.1.3狀態位的影響40
3.1.4指令集注釋和規則41
3.1.5并行特征和規則44
3.2數據尋址方式46
3.2.1尋址方式概述46
3.2.2絕對尋址方式47
3.2.3直接尋址方式48
3.2.4間接尋址方式49
3.3TMS320C55x的指令系統58
第4章TMS320C55x應用程序開發131
4.1TMS320C55x軟件開發流程和開發工具131
4.2匯編語言編程方法133
4.2.1匯編偽指令133
4.2.2匯編語言程序編寫方法135
4.3公共目標文件格式(COFF)137
4.3.1COFF文件的基本概念137
4.3.2COFF文件中的符號137
4.4匯編器和鏈接器138
4.4.1匯編器的作用138
4.4.2匯編器對段的處理138
4.4.3鏈接器的作用1394.4.4鏈接器對段的處理140
4.4.5鏈接命令文件140
4.5C語言編程方法143
4.5.155x DSP C語言概述143
4.5.2關鍵字145
4.5.3C語言和匯編語言混合編程148
4.5.4C編譯器的存儲器模式150
4.5.5C語言代碼優化152
4.5.6中斷處理153
4.5.7C語言的數據訪問方法154
4.6C55x庫函數和C語言編程實例155
4.6.1C55x庫函數訪問155
4.6.2C語言編程實例156
第5章TMS320C55x DSP片內外設159
5.1時鐘發生器159
5.1.1時鐘發生器輸入輸出電路159
5.1.2時鐘發生器工作流程160
5.2中斷系統162
5.2.1DSP中斷介紹162
5.2.2中斷矢量和優先級163
5.2.3可屏蔽中斷164
5.2.4不可屏蔽中斷166
5.3通用定時器和Watchdog定時器166
5.3.1通用定時器結構166
5.3.2定時器引腳166
5.3.3定時器中斷168
5.3.4初始化定時器168
5.3.5定時器的寄存器169
5.3.6定時器初始化舉例172
5.3.7Watchdog定時器175
5.4A/D轉換器180
5.4.1轉換時間181
5.4.2ADC初始化和轉換監控1815.4.3ADC寄存器182
5.5DMA控制器185
5.5.1DMA控制器通道和端口存取方式186
5.5.2DMA通道自動初始化187
5.5.3DMA數據傳送單元188
5.5.4通道起始地址配置188
5.5.5通道地址更新189
5.5.6數據猝發190
5.5.7同步通道活動190
5.5.8DMA控制寄存器192
5.6主機接口(HPI)201
5.6.1DSP存儲器通過HPI存取202
5.6.2HPI與DMA交互操作202
5.6.3HPI信號203
5.6.4非多元(Nonmultiplexed)模式204
5.6.5多元(Multiplexed)模式204
5.6.6HPI寄存器205
5.7外部存儲器接口(EMIF)205
5.7.1EMIF信號206
5.7.2EMIF請求208
5.7.3CE信號對應的外部存儲器映射空間208
5.7.4CE信號對應的外部存儲器映射空間209
5.7.5保持(HOLD)請求,共享外部存儲器209
5.7.6寫發布(Write Posting),對外部存儲器緩沖寫210
5.7.7CPU指令流水線210
5.7.8EMIF訪問外部異步存儲器211
5.7.9EMIF訪問SDRAM212
5.7.10EMIF寄存器215
5.8實時時鐘(RTC)外設217
5.8.1實時時鐘電源供電218
5.8.2實時時鐘時間和日期寄存器219
5.8.3實時時鐘時間和日歷告警(鬧鐘)220
5.8.4實時時鐘中斷請求222
5.8.5實時時鐘寄存器2235.9通用輸入輸出端口GPIO概述230
5.10I2C模塊230
5.10.1I2C模塊介紹230
5.10.2I2C模塊內部結構231
5.10.3時鐘發生電路232
5.10.4I2C模塊操作233
5.10.5I2C模塊中斷請求和DMA事件233
5.10.6I2C模塊寄存器234
5.11USB模塊234
5.11.1USB模塊介紹235
5.11.2USB模塊時鐘發生237
5.11.3USB緩沖管理器(UBM)240
第6章DSP系統電路242
6.1DSP系統電平轉換電路242
6.1.1各種電平的轉換標準242
6.1.23.3V與5V電平轉換的形式243
6.1.3DSP與外圍器件的接口243
6.1.4JTAG仿真接口電路246
6.2DSP存儲器和I/O的擴展246
6.2.1程序存儲器擴展246
6.2.2數據存儲器的擴展248
6.2.3I/O擴展應用249
6.3A/D和D/A接口250
6.3.1TMS320C55x DSP與A/D接口251
6.3.2TMS320C55x DSP與D/A接口257
6.4DSP系統自舉258
6.4.1DSP系統自舉概述258
6.4.2自舉啟動表的建立及引導裝載的過程259
第7章CCS集成開發環境高級應用267
7.1CCS系統安裝及界面介紹267
7.1.1CCS功能簡介267
7.1.2CCS 3.3的安裝與設置2687.1.3CCS 3.3界面介紹270
7.2應用程序的開發277
7.2.1編譯器、匯編器和鏈接器設置277
7.2.2項目管理器284
7.2.3代碼編輯器288
7.3程序調試工具291
7.3.1單步運行及擴展291
7.3.2斷點294
7.3.3探針點297
7.3.4圖形顯示298
7.3.5觀察窗303
7.3.6符號瀏覽器304
7.3.7GEL工具305
7.4代碼執行時間測算308
附錄1TMS320C5509 DSP引腳信號說明311
附錄2TMS320C55x DSP匯編指令集317
附錄3TMS320C55x DSP CPU內部寄存器336
附錄4TMS320C55x DSP外設寄存器339
參考文獻353