您当前的位置:五五电子网电子知识单片机-工控设备DSP/FPGA技术基于DSP的USB语音传输接口设计 正文
基于DSP的USB语音传输接口设计

基于DSP的USB语音传输接口设计

点击数:7717 次   录入时间:03-04 11:37:22   整理:http://www.55dianzi.com   DSP/FPGA技术

 :介绍了一种基于DSP的USB语音传输接口的设计。通过USB在DSP和PC机之间进行串行通信,实现PC机对设备的命令控制及语音数据的双向传输。本设计中使用了USB的3种数据传输方式:控制传输、中断传输和等时传输,为扩充设备的应用范围打下了基础。
    关键词:语音传输;USB;DSP;串行通信

1 引 言
  USB把所有的输入和输出外设都置于机箱之外,而不用任何扩展槽。他是快速、双向、同步、动态连接且价格低廉的串行接口,可以满足PC机发展的现在和未来的需要。本设计就是充分发挥了USB这些优点,利用当今先进的电子技术研制出来的一种新型的高性能的语音传输接口装置。
  本设计选用TI公司的TMS320VC5402(以下简称DSP,DigitalSignalProcessor)作为本设计的主控制器芯片,NS公司的USBN9603(以下简称USB,Universal Serial Bus)作为USB控制器芯片,NEWAVE公司的NW1034(以下简称CODEC)作为语音编解码器芯片,MITEL公司的MH88634(以下简称 COIC)作为电话机接口芯片。
2 DSP和USB简介
  TMS320VC5402是定点芯片TMS320C54X系列的一种,是为实现低功耗和高性能而专门设计的定点 DSP芯片,主要应用在无线通信和语音处理等方面。TMS320VC5402的主要特点包括:处理性能好,运算速度达100 MI/s;优化的CPU结构,内部有1个40 b的算术逻辑单元,2个独立的40 b的加法器,1个17×17的的乘法器和1个40 b的桶形移位寄存器,有4条内部总线和2个地址产生器;低功耗方式,可以在3.3 VI/O电压和1.8 V内核电压下工作;智能外设,除了标准的串行口和时分复用(TDM)串行口外, TMS320VC5402还提供了自动缓冲串行口BSP(auto- BufferedSeroal Port和与外部处理器通信的HPI(HostPort Interface)接口;内部有16 k片内RAM和4 k片内ROM。
  TMS320VC5402其独特的高性能、低功耗和低价格优势,是我们选择他作为本设计的主处理器的原因。  USB自1995年实现标准化后,经过了数年的飞速发展,已经从最初1.0规范发展到现在的2.0规范,最大传输速率可达480 Mb/s。本设计使用的USBN9603支持USB1.1规范,低速传输速率为1.5 Mb/s,全速传输速率为12 Mb/s。USB提供了4种传输方式,以适应各种设备的需要。这4种传输方式分别是控制传输、NS的USBN9603是一个集成的USB端点控制器,具有增强的DMA功能。USBN9603集成了一个带有3.3 V的调节器的收发器,1个SIE(串行接口引擎),1个8 b并行接口,1个时钟发生器和1个MICROWIRE/PLUS接口。USBN9603可以进行7个端点的数据传输,除了端点0必须为控制传输端点以外,其他的6个端点可以被配置成中断传输端点、批量传输端点或者等时传输端点。每一个端点都有一个专门的FIFO,控制端点的FIFO长度为8 B,其他的为64 B。8 b并行接口可以支持多路复用或者非多路复用2种与CPU的接口方式。USBN9603的突出特点为:低EMI(电磁干扰),低等待电流,24 M晶振,增强的DMA功能;可使用5 V或3.3 V电源;总线操作具有异步唤醒的全速静态HALT模式;改进的3.3 V电压输入的电压调节器,所有非双向端点都有64 B的FIFO;外部控制器接口简单,编程方便。
3 语音传输的思想
  本设计的目的是给普通电话机和PC机之间提供一个数字接口。在本设计中,PC机是主机,DSP系统是USB设备。
  当有来电时,COIC向DSP申请中断,DSP收到中断后就使用USB的中断传输向主机报告有来电,主机应用软件会弹出一个对话框要求用户选择摘机还是拒接,同时耳机或音箱里会传出电话铃声,如果选择摘机,主机就会使用USB的控制传输发送一个摘机命令给DSP,DSP在接到命令后就会接通电话,同时启动CODEC,然后语音数据就通过USB的等时传输(也叫同步传输)进行双向传送,而主机用户插上耳机(或音箱)和话筒就可以与电话另一端通话,通话完毕,主机发送一个挂机命令给DSP。如果选择拒接,主机就发送一个拒接命令给DSP,DSP会执行相应的动作。
  当用户需要往外拨号时,也无需拿起电话机,只要在应用软件中选择拨号功能,输入被叫号码,点击确认键即可。剩下来的执行过程与有来电时的情况是一样的。
4 电路原理设计
  本设计由DSP构成核心控制器,控制对象是USB,CODEC和COIC。图1是整个系统的硬件框图。本设计的USB部分使用了USB的3种传输方式:
    (1)控制传输 
    用于实现设备枚举主机的标准请求还有厂商自定义请求(即主机命令)。
    (2)中断传输 
  用于实现设备对主机的唤醒,是惟一的设备主动向主机发送数据的传输方式。
    (3)等时传输 
用于实现语音数据的双向同步传输。

  图2是USB与DSP的接口原理图,如图所示,USB使用24 M晶振,本设备是全速(高速)设备,所以在D+上加0.5 kΩ上拉电阻,如果是低速设备,则在D-上加1.5 kΩ上拉电阻。MODE0和MODE1是选择8 b并行接口方式的,本设计中选用非多路复用方式,所以MODE0和MODE1都接地,如果要选择成多路复用方式,则使MODE0接3.3 V电源,MODE1接地即可。CLKOUT是时钟输出,可供测试用,正常上电复位后,CLKOUT就应该输出4 MHz的方波。然后可以在主程序中对USB的时钟寄存器进行配置,以产生需要的时钟,然后用示波器就可以在CLKOUT上看到相应的输出,可以用来判断读写操作是否正确等。


  CODEC与DSP的接口为标准的串行通信接口。
COIC把普通电话的两线制转换为四线制后实现与CODEC的无缝连接,另外和DSP接口只需几根简单的控制线即可实现。
5 系统软件的设计
  系统软件主要由3个部分组成:Firmware,USB驱动程序,主机应用软件。图3是系统软件框图。


5.1 Firmware
  固件程序,是写在DSP的ROM中的程序,由主程序和中断服务程序组成。使用TI提供的CCS(CodeComposer Studio)来完成Firmware的编写。CCS是TI推出的代码编译调试的集成环境,调试方便、易于使用,为本设计的顺利进行创造有利条件。
    (1)主程序 
  图4为主程序流程图。主程序只做初始化和检测一些状态位的变化,以转入相应的处理子程序中。


    (2)中断服务程序 
  包括COIC的中断服务程序、CODEC的中断服务程序和USB中断服务程序3部分。Firmware的大部分工作是在中断服务程序中完成的。
  COIC只有一个中断,就是把振铃信息传送给DSP。
  CODEC有3个中断:首先是接收振铃信息,在振铃中断服务子程序中,把振铃标志位置位;然后是接收中断,在中断服务子程序中把从电话接收到的语音数据装载到相应的FIFO中去;还有就是发送中断,在 中断服务子程序中把从PC机侧发过来的语音数据发送至电话终端。
  USB有4个中断,所有的数据交换都是在中断服务子程序中完成的,而且除中断传输外每次传输都是由客户启动的,主机应用软件调用USB功能驱动程序开始一个传输过程,然后USB产生一个中断请求,向DSP申请中断,在得到DSP的响应之后才进入中断服务子程序进行数据的接收或者发送。
5.2 USB驱动程序
  USB的驱动程序属于WDM(Windows DriverModel)类型,Windows 98/2000等操作系统均支持该类型的驱动程序。WDM首先定义了一个基本的核心驱动程序模型,处理所有类型的数据,使驱动程序模型的内核实现更加的固定。WDM驱动程序还是一种分层的程序结构,可以看做是Windows NT驱动程序的改进,WDM驱动程序支持即插即用、电源管理和WMI(Windows Management Instrument)特性。Windows 98/2000提供了一系列的系统驱动程序,他们具有为许多标准类型设备服务所需的所有基本功能。图5是USB的WDM接口框图(也是USB驱动程序总体框图)。


  Windows提供了USB的系统类驱动程序,他处理USB上的所有底层通信,这样其他驱动程序就有了一个定义好的接口可以使用。图5中USB类驱动程序使用UHCD.SYS或OHCI.SYS分别驱动两种类型的控制器UHCI(USBHost Controller Driver)和OHCI(Open Host Controller Interface)。当PCI枚举器发现USB主机控制器后,就会装入相关的驱动程序。

[1] [2]  下一页


本文关键字:语音  接口  DSP/FPGA技术单片机-工控设备 - DSP/FPGA技术