DSP是一种具有数字信号处理特长的高性能微处理器。本书总结了微处理器的结构框架、学习目的和方法。在此基础上,以TMS320C28为模型介绍其硬件结构、指令系统、存储器组织、中断系统及片内外设的基本原理,强化微处理器学习方法,训练使用微处理器的基本功。本书还加强了DSP最小系统介绍,使读者很容易建立自己的硬件平台;增加了C语言编程工程模板介绍,使读者可以很方便地进行软件开发;并且介绍了DSP的开发环境、C语言编程和开发流程。在最后一章提供了不同层次的实验内容。书中所提供实例的软硬件都经过了试验验证。本书实践性较强,部分内容以案例编写,可更好地激发学生的学习兴趣。
本书可作为电子、电气、信息类、机电、探测以及生物医学工程等学科的研究生和高年级本科生DSP课程教材,包括实验在内约有40~54学时;也可供从事DSP技术研究和开发的科技人员参考。
样章试读
目录
- 第二版前言
第一版前言
第1章 绪论
1.1 DSP的概念与主要特点
1.1.1 DSP的概念
1.1.2 DSP的主要特点
1.2 DSP芯片的发展及应用
1.2.1 DSP芯片的发展
1.2.2 DSP的分类
1.2.3 DSP的应用
1.3 TMS320系列DSP
1.3.1 TMS320系列DSP命名
1.3.2 TMS320系列概况
1.3.3 TMS320C2000系列
1.4 TMS320C28系列DSP性能简介
1.4.1 TMS320C28系列DSP的结构及性能
1.4.2 TMS320F281的引脚分布及引脚功能
1.5 微处理器结构特点及学习方法
1.5.1 微处理器结构特点及学习目的
1.5.2 微处理器学习方法
1.5.3 TMS320C28的片内外设学习指导
参考文献
第2章 F2812的总体结构、最小系统及程序开发
2.1 F2812的总体结构
2.2 F2812的最小系统
2.3 F2812的软件开发工具
2.4 F2812的汇编语言编程基础
2.4.1 COFF文件与汇编器指令
2.4.2 链接器与链接命令文件
2.5 F2812的C语言编程及运行时环境
2.5.1 C语言数据类型
2.5.2 C语言关键词
2.5.3 C语言编程头文件
2.5.4 预编译器指令
2.5.5 C/C++编译器默认的段和段的分配
2.6 F2812的C语言编程工程模板
2.6.1 工程模板的头文件(*.h)
2.6.2 工程模板的源文件(*.c,*.asm)和库文件(*.lib)
2.6.3 工程模板的链接器命令文件(*.cmd)
2.6.4 使用静态库缩短工程编译时间
2.6.5 编程举例
参考文献
第3章 C28×的CPU、存储器配置以及上电引导
3.1 TMS320C28×的CPU
3.1.1 CPU的结构
3.1.2 CPU的寄存器
3.2 F2812的存储器配置
3.2.1 F2812的片内存储器配置
3.2.2 外部存储器扩展和中断向量表
3.3 F2812的上电引导
3.3.1 Boot ROM简介
3.3.2 引导加载程序的工作流程
3.3.3 退出ExitBoot函数至执行main函数之间系统的动作
参考文献
第4章 C28×CPU寻址方式
4.1 寻址方式
4.2 寻址方式选择位(AMODE)
4.2.1 AMODE对指令操作码的影响
4.2.2 汇编器/编译器对AMODE位的跟踪
4.3 直接寻址方式
4.4 堆栈寻址方式
4.5 间接寻址方式
4.5.1 C28×间接寻址方式
4.5.2 C2xLP间接寻址方式
4.5.3 循环间接寻址方式
4.6 寄存器寻址方式
4.6.1 32位寄存器寻址方式
4.6.2 16位寄存器寻址方式
4.7 数据/程序/IO空间立即寻址方式
4.8 程序空间间接寻址方式
4.9 字节寻址方式与32位操作数的定位
4.9.1 字节寻址方式
4.9.2 32位操作数的定位
4.10 C240×与C28×指令系统的区别
参考文献
第5章 F2812的系统控制单元及中断机制
5.1 F2812的时钟和系统控制单元概述
5.2 F2812的振荡器OSC和锁相环PLL时钟模块
5.3 F2812的低功耗方式模块
5.4 F2812的看门狗模块
5.5 F2812的中断机制
5.5.1 TMS320F2812中断功能的硬件结构
5.5.2 PIE模块工作原理及CPU对可屏蔽中断的响应流程
5.5.3 PIE中断优先级
5.5.4 不可屏蔽中断
5.5.5 外部中断XINT1、XINT2和XNMI_XINT13
5.5.6 中断向量表
5.5.7 PIE模块的配置和控制寄存器
5.5.8 在工程模板中对PIE向量表的定义和使用
5.5.9 中断的应用举例
参考文献
第6章 C28×的CPU定时器、GPIO及外部存储器扩展
6.1 C28的CPU定时器结构和工作原理
6.2 F2812的GPIO
6.2.1 GPIO的结构和多路选择器寄存器
6.2.2 GPIO的数据寄存器
6.3 F2812的外部存储器扩展接口(XINTF)
参考文献
第7章 模数转换器(ADC)
7.1 ADC模块的特点
7.2 ADC模块排序器工作原理
7.2.1 级联模式下排序器的工作原理
7.2.2 双排序器模式的工作原理
7.2.3 排序器的输入触发和中断操作
7.3 ADC模块的时钟
7.4 ADC模块的低功耗模式和加电顺序
7.5 ADC模块的寄存器
参考文献
第8章 事件管理模块(EV)
8.1 EV功能概述
8.2 通用定时器
8.2.1 通用定时器功能
8.2.2 通用定时器计数模式
8.2.3 通用定时器比较操作
8.3 全比较单元
8.3.1 与比较单元相关的PWM电路
8.3.2 可编程死区单元与输出逻辑
8.3.3 全比较单元的PWM输出
8.3.4 空间矢量PWM(SVPWM)的原理与实现
8.3.5 全比较单元寄存器
8.4 捕获单元和正交编码
8.4.1 捕获单元概述
8.4.2 正交编码脉冲电路
8.5 EV中断逻辑
8.5.1 EV中断概述
8.5.2 EV中断寄存器
参考文献
第9章 串行通信接口
9.1 F281SCI模块介绍
9.1.1 SCI与CPU的通信及功能
9.1.2 波特率计算
9.1.3 数据格式(帧格式)
9.1.4 SCI的数据接收与同步
9.1.5 SCI接收和发送时序及中断
9.2 SCI多处理器通信
9.2.1 识别地址字节及接收过程
9.2.2 空闲线多处理器模式
9.2.3 地址位多处理器模式
9.3 C28系列SCI增强的功能
9.3.1 接收/发送FIFO的特点
9.3.2 SCI自动波特率检测
9.4 SCI的寄存器
9.5 SCI应用实例——PC机与DSP串行通信
9.5.1 硬件设计
9.5.2 软件设计
参考文献
第10章 串行外围接口
10.1 F281×SPI模块介绍
10.1.1 SPI与CPU的通信及功能
10.1.2 SPI的主从模式
10.1.3 SPI数据传送及数据格式
10.1.4 波特率和时钟
10.2 SPI的FIFO和中断
10.3 SPI的寄存器
10.4 SPI应用实例
10.4.1 硬件设计
10.4.2 软件设计
参考文献
第11章 多通道缓冲串行口(McBSP)
11.1 McBSP模块介绍
11.1.1 McBSP的主要特点
11.1.2 McBSP功能框图
11.1.3 McBSP的数据传输
11.1.4 数据压缩与解压
11.1.5 时序和数据帧
11.1.6 帧分段
11.1.7 McBSP的接收和发送
11.2 McBSP内部时钟发生器
11.2.1 时钟源与极性配置
11.2.2 输出时钟CLKG的频率及同步
11.2.3 帧同步信号产生
11.2.4 时钟发生器输出和外部时钟的同步
11.2.5 时钟发生器的复位和初始化
11.2.6 时钟发生器产生时钟举例
11.3 McBSP的意外/出错情况
11.4 多通道选择模式
11.4.1 通道、模块和分区
11.4.2 A-bis模式
11.4.3 SPI协议
11.5 配置接收器和发送器
11.5.1 接收器配置
11.5.2 发送器配置
11.6 McBSP的仿真和复位事项
11.6.1 McBSP的仿真模式
11.6.2 McBSP复位
11.6.3 初始化McBSP串口
11.6.4 数据打包实例
11.7 McBSP的FIFO和中断
11.7.1 McBSP的FIFO概述
11.7.2 McBSP的FIFO操作
11.7.3 McBSP中断的产生
11.7.4 McBSPFIFO数据寄存器访问约束和错误标志
11.8 McBSP寄存器
11.9 McBSP应用实例
参考文献
第12章 增强型控制器区域网(eCAN)
12.1 CAN总线简介
12.1.1 CAN总线特点
12.1.2 CAN总线帧格式
12.2 C28×系列的eCAN介绍
12.2.1 eCAN的特点
12.2.2 eCAN的结构与接口
12.2.3 eCAN寄存器及存储器映射
12.2.4 消息邮箱
12.3 eCAN配置
12.3.1 eCAN初始化
12.3.2 eCAN的配置步骤
12.3.3 远程帧邮箱的处理
12.3.4 eCAN中断
12.3.5 eCAN掉电模式
12.4 eCAN应用实例
参考文献
第13章 F2812的片内Flash与IQmath库的应用
13.1 F2812的片内Flash
13.1.1 F2812片内Flash的结构特点
13.1.2 F2812片内Flash的配置寄存器
13.1.3 F2812片内Flash配置寄存器的访问方法和限制
13.2 F2812的代码安全模块(CSM)
13.2.1 CSM的密码保护机制
13.2.2 CSM的加密和解密流程
13.3 F2812片内Flash的配置和应用实例
13.4 F2812程序开发中IQmath库的应用
13.4.1 Q表示法与IQmath库的组成
13.4.2 IQmath库的使用
13.4.3 IQmath库的函数列表
13.4.4 使用IQmath库实现SVPWM
参考文献
第14章 现代DSP软件设计方法和简单应用
14.1 Matlab与DSP工具简介
14.2 基于Matlab的DSP设计步骤
14.3 现代DSP软件设计生成的Project工程简介
14.3.1 Project工程文件和运行
14.3.2 现代DSP设计与传统编程方法所形成的工程比较
参考文献
第15章 TMS320F2812代码调试工具(CCS)教程
15.1 CCS的特点
15.2 CCS v3.3的安装和设置
15.2.1 CCS的Simulator模式的设置
15.2.2 CCS的Emulator模式的设置
15.3 实验系统的硬件连接和CCS的启动
15.4 CCS应用程序功能描述
15.4.1 CCS的工作界面介绍
15.4.2 CCS的常用调试工具
15.4.3 CCS的主菜单
基础实验
实验1 简单输出设备LED实验
实验2 基于F2812的数据采集和波形发生实验
实验3 基于F2812的人机交互接口设计
参考文献
综合实验
实验4 基于F2812的无刷直流电机控制
实验5 基于F2812的USB2.0总线设备开发
实验6 基于F2812和嵌入式操作系统的以太网接口开发
参考文献
附录
附录1 eZdspTMF2812实验系统介绍
附录2 eZdspTMF2808实验系统介绍