文档库 最新最全的文档下载
当前位置:文档库 › 3-理工-DSP应用技术实验-第一章

3-理工-DSP应用技术实验-第一章

3-理工-DSP应用技术实验-第一章
3-理工-DSP应用技术实验-第一章

第一章 DSP实验系统简介

第一节数字信号处理实验系统概述

DSP芯片是比较复杂的高速微处理器。要开发基于DSP芯片的应用系统,从系统方案设计到具体的工程实现,是一个比较困难的工作,周期长,工作量大,成本高。为了深入学习DSP基础理论,掌握采用DSP进行系统设计的一般知识,提高开发DSP应用系统的能力,对DSP有一个深入全面的了解。我们采用理工达盛开发的EL-DSP-II实验教学系统。下面就简单介绍一下这套用户开发板的构成和功能。

1.1 EL-DSP-II教学系统结构

EL-DSP-II教学系统采用模块分离式结构,主要由仿真子系统、CPU子系统和实验子系统三部分组成。下面是该教学系统的功能框图1-1-1。

图1-1-1 数字信号处理器实验系统II型功能框图

由于教学系统为模块化分离式结构,使用灵活,极方便用户的二次开发。客户可根据自己的需求选用不同类型的CPU板卡,用户不需要改变任何配置情况下,更换CPU板即可作TI公司的不同类型的DSP的相关实验。

1.2 实验系统的主要特点

EL-DSP-II教学系统属于一种综合的教学实验系统,该系统采用双CPU设计,完全实现了DSP 的多处理器协调工作。两个DSP通过HPI口并行连接,从CPU可以通过HPI主机接口访问主CPU 的整个程序空间。除此之外,在实验板上有丰富的外围扩展资源(数字、模拟信号发生器,数字量IO扩展,语音CODEC编解码及滤波放大等),可以完成多种与DSP相关算法和编解码通信实验。其资源主要包括:

l CPU 1外围资源:

1.存储器扩展单元:

外接32K 字的数据存储器,地址为0000H~7FFFH

外接32K 字的程序存储器,地址为8000H~0FFFFH

外围并行程序加载存储器EEPROM,可上电装载程序;

2.模拟量输入输出单元:

采用TLC320AD50接口电路,转换速率22.05K。

3.数字量扩展单元:

8bit的数字量输入和8bit的数字量输出

4.音频接口单元:

CODEC编解码串行通信技术;语音输入放大及其接口,有三种接口方式;语音输出放大,直接驱动1/2W的扬声器;

5.主机接口模式

实验系统可以通过异步串口和主机进行通信,进行主机控制或数据交换。

6.串行通信接口(为可选配置)

串行通信接口主要采用异步串行通信,可以和主机串行通信进行数据交换。

7. DSP通信接口:

CPU 1的HPI主机接口映射到相应的CPU 2的IO空间,CPU 2可以通过主机接口来访问CPU 1的全部存储空间。并可以对CPU 1实施必要的控制。

8. CPU板上所有控制、数据信号线完全开放,用户可以在此基础上进行特殊功能的扩展。

l CPU 2外围资源

1.程序上电装载存储器扩展

外部扩展32Kx8bit的程序存储器,出厂默认的系统测试程序。即系统上电后程序自动引导执行,进行系统测试。用户也可根据需求直接编写上电加载程序。

2.数字信号产生单元

CPU 2外围扩展二路D/A转换电路,可以实现模拟量输出控制或数字波形产生等工作。输出数字精度为8bit,电流输出快速稳定时间为85ns。依据数字波形的质量要求不同,可以输出不同频率和幅值的模拟信号。

3.片上数字量输入输出

系统上将DSP芯片内部的数字量输入输出引脚BIO和XF直接扩展,并通过跳线连接到LED灯上面,可适时观察系统的状态,扩展控制外围数字量被控对象。

4.键盘接口单元(外置部件)

系统将键盘通过CPLD扩展到CPU2的IO空间,CPU2通过访问自己的IO 空间,实现对键盘的控制。

5 LCD显示单元(外置部件)

液晶显示器(LCD)同样扩展到CPU2的IO空间,CPU2通过访问自己的IO空间,实现液晶显示。

l系统公共资源

1.信号产生电路

试验板上提供两通道波形连续可跳,信号类型可以选择的信号发生器。该单元可以产生两路三角波、方波或正弦波。可以进行混频滤波实验。

2.四合一被控对象(直流电机、步进电机、蜂鸣器和温度调节)接口单元。

1.3 教学系统可完成的实验

该教学实验系统是根据在众多数字信号处理应用领域的具体应用综合开发的,可以完成多种数字信号处理或控制实验,并且由于选择不同种类的CPU控制板,实验系统分别在数字信号处理和控制等方面有显著的优势。基于综合设计的思想,该系统主要可以完成下列主要实验:

【通用实验】

1.常用指令练习实验

1) 简单指令程序运行实验,熟悉DSP系统基本硬件结构和软件编程,掌握DSP集成开发

环境 (IDE),可以掌握DSP系统设计及调试的一般过程;

2) 存储器验证实验,可以对存储器的内部或外部任何空间进行读写操作,通过比较读写结

果验证存储器是否正确;

3) I/O实验,在实验板上扩展了8bit的数字量输入和8bit的数字量输出,可以通过软件或

者直接用CCS的IO控制功能对数字量输入输出功能进行验证。

4) 定时器实验,在CPU内部都有2~3个定时器,用户可以通过软件对定时器进行编程,并

来控制数字IO口的状态来验证定时器及其软件;

5) 中断处理实验。中断在一般系统,尤其是事务性的控制系统当中非常重要,用户可以在

实验系统上进行系统中断实验的分析验证。

2.数模/模数转换实验,在实验板上设计了16 bit数模/模数转换单元,可进行一些通用模数/数模转换和滤波处理实验。

3.语音处理实验,实验板上除了上述的模数/数模转换外,还特意设计了语音的前置放大和后端的功率放大,及相应的输入接口和输出扬声器。用户可根据自己的实际情况对语音信号进行采集、处理和回放。

4.HPI接口通信实验:

1) 数字波形产生实验(根据需要可产生任意波形);

2) BOOTLOADER装载实验

3) 二维图形生成实验;

4) 数字图象处理实验;

5) DTMF编解码通信实验;

6) LCD显示实验;

7) 键盘接口实验。

8) 卷积(Convolve)算法实验;

9) 快速傅立叶变换(FFT)算法实验;

10) 有限冲击响应滤波器(FIR)算法实验;

11) 无限冲击响应滤波器(IIR)算法实验;

12) 离散余弦变换 (DCT) 算法;

13) 相关 (Correlation) 算法;

14) A-law、u-Law压缩解压实验;

15) 语音编码/解码(G711编码/解码器);

1.4 系统硬件单元模块及其使用

本节重点介绍教学实验系统的各硬件功能模块,并根据各模块的特点和性能,使实验者了解本实验系统的DSP 设计思想,并学习一些DSP 硬件设计知识。

1.4.1 CPU 接口板单元

【CPU 模式选择】

CPU 通常情况下可以根据用户需求工作在不同的模式下,主要使用芯片的MP/MC ————

管脚的电平来决定。当MP/MC ————

为高电平时,DSP 工作在微处理器模式,当MP/MC —————

为低电平时。DSP 工作在为计算机方式。在不同模式下存储器映射表有所不同。详细信息请查阅相应的数据手册。本系统一般实验时为低电平。 【电源转换模块】

在CPU 板上由于VC54X 数字信号处理器内核采用3.3V 和1.8V 供电,因此需要将通用的5V 转换成3.3V 和1.8V ,为中央处理器提供内部电源。转换电路如图1-1-2所示:

【电平转换】

由于数字信号处理其内部采用3.3V 和1.8V 供电,而且其输入输出接口电平为3.3V ,对于数字量输出而言完全可以和5V 电平兼容。但对于数字量输入而言,由于其内部是3.3V ,因此不能将中央处理器的输出口直接和外围扩展的5V 器件相连,必须加入电平转换和信号隔离。典型的就是数据线,必须进行隔离,对于其他的涉及到输入信号也要进行相应的转换,见图1-1-3。

图1-1-3 电平转换电路

【复位电路以及时钟单元】

复位电路主要包括上电复位和硬件手动复位,每次复位要求至少要有8到10个系统时钟。因此要求适当的配置复位电路RC 网络。时钟电源主要利用数字信号处理器内部晶振源,并通过外部锁相环控制电路,选择适当倍频倍数,为CPU 内部提供系统时钟,见图1-1-4。

图1-1-4 复位电路以及时钟单元

系统时钟工作还与芯片管脚CLKMD1、CLKMD2、CLKMD3及CLKMD 寄存器值有关,关系表如表1-1:

1.4.2 外设扩展单元介绍及其应用

【可编程逻辑器件CPLD 】

1.可编程逻辑器件的优点及CPLD 简介

可编程逻辑器件CPLD 全称为Complex Programmable Logic Device ,用户在设计电路时,经常会用到一些逻辑器件,如74系列的通用逻辑电路,使用它们进行多路选择、编码、译码及时序配合等。可编程逻辑器件就是将这些逻辑集成到一个芯片当中,用户可以根据自己的需要来设计逻辑,分配逻辑管脚和布线。通常的可编程逻辑的结构分为三块:输入门阵列、输出门阵列和逻辑门阵列,其中逻辑门阵列是用户可编程的。

采用可编程逻辑实现数字系统设计有很多优点,最明显的是系统的器件使用数大大减少,并且,可编程逻辑器件的集成度提高将增加设计的可靠性,减少设计调试时间,降低设计成本。同时,由于可编程逻辑器件的集成度提高,减少了I/O 时延和逻辑级数,从而提高系统设计性能。其次,对于PCB 板,板上的连线结构无须破坏依然可用,只需要修改逻辑、修改可编程逻辑器件内部的连接关系即可。

它的另一个优点就在于容许使用设计工具帮助进行自动设计,设计过程均由软件自动进行。设计描述可以采用原理图或者一些语言规则来进行,诸如VHDL 和Verilog 。除了逻辑资源、布线结构、乘积项分配结构、宏单元设置和时延模型这些CPLD 共有的特性外,还有一些专门特性为部分CPLD 器件所特有。如在线可编程(ISP ),在系统可重复编程(ISR ),5V/3.3V 工作模式,兼容IEEE1149.1(JTAG)标准的测试激励端和边界扫描能力,以及兼容PCI 接口协议的输入和输出缓冲器。各种器件也有不同封装形式。

表 1-1

CLKMD1

CLKMD2 CLKMD3 CLKMD RESET VALUE

CLKMD MODE

0 0 0 E007h

PLL ×15 0 0 1 9007h PLL ×10 0 1 0 4007h

PLL ×5 1 1 0 1007h

PLL ×2 1 1 0 0000h PLL ×1

1 1 1 F000h

1/2 (PLL disabled) 1 0 1 F000h

1/4 (PLL disabled)

0 1 1 -- Reserved(bypass mode)

图 1-1-5 CPLD逻辑结构

2.实验板可编程逻辑器件使用

该系统中采用了两片可编程逻辑器件,一片主要完成系统的双CPU逻辑控制,地址选择以及不同CPU兼容性设计等,系统中选用Xilinx公司的在线可编程的逻辑器件是XC9536-15PC44型CPLD 器件,另一片是CPU2用来完成键盘和液晶的时序和逻辑控制。其原理图如图1-1-6:

图1-1-6可编程器件输入端口原理图

【模数转换器TLV320AD50】

TLC320AD50C采用sigma-delta技术提供高精度低速信号变换,该器件有两个串行同步变换通道、数模转换前的差补滤波器和模数变换后的滤波器。其他部分提供片上时序和控制功能。sigma-delta 结构可以实现高精度低速的数模/模数转换。芯片的各种应用软件配置通过串口来编程实现。主要包括:复位、节电模式、通信协议、串行时钟速率、信号采样速率、增益控制和测试模式。

该系统采用TLC320AD50C作为主,数字信号处理器为从的的方式进行通信控制。同时还可以通过跳线由数字信号处理器做主,TLC320AD50C作从。在众多场合,尤其是多声道语音处理应用中,可能有很多同步串行设备连接在同一总线上,为了能够良好的通信必须在硬件和软件上适当的设置,以满足系统的通信控制要求。图1-1-7给出了多个TLC320AD50C挂接在总线上的情况。

图1-1-7 多通道转换接口功能框图

输入信号首先经过缓冲放大,并进行移位变换为一对差分信号。再经消除混叠滤波器进行简单的连续时序滤波,消除RF噪声,然后进入AD50C,进行模数变换。经AD50C数模转换的单极性信号,经过低通滤波消除高频噪声后输出。AD50C的FC, RESET,POWERDOWN信号可以经过DSP Bus 去控制。

不同的AD50C 时钟对应采样速率的配置寄存器的值,具体如表1-2:

表 1-2

Reg 4, Bit 7 Reg 4, Bit 6-4 8.192MHz 10.000 MHz 10.240MHz 11.2896MHz 0(default)

8KHz 9.765KHz 10KHz 11.025KHz 1 (64KHz) (78.125KHz) (80KHz) (88.2KHz) 2 (32KHz) (39.063KHz) (40KHz) (44.1KHz) 3 21.333KHz (26.042KHz) (26.666KHz) (29.4KHz) 4 16KHz 19.531KHz 20KHz 22.05KHz 5 12.8KHz 15.625KHz 16KHz 17.64KHz 6 10.666KHz 13.021KHz 13.333KHz 14.7KHz bit 7=0 PLL on

7 9.1432KHz 11.161KHz 11.429KHz 12.601KHz 0 2KHz 2.441KHz 2.5KHz 2.756KHz 1 16 KHz 19.531 KHz 20 KHz 22.05 KHz 2 8KHz 9.766KHz 10KHz 11.025KHz 3 6.333KHz 6.51KHz 6.666KHz 7.35KHz 4 4KHz 4.883KHz 5KHz

5.513KHz 5 3.2KHz 3.906KHz 4KHz 4.41KHz 6 2.666KHz 3.255KHz 3.333KHz 3.675KHz bit 7=1 PLL off

7

0.798KHz

2.79KHz

2.857KHz

3.15KHz

【数模转换器DAC08】

DAC08具有高性能价格比,应用非常灵活的数模转换集成电路。先进的电路设计结构使得稳定时间可以达到85nS ,且具有较低的干扰。DAC08可以应用在8-bit, 1 ms A/D 变换,伺服电机、波形发生、语音编码、衰减器、可编程功率变换器、CRT 显示驱动、高速modems 以及其他要求低成本、高速等多功能场合。

图1-1-8 偏移二进制输出工作模式

表 1-3 DAC08输出编码表

B1 B2 B3 B4 B5 B6 B7 B8 E 0 POS.FULL RANGE 1 1 1 1 1 1 1 1 +4.960 ZERO-SCALE

1 0 0 0 0 0 0 0 0.000 NEG.FULL-SCALE+1 LSB 0 0 0 0 0 0 0 1 -4.960 NEG.FULL-SCALE 0 0 0 0 0 0 0 0 -5.000

【静态存储器SRAM(IS61C256 32K ×8bit) 】

该系统使用的存储器接口芯片是ISSI 公司的IS61C256,它具有以下特点:

1. 问速度10、12、15、20、25ns 可选;

2. 静态功耗 -250uW (典型) CMOS 器件; -55mW (典型) TTL 器件;

3. 静态操作,无须时钟或刷新; 4. 输入输出和TTL 电平兼容;

5. 5V 供电,低功耗:400mW (典型)。

静态存储器分为32Kx16bit 的程序和32Kx16bit 的数据存储器两个部分。根据选择不同类型的CPU 分别映射到相应地址的程序空间和数据空间。

图1-1-9 程序数据存储器扩展电路图

【固化程序存储器EEPROM(AM28C256 32K ×8bit)】

该系统使用的存储器接口芯片是AMD 公司的AM28C256,它具有以下特点:

1. 问速度快于45ns

2. 功耗:典型静态CMOS 电流20uA

3. 单5V 供电,供电电压可在±10%变化

4. 典型编程时间4S

5. 100mA 闩锁保护从-1V 到VCC + 1V

6. 高噪声门限

7. CMOS/TTL 输入/输出电平兼容 8. 标准28脚DIP 、PDIP 封装

9. 或32脚PLCC 封装 图 1-1-10 boot 程序存储器扩展

板上扩展了EEPROM 用来存放用户程序,可以通过选择CPU 板上的MP/MC 来选择bootloader 模式。出厂时存储器内固化了系统测试程序,上电后可对系统硬件进行自动测试。在本系统中采用并行存储器引导模式。

【数字量扩展】

实验系统扩展了8bit的数字量输入和8bit的数字量输出。所有数字量输入输出都映射到CPU1

为了显示和表征数字量输入输出的状态,系统上分别配置了8bit的LED灯显示和DIP拨动开关,通过扁平电缆将其开关电平输出,经5V―3.3V电平转换后作DSP芯片中断输入用。

【语音处理模块】

音频输入可以采用三种输入模式:麦克输入、RM输入和CD输入。不同方式的输入可以通过放大处理前端的输入阻抗跳线来选择。语音前置放大电路采用偏置和差动放大技术,并经过滤波和处理后将输入到语音编解码芯片(TLV320AD50),前端输入的电压范围为-2.5V---+2.5V。经过变换后

输入到AD50的芯片的差动信号范围为0---5V。由于AD50内部有可编程增益和可编程滤波电路,因此在转换之前可进一步作前期处理(通过软件编程来实现)。从而方便A/D转换电路的数据采集和DSP内部的数据处理。

2.音频输出功率放大

音频输出通过数模转换后输出,由于AD50输出差动信号因此首先经过差动放大后输出,语音

【信号产生模块】

该模块采用两片8038电路构成A、B两路三角波、方波和正弦波信号发生器,频率可通过可调电阻SRP11调节,输出频率范围20~20KHz。幅度可通过电位器调节,输出接SRP12,原理图见图1-1-14。

图1-1-14 信号发生器

当A、B两路不同频率的弦信号经过加法器混叠,接至A/D采样(采用双极性)。采集信号经过低通或高通数字滤波算法,然后经过D/A变换输出。观察滤波效果。该模块中可以通过相应跳线接入不同级别电容,产生不同频率范围的正弦波、三角波和方波信号。同时输出波形也可通过跳线来选择。两路输出信号经过加法器进行信号模拟处理和混叠,可以作为信号滤波处理的混叠信号源。

具体信号的选择和频率的调节在实验系统上都已详细的标注,请参照选择。

【异步串行通信模块(可选配置,标准配置不支持)】

异步串行通信单元主要是将数字信号处理器的异步通信串口SCI 口进行驱动扩展,然后和主机进行通信。完成主机和数字信号处理器数据交换或控制。值得注意的是在54X 芯片当中,只有多通道缓冲串口而该串口并不能和异步串口兼容。因此在采用异步串口和主机进行通信是要编制适当的软件或者采用并口到串口的转换器件来完成。异步串口的驱动电路如图1-1-15所示。

图1-1-15 异步串口的驱动电路

图1-1-15为采用McBSP 串口实现UART 通信接口原理图,然而由于两者的协议不兼容,不能够直接接口通信。McBSP 在通信时需要初始化,而且信号有数据收/发和时钟,异步串口的数据在一条线上传输,没有时钟信号。为了在不同协议之间进行良好的通信,就需要知道数据的开始和结束,开始和停止位的信息。在通信过程中还要用过软件和DMA 处理DSP 的多通道缓冲串口的挂起和同步问题。图1-1-16是异步串口的程序流程图。

注:更详细的应用信息请参见相应的数据手册和spra661.pdf 文档。 【四合一被控对象接口】

四合一被控对象接口主要是针对公司生产的四合一被控箱设计,可以通过扁平电缆将数字信号处理实验系统的控制和反馈信号连接到被控箱上面,采用DSP 对被控对象(直流电机、步进电机、温度调节和电子蜂鸣器)进行控制。接口定义如图1-1-17所示:

图1-1-17

第二节 CCS 软件与DSP 系统应用设计

一个简化的DSP 系统的设计和开发流程如图1-2-1, 从此图可以看出,在设计和开发前,设计者需要对所设计系统的要求有清楚的了解,在确定系统的设计指标后进入具体的设计阶段。首先,要选择DSP 芯片,目的是选择能够满足设计要求,性能价格比最优的方案。选定DSP 芯片后开始应用设计。应用设计包括硬件和软件设计。在开发过程中,硬件和软件是相互依赖的,硬件设计者和软件设计者应该对彼此的工作有很好的了解,而不应该相互独立地工作。如有必要的开发工具支持,硬件设计和软件设计在时间上可以并行进行。硬件和软件设计完成后,进入系统集成阶段。系统集成的任务是使软件和硬件相配合,完成原理样机的系统功能测试。在这个阶段,硬件仿真器(Emluator )是最好的工具。如系统测试结果符合设计指标,则样机设计完成;如不

合格,则要对软件或硬件进行修改,以满足设计要求。 图1-2-1 DSP 系统设计流程图

本节重点介绍数字信号处理系统软件程序设计一般步骤和相关工具的使用方法,使学生能够对DSP 系统的开发方法有一个较深入的了解,熟练运用数字信号处理实验系统,辅助学生开发具有特定功能的数字信号处理系统。

该部分分为硬件仿真器的安装、软件的安装与配置、CCS 软件的使用及DSP 程序设计来介绍。

2.1 硬件仿真器的安装与配置

【实验系统的安装和使用步骤】

第一步:打开实验箱,检查配件是否齐全(CPU 板、实验连接线、电缆、指导书)

第二步:启动PC 机,通过CMOS 设置计算机并口为EPP 方式,然后安装硬件驱动程序

eppdrive.zip 和CCS 实验软件。

第三步:关闭PC 机电源,将专用电缆插入并口中,注意插接要稳固,另一端连接仿真盒,再将

仿真盒另一端,连好JTAG 接线,且JTAG 线插入CPU 板上JTAG 接口。

第四步:开启实验箱电源。如安装成功,此时实验箱内的红、黄、绿三色指示灯亮起;同时,

仿真盒上POWER 和TARGET 的两个指示灯也亮起。

第五步:启动PC 机中的CCS 软件,进行实验。 硬件仿真器接口图JTAG 的定义:

硬件仿真器是数字信号处理系统的必备工具,它采用边界扫描技术和DSP 芯片通过JTAG 口相连接。实现主机对DSP 芯片的完全检测和控制。可通过JTAG 和相应的软件调试环境实现数字信号

处理系统的硬件调试和

软件的再现调试开发工作。 图1-2-2 硬件仿真器接口图

硬件仿真器的使用法比较简单,只要将JTAG 口连接正确,DSP 芯片能够正常工作并且软件调试环境配置正确即可以应用,见图1-2-2。

【Code Composer Studio的安装】

完整的安装CCS软件包括以下两个步骤:

1、安装CCS到系统中:

1)将CCS安装光盘放入到光盘驱动器中,运行CCS安装程序setup.exe。

2)运行CCS配置程序设置驱动程序。

如果CCS是在硬件目标板上运行,则先要安装目标板驱动卡,然后运行“CCS Setup”配置驱动程序,最后才能执行CCS。除非用户改变CCS应用平台类型,否则只需运行一次CCS配置程序。

若用户使用并口开发系统,首先需将计算机的并口模式设置为EPP模式(首先在计算机COMS 设置并口模式为EPP模式),地址设置为0X378。

2、安装过程:以安装CCS5000(2.0)为例:运行CCS安装程序setup.exe,出现图1-2-3。

图1-2-3

在图1-2-3中选择NEXT,按系统提示安装,默认安装路径是“C:\ti”。安装完成后,在桌面上会有“CCS 2 C5000 ”和“Setup CCS 2 C5000 ”两个快捷方式图标,则安装完毕,见图1-2-4。分别对应CCS应用程序和CCS配置程序。

图1-2-4 CCS应用程序和CCS配置程序

【CCS软件的设置步骤】

安装CCS软件与普通的程序安装类似,没有特殊要求。下面介绍安装完成后如何设置CCS软件。运行Code Composer Studio Setup软件(即桌面上的Setup CCS2(C5000)图标);点击Install a Device Driver,出现图1-2-5,通过窗口选择光盘附带的相应驱动程序。

图1-2-5

例如:54X系列

PCI开发器为xdspci54x.dvr, ISA开发器为wtxds54xisa.dvr,EPP开发器为sdgo5xx32.dll

图1-2-6

点击打开按钮,见图1-2-7,在Available Board/Simulator Type一栏中会出现相应的驱动图标;

图1-2-7

把该图标拖动到最左边的System Configuration一栏中。出现Board Properties对话框,见图1-2-8,在Board Name&Data File栏中,点击NEXT;

图1-2-8

进入下一页图1-2-9,会显示板卡的I/O口值,修改为0x378(ISA、PCI、USB仿真器不用修改),再点击NEXT,

图1-2-9

出现图1-2-10,在 Processor Configuration窗中, 在Available Processor中选择TMS320C54xx,然后点击Add Single;对话框右边出现CPU_1图标。点击Next,进入下一页。

图1-2-10

出现图1-2-11,提示选择一个初始化的 .GEL文件,对于5000系列的DSP芯片,可选择5402、5409、5410、5416等。

图1-2-11

最后,点击finish。关闭CCS程序,选择保存。至此设置完成。运行CCS C5000 2.0软件,成功进入界面,说明软硬件安装成功。

【CCS文件名介绍】

在使用CCS前,应该先了解以下软件的文件名约定:

1.project.mak CCS定义的工程文件

2.program.c C程序文件

3.program.asm 汇编语言程序文件

4.filename.h C语言的头文件,包括DSP/BIOS API 模块

5.filename.lib 库文件

6.project.cmd 连接命令文件

7.program.obj 编译后的目标文件

8.program.out 可在目标DSP上执行的文件,可在CCS监控下调试\执行

9.project.wks 工作空间文件,可以记录你的工作环境设置

10.program.cdb CCS设置数据库文件,是使用DSP/BIOS API必须的,其他没有使用DSP /BIOS API的程序也可以使用。当新建一个设置数据库时,会产生下面的文件。

11.programcfg.cmd 连接命令文件

12.programcfg.h54 头文件

13.programcfg.s54 汇编原文件

2.2 CCS软件应用和DSP编程

2.2.1概述

本节介绍DSP应用软件的开发流程和涉及到的软件开发工具。一个DSP应用软件的标准开发流程如图1-2-12所示。

由图1-2-12可见,软件开发过程中将涉及到C编译器、汇编器、链接器等开发工具。不过,这里的C编译器不像在PC上开发C程序一样会输出目标文件(.obj),而是输出满足C5X条件的汇编程序(.asm)。而C5X中的C编程效率是较低的,所以它的C编译器是输出汇编程序,让用户可以对该汇编程序进行最大限度的优化,提高程序效率。下面从汇编程序开始介绍软件开发流程的各个环节。

图1-2-12

编制一个汇编程序,需要经历下列步骤:

1. 用文本编辑器(Editor)编辑满足C5X汇编器(Assembler)格式要求的汇编源程序。

2. 调用汇编器汇编该源文件,如果源文件中调用了宏,汇编器还会到宏库中搜索该宏。

3. 汇编之后生成格式为公共目标文件格式COFF(Common Object File Format)的目标文件(.obj),称为COFF目标文件。

4. 调用链接器(Linker)链接目标文件,如果包含了运行支持库和目标文件库,链接器还会到所保护的库中搜索所需的成员。

5. 链接之后生成可执行的COFF执行文件(.out)。

6. 将COFF执行文件下载到C5XDSP中执行,同时也可借助调试工具(Debugging Tool)对程序进行跟踪调试或优化,也可利用交叉参考列表器(Cross-reference Lister)和绝对列表器(Absolute Lister)生成一些包含调试信息的表。

下面介绍一个简单的程序编写和调试,然后介绍汇编源文件(.asm)格式和CCS软件应用。2.2.2CCS软件应用和DSP编程

【汇编源文件(.asm)格式】

C5X的程序以段(Section)为基本单元构成,一个程序文件由若干段构成,每段又由若干语句(Statement)构成。

C5X的程序段分为初始化(Initialized)段和未初始化(Uninitialized)段两大类。初始化段可以是程序代码,也可以是程序中用到的常量、数据表等。我们可以从程序下载的角度来理解,初始化就是需要往程序空间写数据(代码或数据)的段,如同初始化程序空间一样。而未初始化段为变量,在下载时,这些变量是没有值的,所以无需向程序空间写,只需留出一段空间以便在运行时存放变量的值。所以这段空间在程序未运行前是没有初始化的。

段的名称和属性可以由用户自定义,如果用户不定义,汇编器将按默认的段来处理。C5X汇编

器默认的段有3个:“.text”、“.data”、“.bss”。其中,“.text”为程序代码段,“.data”为数据段,“.bss”为变量段。所以“.text”和“.data”是初始化段,而“.bss”为未初始化段。用户自定义用“.sect”和“.usect”两个汇编指示符来完成,其中“.sect”用于定义初始化段,“.usect”用于定义未初始化段,语法如下:[symbol] .sect “section_name”

[symbol] .usect “section_name”,length

【汇编器功能】

在编辑好汇编文件后就可调用汇编器对文件进行汇编。

TMS320C5X汇编器程序名为:asm500(为调用代数汇编器),它将对采用C5X的助记符指令编写的源文件进行汇编。汇编器接受汇编语言源文件作为输入,汇编语言源文件可以是文本编辑器直接编写的,也可以是由C语言经编译后得到的。该汇编器把汇编语言源文件汇编成COFF目标文件。这个汇编器可完成如下工作:

1.处理汇编语言源文件中的源语句,生成一个可重新定位的目标文件;

2.根据要求,产生源程序列表文件,并提供对源程序列表文件的控制;

3.将代码分成段,并为每个目标代码段设置一个段程序计数器SPC(Section Program Counter),并把代码和数据汇编到指定的段中,在存储器中为未初始化段留出空间;

4.定义(.def)和引用(.ref)全局符号(global symbol),根据要求,将交叉参考列表加到源程序列表中;

5.汇编条件段;

6.支持宏调用,允许在程序中或在库中定义宏。

调用汇编器可以在命令行中键入命令,也可以在集成开发环境下由CCS调用,其格式为:

asm500 [input file[object file[listing file]]][-options]

Input file为汇编源文件名。如果不写扩展名,汇编器将使用缺省的.asm。

Object file 为汇编器输出的COFF目标文件名。如果不写扩展名,汇编器将使用缺省的.obj,如果连目标文件名都不写,汇编器将使用输入的文件名作为目标文件名。

Listing file汇编器输出的列表文件名。如果不写列表文件名也不写列表选项-1或-x,汇编器将不会生成列表文件。如果有列表文件名,将生成列表文件;如果没有列表文件名,

而有列表选项,汇编器将使用输入文件名生成扩展名为 .list的列表文件。

Options汇编选项。选项不分大小写,可以放在命令行中汇编命令之后的任何地方。只要有连字符“—”就作为选项处理。不带参数的单个字母选项可以组合在一起,如—lc等

效与—l—c。而带有参数的选项,如—I,则必须单独指定。

【COFF目标文件】

TMS320C5X的汇编器和链接器都会生成公共目标文件格式COFF(Common Object File Format)的目标文件。在本节中,将汇编器生成的文件称为COFF的目标文件,将链接器生成的文件称为COFF 执行文件。目前,COFF目标文件格式已被广泛使用,因为它支持模块化(段)编程,能够提供有效灵活的管理代码段和目标系统(Target System)存储空间的方法。

1.COFF文件结构

1) 一个文件头

长度为22字节,包含COFF文件结构的版本号、段头的数量、创建日期、符号表起始地址和入口数量、可选文件头的长度等信息。

2) 可选的文件头信息

由链接器生成,包含执行代码的长度(字节)和起始地址、初始化数据的长度和起始地址、未初始化段的长度、程序入口地址等信息,以便在下载时进行重定位。

3) 各个段的头信息列表

每个段都有一个头,用于定义各段在COFF文件中的起始位置。段头包含段的名称、物理地址、虚拟地址、长度、原始数据长度等信息。

4) 每个初始化段的原始数据

包含每个初始化段的原始数据,即需要写入程序存储空间的代码和初始化数据。

5) 每个初始化段的重定位信息

汇编器自动生成各初始化段的重定位入口信息,链接时再由链接器读取该入口信息并结合用户对存储空间的分配进行重定位。

6) 每个初始化段的行号入口(entry)

主要用于C语言程序的符号调试。因为C程序先被编译为汇编程序,这样,汇编器就会在汇编代码前生成一个行号,并将该行号映射到C源程序里相应的行上,便于调试程序。

7) 一个符号表

用于存放程序中定义的符号的入口,以便调试。

8) 一个字符串表

用于存放那些符号名称超过8个字符的符号名称字符串。

2.段的顺序

汇编器在将汇编源程序汇编成COFF目标文件时,将按“.text、.data用户自定义初始化段、.bss 用户自定义的未初始化段”的顺序将各段放入生成的COFF文件中。

因为未初始化段(.bss和.usect)仅仅是用于在存储空间中保留空间,并没有代码或数据,所以未初始化段只有段头,而没有原始数据、重定位信息和行号等。另外,如果程序中没有使用缺省的段(.text,.data和.bss),那么它们在COFF文件中也没有原始数据、重定位信息和行号等,因为它们的原始数据长度为零。

【链接器】

汇编器生成COFF目标文件后,就可以调用链接器进行链接了。本节介绍C5X链接器的使用。

链接器概述

C5X的链接器能够把COFF目标文件链接成可执行文件(.out)。它允许用户自行配置目标系统的存储空间,也就是为程序中的各段分配存储空间。链接器能根据用户的配置,将各段重定位到指定的区域,包括各段的起始地址、符号的相对偏移等。因为汇编器并不关心用户的定义,而是直接将“.text”的起始地址设为00 0000h,后面接着是 .data和用户自定义段。如果用户不配置存储空间,链接器也将按同样的方式定位各段。

C5X的链接器能够接受多个COFF目标文件(.obj),这些文件可以直接输入,也可以是目标文件库(obiect library)中包含的。在多个目标文件的情况下,链接器将会把各个文件中的相同段组合在一起,生成COFF执行文件。

用链接器链接目标文件时,它要完成下列任务:

?将各段定位到目标系统的存储器中;

?为符号和各段指定最终的地址;

?定位输入文件之间未定义的外部引用。

相关文档