本帖最后由 红尘有约 于 2010-12-1 11:02 编辑
因为年度末,出版社一般把新书放在年度初出版,红尘的《手把手教你学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 |