基于DSP的USB语音传输接口设计方案
扫描二维码
随时随地手机看文章
1 引 言
USB把所有的输入和输出外设都置于机箱之外,而不用任何扩展槽。他是快速、双向、同步、动态连接且价格低廉的串行接口,可以满足PC机发展的现在和未来的需要。本设计就是充分发挥了USB这些优点,利用当今先进的电子技术研制出来的一种新型的高性能的语音传输接口装置。
本设计选用TI公司的TMS320VC5402(以下简称DSP,Digital Signal Processor)作为本设计的主控制器芯片,NS公司的USBN9603(以下简称USB,Universal Serial Bus)作为USB控制器芯片,NEWAVE公司的NWl034(以下简称CODEC)作为语音编解码器芯片,MITEI。公司的MH88634(以下简称COIC)作为电话机接口芯片。
2 DSP和USB简介
TMS320VC5402是定点芯片TMS320C54X系列的一种,是为实现低功耗和高性能而专门设计的定点DSP芯片,主要应用在无线通信和语音处理等方面。TMS320VC5402的主要特点包括:处理性能好,运算速度达100MI/s;优化的CPU结构,内部有1个40b的算术逻辑单元,2个独立的40b的加法器,1个17×17的的乘法器和1个40b的桶形移位寄存器,有4条内部总线和2个地址产生器;低功耗方式,可以在3.3VI/O电压和1.8V内核电压下工作;智能外设,除了标准的串行口和时分复用(TDM)串行口外,TMS320VC5402还提供了自动缓冲串行口BSP(auto-Buffered Serial Port)和与外部处理器通信的HPI(Host Port Interface)接口;内部有16k片内RAM和4k片内ROM。
TMS320VC5402其独特的高性能、低功耗和低价格优势,是我们选择他作为本设计的主处理器的原因。
USB自1995年实现标准化后,经过了数年的飞速发展,已经从最初1.0规范发展到现在的2.o规范,最大传输速率可达480Mb/s。本设计使用的USBN9603支持USBl.1规范,低速传输速率为1.5Mb/s,全速传输速率为12Mb/s。USB提供了4种传输方式,以适应各种设备的需要。这4种传输方式分别是控制传输、等时传输、中断传输和批量传输。
NS的USBN9603是一个集成的USB端点控制器,具有增强的DMA功能。USBN9603集成了一个带有3.3V的调节器的收发器,1个SIE(串行接口引擎),1个8 b并行接口,1个时钟发生器和1个MICROWIRE/PLUS接口。USBN9603可以进行7个端点的数据传输,除了端点。必须为控制传输端点以外,其他的6个端点可以被配置成中断传输端点、批量传输端点或者等时传输端点;每一个端点都有一个专门的FIFO,控制端点的FIFO长度为8B,其他的为64B。8 b并行接口可以支持多路复用或者非多路复用2种与CPU的接口方式。USBN9603的突出特点为:低EMI(电磁干扰),低等待电流,24M晶振,增强的DMA功能;可使用5V或3.3V电源;总线操作具有异步唤醒的全速静态HALT模式;改进的3.3V电压输入的电压调节器,所有非双向端点都有64B的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使用24M晶振,本设备是全速(高速)设备,所以在D+上加0.5kΩ上拉电阻,如果是低速设备,则在D一上加1.5kΩ上拉电阻。MODE0和MODEl是选择8b并行接口方式的,本设计中选用非多路复用方式,所以MODE0和Model都接地,如果要选择成多路复用方式,则使MODE0接3.3V电源,MODEl接地即可。
CLKOUT是时钟输出,可供测试用,正常上电复位后,CLKOUT就应该输出4MHz的方波。然后可以在主程序中对USB的时钟寄存器进行配置,以产生需要的时钟,然后用示波器就可以在CLKOUT上看到相应的输出,可以用来判断读写操作是否正确等。
CODEC与DSP的接口为标准的串行通信接口。COIC把普通电话的两线制转换为四线制后实现与CODEC的无缝连接,另外和DSP接口只需几根简单的控制线即可实现。
5 系统软件的设计
系统软件主要由3个部分组成:Firmware,USB驱动程序,主机应用软件。图3是系统软件框图。
5.1 Firmware
固件程序,是写在DSP的ROM中的程序,由主程序和中断服务程序组成。使用TI提供的CCS(Code Composer 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 Driver Model)类型,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(USB Host Controller Driver)和OHCI(Open Host Controller Interface)。当PCI枚举器发现USB主机控制器后,就会装入相关的驱动程序。
需要自己做的驱动程序实际上是USB功能驱动程序(也叫客户驱动程序),他控制一个给定的USB功能设备,例如我们的语音传输设备。连接到USB设备的每一种类型的功能单元都必须要有功能驱动程序。这些功能单元不知道和USB传输机制相关的细节,而且必须依赖于USB的主机应用软件才能管理他们基于USB的能力和限制的传输请求。功能驱动程序的理想实现是基于设备类而定义的。功能驱动程序把USB设备看作是一个司以被访问的端点的集合,他可以被控制并与他的功能单元进行通信。USB功能驱动程序可以在VC++下编写,但需使用微软提供的NTDDK(Windows NT Driver Develop Kit)来编译驱动程序。
5.3 主机应用软件
主机应用软件所完成的主要工作为:打开和关闭USB设备;读取设备描述符等;向设备发送摘机、挂机和拨号等命令;主动向用户发声并弹出对话框提示有来电;进行拨号;拨号或摘机后的双向语音同步传输。
主机应用软件在VC++6.0下完成,应用软件所操作的对象就是USB功能驱动程序,由于功能驱动程序提供与应用软件的接口,因此编写应用软件的难度要远远低于功能驱动程序的开发难度。
6 结 语
在当今的数字化时代背景下,DSP已成为通信、计算机、消费类电子产品等领域的基础器件,被誉为信息社会革命的旗手。USB为PC外围设备输入输电提供了新的接口标准。他使得设备具有了热插拔、即1插即吊、自动配置的能力,并标准化了设备连接。USB的级联星型拓扑结构大大扩充了外设数量,使增加、使用外设更加便捷、快速。
本文所介绍的USB设备其实是一个数字电话机的模型,本系统软硬件都具有模块化特性,易于改造成其他应用场合的语音控制系统:从大的方面讲,可以组成数字电话网:从小的方面讲,在一个局域网内部,所有成员就都可以通过局域网方便地接听和拨打电话,而无需大量的分机。该设计节省了大量的人力和物力,具有较强的使用价值和推广意义