基于DSP的USB语音传输接口设计方案
用,正常上电复位后,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设备其实是一个数字电话机的模型,本系统软硬件都具有模块化特性,易于改造成其他应用场合的语音控制系统:从大的方面讲,可以组成数字电话网:从小的方面讲,在一个局域网内部,所有成员就都可
- Linux系统下USB摄像头驱动程序开发(04-25)
- 基于uClinux嵌入式系统的汽车黑匣子的设计(07-08)
- 基于WinCE操作系统的通用USB数控键盘设计(08-05)
- 基于WinCE的ARM视频监控系统(11-14)
- 基于LabVIEW的USB实时数据采集处理系统的实现(03-26)
- 基于DSP和USB的高速数据采集与处理系统设计(05-01)