基于I2S的USB 声卡系统设计

[10-10 20:38:44]   来源:http://www.88dzw.com  电子制作   阅读:8180

文章摘要: 在USB声卡的拓扑图中,F表示的是USB音频类的Feature单元,Feature单元的主要作用是控制音量、静音、低音等。如果在描述符中声明了Feature单元,在Windows操作系统下,控制面板中的声音和音频设备的一些功能才能使用。那么在Windows中进行调节音量等控制时,就会触发固件程序对UDA1341TS芯片L3接口的控制。 2. USB音频数据流接口描述符。因为USB 音频有回放和录音两种功能,所以需要两个同步数据流接口,两个接口使用双向端点1进行数据传输。 通过USB声卡的拓扑图,可以分析出音频接口的流程和功能,从而得出USB声卡的描述符。USB通讯的程序实现

基于I2S的USB 声卡系统设计,标签:电子小制作,http://www.88dzw.com

    在USB声卡的拓扑图中,F表示的是USB音频类的Feature单元,Feature单元的主要作用是控制音量、静音、低音等。如果在描述符中声明了Feature单元,在Windows操作系统下,控制面板中的声音和音频设备的一些功能才能使用。那么在Windows中进行调节音量等控制时,就会触发固件程序对UDA1341TS芯片L3接口的控制。

    2. USB音频数据流接口描述符。因为USB 音频有回放和录音两种功能,所以需要两个同步数据流接口,两个接口使用双向端点1进行数据传输。

    通过USB声卡的拓扑图,可以分析出音频接口的流程和功能,从而得出USB声卡的描述符。

USB通讯的程序实现
    S3C2410有5个双向FIFO端点,其中0端点是控制传输端点,其他4个端点支持批量、中断、同步传输等方式。在本系统中使用0、1两个双向传输端点。端点0执行控制传输(CONTROL),一方面传输USB协议的控制信息,例如Setup事件、握手信号、枚举信息等,另一方面传输音频控制信息,例如采样率控制、音量控制等。端点1采用同步传输方式( ISOCHRONOUS),传输时间间隔为1ms,用于实时传递主机和I2S之间的录音或放音数据。

    根据USB协议,USB设备的任何数据传输,都由USB主机分配,然后USB设备响应相应的USB主机总线请求。S3C2410的USB控制器采用的是中断方式响应,那么在S3C2410的USB中断服务程序中要作以下工作:
Isr_USB()
{
if(USB_INT_REG&RESET_INT)     Reset_USB();   //重启USB设备
if(USB_INT_REG&RESUME_INT)   Resume_USB();  //唤醒USB设备
if(USB_INT_REG&SUSPEND_INT)  Suspend_USB(); //挂起USB设备
if(EP_INT_REG&EP0_INT)         Handle_EP0(); //执行控制传输端点0处理程序
if(EP_INT_REG&EP1_INT)         Handle_EP1(); //执行同步传输端点1处理程序
}

USB声卡的控制传输
    在主机端应用程序中,执行音量调节、静音等事件时,USB音频驱动通过默认端点0执行一个控制传输。一次控制传输主要包括两个步骤,第一步,由主机向设备发送一个建立(Setup)信息,描述控制访问的类型,设备将执行此控制访问。第二步,零个或多个控制数据信息的传送,这是访问的具体信息。根据USB音频类协议分解控制信息包,然后再根据控制信息,执行相应的操作。例如,在主机端应用程序中播放音乐前,USB声卡就会从主机端收到如下的两个包:
Setup包  22 01 00 01 01 00 03 00
控制数据包 40 1F 00

    根据USB音频类协议分解Setup包,可以得知,本次控制传输的作用是设置USB声卡的采样频率,并且收到的3字节控制数据信息是采样频率,即8KHz。那么在播放音乐前,必须把I2S和UDA1341TS芯片的采样频率设置为8kHz,才能和主机端保持同步。

I2S总线实现方法
    在S3C2410芯片中,I2S接口提供三种数据传输模式:正常传输模式、DMA传输模式、传输/接收模式。本系统采用的是传输/接收模式,它具有双通道DMA功能,一方面窃取总线控制权,提高系统的吞吐能力,另一方面,可以实现同时接收和发送音频数据,即全双工模式。

    在S3C2410芯片中,有4个DMA通道控制器用于控制各种外部设备,其中I2S与其他串行外设共用两个桥接DMA(BDMA)类型的DMA通道。通过设置I2SFCON寄存器可以使I2S接口工作在DMA模式下。此模式下FIFO寄存器组的控制权掌握在DMA控制器上。当FIFO满时,由DMA控制器对FIFO中的数据进行处理。DMA模式的选择由I2SCON寄存器的第四和第五位控制。

    为了使USB声卡的回放和录音可以同时进行,即实现全双工,数据传输使用两个BDMA通道,通道0用于回放,通道1用于录音,因为S3C2410的BDMA中没有内置DMA存储区域,所以需要在SDRAM中分配DMA缓冲区。音频数据回放时,先由USB总线取得音频数据,写入DMA缓冲区,由BDMA控制器通道0窃取总线控制权,通过I2S控制器写入I2S总线并传输给音频芯片。录音采用BDMA控制器的通道1,其数据流过程和回放相反。

上一页  [1] [2] [3]  下一页


Tag:电子制作电子小制作维修教程知识 - 电子制作

《基于I2S的USB 声卡系统设计》相关文章