[实验2] 快速傅里叶变换 (FFT) 实现
一、实验目的
1、掌握FFT算法和卷积运算的基本原理; 2、掌握用C语言编写DSP程序的方法; 3、了解利用FFT算法在数字信号处理中的应用。
二、实验设备
三、实验原理 (一)快速傅里叶变换
傅里叶变换是一种将信号从时域变换到频域的变换形式,是信号处理的重要分析工具。离散傅里叶变换(DFT)是傅里叶变换在离散系统中的表示形式。但是DFT的计算量非常大, FFT就是DFT的一种快速算法, FFT将DFT的N2 步运算减少至 ( N/2 )log2N步。
离散信号x(n)的傅里叶变换可以表示为
nkj2/NX(k)x[n]WN, WNe
N0N11. 一台装有CCS软件的计算机; 2. DSP实验箱的TMS320C10主控板; 3. DSP硬件仿真器。
式中的WN 称为蝶形因子,利用它的对称性和周期性可以减少运算量。一般而言,FFT算法分为时间抽取(DIT)和频率抽取(DIF)两大类。两者的区别是蝶形因子出现的位置不同,前者中蝶形因子出现在输入端,后者中出现在输出端。本实验以时间抽取方法为例。
时间抽取FFT是将N点输入序列x(n) 按照偶数项和奇数项分解为偶序列和奇序列。偶序列为:x(0), x(2), x(4),…, x(N-2);奇序列为:x(1), x(3), x(5),…, x(N-1)。这样x(n) 的N点DFT可写成:
X(k)x2nWn0N/212nkN(2n1)kx2n1WNn0N/21
考虑到WN的性质,即
2WN[ej(2)/N]2ej2/(N/2)WN/2
因此有:
X(k)x2nWn0N/21nkN/2WkNN/21n0nkx2n1WN/2
或者写成:
kX(k)X1kWNX2k
由于X1(k) 与X2(k) 的周期为N/2,并且利用WN的对称性和周期性,即:
- 1 -
物理与电子信息学院 数信号处理实验指导书
kN/2kWNWN
可得:
kX(kN/2)X1kWNX2k
对X1(k) 与X2(k)继续以同样的方式分解下去,就可以使一个N点的DFT最终用一组2点的DFT来计算。在基数为2的FFT中,总共有log2(N) 级运算,每级中有N/2 个2点FFT蝶形运算。
单个蝶形运算示意图如下:
以N=8为例,时间抽取FFT的信号流图如下:
从上图可以看出,输出序列是按自然顺序排列的,而输入序列的顺序则是“比特反转”方式排列的。
也就是说,将序号用二进制表示,然后将二进制数以相反方向排列,再以这个数作为序号。如011变成110,那么第3个输入值和第六个输入值就要交换位置了。一种比较常用有效的方法就是雷德算法。 (二)卷积运算
卷积是数字信号处理中经常用到的运算。其基本的表达式为:
ynm0hmxnm
n编写实现程序时需要注意两点:(1)序列数组长度的分配,尤其是输出数组y (n) 要有足够的长度;(2)循环体中变量的位置,即n和m的关系。 (三)IDFT的FFT实现
IDFT与DFT的关系为
1x(n)IDFT[X(k)]N**Xk0N1*kn(k)WN
即
- 2 -
物理与电子信息学院 数信号处理实验指导书
*1DFT[X*(k)] Nx(n)
那么直接调用FFT子程序计算IDFT的方法是:
X(k)共轭X*(k)FFT共轭乘1/ Nx(n)
(四)线性卷积的FFT实现
当有限长序列x(n)与h(n)的圆周卷积长度L≥N+M时,其中N、M分别为x(n)和h(n)的长度,L点的
Lh(n)=x(n)*h(n)。再利用DFT的圆周卷积性质 圆周卷积能够代表它们的线性卷积,即x(n)○
Lh(n)=IDFT{X(k)H(k)} x(n)○
就可以利用FFT计算两个有限长序列的线性卷积。
x(n)补L-N个零L点DFTL点IDFTy(n)= x(n)*h(n)
h(n)(五)分段卷积
补L-M个零L点DFT直接利用DFT计算的缺点是:(1) 信号要全部输入后才能进行计算,延迟太多;(2) 内存要求大;(3) 算法效率不高。解决问题方法是采用分段卷积,分段卷积可采用重叠相加法和重叠保留法来实现。
1. 重叠相加(overlap add)
将长序列x[k] 分为若干段长度为L的序列x[k]其中
n0xn[knL]
0kL1x[knL] xn[k] 其它 0 记 yn[k]xn[k]h[k],那么,x[k]h[k]n0xn[knL]h[k]yn[knL]
n0y0[k]的非零范围为0kLM2,y1[k-L]的非零范围为Lk2LM2。序列y0[k]、y1[k]的重叠部分为LkLM2,重叠的点数L+M-2-L+1=M-1。依次将相邻两段的M-1个重叠点相加,即得到最终的线性卷积结果。
2.重叠保留法(overlap save) 方法:
(1) 将x[n]长序列分段,每段长度为L; (2) 各段序列xn[k]与 M点短序列h[k]循环卷积; (3) 从各段循环卷积中提取线性卷积结果。
因 yn[k]=xn [k] L h[k] 前M-1个点不是线性卷积的点,故分段时每段与其前一段有M-1个点重叠。
xn[k]x[kn(LM1)]
- 3 -
物理与电子信息学院 数信号处理实验指导书
Lh[k],y0[k]中的[M-1, L-1]点对应于线性卷积x[k]*h[k]中的[0 , L-M]点, 记yn[k] =xn [k]○
y1[k]中的[M-1, L-1]点对应于线性卷积x[k]*h[k]中的[ L-(M-1), 2L-M-(M-1)]点。依次处理即得到最终的线性卷积结果。 四、实验步骤
(以实验1.1为例,参照§2.3 CCS的使用 中的介绍进行实验操作) 1. 在CCS环境中新建本实验的工程;
2. 将相关代码文件添加工程中; 3.编译
并重建 .out 输出文件,然后通过仿真器把执行代码(.out的文件)下载到DSP芯片中;
4.运行程序
;
5.选择view->graph->time/frequency… 。 设置对话框中的参数: 其中“Start Address”设为“x_re”,“Acquisition buffer size”和“Display Data size”都设为“”,并且把“DSP Data Type”设为“32-bit floating point”(如图),
设置好后观察输入信号序列的波形(单边指数函数,如图);
- 4 -
物理与电子信息学院 数信号处理实验指导书
同样方法观察经DFT变换后的输出序列“y_re”的波形,“Start Address”改为“y_re”,其余参数不变(如图);
5. 在Watch窗口中添加i, j, k, m, n, a, b ,c 等变量,在Debug菜单中先“Restart”然后 “Go main”,
单步运行程序,跟踪FFT算法的过程;(可以跳过程序开始部分对各个数组的赋值代码,方法是在雷德算法的第一行代码前设置断点下图。)
,然后先单击运行
,待程序停在该断点后再单步执行后面的代码,见
- 5 -
物理与电子信息学院 数信号处理实验指导书
第一章 实验平台说明
本实验箱以TI公司的TMS320C10(可选配TMS320C16)和TMS320LF2407两种DSP芯片为中心,附加开发了多个功能模块,可以使实验者方便有效地完成各种常用的DSP开发实验。
TMS320C10是TI公司系列DSP芯片中相当优秀的一个型号,除了有强大的运算能力外,还集
成了丰富的片内资源。基于该芯片的出色性能,它在各种DSP应用场合中发挥着重要作用。本实验箱就提供了这样一个平台,使实验者能在最短的时间内了解并掌握该DSP芯片的基本开发技术。
TMS320C16是TI公司系列DSP芯片中另一款优秀的型号,片内资源比10丰富,HPI(主机接
口)提供16BIT模式,外设与10相近。
实验者可以在10主控板(或16主控板)上进行各种指令实验和算法实验。把10主控板(或16主控板)插接在实验箱主电路板上的接口后,实验者就可以借助已设计好的外部电路进行USB接口、A/D与D/A转换等实验。本实验箱的USB模块主芯片采用功能强大的PHILIPS ISP1362芯片,它支持USB2.0和最新的OTG(on The Go点对点通信)协议,因此实验者可以充分学习到最先进的USB技术。A/D与D/A转换是传统的实验内容,本实验箱配置了两个A/D与D/A模块,它们有不同的性能和特点,适合不同的应用场合。把10(或16)与A/D与D/A模块配合起来,实验者甚至可以进行声音文件的MP3编解码实验。
本实验箱的另一块主控板采用TMS320LF2407 DSP芯片,这也是一个应用非常广泛的型号。配合实验箱主电路板上的各个模块,实验者可以进行通用异步串行口(UART)的实验,电机控制实验,以太网卡实验,液晶显示屏实验,数码管控制实验,信号灯控制实验和键盘扫描实验。另外实验箱上还有一个信号发生模块可供实验。
除了已设计好的实验之外,实验者还可以发挥创造性,充分利用实验箱的资源进行其它实验。
- 6 -
物理与电子信息学院 数信号处理实验指导书
§1.1 系统总览
一、实验箱资源分布
本实验箱采用模块化设计,直接与实验相关的,一共有13个模块,另有负责总线控制的CPLD模块和一个负责为各个部分供电的电源模块。每一个模块都有的电源开关控制。实验系统中有三个模块是采用外插形式的,在实验箱主电路板上预留了插槽,包括10主控板(或16主控板),2407主控板以及电机控制模块。而其余各模块都设计在主电路板上。整个实验箱的资源分布如下图。
(图1-1-1) 实验箱整体说明图
(1) TMS320C10主控板(或16主控板)位置(外插) (2) TMS320LF2407主控板位置(外插) (3) CPLD模块(复杂可编程逻辑器件)
(4) A/D与D/A转换模块一(普通语音数模转换) (5) A/D与D/A转换模块二(高精度音频)
- 7 -
物理与电子信息学院 数信号处理实验指导书
(6) 信号发生模块
(7) USB2.0 OTG接口模块(USB2.0点对点接口通信模块) (8) UART接口模块(通用异步收发报机接口模块) (9) 以太网卡模块 (10) 电机控制模块插槽 (11) 4×4键盘模块 (12) 液晶显示屏模块 (13) 数码管模块 (14) 信号灯模块 (15) 电源模块
(16) 双声道扬声器模块
DSPII+型模块及各部分控制图
- 8 -
物理与电子信息学院 数信号处理实验指导书
§1.2 使用方法
1. 电源
本实验箱内部自带变压器,使用时不需另配低压电源,可直接用普通三相插头接入220V电源。 接上电源后,由电源模块输出 ±12V,5V,3.3V和2.5V,分别送至实验箱的各个模块。另外为方便单独使用,两个主控板上都设有的电源输入端口,可以接入5V的直流电源。
2. 仿真器接口
在做实验时,需要一个DSP仿真器,把在计算机上编译并生成的执行代码下载到10或2407芯片
上。仿真器有两端接口,其中一端与计算机的并行口或USB口相连,这取决于仿真器的类型;另一端与DSP芯片的JTAG接口相连,这是一个14针的接口,在两块主控板上都可以找到。仿真器连接好后才能对主控板上的DSP芯片进行读写控制。
3. 外插模块的使用
本实验箱有三个模块单独成板,以外插形式与主电路板连接。其中两个DSP主控板在主电路板上留有专门的位置(请见资源分布图),使用时把主控板上的接口对准主电路板上的相应插槽插牢即可。
在做电机控制实验时,应先把电机控制模块的小电路板架在以太网卡模块的位置上,插好四个支脚,然后通过连接线把电机小电路板上的接口与主电路板上的电机模块插槽(请见资源分布图中的标号“10”)相连。
4. 计算机的配置
DSP实验中的代码编写,下载仿真和程序调试都必须在计算机上完成。计算机上需要安装DSP集成开发环境软件CCS(推荐使用2.0版本)。计算机应具备最少32M内存,100M硬盘空间和奔腾处理器,显示器分辨率不能低于800*600。另外,部分模块的实验还要求计算机配有标准的USB接口,DB9串行接口以及RJ-45网卡接口。
5. 其它配件
包括USB连接线,串行口连接线,网线,排线,以及耳机。
- 9 -
物理与电子信息学院 数信号处理实验指导书
§1.3 模块说明
1.TMS320C10主控板
该板上实现了一个最小系统,可以单独运行。板上主要资源包括一个TMS320C10型号的DSP芯片,一个CY7C1021型号的K×16位的SRAM芯片,以及一个TE39LV800型号的8M容量FLASH芯片。如图:
(图1-3-1) 10主控板硬件说明图
板上有一个14针的JTAG接口,是与DSP仿真器连接的。有一个6位拨码开关分别对应HPIENA(高性能并型接口始能),BIO(IO输出),MP/MC(工作模式),CLKMD3(时钟配置3),CLKMD2(时钟配置2),CLKMD1(时钟配置1),拨到”ON”位置为“1”,“OFF”位置为”0“,另外该主控板通过三排接口与实验箱的主电路板相连,在主电路板上设有相应的插槽。各接口引脚的连接情况如下:
- 10 -
物理与电子信息学院 数信号处理实验指导书
(图1-3-2) 10主控板接口说明
10主控板实际各接口及扩展接口位置
- 11 -
物理与电子信息学院 数信号处理实验指导书
TMS320C16主控板
板上DSP芯片为TMS320C16,一个CY7C1021型号的K×16位的SRAM(静态存储器)芯片,以及一个TE39LV800型号的8M容量FLASH(闪存)芯片。
(图1-3-3) 16主控板说明图
- 12 -
物理与电子信息学院 数信号处理实验指导书
2.TMS320LF2407主控板
该板上实现了一个最小系统,可以单独运行。板上主要资源包括一个TMS320LF2407型号的DSP芯片,以及一个CY7C1021型号的K×16位的SRAM芯片。如图:
(图1-3-4) 2407主控板说明图
板上有一个14针的JTAG接口,是与DSP仿真器连接的。另外该主控板通过六排接口与实验箱的主电路板相连,在主电路板上设有相应的插槽。各接口引脚的连接情况如下:
- 13 -
物理与电子信息学院 数信号处理实验指导书
- 14 -
物理与电子信息学院 数信号处理实验指导书
(图1-3-5) 2407主控板接口说明
2407主控板各接口及其扩展接口实际位置
- 15 -
物理与电子信息学院 数信号处理实验指导书
3.CPLD模块及其特点
该模块主要包含有一个Xilinx公司的XC95144可编程芯片。本模块主要负责实验系统中的总线控制工作。其特点是CPLD由完全可编程的与/或门阵列以及宏单元构成。与/或阵列是可重新编程的,可以实现多种逻辑功能。宏单元则是可实现组合或时序逻辑的功能模块,同时还提供了真值或补码输出和以不同的路径反馈等额外的灵活性。传统上,CPLD采用模拟感应放大器来提高结构性能。这种性能提高的代价是需要较高的电流。 它采用了一种全新的全数字内核,能够以极低的功耗达到同样的性能水平。这使得设计人员可同时在高性能和低功耗设计中使用同一种CPLD结构。 避免采用模拟感应放大器还使结构具有可扩展能力,使得随着工艺技术一代一代的进步成本可快速降低并可不断增强其功能。
CPLD部分管脚定义及扩展总路线位置图
- 16 -
物理与电子信息学院 数信号处理实验指导书
4.USB2.0 OTG(点对点通信)接口模块
该模块主要包含有一个USB主控芯片(IPS1362),一个USB通用端口(H-A),两个为实现OTG(点对点通信)协议而用的OTG(点对点通信)端口,分别是作Host(主机)时的OTG-B和作Device(驱动)时的OTG-A。如下图:
(图1-3-6) USB模块说明图
模块中设置了一排接口,包含了该模块对外的所有数据和控制线,其引脚定义如下:
(图1-3-7) USB 模块接口定义
- 17 -
物理与电子信息学院 数信号处理实验指导书
模块接口也可以作调试时观察所用,除此之外,模块中还设置了其它若干探测点,如下:
CON302:(1) D+ (差分信号正向端) (2) D-(差分信号反相端) (3) H_OC2(主指令1) CON304:(1) OTG_DP (点对点数据处理) (2) OTG_DM(点对点设计模式) (3) H_OC1(主指令1) CON306:(1) OTG_D+ (点对点信号正端) (2) OTG_D-(点对点信号负端) TP301:CLKOUT(时钟输出)
(3) V_BUS(公共端)
USB模块接口实图
5.高精度音频A/D与D/A转换模块
该模块上的主要芯片是AIC23,这是一个双通道的A/D与D/A转换芯片。因此,在该模块上设有四个插口,一组是Line-In(线入)和Line-Out(线出),另一组是Mic-In(麦克风入)和Phone-Out(话音出)。如下图:
(图1-3-8) 音频模块说明图
- 18 -
物理与电子信息学院 数信号处理实验指导书
模块接口的定义如下:
(图1-3-9) 音频模块接口定义
除接口外,还有若干探测点定义如下:
TPb01:Signal Power (信号源)
TPb12:Lineout right(线出右声) TPb15:Phone left(话音左声)
TPb02:VDD(芯片电源) TPb11:CLKOUT(时钟输出) TPb13:Lineout left(线出左声) TPb14:Phone right(话音右声) TPb16:Linein right(线入右声) TPb17:linein left(线入左声)
6.普通语音A/D与D/A转换模块
该模块所使用的主要芯片是AD50CDW。该模块只提供一对信号输入 / 输出插口。如下图:
(图1-3-10) 语音模块说明图
该模块的探测点设置如下:
(图1-3-11) 语音模块探测点定义
- 19 -
物理与电子信息学院 数信号处理实验指导书
7.UART接口模块
该模块主要包括两个芯片,其中进行UART控制的是SC16C550芯片,而完成电平转换的是MAX3232芯片。本模块带有一个9针的串行连接口。如下图:
(图1-3-12) UART模块说明图
本模块的接口定义如下:
(图1-3-13) UART模块接口定义
本模块还有一个探测点是TP401:CLK
UART模块接口实图
- 20 -
物理与电子信息学院 数信号处理实验指导书
8.以太网卡模块
本模块主要包括一个Ethernet(以太网)控制芯片RTL8019AS。模块上设有一个RJ-45(交叉路45)的网线插口。如下图:
(图1-3-14) 以太网卡模块说明图
该模块的接口定义如下:
(图1-3-15) UART(通用异步收发机)模块接口定义
- 21 -
物理与电子信息学院 数信号处理实验指导书
模块上还有7个探测点,其意义如下:
(图1-3-16) 以太网卡模块探测点定义
1.RW (读写) 2.CS (片选引脚) 3.IOR(I/O读) 4.IOW(I/O写)
5.IOCHRDY(I/O准备信号) 6.INT0(中断0) 7.CLK(时钟)
网卡接口实图
9.信号发生模块
本模块通过信号发生芯片ICL8038可以产生三种不同波形的音频信号,包括方波,三角波和正弦波。欲产生的信号类型可用模块上的旋转按钮进行选择。如下图:
(图1-3-17) 信号发生模块说明图
该模块工作,不需与DSP的接口。 10.4×4键盘模块
本模块上的键盘电路采用交叉扫描方式,即共有8个引脚。
- 22 -
物理与电子信息学院 数信号处理实验指导书
11.液晶显示屏模块
本模块主要器件是一个液晶显示屏,该LCD有16个引脚,都已引出,各引脚的信号意义如下:
(图1-3-18) LCD接口定义
本模块上也有一个的电源开关。
LCD模块接口实图 12.数码管模块
本模块共有8个七段数码管。另有的电源开关。
- 23 -
物理与电子信息学院 数信号处理实验指导书
13.信号灯模块
本模块共有8个发光二极管,分为四组,每组各有一个红灯和一个绿灯。四组LED以东西南北的位置排布,模仿十字路口的交通信号灯。该模块中用到一个锁存芯片,而且引出其片选引脚(CS)作为探测点。如下图:
(图1-3-19) 信号灯模块说明图
14.电机控制模块
本模块设计在一块的小电路板上,该小电路板可以插在以太网卡模块位置的四个支脚上。小电路板上有一16针接口,在使用时要用排线把这个接口与实验箱主电路板上的“电机接口总线”相连。如下图:
(图1-3-20) 电机模块与主电路板连接示意图
- 24 -
物理与电子信息学院 数信号处理实验指导书
15.双声道扬声器模块:
用户不仅可以通过耳机插孔来听发出的声音,同时也可以通过内置扬声器来实现。
扩展模块、主板、及CPLD的数据传递与控制关系 表示数据传递过程
表示控制关系
- 25 -
物理与电子信息学院 数信号处理实验指导书
第二章 开发软件 ( CCS ) 介绍
§2.1 CCS 简介
CCS(Code Composer Studio数据设计工作室)代码调试器是一种合成开发环境。 它是一种针对标准TMS320调试器接口的交互式方法。CCS目前有CCS1.1, CCS1.2 和CCS2.0等三个不同时期的版本,又有CC2000 ( 针对C2XX ),CCS5000 ( 针对CXX )和CCS6000 (针对C6X )三个不同的型号。我们所使用的是CCS50002.0的版本。
CCS5000具有以下特性: TI编译器的完全集成的环境:
CCS5000目标管理系统,内建编辑器,所有的调试和分析能力集成在一个Windows环境中。 对C和DSP汇编文件的目标管理:
目标编辑器保持对所有文件及相关内容的跟踪。它只对最近一次编译中改变过的文件重新编译,以节省编译时间。
高集成的编辑器调整C和DSP汇编代码:
CCS5000的内建编辑器支持C和汇编文件的动态语法加亮显示。使用户能很容易地阅读代码和当场发现语法错误。
编辑和调试时的后台编辑:
用户在使用编译器和汇编器时没有必要退出系统到DOS环境中,因为CCS5000会自动将这些工具装载在它的环境中。在其窗口中,错误会加亮显示只要双击错误就可以直接到达出错处。
在含有浮点并行调试管理器(PDM)的原有的MS窗口下支持多处理器CCS5000在 Windows95和Windows-me中支持多处理。PDM(调试管理器)允许将命令传播给所有的或所选择的处理器。 在任何算法点观察信号的图形窗口探针:
图形显示窗口使用户能够观察时域或频域内的信号。对于频域图,FFT(快速傅立叶变换)在主机内执行,这样就可以观察所感兴趣的部分而无须改变它的DSP代码。图显示也可以同探针连接,当前显示窗口被更新时,探针被指定,这样当代码执行到达该点时,就可以迅速地观察到信号。 文件探针在算法处通过文件提取或加入信号或数据:
CCS5000允许用户从PC机读或写信号流。而不是实时的读信号,这就可以用已知的例子来仿真算法。 图形分析:
CCS5000的图形分析能力在其环境中是集成的。 在后台(系统命令)执行用户的DOS程序:
用户可以执行CCS5000中的DOS程序,并将其输出以流水方式送到CCS5000的输出窗口。且允许用户将应用程序集成到CCS5000。 技术状态观察窗口:
CCS5000的可视窗口允许用户进入C表达式及相关变量。结构、数组、指针都能很简单地递归扩展和
- 26 -
物理与电子信息学院 数信号处理实验指导书
减少,以便进入复杂结构。 代数分解窗口:
允许用户选择查看写成代数表达式的C格式,提高可读性 。 目标DSP上的帮助:
DSP结构和寄存器上的在线帮助可以使用户不必查看技术手册。 用户扩展:
扩展语言(GEL)使得用户可以将自己的菜单项加到CCS5000的菜单栏中。
主要操作流程图
- 27 -
物理与电子信息学院 数信号处理实验指导书
§2.2 CCS的安装与配置
一、CCS软件的安装
1、 打开光驱,将带有DSP软件的光盘放入其中。 2、 打开其中的“DSP软件”目录显示如下:
在C2000V2。2目录下是CCS2000的安装软件;C5000V2。2目录下是CCS5000的安装软件。工具软件目录下是一些常用的工具软件;驱动程序目录下是EPP(并口)和USB接口的仿真器的驱动程序。 3、 先安装CCS2000的软件,打开“C2000V2。2”目录,点其目录下的“SETUP”应用程序。安装开始。如下图:
在INSTALL下面有两个可选的安装项目,第一个是“CODE COMPOSER STUDIO”(数据设计工作室)这是CCS2000软件的安装目录。第二个是“ADOBE ACROBAT READER”(图形自动读取)是其帮助文件的应用软件。选第一项进行CCS2000软件的安装。 4、 按照其安装提示进行安装,出现如下提示:
在下方选择“YES,I DO accept all the terms of the preceding License Agreement”(接受前面所述的授权协议)点击“Next”继续进行安装,直至出现如下图所示画面:
- 28 -
物理与电子信息学院 数信号处理实验指导书
在上图中有两个可选项,上面一个是CCS2000的安装软件(CODE COMPOSER STUDIO),下面一个是其软件的帮助文件的安装(Online Manuals在线指南)。将两个项目都选择,即在两个项目前的方框内打上“√”;或者点击“Select All”(全选)点击“Next”继续进行安装。出现如下图所示画面:
在上图中选择“Browse”(浏览)对软件的安装目录进行设置。因为还有CCS5000的软件要进行安装,所以最好对其安装目录进行设置如D:\\TI\\2000,以示对CCS5000的区别。点击“Next”继续进行安装,按照安装提示直至安装完成。安装完成后会出现如下所示:
点击“确定”按钮,出现如下图所示的窗口:
- 29 -
物理与电子信息学院 数信号处理实验指导书
这两项是安装完成后,其软件的网上资料和安装生成的一些介绍。可以选择的来进行设置。最后点击“Finish”完成软件的安装。点击完成后,如果选择了前面的两项,则会出现其网页资料,关闭这些网页后,出现如下窗口:
选择“重新启动计算机”(Yes,I want to restart my computer now)来重启你的计算机,以便使你的设置生效(默认选项)。选择下面一项则不重新启动你的计算机。选择这两项中的其中一项,点击“FINISH”完成整个软件的安装。CCS5000的安装过程和CCS2000的安装过程基本上是一致的,只是其安装文件不一样,另外在安装目录的选择上CCS5000建议安装在D:\\TI\\5000目录下以示同CCS2000的区别。
- 30 -
物理与电子信息学院 数信号处理实验指导书
二、EPP(并口)仿真器的驱动安装
要在CCS开发环境下使用EPP并口仿真器,首先安装的是EPP仿真器的驱动程序。打开光盘中的驱动程序目录下的EPP_Driver(即EPP并口仿真器的驱动程序)出现两个子目录,如下图:
C2000DRV是其在CCS2000软件开发环境下的驱动程序。CCS5000DRV是其在CCS5000开发环境下的驱动程序,如安装CCS2000开发环境的驱动则运行其目录下的“SETUPCC2XX”程序,按照其提示进行驱动的安装,直至出现如下图所示窗口:
上图所示是对其驱动程序的安装目录进行设置,选择“BROWSE”(浏览)选择安装目录。如果是对CCS2000开发环境进行驱动安装,其目录最好要在CCS2000软件所在的目录下,如D:\\TI\\2000\\目录下;同样如果是对CCS5000开发环境进行驱动安装,其目录最好有CCS5000软件所在的目录之下,如D:\\TI\\5000\\目录下。点击“NEXT”按照提示信息继续进行驱动的安装直至出现如下窗口:
上图所示是对NT(基于WINDOWS的一种操作系统)下的安装进行提示,选择“是”安装NT的驱动程序。最后按照提示完成整个驱动的安装。其在CCS5000开发环境下的驱动安装与CCS2000开发环境下的驱动安装基本是一致的。
- 31 -
物理与电子信息学院 数信号处理实验指导书
三、EPP并口仿真器在CCS环境下的设置
CCS软件安装完成后,会在桌面上出现两个“CCS2(`2000)或CCS2(`5000)和SETUP CCS2(`2000)或SETUP CCS2(`5000)”两个图标。分别对应CCS的应用软件和CCS的配置程序。只有对其进行了正确的设置才能执行CCS开发环境。除非用户改变CCS应用平台类型(如软件仿真)。
运行SETUP CODE COMPOSER STUDIO软件(以CCS2000为例),即桌面上的CCS的配置程序图标(Setup CCS2(‘C2000))。出现如下窗口:
在上图中将中间当前的对话窗口关闭,点击Install a Device Driver(安装设备的驱动),进行设置。出现如下窗口:
上图是对仿真器的驱动进行选择,其文件在安装驱动时所选择的目录下的Drivers(驱动器)子目录下。选择Sdgo2XX.drv,点击上图中的“打开”出现如下窗口:
- 32 -
物理与电子信息学院 数信号处理实验指导书
点击上图中的“OK”按钮。此时,中间一栏(Available Board可用板/Simulator Type模拟类型)会出现相应的驱动图标,如下图显示的:
把该图标拖动到最左边的SYSTEM CONFIGURATION(系统结构)栏是,则会出现BOARD PROPERTIES(板道具)对话框。然后点击上图中的sdgo2xx,右上脚新出来两个选项:“Uninstall”(卸载)和“Add to System”(添加系统),点击“Add to System”(添加系统)出现下图:
- 33 -
物理与电子信息学院 数信号处理实验指导书
在Board Name & Data File(板名和数据文件)栏中,点击Next,进入下一页,会显示硬件仿真器的I/O口值,如下图所示:
将上图中的硬件仿真器的I/O口值由0X240改为0X378,再点击Next,继续进行设置则会出现如下图所示的“Processor Configuration”(处理机结构)页面。
在Processor Configuration(处理机结构)页面下,在Available Processor(可处理)选项中选择TMS320C2400(在CCS5000开发环境下为TMS320C00),然后,点击其中间的Add Single(添加单一)按钮,其右边出现CPU-1图标。如下图所示:
- 34 -
物理与电子信息学院 数信号处理实验指导书
点击“Next”按钮,出现下面的对话框。
点击上图所标示的的位置,对CPU进行类型的选择,出现如下图所示的窗口:
- 35 -
物理与电子信息学院 数信号处理实验指导书
基于实验箱中的CPU选择F2407A.GEL文件,这个文件也在前里安装驱动程序所选择的目录下的Drivers(驱动)子目录下。单击“打开”按钮。点击“Finish”完成其设置。对其设置进行保存后,退出其配置程序。
对于EPP仿真器在CCS5000开发环境下的设置其步骤与CCS2000开发环境下的基本一致。只是在相应的配置文件的选择上略的不同。
在对仿真器驱动程序选择是CCS5000开发环境下选择的是“Sdgo5XX.drv”,相应的出现的图标则为Sdgo5XX的图标;另外在对其CPU类型进行选择时根据实验箱选择C10.GEL或C10A.GEL。这些文件都在其驱动安装程序所在目录下的Drivers(驱动)子目录下。
设置完成后,将仿真器与计算机通过并口电缆边接起来,仿真器的下载口与目标板相连(注意:连接时其方向一定要正确,否则可能烧毁仿真器;与仿真器相连的14P下载电缆上红色的那一边与目标板下载口的1,2脚那一端相接),仿真器与目标板接上电源后,根据目标板上芯片的型号来打开相应的CCS开发软件(CCS2000或CCS5000),就可以进行DSP的开发了。
- 36 -
物理与电子信息学院 数信号处理实验指导书
四、USB仿真器驱动程序的安装
USB仿真器驱动程序的安装与EPP仿真器的安装基本是一致的,首先打开光盘中的驱动程序目录下的USB_Driver(即USB仿真器的驱动程序),运行其目录下的SETUP.EXE程序,按照其提示进行驱动的安装,如下图所示窗口:
上图的提示窗口是进行选择其驱动程序的安装目录对话框。如果选择“是”则安装在C:/TI目录下,一般情况下不安装有这一个目录下,而是要安装在CCS安装的目录下。选择“否”则是对安装目录进行设置,如下图所示:
选择“Browse”选择安装目录,建议安装在CCS软件安装的目录下,(如CCS2000软件所在的目录下D:\\TI\\2000)。选择好安装目录后,依照提示信息完成其驱动程序的安装。用同样的方法将驱动程序也安装有另外一个CCS开发环境下(如CCS5000软件所在的目录下D:\\TI\\5000)。
五、USB仿真器在CCS环境下的设置
USB仿真器在CCS开发环境下的设置与EPP仿真器的在其开发环境下的设置基本是一致的。运行SETUP CODE COMPOSER STUDIO(设置数据处理工作室)软件(以CCS5000为例),即桌面上的CCS的配置程序图标Setup CCS2(‘C5000)。出现如下窗口:
- 37 -
物理与电子信息学院 数信号处理实验指导书
在上图中将中间当前活动的对话窗口关闭,点击“Install a Device Driver”(安装设备驱动程序)进行设置。出现如下窗口:
上图是对仿真器的驱动进行选择,其文件在安装驱动时所选择的目录下的Drivers子目录下。如(D:\\TI\\5000\\Drivers\\...)选择tixdsx. dvr,点击上图中的“打开”出现如下窗口:
- 38 -
物理与电子信息学院 数信号处理实验指导书
点击上图中的“OK”按钮。此时,中间一栏(Available Board可用板/Simulator Type模拟类型)会出现相应的驱动图标,如下图:
把该图标拖动到最左边的“System Configuration”(系统配置)一栏是,则会出现“Board Properties”(板道具)对话框。如下图所示:
如上图所示在第一项下拉菜单中选择中间的一条“Auto-generate board data file with extra configuration”(自动生成板数据文件和其它配置)。在第二项中“Configuration File”(结构文件)选项中选择“Browse”(浏览)按钮,出现如下对话框:
- 39 -
物理与电子信息学院 数信号处理实验指导书
选择上图中的ICETEK.cfg文件,其文件也在CCS软件目录下的Drivers(驱动器)子目录下(D:\\TI\\5000\\Drivers\\...)。点击“Next”出现如下图所示的窗口:
将上图中的硬件仿真器的I/O口值由0X240改为0X000,再点击Next,继续进行设置则会出现 “Processor Configuration”(处理机结构)页面。在Processor Configuration(处理机结构)页面下,在Available Processor(可用处理机)选项中选择TMS320C00(在CCS2000开发环境下为TMS320C2400),然后,点击其中间的Add Single(添加一个)按钮,其右边出现CPU-1图标。
点击“Next”按钮,出现下面的对话框:
- 40 -
物理与电子信息学院 数信号处理实验指导书
点击上图所标示的的位置,对CPU进行类型的选择,出现如下图所示的窗口:
基于实验箱中的CPU选择C10.gel或C10A.gel文件,这个文件也在前里安装驱动程序所选择的目录下的Drivers子目录下。单击“打开”按钮。点击“Finish”完成其设置。对其设置进行保存后,退出其配置程序。
对于USB仿真器在CCS2000开发环境下的设置其步骤与CCS5000开发环境下的基本一致。只是在相应的配置文件的选择上略的不同。
在对仿真器驱动程序选择是CCS2000开发环境下选择的是“TIXDS24X.DVR”,相应的出现的图标则为tixds24x的图标;另外在对其CPU类型进行选择时根据实验箱选择f2407A.gel这些文件都在其驱动安装程序所在目录下的Drivers(驱动器)子目录下。
设置完成后,将仿真器与计算机通过USB电缆接起来,此时电脑硬件会显示找到新的硬件,如果提示要安装驱动,则按电脑的安装向导安装USB驱动目录下USBDevice(USB驱动器)文件夹里的mdpjtag.inf驱动文件。
- 41 -
物理与电子信息学院 数信号处理实验指导书
电脑如果找到了驱动程序则在硬件列表里会出现一个红色的仿真器的图标。
六 C10软件仿真在CCS环境下的设置
运行SETUP CODE COMPOSER STUDIO软件,即桌面上的CCS的配置程序图标(Setup CCS2(‘C5000))。出现如下窗口:
点击C10 Device Simulator,再选择Import(输入)则就完成了仿真设置
如果尚有不明的地方可参见我们电子板的“DSP简易安装指导书”其有详细安装过程。
- 42 -
物理与电子信息学院 数信号处理实验指导书
§2.3 CCS的使用
一、创建或打开工程
打开CCS5000主程序,打开的主界面如下:
(图2-3-1) CCS程序主窗口
本节使用工程“Volume1”为例做一个实验,该实验开发并运行一个简单的程序,指导读者如何新建一个工程,如何向工程添加源文件并修改代码,编译并且运行程序。
1. 准备工作
在以下各节之前,为了便于学习,我们事先准备好实验文件。在CCS的安装目录下,找到“\\myprojects”目录,在这里新建一个名为“volume1”的目录,再到CCS安装目录下找到“\utorial\\simxx\\volume1”目录,把下表的7个文件复制到刚才新建的目录下:
需要复制的文件 volume.c load.asm vectors.asm volume.h volume.cmd sine.dat volume.gel
- 43 -
文件说明 实验用C源文件 实验用汇编源文件 实验用中断向量表文件 C函数使用的头文件 内存定位文件 实验用数据文件 实验用GEL控制文件 物理与电子信息学院 数信号处理实验指导书
2. 新建工程文件
文件复制完成以后,启动CCS,再主菜单中单击“Project”(设计),会有“new”和“open”选项,创建新工程使用“new”选项。程序会提问新建工程的名字以及保存位置,指定后单击“确定”即可。
(图2-3-2) 新建工程窗口
3. 向工程添加各类型文件
可以使用两种方式向工程添加源文件、CMD文件和库文件。 (1) 添加源文件
在主菜单中单击“Project”,选择“Add Files to Project”命令,在弹出的添加文件对话框中找到目录“volume1”,选择文件“volume.c”,单击“打开”按钮,如下面左图所示。
另一个方法是在工程名“volume.pjt”上单击鼠标右键,选择“Add Files”命令。在弹出的添加文件的对话框中,找到目录“volume1”,再在添加文件对话框中单击“文件类型”,选择“Asm Source Files(*.a*;*.s*)”,这样在添加文件对话框里就只显示指定类型的文件。同时选择“load.asm”和“vectors.asm”,单击“打开”按钮(通过这种方法也可添加C代码文件“volume.c”),如右下图所示。
(图2-3-3) 添加文件方式
(2)
接着添加必需的内存定位文件“*.cmd”,使用上述任一方式,向工程里添加“volume.cmd”,
注意在添加文件对话框的“文件类型”下拉列表中要选择“Link Command File(*.cmd)”,该文件定义了各代码段和数据段在存储器中的位置。
(3)
因为本实验工程是基于C语言编写的,因此还需要添加运行时支持库(Run-Time-Support
Library如果基于汇编的就不需要)。使用上述任何一种方式,向工程添加“rts.lib”文件,该文件存放在CCS的安装目录“\\c00\\cgtools\\lib”下。注意在添加文件对话框的“文件类型”下拉列表中要选择“Object Library Files(*.o*,*.l*)”。
(4)
添加头文件。在工程名“volume.pjt”上单击鼠标右键,选择“Scan All Dependencies”,这样
- 44 -
物理与电子信息学院 数信号处理实验指导书
volume.c文件所包含的头文件“volume.h”将出现在工程浏览窗中的“Iclude”文件夹中。头文件实际不用人工添加,在Build工程时,CCS本身就会自动完成扫描。
4. 查阅代码
在继续完成实验之前,先阅读一下源代码。明白各文件内容:在工程浏览窗里的“volume.c”文件名上双击鼠标,即可在CCS的编辑窗口看到源代码,注意该文件的以下三个部分:
(1)
在主函数输出消息\"volume example started \"后,主函数进入一个无限循环,在循环内部调用
了两个函数dataIO()与processing()。
(2)
函数processing()对输入缓冲区的每个采样值乘以一个增益值“gain”,并将结果存放到输出
缓冲区中。改函数同时调用汇编程序load(),该函数会根据processing()传递过来的参数processingLoad来消耗指令周期,模拟复杂信号处理算法在时间上的消耗。
(3)
函数dataIO()在本实验中不作任何实际操作而直接返回。
5. 建造和运行程序
建造(Building)在这里指编译、汇编、链接三个步骤按顺序联合运行。在主菜单中单击“Project”,选择“Rebuild All”,或者单击工具条图标
,CCS将重新对工程中所有文件进行编译、汇编、链接,并
同步在底部窗口中显示编译连接信息。连接完毕,CCS生成一个“.out”文件,默认存放在目录“volume1”下的“debug”(除错)目录中。
建造完毕后,再完成装载程序的步骤:在主菜单中单击“File”,选择“Load Program”,在弹出对话框中,找到目录“volume1”下的“debug”目录,选择“volume.out”,并打开。
CCS装载完毕该文件到目标DSP以后,会自动弹出“Dissassembly”窗口,显示构成源代码的反汇编指令。同时,CCS还会在底部弹出“stdout”栏,用于显示程序在运行时的输出信息。
(图2-3-4) 反汇编窗口
现在可以运行我们的程序:在主菜单中单击“Debug”,选择“Go Main”,让程序从主函数开始运行。程序会停在main()处,并会有一个黄色的箭头
标记当前要执行的C语言代码。如果希望同时看到C
- 45 -
物理与电子信息学院 数信号处理实验指导书
语言代码和对应编译生成的汇编代码,在主菜单中单击“View”,选择“Mixed Source/ASM”,此时会有一个绿色箭头
标记当前要执行的汇编代码,如图所示:
(图2-3-5) C代码与对应的反汇编代码
在主菜单中单击“Debug”,选择“Run”,或单击工具条图标,让程序全速运行。如果能在底部的
stdout标准输出窗口看到程序运行的输出信息“volume example started”,证明程序能够正常运行。在主菜单中单击“Debug”,选择“Run”,或单击工具条图标
常用的按钮如下:
单步执行; 不进入子程序中;
,让程序停止运行。
从子程序中执行出;
执行到子程序开始处; 运行程序; 停止运行; 全速运行程序。
6.多种观察窗口帮助调试。
查看寄存器:在 CCS中选择View菜单中的CPU Registers命令。
查看数据:选择View菜单中的Memory…命令,弹出设置窗口,按实际需要指定其中的参数,如起始地址等,就可以观察到数据单元中的值,该值可以以多种格式表示。
查看程序中变量的当前值:可以在程序中用光标选中变量名,在鼠标右键菜单中选择Add to Watch Window命令就可以把该变量添加到Watch窗口。随着程序的运行,可以在Watch窗口看到该变量的值的
- 46 -
物理与电子信息学院 数信号处理实验指导书
变化。
显示图形:如果要观察的变量太多,例如要观察一个数组的值,那么可以用一种更直观的方法,就是把数据用图形的方式表现出来。选择View菜单中的Graph命令,会有不同类型的图形可供选择。常用的是时域/频域波形,即Time/Frequency…项。在弹出的Graph Property对话框中,可以设定图形的标题、数据的起始地址、采集缓冲区的大小、显示数据的大小、数据类型等属性。
DSP基本开发流程示意图
- 47 -
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- howto234.com 版权所有 湘ICP备2022005869号-3
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务