基于dsp的音频信号分析仪的设计毕业论文基于tms320c5402的音频信号分析仪的设计及实现内容摘要:

步串行口作为从声卡到 DSP 芯片的数据传输通道。 McBSP0 包括串口 0/1 的数据接收时钟 BCLKR0、串口数据接收 BDR0、串口数据接收同步信号 BFSR0、串口发数时钟 BCLKX0、串口发数端 BDX0、串口发数同步信号 BFSX0。 TMS320VC5402 以其低成本、低功耗、资源多的特点在通信、控制领域得到了广泛的应用。 片上集成了最大 192kB 存储空间 64kB RAM、 64kB ROM、 64kB I/O ,具有时分多路串口 TMD, 2 个缓冲串口 BSP、 8 位并行主机接口 HPI、可编程等待状态发生器等,完全可以满足数据处理及控制要求。 基于 5402 构建的应用系统中必不可少的是各种数据通信接口的设计。 与并口相比,串行接口的特点是减少器件引脚数目,节省了硬件系统的体积,降低了接口设计的复杂性。 利用缓冲区的目的是进行音效的实时处理。 系统中各模块是同时进行处理的,一部分信号正在 ADC 中进行转换,而另一部分信号则在 DSP 处理器中同时进行算法处理,即整个系统是以流水线的方式进行工作。 1 主机接口的传统解决方案 由于 DSP 的控制功能不是非常强大 ,在应用中往往不得不把 DSP 作为目标系统专门负责复杂的运算 ,而另外使用一个主机 PC 机或是单片机 对整个系统的运行实行控制。 所以 ,在使用 DSP 的多处理器系统中 ,主机 单片机、 PC 机、另一个 DSP芯片 与目标系统 DSP的数据交换就成为应用系统设计中必须考虑的重要问题。 解决主机与目标系统的数据交换是一个非常复杂的问题。 传统的方式是采用 DMA Direct Memory Access 或全局存储器 Global Memory 完成多机系统中的数据共享。 在 DMA 方式下 ,读写共享内存必须要求其它处理器处于停止工作的状态 ,所以 DMA 共享存储器的方式往往不为人所用。 全局存储 器是多个处理器共享的存储器。 在使用全局存储器的应用系统中 ,DSP 的地址空间被分成局部块 Local Section 和全局块 Global Section。 局部块用于完成处理器自己的工作 ,而全局块则用来完成与其它处理器的通信工作。 在 TMS320C5x 器件中 ,使用全局存储器分配寄存器 GReg 完成对全局内存的管理工作。 GReg 指定部分 DSP 内存为全局内存。 比如 ,TMS320C5x 器件能够分配全局数据内存空间 ,并通过 BR Bus Request 和 hcs 控制信号实现与该内存的通信。 当需要寻址全局内存空间时 ,BR 和 hcs信号变低电平。 于是外部逻辑进行全局内存控制权的裁决 ,裁决的结果将通过选通信号通知某个 TMS320C5x,从而使该 DSP 现在就拥有对全局内存的控制权。 显然 ,使用全局内存的方式来完成多 DSP 的共享数据通信是非常方便的。 但是 ,应用系统往往由单片机作为主机 ,DSP 作为目标系统构成。 由于当前使用最多的单片机往往是 8位机 ,使用 16位机的共享内存完成主机与 DSP的数据交换不是处理太复杂就是资源利用不充分。 为了解决 DSP 与低档位主机的数据交换问题 ,TI 公司在 TMS320C54x 系列中使用了 HPI 接口。 HPI 将以往 一些需片外实现的功能集成在片内 ,简化了与主机的连接 ,同时主机可以达到很高的访问速度。 HPI 的简介 主机接口 HPI Host Pott Interface 是 C54x DSP 系列定点芯片内部具有的一种并行接口部件,主要用于与其他总线或 CPU 之间进行通信。 主机是 HPI 口的主控者, HPI 口作为一个外设与主机连接,使主机的访问操作很方便。 主机通过以下单元与 HPI 口通信:专用地址和数据寄存器、 HPI 控制寄存器以及外部数据和接口控制信号。 HPI 有两种工作方式:共用寻址方式 SAM 和仅主机寻址方式 HOM。 在 SAM 方 式下,机和 C54x 都能寻址 HPI 存储器;在 HOM 方式下,仅能让主机寻址 HPI 存储器, C54x 则处于复位状态,或者处在所有内部和外部时钟都停止工作的 IDLE2 空闲状态 最低功耗状态。 VC5402 是 TI 公司推出的一款性价比极高的 16 位定点处理器。 它是 C54x系列中应用比较广泛的一种芯片,有着丰富的接口资源,是一种集数据处理和通信功能于一体的高速微处理器。 VC5402 HPI 口是一个增强的 8 位主机接口,它通过 HPI 控制寄存器 HPIC、地址寄存器 HPIA 和数据锁存器 HPID 来实现与主机之间的通信。 主机通过外部 引脚 HCNTLO 和 HCNTL1 选中不同的寄存器,则当前发送 8 位数据就到该寄存器。 控制寄存器 HPIC 既可以被主机直接访问,又可以被DSP 片上 CPU 访问。 在使用上,由于主机接口总是传输 8 位字节,而 HPIC 是一个 16 位寄存器,所以主机向 HPIC 写数据时,需要发送 2 个相同的 8 位数据。 地址寄存器 HPIA,只能被主机直接访问。 主机将 HPIA 寄存器视为一个地址指针,借助于 HPIA 主机可以访问 VC5402 全部的片上存储器。 另外 HPIA 具有自动增长的功能,在自动增寻址模式下,一次数据读会使 HPIA 在数据读操作后增加 1,而一个 数据写操作会使 HPIA 操作前预先增加 l。 这样如果使能了该功能,则只须设定一次 HPIA 即可实现连续数据块的写入和读出。 数据寄存器 HPLD,只能被主机访问。 如果当前进行的是读操作,则 HPID 中存放的是要从 HPI 存储器中读出的数据;如果当前进行的是写操作,则存放的是将要写到 HPI 存储器的数据。 ? TMS320C54x 系列 DSP 芯片中的 HPI,能够顺序传送或随机传送数据 ,产生 HOST 中断和 C54x 中断 ,接口灵活 ,并可通过 DMA 总线访问片内 RAM。 当 TMS320 C54X 与主机 或主设备 交换信息时 ,HPI 是主机的 一个外围设备。 HPI 有 8 根数据线 HD 0~ 7 ,在 TMS320C54x 与 HOST 传送数据时 ,HPI 能自动将外部接口传来的连续数据组合成 16 位数后传送给 DSP。 如果 HOST 和 DSP 竞争同一个地址 ,则 HOST 优先 ,DSP 等待一个 HPI 周期。 TMS320C54x系列发展到 TMS320VC5402的时候 ,其 HPI已经得到了增强 ,被称为 HPI8。 和 TMS320C54x 系列前几款芯片中的标准 HPI 相比 ,HPI8 在几个方面有所不同 HPI8的使用是通过对 HPIA、 HPIC和 HPID三个寄存器赋值实现的。 HPIA是 地址寄存器 ,HPIC 是控制寄存器 ,而 HPID 是数据寄存器。 简单地说 ,HOST 通过外部引脚 HCNTL0 和 HCNTL1 选中不同的寄存器 ,则当前发送的 8 位数据就送到该寄存器。 在使用上 ,由于 HPIC 是 16 位寄存器 ,而 HPI8 是 8 位的数据宽度 ,所以在 HOST 向 HPIC 写数据时 ,需要发送两个一样的 8 位数据。 而地址寄存器 HPIA选择后 ,直接向它写数据就可以了 ,但是要注意 MSB 和 LSB 的顺序。 另外 ,HPIA 具有自动增长的功能 ,在每写入一个数据前和每写入一个数据后 ,HPIA 会自动加 1。 这样 ,如果使能了该功能 ,只需设定一次 HPIA 即可实现连续数据块的写入和读出。 数据寄存器 HPID,严格说应该叫做数据缓冲寄存器 ,因为最终数据是要写到片内 RAM 的。 只是在实现上 ,数据首先从 HOST 发到 HPID 中 ,然后根据 HPIA 指定的地址 ,HPID 中的数据再写到片内 RAM 的地址中。 不过对用户而言 ,该过程是透明的。 因此, DSP 处理器和单片机处理器之间的数据通信是必不可少的。 它们之间的通信接口设计是整个系统的一个关键。 对于 DSP 和单片机的具体连接方案,考虑到不论是接串口还是接 I/ O 口都要占用 DSP 的硬件资源,同时软件开销也非常大。 而 TMS320VC5402 提供有 HPI 接口,可专用于 DSP 和主机之间的通信,因此 DSP 在通过 HPI 口和主机通信的过程中完全没有硬件和软件开销,而是由DSP 自身的硬件来协调冲突,因从而不会打断 DSP 正常程序的运行。 在 HPI 通信方式下, DSP 的片内存储器对外界是完全透明的,可由主机通过访问 HPI 的地址和数据寄存器来完成对 DSP 片内存储器的读写。 本系统采取 DSP 的 HPI 口和单片机的 P0 口相连来作为数据传输口从而实现两者的交互。 本设计选取 ATMEL 公司的 AT89C51 单片机作为主机,并以 I 接口方式连接DSP 和 AT89C51,设计时使用 了 AT89C51 的两个通用 IO 端口 P0 和 P2 将 AT89C51的端口 P0 和 HPI 的 8 位数据线 HD0~ HD8 相连作为数据传输通道, P20~ P24 设置为输出以控制 HPI 口的操作。 其中 P2 和 P2 分别连接 HCNTL0 和 HCNTLl 以实现对 HPIC、 HPIA 和 HPID 寄存器的访问, P2 连接字节识别信号 HBIL 可控制读写数据是属 16 位字的第一字节还是第二字节, P2 作为读写控制选通信号连接 HR/W,P2 与 HCS 相连,而连接 HDS1 作为数据选通信号来锁存有效的 HCNTL01, HBIL 和HRW 信号。 INT0 作为输入与 HPI 口 的主机中断信号 HINT 相连。 ALE 与 HAS 相连,WR 和 HDS2 相连。 由 HPI 接口的原理可知,在 HCNTL0 HBIL 和 HR/W 信号有效之后,设置 HDS1 为低电平可实现读写的数据选通,从而完成 AT89C51 对 DSPHPI口的读写操作。 在数据交换过程中, AT89C51 向 HPI 发送数据可通过置TMS320VC5402 的 HPI 控制寄存器 HPIC 中的 DSPINT 位为 1 来中断 5402。 AT89C51接收来自 HPI 的数据时则可用查询方式。 当 TMS320VC5402DSP 准备发送数据时,置 HINT 信号为低。 当 AT89C51 查询到 INT0 为低时,系统将调用接收数据子程序来实现数据的接收。 89C51 是一种带 4K 字节闪烁可编程可擦除只读存储器( FPEROM― Falsh Programmable and Erasable Read Only Memory)的低电压,高性能 CMOS8 位微处理器,俗称单片机。 单片机的可擦除只读存储器可以反复擦除 100 次。 该器件采用 ATMEL 高密度非易失存储器制造技术制造,与工业标准的 MCS51 指令集和输出管脚相兼容。 由于将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中, ATMEL的 89C51 是一种高 效微控制器, 89C 单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 主要特性 与 MCS51 兼容 4K 字节可编程闪烁存储器寿命: 1000 写 /擦循环数据保留时间: 10 年全静态工作: 0Hz24MHz 三级程序存储器锁定 128*8 位内部 RAM32 可编程 I/O线两个 16位定时器 /计数器可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路 8 位 CPU 外部存贮器寻址范围 ROM、 RAM64K5 个中断源,两个中断优先级全双工串行口布尔处理器图 31 89c51 结构图 二、管脚说明:电源引脚 Vcc( 40 脚):供 电电压典型值+ 5VVss( 20 脚):接低电平 GND:接地 外晶振 X X2 分别与晶体两端相连接。 当采用外部时钟信号时, X2 接振荡信号, X1 接地。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 XTAL1 和 XTAL2 分别为反向放大器的输入和输出。 该反向放大器可配置为片内振荡器。 石晶振荡和陶瓷振荡均可采用。 如采用外部时钟源驱动器件, XTAL2 应不接。 输入内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 输入输出口引脚 P0 口: I/O 双向口。 作输入口时,应先置“ 1”。 P1 口: I/O 双向口。 作输入口时,应先置“ 1”。 P2 口: I/O 双向口。 作输入口时,应先置“ 1”。 P3 口: I/O 双向口。 作输入口时,应先置“ 1”。 T89C51 单片机的 P 口特点:P0 口:是一个 8 位漏极开路输出型双向 I/O 端口。 作为输出端口时,每位能以吸收电流的方式驱动 8 个 TTL 输入,对端口写 1 时,又可作高阻抗输入端用。 在访问外部程序或数据存储器时,它是时分多路转换的地址(低 8 位) /数据总线,在访问期间将激活内部的上拉电阻。 P1 口: P1 口是一个带有内部上拉电阻的 8位双向 I/O 端口。 P1 口的输出缓冲器可驱动(吸收或输出电流方式) 4 个 TTL输入。 对端口写 1 时,通过内部的上拉电阻把端口拉到高电位,这时可作输入口。 P2 口作输入口使用时,因为内部有上拉电阻,那些被外部信号拉低的引脚会输出一个电流( Iil)。 P2 口: P2 口为一个内部上拉电阻的 8 位双向 I/O 口, P2 口缓冲器可接收,输出 4 个 TTL 门电流,当 P2 口被写“ 1”时,其管脚被内部上拉电阻拉高,且作为输入。 并因此作为输入时, P2 口的管脚被外部拉低,将输出电流。 这是由于。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。