已阅读5页,还剩38页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
大学本科生毕业论文基于DSP的水声应答系统数字平台的设计与实现摘要随着水声技术的深入发展,作为一种不可缺少的实验设备,水声应答器得到了广泛的应用。水声应答器主要用于实验目的,既可作为普通信号源,又可作为应答设备使用,可实现对待测设备的测试与校准。随着数字信号处理技术的飞速发展,针对数字信号处理的专用处理器也在稳步更新,特别是在实时处理功能上提高显著。采用低功耗高性能的DSP芯片,可以从本质上提高水声应答器的处理能力,同时也能相对降低成本。本论文的主要工作是:根据系统的技术指标,完成水下应答器数字系统硬件平台的搭建和软件系统的调试。硬件方面,系统以数字信号处理模块为核心,辅以语音编解码模块、片外SDRAM等。其中,专用处理器采用TI5000系列DSPTMS20VC5509A。主要实现对模拟信号的采集,处理和发射等功能。另外,本文从PCB制板的角度论述了系统设计时需遵循的原则。软件方面,主要实现对脉冲信号的采样、信号前沿的检测以及信号频率的测量。系统可通过软件的设定以适应不同信号的应答。本系统作为水声应答器的核心部分,为后续制作完善的水声应答器系统提供了坚实的基础。关键词:水下应答器;数字信号处理;TMS320VC5509A;印刷电路板;ABSTRACTWith the thorough development of underwater acoustic technique, the acoustic transponder has got widespread application as an indispensable experimental equipment. The acoustic transponder is mainly used in acoustic experiments to test and calibrate the experimental equipment. With the rapid development of digital signal processing technology, the dedicated processor for digital signal processing is steadily updated especially in real-time processing. By using low-power high-performance DSP chip, we can essentially improve the handling capacity of the underwater acoustic transponders at lower costs.The main work of this thesis is to complete the structures of the underwater transponder digital systems, hardware platforms and software debugging, according to the technical specifications of the system. The hardware has the digital signal processing module as the core, supplemented by the voice codec module and off-chip SDRAM. The dedicated processor we use is TIs 5000 series DSP - TMS320VC5509A. The hardware realizes the analog signal acquisition, signal processing and signal transmission function. In addition, this paper discusses the design principles from the point of view of the PCB system board. The software mainly consists of the sampling of pulse signal, the detection of signal forefront and the measurement of signal frequency. The system can be set to adapt to different signal response by software.As a core part of the underwater acoustic transponder, the system provides a solid foundation to produce the complete water acoustic transponder system.Keywords: underwater transponder; digital signal processing; TMS320VC5509A; PCB;目录第1章绪论11.1立题背景及意义11.2应答器数字系统硬件平台简介11.3应答器数字系统硬件平台的主要技术指标21.4论文主要研究内容3第2章应答器数字系统的硬件设计原理与组成42.1硬件平台简述42.2DSP最小系统42.2.1供电电路42.2.2时钟振荡电路52.2.3复位电路62.3AD及DA模块62.3.1TLV320AIC23B简介62.3.2TLV320AIC23B外围电路72.4SDARM及并行Flash外围电路92.4.1SDRAM92.4.2并行FLASH外围电路112.5串口模块电路132.5.1 方案对比分析132.6PCB的绘制与电路板的焊接142.7本章小结16第3章应答器数字处理系统中的软件设计173.1数字处理系统中的DSP软件设计概述173.2DSP的系统初始化173.2.1多通道缓冲串口初始化173.2.2DMA初始化183.2.3通过IIC对TLV320AIC23B进行初始化203.3应答工作状态软件设计233.3.1信号检测软件设计243.3.2检测信号的频率273.3.3记录和发射信号283.4DSP bootloader程序设计303.4.1Bootloader模式303.4.2 生成导引表323.5 本章小结33第4章 应答器数字处理系统的测试与分析344.1 测试简介344.2 信号类型介绍344.3 应答过程中的数据分析354.4 本章小结39结论40参考文献41致谢42第1章绪论1.1立题背景及意义随着水声技术的深入发展,水声应答器作为一种不可或缺的实验设备,得到了广泛的应用。水声应答器主要应用于实验,既可作为普通信号源,又可作应答设备使用,可实现对待测设备的测试与校准。随着数字信号处理技术的飞速发展,针对数字信号处理的专用处理器也在稳步更新,特别是在实时处理的功能上提高显著。采用低功耗高性能的DSP芯片可以从本质上提高水声应答器的处理能力,同时也能相对降低成本。本论文所讨论的水声应答器系统数字平台即数字信号处理部分。以DSP TMS320VC5509A为核心,辅以SDRAM、语音编解码芯片等来实现数模转换,信号检测与测频,信号的接收与发送等功能。该系统可检测CW脉冲,双曲调频和钟形脉冲信号。并能以不同强度反射信号。延迟时间可选。由于系统的灵活性很高,因此可用于水声试验和工程应用等多种场合。1.2应答器数字系统硬件平台简介图1.1为应答器数字系统硬件平台原理框图。信号从线性输入进入TLV320AIC23B语音编解码芯片,经过AD采样滤波之后通过多通道缓冲串口进入DSP,通过DSP内部的DMA通道进入片外的SDRAM,同时,DSP对已达到SDRAM的采样数据进行信号检测,测频,确定信号的存在。若确定为有效信号,即应答该信号。图1.1 应答器数字系统硬件平台原理框图1.3应答器数字系统硬件平台的主要技术指标为适应多种测量场合,平台的技术指标较为丰富,其主要技术指标如下:l 系统可工作在两种方式下:信标方式和应答方式l 信号类型:CW脉冲、钟形脉冲;l 中心频率:5.2kHz, 5.5kHz, 5.8kHz;l 脉冲宽度:150ms, 600ms, 2400ms;l 信标方式下发射信号周期:6s, 10s;l 发射信号强度范围:120dB-170dB;l 反射强度:0dB, 6dB, l0dB, 18dB;l 多普勒:0Hz, 50Hz, 110Hz、-50Hz、-110Hz;l 中心频率的误差范围:-10Hz+10Hz;l 反射信号强度误差:-1dB+1dB。以上技术指标可组成多种类型的信号,作为数字处理系统的核心,重点关注信号的类型。对于多普勒频移、发射信号强度范围、反射强度等指标,要求数字信号处理模块与功放模块等相配合才能实现。1.4论文主要研究内容本论文主要研究应答器数字系统硬件平台的设计与实现,本文将对该数字系统的各个部分给与论述。论文首先论述了立题背景和意义,同时对数字信号处理平台的主要组成和技术指标进行了介绍,对于系统工作流程结合原理框图进行了简要的论述。接下来论文将详细论述应答器数字系统硬件平台的设计方案与分析,主要通过对DSP外围电路、AD及DA模块、外扩存储器、外扩异步串行接口、以及电源模块的论述,详细介绍了系统硬件的组成,之后还对设计印刷电路板的原则进行了简要的概述。之后又详细介绍了硬件平台软件设计的实现。主要包括各个模块底层驱动的编写,DSP系统的信号接收,处理与检测以及DSP的BOOTLOADER问题。最后,论文从系统测试的角度阐述了数字系统硬件平台运行的流程和细节。论证了系统的可行性和实用性。第2章应答器数字系统的硬件设计原理与组成2.1硬件平台简述应答器数字处理系统的硬件平台主要包括TMS320VC5509A DSP芯片、TLV320AIC23B语音芯片(内含ADC和DAC模块)、4M*16bit(64Mb)的SDRAM、256Kb的串行16位EEPROM、地址线扩展模块、MAX3111串口转换、USB口、DM9000A网口,以及按键控制和数码管显示。其中,DSP是数字处理的核心部分,DM9000A及串口用于后续扩展功能,如多个应答器通信、上位机界面显示等。2.2DSP最小系统2.2.1供电电路TMS320VC5509A需要两种电源:IO电源和内核电源。极限特性分别是-0.3V4.0V(IO电源范围)、-0.3V2.0V(内核电源范围)。千万注意不要超过这些范围,否者会对DSP芯片产生致命的损坏。内核电压会影响DSP的工作频率。图2.1为实际设计的供电电路原理图。本系统采用TPS73HD301双线性电源来提供3.3V和1.6V电源,其中1.6V由R43与R45精确搭配得到,作为内核电源使用。在1.6V的内核电源条件下,DSP的工作频率可以达到200MHz1。设计中分别在数字地与模拟地之间、数字3.3V与模拟3.3V之间串联一个10uH(阻抗为0欧姆)的电感,以减少数字信号与模拟信号之间的干扰。在该款DSP中对于IO电源和内核电源的上电顺序并没有特殊的要求,但是两个电源的上电时间差不能太大,否则会导致芯片发生硬件损坏。电源模块是系统的能源根本。必须满足电压稳定,电流充足等要求,为保证速率确实可以达到200MHz,内核电压一定要稳定在1.55V1.65V,IO电源要稳定在2.7V3.6V。本系统实测电源数据分别为:1.60V,3.31V。图2.1 双线性供电电路原理图2.2.2时钟振荡电路图2.2 时钟引脚外围原理图DSP内部的锁相环(PLL)模块主要用来控制DSP内核的工作频率,外部提供一个参考时钟输入,经过PLL倍频或分频后提供给DSP内核,如图2.2,本设计采用内部振荡器方式,选用的外部晶振Y3是无源的12MHz,Y2是为实时时钟RTC提供的晶振。之所以选择外部晶振做时钟源是因为晶振提供的时钟比较稳定。本系统在程序中将12MHz的时钟输入12倍频后得到144MHz的工作频率。2.2.3复位电路设计图2.3复位电路原理图当MR引脚被拉低到小于0.8V的电压时,会触发一个复位脉冲,这个复位脉冲脉宽约为200MS,当打开主电源时,RST引脚会保持200ms的低电平之后再置高,这是为了防止由于电源电压还没有稳定而使DSP进入工作状态可能造成的不可预知的后果,甚至引起硬件损坏。通过这个方法可以使DSP在上电过程中一直保持复位状态。图2.3为复位电路原理图。2.3AD及DA模块2.3.1TLV320AIC23B简介本系统采用TI公司型号为TLV320AIC23B的语音编解码芯片,它内部的ADC和DAC转换模块带有完整的数字滤波器,数据传输宽度可以是16位,20位,24位和32位,采样频率范围支持8khz 到96khz。在ADC采集达到96khz时噪音为 90-dBA,能够高保真的保存音频信号。在DAC转换达到96khz时噪音为100-Dba,能够高品质的数字回放音频,在回放时仅仅减少23mW1。考虑到接收信号的大小以及后续的扩展性,根据奈奎斯特采样定律将系统采样率设定为44.1KHz。因此,采用该芯片既可以达到很好的采样信号,又可以节省芯片占用板子的面积,简化硬件连接的复杂性。2.3.2TLV320AIC23B外围电路TLV320AIC23B与DSP的接口有两个。一个是控制接口,用于设置TLV320AIC23B的工作参数,即配置AIC23的各个寄存器.该接口有两种工作模式:IIC模式和SPI模式。由于5509A片上有IIC接口,且IIC接口只需要两根线即可通信,所以本设计直接将mode引脚置低,选择IIC模式。5509A的IIC模块支持7位和10位寻址模式,支持多主方发送从方接受模式和多主方接受从方发送模式,IIC的数据传输率可以从10400kbit/s。使用IIC模块可以比较稳定的传输数据,且使用IIC而不使用多通道缓冲串口的SPI模式为系统节省了一个串口。TLV320AIC23B的管脚用来控制IIC模式下的从模式的地址选择,本系统将拉低为0,则模块的地址为00110102,通过IIC向该地址写数据模块才会收到。图2.4 DSP模式时序图另一个接口是数据接口,用来传输与DSP之间的数据。该接口有四种工作模式:右判断模式、左判断模式、I2S模式和DSP模式4种方式。其中DSP模式是TI公司针对TI的DSP设计的。图2.42为DSP模式下的时序图,可以看出在一个第二个时钟下降沿后开始传输左右声道数据,先传左声道,后传右声道,每个声道的数据位数n由数字音频格式寄存器中的IWL1:0设定。5509A的多通道缓冲串口MCBSP可以配置为SPI总线接口、其串行数据传输格式与TLV320AIC23的DSP模式兼容,此外,这两款芯片的I/O电压兼容,从而使得5509A与TLV320AIC23B可以无缝连接,系统设计简单。图2.5即为数据端口的连接示意图。图2.5 McBSP接口与TLV320AIC23B数据口连接示意图图2.6 TLV320AIC23B的外围电路图TLV320AIC23B有四个模拟端口,线性输出、线性输入、麦克风输入和耳机输出。线性输入电路中加入了分压和隔直电路,其中R1和R4等用来分压,主要是为了防止输入电压超过芯片内部ADC所能测量的模拟量范围,超过会产生削波现象。用470nF电容用隔断直流分量和较低频率的干扰。图2.6为TLV320AIC23B的实际外围电路图。本系统主要通过线性输入获得模拟量,通过耳机输出发出存取的数据。2.4SDARM及并行Flash外围电路2.4.1SDRAM由于本系统需要处理大量的数据,因而片内的存储空间并不够用,所以需要外扩SDRAM,而Flash则是为了后期应用时保存一些重要的不想丢失的数据。TMS320VC5509A通过外部存储器接口(EMIF)这一片内外设对外部存储空间进行管理。如图2.81,外部存储空间被分成CE0CE3四个空间 ,分别由EMIF的引脚管理3.而(n=03)一般与外设的片选端连接.将CE0与SDRAM的片选CS相连,当CE0为低电平时,SDRAM的存储内容就会映射到CE0空间,从而实现外部存储器与DSP的无缝连接。图2.74为连接示意图。图2.7 EMIF接口与SDRAM连接示意图这里的硬件连接有一点需要注意,由于DSP在访问程序存储空间时,采用字节寻址,而访问数据空间时采用字寻址。因此,在程序编写时对数据空间的访问都应该定义字地址。5509A的字地址宽度为23bit,而其内部地址总线为24bit,字地址要加载到内部地址总线上传输时,内部地址总线就在23bit地址的后面自动添上了一个0。所以,这里5509A的地址线A0是不能与SDRAM的A1相连的。否则,我们编程时写的字地址会被放大1倍。导致编程错误。图2.8 TMS320VC5509A的存储器映射图2.4.2并行FLASH外围电路并行FLASH采用Am29LV800B,这是一款512K*16bit(1M*8bit)的并行FLASH,支持8位和16位模式。由于本系统是为以后做完整的水下应答器做基础,因而为了保证硬件的可扩展性,采用的是速度模式为80的芯片,即最大存取时间为80ns5。图2.9 Flash外围电路原理图图2.10 74HC138外围电路图由于本系统使用的是LQFP封装的5509A,它对外只提供14条地址线,因此,在16bit模式下只能寻址8k16bit的空间,而要对Am29LV800B的512k16bit存储空间寻址时,则需要19条地址线。这里解决的方案是通过译码器和锁存器使数据总线中的D7:0具有数据地址复用功能,相对于有人使用CPLD成本会低一些。如图2.9,只需用D5:0为Flash提供高6位地址6。译码器采用74HC138译码器,将5509A的连接74HC138的片选从而使寻址地址无缝连接。74HC138可将地址线A1、A2、A3译成8个地址,为我扩展更多的器件提供了条件,图2.10为实际原理图。因此不难看出采用此方法,成本低,硬件连接并不复杂,但可以有效地解决地址线不够的窘况。2.5串口模块电路应答器有时需要与外设进行异步串行通信,如与PC机进行串行数据传输,这就要求DSP系统具UART串行接口。而DSP5509A只提供了同步串行接口,所以需要将同步串口转化成异步串口。2.5.1 方案对比分析将同步串口转化成异步串口的方案有很多,大致分为三种。第一,在DSP的并行总线上扩展UART芯片(如TI公司的TL16C552),再通过MAX232进行电平转换即可通过硬件实现异步数据传输。但成本高,硬件相对复杂,增加系统的体积。第二,利用DSP的MCBSP和DMA,在不扩展其他硬件的情况下,用软件实现异步数据传输格式。这种方法硬件简单,但软件复杂,CPU的负担大,不适合大量通信。第三,利用DSP的MCBSP同步串行接口SPI,采用MAX3111,直接将同步数据变换为UART异步数据格式进行传输。这样,就充分利用了DSP的片上资源,使硬件系统尽量简单化。图2.11 MAX3111外围电路原理图图2.11中,S25为McBSP2.FSX,S24为McBSP2.CLKX,S21为McBSP2.DR,S23为McBSP2.DX,这种连接方式主要是使用多通道缓冲串口的SPI模式,与语音编解码芯片的数据接口连接非常相似。由于内部有电转换,故可直接与DB9接口相连。MAX3111有自己的独立晶振,这样可以获得更稳定的频率。2.6PCB的绘制与电路板的焊接在PCB的绘制中,基本遵循如下几个原则:(1)数据总线和地址总线尽量保持等长,避免信号不同步。(2)数字电路与模拟电路分开,以电感相连防止相互干扰。(3)在各芯片电源管脚周围加上0.1uF电容保证各芯片的电源稳定各晶振尽量靠近管脚。(4)整个印刷电路板覆铜接地,维持电源地的相对稳定。(5)绘制引脚间距为0.5mm的元器件封装时,元器件的焊盘一般比正常器件引脚的长度长1.5mm,这样在焊接芯片的时候可以有效防止引脚之间的虚连。(6)各元器件分布按以功能模块为单位相邻放置。图2.12为本系统的硬件PCB设计图。该PCB设计为双层板,充分的利用了电路板两侧的空间,在保证各个期间互不干扰的前提下,尽量的减小印刷电路板的面积。图2.12 PCB设计图焊接元器件密度较高的电路板也要遵循一些原则。在焊接顺序上,要先将电源模块焊接好,因为电源模块为整个电路板供电,供电不正常会对整个电路板都有影响,甚至烧坏电子元器件。故需测试正确后才能继续焊接其他模块。为了缩小硬件出现问题的范围,一般每焊接完一个模块后都要单独测试。2.7本章小结本章主要介绍了应答器数字系统硬件平台的设计原理与组成,重点讲了DSP最小系统设计电路、供电电源电路、语音编解码外围电路(AD及DA模块)、SDRAM及Flash外围电路和异步串行通信的实现方案。上述各个模块是实现应答器数字系统不可缺少的部分。本章针对每一个模块都具体分析了硬件连接的方案,并简述了所选择的优势。在2.6节中介绍了在进行PCB制板时总结的一些基本原则,器件的分布与布线的方式对实现DSP芯片和各个模块的高性能发挥起到了很重要的作用。第3章应答器数字处理系统中的软件设计3.1数字处理系统中的DSP软件设计概述数字处理系统中的DSP软件设计主要包括各个模块底层驱动的设计、系统初始化程序、信号检测程序设计、测频程序设计和记录与发射的程序设计。3.2DSP的系统初始化系统初始化主要是完成DSP工作模式的选择、CPU工作时钟的配置以及外围设备的配置工作。其中外围设备包括多通道缓冲串口,DMA通道,外部同步动态存储器(SDRAM)和IIC接口。3.2.1多通道缓冲串口初始化TMS320VC5509A有三组高速多通道缓冲串口(McBSP)用于和其他DSP芯片、数字信号编解码器等外设直接相连。本系统中,串口主要用于与语音编解码芯片、串行Flash的通信。当发送数据时,CPU或DMA将数据写入数据发送寄存器(DXR1, DXR2),接着复制到发送移位寄存器(XSR1,XSR2),通过发送移位寄存器输出至DX引脚。同样,当接收数据时,DR引脚上接收到的数据先移位到移位接收寄存器(RSR1, RSR2),接着复制到接收缓冲寄存器(RBR1, RBR2), RBR再将数据复制到数据接收寄存器(DRR1,DRR2)中,并通过串口事件通知CPU或DMA读取数据。对于串口的初始化,需要对如下寄存器进行操作:l 串口控制寄存器(SPCR1,SPCR2)l 引脚控制寄存器(PCR)l 收发控制寄存器(RCR1,RCR2,XCR1,XCR2)l 采样率发生寄存器(SPGR1,SPGR2)本系统通过McBSP2与语音编解码芯片通信,由于语音编解码芯片传输的数据格式为左声道16位,右声道16位,故通过RCR1中的RFRLEN1位设置接收阶段1的帧长为1,通过RWDLEN1位设置接收阶段1的字长为32,由于我们不需要阶段2,故通过RCR2中的RPHASE位设置阶段数为1。两个采样率发生寄存器用于选择与时钟和帧同步有关的参数,由于发送与接收时钟的时钟源、帧同步的时钟源都用语音编解码芯片提供时钟信号,故采用默认值,即0x0001u、0x2000u。3.2.2DMA初始化DMA控制器可以无需CPU介入而在内部存储器、外部存储器及片上外设之间传送数据。DMA具有6个通道,每个通道都可以设置优先级,每个通道的传输都可以由选定的时间出发,DMA传送完成时可向CPU发出中断。本系统为了减轻CPU的负担,使用DMA将McBSP2接收到的数据传送到片外的SDRAM上,这样CPU可以直接处理SDRAM里的数据。DMA有4个标准端口与DARAM、SARAM、外部存储器和外设相连,如图3.18。本系统将源端口设为外设,目的端口设为外部存储器。DMA可以选择多种同步事件作为传输开始的标志。本系统将McBSP2数据接收寄存器接收到信息的事件设为同步事件,可以及时的将读入的数据搬移。初始化DMA需要对以下寄存器进行配置:l DMA全局控制寄存器(DMAGCR)l DMA通道控制寄存器(DMACCR)DSTAMODE=01使目的地址自动加一。SRCAMODE=00使源地址不变。SYNC=00101将McBSP2 Receive Event设为同步事件。l 源和目的参数寄存器(DMACSDP)该寄存器中DST和SRC位用来设置端口类型,本系统将目的端口设为EMIF(xx10),源端口设为Peripherals(xx11),突发和打包功能都禁止,通过DATATYPE设为01使数据传输单位为16位。l 起始地址寄存器主要用来设置源起始地址的32位和目的起始地址的32位,本系统使DMACSSAL=(DMA_AdrPtr)(MCBSP_ADDR(DRR11)从而将串口接收数据搬移到设定的存储空间去l 单元数量和帧数量寄存器l 单元索引寄存器和帧索引寄存器图3.1 DMA控制器与DSP其他部件的连接框图对端口、源和目的地址、同步事件和数据传输单位的设置可利用库函数声明配置结构DMA_Config,然后调用DMA_open函数,初始化DMA句柄如下:DMA_Handle mhDma;mhDma = DMA_open(DMA_CHA2,DMA_OPEN_RESET); 调用DMA_config函数对DMA进行配置:DMA_config(mhDma,&dmaConfig);配置完之后,调用DMA_start()函数即可开始传送。3.2.3通过IIC对TLV320AIC23B进行初始化本系统通过IIC对语音编解码芯片进行初始化,需要先对DSP自身的IIC初始化。利用库函数提供的初始化结构I2C_Setup声明结构体设置IIC模块,由于寻址模式支持7位和10位,对于IIC总线上设备不多的情况下,选择7位寻址模式较为方便。由于使用的晶振为12MHz,故时钟输出数为12MHz的倍数即可,本系统选用84MHz。信息传递速率在10400以内即可,本系统设为50kbps。具体设置如下:I2C_Setup I2Cinit = 0, /* 7位地址模式 */ 0, /*从设备地址,如果是主机此处设置忽略*/ 84, /*时钟输出*/ 50, /* 数据在10400*/ 0, /*设置发送和接收一个字节*/ 0, /*禁止数字回环模式*/ 1 /*忽略仿真器断点*/;图3.2 IIC模块数据传输时序图配置IIC后,即可通过库函数I2C_write()向语音编解码芯片的寄存器写配置。该函数中有5个参数用于设置,分别为:指向发送数据数组的指针,数据长度,主从模式,传输模式和定义超时时间。以复位TLV320AIC23B为例程序如下:Uint16 reset2 =0x1e,0x00;/*AIC23寄存器复位*/i2c_status = I2C_write(reset, /pointer to data array 2, /length of data to be transmitted 1, /master or slaver CODEC_ADDR, /slave address to transmit to 1,/transfer mode of operation 30000);/time out for bus busy其中,CODEC_ADDR= 0x1A,即TLV320AIC23B在IIC总线上的地址。数据传输的时序图如图3.27。IIC通信成功后,即可对TLV320AIC23B的内部寄存器进行设置。TLV320AIC23B有11个寄存器,寄存器地址为7位,数据为9位,系统将其分为两个8位通过IIC进行传输,主要需要配置寄存器如下:l 数字音频格式寄存器在该寄存器中设置为DSP模式,数据长度设为16bit,在第二个BCLK上升沿后开始从最高有效位进行传输。l 采样率寄存器TLV320AIC23B外围有自己的12MHz晶振,采用主时钟模式,采样率为44.1K。这样可以使语音编解码芯片工作更稳定,采用44.1KHz的原因是通过芯片手册得知在44.1KHz的采样率时,芯片的滤波效果较好。l 节电控制寄存器用来设置模块各功能的开关,已达到最小的功耗模式。这对于水下应答器这种不易更换电池的设备来说非常重要。3.3应答工作状态软件设计图3.3 应答工作状态软件流程图3.3为应答器数字系统在应答工作状态下的软件设计流程。系统上电后先进行系统初始化,启动多通道缓冲串口,通过IIC总线配置TLV320AIC23B。然后进入主循环,主循环中启动DMA数据传输,CPU判断已搬入SDRAM中的数据是否有信号,并测定频率是否在许可范围内,信号满足要求即进入录放程序,否则返回主循环继续检测。3.3.1信号检测软件设计应答器启动并工作在应答器状态,多通道缓冲串口接收到数据后通过DMA送至SDRAM,随后开始信号的检测程序。信号数据首先通过一个两个不同系数的一阶递归滤波器,比较输出结果判断是否有信号。然后,检测所得信号的频率,如在要检测的信号范围内,则确定为有效信号。一阶递归滤波器的公式为: (3.1)式(3.1)中,是一阶递归滤波器的第n个输出值,为滤波器的第n-1次的输出值,是一阶递归滤波器的第n个输入信号,M1为常数。由上式可知,一阶递归滤波器的第n个输出值,不仅与滤波器的第n个输入值有关,而且也和滤波器的第n-1个输出值有关。显然,当常数M的值越大时,受的影响就越小。反之,则影响越大。一阶递归滤波器是一种平滑滤波器。其输出值将跟随输入信号的变化,并且当M的值越接近1时,便越接近于。当M的值偏离1时,滤波器输出受上一次输出值的影响较大,将随而缓慢平滑的变化。即使出现激烈抖动,的变化也会相对平滑。由上面的分析可知,对于一阶递归滤波器,常数M的取值大小将直接影响滤波器输出对于输入的跟随程度。也就是说,当M的值越大时,对于输入变化的反应速度越慢:反之,当M的值越小时,对于输入变化的反应就越灵敏。因此,对于混有噪声干扰的脉冲信号,分别通过两个M值大小不同的一阶递归滤波器,当接收到脉冲信号时,其M值较小的滤波器输出值就能较早的反应脉冲信号前沿的出现。图3.4 脉冲信号消除偏置适当放大后取绝对值的图像图3.5 脉冲信号通过两个一阶递归滤波器的输出结果图3.6 脉冲信号通过两个一阶递归滤波器的输出结果图3.4为原始信号经过预处理后的脉冲信号图像,图3.5给出了脉冲信号通过两个M值不同的一阶递归滤波器的硬件仿真输出结果。图中上半部分为通过M=40的一阶递归滤波器的输出结果;下半部分为通过M=200的一阶递归滤波器的输出结果。显然M=40的滤波器的输出结果随脉冲前沿的变化更灵敏。我们正是利用两个输出结果的比值来实现脉冲信号的检测。图3.6为两个滤波器输出结果的比值,由于程序中使用的数据类型为无符号整型。故比值的结果只能为整数。一阶递归滤波器由如下程序实现:filter10 = last_data1;filter20 = last_data2;for(datacount=1;datacount= 3)start_record = 1;break;为了能精确的检测到信号,通过适当的设置两个M值,并经过多次试验结果比较,决定当M值较小的滤波器的输出值大于等于M值较大的输出值的3倍的时候,认为有信号。3.3.2检测信号的频率当确定有信号时,还需要进一步检测信号的频率。以保证确为我们要应答的有效信号。对信号做FFT变换,能高效的测得信号的频率,但如果自己编写fft函数,需要考虑很多问题,如溢出,定点,代码效率低等。TI公司为了方便开发者提供了经过汇编优化的数字信号处理函数库C55x DSPLIB。使用DSP库里的函数可以使用户获得比使用标准ANSI C语言编写的等效代码快的多的执行速度。DSPLIB具有以下特点:l 手工编写的优化的汇编代码。l 完全与C55x DSP编译器兼容的可调用的C程序。l 操作数支持分数的Q15格式。l 提供完整的应用实例的集合。l 提供程序的标准评估点(代码长度和周期数)。由于我们的工程文件使用的是大端存储模式,故采用55xdspx.lib。且需要在头文件中添加dsplib.h, TMS320.h等文件并修改Include以及lib的搜索路径。FFT是离散傅里叶变换(DFT)的一种快速算法。FFT的原理和参数生成公式如下: (3-2)根据傅里叶变换的额对称性和周期性,可以将DFT运算中有些项合并,先设序列长度N=2L,L为整数。将N=2L的序列(n=0,1,N-1),按N的奇偶分成两组,也就是说将一个N点的DFT分解成两个N/2点的DFT,它们又重新组合成一个如(3-2)式所表达的N点DFT。当输入为纯粹的实数的时候,就可以利用左右对称的特性更好地计算FFT。库函数void rfft(DATA *x, ushort nx, type)是用于计算基-2实FFT变换的函数。它有三个参数:待处理的数组,数组中元素的个数和类型。其中数组中元素个数只能取一定的整数:16,32,64,128,256,512,2048。函数执行后,运算结果是以先实部后虚部的形式存放在原数组中的,故只能存放nx/2个结果。库函数rfft()的调用C语句如下:/FFT 变换rfft(DATA*)databuffer,512,SCALE);abs_convert(DATA*)databuffer,512);abs_convert()函数是用来将rfft()变换后的由实部和虚部的组成的虚数取绝对值的函数。取绝对值后即可找到能量最集中的频率,予以判断。3.3.3记录和发射信号当系统确定为有效信号时,系统自动进入记录音频并发送的状态。本系统使用的SDRAM有4M*16bit的空间,对于采样率44.1KHz,有充足的空间。通过McBSP接受到的数据直接放入SDRAM。记录采样数据的程序如下:data_Index = 0;while(data_IndexMAX_LEN)while(!MCBSP_rrdy(hMcbsp);aic23data = MCBSP_read16(hMcbsp);aic23data=(aic23data+945)*10;reservedata_Index+ = aic23data;在读取数据的时候一定要等数据接受寄存器接受完成。通过MCBSP_rrdy(hMcbsp)可以获得SPCR1中RRDY的状态。当RRDY=1时表明数据已完成接受可以读取了。在发送数据的时候也要注意类似问题,否则容易数据出错。程序中还可设置发射的延迟时间,当延时时间结束后,将存入SDRAM中的数据通过McBSP发给语音编解码芯片,经过DA转化成模拟量。发射数据的程序如下:start_record = 0;data_Index = 0;/-读出SRAM中的数据while(data_IndexMAX_LEN)aic23data = reservedata_Index+;while(!MCBSP_rrdy(hMcbsp);MCBSP_write16(hMcbsp,aic23data);3.4DSP bootloader程序设计由于TMS320VC5509A片内不具有Flash,致使DSP里的程序掉电会丢失,为了使DSP在上电之后实现程序自举,故需要外接非易失性存储器来完成DSP程序上电状态的引导。DSP内部自带的bootloader程序(在DSP以FF8000H 开始的ROM 中)用于上电时将用户程序从外部非易失性、慢速存储器或外部控制器中装载到片内高速RAM上,保证用户程序在DSP内部高速运行。3.4.1Bootloader模式5509A有多种程序加载方式如表3.19。表3.1BOOT引导方式选择表GPIO0GPIO3GPIO2GPIO1BOOT MODE PROCESS0000Reserved0001Serial(SPI)EPROM Boot(24-bit address) via McBSP00010USB0011IIC EEPROM (7-bit address)0100Reserved0101HPI multiplexed mode0110HPI nonmultiplexed mode0111Reserved1000Execute from 16-bit-wide asynchronous memory (on CE1 space)1001Serial (SPI) EPROM Boot(16-bit address) via McBSP010108-bit asynchronous memory(on CE1 space)101116-bit asynchronous memory(on CE1 space)1100Reserved1101Reserved1110Standard serial boot via McBSP0 (16-bit data)1111Standard serial boot via McBSP0(8-bit data)本设计采用AT25256通过设置bootloader从外部串行Flash启动,AT25256是可以存放32k字节程序的,对于本设计的程序非常足够。AT25256内部有8个命令寄存器,它的读写需要对寄存器进行操作。通过向写使能寄存器写入任意值使能写操作,通过读状态寄存器取得芯片的状态,通过写状态寄存器可以选择四种不同的数据保护级别,通过读寄存器读取片内数据,通过写寄存器写入数据。图3.710和图3.810是读写时序,需要严格遵守。本系统在设计中曾因片选在时钟结束之前就上拉而导致AT25256无法正常的读写。图3.7 AT25256读时序图3.8 AT25256写时序3.4.2 生成导引表由于CCS3.3编译链接后的程序都是COFF格式(通用目标文件格式)的.out目标文件,但并不能以这种格式输入到串行Flash里去,所以需要使用TI公司提供的hex55.exe转换文件将.out转化成.bin或.hex文件。生成引导表的方法: 通过在DOS 环境下使用hex55.exe 转换工具。在转换操作之前, 先把用户程序生成的.out 文件、包含转换选项的CMD 文件hex5509.cmd 和转换工具hex55.exe 放在同一个文件夹里, 在DOS 方式下先将路径修改为文件所在的位置, 然后在此路径下运行命令hex55 hex5509.cmd , 即可生成想要的.hex 文件。在转换时,提供引导表的相关配置信息的CMD文件这里被命名为hex5509.cmd,文中用到的hex5509.cmd的内容如下:-e _c_int00/*程序入口地址*/-boot/*创建一个引导表*/-v5510:2/*选择合适的DSP引导表格式*/-serial8/*8位串行加载模式*/-reg_config 0x1c00,0x2180/*向地址为0x1c00的外设寄存器写入0x2180*/-delay 0x100/*延时256个周期*/-b-o LED.bin /*输出文件*/LED.out/*输入文件*/在烧写不同的程序时,只需要更改输入文件和输出文件的名字。将生成的.bin的文件复制到烧写程序文件夹的Debug文件夹下,烧写程序运行结束后,调整GPIO0=1、GPIO1=1、GPIO2=0、GPIO3=0后重新上电就会发现系统运行的是烧写的程序。3.5
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广东工程职业技术学院《电力系统稳态分析》2024-2025学年第一学期期末试卷
- 儿童乐园行业发展方案
- 防水涂料热、碱、酸、人工气候老化处理试验记录
- 大学生职业生涯规划与就业创业指导(实践版)笔试题库 图形推理2
- 第三章 指数运算与指数函数(高效培优单元测试-提升卷)数学北师大版2019必修第一册(解析版)
- 秋季道德与法治五年级上册《美丽文字 民族瑰宝》简案
- 职业技术学院毕业设计(论文)与毕业答辩管理规定
- 论社会主义建设在探索曲折中发展
- 函授汉语言文学论文
- 建设工程项目全寿命的集成化管理探究
- 德龙咖啡机 EC680.R 中文说明书
- 《电工(5-3级)技能考核要素细目表及技能考核内容结构表》
- 心肌病基因检测指征
- 港式室内设计风格解析
- 未成年人法制教育体系构建
- 外研社英语一年级起点五年级上册知识点总结 重点句型 课文讲解
- 食品加工企业会计核算流程
- 生物质燃料颗粒可行性研究报告
- 《资产负债表(适用执行民间非营利组织会计制度的组织)》
- 网络安全教师培训会议
- 《发票发票知识培训》课件
评论
0/150
提交评论