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