第1章 如何开始DSP的学习和开发 1
1.1 DSP基础知识 1
1.1.1什么是DSP 1
1.1.2 DSP的特点 2
1.1.3 DSP与MCU、ARM、FPGA的区别 2
1.1.4学习开发DSP所需要的知识 3
1.2如何选择DSP 4
1.2.1 DSP厂商介绍 4
1.2.2 TI公司各个系列DSP的特点 5
1.2.3 TI DSP具体型号的含义 7
1.2.4 C2000系列DSP选型指南 7
1.3 DSP开发所需要准备的工具以及开发平台的搭建 9
1.3.1 CCS的版本 10
1.3.2 CCS6的安装 10
1.3.3基于HDSP-Super2812开发平台的搭建 14
1.4如何学好DSP 15
1.4.1众多工程师的讨论和经验 15
1.4.2作者的建议 22
1.5 C2000助手软件介绍 24
第2章 TMS320X2812的结构、资源及性能 25
2.1 TMS320X2812的片内资源 25
2.1.1 TMS320X2812的性能 27
2.1.2 TMS320X2812的片内外设 28
2.2 TMS320X2812的引脚分布及引脚功能 30
2.2.1 TMS320X2812的引脚分布 30
2.2.2 TMS320X2812的引脚功能 31
第3章 TMS320X281x的硬件设计 40
3.1如何保证X2812系统的正常工作 40
3.2常用硬件电路的设计 41
3.2.1 TMS320X2812最小系统设计 41
3.2.2电源电路的设计 41
3.2.3复位电路及JATG下载口电路的设计 41
3.2.4外扩RAM的设计 42
3.2.5外扩Flash的设计 44
3.2.6 PWM电路的设计 45
3.2.7串口电路的设计 45
3.2.8 A/D保护及校正电路的设计 46
3.2.9 CAN电路的设计 47
3.3 D/A电路的设计以及波形发生器的实现 48
第4章 创建一个新工程 50
4.1控制原理分析 50
4.2创建工程 51
4.3编译与调试 62
4.3.1编译工程 62
4.3.2下载程序 64
第5章 CCS的常用操作 69
5.1导入CCS工程 69
5.2移除工程 74
5.3查找变量 75
5.4观察变量 75
5.5观察内存 79
5.6 Graph功能 80
第6章 使用C语言操作DSP的寄存器 83
6.1寄存器的C语言访问 83
6.1.1了解SCI的寄存器 83
6.1.2使用位定义的方法定义寄存器 85
6.1.3声明共同体 87
6.1.4创建结构体文件 88
6.2寄存器文件的空间分配 90
第7章 存储器的结构、映像及CMD文件的编写 93
7.1存储器相关的总线知识 93
7.2 F2812的存储器 95
7.2.1 F2812存储器的结构 95
7.2.2 F2812存储器映像 95
7.2.3 F2812的各个存储器模块的特点 99
7.3 CMD文件 102
7.3.1 COFF格式和段的概念 102
7.3.2 C语言生成的段 103
7.3.3 CMD文件的编写 105
7.4外部接口XINTF 111
7.4.1 XINTF的存储区域 112
7.4.2 XINT F的时钟 115
7.5手把手教你访问外部存储器 115
7.5.1外部RAM空间数据读/写 116
7.5.2外部Flash空间数据读/写 119
第8章 X281x的时钟和系统控制 128
8.1振荡器OSC和锁相环PLL 128
8.2 X2812中各种时钟信号的产生 129
8.3看门狗电路 130
8.4低功耗模式 132
8.5时钟和系统控制模块的寄存器 132
8.6手把手教你写系统初始化函数 137
第9章 通用输入/输出多路复用器GPIO 140
9.1 GPIO多路复用器 140
9.1.1 GPIO的寄存器 140
9.1.2 GPIO寄存器位与I/O引脚的对应关系 145
9.2手把手教你使用GPIO引脚控制LED灯闪烁 149
第10章 CPU定时器 154
10.1 CPU定时器工作原理 154
10.2 CPU定时器寄存器 156
10.3分析CPU定时器的配置函数 159
第11章 X2812的中断系统 162
11.1什么是中断 162
11.2 X2812的CPU中断 163
11.2.1 CPU中断的概述 163
11.2.2 CPU中断向量和优先级 164
11.2.3 CPU中断的寄存器 166
11.2.4可屏蔽中断的响应过程 168
11.3 X2812的PIE中断 169
11.3.1 PIE中断概述 170
11.3.2 PIE中断寄存器 171
11.3.3 PIE中断向量表 174
11.4 X281x的三级中断系统分析 179
11.5成功实现中断的必要步骤 182
11.6手把手教你使用CPU定时器0的周期中断来控制IED灯的闪烁 184
第12章 事件管理器EV 189
12.1事件管理器的功能 189
12.2通用定时器 192
12.2.1通用定时器的时钟 194
12.2.2通用定时器的计数模式 195
12.2.3通用定时器的中断事件 198
12.2.4通用定时器的同步 199
12.2.5通用定时器的比较操作和PWM波 200
12.2.6通用定时器的寄存器 203
12.3比较单元与PWM电路 208
12.3.1全比较单元 209
12.3.2带有死区控制的PWM电路 210
12.3.3比较单元的中断事件 213
12.3.4比较单元的寄存器 213
12.4捕获单元 219
12.4.1捕获单元的结构 220
12.4.2捕获单元的操作 220
12.4.3捕获单元的中断事件 222
12.4.4捕获单元的寄存器 223
12.5正交编码电路 226
12.6事件管理器的中断及其寄存器 229
12.7手把手教你产生PWM波形 236
12.7.1输出占空比固定的PWM波形 236
12.7.2输出占空比可变的PWM波形 242
第13章 模/数转换器ADC 247
13.1 X281x内部的ADC模块 247
13.1.1 ADC模块的特点 249
13.1.2 ADC的时钟频率和采样频率 251
13.2 ADC模块的工作方式 253
13.2.1双序列发生器模式下顺序采样 255
13.2.2双序列发生器模式下并发采样 258
13.2.3级联模式下的顺序采样 260
13.2.4级联模式下的并发采样 263
13.2.5序列发生器连续自动序列化模式和启动/停止模式 264
13.3 ADC模块的中断 265
13.4 ADC模块的寄存器 268
13.5手把手教你写ADC采样程序 276
13.6 ADC模块采样校正技术 280
13.6.1 ADC校正的原理 281
13.6.2 ADC校正的措施 282
13.6.3手把手教你写ADC校正的软件算法 283
第14章 串行通信接口SCI 291
14.1 SCI模块的概述 291
14.1.1 SCI模块的特点 292
14.1.2 SCI模块信号总结 293
14.2 SCI模块的工作原理 293
14.2.1 SCI模块发送和接收数据的工作原理 294
14.2.2 SCI通信的数据格式 295
14.2.3 SCI通信的波特率 296
14.2.4 SCI模块的FIFO队列 297
14.2.5 SCI模块的中断 298
14.3 SCI多处理器通信模式 300
14.3.1地址位多处理器通信模式 301
14.3.2空闲线多处理器通信模式 301
14.4 SCI模块的寄存器 302
14.5手把手教你写SCI发送和接收程序 312
14.5.1查询方式实现数据的发送和接收 313
14.5.2中断方式实现数据的发送和接收 319
14.5.3采用FIFO来实现数据的发送和接收 324
第15章 串行外设接口SPI 331
15.1 SPI模块的通用知识 331
15.2 X281 x SPI模块的概述 333
15.2.1 SPI模块的特点 334
15.2.2 SPI的信号总结 334
15.3 SPI模块的工作原理 335
15.3.1 SPI主从工作方式 336
15.3.2 SPI数据格式 338
15.3.3 SPI波特率 339
15.3.4 SPI时钟配置 340
15.3.5 SPI的FIFO队列 341
15.3.6 SPI的中断 342
15.4 SPI模块的寄存器 343
15.5手把手教你写SPI通信程序 351
第16章 增强型控制器局域网通信接口eCAN 357
16.1 CAN总线的概述 357
16.1.1什么是CAN 357
16.1.2 CAN是怎样发展起来的 358
16.1.3 CAN是怎样工作的 358
16.1.4 CAN有哪些特点 359
16.1.5什么是标准格式CAN和扩展格式CAN 360
16.2 CAN2.0B协议 360
16.2.1 CAN总线帧的格式和类型 360
16.2.2 CAN总线通信错误处理 366
16.2.3 CAN总线的位定时要求 367
16.2.4 CAN总线的位仲裁 368
16.3 X281 x eCAN模块的概述 369
16.3.1 eCAN模块的结构 369
16.3.2 eCAN模块的特点 371
16.3.3 eCAN模块的存储空间 371
16.3.4 eCAN模块的邮箱 372
16.4 X281 x eCAN模块的寄存器 375
16.5 X281 x eCAN模块的配置 390
16.5.1波特率的配置 390
16.5.2邮箱初始化的配置 391
16.5.3消息的发送操作 393
16.5.4消息的接收操作 393
16.6 eCAN模块的中断 395
16.7手把手教你实现CAN通信 398
16.7.1手把手教你实现CAN消息的发送 398
16.7.2手把手教你实现CAN消息的接收(中断方式) 403
第17章 基于HDSP-Super2812的开发实例 407
17.1谈谈通常项目的开发过程 407
17.2设计一个有趣的时钟日期程序 408
17.2.1硬件设计 409
17.2.2软件设计(含I2C接口程序) 409
17.3设计一个SPWM程序 420
17.3.1原理分析 420
17.3.2软件设计 422
17.4代码烧写入Flash固化 426
参考文献 429