第1章 绪论 1
1.1 DSP系统及其特点 2
1.2 数字信号处理器 3
1.2.1 数字信号处理器的发展 3
1.2.2 数字信号处理器的结构特点 7
1.2.3 DSP与MPU、MCU、ARM、FPGA的区别 13
1.2.4 数字信号处理器的评价及选型 16
1.3 以DSP为基础的数字控制系统 19
1.3.1 控制系统介绍 19
1.3.2 数字控制系统 21
1.3.3 数字控制系统的设计 24
第2章 TMS320x2833x处理器结构 25
2.1 TMS320x28xxx系列处理器CPU基本结构 26
2.1.1 C28xxx定点处理器 27
2.1.2 C28x浮点处理器 29
2.2 CPU寄存器及寻址模式 31
2.2.1 CPU寄存器 31
2.2.2 常用寻址模式 38
2.3 程序的基本操作 52
2.3.1 乘法 52
2.3.2 移位操作 53
2.3.3 分支跳转及返回 53
2.3.4 单指令重复执行 54
2.4 TMS320x28xxx系列处理器功能概述 54
2.4.1 TMS320x2833x CPU 54
2.4.2 存储器 56
2.4.3 通用目的I/O(GPIO) 61
2.4.4 中断 62
2.4.5 控制外设 64
2.4.6 模/数转换模块 66
2.4.7 SPI外设接口 67
2.4.8 SCI通信接口 67
2.4.9 CAN总线通信模块 68
2.4.10 看门狗 68
2.4.11 PLL时钟模块 69
2.4.12 多通道缓冲串口 70
2.4.13 外部中断接口 70
2.4.14 存储器及其接口 72
2.4.15 内部集成电路(I2C) 73
2.4.16 直接存储器访问(DMA) 74
2.5 TMS320x28xxx系列处理器信号功能 74
第3章 Code Composer Studio集成开发环境 80
3.1 Eclipse的基本概念 83
3.2 CCS v5.4安装及配置 86
3.3 CCS 5.5应用基础 89
3.3.1 导入已有工程 89
3.3.2 Step-by-Step创建新工程 94
3.3.3 利用CCS v5.5调试工程 99
3.4 CSS v5.5高级应用 105
3.4.1 编辑源程序 106
3.4.2 查看和编辑代码 107
3.4.3 书签的使用 107
3.4.4 程序运行控制 109
3.4.5 断点设置 110
3.4.6 探针使用 117
3.4.7 观察窗口 121
3.4.8 实时调试 128
3.5 分析和调整 129
3.5.1 应用代码分析 130
3.5.2 应用代码优化 131
第4章 C/C++程序编写基础 132
4.1 C/C++编辑器概述 132
4.1.1 C/C++语言的主要特征 133
4.1.2 输出文件 133
4.1.3 编译器接口 133
4.1.4 编译器操作 135
4.1.5 编译器工具 136
4.2 TMS320x28xx的C/C++编程 137
4.2.1 概述 137
4.2.2 传统的宏定义方法 137
4.2.3 位定义和寄存器文件结构方法 140
4.2.4 位区和寄存器文件结构体的优点 147
4.2.5 使用位区的代码大小及执行效率 148
4.3 C/C++程序开发及实例 152
4.3.1 嵌入式系统软件结构 152
4.3.2 C程序开发方法 158
4.4 C/C++语言与汇编混合编程 166
第5章 DSP应用系统设计基础 177
5.1 DSP应用系统设计方法 177
5.1.1 系统的需求分析 177
5.1.2 系统的基本结构 178
5.1.3 DSP系统开发 179
5.2 DSP硬件设计 183
5.2.1 TMS320F28335处理器结构和功能 184
5.2.2 通用控制板硬件设计 199
5.3 系统硬件测试 218
5.3.1 硬件调试 218
5.3.2 底层驱动测试 219
第6章 中断系统及其应用 222
6.1 C28x处理器中断概述 222
6.2 PIE中断扩展 223
6.2.1 外设级中断 223
6.2.2 PIE级中断 223
6.2.3 CPU级中断 226
6.3 中断向量 226
6.3.1 中断向量的分配 226
6.3.2 中断向量的映射方式 227
6.4 中断源 230
6.4.1 复用中断处理过程 231
6.4.2 使能和禁止外设复用中断过程 233
6.4.3 从外设到CPU的复用中断请求流程 234
6.5 可屏蔽中断处理 235
6.5.1 中断标志设置(产生中断) 235
6.5.2 中断使能(单独使能中断) 236
6.5.3 全局使能(全局使能中断) 236
6.6 定时器中断应用举例 237
6.6.1 定时器基本操作 237
6.6.2 定时器寄存器 238
6.7 定时器中断应用举例 241
第7章 串行扩展总线接口及其应用 246
7.1 SPI接口 246
7.1.1 SPI模块功能概述 247
7.1.2 SPI的基本操作 249
7.1.3 SPI寄存器 255
7.1.4 应用实例 267
7.2 I2C总线接口 274
7.2.1 TMS320c28xxx处理器I2C总线 275
7.2.2 I2C总线操作 278
7.2.3 I2C总线应用举例 282
第8章 SCI总线接口及其应用 306
8.1 SCI接口特点 306
8.2 SCI数据格式 309
8.2.1 通信模式中的接收器信号 310
8.2.2 通信模式中的发送器信号 311
8.3 SCI增强功能 312
8.3.1 SCI的16级FIFO缓冲 312
8.3.2 SCI自动波特率检测 314
8.3.3 多处理器通信 315
8.4 SCI接口应用 318
8.4.1 硬件设计 318
8.4.2 SCI寄存器 319
8.4.3 SCI数据传输 327
第9章 eCAN总线及其应用 342
9.1 CAN总线概述 343
9.1.1 CAN总线特点 343
9.1.2 CAN总线数据格式 343
9.1.3 CAN总线的协议 346
9.2 C28x的eCAN模块介绍 351
9.2.1 eCAN总线模块概述 351
9.2.2 eCAN总线模块特点 352
9.3 eCAN总线模块的使用 355
9.3.1 eCAN模块初始化 355
9.3.2 消息发送 373
9.3.3 消息接收 378
9.3.4 过载情况的处理 385
9.3.5 远程帧邮箱的处理 386
9.3.6 CAN模块中断及其应用 388
9.3.7 eCAN模块定时器管理 399
9.3.8 CAN模块的掉电模式 402
9.4 CAN总线应用举例 403
9.4.1 消息发送例程 405
9.4.2 消息接收例程 410
第10章 增强正交编码脉冲模块 413
10.1 增强正交编码脉冲模块概述 413
10.1.1 eQEP输入 415
10.1.2 功能描述 416
10.1.3 eQEP存储器映射 416
10.2 正交编码单元(QDU) 418
10.2.1 位置计数输入模式 418
10.2.2 eQEP输入极性选择 421
10.2.3 位置比较同步输出 422
10.3 位置计数器和控制单元(PCCU) 422
10.3.1 位置计数操作模式 422
10.3.2 位置计数锁存 424
10.3.3 位置事件初始化 425
10.3.4 eQEP位置比较单元 427
10.4 eQEP边沿捕捉单元 429
10.5 eQEP看门狗 431
10.6 定时器基准 432
10.7 eQEP中断结构 432
10.8 eQEP应用举例 433
10.8.1 转子位置的测量 433
10.8.2 电机转速的测量 434
10.8.3 应用程序实例 434
第11章 ePWM模块 439
11.1 ePWM模块概述 439
11.1.1 ePWM模块介绍 439
11.1.2 ePWM模块内部连接关系 441
11.2 ePWM内部功能及使用方法 442
11.2.1 ePWM子模块 442
11.2.2 时间基准(TB)子模块 446
11.2.3 计数比较子模块 455
11.2.4 动作限定(AQ)子模块 459
11.2.5 死区控制子模块 470
11.2.6 PWM断路器子模块 474
11.2.7 错误控制子模块 477
11.2.8 事件触发(ET)子模块 482
11.3 ePWM模块寄存器映射 486
11.4 高精度脉宽调制模块(HRPWM) 488
11.4.1 概述 488
11.4.2 HRPWM的操作 489
11.5 PWM实现数/模转换应用举例 499
第12章 增强捕捉单元模块 504
12.1 增强捕捉单元模块概述 504
12.1.1 功能描述 504
12.1.2 捕捉单元和APWM操作模式 505
12.2 捕捉操作 506
12.2.1 事件预定标器 506
12.2.2 连续/One-Shot控制 508
12.2.3 32位计数器和相位控制 509
12.2.4 CAP1~CAP4寄存器 509
12.2.5 中断控制 510
12.2.6 双映射装载和控制 510
12.2.7 APWM操作模式 511
12.3 eCAP模块应用 513
12.3.1 上升沿触发绝对时间标签操作 514
12.3.2 上升下降沿触发绝对时间标签操作 515
12.3.3 上升沿触发时间间隔操作 517
12.3.4 上升下降沿触发时间差间隔操作 518
12.4 APWM模式 520
12.4.1 单通道PWM产生(独立通道控制) 520
12.4.2 同步多通道PWM产生控制 521
12.4.3 带相位控制功能的多通道PWM产生操作 523
第13章 模/数转换单元 526
13.1 模/数转换单元概述 526
13.2 排序器操作 529
13.2.1 排序器操作方式 530
13.2.2 排序器的启动/停止模式 541
13.2.3 输入触发源 543
13.2.4 排序转换的中断操作 544
13.3 ADC的时钟控制 545
13.4 ADC参考电压及校准 546
13.4.1 ADC模块参考电压 546
13.4.2 ADC偏移误差校准 547
13.5 ADC单元寄存器 548
13.5.1 ADC模块控制寄存器1(ADCTRL1) 548
13.5.2 ADC模块控制寄存器2(ADCTRL2) 549
13.5.3 ADC模块控制寄存器3(ADCTRL3) 552
13.5.4 最大转换通道寄存器(MAXCONV) 553
13.5.5 自动排序状态寄存器(AUTO_SEQ_SR) 555
13.5.6 ADC状态和标志寄存器(ADC_ST_FLG) 556
13.5.7 ADC输入通道选择排序控制寄存器 558
13.5.8 ADC转换结果缓冲寄存器(RESULTn) 558
13.6 ADC应用举例 559
第14章 固化函数及Boot引导模式 562
14.1 固化ROM功能介绍 562
14.2 Flash及其应用 565
14.2.1 Flash存储器寻址空间分配 566
14.2.2 C28x启动顺序 566
14.2.3 Flash初始化 568
14.2.4 Flash编程 570
14.2.5 Flash程序二次引导 579
14.3 其他引导方式 585
14.3.1 处理器引导配置 585
14.3.2 Boot Loader数据流 586
14.3.3 Boot Loader传输流程 588
14.3.4 初始引导汇编函数 589
14.3.5 SCI引导装载 590
14.3.6 并行GPIO装载 591
14.3.7 SPI引导模式 593
14.3.8 eCAN引导装载 594
参考文献 597