教程目的配套《手把手教你学DSP-基于TMS320X281x》配套HELLODSP生产的仿真器和开发板产品更容易更快的掌握DSP的开发概述全书内容讲解顺序第1章如何开始DSP的学习和开发1.1DSP基础知识1.2如何选择DSP1.3DSP开发所需要准备的工具以及开发平台的搭建1.4如何学好DSP1.3.1CCS的版本1.3.2CCS3.3的安装1.3.3仿真器的安装1.3.4SetupCodeComposerStudiov3.3的配置1.3.5基于HDSPSuper2812开发平台的搭建1.4.1众多工程师的讨论和经验1.4.2作者的建议1.2.1DSP厂商介绍1.2.2TI公司各个系列DSP的特点1.2.3TIDSP具体型号的含义1.2.4C2000系列DSP选型指南1.1.1什么是DSP1.1.2DSP的特点1.1.3DSP与MCU、ARM、FPGA的区别1.1.4学习开发DSP所需要的知识第2章TMS320X2812的结构、资源及性能2.1TMS320X2812的片内资源2.2TMS320X2812的引脚分布及引脚功能2.1.1TMS320X2812的性能2.1.2TMS320X2812的片内外设2.2.1TMS320X2812的引脚分布2.2.2TMS320X2812的引脚功能第3章TMS320X281x的硬件设计3.1如何保证X2812系统的正常工作3.2常用硬件电路的设计3.3D/A电路的设计以及波形发生器的实现3.2.1TMS320X2812最小系统设计3.2.2电源电路的设计3.2.3复位电路及JATG下载口电路的设计3.2.4外扩RAM的设计3.2.5外扩Flash的设计3.2.6PWM电路的设计3.2.7串口电路的设计3.2.8A/D保护及校正电路的设计3.2.9CAN电路的设计第4章如何构建一个完整的工程4.1一个完整的工程由哪些文件构成4.2通用扩展语言GEL4.3手把手教你创建新的工程4.1.1头文件4.1.2库文件4.1.3源文件4.1.4CMD文件4.2.1GEL语法4.2.2GEL函数4.2.3GEL语句4.2.4加载或卸载GEL函数4.2.5使用关键字在GEL菜单中添加GEL函数4.2.6CCS自带的GEL函数4.2.7解读c2812.gel文件4.2.8体验有趣的GEL函数第5章CCS3.3的常用操作5.1了解CCS3.3的布局和结构5.2编辑代码时的常用操作5.3编辑完成后常用的操作5.4调试时常用的操作5.2.1创建新的工程5.2.2打开已存在的工程5.2.3新建一个文件5.2.4向工程添加文件5.2.5移除工程中的文件5.2.6给工程添加库文件5.2.7查找变量5.2.8替换变量5.2.9查看源码5.3.1生成可执行代码5.3.2链接目标板上的DSP5.3.3将可执行文件下载入DSP5.3.4运行、暂停程序5.4.1添加、移除断点5.4.2单步调试5.4.3使用WatchWindow观察变量5.4.4保存并导出变量的值5.4.5观察指定存储空间内的数据5.4.6统计代码的运行时间5.4.7在CCS3.3中显示图形第6章使用C语言操作DSP的寄存器6.1寄存器的C语言访问6.2寄存器文件的空间分配6.1.1了解SCI的寄存器6.1.2使用位定义的方法定义寄存器6.1.3声明共同体6.1.4创建结构体文件第7章存储器的结构、映像及CMD文件的编写7.1存储器相关的总线知识7.2F2812的存储器7.3CMD文件7.4外部接口XINTF7.5手把手教你访问外部存储器7.2.1F2812存储器的结构7.2.2F2812存储器映像7.2.3F2812的各个存储器模块的特点7.3.1COFF格式和段的概念7.3.2C语言生成的段7.3.3CMD文件的编写7.4.1XINTF的存储区域7.4.2XINTF的时钟7.5.1外部RAM空间数据读/写7.5.2外部Flash空间数据读/写第8章X281x的时钟和系统控制8.1振荡器OSC和锁相环PLL8.2X2812中各种时钟信号的产生8.3看门狗电路8.4低功耗模式8.5时钟和系统控制模块的寄存器8.6手把手教你写系统初始化函数第9章通用输入/输出多路复用器GPIO9.1GPIO多路复用器9.2手把手教你使用GPIO引脚控制LED灯闪烁9.1.1GPIO的寄存器9.1.2GPIO寄存器位与I/O引脚的对应关系第10章CPU定时器10.1CPU定时器工作原理10.2CPU定时器寄存器10.3分析CPU定时器的配置函数第11章X2812的中断系统11.1什么是中断11.2X2812的CPU中断11.3X2812的PIE中断11.4X281x的三级中断系统分析11.5成功实现中断的必要步骤11.6手把手教你使用CPU定时器0的周期中断来控制LED灯的闪烁11.2.1CPU中断的概述11.2.2CPU中断向量和优先级11.2.3CPU中断的寄存器11.2.4可屏蔽中断的响应过程11.3.1PIE中断概述11.3.2PIE中断寄存器11.3.3PIE中断向量表第12章事件管理器EV12.1事件管理器的功能12.2通用定时器12.3比较单元与PWM电路12.4捕获单元12.5正交编码电路12.6事件管理器的中断及其寄存器12.7手把手教你产生PWM波形12.2.1通用定时器的时钟12.2.2通用定时器的计数模式12.2.3通用定时器的中断事件12.2.4通用定时器的同步12.2.5通用定时器的比较操作和PWM波12.2.6通用定时器的寄存器12.3.1全比较单元12.3.2带有死区控制的PWM电路12.3.3比较单元的中断事件12.3.4比较单元的寄存器12.4.1捕获单元的结构12.4.2捕获单元的操作12.4.3捕获单元的中断事件12.4.4捕获单元的寄存器12.7.1输出占空比固定的PWM波形12.7.2输出占空比可变的PWM波形第13章模/数转换器ADC13.1X281x内部的ADC模块13.2ADC模块的工作方式13.3ADC模块的中断13.4ADC模块的寄存器13.5手把手教你写ADC采样程序13.6ADC模块采样校正技术13.1.1ADC模块的特点13.1.2ADC的时钟频率和采样频率13.2.1双序列发生器模式下顺序采样13.2.2双序列发生器模式下并发采样13.2.3级联模式下的顺序采样13.2.4级联模式下的并发采样13.2.5序列发生器连续自动序列化模式和启动/停止模式13.6.1ADC校正的原理13.6.2ADC校正的措施13.6.3手把手教你写ADC校正的软件算法第14章串行通信接口SCI14.1SCI模块的概述14.2SCI模块的工作原理14.3SCI多处理器通信模式14.4SCI模块的寄存器14.5手把手教你写SCI发送和接收程序14.1.1SCI模块的特点14.1.2SCI模块信号总结14.2.1SCI模块发送和接收数据的工作原理14.2.2SCI通信的数据格式14.2.3SCI通信的波特率14.2.4SCI模块的FIFO队列14.2.5SCI模块的中断14.5.1查询方式实现数据的发送和接收14.5.2中断方式实现数据的发送和接收14.5.3采用FIFO来实现数据的发送和接收14.3.1地址位多处理器通信模式14.3.2空闲线多处理器通信模式第15章串行外设接口SPI15.1SPI模块的通用知识15.2X281xSPI模块的概述15.3SPI模块的工作原理15.4SPI模块的寄存器15.5手把手教你写SPI通信程序15.2.1SPI模块的特点15.2.2SPI的信号总结15.3.1SPI主从工作方式15.3.2SPI数据格式15.3.3SPI波特率15.3.4SPI时钟配置15.3.5SPI的FIFO队列15.3.6SPI的中断第16章增强型控制器局域网通信接口eCAN16.1CAN总线的概述16.2CAN2.0B协议16.3X281xeCAN模块的概述16.4X281xeCAN模块的寄存器16.5X281xeCAN模块的配置16.6eCAN模块的中断16.7手把手教你实现CAN通信16.1.1什么是CAN16.1.2CAN是怎样发展起来的16.1.3CAN是怎样工作的16.1.4CAN有哪些特点16.1.5什么是标准格式CAN和扩展格式CAN16.2.1CAN总线帧的格式和类型16.2.2CAN总线通信错误处理16.2.3CAN总线的位定时要求16.2.4CAN总线的位仲裁16.3.1eCAN模块的结构16.3.2eCAN模块的特点16.3.3eCAN模块的存储空间16.3.4eCAN模块的邮箱16.5.1波特率的配置16.5.2邮箱初始化的配置16.5.3消息的发送操作16.5.4消息的接收操作16.7.1手把手教你实现CAN消息的发送16.7.2手把手教你实现CAN消息的接收(中断方式)第17章基于HDSPSuper2812的开发实例17.1谈谈通常项目的开发过程17.2设计一个有趣的时钟日期程序17.3设计一个SPWM程序17.4代码烧写入Flash固化17.2.1硬件设计17.2.2软件设计(含I2C接口程序)17.3.1原理分析17.3.2软件设计第一次课主要内容及讲解顺序第一章如何开始DSP的学习和开发第二章TMS320X2812的结构、资源和性能第九章通用输入/输出多路复用器GPIO第三章TMS320X281x的硬件设计第1章如何开始DSP的学习与开发1.1DSP基础知识DSP的前身是TI公司设计的用于玩具上的一款芯片,经过二三十年的发展,在许多科学家和工程师的努力之下,如今DSP已经成为数字化信息时代的核心引擎。被广泛应用于通信(手机)、家电(变频空调)、航空航天、工业测量、控制、生物医学工程以及军事等许许多多需要实时实现的领域。1.1.1什么是DSP?DSP=DigitalSignalProcessing处理技术DSP=DigitalSignalProcessor处理器1.1.2DSP的特点特别适合于数字信号处理运算单片机,ARM,FPGA哈佛结构,程序空间和数据空间分开,CPU可以同时访问指令和数据;在一个指令周期内可以完成一次乘法和一次加法运算;片内具有快速RAM,通常可以通过独立的数据总线在程序空间和数据空间同时访问;具有低开销或无开销循环及跳转的硬件支持;具有快速的中断处理和硬件I/O支持;可以并行执行多个操作;支持流水线操作,使得取址、译码和执行等操作可以重叠执行。1.1.3DSP与MCU/ARM/FPGA的区别详见p2DSP数字信号处理MCU单片机,价格便宜ARM面向低预算市场的处理器,事务管理功能,手持设备90%,擅长跑系统FPGA现场可编程逻辑阵列,价格贵1.1.4需要的知识硬件部分软件部分信号处理理论1.2如何选择DSP考虑因素:处理器的速度、功耗、存储空间的大小(程序、数据)、片内资源(定时器、IO口、DMA通道、中断)供应商:TI50%,ADI较少,MOTO,ZILOG)TI产品(FLV)C2000系列—数字及运动控制,C24x,2407,2407,C28x-2810,2812,28335浮点.只有C2000系列有FLASH和异步串口C5000系列---低功耗,手持设备无线终端,80M,400M,C55x,C54xC6000系列C64xC67x,达芬奇DM642–宽带网络,数字图像处理,BGA焊接麻烦OMAP—DSP+ARM,移动上网设备,多媒体家电Piccolo平台—2802x,2803x控制领域,成本相对低,与MCU竞争图1-2分析1.2.3TIDSP具体型号的含义1.3DSP的开发平台全英文开发环境CCS3.3较多CCS4.0较少安装路径不能含中文字符建议默认路径桥梁数据传输仿真调试程序固化含有DSP的板子JTAGUSB传输速度快并口1.3.1CCS的版本安装软件名称软件版本可以开发的TIDSP芯片CC3.3.exe3.3除了TI3000系列以外的DSPCC3.1.exe3.1除了TI3000系列以外的D