TMS320C54XDSP的DMA与McBsp接口设计——殷召凤 2.doc_第1页
TMS320C54XDSP的DMA与McBsp接口设计——殷召凤 2.doc_第2页
TMS320C54XDSP的DMA与McBsp接口设计——殷召凤 2.doc_第3页
TMS320C54XDSP的DMA与McBsp接口设计——殷召凤 2.doc_第4页
TMS320C54XDSP的DMA与McBsp接口设计——殷召凤 2.doc_第5页
免费预览已结束,剩余34页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

苏州市职业大学电子信息工程学院毕业论文(设计)摘 要:本文针对测控技术及自动化仪器仪表对实时数据采集和处理技术的发展要求,设计了基于DSP的DMA和McBSP技术的数据采集系统。文中分析了TMS320VC5409 DSP的DMA和McBSP的技术性能、接口方式和初始化编程,以及系统的设计过程。关键词: DSP,McBSP,DMA,TLV320AICl0Abstract:In this paper,a data acquisition system ispresnted, which bases on DMA and McBSP of DSP and aims at the development fequirement to real time data acquisition and prooess technical in measuring control technology and automatic instrument. The paper analyses the technical performance,interface mode,initialization programs and the system design procedures. Key words: DSP,McBSP,DMA,TLV320AIC10目 录摘 要i第一章 绪论11.1 设计背景11.2 应用背景11.3 设计的目的和意义1第二章 数字信号处理的介绍32.1 DSP芯片的概述32.2 DSP芯片的分类42.3 DSP芯片的选择42.4 DSP处理器特点与发展方向62.4.1 DSP处理器的特点62.4.2 DSP的发展方向92.5 DSP芯片的应用92.6 TMS320C54xDSP芯片102.6.1 TMS320C54xDSP芯片的基本特点10第三章 CCS集成开发工具的介绍133.1 CCS集成开发环境的构成133.2 CCS集成开发环境的主要功能133.3 CCS开发应用程序143.3.1 建立工程文件163.3.2在工程中添加删除文件163.3.3 编辑源程序173.3.4调试17第四章 DMA与McBSP接口软硬件设计194.1多通道缓冲串口(McBSP)194.2 DMA的工作模式204.3 硬件设计204.4 软件设计234.4.1软件流程图234.4.2主程序244.4.3 中断服务程序274.5程序清单284.5.1主程序清单284.5.2 中断向量文件294.5.3 中断服务程序30结束语34致 谢35参考文献3636第一章 绪论1.1 设计背景随着测控技术、电子计量和自动化仪器仪表向数字化、智能化和网络化方向的发展,人们对被测信号的实时数据采集、处理方法和技术提出了更高的要求。目前,新型、高性能DSP器件及其信号处理技术正在得到广泛应用。在以DSP芯片为核心的数字系统中,数据采集是一个非常重要的环节,如果采用传统的查询方式采集数据会占用大量CPU的资源;如果采用中断方式采集数据虽然可以提高CPU的利用率,但数据采集的每个时刻还是由CPU来完成,这会对信号处理的实时性和快速性产生一些不利的影响。针对以上情况,本文设计了基于TMS320VC5409的DMA(存储器直接存储控制)与McBSP(多通道缓冲串行口)技术的数据采集系统。1.2 应用背景通用数字信号处理器(DSP)以其强大的数据处理能力在高速数字信号处理方面得到广泛的应用。美国TI公司是DSP领域影响最大的公司之一,TMS320VC5402是该公司TMS320C54x系列DSP的代表产品,它以其极高的性价比而成为目前应用最为广泛的DSP芯片之一。在以C5402 DSP为核心组成的数据采集系统中,用户一般需要在采集完一段数据后对其进行处理。采用查询方式采集数据会占用大量CPU的资源,采用中断方式来采集数据虽可以提高CPU的利用率,但是在采集数据的每个时刻还是由CPU来完成,同时降低了程序的可读性。本文设计的数据采集系统利用C5402的存储器直接存储控制DMA与多通道缓冲串行口McBSP结合来设计系统,使得CPU正常工作与DMA数据采集并行进行,提高了DSP的运行效率。1.3 设计的目的和意义由C54xDSP的DMA通道与多路缓冲串行口McBSP相结合的数据采集系统,具有结构简单、采集速度快、实现性能好及便于实现多通道数据采集等优点。此次设计利用VC5402的DMA通道和McBSP接口,以及音频接口芯片TLC320AD50构成语音信号的采集和回放系统。总体设计思想是:先利用模/数转换器(ADC)将输入的模拟音频信号转换为数字音频信号,然后经过DSP的DMA和McBSP对数字音频信号进行采集和回放,最后由数/模转换器(DAC)将回放的数字音频信号转换为模拟音频信号输出。选择TMS320C54xDSP的McBSP与DMA作为毕业设计的核心内容,具有很好的实践意义,对于学生掌握同类DSP的产品开发具有重要作用。第二章 数字信号处理的介绍数字信号处理(DSP)自1965年由Cooley和Tukey提出DFT(离散傅里叶变换)的高效快速算法(Fourier Transform,简称FFT)以来,已有近40年的历史。随着计算机和信息技术的发展,数字信号处理技术已形成一门独立的学科系统。数字信号处理作为一门独立学科是围绕着三个方面迅速发展的:理论、现实和应用。作为数字信号理论,一般是指利用经典理论(如数字、信号与系统分析等)作为基础而形成的独特的信号处理理论,以及各种快速算法和各类滤波技术等基础理论。由此在各个应用领域如语音与图象处理、信息的压缩与编码、信号的调制与调解、信道的辨识与均衡、各种智能控制与移动通讯等都延伸出各自的理论与技术,到目前可以说凡是用计算机来处理各类信号的场合都引用了数字信号处理的基本理论、概念和技术。数字化技术有今天的飞速发展,是依仗于强大的软、硬件环境支撑。作为数字信号处理的一个实际任务就是要求能够快速、高效、实时完成处理任务,这就要通过通用或专用的数字信号处理器来完成。因此,数字信号处理器是用来完成数字信号处理任务的一个软、硬件环境和硬件平台。2.1 DSP芯片的概述DSP芯片,也称数字信号处理器,是一种具有特殊结构的微处理器。DSP芯片的内部采用程序和数据分开的哈佛结构,具有专门的硬件乘法器,广泛采用流水线操作,提供特殊的DSP 指令,可以用来快速地实现各种数字信号处理算法。根据数字信号处理的要求,DSP芯片一般具有如下的一些主要特点:(1) 在一个指令周期内可完成一次乘法和一次加法。(2) 程序和数据空间分开,可以同时访问指令和数据。(3) 片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问。(4) 具有低开销或无开销循环及跳转的硬件支持。(5) 快速的中断处理和硬件I/O支持。(6) 具有在单周期内操作的多个硬件地址产生器。(7) 可以并行执行多个操作。(8) 支持流水线操作,使取指、译码和执行等操作可以重叠执行。与通用微处理器相比,DSP芯片的其他通用功能相对较弱些。2.2 DSP芯片的分类DSP的芯片可以按照以下的三种方式进行分类。1按基础特性分这是根据DSP芯片的工作时钟和指令类型来分类的。如果DSP芯片在某时钟频率范围内的任何频率上能正常工作,除计算速度有变化外,没有性能的下降,这类DSP芯片一般称之为静态DSP芯片。如果有两种或两种以上的DSP芯片,它们的指令集和相应的机器代码机管脚结构相互兼容,则这类DSP芯片称之为一致性的DSP芯片。2按数据格式分这是根据DSP芯片工作的数据格式来分类的。数据以定点格式工作的DSP芯片称之为定点DSP芯片。以浮点格式工作的称为DSP芯片。不同的浮点DSP芯片所采用的浮点格式不完全一样,有的DSP芯片采用自定义的浮点格式,有的DSP芯片则采用IEEE的标准浮点格式。3按用途分按照DSP芯片的用途来分,可分为通用型DSP芯片和专用型的DSP芯片。通用型DSP芯片适合普通的DSP应用,如TI公司的一系列DSP芯片。专用型DSP芯片市为特定的DSP运算而设计,更适合特殊的运算,如数字滤波,卷积和FFT等。2.3 DSP芯片的选择设计DSP应用系统,选择DSP芯片时非常重要的一个环节。只有选定了DSP芯片才能进一步设计外围电路集系统的其它电路。总的来说,DSP芯片的选择应根据实际的应用系统需要而确定。一般来说,选择DSP芯片时考虑如下诸多因素。1. DSP芯片的运算速度。运算速度是DSP芯片的一个最重要的性能指标,也是选择DSP芯片时所需要考虑的一个主要因素。DSP芯片的运算速度可以用以下几种性能指标来衡量:(1) 指令周期。就是执行一条指令所需要的时间,通常以ns为单位。(2) MAC时间。即一次乘法加上一次加法的时间。(3) FFT执行时间。即运行一个N点FFT程序所需的时间。(4) MIPS。即每秒执行百万条指令。(5) MOPS。即每秒执行百万次操作。(6) MFLOPS。即每秒执行百万次浮点操作。(7) BOPS。即每秒执行十亿次操作。2DSP芯片的价格。根据一个价格实际的应用情况,确定一个价格适中的DSP芯片。3 DSP芯片的硬件资源。4 DSP芯片的运算速度。5 DSP芯片的开发工具。6 DSP 芯片的功耗。7 其它的因素,如封装的形式、质量标准、生命周期等。DSP应用系统的运算量是确定选用处理能力多大的DSP芯片的基础。那么如何确定DSP系统的运算量以选择DSP芯片呢?1 按样点处理按样点处理就是DSP算法对每一个输入样点循环一次。例如;一个采用LMS算法的256抽头德的自适应FIR滤波器,假定每个抽头的计算需要3个MAC周期,则256抽头计算需要256*3=768个MAC周期。如果采样频率为8KHz,即样点之间的间隔为125s的时间,DSP芯片的MAC周期为200s,则768个周期需要153.6s的时间,显然无法实时处理,需要选用速度更快的芯片。2 按帧处理有些数字信号处理算法不是每个输入样点循环一次,而是每隔一定的时间间隔(通常称为帧)循环一次。所以选择DSP芯片应该比较一帧内DSP芯片的处理能力和DSP算法的运算量。假设DSP芯片的指令周期为P(ns),一帧的时间为(ns),则该DSP芯片在一帧内所提供的最大运算量为/ P 条指令。2.4 DSP处理器特点与发展方向2.4.1 DSP处理器的特点1哈佛结构DSP芯片普遍采用数据总线和程序总线分离的哈佛结构或改进的哈佛结构,比传统处理器的冯诺伊曼结构有更快的指令执行速度。 (1) 冯诺伊曼(Von Neuman)结构 该结构采用单存储空间,即程序指令和数据共用一个存储空间,使用单一的地址和数据总线,取指令和取操作数都是通过一条总线分时进行。当进行高速运算时,不但不能同时进行取指令和取操作数,而且还会造成数据传输通道的瓶颈现象,其工作速度较慢。传统处理器的冯诺伊曼结构如图2-1所示。图2-1 冯诺伊曼(Von Neuman)结构(2)哈佛(Harvard)结构该结构采用双存储空间,程序存储器和数据存储器分开,有各自独立的程序总线和数据总线,可独立编址和独立访问,可对程序和数据进行独立传输,使取指令操作、指令执行操作、数据吞吐并行完成,大大地提高了数据处理能力和指令的执行速度,非常适合于实时的数字信号处理。微处理器的哈佛结构如图2-2所示。图2-2 哈佛(Harvard)结构(3)改进型的哈佛结构改进型的哈佛结构是采用双存储空间和数据总线,即一条程序总线和多条数据总线。其特点如下: 允许在程序空间和数据空间之间相互传送数据,使这些数据可以由算术运算指令直接调用,增强芯片的灵活性; 提供了存储指令的高速缓冲器(cache)和相应的指令,当重复执行这些指令时,只需读入一次就可连续使用,不需要再次从程序存储器中读出,从而减少了指令执行作需要的时间。如:TMS320C6200系列的DSP,整个片内程序存储器都可以配制成高速缓冲结构。2用指令流水线计算机在执行一条指令时,要通过取指、译码、取数、执行等各阶段。由于DSP哈佛结构指令的各个阶段可以重叠进行,这样对每一条指令似乎都是在一个周期内完成,可以把指令周期减到最小,增加数据吞吐量。这种流水线操作也不是十全十美的,其主要原因是,一项处理很难被分解成若干个处理规模一致、在时间上有最佳配合的流水段,因而需要用寄存器协调流水线工作。流水线操作适用于循环操作时间足够长或多个数据点反复执行同一指令的情况。这是由于,流水线启动和停止的阶段是流水线逐步被填满和出空的过程。对于一次性非重复计算,流水线不可能达到稳态,反而用主要时间做填满和出空操作,因而是不合适的。 3采用多总线结构 DSP芯片都采用多总线结构,可同时进行取指令和多个数据存取操作,并由辅助寄存器自动增减地址进行寻址,使CPU在一个机器周期内可多次对程序空间和数据空间进行访问,大大地提高了DSP的运行速度。如:TMS320C54x系列内部有P、C、D、E等4组总线,每组总线中都有地址总线和数据总线,这样在一个机器周期内可以完成如下操作: 从程序存储器中取一条指令; 从数据存储器中读两个操作数; 向数据存储器写一个操作数4硬件乘法/累加器在卷积、数字滤波、FFT、相关、矩阵运算等算法中,都有SA(k)B(nk)一类的运算,其中包含大量重复乘法和累加。在通用计算机的乘法用软件实现,需要用若干个机器周期。而DSP有专用的硬件乘法器,使用MAC指令(取数、乘法、累加),可以在单周期内完成。5多种寻找方式循环寻址(Circular addressing),位倒序(bit-reversed)等特殊指令,使FFT、卷积等运算中的寻址、排序及计算速度大大提高。1024点FFT的时间己小于1ms。6独立的DMA总线和控制器有一组或多组独立的DMA总线,可以与CPU的程序、数据总线并行工作。在不影响CPU工作的条件下,DMA速度已达800Mbyte/s以上。(6)多处理器接口现在的DSP中大多都提供了串口和并口,使多个处理器可以很方便的并行或串行工作。如TMS320C40有6个8-bit的接口,VC5420 提供MsBSP和16位的并口,ADI的ADSP21160也有类似的结构。7专用的数据地址发生器(DAG)在DSP运算中,存储器的访问具有可预测性。例如在FIR滤波中,样本、系数都是顺序访问的,因此在DSP芯片中专门设置数据地址发生器。其实它也是一个ALU单元,具有简单的运算能力。在通用机的CPU中,数据地址和数据处理都由同一ALU完成。例如在8086中,做一次加法需要三个周期,而计算一次地址需要56 周期,这样会耗费大量的时间。在DSP芯片中就不需要这样的额外开销。另外在DSP芯片的数据地址产生中还支持间接寻址、循环寻址、倒位寻址等特殊操作,以适应DSP运算的各种寻址需求。8所有DSP芯片都包含JTAG(Joint Test Action Group)标准测试接口(IEEE 1149标准接口),便于对DSP作片上的在线仿真和多DSP条件下的调试2.4.2 DSP的发展方向1更高的运行速度和信号处理速度 2多DSP协同工作 3更方便的开发环境 3大量专用DSP的出现(DSP核) 4更低的价格,或更高的性能/价格比 5更广泛的应用(每年以30增长) 6更低的功耗(55X 0.05mw/MIPS) 2.5 DSP芯片的应用自从DSP芯片诞生以来,DSP芯片得到了飞速的发展。DSP芯片高速发展,一方面得益于集成电路的发展,另一方面也得益于巨大的市场。在短短的十多年时间,DSP芯片已经在信号处理、通信、雷达等许多领域得到广泛的应用。目前,DSP芯片的价格也越来越低,性能价格比日益提高,具有巨大的应用潜力。DSP芯片的应用主要有:(1) 信号处理-如,数字滤波、自适应滤波、快速傅里叶变换、相关运算、频谱分析、卷积等。(2) 通信-如,调制解调器、自适应均衡、数据加密、数据压缩、回坡抵消、多路复用、传真、扩频通信、纠错编码、波形产生等。(3) 语音-如语音编码、语音合成、语音识别、语音增强、说话人辨认、说话人确认、语音邮件、语音储存等。(4) 图像/图形-如二维和三维图形处理、图像压缩与传输、图像增强、动画、机器人视觉等。(5) 军事-如保密通信、雷达处理、声纳处理、导航等。(6) 仪器仪表-如频谱分析、函数发生、锁相环、地震处理等。(7) 自动控制-如引擎控制、深空、自动驾驶、机器人控制、磁盘控制。(8) 医疗-如助听、超声设备、诊断工具、病人监护等。(9) 家用电器-如高保真音响、音乐合成、音调控制、玩具与游戏、数字电话/电视等2.6 TMS320C54xDSP芯片TMS320C54x(简称C54x)是TI公司为实现低功耗、高速实时信号处理而专门设计的16位定点数字信号处理器,采用改进的哈佛结构,具有高度的操作灵活性和运行速度,适应于远程通信等实时嵌入式应用的需要,现已广泛地应用于无线电通信系统中。TMS320C54x是为实现低功耗、高性能而专门设计的定点DSP芯片,其主要应用是无线通信系统等。该芯片的内部结构与TMS320C5x不同,因而指令系统与TMS320C5x和TMS320C2x等是互不兼容的。 2.6.1 TMS320C54xDSP芯片的基本特点1中央处理单元(1)先进的多总线结构,有一条程序总线(PB),三条数据总线(CB,DB和EB)和四条地址总线(PAB,CAB,DAB和EAB)。(2)1个40位的算术逻辑单元(ALU),1个40位的桶形移位器和2个独立的40位累加器A和B。(3)1个17x17的乘法器和两个40位加法器,乘法器可以耦合到加法器以完成单周期的MAC指令。(4)内部集成了维特比加速器以及与它相关的比较,选择和存储单元(CSSU)。(5)指数编码器用来在单周期内计算40位累加器值的指数。(6)2个地址产生器,其中包括8个辅助寄存器和2个辅助寄存器运算单元。2存储器192Kx16-bit可寻址存储空间,其中包括64K字程序空间,64K字数据空间和64K字I/O空间,对于548,549,5402和5410还可以外部扩展程序空间3数据寻址54X提供了7种数据寻址方式:(1)立即数寻址(2)绝对寻址(3)累加器寻址(4)直接寻址(5)间接寻址(6)存储器映射寄存器寻址(7)堆栈寻址4程序存储器寻址使用程序计数器(PC)寻址,但是,对于一些指令需要用到绝对寻址5中断54X支持软件中断(如INTR,TRAP,RESET)和硬件中断,中断可分为可屏蔽中断(如TINT,INT0等)和不可屏蔽中断(如RESET和NMI),其中RESET的优先级最高,不可屏蔽中断的优先级高于可屏蔽中断的优先级,硬件中断的优先级则高于软件中断的优先级。6流水线54X有6级流水线:预取指,取指,解码,访问,读取和执行。7运算速度指令周期为25/20/15/12.5/10ns,运算能力为40/50/66/80/100MIPS(百万条指令/秒)。8低功耗方式TMS320C54X可以在3.3V或2.7V电压下工作,三个低功耗方式(IDLE1,IDLE2和IDLE3)可以节省DSP的功耗,所以它特别适合于无线移动设备。9片上的外设(1)可软件编程的等待状态发生器,使得与速度较慢的设备通讯更加方便;(2)片上的锁相环时钟发生器可以对外部始终信号进行倍频或分频,从而得到自己所需要的时钟频率,当分频时还可节省系统的功耗;(3)可以禁止对外部数据总线,地址总线以及控制信号的控制;(4)可以软件编程的定时器;(5)一些特殊的端口:标准的同步全双工串行口和时分复用(TDM)串行口,自动缓冲串行口(auto-BSP),多通道缓冲串行口(MCBSP),直接内存访问(DMA)控制器和与外部处理器通信的HPI(Host Port Interface)接口。每一个型号的芯片都有各自不同的端口配置。10符合国际IEEE 1149.1标准的边界扫描逻辑接口,即JTAG扫描逻辑电路,用于仿真和测试,可以实现在线仿真。第三章 CCS集成开发工具的介绍CCS(Code Composer Studio)是TI公司推出用于开发DSP芯片的集成环境,它集编辑、编译、链接、软件仿真、硬件调试以及实时跟踪等功能于一体。对于TI公司以前版本的CCS, 通常一种型号CCS 只适用于一种系列的DSP芯片,例如C5000 CCS只适用于5000系列的DSP芯片如C54xx和C55xx,而Code Composer Studio IDE v3.1版本支持多种型号的DSP芯片及ARM单片机,其中包括C24x、C24xx、C27xx、C28xx、C54xx、C55xx、C62xx、C64xx、C67xx、OMAP、ARM7 、ARM9和ARM11等。本章首先简单介绍TI公司用于开发DSP应用程序的CCS集成开发环境的组件构成和主要功能,然后学习使用Code Composer Studio IDE v3.1(即CCS_v3.1)版本进行安装和配置软件仿真目标板等,最后的实验是使用CCS 仿真软件来配置存储器空间及其寻址方式等。3.1 CCS集成开发环境的构成CCS集成开发由以下几个组件构成:1)集成代码产生工具;2)CCS集成开发环境;3)DSP/BIOS实时内核插件及其应用程序接口API;4)实时数据交换的RTDX插件以及相应的程序接口API;5)由TI公司以外第三方提供的各种应用模块插件;6)用来对C语言、汇编语言或混合语言编程的DSP源程序,进行编译汇编并链接成可执行的DSP程序。主要包括汇编器、链接器、C/C+编译器和建库工具等。3.2 CCS集成开发环境的主要功能CCS集成开发环境的功能十分强大,它集成了代码编辑、编译、链接、软件仿真、硬件调试和实时跟踪等诸多功能,包括编辑工具、工程管理工具和调试工具等,而且支持C/C+和汇编的混合编程。其主要功能如下:(1)具有集成可视化代码编辑界面。用户可通过其界面直接编写C语言、汇编语言和.cmd命令文件等;(2)含有集成代码生成工具。包括汇编器、优化C编译器和链接器等,将代码的编辑、编译、链接和调试等诸多功能集成到一个软件环境中;(3)高性能编辑器。支持汇编文件的动态语法加亮显示,使用户很容易阅读代码,发现语法错误;(4)工程项目管理工具可对用户程序实行项目管理。在生成目标程序和程序库的过程中,建立不同程序的跟踪信息,通过跟踪信息对不同的程序进行分类管理;(5)基本调试工具。具有装入执行代码、查看寄存器、存储器、反汇编、变量窗口等功能,并支持C源代码级调试; (6)断点工具。能在调试程序的过程中,完成硬件断点、软件断点和条件断点的设置;(7)探测点工具。可用于算法的仿真,数据的实时监视等;(8)分析工具。包括模拟器和仿真器分析,可用于模拟和监视硬件的功能、评价代码执行的时效;(9)数据的图形显示工具。可以将运算结果用图形显示,包括显示时域/频域波形、眼图、星座图和图像等,并能进行自动刷新;(10)提供GEL工具。利用GEL扩展语言,用户可以编写自己的控制面板/菜单,设置GEL菜单选项,方便直观地修改变量和配置参数等;(11)支持多DSP调试;(12)支持RTDX技术。可在不中断目标系统运行的情况下,实现DSP与其它应用程序的数据交换;(13)提供DSP/BIOS工具。增强对代码的实时分析能力。3.3 CCS开发应用程序利用CCS集成开发环境,用户可以在一个开发环境下完成工程定义、程序编辑、编译链接、调试和数据分析等工作环节。CCS开发应用程序的一般步骤:打开或创建一个工程文件。工程文件中包括源程序(C或汇编)、目标文件、库文件、连接命令文件和包含文件。编辑各类文件。如头文件(.h文件),命令文件(.cmd文件)和源程序(.c,.asm文件)等,可以使用一般的编辑软件或CCS集成编辑环境进行各类文件编辑。对工程进行编译,如果有语法错误,将在构建(Build)窗口中显示出来,用户可以根据显示的信息定位错误位置,更改错误。排除程序的语法错误后,用户可以对计算结果/输出数据进行分析,评估算法性能,CCS提供了探针、图形显示、性能测试等工具来分析数据、评估性能。图3-1 CCS集成环境窗口示例图3-1中为一个典型的CCS集成环境窗口示例,整个窗口由主菜单、工具条、工程窗口、编辑窗口、图形显示窗口、内存单元显示窗口和寄存器显示窗口等构成。3.3.1 建立工程文件CCS采用工程文件来集中管理一个工程,一个工程包括源程序、库文件、链接命令文件和头文件等,它们按照目录树的结构组织在工程文件中。工程构建(编译链接)完成后生成可执行文件,工程视窗显示了工程的整个内容。例如图2-4显示了工程codec_eg.mak所包含的内容。其中Include文件夹包含源文件中以“.include”声明的文件,Libraies文件夹包含所有后缀为“.lib”的库文件,Source文件夹包含所有后缀为“.c”和“.asm”的源文件。文件夹上的“+”符号表示该文件夹被折叠,“-”表示该文件夹被展开。命令Project New用于创建一个新的工程文件(后缀为“.mak”),此后用户就可以编辑源程序、链接命令文件和头文件等,然后加入到工程中。工程编译链接后产生的可执行程序后缀为“.out”。命令Project Open用于打一个已存在的工程文件。 例如用户打开位于“c:tic5400dsk examplesdsp”目录下的codec_eg.mak工程文件,工程中包含的各项信息也被载入,其工程窗口。如图3-2所示。图3-2 工程目录3.3.2在工程中添加删除文件以下任一操作都可以添加文件到工程中: 选择命令Project Add File to Project 在工程视图中右键单击调出关联菜单,选择Add File在工程中源文件、链接命令文件及库文件(Libraries)需要用户指定加入,头文件(Include文件)通过扫描相关性(Scan All Dependencies)自动加入到工程中。在工程视图中右键单击某文件,从关联莱单中选择“Remove from project”可以从工程中删除此文件。3.3.3 编辑源程序CCS集成编辑环境可以编辑任何文本文件(对C程序和汇编程序),可以打开多个窗口或对同一文件打开多个窗口,进行多窗口显示。点击主莱单命令File New Source File弹出编辑窗口进行编辑。3.3.4调试(1)装载可执行程序 FileLoad Program (2)复位(CCS提供4种方法) Reset DSP: DebugReset DSP命令初始化所有R并停止运行程序。 Load Kernel: Lode Kernel 命令重新装入DSP核 Restart: Debug Restart 命令将PC恢复到当前载入程序的入口地址,但不执行当前程序。 Go main: Debug Go main命令提供了一种快速运行用户应用程序的方法。(3)程序执行方式 单步执行操作 单步进入:DebugStep Into: 每操作一次,执行一条指令; 单步执行:DebugStep Over: 每操作一次,执行一条指令(函数,子程序看作一条); 单步调出:DebugStep Out: 从子程序跳出; 执行到光标处:Debug Run to Cursor:程序运行到光标所在语句。 连续运行操作(实时运行) 运行程序:DebugRun:从当前PC所指位置开始执行到结束或断点; 停止程序:Debug Halt:暂停程序的执行; 自由运行:Debug Run free:全速执行用户程序,忽略所有断点。 断点运行程序 在执行各个命令前应当预先设置好程序断点,每按一次按钮,从当前程序位置执行到所有遇到的第一个断点,。 命令:Debug animate; 断点设置: 探针(probe)断点:CCS在源程序某条语句上设置的一种断点。每个探针断点都有相应的属性(用户设置)用来与一个文件的读/写相关联。用户程序运行到探针断点所在语句时,自动读入数据或将计算结果输出到某个文件中。 (4)存储器、寄存器、变量的操作 存储器:拷贝数据块/填充数据块/察看/编辑内存 寄存器:显示寄存器/编辑寄存器 变量:用观察窗口查看变量/编辑变量 (5)数据输入/输出 利用数据读入/写出功能命令:FileData(Lode /Save)用途:偶尔的手工读入/写出场合 利用探针功能:适用于自动调入和输出数据场合(6)图形窗口分析数据 提供了四类9种显示功能:每种显示所需的设置参数各不相同。 时频图 星座图:信号的相位分布; 眼图:信号码间干扰情况; 图像显示:YUV或RGB; 第四章 DMA与McBSP接口软硬件设计4.1多通道缓冲串口(McBSP)McBSP串口是在TDM串口和BSP串口的基础上发展而来的,它既可以实现时分多路通讯功能,又可以通过DSP提供的DMA功能实现不用CPU参与的自动缓存功能。从而把DSP从繁重的串口通讯中解放出来,提高了运行的效率。McBSP与外设的数据交换是通过DX和RX引脚来完成,通信时钟与帧信号分别由CLKX、CLKR、FSX和FSR引脚控制,TMS320VC5409对McBSP的控制是通过16位控制寄存器实现。在数据采集过程中,帧同步信号表示一次数据传输的开始,且在帧内数据流是连续的,即在各字之间和各相之间不存在间隙。1数据接收和发送过程数据的接收和发送分别经过三级缓冲和两极缓冲完成。DSP的CPU或DMA从数据接收寄存器DRR读取接收数据,发送时向数据发送寄存器DXR写待发送的数据。数据写入DXR后通过传输移位寄存器XSR移位输出到DX引脚上,同样,从DR上接收到的数据移位存储到接收移位寄存器RSR,并拷贝到接收缓存寄存器RBR,然后,再由RBR拷贝到DRR,DRR可以由CPU或DMA来读出。2McBSP的初始化过程(1)设置通用控制寄存器SPCR使XRST=RRST=FRST=0,进行串口复位。如果DSP已复位则不需要这一步;(2)在串口复位状态下,设置McBSP的控制寄存器;(3)等待两个位周期,以确保内部时钟同步;(4)写数据到DXR;(5)设置XRST=RRST=l,使能串口;(6)如果需要内部产生帧同步脉冲,设置FRST=1;(7)等待两个位周期,串口的发送与接收被激活。4.2 DMA的工作模式DMA控制器可以在无须CPU干涉的情况下,完成存储器块间的数据移动,允许从片内存储器、片内外设和片外存储器写或读数据。DMA拥有6个独立可编程的通道,同时也支持HPI接口操作。TMS320VC5409系列DSP的DMA还具有:多帧传输、可编程地址发生器、全地址范围、可编程字宽、DMA同步事件、帧计数器等特点。DMA的配置与控制,通过一组存储器映射寄存器采用子地址方式来实现。每个DMA通道由五个相关寄存器控制:原地址寄存器、目标地址寄存器、部件计数寄存器、同步与帧控制寄存器和传输模式寄存器。(1) 源地址寄存器DMSRC规定DMA要传送源数据的首地址;(2) 目的地址寄存器DMDST规定DMA要传送数据目的地址的首地址;(3) 部件计数寄存器DMCTR规定DMA传送数据的个数为DMCTR寄存器的值加1个;(4) 同步与帧控制寄存器DMSFC规定DMA传送数据的同步事件类型和传送一块数据所含帧信号的个数;(5) 传输模式控制寄存器DMMCR规定了DMA通道的传输模式。此外,DMA的6个通道还受通道优先级和使能控制寄存器DMPREC控制,在DMPIEC中如果相应通道的DPRC位为1,则选择该通道为高优先级;如果相应通道的DE位为1,则该通道使能并开始工作。4.3 硬件设计为了满足音频采集和回放系统高速数据处理功能的要求,选择性能价格比高的could402DSP为系统的信号处理芯片。语音信号采集与回放系统硬件框架如图4-1所示。按照图4-1的数据流向,有以下几点说明: TCL320AD50是TI公司生产的一款音频编码解码串行模拟接口芯片(AIC),简称AD50。其内部集成16位A/D和D/A转换器、抗混叠滤波器和重构滤波器,以及能与许多DSP芯片相连接的同步串行通信接口。AD50片内还有一个定时器(调整采样率和帧同步延时)和控制器(调整编程放大增益、锁相环PLL和主从模式)。采样速率最高22.05kHz,采样速率可通过编程设置。在本系统中,AD50完成模拟音频信号和数字音频信号转换。TCL320AD50McBSP1TMS320VC5402采集缓冲区DMA通道2DMA通道3回放缓冲区RVETDRR1DXR1RVETADDDAC图4-1 语音信号采集与回放系统硬件框图 AD50与DSP在片外围接口McBSP之间的串行通信满足SPI协议。其中,AD50是SPI的主设备,串行通信的接收/发送时钟信号和接收/发送帧同步信号均由AD50产生;McBSP则是SPI的从设备。AD50与McBSP的硬件连接如图4-2所示。 数据的采集与回放是由DSP的DMA与McBSP相结合来完成。VC5402片内有2个多路缓冲串行口(McBSP0和McBSP1)和6个DMA通道(DMA0DMA5)。由图4-1可见,本系统需要使用1个多路缓冲串行口和2个DMA通道,分别选择McBSP1、DMA2和DMA3。SCLKFSDOUTDINM/S3.3VBCLKXBCLKRBFSXBFSRBDRBDX语音模拟信号输入8.192 MHzTLC320AD50TMS320VC5402图4-2 AD50与McBSP的硬件连接图 本系统分为语音采集和语音回放两个部分。DSP中存放采集数据的缓冲区称为输入缓冲区,存放回放数据的缓冲区成为输出缓冲区。AD50的ADC将模拟音频信号转换为数字音频信号,然后由DMA2通道和McBSP1的接收通道进行数据采集,并将数据存入输入缓冲区,此过程为语音信号的采集。DMA3通道和McDSP1的发送通道一起,将输入缓冲区的回放数据发送到AD50的DAC,由DAC将其转换成模拟音频信号输出,从而实现了语音信号的回放。在这里,CPU的任务是将采集数据从输入缓冲区传送到输出缓冲区,形成回放数据。DMA与CPU的工作是并行进行的。 4.4 软件设计4.4.1软件流程图本系统的软件流程图如图4-3和图4-4所示。语音信号采集与回放系统的软件由主程序和中断服务程序两部分构成。主程序包括VC5402、McBSP1、AD50C和DMA通道2的初始化程序,以及开放和等待中断等;中断服务程序包括McBSP1发送通道的启动、DMA通道3的的初始化和使能,以及数据的搬移和数据的回放等。此外,系统软件还包括中断向量文件(.vector)和链接命令文件(.cmd)。图4-4中的初始帧是系统开始工作的第一帧数据,而当前帧是指最新采集的一帧数据。4.4.2主程序主程序并不复杂,而是按照一定的顺序调用初始化子程序。首先是对VC5402初始化,其次是McBSP1初始化,接下来是AD50初始化和DMA2初始化。它们是有一定顺序的。由于在做初始化的过程中不能被中断,所以程序一开始就要被屏蔽所有中断。 VC5402初始化程序完成对CPU工作状态和时钟的设置。 McBSP1初始化程序设置的McBSP1工作状态为:运行在时钟自由运行状态下;接收/发送帧同步信号和移位时钟信号均由外界驱动;每帧一字,每字16位;接收数据和发送数据都延时。 AD50的初始化程序的内容为:l 设定AD50为从模式通信状态。AD50与DSP之间的串行通信分为:主模式和从模式。主模式下通信的是音频数据,AD50与DSP之间一般都是进行主模式通信,从模式通信则是用来读/写控制寄存器的值,且仅仅当有从模式请求时才进行。l 将16位DAC设置为15+1位模式。其中,高15位代表数据,最低位则用来申请从模式通信。当DSP输入一个最低位为1的16位数据到DAC时,就表示申请从模式通信。l 初始化控制寄存器。AD50需要初始化的控制寄存器有4个:寄存器1、寄存器2、寄存器3和寄存器4,必须按照1243的顺序进行初始化。l AD50控制寄存器的初始化内容:选择INP/INM为模拟信号输入端,16位ADC模式,工作在主机模式,从带从机,采样频率为2000Hz,模拟信号输入和输出的放大增益均为0dB。l AD50在初始化之前要先复位,这是与具体硬件连接有关系,因此,在所提供的AD50初始化程序中,程序开始要自行加上复位AD50的语句。开始初始化McBSP1启动McBSP1的接收通道和发送通道初始化VC5402关闭CPU中断初始化自定义程序控制标志初始化AD50初始化DMA通道2允许CPU中断开放DMA2中断循环,等待中断图4-3 主程序流程图保护现场判断当前帧是否为初始帧?测试DMA3是否在传送?启动McBSP1发送通道初始化并使能DMA通道3搬移当前帧数据恢复现场中断返回YNY(等待)N图4-4 中断服务程序流程图 DMA2初始化程序用来配置DMA2通道的工作参数:l 选择McBSP1的接收寄存器DRR11(41h)为DMA2传送数据的源地址,并选择源地址工作在访问后不调整方式。DMA2的目的地址是输入缓冲区首地址,目的地址在访问后自动加1。l 选择DMA2通道同步事件为McBSP1接收事件,从而实现了DMA与McBSP的结合。l 选择DMA2工作在多帧模式,自动初始化有效。设置实现了DMA2传输的一块数据有3帧,每帧有500h个单位,每个单位为16位。选择每一帧或者每一块数据传输结束后产生DMA2中断请求。l 当McBSP1接收数据寄存器DRR11中有数据时,同步事件(McBSP1接收事件)发生,DMA2通道被触发开始一次单元传送,将DRR11中的数据搬移到输入缓冲区中。当完成一帧或者一块数据的传送时,DMA2向CPU发送中断请求。CPU响应DMA2中断请求,开始执行中断服务程序。4.4.3 中断服务程序由图4-4可知,中断服务程序主要由两部分组成:数据搬移和数据回放。输入缓冲区分为3帧,输出缓冲区分为2帧,每帧大小为500h。每次中断服务程序中搬移一帧的数据。“frame”标志当前帧是输入局域的第几帧,“currbuff”实现交替使用输出缓冲区的两帧,“flag”则用来判断当前帧是否是初始帧。若flsg=0,当前帧是初始帧,CPU将输入缓冲区第一帧数据搬移到输出缓冲区第二帧,不执行数据回放。若flsg=0AAh,当前帧不是初始帧,先执行数据回放,然后再根据frame和currbuff的值,将当前帧数据搬移到输出缓冲区中。数据回放按以下步骤进行: 测试DMA3是否使能。DMA3工作在非自动初始化状态,一旦数据块传输结束会自动关闭使能。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论