《手把手教你学系列丛书 手把手教你学DSP 基于TMS320X281x》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:顾卫钢编著
  • 出 版 社:北京:北京航空航天大学出版社
  • 出版年份:2015
  • ISBN:9787512418158
  • 页数:473 页
图书介绍:本书以TMS320X281x DSP的开发为主线,采用生动的语言深入浅出地介绍与DSP开发相关的方方面面,包括DSP开发环境的搭建、新工程的建立、CCS3.3的使用、GEL文件与CMD文件的编写、硬件电路的设计、存储器的映像、三级中断系统以及TMS320X281x的各个外设模块的功能和使用。每部分内容都结合应用实例,手把手地讲解例程的编写过程,所有代码都标注有详细的中文注释,为读者快速熟悉并掌握DSP的开发方法和技巧提供了方便。本书为再版书,相比第一版,本书是更新CCS章节和一些细节之处。

第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具体型号的含义 6

1.2.4 C2000系列DSP选型指南 7

1.3 DSP开发所需要准备的工具以及开发平台的搭建 9

1.3.1 CCS的版本 10

1.3.2 CCS3.3 的安装 10

1.3.3 仿真器的安装 15

1.3.4 Setup Code Composer Studio v3.3 的配置 23

1.3.5 基于HDSP-Super2812开发平台的搭建 25

1.4 如何学好DSP 26

1.4.1 众多工程师的讨论和经验 27

1.4.2 作者的建议 33

1.5 C2000助手软件介绍 34

第2章 TMS320X2812的结构、资源及性能 36

2.1 TMS320X2812的片内资源 36

2.1.1 TMS320X2812的性能 38

2.1.2 TMS320X2812的片内外设 39

2.2 TMS320X2812的引脚分布及引脚功能 41

2.2.1 TMS320X2812的引脚分布 41

2.2.2 TMS320X2812的引脚功能 42

第3章 TMS320X281x的硬件设计 51

3.1 如何保证X2812系统的正常工作 51

3.2 常用硬件电路的设计 52

3.2.1 TMS320X2812最小系统设计 52

3.2.2 电源电路的设计 52

3.2.3 复位电路及JATG下载口电路的设计 52

3.2.4 外扩RAM的设计 53

3.2.5 外扩Flash的设计 55

3.2.6 PWM电路的设计 56

3.2.7 串口电路的设计 56

3.2.8 A/D保护及校正电路的设计 57

3.2.9 CAN电路的设计 58

3.3 D/A电路的设计以及波形发生器的实现 59

第4章 如何构建一个完整的工程 61

4.1 一个完整的工程由哪些文件构成 61

4.1.1 头文件 63

4.1.2 库文件 67

4.1.3 源文件 69

4.1.4 CMD文件 69

4.2 通用扩展语言GEL 69

4.2.1 GEL语法 71

4.2.2 GEL函数 71

4.2.3 GEL语句 73

4.2.4 加载或卸载GEL函数 75

4.2.5 使用关键字在GEL菜单中添加GEL函数 76

4.2.6 CCS自带的GEL函数 79

4.2.7 解读c2812.gel文件 88

4.2.8 体验有趣的GEL函数 90

4.3 手把手教你创建新的工程 92

第5章 CCS3.3 的常用操作 97

5.1 了解CCS3.3 的布局和结构 97

5.2 编辑代码时的常用操作 98

5.2.1 创建新的工程 99

5.2.2 打开已存在的工程 100

5.2.3 新建一个文件 101

5.2.4 向工程添加文件 102

5.2.5 移除工程中的文件 103

5.2.6 给工程添加库文件 104

5.2.7 查找变量 105

5.2.8 替换变量 106

5.2.9 查看源码 107

5.3 编辑完成后常用的操作 107

5.3.1 生成可执行代码 107

5.3.2 链接目标板上的DSP 108

5.3.3 将可执行文件下载入DSP 109

5.3.4 运行、暂停程序 110

5.4 调试时常用的操作 111

5.4.1 添加、移除断点 111

5.4.2 单步调试 112

5.4.3 使用Watch Window观察变量 114

5.4.4 保存并导出变量的值 116

5.4.5 观察指定存储空间内的数据 118

5.4.6 统计代码的运行时间 119

5.4.7 在CCS3.3 中显示图形 121

第6章 使用C语言操作DSP的寄存器 127

6.1 寄存器的C语言访问 127

6.1.1 了解SCI的寄存器 127

6.1.2 使用位定义的方法定义寄存器 129

6.1.3 声明共同体 131

6.1.4 创建结构体文件 132

6.2 寄存器文件的空间分配 134

第7章 存储器的结构、映像及CMD文件的编写 137

7.1 存储器相关的总线知识 137

7.2 F2812的存储器 139

7.2.1 F2812存储器的结构 139

7.2.2 F2812存储器映像 139

7.2.3 F2812的各个存储器模块的特点 143

7.3 CMD文件 146

7.3.1 COFF格式和段的概念 146

7.3.2 C语言生成的段 147

7.3.3 CMD文件的编写 149

7.4 外部接口XINTF 155

7.4.1 XINTF的存储区域 156

7.4.2 XINTF的时钟 159

7.5 手把手教你访问外部存储器 159

7.5.1 外部RAM空间数据读/写 160

7.5.2 外部Flash空间数据读/写 163

第8章 X281x的时钟和系统控制 172

8.1 振荡器OSC和锁相环PLL 172

8.2 X2812中各种时钟信号的产生 173

8.3 看门狗电路 174

8.4 低功耗模式 176

8.5 时钟和系统控制模块的寄存器 176

8.6 手把手教你写系统初始化函数 181

第9章 通用输入/输出多路复用器GPIO 184

9.1 GPIO多路复用器 184

9.1.1 GPIO的寄存器 184

9.1.2 GPIO寄存器位与I/O引脚的对应关系 189

9.2 手把手教你使用GPIO引脚控制LED灯闪烁 193

第10章 CPU定时器 198

10.1 CPU定时器工作原理 198

10.2 CPU定时器寄存器 200

10.3 分析CPU定时器的配置函数 203

第11章 X2812的中断系统 206

11.1 什么是中断 206

11.2 X2812的CPU中断 207

11.2.1 CPU中断的概述 207

11.2.2 CPU中断向量和优先级 208

11.2.3 CPU中断的寄存器 210

11.2.4 可屏蔽中断的响应过程 212

11.3 X2812的PIE中断 213

11.3.1 PIE中断概述 214

11.3.2 PIE中断寄存器 215

11.3.3 PIE中断向量表 218

11.4 X281x的三级中断系统分析 223

11.5 成功实现中断的必要步骤 226

11.6 手把手教你使用CPU定时器0的周期中断来控制LED灯的闪烁 228

第12章 事件管理器EV 233

12.1 事件管理器的功能 233

12.2 通用定时器 236

12.2.1 通用定时器的时钟 238

12.2.2 通用定时器的计数模式 239

12.2.3 通用定时器的中断事件 242

12.2.4 通用定时器的同步 243

12.2.5 通用定时器的比较操作和PWM波 244

12.2.6 通用定时器的寄存器 247

12.3 比较单元与PWM电路 252

12.3.1 全比较单元 253

12.3.2 带有死区控制的PWM电路 254

12.3.3 比较单元的中断事件 257

12.3.4 比较单元的寄存器 257

12.4 捕获单元 263

12.4.1 捕获单元的结构 264

12.4.2 捕获单元的操作 264

12.4.3 捕获单元的中断事件 266

12.4.4 捕获单元的寄存器 267

12.5 正交编码电路 270

12.6 事件管理器的中断及其寄存器 273

12.7 手把手教你产生PWM波形 280

12.7.1 输出占空比固定的PWM波形 280

12.7.2 输出占空比可变的PWM波形 286

第13章 模/数转换器ADC 291

13.1 X281x内部的ADC模块 291

13.1.1 ADC模块的特点 293

13.1.2 ADC的时钟频率和采样频率 295

13.2 ADC模块的工作方式 297

13.2.1 双序列发生器模式下顺序采样 299

13.2.2 双序列发生器模式下并发采样 302

13.2.3 级联模式下的顺序采样 304

13.2.4 级联模式下的并发采样 307

13.2.5 序列发生器连续自动序列化模式和启动/停止模式 308

13.3 ADC模块的中断 309

13.4 ADC模块的寄存器 312

13.5 手把手教你写ADC采样程序 320

13.6 ADC模块采样校正技术 324

13.6.1 ADC校正的原理 325

13.6.2 ADC校正的措施 326

13.6.3 手把手教你写ADC校正的软件算法 327

第14章 串行通信接口SCI 335

14.1 SCI模块的概述 335

14.1.1 SCI模块的特点 336

14.1.2 SCI模块信号总结 337

14.2 SCI模块的工作原理 337

14.2.1 SCI模块发送和接收数据的工作原理 338

14.2.2 SCI通信的数据格式 339

14.2.3 SCI通信的波特率 340

14.2.4 SCI模块的FIFO队列 341

14.2.5 SCI模块的中断 342

14.3 SCI多处理器通信模式 344

14.3.1 地址位多处理器通信模式 345

14.3.2 空闲线多处理器通信模式 345

14.4 SCI模块的寄存器 346

14.5 手把手教你写SCI发送和接收程序 356

14.5.1 查询方式实现数据的发送和接收 357

14.5.2 中断方式实现数据的发送和接收 363

14.5.3 采用FIFO来实现数据的发送和接收 368

第15章 串行外设接口SPI 375

15.1 SPI模块的通用知识 375

15.2 X281x SPI模块的概述 377

15.2.1 SPI模块的特点 378

15.2.2 SPI的信号总结 378

15.3 SPI模块的工作原理 379

15.3.1 SPI主从工作方式 380

15.3.2 SPI数据格式 382

15.3.3 SPI波特率 383

15.3.4 SPI时钟配置 384

15.3.5 SPI的FIFO队列 385

15.3.6 SPI的中断 386

15.4 SPI模块的寄存器 387

15.5 手把手教你写SPI通信程序 395

第16章 增强型控制器局域网通信接口eCAN 401

16.1 CAN总线的概述 401

16.1.1 什么是CAN 401

16.1.2 CAN是怎样发展起来的 402

16.1.3 CAN是怎样工作的 402

16.1.4 CAN有哪些特点 403

16.1.5 什么是标准格式CAN和扩展格式CAN 404

16.2 CAN2.0B协议 404

16.2.1 CAN总线帧的格式和类型 404

16.2.2 CAN总线通信错误处理 410

16.2.3 CAN总线的位定时要求 411

16.2.4 CAN总线的位仲裁 412

16.3 X281x eCAN模块的概述 413

16.3.1 eCAN模块的结构 413

16.3.2 eCAN模块的特点 415

16.3.3 eCAN模块的存储空间 415

16.3.4 eCAN模块的邮箱 416

16.4 X281x eCAN模块的寄存器 419

16.5 X281x eCAN模块的配置 434

16.5.1 波特率的配置 434

16.5.2 邮箱初始化的配置 435

16.5.3 消息的发送操作 437

16.5.4 消息的接收操作 437

16.6 eCAN模块的中断 439

16.7 手把手教你实现CAN通信 442

16.7.1 手把手教你实现CAN消息的发送 442

16.7.2 手把手教你实现CAN消息的接收(中断方式) 447

第17章 基于HDSP-Super2812的开发实例 451

17.1 谈谈通常项目的开发过程 451

17.2 设计一个有趣的时钟日期程序 452

17.2.1 硬件设计 453

17.2.2 软件设计(含I2C接口程序) 453

17.3 设计一个SPWM程序 464

17.3.1 原理分析 464

17.3.2 软件设计 466

17.4 代码烧写入Flash固化 470

参考文献 473