因為年度末,出版社一般把新書放在年度初出版,紅塵的《手把手教你學(xué)DSP-基于TMS320C55x》2011年4月份正式出版。 目錄如下,敬請期待。同時紅塵正在整理資料,預(yù)計可能出版基于F2833x,達(dá)芬奇系列方面的書,各位有什么意見與建議,請聯(lián)系紅塵。謝謝各位支持。 目 錄 前言 1 第1章 緒論 2 1.1 數(shù)字信號處理器簡介 2 1.2 數(shù)字信號處理器的發(fā)展 2 1.3 DSP處理器的性能指標(biāo)及選擇 4 1.4 DSP系統(tǒng)的開發(fā) 5 1.4.1 DSP系統(tǒng)設(shè)計開發(fā)流程 5 1.4.2 DSP系統(tǒng)軟硬件開發(fā)工具 5 2 TMS320C55X的硬件結(jié)構(gòu) 7 2.1 C55X DSP簡介 7 2.2 TMS320C55X的總體結(jié)構(gòu) 7 2.2.1 CPU內(nèi)核 7 2.2.2 TMS320C55X存儲器空間 8 2.2.3 TMS320C55x片內(nèi)外設(shè) 9 2.2.4 C55x低功耗特性 10 2.3 C55X的封裝和引腳功能 11 2.3.1 引腳信號定義與描述 13 2.3.2 存儲空間與引腳設(shè)置 16 2.4 中斷和復(fù)位操作 17 2.4.1 中斷 17 2.4.2 中斷向量與優(yōu)先級 17 2.4.3 不可屏蔽中斷 19 2.4.4 外部中斷使用舉例 20 3 EXPRESS DSP算法標(biāo)準(zhǔn)軟件 22 3.1 CCS集成開發(fā)環(huán)境 22 3.2 實時操作系統(tǒng)內(nèi)核DSP/BIOS 22 3.3 CSL概述 25 3.3.1 CSL體系結(jié)構(gòu) 25 3.3.2 CSL命名規(guī)則 27 3.3.3 通用CSL函數(shù) 28 3.3.4 CSL宏 29 3.3.5 CSL調(diào)用 32 3.3.6 CSL宏定義解析 32 3.4 XDAIS算法標(biāo)準(zhǔn) 32 3.5 EXPRESS DSP參考框架 32 3.5.1 RF3簡述 34 3.5.2 RF5簡述 34 3.6 TI官方文檔資源介紹 37 4 CCS集成開發(fā)環(huán)境 39 4.1 開發(fā)工具與開發(fā)步驟 39 4.1.1 代碼的開發(fā)方法 39 4.1.2 開發(fā)工具 39 4.1.3 開發(fā)步驟 40 4.2 CCS簡介 40 4.2.1 CCS版本支持 40 4.2.2 CCS基本功能 40 4.3 CCS 3.3軟件的安裝與USB仿真驅(qū)動設(shè)置 40 4.3.1 CCS文件的安裝 40 4.3.2 CCS文件的簡單說明 41 4.3.3 目標(biāo)板與驅(qū)動的安裝設(shè)置 41 4.4 CCS集成開發(fā)環(huán)境 45 4.4.1 CCS集成開發(fā)環(huán)境概述 45 4.4.2 DSP程序的仿真模式 45 4.4.3 CCS菜單詳解 45 4.5 建立DSP工程文件 47 4.5.1 創(chuàng)建、打開和關(guān)閉工程 47 4.5.2 編輯、編譯和執(zhí)行程序 49 4.5.3 調(diào)試工具 52 4.6 CCS開發(fā)中的一些問題 57 4.6.1 DSP型號和CCS版本之間的關(guān)系 57 4.6.2 run和animate的區(qū)別 57 4.6.3 Probe Point 和Breakpoints的區(qū)別和聯(lián)系 58 4.6.4 CCS文件數(shù)據(jù)的格式 58 4.6.5 CCS調(diào)試中的一些小技巧 59 4.7 第一個試驗:驅(qū)動一個LED 61 5 TMS320C55X的片內(nèi)外設(shè)、接口及應(yīng)用 66 5.1 時鐘發(fā)生器 66 5.1.1 時鐘發(fā)生器概況 66 5.1.2 時鐘工作模式 66 5.1.3 CLKOUT輸出 67 5.1.4 使用方法與舉例 67 5.2 通用定時器 68 5.2.1 定時器概述 68 5.2.2 工作原理 69 5.2.3 定時器應(yīng)用實例 71 5.2.4 通用定時器的調(diào)試 72 5.3 通用I/O口(GPIO) 72 5.3.1 GPIO概述 72 5.3.2 GPIO使用舉例 72 5.4 外部存儲器接口(EMIF) 73 5.4.1 EMIF存儲器概述 73 5.4.2 對存儲器的考慮 74 5.4.3 存儲器接口設(shè)計 75 5.4.4 EMIF中的控制寄存器 80 5.4.5 使用舉例 81 5.5 多通道緩沖串口(MCBSP) 83 5.5.1 McBSP概述 83 5.5.2 McBSP組成框圖 83 5.5.3 采樣率發(fā)生器 84 5.5.4 多通道模式選擇 85 5.5.5 異常處理 86 5.5.6 McBSP寄存器 86 5.5.7 McBSP使用舉例 90 5.6 模數(shù)轉(zhuǎn)換器(ADC) 91 5.6.1 ADC的結(jié)構(gòu)和時序 92 5.6.2 ADC的寄存器 92 5.6.3 ADC實例 93 5.7 看門狗定時器(WATCHDOG) 94 5.7.1 看門狗定時器概述 94 5.7.2 看門狗定時器的配置 96 5.7.3 看門狗定時器的寄存器 96 5.7.4 看門狗應(yīng)用舉例 97 5.8 I2C模塊 98 5.8.1 I2C模塊簡介 99 5.8.2 I2C模塊工作原理 99 5.8.3 I2C寄存器 102 5.8.4 I2C程序使用舉例 102 5.9 USB模塊 103 5.9.1 USB協(xié)議簡介 103 5.9.2 C5509 USB的硬件資源 104 5.9.3 USB時鐘發(fā)生器 105 5.9.4 C5509 USB的總線連接與中斷 106 5.9.5 USB CSL模塊簡介 107 5.9.6 USB模塊的編程實現(xiàn) 108 6 DSP系統(tǒng)的硬件設(shè)計 111 6.1 DSP電源的選擇與設(shè)計 111 6.1.1 電源加電順序 113 6.1.2 電源檢測(SVS)與復(fù)位 114 6.1.3 復(fù)位電路設(shè)計 114 6.2 JTAG接口設(shè)計 115 6.2.1 DSP與JTAG的連接 115 6.3 時鐘電路的設(shè)計 117 6.3.1 時鐘電路的分類 118 6.3.2 時鐘電路選擇原則 118 6.3.3 C55X時鐘電路的調(diào)試 119 6.4 存儲器的選擇與設(shè)計 119 6.4.1 存儲器概述 119 6.5 總線隔離與驅(qū)動的器件選擇 119 6.6 FLASH自舉引導(dǎo)設(shè)計 120 6.6.1 自舉引導(dǎo)模式的配置 120 6.6.2 引導(dǎo)表 121 6.6.3 EMIF模式引導(dǎo) 122 6.6.4 I2C模式引導(dǎo) 122 6.7 DSP多機(jī)通信接口選擇與設(shè)計 122 6.7.1 通過雙口RAM (或雙向FIFO)橋接 123 6.7.2 通過主機(jī)接口(HPI)實現(xiàn)通信 123 6.7.3 通過GPIO實現(xiàn)通信 124 6.7.4 通過I2C實現(xiàn)通信 124 6.7.5 通信方式的優(yōu)缺點 124 6.8 串口擴(kuò)展電路設(shè)計 125 6.8.1 串行通信標(biāo)準(zhǔn) 125 6.8.2 并串互轉(zhuǎn)換芯片 127 6.8.3 通信電路 129 6.9 應(yīng)用系統(tǒng)的低功耗設(shè)計 129 6.9.1 合理選擇DSP器件 130 6.9.2 讓DSP以適當(dāng)?shù)乃俣冗\行 130 6.9.3 在軟件設(shè)計中降低功耗 130 6.9.4 存儲器類型對功耗的影響 130 6.9.5 正確處理外圍電路 130 7 DSP 軟件程序設(shè)計 132 7.1 DSP軟件開發(fā)流程 132 7.1.1 軟件開發(fā)流程 132 7.1.2 DSP程序的基本組成 133 7.1.3 TMS320VC5509的工作流程 134 7.1.4 DSP C語言簡介 134 7.1.5 DSP C語言關(guān)鍵字 135 7.1.6 動態(tài)分配內(nèi)存 136 7.2 匯編偽指令 136 7.2.1 匯編偽指令概述 136 7.2.2 C程序在DSP中的定位 138 7.3 CMD文件的編寫 139 7.4 混合編程 142 7.5 GEL文件 145 7.5.1 GEL語法概述 145 7.5.2 GEL回調(diào)函數(shù) 146 7.5.3 存儲器映射 148 7.5.4 詳解c5509.gel文件 148 7.6 歸檔器的使用 150 7.7 反匯編的實現(xiàn) 151 8 軟件開發(fā)進(jìn)階 155 8.1 BIG ENDIAN 和 LITTLE ENDIAN 155 8.2 程序的優(yōu)化 156 8.2.1 獲得最佳性能的代碼開發(fā)流程 157 8.2.2 工程層的優(yōu)化 158 8.2.3 算法的改變 159 8.2.4 數(shù)據(jù)內(nèi)存的優(yōu)化 159 8.2.5 C代碼的優(yōu)化 160 8.2.6 匯編代碼的優(yōu)化 165 8.2.7 提高流水線的效率 169 8.3 程序的編程素養(yǎng) 170 8.3.1 程序注釋 170 8.3.2 函數(shù) 173 8.3.3 變量 173 8.3.4 其它 174 8.4 數(shù)字信號處理庫 174 8.4.1 DSPLIB的調(diào)用 175 8.4.2 DSPLIB函數(shù) 176 8.5 圖像/視頻算法庫 176 8.5.1 圖像/視頻算法庫概述 176 8.5.2 圖像/視頻處理庫的安裝與使用 176 8.5.3 圖像處理算API接口 177 9 DSP最小系統(tǒng)電路詳解 180 9.1 供電復(fù)位電路 180 9.2 時鐘振蕩電路 181 9.3 峰鳴器控制電路 182 9.4 外擴(kuò)存儲SDRAM電路 183 9.5 DSP BOOTLOADER模式電路 184 9.6 SD卡接口電路 185 9.7 IIC-EEPROM電路 186 9.8 音頻控制電路 186 9.9 USB 控制電路 187 10 硬件電路的設(shè)計與調(diào)試 188 10.1 硬件電路設(shè)計與PCB 188 10.1.1 原理圖設(shè)計 190 10.1.2 PCB設(shè)計注意事項 190 10.1.3 總線等效交換 190 10.1.4 硬件調(diào)試前電路板的常規(guī)檢查 191 10.1.5 硬件調(diào)試中應(yīng)注意的問題 191 10.1.6 調(diào)試中遇到問題的解決步驟 192 10.1.7 JTAG連接錯誤常解決辦法 192 10.1.8 總結(jié)常見問題 193 10.2 軟件開發(fā)與調(diào)試 194 10.3 碰到問題的常用解決辦法 196 10.4 CCS調(diào)試中常見錯誤信息 196 10.5 電路的抗干擾設(shè)計 198 10.5.1 干擾的來源與結(jié)果 198 10.5.2 系統(tǒng)電源干擾設(shè)計 198 10.5.3 硬件抗干擾設(shè)計 198 10.5.4 軟件抗干擾設(shè)計 199 10.5.5 輸入輸出抗干擾設(shè)計 199 11 軟件實驗詳解—擴(kuò)展篇 201 11.1 SPI BOOTLOADER實驗 201 11.1.1 EEPROM的讀寫 202 11.1.2 DSP BootLoader燒寫步驟 204 11.2 USB自舉實驗 205 11.3 音頻CODEC實驗 210 11.4 SD卡讀/寫實驗 215 11.4.1 SD卡簡介 215 11.4.2 SD讀寫的實現(xiàn) 218 11.5 SDRAM讀/寫實驗 222 11.5.1 SDRAM簡述 222 11.5.2 配置EMIF 訪問SDRAM 223 11.5.3 SDRAM配置與初始化 223 11.5.4 SDRAM的刷新 224 11.5.5 SDRAM的讀寫操作 224 11.6 12864圖形液晶顯示實驗 226 11.6.1 簡介與型號選型 226 11.6.2 電路接口 227 11.6.3 底層驅(qū)動函數(shù) 228 12 數(shù)字信號處理算法與實踐 229 12.1 基于MATLAB的DSP調(diào)試方法 229 12.1.1 定點數(shù)的定標(biāo) 230 12.1.2 誤差問題 230 12.2 CCSLINK 231 12.2.1 CCS LINK簡介 231 12.2.2 對象的建立 232 12.3 FDATOOL 233 12.3.1 FDATool的設(shè)置 233 12.3.2 CCS中濾波器的設(shè)計 234 12.4 FIR濾波器的設(shè)計 235 12.4.1 使用FDATool 235 12.4.2 2、利用Matlab產(chǎn)生噪聲信號用于濾波器測試 237 12.4.3 在CCS中編寫FIR濾波器程序(本文以C語言為例) 238 12.4.4 濾波器仿真測試 239 12.5 快速傅里葉變換(FFT)的DSP實現(xiàn) 241 12.5.1 FFT算法簡介 241 12.5.2 FFT算法的DSP實現(xiàn) 241 12.6 數(shù)字濾波器的DSP實現(xiàn) 245 12.6.1 FIR濾波器與IIR濾波器的比較 245 12.6.2 FIR濾波器的設(shè)計方法 246 12.6.3 IIR濾波器的設(shè)計方法 249 12.7 FIRLMS試驗 253 13 數(shù)字圖像處理算法與實踐 257 13.1 數(shù)字圖像處理 257 13.2 BMP文件格式分析 257 13.3 圖像與DAT文件格式的轉(zhuǎn)換 258 13.4 CCS讀取BMP文件 258 13.5 圖像增強(qiáng)試驗 259 13.6 圖像翻轉(zhuǎn)試驗 264 14 DSP/BIOS實踐與應(yīng)用 272 14.1 操作系統(tǒng)與DSP/BIOS基礎(chǔ) 272 14.1.1 操作系統(tǒng)簡介 272 14.1.2 DSP/BIOS組成 272 14.1.3 DSP/BIOS內(nèi)核 274 14.1.4 DSP/BIOS啟動過程 275 14.2 DSP/BIOS的配置 276 14.2.1 建立DSP/BIOS配置文件文件 276 14.2.2 全局屬性設(shè)置 280 14.2.3 MEM設(shè)置 281 14.2.4 CLK設(shè)置 283 14.2.5 HWI設(shè)置 284 14.2.6 TSK設(shè)置 286 14.2.7 Synchronization設(shè)置 286 14.2.8 Input/Output設(shè)置 287 14.3 HWI模塊的使用 288 14.4 SWI模塊的使用 288 14.4.1 SWI概述 288 14.4.2 SWI設(shè)置 289 14.4.3 API函數(shù)接口說明 290 14.4.4 使用舉例 291 14.5 TSK模塊的使用 291 14.5.1 TSK模塊概述 291 14.5.2 TSK模塊的設(shè)置 291 14.5.3 TSK模塊的接口函數(shù) 293 14.5.4 TSK使用舉例 293 14.5.5 阻塞(blocked)和中斷(interrupt)的區(qū)別和聯(lián)系 294 14.6 SEM模塊的使用 294 14.6.1 SEM模塊概述 294 14.6.2 SEM的接口函數(shù) 294 14.6.3 SEM舉例說明 294 14.7 MBX模塊的使用 299 14.7.1 Maibox概述 299 14.7.2 Maibox的接口函數(shù)說明 299 14.7.3 使用舉例 300 14.8 其它常用模塊的使用 303 14.8.1 LOG模塊 303 14.8.2 LCK模塊 306 14.8.3 PRD模塊 306 14.8.4 QUE模塊 307 14.9 DSP/BIOS實時檢測與軟件優(yōu)化 308 14.9.1 DSP/BIOS實時檢測 308 14.9.2 DSP/BIOS軟件優(yōu)化 309 15 工程項目實踐與應(yīng)用 312 15.1 基于BIOS的實時數(shù)據(jù)采集和處理 312 15.1.1 任務(wù)的劃分 312 15.1.2 軟件實現(xiàn) 312 15.2 DSP與網(wǎng)絡(luò)數(shù)據(jù)傳輸 315 15.2.1 常用網(wǎng)絡(luò)芯片簡介 315 15.2.2 開源網(wǎng)絡(luò)協(xié)議的移植 317 15.2.3 TCP/IP協(xié)議代碼實現(xiàn) 319 15.3 TELNET協(xié)議的實現(xiàn) 319 15.3.1 Telnet協(xié)議簡介 319 15.3.2 Telnet的實現(xiàn) 320 15.3.3 Telnet協(xié)議代碼實現(xiàn) 321 15.4 TFTP協(xié)議的實現(xiàn) 322 15.4.1 TFTP協(xié)議簡介 322 15.4.2 TFTP的實現(xiàn) 323 15.5 SD卡與文件系統(tǒng) 326 15.5.1 解讀FAT32文件系統(tǒng) 326 15.5.2 文件系統(tǒng)的移植 335 附錄 340 TI的英文資料分類以及DATASHEET手冊閱讀 340 關(guān)于下載DSP資料的一些常用網(wǎng)站 346 參考文獻(xiàn) 349 |