第1章 绪论 1
1.1 DSP的概念与主要特点 1
1.1.1 DSP的概念 1
1.1.2 DSP的主要特点 1
1.2 DSP芯片的发展及应用 3
1.2.1 DSP芯片的发展 3
1.2.2 DSP的分类 5
1.2.3 DSP的应用 5
1.3 TMS320系列DSP 6
1.3.1 TMS320系列DSP命名 6
1.3.2 TMS320系列概况 6
1.3.3 TMS320C2000系列 7
1.4 TMS320C28×系列DSP性能简介 8
1.4.1 TMS320C28×系列DSP的结构及性能 8
1.4.2 TMS320F281×的引脚分布及引脚功能 12
1.5微处理器结构特点及学习方法 21
1.5.1微处理器结构特点及学习目的 22
1.5.2微处理器学习方法 23
1.5.3 TMS320C28×的片内外设学习指导 24
参考文献 25
第2章 F2812的总体结构、最小系统及程序开发 26
2.1 F2812的总体结构 26
2.2 F2812的最小系统 29
2.3 F2812的软件开发工具 31
2.4 F2812的汇编语言编程基础 36
2.4.1 COFF文件与汇编器指令 37
2.4.2链接器与链接命令文件 39
2.5 F2812的C语言编程及运行时环境 41
2.5.1 C语言数据类型 41
2.5.2 C语言关键词 42
2.5.3 C语言编程头文件 46
2.5.4预编译器指令 46
2.5.5 C/C++编译器默认的段和段的分配 49
2.6 F2812的C语言编程工程模板 50
2.6.1工程模板的头文件(*.h) 52
2.6.2工程模板的源文件(*.c,*.asm)和库文件(*.lib) 57
2.6.3工程模板的链接器命令文件(*.cmd) 59
2.6.4使用静态库缩短工程编译时间 61
2.6.5编程举例 61
参考文献 62
第3章 C28×的CPU、存储器配置以及上电引导 63
3.1 TMS320C28×的CPU 63
3.1.1 CPU的结构 63
3.1.2 CPU的寄存器 67
3.2 F2812的存储器配置 74
3.2.1 F2812的片内存储器配置 74
3.2.2外部存储器扩展和中断向量表 77
3.3 F2812的上电引导 78
3.3.1 Boot ROM简介 78
3.3.2引导加载程序的工作流程 80
3.3.3退出ExitBoot函数至执行main函数之间系统的动作 85
参考文献 87
第4章 C28×CPU寻址方式 88
4.1寻址方式 88
4.2寻址方式选择位(AMODE) 88
4.2.1 AMODE对指令操作码的影响 88
4.2.2汇编器/编译器对AMODE位的跟踪 89
4.3直接寻址方式 89
4.4堆栈寻址方式 90
4.5间接寻址方式 91
4.5.1 C28×间接寻址方式 91
4.5.2 C2xLP间接寻址方式 93
4.5.3循环间接寻址方式 95
4.6寄存器寻址方式 96
4.6.1 32位寄存器寻址方式 96
4.6.2 16位寄存器寻址方式 96
4.7数据/程序/IO空间立即寻址方式 96
4.8程序空间间接寻址方式 97
4.9字节寻址方式与32位操作数的定位 98
4.9.1字节寻址方式 98
4.9.2 32位操作数的定位 99
4.10 C240×与C28×指令系统的区别 99
参考文献 100
第5章 F2812的系统控制单元及中断机制 101
5.1 F2812的时钟和系统控制单元概述 101
5.2 F2812的振荡器OSC和锁相环PLL时钟模块 103
5.3 F2812的低功耗方式模块 106
5.4 F2812的看门狗模块 110
5.5 F2812的中断机制 112
5.5.1 TMS320F2812中断功能的硬件结构 113
5.5.2 PIE模块工作原理及CPU对可屏蔽中断的响应流程 114
5.5.3 PIE中断优先级 116
5.5.4不可屏蔽中断 118
5.5.5外部中断XINT1、XINT2和XNMI_XINT13 119
5.5.6中断向量表 120
5.5.7 PIE模块的配置和控制寄存器 122
5.5.8在工程模板中对PIE向量表的定义和使用 124
5.5.9中断的应用举例 128
参考文献 129
第6章 C28×的CPU定时器、GPIO及外部存储器扩展 130
6.1 C28×的CPU定时器结构和工作原理 130
6.2 F2812的GPIO 135
6.2.1 GPIO的结构和多路选择器寄存器 136
6.2.2 GPIO的数据寄存器 140
6.3 F2812的外部存储器扩展接口(XINTF) 142
参考文献 150
第7章 模数转换器(ADC) 151
7.1 ADC模块的特点 151
7.2 ADC模块排序器工作原理 153
7.2.1级联模式下排序器的工作原理 153
7.2.2双排序器模式的工作原理 155
7.2.3排序器的输入触发和中断操作 158
7.3 ADC模块的时钟 160
7.4 ADC模块的低功耗模式和加电顺序 160
7.5 ADC模块的寄存器 161
参考文献 167
第8章 事件管理模块(EV) 168
8.1 EV功能概述 168
8.2通用定时器 169
8.2.1通用定时器功能 170
8.2.2通用定时器计数模式 173
8.2.3通用定时器比较操作 175
8.3全比较单元 177
8.3.1与比较单元相关的PWM电路 177
8.3.2可编程死区单元与输出逻辑 178
8.3.3全比较单元的PWM输出 179
8.3.4空间矢量PWM(SVPWM)的原理与实现 180
8.3.5全比较单元寄存器 189
8.4捕获单元和正交编码 191
8.4.1捕获单元概述 191
8.4.2正交编码脉冲电路 194
8.5 EV中断逻辑 195
8.5.1 EV中断概述 195
8.5.2 EV中断寄存器 197
参考文献 198
第9章 串行通信接口 199
9.1 F281×SCI模块介绍 199
9.1.1 SCI与CPU的通信及功能 199
9.1.2波特率计算 201
9.1.3数据格式(帧格式) 201
9.1.4 SCI的数据接收与同步 202
9.1.5 SCI接收和发送时序及中断 202
9.2 SCI多处理器通信 204
9.2.1识别地址字节及接收过程 205
9.2.2空闲线多处理器模式 205
9.2.3地址位多处理器模式 206
9.3 C28×系列SCI增强的功能 207
9.3.1接收/发送FIFO的特点 207
9.3.2 SCI自动波特率检测 208
9.4 SCI的寄存器 208
9.5 SCI应用实例——PC机与DSP串行通信 215
9.5.1硬件设计 215
9.5.2软件设计 218
参考文献 221
第10章 串行外围接口 222
10.1 F281×SPI模块介绍 222
10.1.1 SPI与CPU的通信及功能 222
10.1.2 SPI的主从模式 224
10.1.3 SPI数据传送及数据格式 225
10.1.4波特率和时钟 226
10.2 SPI的FIFO和中断 230
10.3 SPI的寄存器 231
10.4 SPI应用实例 234
10.4.1硬件设计 235
10.4.2软件设计 235
参考文献 237
第11章 多通道缓冲串行口(McBSP) 239
11.1 McBSP模块介绍 239
11.1.1 McBSP的主要特点 239
11.1.2 McBSP功能框图 240
11.1.3 McBSP的数据传输 241
11.1.4数据压缩与解压 242
11.1.5时序和数据帧 243
11.1.6帧分段 245
11.1.7 McBSP的接收和发送 246
11.2 McBSP内部时钟发生器 248
11.2.1时钟源与极性配置 248
11.2.2输出时钟CLKG的频率及同步 249
11.2.3帧同步信号产生 249
11.2.4时钟发生器输出和外部时钟的同步 250
11.2.5时钟发生器的复位和初始化 251
11.2.6时钟发生器产生时钟举例 252
11.3 McBSP的意外/出错情况 253
11.4多通道选择模式 255
11.4.1通道、模块和分区 255
11.4.2 A-bis模式 259
11.4.3 SPI协议 260
11.5配置接收器和发送器 264
11.5.1接收器配置 264
11.5.2发送器配置 265
11.6 McBSP的仿真和复位事项 266
11.6.1 McBSP的仿真模式 266
11.6.2 McBSP复位 267
11.6.3初始化McBSP串口 268
11.6.4数据打包实例 268
11.7 McBSP的FIFO和中断 270
11.7.1 McBSP的FIO概述 270
11.7.2 McBSP的FIFO操作 271
11.7.3 McBSP中断的产生 272
11.7.4 McBSP FIFO数据寄存器访问约束和错误标志 273
11.8 McBSP寄存器 275
11.9 McBSP应用实例 279
参考文献 282
第12章 增强型控制器区域网(eCAN) 283
12.1 CAN总线简介 283
12.1.1 CAN总线特点 283
12.1.2 CAN总线帧格式 284
12.2 C28×系列的eCAN介绍 285
12.2.1 eCAN的特点 285
12.2.2 eCAN的结构与接口 285
12.2.3 eCAN寄存器及存储器映射 287
12.2.4消息邮箱 287
12.3 eCAN配置 290
12.3.1 eCAN初始化 290
12.3.2 eCAN的配置步骤 293
12.3.3远程帧邮箱的处理 295
12.3.4 eCAN中断 296
12.3.5 eCAN掉电模式 297
12.4 eCAN应用实例 298
参考文献 304
第13章 F2812的片内Flash与IQmath库的应用 306
13.1 F2812的片内Flash 306
13.1.1 F2812片内Flash的结构特点 306
13.1.2 F2812片内Flash的配置寄存器 308
13.1.3 F2812片内Flash配置寄存器的访问方法和限制 310
13.2 F2812的代码安全模块(CSM) 311
13.2.1 CSM的密码保护机制 311
13.2.2 CSM的加密和解密流程 313
13.3 F2812片内Flash的配置和应用实例 316
13.4 F2812程序开发中IQmath库的应用 321
13.4.1 Q表示法与IQmath库的组成 321
13.4.2 IQmath库的使用 322
13.4.3 IQmath库的函数列表 324
13.4.4使用IQmath库实现SVPWM 326
参考文献 328
第14章 现代DSP软件设计方法和简单应用 329
14.1 Matlab与DSP工具简介 329
14.2基于Matlab的DSP设计步骤 330
14.3现代DSP软件设计生成的Proj ect工程简介 333
14.3.1 Project工程文件和运行 333
14.3.2现代DSP设计与传统编程方法所形成的工程比较 334
参考文献 334
第15章 TMS320F2812代码调试工具(CCS)教程 335
15.1 CCS的特点 335
15.2 CCS v3.3的安装和设置 336
15.2.1 CCS的Simulator模式的设置 336
15.2.2 CCS的Emulator模式的设置 336
15.3实验系统的硬件连接和CCS的启动 338
15.4 CCS应用程序功能描述 338
15.4.1 CCS的工作界面介绍 338
15.4.2 CCS的常用调试工具 340
15.4.3 CCS的主菜单 340
基础实验 353
实验1 简单输出设备LED实验 353
实验2 基于F2812的数据采集和波形发生实验 356
实验3 基于F2812的人机交互接口设计 360
参考文献 364
综合实验 365
实验4 基于F2812的无刷直流电机控制 365
实验5 基于F2812的USB2.0总线设备开发 373
实验6 基于F2812和嵌入式操作系统的以太网接口开发 391
参考文献 402
附录 404
附录1 eZdspTM F2812实验系统介绍 404
附录2 eZdspTM F2808实验系统介绍 408