![]() |
|
||||||||||||||
| . 网站首页 . 新闻 . 新品 . 方案 . 专访 . 活动 . DSP . EDA . 评测室 . 技术文库 . 会员区 . 商城 . 服务导航 . 邮购 . 资源 . | ||
|
||
|
|||||
| 基于USB2.0接口的语音采集系统设计 | |||||
作者:施荣荣 … 文章来源:单片机与嵌入式系统应用 点击数: 更新时间:2007-7-17 ![]() |
|||||
|
西南交通大学 施荣荣 张翠芳 单片机与嵌入式系统应用
摘要:本文设计了一种高速的语音数据采集卡,给出了语音数据采集系统的总体设计框图,完成硬件电路原理图的设计并绘制PCB板。语音采集系统的软件设计包括固件程序设计、USB设备驱动程序开发和应用程序界面开发。该采集卡使用TI公司的C6000系列高性能DSP芯片作为系统核心,通过USB2.0接口来完成与计算机的高速数据传输,可实现将语音数据送到计算机进行存储和将语音数据传回板卡进行回放的功能。
关键词 语音采集USB2.0 固件DSP WDM设备驱动
引 言 语音信号的采集和处理在网络、通信、智能仪表、工业控制、医疗卫生、公共安全等领域得到了越来越广泛的应用,而这些工作都需要一套高速的语音信号采集系统来完成。要对语音进行采集就需要一种高速的,能进行长时间、大吞吐量数据传送的计算机接口。USB 2.0接口就是一种符合语音采集要求的计算机接口;同时,它还具有支持热插拔、占用系统资源少、易于扩展、使用方便等优点。DSP是利用专门或通用的数字信号处理芯片,以数字计算的方法对信号进行处理,具有处理速度快、灵活、精确、抗干扰能力强、体积小及可靠性高等优点,可满足对信号快速、精确、实时处理及控制的要求。本采集卡采用TI公司高精度浮点DSP芯片TMS 1 系统硬件设计 语音采集系统是在TMS 该系统的总体设计任务:由主机的应用程序通过USB总线传输发出命令,控制采集卡对语音信号的采样、播放、数据存储和语音回放;同时,根据采集卡返回的状态字显示语音采集卡的工作情况。语音采集过程:DSP控制TLV320AIC23B(简称“AIC23”)对语音信号进行采样,采样得到的数据,再经过DSP与USB之间的数据传输通道传送至USB接口芯片,再传送到主机上存储。语音回放过程:主机把处理后的数据传给USB接口芯片,DSP通过与USB之间的传输通道读取数据,然后将数据传给D/A转换器,经D/A转换后输出。 USB芯片CY 主要任务是根据主机传来的命令或参数,以尽快的速度完成数据传送。本卡将CY
图1 语音采集系统框图
来完成CY 连接如图2所示。 AIC23有2个接口,一个是控制口,用于设置AIC23的工作参数;另一个是数据口,用于传输AIC23的A/D、D/A数据,这部分与C6713的MCASP无缝连接。连接电路如图3所示。在本卡中AIC23配置成主模式,AIC23的控制口使用2线制的
DSP外部扩展了2片现代半导体公司的(4 Bank×1MX 16位)HY57V641620HGT—P SDRAM,提供DSP程序运行期间所需的动态存储空间。SDRAM的片选信号直接与DSP的EMIFA外设的信号相连,从而使SDRAM被映射到DSP的0x80000000~0x80FFFFFF地址范围内。在对SDRAM进行读/写访问前,需通过EMIF的控制寄存器CEOCTL将空间配置为32位SDRAM存储器接口,通过SDCTL、SDTIM、SDEXT等寄存器设置SDRAM的读/写时序和参数。DSP与SDRAM的连接如图4所示。
另外,扩展了AMD公司的一片Am29LV320D( 户程序。如果DSP采用ROM引导模式,则在DSP复位之后,DSP会把EMIF的CEl空间的1 KB的ROM代码 搬移到片内RAM空间,从而实现自举引导。所以本设计中把Flash的片选信号连接到了DSP的EMIF的引脚,从而使Flash映射到DSP的0x90000000~0x900FFFFF地址范围内。由于Flash是以8位进行访问的,所以其物理地址以8位为单位进行编址。DQl5/A一1引脚的“A一1”表示字节模式,故将EA2与DQl5/A一1引脚连接。Flash的接口示意图如图5所示。
2 软件设计 在USB固件的开发过程中,使用了固件架构来进行固件的开发,将整个程序按功能划分成了6个功能模块:主循环模块、厂商定义请求处理模块、标准设备请求处理模块、中断服务程序模块、命令接口模块和数据接口模块。DSP一旦上电就需要初始化PLL寄存器、EMIF寄存器、CSL库初始化和中断配置。设备上电后,主机通过设备的上拉电阻产生的信号变化来检测新的设备连接;然后判断CY
中断处理子程序首先判断中断的产生源,然后进行相应的处理、设置。中断信号USBINT使用C6713的外部 中断EXT_INT5,给出的外部信号指示DSP有中断产生或USB寄存器读请求。具体流程如图7所示。
USB设备驱动程序主要是通过调用微软的USBD.SYS来实现PC机与USB总线的数据交换,其主要功能是为相应的USB设备建立设备驱动对象,并完成对USB设备的初始化、对USB设备的即插即用功能和电源的管理,实现对USBD.SYS的调用以及对USB设备的控制与数据的交换。我们使用了第三方的开发工具——Numega公司的DriverStudio进行开发,DriverStudio能加速开发、调试、测试、调整和配置WDM驱动程序。DriverWorks框架结构为USB设备驱动程序的开发提供了3个类:KUs—bLowerDevice、KUsblnerface和KUsbPipe,用于实现USB设备的操作。KUsbLowerDevice类是KPnPLowerDevice类的派生类,它继承了KPnPLowerDevice类的成员函数,主要用于逻辑设备(底层USB设备)的编程。KUsbLow—erDevice类实例代表端点0,允许USB驱动程序通过默认控制管道控制USB设备,如配置USB设备、传输各种控制状态和请求。KUsblnerface类用于接口的编程,它的作用更多是结构上的而非功能上的,其成员函数几乎不与实际物理设备交互作用。设备驱动程序使用这个类可以获得接口和管道的信息。KUsbPipe类用于管道的编程,管道是主机和端点的一个信息连接。只有深刻理解这3个类,才能进行USB设备驱动程序的编写。本设计中要为Windows XP开发一个设备驱动程序,DriverWorks提供独特的DriverWizard可以自动生成代码,精心制作的类库减少了对简单接口的复杂操作。 应用程序的主要功能是实现对数据采集系统的控制采集和数据处理,并在计算机中显示处理结果。在Win32系统中,把每一个设备都抽象为文件,通过调用Win32API函数应用程序,向设备驱动程序发出特定的IRP请求,就可以实现应用程序与WDM驱动程序通信;设备驱动程序得到请求后,向更底层驱动程序传递IRP请求,最后到达硬件设备,完成对硬件设备的控制与访问操作。这个通信过程大致可这样描述:应用CreateFile()函数打开设备并创建到设备的连接;然后用DeviceloControl()函数或者ReadFile()函数、WriteFile()函数与WDM驱动程序进行通信,包括从驱动程序中读取数据和写入数据两种情况。应用程序退出时,用CloseHandle()函数关闭设备。
语音采集板卡用USB 2.0接口来实施数据传送,实现厂商定义请求的处理功能,以及语音采集、传送到主机以*.dat格式文件保存、主机读取*.dat格式传送到语音采集板卡、语音回放功能。实验证明,回放的语音信号清晰,失真度低,效果良好。 结 语 本文将DSP的高速数据处理能力与USB2.0接口的高速数据传输能力有机结合,采用TMS 参考文献 [1]武安河.Windows 2000/XP WDM设备驱动程序开发[M].北京:电子工业出版社,2005. [2]边海龙,贾少华.USB2.0设备的设计与开发[M].北京:人民邮电出版社.2004. [3]张金密,李翌.CY
|
|||||
| 欢迎点击进入:TI德州中文网 (国内唯一针对TI应用的中文技术网站) 文章录入:admin 责任编辑:admin | |||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | |||||
| 最新热点 | 最新推荐 | 相关文章 | ||
| 没有相关文章 |
| 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | 管理登录 | | |||
|
|