内容简介
第1章 绪论
1.1 数字信号处理器简介
1.2 数字信号处理器的发展
1.3 DSP处理器的性能指标及选择
1.4 DSP系统的开发
1.4.1 DSP系统设计开发流程
1.4.2 DSP系统软硬件开发工具
第2章 TMS320C55x的硬件结构
2.1 C55x DSP简介
2.2 C55x的总体结构
2.2.1 CPU内核
2.2.2 C55x存储空间
2.2.3 C55x片内外设
2.2.4 C55x低功耗特性
2.3 C55x的封装和引脚功能
2.3.1 引脚信号定义与描述
2.3.2 存储空间与引脚设置
2.4 中断和复位操作
2.4.1 中断
2.4.2 中断向量与优先级
2.4.3 不可屏蔽中断
2.4.4 外部中断使用举例
第3章 eXpressDSP算法标准软件
3.1 CCS集成开发环境
3.2 实时操作系统内核DSP/BIOS
3.3 CSL概述
3.3.1 CSL体系结构
3.3.2 CSL命名规则
3.3.3 通用CSL函数
3.3.4 CSL宏
3.3.5 CSL调用
3.4 XDAIS算法标准
3.5 eXpressDSP参考框架
3.5.1 RF3简述
3.5.2 RF5简述
3.6 TI官方文档资源介绍
第4章 CCS集成开发环境
4.1 开发工具与开发步骤
4.1.1 代码的开发方法
4.1.2 开发工具
4.1.3 开发步骤
4.2 CCS简介
4.2.1 CCS版本支持
4.2.2 CCS基本功能
4.3 CCS3.3软件的安装与USB仿真驱动设置
4.3.1 CCS文件的安装
4.3.2 CCS文件的简单说明
4.3.3 目标板与驱动的安装设置
4.4 CCS集成开发环境
4.4.1 CCS集成开发环境概述
4.4.2 DSP程序的仿真模式
4.4.3 CCS菜单详解
4.5 建立DSP工程文件
4.5.1 创建、打开和关闭工程
4.5.2 编辑、编译和执行程序
4.5.3 调试工具
4.6 CCS开发中的一些问题
4.6.1 DSP型号和CCS版本之间的关系
4.6.2 run和animate的区别
4.6.3 Probe Point和Break Points的区别和联系
4.6.4 CCS文件数据的格式
4.6.5 CCS调试中的一些小技巧
4.7 第一个实验:驱动一个LED
第5章 TMS320C55x的片内外设、接口及应用
5.1 时钟发生器
5.1.1 时钟发生器概况
5.1.2 时钟工作模式
5.1.3 CLKOUT输出
5.1.4 使用方法与举例
5.2 通用定时器
5.2.1 定时器概述
5.2.2 工作原理
5.2.3 定时器应用实例
5.2.4 通用定时器的调试
5.3 通用I/O口
5.3.1 GPIO概述
5.3.2 GPIO使用举例
5.4 外部存储器接口
5.4.1 EMIF存储器概述
5.4.2 对存储器的考虑
5.4.3 存储器接口设计
5.4.4 EMIF中的控制寄存器
5.4.5 使用举例
5.5 多通道缓冲串口
5.5.1 McBSP概述
5.5.2 McBSP组成框图
5.5.3 采样率发生器
5.5.4 多通道模式选择
5.5.5 异常处理
5.5.6 McBSP寄存器
5.5.7 McBSP使用举例
5.6 模/数转换器
5.6.1 ADC的结构和时序
5.6.2 ADC的寄存器
5.6.3 ADC实例
5.7 看门狗定时器
5.7.1 看门狗定时器概述
5.7.2 看门狗定时器的配置
5.7.3 看门狗定时器的寄存器
5.7.4 看门狗应用举例
5.8 I2C模块
5.8.1 I2C模块工作原理
5.8.2 I2C寄存器
5.8.3 I2C程序使用举例
5.9 USB模块
5.9.1 USB协议简介
5.9.2 VC5509A USB的硬件资源
5.9.3 USB时钟发生器
5.9.4 VC5509A USB的总线连接与中断
5.9.5 USB CSL模块简介
5.9.6 USB模块的编程实现
第6章 DSP系统的硬件设计
6.1 DSP电源的选择与设计
6.1.1 电源加电顺序
6.1.2 电源检测与复位
6.1.3 复位电路设计
6.2 JTAG接口设计
6.3 时钟电路的设计
6.3.1 时钟电路的分类
6.3.2 时钟电路选择原则
6.3.3 C55x时钟电路的调试
6.4 总线隔离与驱动的器件选择
6.5 Flash自举引导设计
6.5.1 自举引导模式的配置
6.5.2 引导表
6.5.3 EMIF模式引导
6.5.4 I2C模式引导
6.6 DSP多机通信接口选择与设计
6.6.1 通过双口RAM(或双向FIFO)桥接
6.6.2 通过主机接口实现通信
6.6.3 通过GPIO实现通信
6.6.4 通过I2C实现通信
6.6.5 通信方式的优缺点
6.7 应用系统的低功耗设计
6.7.1 合理选择DSP器件
6.7.2 让DSP以适当的速度运行
6.7.3 在软件设计中降低功耗
6.7.4 存储器类型对功耗的影响
6.7.5 正确处理外围电路
第7章 DSP软件程序设计
7.1 DSP软件开发流程
7.1.1 软件开发流程
7.1.2 DSP程序的基本组成
7.1.3 VC5509A的工作流程
7.1.4 DSP C语言简介
7.1.5 DSP C语言关键字
7.1.6 动态分配内存
7.2 汇编伪指令
7.2.1 汇编伪指令概述
7.2.2 C程序在DSP中的定位
7.3 CMD文件的编写
7.4 混合编程
7.5 GEL文件
7.5.1 GEL语法概述
7.5.2 存储器映射
7.5.3 详解C5509.gel文件
7.6 归档器的使用
7.7 反汇编的实现
第8章 软件开发进阶
8.1 Big Endian和Little Endian
8.2 程序的优化
8.2.1 获得最佳性能的代码开发流程
8.2.2 工程层的优化
8.2.3 算法的改变
8.2.4 数据内存的优化
8.2.5 提高流水线的效率
8.3 程序的编程素养
8.3.1 程序注释
8.3.2 函数
8.3.3 变量
8.3.4 其他编程规范
8.4 数字信号处理库
8.4.1 DSPLIB的调用
8.4.2 DSPLIB函数
8.5 图像/视频算法库
8.5.1 图像/视频算法库概述
8.5.2 图像/视频处理库的安装与使用
8.5.3 图像处理API接口
第9章 DSP最小系统电路详解
9.1 供电电路
9.2 时钟振荡电路
9.3 蜂鸣器控制电路
9.4 外扩存储SDRAM电路
9.5 DSP bootloader模式电路
9.6 SD卡接口电路
9.7 音频控制电路
9.8 USB控制电路
第10章 硬件电路的设计与调试
10.1 完整的硬件开发流程
10.1.1 原理图设计
10.1.2 PCB设计注意事项
10.1.3 总线等效交换
10.1.4 硬件调试前电路板的常规检查
10.1.5 调试中常见问题的解决步骤
10.1.6 JTAG连接错误的常用解决办法
10.2 遇到问题时的常用解决办法
10.3 CCS调试中常见错误信息
10.4 电路的抗干扰设计
10.4.1 干扰的来源与结果
10.4.2 系统电源干扰设计
10.4.3 硬件抗干扰设计
第11章 软件实验详解
11.1 SPI bootloader实验
11.1.1 EEPROM的读/写
11.1.2 DSP bootloader烧写步骤
11.2 USB自举实验
11.3 音频CODEC实验
11.4 SD卡读/写实验
11.4.1 SD卡简介
11.4.2 SD卡读/写的实现
11.5 SDRAM读/写实验
11.5.1 SDRAM简述
11.5.2 配置EMIF访问SDRAM
11.5.3 SDRAM的配置与初始化
11.5.4 SDRAM的刷新
11.5.5 SDRAM的读/写操作
11.6 12864图形液晶显示实验
11.6.1 简介与型号选型
11.6.2 电路接口
11.6.3 底层驱动函数
第12章 数字信号处理算法与实践
12.1 基于MATLAB的DSP调试方法
12.1.1 定点数的定标
12.1.2 误差问题
12.2 CCSLink
12.2.1 CCSLink简介
12.2.2 对象的建立
12.3 FDATool
12.3.1 FDATool的设置
12.3.2 CCS中滤波器的设计
12.4 FIR滤波器的设计
12.4.1 使用FDATool
12.4.2 利用MATLAB产生噪声信号用于滤波器测试
12.4.3 在CCS中编写FIR滤波器程序
12.4.4 滤波器仿真测试
12.5 快速傅里叶变换(FFT)的DSP实现
12.6 数字滤波器的DSP实现
12.6.1 FIR滤波器与IIR滤波器的比较
12.6.2 FIR滤波器的设计方法
12.6.3 IIR滤波器的设计方法
12.7 FIRLMS滤波器
12.8 数字图像处理
12.8.1 图像与CCS数据的转换
12.8.2 CCS读取BMP文件
第13章 DSP/BIOS实践与应用
13.1 操作系统与DSP/BIOS基础
13.1.1 操作系统简介
13.1.2 DSP/BIOS简介
13.1.3 DSP/BIOS组成
13.1.4 DSP/BIOS内核
13.1.5 DSP/BIOS启动过程
13.2 DSP/BIOS的配置
13.2.1 建立DSP/BIOS配置文件
13.2.2 全局属性设置
13.2.3 MEM设置
13.2.4 CLK设置
13.2.5 Synchronization设置
13.2.6 Input/Output设置
13.3 HWI模块的使用
13.4 SWI模块的使用
13.4.1 SWI概述
13.4.2 SWI设置
13.4.3 API函数接口说明
13.4.4 SWI举例说明
13.5 TSK模块的使用
13.5.1 TSK模块概述
13.5.2 TSK模块的设置
13.5.3 TSK模块的接口函数
13.5.4 TSK使用举例
13.5.5 阻塞和中断的区别和联系
13.6 SEM模块的使用
13.6.1 SEM模块概述
13.6.2 SEM的接口函数
13.6.3 SEM举例说明
13.7 MBX模块的使用
13.7.1 Mailbox的接口函数说明
13.7.2 使用举例
13.8 其他常用模块的使用
13.8.1 LOG模块
13.8.2 LCK模块
13.8.3 PRD模块
13.8.4 QUE模块
13.9 DSP/BIOS实时监测与软件优化
13.9.1 DSP/BIOS实时监测
13.9.2 DSP/BIOS软件优化
第14章 工程项目实践与应用
14.1 基于BIOS的实时数据采集和处理
14.1.1 任务的划分
14.1.2 软件实现
14.2 DSP与网络数据传输
14.2.1 常用网络芯片简介
14.2.2 开源网络协议的移植
14.2.3 TCP/IP协议代码的实现
14.3 Telnet协议
14.3.1 Telnet协议简介
14.3.2 Telnet的实现
14.3.3 Telnet协议代码的实现
14.4 TFTP协议
14.4.1 TFTP协议简介
14.4.2 TFTP的实现
14.5 SD卡与文件系统
14.5.1 解读FAT32文件系统
14.5.2 文件系统的移植
14.6 3D16光立方的设计与制作
14.6.1 3D16光立方硬件设计方案
14.6.2 软件系统设计
第15章 DSP+FPGA复杂系统的设计
15.1 FPGA与DSP的结构特点
15.1.1 DSP的结构特点
15.1.2 FPGA的结构特点
15.1.3 DSP和FPGA的性能比较
15.1.4 DSP+FPGA系统的设计
15.2 FPGA系统的设计
15.2.1 FPGA系统设计流程
15.2.2 FPGA最小系统的设计
15.2.3 VHDL语言概述
15.2.4 FPGA系统的调试
15.2.5 MAX II系列芯片与Quartus II
15.2.6 FPGA常用思想与技巧
15.3 FPGA与DSP数据交互
15.3.1 EMIF接口方式
15.3.2 HPI接口方式
15.3.3 跨时钟域的设计
15.3.4 DSP与FPGA的数据交互
15.4 DSP系统的扩展设计
15.4.1 EPM240T100C5电路设计
15.4.2 数码管与LED显示实验
15.4.3 按键实验
15.4.4 串口扩展实验
15.4.5 LCD液晶模块显示实验
15.4.6 EPM240T100C5的程序实现
第16章 OMAP双核处理器
16.1 OMAP处理器概述
16.2 OMAP处理器结构
16.2.1 OMAP1代处理器
16.2.2 OMAP2代处理器
16.2.3 OMAP3代处理器
16.2.4 OMAP4代处理器
16.2.5 OMAP5代处理器
16.3 OMAP软件平台开发
16.3.1 软件体系结构
16.3.2 应用程序设计
第17章 TMS320C55x在医疗电子中的应用
17.1 DSP与医疗电子
17.2 心电图(ECG)MDK开发方案
17.2.1 ECG设计
17.2.2 TMS320C5515主要特性
17.2.3 医疗开发套件(MDK)
附录A 下载DSP资料的一些常用网站
附录B C54x与C5510寄存器
附录C VC5510中断
附录D TMS320C55x的状态寄存器
附录E TMS320C55x的汇编指令集
附录F TMS320C55xDSP库函数
后记
参考文献