摘要:本文主要介绍了PIC16F877型号单片机的结构特征,语句特点数.doc_第1页
摘要:本文主要介绍了PIC16F877型号单片机的结构特征,语句特点数.doc_第2页
摘要:本文主要介绍了PIC16F877型号单片机的结构特征,语句特点数.doc_第3页
摘要:本文主要介绍了PIC16F877型号单片机的结构特征,语句特点数.doc_第4页
摘要:本文主要介绍了PIC16F877型号单片机的结构特征,语句特点数.doc_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

第 31页 共31 页引言在实时信号处理领域(如实时滤波、通信中的实时解调),通用微处理器运算能力弱,且处理速度低,难以达到实时性的要求。根据数字信号处理的要求,DSP芯片一般具有如下的一些主要特点:在一个指令周期内可完成一次乘法和一次加法;程序和数据空间分开,可以同时访问数据空间和程序空间;具有低开销或零开销循环及跳转的硬件支持;片内具有快速RAM,通常可通过独立的数据总线同时访问两块芯片;快速的中断处理和硬件I/O支持;具有在单周期内操作的多个硬件地址产生器;可以并行执行多个操作;支持流水线操作,取指、译码和执行等操作可以流水执行。以上特点使得DSP在通信和信号处理领域得到了广泛的应用。DSP芯片TMS320VC5402就是具有以上特点的高性能数字信号处理器。本文主要研究该DSP芯片的系统硬件设计开发和应用,并设计出一块基于DSP芯片TMS320VC5402的实用开发板。该板将芯片片内部分模块单元引出以便做外部扩展。这些扩展的模块包含串行口、定时计数器、数据地址总线接口和通用I/O等。为验证这些接口,系统设计了A/D、D/A子板,显示子板,使该系统既可对模拟信号进行多种数字算法处理,也可将处理后的信号进行实时回放,同时友好的人机界面还可以对数字信号处理中某些算法的相关参数进行实时设定。更进一步,系统实现了两个应用:一个是FIR滤波器,一个是2FSK已调信号的数字解调,以评价该系统的性能。滤波器是电子系统中的一个重要部分,它可以滤除干扰信号,提取出有用信号。随着DSP技术的日新月异,FIR滤波器的实现得到广泛的推广。本文基于FIR滤波器的原理,实现了一个性能优异的数字滤波器,该滤波器可通过人机界面修改输入参数以实现不同特性的滤波器。2FSK数字解调采用延时自相干解调算法,该算法具有易于与数字信号处理器相结合、适用频带宽、抗干扰能力强、解调无需同频同相相干载波等特点。为实现这个算法,需对2FSK已调信号进行直接采样,这样的架构是一种典型的软件无线电体系。由于该体系的开放性和可扩展性,使得本系统可作为一个通用平台,把尽可能多的通信功能用可升级、可替换的软件来实现:当载波频率和码元速率等参数改变以后,只需要改变软件而不需要改变硬件就可以实现解调。由于解调的调试需要2FSK波形信号,一般的信号源不具有此功能,因此本文探索并设计出一种基于声卡的可编程信号源,可按调试需要生成所需的任意波形。在本设计中,我们采用这种信号源产生所需2FSK已调信号,为调试带来了很大的便利,是一种很值得推广的调试技术。整个系统造价低,因此可以当作开发板来供高校教学或DSP爱好者使用,实现一些DSP应用系统,对DSP的学习很有帮助。本文共分5章。第1章主要介绍系统总体设计方案;第2章对TI公司TMS320C54X系列DSP芯片硬件结构作了较详细的介绍。因为DSP与通用微处理器有较大的不同,因此读者通过本章的介绍可以对DSP芯片的内部结构有一个较深刻的了解;第3章详细介绍了系统的硬件设计方案。本章对电路的设计、芯片的选择作了详细的论证。第4章对两个应用的软件实现作了详细讲述。一个应用是实现了一个高性能FIR数字滤波器,另一个应用是2FSK已调信号数字解调算法的实现。第5章讲解系统软硬件调试。对系统硬件调试和调试中遇到的问题作了说明,对软件调试中采用的一种具有创造性的调试方法(即对声卡编程产生所需要的2FSK已调信号)作了介绍。1 系统设计系统作为一个典型的DSP系统,由三部分组成,主板、A/D和D/A子板、显示系统。A/D和D/A、显示器件都是DSP的外围设备,DSP不能与这些器件直接连接,需要附加的逻辑电路来控制选通,因此系统采用了一块ALTERA公司的可编程逻辑器件EPM7128S,译码选通逻辑在该芯片内部实现。系统设计还考虑到高校教学和DSP爱好者学习的需要,在主板上将DSP芯片的内部的定时器、数据地址总线接口、串行口等全部以插针形式引出。系统总框图如图1.1所示:图1.1 系统总框图2 TMS320C54X系列DSP硬件介绍2.1 TMS320C54X系列DSP的内部硬件结构概述C54X DSP同TI公司其它的DSP定点数字信号处理器一样,为典型的哈佛结构。C54X DSP采用先进的修正哈佛结构和八条总线,使处理器的性能大大提高。其独立的程序和数据总线提供了高度的并行操作,允许同时访问程序存储器和数据存储器。例如,在单个周期中,可以执行三次读操作和一次写操作。具有并行存储和专门用处的指令可以利用这种并行结构。另外,数据可以在数据和程序空间之间进行传送。这种并行操作提供了强大的算术、逻辑和位操作指令集,这些操作可以在单个机器周期中执行。此外,C54X DSP还包括管理中断、重复操作和函数调用的控制机制。C54X DSP的内部硬件结构包括如下功能单元:2.1.1中央处理单元(CPU)C54X DSP所有芯片的CPU都相同,可以进行高速并行算术和逻辑处理。C54X DSP 有八条16位总线,包括四条程序/数据总线和四条地址总线,因此,可以在每个指令周期内产生两个数据存储地址,大大提高了并行数据处理速度。C54X DSP片内的数据存储空间RAM分成两类:一类是每个指令周期内可以进行两次存取操作的双访问RAM(DARAM);另一类是每个指令周期只能进行一次存取操作的单访问RAM(SARAM)。2.1.2程序存储器(ROM)C54X DSP的片内程序存储器有片内ROM、双访问RAM(DARAM)、单访问RAM(SARAM)、双访问和单访问共享的RAM(可通过软件配置为程序存储空间)。大部分C54X DSP可寻址64K字16位程序存储空间。程序空间不仅定义在ROM上,也可以定义在片上RAM中。当需要高速运行程序时,可以应用自动加载的方法,将程序载入片内RAM,提高运行效率,降低对外部ROM的速度要求。不同的C54X DSP的ROM容量配置不同。2.1.3I/O端口所有C54X DSP只有两个通用I/O,即BIO和XF。为了访问更多的通用I/O,可以对主机通信并行口和同步串行口进行配置,以用作通用I/O。另外,还可以扩展外部I/O,C54X DSP可以访问64K字的I/O,外部I/O必须使用缓冲或锁存电路,配合外部I/O读写控制时序构成外部I/O的控制电路。2.1.4主机通信接口(HPI)HPI提供与主处理器接口的并行接口。通过C54X的片内存储器实现C54X DSP和主处理器之间的信息交换。不同型号的C54X DSP,HPI配置不同。2.1.5串行接口C54X DSP的串行接口随器件的不同而不同,C54X DSP的串行接口分为四种:同步串行接口、带缓冲的同步串行接口(BSP)、多通道带缓冲串行接口(McBSP)和时分复用(TDM)串行接口。2.1.6定时器C54X DSP具有一个带有4位预定标器的16位定时电路。定时器可以由专门的状态位编程实现停止、重启动、复位和禁止。定时器计数器每次减少到0,则产生一个定时中断。在每个CLKOUT周期,定时器计数器减少1。2.1.7中断系统C54X DSP的中断可以由硬件驱动(硬件中断)或软件驱动(软件中断)。当中断产生后,C54X DSP会挂起它的主程序,而执行中断服务程序(ISR)。一般地,中断需要取数据或给数据的硬件器件产生(例如ADC、DAC和其他处理器等)。2.1.8总线结构C54X DSP片内有八条16位的总线,即四条程序/数据总线和四条地址总线。这些总线的功能如下:(1)程序总线(PB)传送取自程序存储器的指令代码和立即操作数。(2)三条数据总线(CB、DB和EB)将内部各单元(如CPU、数据地址产生逻辑、程序地址产生逻辑、片上外设以及数据存储器)连接在一起。CB和DB传送从数据存储器读取的操作数。EB传送写到存储器的数据。(3)四条地址总线(PAB、CAB、DAB和EAB)传送执行指令所需的地址。(4)C54X DSP还有一条片内双向总线,用于寻址片内外设。这条总线通过CPU接口中的总线交换器连接到DB和EB。使用这条总线的读/写访问需要两个或更多个周期,具体时间取决于外设的结构。2.2 TMS320C54X系列DSP的存储器和I/O空间2.2.1TMS320C54X DSP存储器概述通常,C54X DSP总共具有192K字16位的存储器空间。这些空间可分为三种专门的存储器空间,即64K字的程序空间、64K字的数据空间和64K字的I/O空间。在某些C54X DSP中,存储器结构已经被修改位重叠和页面调度结构,以允许使用额外的存储器空间。C54X DSP 体系结构的并行特性和片内RAM的双访问功能,允许C54X器件在任何给定的机器周期内执行四个并行存储器操作:一次取指、读取两个操作数和写一个操作数。与片外存储器相比,片内存储器具有如下优点:不需要插入等待状态、低成本和低功耗。但是,片外存储器具有寻址较大存储空间的能力片内存储器寻址空间小。C54X DSP包含随机存取存储器(RAM)和只读存储器(ROM)。RAM可分为以下三种类型:双访问RAM(DARAM)、单访问RAM(SARAM)和两种方式共享的RAM。在多CPU核心器件的子系统中,DARAM或SARAM可以被共享。用户可以配置DARAM和SARAM为数据存储器或程序/数据存储器。2.2.2存储器空间C54X DSP的存储器空间可以分成三个可单独选择的空间,即程序、数据和I/O空间。在任何一个存储空间内,RAM、ROM、EPROM、EEPROM或存储器映射外设都可以驻留在片内或者片外。程序存储空间存放要执行的指令和执行中所用的系数表。数据存储器存放执行指令所用的数据。I/O存储空间与外部存储器映射外设一起连接,也可以作为附加的数据存储空间。根据芯片型号的不同,C54X DSP包含RAM(DARAM、SARAM、两种方式共享的RAM)和ROM。RAM总是映射到数据存储空间,但也可以映射到程序存储空间。ROM一般映射到程序存储空间,也可以部分地映射到数据存储空间。C54X DSP具有三个CPU状态寄存器位,影响存储器的配置,这三个状态位是处理器模式状态寄存器(PMST)中的位:MP/MC、OVLY和DROM。具体影响如下:MP/MC位:若MP/MC0,则片内ROM映射到程序存储空间。若MP/MC1,则片内ROM不映射到程序存储空间。OVLY位:若OVLY=1,则片内RAM映射到程序和数据存储空间。若OVLY=0,则片内RAM只映射到数据存储空间。DROM位:若DROM=1,则部分片内ROM映射到数据存储空间。若DROM=0,则片内ROM不映射到数据存储空间。如图2.1所示为C54X DSP的数据和程序存储器映射,并说明了映射如何受MP/MC、OVLY以及DROM位的影响。图2.1 C54X DSP的数据和程序存储器映射2.2.3程序存储器C54X DSP的外部程序存储器可寻址64K字的存储空间。它们具有片内ROM、双访问RAM(DARAM)、单访问RAM(SARAM)和两种方式共享的RAM,这些存储器都可以通过软件映射到程序空间。片内存储器是否作为程序存储器,取决于软件对处理器工作模式状态(PMST)寄存器的状态位MP/MC和OVLY的设置。当存储单元被映射到程序空间时,并且当地址处于片内存储器的范围之内时,处理器就能自动地对这些存储单元进行访问。当程序地址产生(PAGEN)单元产生的地址处在片内存储器范围之外,处理器能自动地产生一个外部访问。2.2.4程序存储器的可配置性MP/MC和OVLY位决定了哪个片内存储器在程序空间中可用。器件复位时,MP/MC引脚的逻辑状态被传送到PMST寄存器的MP/MC位。MP/MC位决定了是否使用片内ROM:如果MP/MC1,器件被配置为微处理器,并且片内ROM不可用。如果MP/MC0,器件被配置为微计算机,并且片内ROM可用。DSP 的MP/MC引脚仅仅在复位时被采样。用户可以通过软件来设置或清楚PMST寄存器的MP/MC位,以便禁止或使能片内ROM。2.2.5片内ROM的组织为了增强处理器的性能,片内ROM可以细分和组织为若干块。例如,块组织可以让用户捕获来自于一个ROM块的指令,而不必牺牲来自不同块的数据访问(即可以同时在别的块中读取数据)。2.2.6程序存储器地址映射和片内ROM的内容当DSP复位时,复位和中断向量都映射到起始地址为FF80H的第128页的程序空间的首地址。复位后,这些向量可以被重新映射到程序空间中任何一个128字页的开头。这个特征使得很容易地将中断向量表从自举ROM中移出来,然后再从存储器映射中移去ROM。在C54X DSP的片内ROM中,128字被保留用于器件的测试。写到片内ROM并且在片内ROM执行的应用程序代码必须保留128字(FF00H-FF7FH)。2.2.7片内ROM的代码内容和映射C54X DSP片内高2K字ROM中的内容是由TI公司定义的。这2K字程序空间(F800H-FFFFH)中包含如下内容:(1)自举加载程序。从串行口、外部存储器、I/O端口或者主机接口自举加载。(2)256字U律扩展表。(3)256字A律扩展表。(4)256字正弦函数值查找表。(5)中断向量表。如果MP/MC=0,则用于代码的地址范围F800H-FFFFH被映射到片内ROM。2.2.8数据存储器C54X DSP的数据存储器包含多达64KX16位字。除了单访问和双访问RAM(SARAM和DARAM)外,C54X DSP还可以通过软件将片内ROM映射为数据存储空间(DROM)。当访问的地址处在片内存储器的范围内时,就可以对片内的RAM或数据ROM(当ROM使能为数据存储器时)寻址。当数据存储器地址产生逻辑(DAGEN)产生的地址不在片内存储器范围内时,器件会自动地对外部数据存储器寻址。2.2.9数据存储器的可配置性数据存储器可以驻留在片内或者片外。片内DARAM映射到数据存储空间。对于某些C54X DSP,用户可以通过设置PMST寄存器的DROM位,将部分片内ROM映射到数据存储空间。这一部分片内ROM既可以在数据空间使能(DROM位置1),也可以在程序空间使能(MP/MC清0)。复位时,处理器将DROM位清0。通过使用单操作数寻址指令,包括32位长字操作数的指令,可以在单周期内访问数据ROM。而在使用双操作数寻址时,如果两个操作数驻留在同一块内,则需要2个周期才能完成对数据ROM的访问;如果操作数驻留在不同的块内,则只需1个周期就可以了。2.2.10片内RAM的组织为了提高处理器的性能,片内RAM也可细分为若干块。例如,分块组织可以让用户在同一个周期内从同一块DARAM中取出两个操作数,并将数据写入到另一块DARAM中。所有C54X DSP上的DARAM的起始1K字的块包括程序存储器映射CPU和外设寄存器,32字的暂存存储器DARAM和896个字的DARAM。根据C54X DSP的不同,RAM可以组织为1K、2K或8K字的块。对于5K-RAM的DSP,一般RAM块的容量为1K字;对于6K-RAM和10K-RAM的DSP,一般RAM块的容量为2K字;对于16K-RAM的DSP,一般RAM块的容量为8K字;其他DSP具有各种RAM块大小的组合。2.2.11存储器映射寄存器64K字的数据存储器空间包括器件的存储器映射寄存器,这些寄存器驻留在数据页的第0页(数据地址为0000H-007FH)。第0页数据存储空间包含如下内容:CPU的寄存器(共26个),可以不需要插入等待周期进行访问。外设寄存器用于对外设电路进行控制和数据存放。这些寄存器驻留在地址0020H-005FH之间,并且具有一个专用的外设总线结构。暂存存储器RAM块(位于数据存储器的0060H-007FH)包括32个字的DARAM,用于存储变量,有助于避免对大RAM块进行分段。C54X DSP的CPU寄存器如表2-1所示:表2-1 C54X DSP的CPU寄存器 2.2.12TMS320C54X系列DSP的I/O空间C54X DSP除了程序和数据存储器空间外,还有一个I/O存储器空间。I/O存储器空间是一个64K字的地址空间(0000H-FFFFH),并且都在器件之外。可以使用两条指令(输入指令PORTR和输出指令PORTW)对I/O空间进行寻址。程序存储器和数据存储器空间的读取时序于I/O空间的读取时序不同,在于访问I/O是对I/O映射的器件进行访问,而不是访问存储器。所有C54X DSP只有两个通用I/O,即BIO和XF。为了访问更多的通用I/O,可以对主机通信并行接口和同步串行接口进行配置,以用作通用I/O。另外,还可以扩展外部I/O,C54X DSP可以访问64K字的I/O,外部I/O必须使用缓冲或锁存电路,配合外部I/O读写控制时序构成外部I/O的控制电路。2.3 TMS320C54X DSP的片内外设C54X DSP系列中,每种DSP的外设并不完全相同,不过通常C54X DSP都具有如下外设:(1)通用I/O引脚。(2)定时器。(3)时钟发生器。(4)主机接口(HPI)。(5)软件可编程的等待状态发生器。(6)可编程的分区转换模块。(7)串行接口。(8)直接存储器访问(DMA)控制器。2.3.1片内外设映射寄存器通过访问存储器映射控制和数据寄存器来操作和控制外设。这些寄存器可以从外设读取数据或者将数据传输到外设。设置和清除控制寄存器的位可以使能、禁止、初始化和动态重配置外设器件。串行口和定时器操作是通过中断或中断查询来实现与CPU同步的。当外设不处于工作状态,内部时钟可以关断,因此外设在正常运行模式或节电模式下,其功耗较低。通常,外设寄存器被映射到第0页数据页面,寻址外设一般需要2个时钟周期。2.3.2通用I/OC54X DSP提供了两个由软件控制的专用通用I/O引脚。这两个专用引脚为分支转移控制输入引脚(BIO)和外部标志输出引脚(XF)。分支转移控制输入引脚(BIO)BIO可以用于监视外设器件的状态。当时间要求很关键的循环不能受到干扰时,使用BIO代替中断非常有用。根据BIO输入的状态可以有条件地执行一个分支转移。使用BIO的指令中,有条件执行指令(XC)在流水线译码阶段对BIO的状态进行采样,而所有其他条件指令(分支转移、调用和返回)均在流水线的读阶段对BIO进行采样。外部标志输出引脚(XF)XF可以用来为外设提供信号,XF引脚由软件控制。当设置ST1寄存器的XF位为1时,XF引脚变为高电平,而当清除XF位时,该引脚变为低电平。设置状态寄存器位(SSBX)和复位状态寄存器位(RSBX)指令可以分别用来设置和清除XF。复位时,XF也变为高电平。2.3.3定时器片内定时器是一个可编程的定时器,它由三个寄存器组成,分别为定时器寄存器(TIM)、定时器周期寄存器(PRD)和定时器控制寄存器(TCR)。片内定时器可以用于周期地产生中断。定时器的最高分辨率为处理器的CPU时钟速度。通过带4位预定标器的16位计数器,可以获得较大范围的定时器频率。片内定时器寄存器由三个存储器映射寄存器组成,即定时器寄存器(TIM)、定时器周期寄存器(PRD)和定时器控制寄存器(TCR)。定时器寄存器(TIM)。16位的存储器映射定时器寄存器(TIM)加载周期寄存器(PRD)的值并随计数而减少。定时器周期寄存器(PRD)。16位的存储器映射定时器周期寄存器(PRD)用于重载定时器寄存器(TIM)。定时器控制寄存器(TCR)。16位的存储器映射定时器控制寄存器(TCR)包含定时器的控制和状态位。定时器是一个片内向下(递减)计数器,可以用于产生周期性的CPU中断。定时器由每个CPU时钟周期减少1的预定标器驱动。每次当计数器减少到0时,会产生一个定时器中断(TINT),并且计数器重载周期值。定时器由两个基本功能模块组成,即主定时器模块(由PRD和TIM)组成和预定标器模块(由TCR的TDDR和PSC位组成)。定时器由CPU提供时钟。在正常工作情况下,当TIM减计数到0后,PRD中的内容自动地加载到TIM。当系统复位或者定时器单独复位时,PRD中的内容重新加载到TIM。TIM由预定标块提供时钟,每个来自预定标块的输出时钟使TIM减1。主计数器块的输出为定时器中断(TINT)信号,该信号被送到CPU和定时器输出(TOUT)引脚。TOUT脉冲信号的周期等于CLKOUT的周期。预定标块有两个类似于TIM和PRD的单元,即预定标计数器(PSC)和定时器分频系数(TDDR),PSC和TDDR都是定时器控制寄存器(TCR)的位。在正常工作情况下,当PSC减计数到0时,TDDR的内容加载到PSC。当系统复位或者定时器单独复位时,TDDR的内容重新加载到PSC。PSC由器件的CPU提供时钟,每个CPU时钟信号将PSC减少1。通过读TCR,可以读取PSC,但是它不能直接被写。通过使用TSS输入信号关闭定时器的时钟输入,可以停止定时器。当不需要定时器时,停止定时器的操作允许DSP其间运行在低功耗模式下。每次当定时器计数器减少到0时,会产生一个定时器中断(TINT),定时器中断(TINT)速度可由如公式2-1计算:TINT的频率 (2-1)其中tc为CLKOUT的周期。通过读TIM,可以读取定时器的当前值:读TCR可以读取PSC。由于读这两个寄存器需要两条指令,就有可能在两次读之间因为计数器减而发生读数变化。因此,如果需要精确的定时测量,就应当在读这两值之前先停止定时器。通过将TCR寄存器的TSS位置1,可以停止定时器,清除TSS位可重新启动定时器。定时器可用于产生外设电路(如模拟接口电路)所需的采样时钟信号。一种方法是使用TOUT信号为外设提供时钟;另一种方法是利用中断,周期地读一个寄存器。初始化定时器可采用如下步骤:将TCR中的TSS位置1,停止定时器。加载PRD。重新加载TCR初始化TDDR,重新启动定时器。通过设置TSS位为0并设置TRB位为1以重载定时器周期值,使能定时器。使能定时器中断的步骤如下:将IFR中的TINT位置1,清除尚未处理完的定时器中断。将IMR中的TINT位置1,使能定时器中断。如果有必要,可以将ST1中的INTM位清0,使能全局中断。复位时,TIM和PRD被设置为最大值FFFFH,定时器的分频系数(TCR的TDDR位)清0,并且启动定时器。2.3.4时钟发生器时钟发生器为C54X DSP提供时钟信号。时钟发生器可以由以下两种方法实现:使用具有内部振荡电路的晶体振荡器。晶体振荡器电路连接到C54X DSP的X1和X2/CLKIN引脚。另外CLKMD引脚必须配置以使能内部振荡器。将晶体振荡器连接到X1和X2/CLKIN引脚之间,内部振荡器被使能,晶体振荡器具有30欧的有效串阻和1mw的功耗,另外还应该给定一个20 PF的负载电容。使用外部时钟。将一个外部时钟信号直接连接到X2/CLKIN引脚,并且X1引脚空置不接,内部振荡器无效。C54X DSP 的时钟发生器包括一个内部振荡器和一个锁相环(PLL)。目前C54X DSP有两种类型的PLL,有些器件具有硬件可配置的PLL电路,而其他器件具有的是软件可编程的PLL电路。(1)硬件可配置的PLLPLL的外部频率源可以比CPU机器周期速度更低,这个特性可以降低因为高速开关时钟带来的高频噪声。内部振荡器或外部时钟源为PLL提供时钟,外部时钟源或内部振荡器频率乘以一个系数N(即PLLN)产生内部CPU时钟。如果用户正在使用内部振荡器电路,内部CPU时钟由时钟源除以2产生。如果用户使用外部时钟,则内部CPU时钟为PLLN。对于一个25ns的C54X DSP,PLL的最大操作频率为40MHz。PLL要求一个50ms的短暂锁定时间,在复位和退出IDLE3低功耗模式时,该锁定时间很有用。C54X DSP的PLL硬件配置时钟模式是通过配置CLKMD1、CLKMD2和CLKMD3引脚来实现的。对于不使用PLL的器件,其CPU时钟频率为晶体振荡器或外部时钟频率的一半。在正常工作模式下,PLL的时钟模式不能重配置。当在IDLE3模式下工作时,时钟模式可以在CLKOUT变为高电平后进行重新配置。(2)软件可配置的PLL软件可编程PLL具有高度的灵活性,并且包括提供各种时钟乘法器系数的时钟定标器、直接使能或禁止PLL的功能、用于延迟转换PLL时钟模式(直到锁定为止)的PLL锁定定时器。具有软件可编程PLL的DSP器件可以选用以下两种时钟方式之一来配置:PLL模式。输入时钟(CLKIN)乘以从0.2515共31个系数之一。这些系数通过使用PLL电路来获得。DIV(分频器)模式。输入时钟(CLKIN)除以2或4。当使用DIV方式时,所有的模拟电路,包括PLL电路都被禁止,以使功耗最小。紧接着复位后,时钟模式由3个外部引脚(CLKMD1、CLKMD2和CLKMD3)的状态决定。如表2-2所示:表2-2 复位时时钟模式设置在复位后,软件可编程PLL可以编程为任何期望的配置。复位时,下面的时钟模式引脚组合使能PLL:对于C5402,CLKMD(3-1)由000b变为110b,而对于其他C54X DSP,则变为101h。当使用这些时钟模式引脚组合时,内部PLL锁定定时器不工作,因此系统必须延迟释放复位,以便允许PLL锁定时间的延迟。复位后,可以对16位存储器映射时钟模式寄存器(CLKMD,地址为58h)编程加载PLL,以配置所要求的时钟方式。CLKMD是用来定义PLL时钟模块中的时钟配置的,它的各位如表2-3所示:表2-3 CLKMD寄存器位定义3 硬件设计3.1 DSP基本板这里所说的这块电路板是一块DSP芯片TMS320VC5402的应用开发板,它上面有DSP芯片正常工作所必须的各部分电路,包括电源电路、时钟电路、复位电路、输入输出缓冲驱动电路、存储器电路、外部扩展接口电路、选通控制逻辑电路等。3.1.1 TMS320C54X DSP 的电源设计TMS320C54X 系列芯片大部分采用低电压设计,这样可以大大地节约系统的功耗,该系列芯片的电源分为两种,即内核电源与I/O电源,其中I/O电源一般采用3.3V设计,而内核电源采用3.3V、2.5V或1.8V电源,降低内核电源的主要目的是为了降低功耗。TMS320VC5402芯片的电源电压有3.3V与1.8V两种,其中3.3V电压供I/O接口用,2.5V电源主要供器件的内部,包括CPU和其他所有的外设逻辑。TMS320VC5402的电流消耗主要取决于器件的运算的负载能力,就是说如果器件处于全速运行的时候,那么其电流就达到该芯片的电流消耗的极大值,当CPU处于等待状态时,其电流消耗就很小,因此我们在编程的时候,当CPU没事可做时,尽量使其处于等待状态或者使CPU处于休眠状态,这样可以降低系统的功耗;相对于CPU来说,外设消耗的电流是比较小的,它由I/O电源提供,消耗的电流主要取决于外部输出总线的速度,以及这些在输出引脚上的负载电容。电源的产生一般由5V电源产生3.3V、2.5V或1.8V,产生电源的芯片比较多,如MAXIM公司的MAX604和MAX748,TI公司的TPS系列芯片可以分为线性和开关两种,在设计的时候应根据实际的需要,如果系统对功耗要求不是很高的情况下,可以使用线性稳压器,它的使用方法较为简单,而且电源纹波电压较小,对系统的干扰较小;而在系统对功耗要求比较苛刻的情况下,应使用开关电源芯片,一般开关电源产生的纹波电压要比线性电源产生的大,而且开关电源的振荡频率在几Khz到几百Khz的范围内,会对DSP系统产生干扰。特别是开关电源产生的电压用于A/D和D/A转换电路时应加滤波电路,以减少电源噪声对模拟电路的影响。本系统使用TI公司的TPS76X系列芯片产生电源。芯片型号选择TPS767D318,该芯片有两路电源固定输出,一路是1.8V,另一路是3.3V。芯片单一5V供电,两路电源输出满足DSP TMS320VC5402的电源需求。硬件电路如图3.1所示:图3.1 系统电源电路在设计DSP系统时,如果都能采用3.3V芯片设计当然最好,这样其接口电平相匹配,不存在电平转换的问题。但在实际上往往还不能避免混合设计,即在一个系统中同时存在3.3V和5V系列芯片,让两种电压芯片的输入输出直接连接是不行的,因为5V的芯片可以承受3.3V的电压,但是3.3V不能承受5V的电压。所以在有5V和3.3V芯片的电路中就存在一个混合逻辑设计的问题。从目前的趋势来看,使用低电压的3.3V系列芯片已经是发展方向,所以在设计的时候应尽量使用3.3V芯片,一是可以设计成一个低功耗系统,另外可以避免混合系统设计中的电平变换问题。3.1.2 TMS320C54X DSP的硬件复位电路复位输入引脚RS为C54X DSP提供了硬件初始化的方法。这个引脚上电平的变化可以使程序从指定的存储地址FF80H开始运行。当时钟电路工作后,只要在RS引脚上出现2个外部时钟周期以上的低电平,芯片内部所有电路寄存器都初始化复位。只要RS保持低电平,则芯片始终处于复位状态。只有当此引脚变为高电平后,芯片内的程序才可以从FF80H开始运行。对于一个DSP系统而言,上电复位电路虽然只占很小的一部分,但它的好坏将直接影响系统的稳定性。C54X DSP复位有三种方式,即上电复位、手动复位、软件复位,前两种是通过硬件电路实现的复位,后一种是通过指令方式实现的复位。下面介绍两种常用的复位电路设计方法。(1)RC复位电路利用RC电路的延迟特性给出复位需要的低电平时间,在上电瞬间,由于电容C上的电压不能突变,所以通过电阻R进行充电,充电时间由RC的乘积值决定,一般要求大于5个外部时钟周期,可以根据具体情况选择。为防止复位不完全,参数可选择大一些。图示为可以分别通过上电或按钮两种方式复位的电路,参数选择与上电复位相同。按钮的作用是当按钮按下时,将电容C上的电荷通过按钮串接的电阻R1释放掉,使电容C上的电压降为0。当按钮松开时,电容C的充电过程与上电复位相同,从而实现手动按钮复位。实际应用系统设计中,若有外部扩展的I/O接口电路复位端与DSP的复位端相连,RC参数会受到影响,可能会由于同时提供多路复位致使充电电流增大,相当于RC的值减小,充电时间减少,影响到芯片的复位效果。因此,这种情况下的复位电路的参数应增大。为保证可靠复位一般都在初始化程序中为DSP安排一定的延迟时间。(2)使用“看门狗”电路Maxim公司的MAX706芯片是一个非常好的上电复位及“看门狗”电路,为了更好的和TMS320C54X芯片的3.3V系列相配合,可选用MAX706R。MAX706R的第6脚需要一个频率不小于10Hz的脉冲信号,该信号将由DSP通过程序产生。该电路不但在系统上电时能产生一个标准的复位脉冲,而且当DSP处于不正常工作状态时,通过程序产生的周期性脉冲消失,此时将在7引脚上产生一个不小于1.65s的复位脉冲信号,确保系统重新复位,程序重新开始运行,强行使系统恢复正常。系统采用第一种复位电路,并使用跳线来选择上电复位和按键复位,增加了系统灵活性。实际硬件电路如图3.2所示:图3.2 系统复位电路3.1.3 TMS320C54X DSP的仿真器接口电路JTAG是joint test action group简称,又称JTAG口,JTAG口连接需要和仿真器上给出的引脚一致。需要注意的是DSP的EMU0和EMU1脚需要用电阻上拉,系统采用推荐值10K欧。实际硬件电路如图3.3所示:图3.3 仿真器接口电路3.1.4 TMS320C54X DSP的存储器电路存储器芯片选择3.3V逻辑的芯片,这种芯片可以直接与DSP接口而不需要经过缓冲驱动器。因此,系统在DSP的数据总线和地址总线上连接了一块FLASH ROM和一块RAM芯片,FLASH ROM主要用来存放用来自举加载的程序代码,RAM主要用来存放临时数据,或在它里面建立一个大容量的缓冲区。3.2 外部扩展板在详细学习了DSP芯片外围器件接口技术以后,设计了A/D、D/A转换器子电路板和LED数码管显示子电路板。这些外围器件在可编程逻辑器件内部组合逻辑电路的选通控制下工作。DSP芯片具有外部数据存储器选通信号DS、外部程序存储器选通信号PS、外部I/O空间选通信号IS、读写控制信号R/W和高位地址线等可以用来产生外围器件的片选信号,这些信号都引入了可编程逻辑器件,经过它内部的组合逻辑电路后产生各个外围器件的片选信号。一旦某个外设片选有效,它就可以在DSP的控制下正常工作。3.2.1 TMS320C54X DSP与A/D转换器MAX114的接口电路在DSP的外围电路中,A/D转换器是一个十分重要的器件。基于不同的应用,可选用不同性能指标和价位的芯片。对于一般的A/D的选择,主要考虑以下几方面的因素:转换器的精度。一般系统要求对信号做一些处理,例如FFT变换。因为DSP的数据是16位,所以最理想的精度应为12位,留出四位做算法的溢出保护位。但要注意的是,DSP完全可以接收高于16位的A/D,例如接收PCM1800的传输数据(PCM1800是20位的A/D)。转换时间。因DSP的指令周期位纳秒级,运算速度相当快,能够进行信号的实时处理。为了体现它的优势,它的外围设备的数据处理速度就要尽可能与它匹配。同时,转换时间也决定了它对信号的处理能力。转换器的价格。价格也是选择A/D转换芯片的一个重要因素。系统选择美信公司的8位A/D转换器芯片MAX114。MAX114是一个4通道高速A/D转换器,最高转换速度为转换一次仅需660ns,工作在掉电模式下电流消耗仅为1A,从掉电模式恢复到正常工作模式仅需220ns。这对于语音采集已经足够了,它还可以采集通信中用到的载波信号,如2FSK载波。它与处理器的接口十分简单,因为它可以像一个存储器地址或I/O端口一样进行操作,而不需要附加的逻辑电路。另外,它有内部时钟,不需要外部的时钟输入。数据输出采用锁存的三态电路,可以直接与处理器的总线进行连接。MAX114的内部功能图如图3.4所示:图3.4 MAX114内部功能图系统将MAX114译码在数据空间,固定使用它的4个通道中的一个。MAX114的数据线直接与DSP的数据总线的低8位相连接。硬件电路如图3.5所示:图3.5 A/D转换器与DSP接口电路3.2.2 A/D转换器前端信号调理电路系统中A/D转换器基准电压为正5V直流电压,因此只能采集正极性信号,而输入的模拟信号是纯交流信号,因此要在此交流信号上叠加一个直流分量,把它变成正电压信号,A/D才能进行采样,在软件中减去此直流分量便可以恢复原来的纯交流信号。电路如图3.6所示:图3.6 A/D转换器前端信号调理电路3.2.3 TMS320C54X DSP与D/A转换器DAC0832的接口电路数字信号处理一般是用DSP芯片和在其上运行的实时处理软件对A/D转换后的数字信号按一定的算法进行处理,然后将处理后的信号输出给D/A转换器,经D/A转换、内插和平滑滤波后得到连续的模拟信号。可见,D/A转换器也是DSP系统中不可缺少的重要组成部分。DAC0832是最快转换时间为1s的D/A转换器,系统的D/A转换器采用DAC0832,输出采用双极性输出,D/A转换器的输出直接与DSP的数据总线的高8位相连接。硬件电路如图3.7所示:图3.7 D/A转换与DSP接口电路3.3 人机接口电路由于DSP与外围器件的接口不方便,以简化设计而又不失灵活性为目的而设计了如下的人机接口电路。3.3.1 TMS320C54X DSP与7段数码管的接口电路由于DSP的I/O能力较弱,系统采用地址线的低8位经缓冲驱动器SN74LVC245驱动一个数码管作为系统的显示器件。具体硬件电路如图3.8所示:图3.8 数码管与DSP接口电路3.3.2 TMS320C54X DSP的键盘接口电路键盘采用中断式键盘,按键直接与中断引脚相连,按下按键会触发中断。这种键盘硬件简单,编程方便。4 软件设计DSP芯片 TMS320VC5402具有比通用微处理器像Atmel公司的AT89C51更高的性能。它具有更快的处理速度,可以在100Mhz的时钟下工作,而AT89C51最高工作时钟只有24Mhz;它具有与信号处理相关的硬件结构,如硬件乘法器,AT89C51没有;它具有4级流水线结构,AT89C51没有;系统实现了两个应用验证了DSP芯片TMS320VC5402的高性能。一个是FIR滤波器,另一个是2FSK信号的数字解调。4.1 FIR滤波器在数字信号处理中,滤波占有极其重要的地位。数字滤波是语音和图像处理、模式识别、谱分析等应用中的一个基本的处理算法。与模拟滤波相比,数字滤波具有很多突出的优点,例如它可以满足滤波器对幅度和相位特性的严格要求,可以避免模拟滤波器所无法克服的电压漂移、温度漂移和噪声等问题。用DSP芯片实现数字滤波除了具有稳定性好、精确度高、不受环境影响等优点外,还具有灵活性好的特点。用可编程DSP芯片实现数字滤波可通过修改滤波器的参数十分方便地改变滤波器的特性。对于许多应用来说,数字滤波器一般具有如下的差分方程: (4-1)式中,为输入序列,为输出序列,和为滤波器系数,N是滤波器的阶数。式中,若所有的均为零,则有: (4-2)上式就是FIR滤波器的差分方程。为不失一般性,下面用 (4-3)来表示FIR滤波器的差分方程。在数字滤波器中,FIR滤波器具有如下几个优点:可以在幅度特性随意设计的同时,保证精确、严格的线性相位;由于FIR滤波器的单位脉冲响应是有限长序列,因此FIR滤波器没有不稳定的问题;由于FIR滤波器一般为非递归结构,因此在有限精度运算下,不会出现递归型结构中的极限震荡等不稳定现像,误差较小;FIR滤波器可采用FFT算法实现,从而提高运算效率。FIR滤波器的设计工具使用MATLAB,MATLAB是美国Mathwork公司于1967年推出的软件包,它是一种功能强、效率高、便于进行科学和工程计算的交互式软件包,其中包括:一般数值分析、矩阵运算、数字信号处理、建模和系统控制、优化等应用程序。MATLAB中的工具箱(Toolbox)包含了许多实用程序。滤波器设计就包含在Toolbox下的Signal中。可以很方便地利用MATLAB生成所需要的滤波系数,从而实现相应的滤波器。软件界面如图4.1所示,在相应的编辑框内填入正确的数据点击Design Filter按钮便可以生成所需要的滤波器,其滤波系数可直接导入DSP软件开发环境CCS中。图4.1 滤波器设计工具软件主界面DSP软件流程图如图4.2所示:A/D采集一个数据结果送D/A输出 进行乘累加运算并输出结果新数据加入数组数组数据依次左移一个下标 图4.2 FIR滤波器软件流程图4.2 2FSK载波数字解调2FSK信号的解调可以采用硬件实现,但系统复杂,不能适应多种通信体系,适应性差。系统采用软件用数字化的方法进行解调。硬件结构简单,只需要在DSP最小系统外面连接一片A/D转换器,对2FSK信号进行采样,DSP对采样数据做数字信号处理,便可以实现解调。随着通信系统的不同,2FSK信号载波频率、通信的码元速率等参数会不同,这时只要相应的改变软件,而不需要改变硬件就可以对多种通信系统中的2FSK载波信号进行解调。这也体现了软件无线电的概念。软件无线电的基本思想是以一个通用、标准、模块化的硬件平台为依托,用软件编程来实现无线电台的各种功能,从基于硬件、面向用途的电台设计方法中解放出来。由于技术的变化和应用的扩展,有关软件无线电的概念、结构、实现、用途等都在发展之中,因此目前还很难给出一个严格而全面的定义。其中心思想是构造一个具有标准化、模块化的通用硬件平台,使A/D、D/A尽量地靠近天线,并通过软件加载实现各种无线通信功能的一种开放式体系结构。系统采用延时相乘的解调算法。这是一种在有线、无线通信中都可以采用的解调算法。例如在电话线路中,移频键控和双音多频是两种流行的数据传输方式,利用该算法可以解调电话线路中传输的2FSK载波信号。在这种解调算法中,信号和它本身延时了后的信号相乘,然后经过低通滤波器。这里要满足一定的条件。设载波频率为, 则要满足 (4-4)低通滤波器的输出与信号频率偏离中心频率的大小成比例,因此可以判别出接收码元的值。由以上表达式可以看出,延时相乘以后,信号中含有2倍频分量,经低通滤波器后,可以把2倍频分量滤除掉,只剩下直流分量,对此直流信号积分,会得出两种不同的值,这样便可以判决出发送端传输的码元值。为了方便计算需要延时的点数,采样率选择中心频率的8倍。在用程序实现算法的时候,需要多次作16位乘16位的乘法,而乘法运算对CPU是一个严峻考验,这正好可以验证DSP芯片的高性能。低通滤波器采用性能优良的FIR数字滤波器。解调出的码元值需要进行严格的位同步,以获得所需要的数据。如果位同步不准,将导致一帧的数据误码。因此,系统规定帧传输格式为两位同步头后面是8位的数据,最后是结束位。一位的具体解调步骤如下:因为以中心频率8倍的频率进行,传输数据的码元宽度规定为在一个码元宽度内系统可以采样8个数据。对采样数据做如下处理,先取8个数据,以第3个数据做起始点,再取8个数据,两两相乘并左移15位,以变成16位的数据。对这8个数据做8阶的低通滤波后,生成8个新数据,累加求和(即积分),如果和大于0,则这一位数据是1;如果和小于0,则这一位数据是0。由于系统要求严格的位同步,而传输中又难免受到干扰,因此,系统规定在检

温馨提示

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

评论

0/150

提交评论