资料介绍
内容简介
在设计TI公司的C2000系列的DSP控制系统时,使用C语言或C语言与汇编语言混合编程开发DSP控制应用程序,可以达到事半功倍的效果。C语言在满足控制应用程序运行速度的基础上可以更好地维护程序和移植程序,是开发控制应用程序的必然趋势。本书以TMS320LF240x模块的原理和各个应用模块为主线,介绍了TMS320LF240x DSP硬件概况、内部资源、C语言库函数、C语言编程与调试环境及其各个子模块的接口C语言程序。在介绍功能模块基本原理的同时,列举出相应的应用实例,给出电路原理接线图和C语言程序清单。书中提供的所有程序均已在设计的实验目标板上调试通过。
本书可作为大学本科生和研究生"数字信号处理器原理及应用"课程的教材,也可作为数字信号处理器应用开发人员很好的一本参考书。
前言
TMS320LF240x芯片作为DSP控制器24x系列的新成员,是TMS320C2000TM平台下的一种定点DSP芯片。240x+芯片为C2xx CPU功能强大的TMS320TM DSP结构设计提供了低成本、低功耗、高性能的处理能力,对电机运动的数字化控制非常有用。几种先进外设被集成到该芯片内,以形成真正的单芯片控制器。在与现存24x DSP控制器芯片代码兼容的同时,240x芯片具有处理性能更好(30 MIPS)、外设集成度更高、程序存储器更大、A/D转换速度更快等特点,是电机数字化控制的升级产品。
240x芯片包含了多种芯片,可提供不同容量存储器和不同外设,以满足各种应用的要求和性能价格比。FLASH芯片有高达32 K字的储存器,为多种用途的产品提供了经济的可编程解决方案。基于FLASH的芯片中有256 K字的引导ROM使在线编程更加方便。240x系列芯片还包括ROM存储器系列,并与其他FLASH芯片引脚完全兼容。
所有240x芯片都至少有一个事件管理器模块,用于电机数字化控制应用。该模块的性能包括中间和/或边缘对齐的PWM发生器及可编程的死区控制性能,以防止桥式驱动主电路上下桥臂短路。事件管理器模块可实现同步A/D转换功能,如果带有双事件管理器(TMS320LF2407),就能用一个240x DSP控制芯片对多个电机和/或逆变器进行控制。
高性能10位模数转换器(ADC)的转换时间为500 ns,提供多达16路的模拟输入,具有自动排序功能,使最大为16路的转换在同一转换期间进行而不会增加CPU的开销。
所有该系列的控制器都集成有串行通信接口(SCI),使之能够与系统中的其他控制器进行异步通信(RS-485)。对于要求额外通信接口的系统,2406和2407控制器提供了一个16位的同步串行外围接口(SPI);它们还提供了CAN通信模块,且符合CAN2.0B的规范要求。这些功能的引脚也可设置为通用I/O引脚。
作者在编写《TMS320LF240x DSP结构、原理及应用》一书的基础上编写了本书。两本书自成体系,独立成书。本书的主要目的是介绍C语言的编程方法及其在TI公司的C2000系列中的应用。书中介绍了TMS320LF240x DSP硬件概况、内部资源、C语言库函数、C语言编程与调试环境及其各个子模块的接口C语言程序。在介绍功能模块基本原理的同时,列举出相应的应用实例,给出电路原理接线图和C语言程序清单。本书力求为学习DSP并希望用C语言或C语言与汇编语言混合编程的人士提供一些参考。书中提供的所有程序均在"重庆大学-美国德州仪器公司数字信号处理器解决方案实验室"设计的实验目标板上调试通过。
参加本书编写工作的有冼成瑜、杨立勇、杨利辉、周小军、张学峰、严利平、卓清锋等同志。他们为本书提供了大量资料,进行了大量实验,编写验证了各个控制应用程序等,在此表示衷心感谢。本书的成书过程中还得到了重庆大学电气工程学院电力电子与电力传动系郑连清、李远树、郑群英等老师的大力支持,他们参与了本书的编写、校对和录入工作,在此表示感谢。还要感谢美国德州仪器公司大学计划项目所提供的大力支持。 限于编者的水平,书中难免存在错误和不当之处,恳请读者批评指正。
本书附光盘1张,收录书中部分程序文档。请读者参考使用。
目录
第1章 TMS320LF240x概述
1.1 TMS320系列DSP概况1
1.2 TMS320LF240x芯片概述1
1.3 TMS320LF240x DSP CPU控制器的功能结构图2
1.4 TMS320LF240x DSP引脚功能介绍5
1.5 TMS320LF240x DSP存储器映射图11
1.6 TMS320LF240x DSP外设存储器映射图14
第2章 TMS320LF240x DSP内部资源介绍
2.1 TMS320LF240x DSP的CPU内部功能模块介绍15
2.2 存储器和I/O空间24
2.3 系统配置和中断28
2.4 程序控制46
第3章 C语言库函数
第4章 C语言程序编写和调试环境简介
4.1 C编译器概述84
4.2 TMS320C2x/C2xx/C5x C编译器环境介绍85
4.3 利用TMS320C2x/C2xx/C5x C编译器开发应用程序的步骤92
4.4 头文件和命令文件示例95
第5 章 TMS320LF2407实验模板简介
5.1 TMS320LF2407实验开发系统介绍109
5.2 TMS320LF2407实验目标板各模块功能介绍110
第6章 数字输入/输出模块(I/O)
6.1 数字I/O端口概述115
6.2 数字I/O端口寄存器115
6.3 I/O端口应用121
第7章 事件管理器模块(EV)
7.1 事件管理器模块概述126
7.2 通用定时器139
7.3 比较单元156
7.4 脉宽调制电路PWM160
7.5 捕获单元168
7.6 正交编码脉冲(QEP)电路175
第8章 模数转换模块(ADC)
8.1 模数转换模块(ADC)概述180
8.2 自动排序器的工作原理180
8.3 ADC时钟预定标188
8.4 校准模式189
8.5 自测试模式189
8.6 ADC模块的寄存器190
8.7 ADC转换时钟周期199
8.8 ADC转换应用举例199
第9章 串行外设接口模块(SPI)
9.1 串行外设接口概述203
9.2 串行外设接口操作204
9.3 串行外设接口控制寄存器210
9.4 串行外设接口应用举例216
第10章 串行通信接口模块(SCI)
10.1 串行通信接口概述222
10.2 多处理器(多机)异步通信模式224
10.3 串行通信接口控制寄存器230
10.4 串行通信接口典型应用举例236
第11章 CAN控制器模块
11.1 CAN控制器模块概述239
11.2 邮箱241
11.3 CAN控制寄存器244
11.4 CAN控制器的操作254
11.5 CAN控制器的程序设计举例258
第12章 C语言嵌入汇编语言和中断处理方法
12.1 在C语言中嵌入汇编语言262
12.2 用C语言处理DSP中断265
第13章 C语言编程应用实例
13.1 TMS320LF2407与图形液晶显示模块接口及应用273
13.2 串行EEPROM的接口编程281
13.3 I2C串行日历时钟与TMS320LF2407的接口及应用288
第14章 实现快速傅里叶变换(FFT)
14.1 快速傅里叶变换(FFT)的原理300
14.2 快速傅里叶变换(FFT)的DSP实现305
第15章 实现空间矢量PWM
15.1 SVPWM的原理317
15.2 利用TMS320LF240x实现SVPWM算法322
15.3 利用TMS320LF240x实现SVPWM算法的程序324