CN102736999B - 音频数据输入设备和音频数据输出设备 - Google Patents
音频数据输入设备和音频数据输出设备 Download PDFInfo
- Publication number
- CN102736999B CN102736999B CN201210088543.4A CN201210088543A CN102736999B CN 102736999 B CN102736999 B CN 102736999B CN 201210088543 A CN201210088543 A CN 201210088543A CN 102736999 B CN102736999 B CN 102736999B
- Authority
- CN
- China
- Prior art keywords
- voice data
- control section
- buffer
- record
- reproducing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/10527—Audio or video recording; Data buffering arrangements
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/10527—Audio or video recording; Data buffering arrangements
- G11B2020/10537—Audio or video recording
- G11B2020/10546—Audio or video recording specifically adapted for audio data
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/10527—Audio or video recording; Data buffering arrangements
- G11B2020/1062—Data buffering arrangements, e.g. recording or playback buffers
- G11B2020/10629—Data buffering arrangements, e.g. recording or playback buffers the buffer having a specific structure
- G11B2020/10638—First-in-first-out memories [FIFO] buffers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/10527—Audio or video recording; Data buffering arrangements
- G11B2020/1062—Data buffering arrangements, e.g. recording or playback buffers
- G11B2020/10675—Data buffering arrangements, e.g. recording or playback buffers aspects of buffer control
- G11B2020/10731—Data buffering arrangements, e.g. recording or playback buffers aspects of buffer control wherein the buffer I/O can be temporarily suspended, e.g. by refusing to accept further data to be buffered
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/10527—Audio or video recording; Data buffering arrangements
- G11B2020/1062—Data buffering arrangements, e.g. recording or playback buffers
- G11B2020/1075—Data buffering arrangements, e.g. recording or playback buffers the usage of the buffer being restricted to a specific kind of data
- G11B2020/10759—Data buffering arrangements, e.g. recording or playback buffers the usage of the buffer being restricted to a specific kind of data content data
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Communication Control (AREA)
- Information Transfer Systems (AREA)
Abstract
本发明提供了一种音频数据输出设备和音频数据输入设备,其在每个预定帧周期对音频数据进行处理以传输音频数据,在每个帧周期执行的对音频数据的处理是由硬件而不是由CPU来进行的,因此在每个帧周期不中断CPU。在从主机向音频输出设备传输音频数据的情况下,再现控制部分控制其中涉及接收缓冲器和再现缓冲器的数据传输,同时还控制接收部分和处理部分(DSP)。在从音频输入设备向主机传输音频数据的情况下,记录控制部分控制其中涉及发送缓冲器和记录缓冲器的数据传输,同时还控制发送部分和处理部分。
Description
技术领域
本发明涉及一种通过诸如USB之类的通用接口连接至PC并且提供输入/输出音频信号(音频数据)的能力的音频数据输入设备和音频数据输出设备。
背景技术
当前,多个公司提供了能够进行音频/视频流的通用USB接口(I/O)电路(收发机和终端控制器)。
而且,存在一种常规的USB音频设备,其利用USB电缆连接至个人计算机(PC)并且为在PC的诸如Wi ndows(商标)和Mac OSX之类的操作系统(OS)上运行的诸如Cubase和Protocols之类的音乐应用程序提供输入/输出音频数据的能力。该音乐应用程序可以使用USB音频设备来外部输入和外部输出音频数据。该音乐应用程序将利用USB音频设备外部输入的音频数据记录在音频轨道上并且利用US音频设备外部输出在音频轨道上再现的音频数据。
为了允许利用USB音频设备外部输出或外部输入音频数据,USB等时传输被用来从PC向USB音频设备流式传输音频数据和从USB音频设备向PC流式传输音频数据。在音频设备侧,通过使得音频设备的CPU能够在每个USB帧周期控制USB接口和直接存储器存取(DMA)电路来实现流式传输。
例如,日本未审查的专利申请No.2005-292375公开了一种设备,其利用USB接口接收从PC发出的音频数据,并且通过在音频数据被发送时中断CPU以使得CPU检查剩余缓冲器量,并且控制再现时钟来再现接收到的音频数据。
发明内容
对于USB数据传输,如上所述,CPU(用作节点的设备的CPU)在每个帧周期(在每次接收SOF包时)均被中断,从而CPU将控制USB接口并且执行DMA控制。该中断每1毫秒(USB1.1)或125微秒(USB2.0)发生一次,这种发生频率相当高。此外,为了避免音频数据的流式传输的不连续,有必要在特定的时间段内执行一次中断。另外,CPU还需要控制整个设备。而且,为了为多个通道实现音频数据的流式传输,有必要根据PC产生的指令为各个通道设置各种参数(音量、效果等),从而进一步增大了CPU的负荷。因此,CPU必须是一个高速复杂的处理单元。通常,这种CPU具有大电路并且要求高功耗。
为了解决上述问题,期望实现一种USB连接的设备,其即使利用低速的不复杂的CPU也能够实现流式传输音频数据。
本发明的目的是提供一种音频数据输入设备和音频数据输出设备,其通过诸如USB之列的标准进行连接以输入和输出音频数据,这些设备即使利用低速的不复杂的CPU也能够实现流式传输音频数据。
为了实现上述目的,本发明提供了一种音频数据输出设备和音频数据输入设备,其通过在每个预定帧周期执行的处理来传输音频数据,这些设备允许CPU之外的硬件在每个预定帧周期执行处理从而使得CPU不会在每个帧周期中断。
更具体地讲,本发明的一个特征是提供一种音频数据输出设备,用于在每个预定帧周期从主机设备(100)输入通过通信总线(150)提供的音频数据、执行特定处理、然后输出该音频数据,该音频数据输出设备包括接收部分(147),其具有先进先出缓冲器(先进先出接收存储器设备)并且根据在每个帧周期经由通信总线从主机设备发送到音频数据输出设备的输出请求,执行经由通信总线接收从主机设备发来的多个通道的多个音频数据样本的接收操作,以及将接收到的多个通道的音频数据写入接收缓冲器中;再现部分(144),其具有先进先出再现缓冲器(先进先出再现存储器设备)并且执行读出存储在再现缓冲器中的多个通道的一个音频数据样本以在每个预定采样周期输出读出数据的再现操作;处理器(131),其控制整个音频数据输出设备;以及控制部分(143),其根据来自处理器的指令控制接收部分和再现部分的各自操作,处理器(1)在经由通信总线从主机设备接收到与要被接收的音频数据有关的参数时将该参数提供给控制部分;以及在经由通信总线从主机设备接收到开始音频数据的输出的指令时指示控制部分开始操作;以及控制部分根据来自处理器的开始操作的指令来清空接收缓冲器和再现缓冲器、启用接收部分的接收操作、以及停止再现部分的再现操作,然后在每个帧周期(即,在每次检测到帧周期的时刻),(1)如果在再现部分的再现操作已经停止时接收部分接收到音频数据,则将接收到的音频数据从接收缓冲器传输到再现缓冲器,以及当存储在再现缓冲器中的音频数据达到预定数量时,指示再现部分开始再现操作;(2)如果在再现部分处于再现操作时接收部分接收到音频数据,则将接收到的音频数据从接收缓冲器传输到再现缓冲器;以及(3)如果接收部分未接收数据,则停止再现部分的再现操作。
对于本发明的该特征,在每个帧周期,(4)如果在再现缓冲器已满或者缺少数据时接收部分接收到音频数据,则控制部分可以停止再现部分的再现操作、清除存储在再现缓冲器中的音频数据、并且将接收到的音频数据从接收缓冲器传输到再现缓冲器,作为自动恢复处理。在这种情况下,处理器可以指示控制部分启用或者禁用自动恢复处理;以及在自动恢复处理被启用的状态下,控制部分可以执行(4)的操作,而在自动恢复处理被禁用的状态下,控制部分可以停止每个帧周期(即,在每次检测到帧周期的时刻)执行的操作而不执行(4)的操作,然后保持停止操作。
而且,对于本发明的该特征,当处理器经由通信总线从主机设备接收到停止输出的指令时,处理器可以响应于该指令指示控制部分停止操作;以及响应于停止操作的指令,控制部分可以停止再现部分的再现操作。
而且,对于本发明的该特征,音频数据输出设备可以包括数字信号处理部分(139),其输入从再现部分输出的音频数据并且在每个采样周期单独地执行对各个通道的音频数据的信号处理,其中处理器可以设置与要被接收到的音频数据有关的参数。
而且,对于本发明的该特征,与音频数据有关的参数包括表示音频数据的采样频率、样本的位数和通道数量的参数中的至少一个。
另外,本发明的另一特征在于提供一种音频数据输入设备,其外部输入音频数据、执行特定处理、然后在每个预定帧周期经由通信总线(150)将音频数据提供给主机设备(100),该音频数据输入设备包括记录部分(142),其具有先进先出记录缓冲器(先进先出记录存储器设备),并且执行在每个预定采样周期将多个通道的外部输入音频数据的一个样本写入记录缓冲器的记录操作;发送部分(146),其具有先进先出发送缓冲器(先进先出发送存储器设备),并且根据在每个帧周期经由通信总线从主机设备发送到音频数据输入设备的输入请求执行将存储在发送缓冲器中的多个通道的多个音频数据样本经由通信总线发送到主机设备的发送操作;处理器(131),其控制整个音频数据输入设备;以及控制部分(141),其根据来自处理器的指令控制发送部分和记录部分的各自操作,处理器(1)在经由通信总线从主机设备接收到与要被发送的音频数据有关的参数时向控制部分提供参数;以及(2)当经由通信总线从主机设备接收到开始音频数据的输入的指令时,指示控制部分开始操作;以及控制部分根据来自处理器的开始操作的指令清空发送缓冲器和记录缓冲器、禁用发送部分的发送操作、停止记录部分的记录操作、然后在每个帧周期(即,在每次检测到帧周期的时刻)(1)如果记录部分的记录操作处于被停止状态,则指示记录部分开始记录操作;(2)如果在发送部分的发送操作被禁用时记录部分处于记录操作状态,则将存储在记录缓冲器中的音频数据传输到发送缓冲器,以及在存储在发送缓冲器中的音频数据到达特定数量时,启用发送部分的发送操作;以及(3)如果在发送部分的发送操作被启用时记录部分处于记录操作状态并且如果音频数据输入设备接收到从主机设备发送出来的输入请求,则将存储在记录缓冲器中的音频数据传输到发送缓冲器。
对于本发明的该另一特征,在每个帧周期,(4)如果在发送部分的发送操作被启用时记录部分处于记录操作状态并且如果音频数据输入设备没有接收到从主机设备发送出来的输入请求,则控制部分可以(a)删除存储在发送缓冲器中的一个帧周期的音频数据并且将存储在记录缓冲器中的音频数据传输到发送缓冲器,或者(b)删除存储在记录缓冲器中的一个帧周期的音频数据。在这种情况下,处理器可以指示控制部分选择(4)情况下的(a)或(b)来执行;并且根据该指令,控制部分可以执行上述在(4)情况下的(a)或(b)。
而且,对于本发明的该另一特征,在每个帧周期,(5)如果在发送部分的发送操作被启用时记录部分处于记录操作状态并且如果记录缓冲器已满或者缺少数据时,控制部分可以禁用发送部分的发送操作,并且清空存储在记录缓冲器和发送缓冲器中的音频数据作为自动恢复处理。在这种情况下,处理器可以指示控制部分启用或者禁用该自动恢复处理;并且在自动恢复处理被启用的状态下,控制部分可以执行(5)的操作,而在自动恢复处理被禁用的状态下,控制部分可以停止在每个帧周期(即,在每次检测到帧周期的时刻)执行的操作而不执行(5)的操作,然后保持停止操作。
而且,对于本发明的该另一特征,当处理器经由通信总线从主机设备接收停止输入的指令时,处理器可以响应于该指令指示控制部分停止操作;以及响应于停止操作的指令,控制部分可以停止记录部分的记录操作。
而且,对于本发明的该另一特征,音频数据输入设备还可以包括数字信号处理部分(139),其输入外部输入的音频数据、在每个采样周期单独执行对各个通道的音频数据的信号处理、以及将经过处理的音频数据输出到记录部分,其中处理器可以设置与要被接收的音频数据有关的参数。
而且,对于本发明的该另一特征,与音频数据有关的参数可以包括表示音频数据的采样频率、每个样本的位数和通道数的参数中的至少一个。
根据本发明,在从主机设备输出的音频数据被输入到本发明的设备的情况下以及还在从本发明的设备输出的音频数据被输入到主机设备的情况下,要在每个帧周期(即,在每次检测到帧周期的时刻)执行的处理由控制部分(再现控制部分143和记录控制部分141)适当地完成,因此该处理将由处理器之外的模块完成。因此,由于即使在每个帧周期,即,在每次检测到帧周期的时刻,都不需要处理器来处理中断,因此处理器可以是低速的不复杂的处理器。而且,处理器的处理器能力可以划分为不仅进行音频数据的输入/输出,而且进行其他处理。尤其是,即使在缓冲器已满或缺少数据的情况下,以及在从主机设备或向主机设备传输音频数据时出现问题的情况下,本发明的设备通过控制部分的控制可以自动地被恢复,而不会对处理器造成负担。
附图说明
图1是一个实施例的USB音频设备的内部构造;
图2是音频数据的输入/输出和混音器的示例构造的框图;
图3是音频数据的输入/输出和效果器(effector)的示例构造的框图;
图4是包的构造;
图5是在通电时执行的处理的流程图;
图6是再现时PC、CPU和再现控制部分进行的处理的流程图;
图7是表示再现控制部分的用于接收(再现)从PC发送的乐音
信号的操作的状态机视图;
图8是记录时PC、CPU和记录控制部分进行的处理的流程图;以及
图9是表示记录控制部分的用于向PC发送(记录)乐音信号的操作的状态机视图。
具体实施方式
下面将参照附图描述本发明的一个实施例。
图1表示作为本发明的一个实施例的USB(通用串行总线)音频设备的内部构造。个人计算机(PC)100用作主机,而USB音频设备120通过USB电缆150连接至PC 100。将本发明的该实施例作为一个示例进行说明,其中采用USB 1.1来进行PC 100和USB音频设备120之间的数据传输。
PC 100具有中央处理单元(CPU)101、闪存102、随机存取存储器(RAM)103、硬盘(HDD)104、计时器105、网络输入/输出接口(I/O)106、显示单元I/O 107、和USB I/O 109。CPU 101是通过执行存储在RAM 103等中的程序来控制PC 100的整个操作的处理单元。闪存102和HDD 104是存储各种程序和数据的非易失性存储设备。计时器105是测量时间的计时器电路。网络I/O 106是将PC 100连接到诸如局域网(LAN)之类的网络的接口。显示单元(显示器)108连接到显示单元I/O 107,从而在来自CPU 101的指令的控制下在显示单元108上显示各种信息。键盘110、鼠标111、USB音频设备120连接至USB I/O 109。
在PC 100上,执行诸如DAW(数字音频工作站)之类的音乐应用程序,以使得PC 100能够用作一种实现诸如记录/再现音频数据的能力、创建/编辑音频数据的能力、混音能力和音序器能力之类的多种能力的设备。
USB音频设备(下文简称为“设备”)120构造为将USB端子122、模拟数字转换器(ADC)123、数模转换器(DAC)124、半导体集成电路121、操作元件136、和显示单元138布置在印刷电路板上。作为集成电路芯片的半导体集成电路121具有CPU 131、闪存132、RAM 133、计时器134、操作元件I/O 135、显示单元I/O 137、DSP 139、波形I/O 140、记录控制部分141、记录FIFO 142、再现控制部分143、再现FIFO 144、终端控制器145和USB收发器149。
CPU 131是控制集成电路121的整体操作的处理单元。闪存132是存储CPU 131执行的程序、DSP 139执行的微程序和各种参数数据的非易失性存储装置。RAM 133是易失性工作存储器,其用于存储CPU131执行或使用的程序和数据。计时器134产生特定时钟信号并且将产生的时钟信号提供给集成电路121的各个部分。操作元件I/O 135和显示单元I/O 137是分别连接操作元件136和显示单元138的接口。通过利用操作元件136,输入提供给集成电路121的各种指令。在显示单元138上,显示与集成电路121有关的各种数据。
DSP 139在CPU 131的控制下通过按照CPU 131设置的微程序和系数数据进行操作来执行对音频数据的信号处理。DSP 139通过分时(time sharing)可以处理多个通道的音频数据。DSP 139具有两个用于输入/输出音频数据的路径:一个路径用于经由波形I/O 140外部输入/输出音频数据,一个路径用于经由USB端子122与PC 100之间输入/输出音频数据。
波形I/O 140通过串行接口(而不是USB)实现输入/输出音频数据等的功能。ADC 123将通过麦克风输入、线路输入等并行输入的32个通道的模拟音频信号分别转换成数字音频信号(音频数据),并且还将数字音频信号转换成32个通道的分时串行数据,以将该串行数据输出到波形I/O 140。波形I/O 140将输入的串行数据转换成32个通道的并行音频数据,并且将经过转换的音频数据写入DSP 139的输入寄存器,以将该音频数据传输到DSP 139。在每一特定的采样周期,DSP 139都对在前一采样周期写入输入寄存器的多个通道的音频数据执行信号处理,然后将产生的多个通道上的音频数据写入输出寄存器以作为要在下一采样周期读取的音频数据。而且,在每个采样周期,波形I/O 140都通过时分方式读取DSP 139处理的32个通道的并行音频样本数据、将读取的音频样本数据转换成32个通道的时分串行数据、并且将经过转换的串行数据输出到DAC 124。DAC 124将输入的串行数据转换成32个通道的并行音频数据、还将并行的音频数据转换成模拟音频信号、以及外部输出该模拟音频信号。
作为用于记录的FIFO的记录FIFO 142(包括FIFO缓冲存储器设备的记录部分)在每个采样周期取回多个通道中的每一个通道的一个音频数据样本并且在每个帧周期输出所取回的这些通道的音频数据。在记录FIFO 142的输入侧,记录FIFO 142具有用于从前一模块取回音频数据的DMA(直接存储存取)电路(未示出)。在输出侧,记录FIFO 142具有用于将音频数据输出到下一模块的DMA电路(未示出)。再现FIFO 144是在每个帧周期取回多个通道的音频数据并且在每个采样周期输出所取回的多个通道中的每个通道的音频数据的样本的FIFO(包括FIFO缓冲存储器设备的再现部分)。在再现FIFO144的输入侧,再现FIFO 144具有用于从前一模块取回音频数据的DMA电路(未示出)。在输出侧,再现FIFO 144具有用于将音频数据输出到下一模块的DMA电路(未示出)。
集成电路121具有通过USB接口经由USB端子122输入/输出音频数据等的功能。USB收发器149是管理USB通信协议的物理层的电路。内部设有作为USB协议中的终端的FIFO(先进先出)缓冲器146至148的终端控制器145是用于控制这些缓冲器并且控制数据从主机或向主机传输的电路。
发送FIFO 146是用作在从集成电路121到PC 100的数据传输(在从作为主机的PC 100观察的IN方向上的通过管道进行的等时传输的数据传输)中的终端的FIFO缓冲器(包括FIFO缓冲存储器设备的发送部分)。记录FIFO 142利用输入侧的DMA电路从DSP 139的输出寄存器取回在每个采样周期期望输出到PC 100的多个通道的音频样本。通过重复多次音频样本的取回,在记录FIFO 144中存储一定量的音频数据。通过利用输出侧的DMA电路,存储在记录FIFO 142中的音频数据被传输到发送发FIFO 146。上述经由FIFO 142将音频数据从DSP 139传输到发送FIFO 146的处理是在记录控制部分141的控制下通过记录FIFO 142的输入侧和输出侧的DMA电路实现的(将在后面对该处理进行详细地说明)。根据USB协议,经由USB收发器149和USB端子122,存储在发送FIFO 146中的音频数据被发送到PC 100。
接收FIFO 147是用作在从PC 100到集成电路121的数据传输(从作为主机的PC 100观察的OUT方向上的通过管道进行的等时传输的数据传输)中的终端的FIFO缓冲器(包括FIFO存储缓冲器设备的发送部分)。根据USB协议,经由USB端子122和USB收发器149,经由USB I/O 109从PC 100输出的音频数据(“多个通道×多个采样周期”的数据)被存储在接收FIFO 147中。通过位于再现FIFO 144的输入侧的DMA电路,在特定时刻将存储在接收FIFO 147中的多个通道的音频数据传输到再现FIFO 144。通过位于再现FIFO 144的输出侧的DMA电路,传输到再现FIFO 144的多个通道的音频数据在每个采样周期被写入DSP139的输入寄存器中。在再现控制部分143的控制下,通过再现FIFO 144的输入侧和输出侧的DMA电路来实现上述经由再现FIFO 144从接收FIFO 147向DSP 139传输音频数据的处理(将在后面对该处理进行详细地说明)。
设置FIFO 148是用于在集成电路121和PC 100之间传输设置控制数据和设置参数的终端的FIFO缓冲器(包括FIFO缓冲存储器设备的设置部分)。利用设置FIFO 148的传输是使用用于USB控制传输的协议的双向数据传输。在从集成电路121向PC 100发送数据的情况下,当CPU 131将要被发送的数据存储在设置FIFO 148中时,存储在设置FIFO 148中的数据通过控制传输被发送至PC 100。通过控制传输从PC 100发送到集成电路121的数据存储在设置FIFO 148中。CPU 131可以从设置FIFO 148中取回接收到的数据。
根据DSP 139要执行的信号处理的种类,具有上述输入/输出音频数据等能力的设备120用作诸如混音器或者效果器之类的多样处理音乐数据的设备。
图2是表示设备120在图1的系统中用作混音器的情况的功能框图。ADC 201等同于图1所示的ADC 123和波形I/O 140。已通过ADC 201进行模拟数字转换的多个路径的音频数据被输入到输入接线板(i nput patch)202。USB输入212表示经由USB接口从PC 100输入图1所示的设备120的音频数据(通道数量任意)。输入接线板202建立了用户期望的接线,通过该连接从ADC 201或USB输入212输入的音频数据被分配给具有48个通道的输入通道203的各通道。用户可以根据需要实现所述连接。输入通道203对输入的音频数据进行各种调节,诸如音调控制和频率响应的控制。输入到输入通道203的用户期望的通道的音频数据可以被输出到具有16条总线的混音总线204,从而根据用户需要可以在混音总线204上对音频数据进行混音。
混音结果被输出到具有16个通道的输出通道205,该16个通道分别对应于混音总线204的16条总线。具有16个通道的输出通道205在输出侧上进行各种必需的调节。输出通道205的各通道被输入到输出接线板206。输出接线板206根据用户需要通过将从输出通道205输出的音频数据或者直接从输入通道203输出的音频数据分配给DAC 207的用户期望的输出路径或者USB输出211来建立连接。USB输出211表示经由USB接口从设备120输出到图1所示的PC 100的音频数据(通道数量任意)。从输入接线板202到输出接线板206之间的各模块的各自功能由图1所示的DSP 139来实现。DAC 207等同于图1所示的波形I/O 140和DAC 124。输入到DAC 207的多个路径的音频数据被数字模拟转换,以便外部输出。
例如,假设在PC 100上运行用于执行记录/再现音频数据的功能的音乐应用程序,从用作混音器的设备120输出的音频数据可以被记录(硬盘记录)在PC 100上,或者在PC 100上再现的音频数据可以被输出到设备120,从而设备120可以对音频数据进行混音。
图3是表示设备120在图1所示的系统中用作效果器的情况的功能框图。ADC 301等同于图1的ADC 123和波形I/O 140。已通过ADC 301进行模拟数字转换的多个路径的音频数据被输入到效果器(32个通道)302。将各种效果增加到输入音频信号的效果器302的功能由图1所示的DSP 139来实现。从效果器302输出的音频数据经由USB输出311输出到PC 100,或者经由直接输出313输出到效果器304。USB输出311表示经由USB接口从设备120输出到图1所示的PC 100的音频数据(通道数量任意)。
从PC 100输出的音频数据可以通过USB输入312被输入到效果器304。USB输入312表示经由USB接口从PC 100输入到图1所示的设备120的音频数据(通道数量任意)。效果器304是类似于效果器302的效果器,由图1所示的DSP 139来实现。因此,直接输出313等同于在DSP 139内建立用于将某一效果处理的输出输入到不同效果处理的连接。效果器304的输出被传输到DAC 305。DAC 305等同于图1所示的DAC 124和波形I/O 140。输入到DAC 305的多个路径的音频数据被数字模拟转换,以便外部输出。上述效果器302、304可以具有使音频数据直接通过而不增加任何效果的多个通道。
例如,假设在PC 100上执行要进行记录/再现音频数据的功能的音乐应用程序,从作为效果器的设备120输出的增加了效果的音频数据可以被记录在PC 100上,或者在PC 100上再现的音频数据可以被输出到设备120,以给音频数据增加效果。
图4示出了在图1所示的PC 100(主机)和设备120的集成电路121之间发送/接收的包的构造。图4(a)示出了根据USB标准以1ms(毫秒)周期重复传输的帧的构造。一个帧由以称为SOF (“帧开始”)的包开始的多个事务(transaction)组成。在一些情况下,如图4(a)和(b)所示,事务不仅包括传输要通过等时传输发送/接收的音频数据的事务(音频),而且包括通过中断传输在鼠标上传输数据的事务(鼠标)以及通过批量传输在打印机上传输数据的事务(打印机)。主机将位于帧顶部的SOF广播到连接至USB电缆的所有设备,并且根据帧中SOF之后的事务的配置来调度控制传输、批量传输、中断传输和等时传输。对用于音频数据传输的等时传输进行调度,从而使等时传输优先,以确保每经过一定时间所传输的数据量。
图4(c)示出了等时传输配置的音频数据的事务的包串。该包串由令牌包和数据包形成。
图4(d)(1)示出了主机广播的令牌包的构造。“SYNC”是置于包顶部的1个字节的数据,用于同步。“PID(包标识符)”是表示包的字节的数据。在PID中,设置“In(表示从设备到主机的令牌请求数据传输,即,表示“请求输出”的代码)”或者“Out(表示从主机到设备的令牌请求数据传输,即,表示“请求输入”的代码)”。“ADDR”是标识设备的设备地址。“ENDP”是表示标识终端的终端号的4位数据。“CRC5”是5位CRC校验码。“EOP”表示包的结束。
图4(d)(2)表示数据包的构造。“SYNC”和“EOP”与上述令牌包中所说明的类似。在“PID”中,设置表示该包是数据包的代码(数据0)。“CRC16”是16位CRC校验码。“DATA”是从主机传输到设备或从设备传输到主机的数据。如图4(e)所示,“DATA”必须是具有按字节设置的期望长度为0至1023个字节的数据。在该实施例中,“DATA”具有多个采样周期的高达32个通道的音频数据。
在主机广播的图4(d)(1)的令牌包的“PID”中设置“In”,在这种情况下,数据要通过令牌包之后的数据包从设备传输到主机。在这种情况下,根据包含于令牌包中的“ADDR”识别的设备取回该领牌,从而产生以存储在根据令牌包的ENDP识别的终端的FIFO缓冲器中存储的数据作为DATA的数据包,以将其发送至主机。
在主机广播的图4(d)(1)的令牌包的“PID”中设置“Out”,在这种情况下,数据要通过令牌包之后的数据包从主机传输到设备。在这种情况下,根据包含于令牌包中的“ADDR”识别的设备取回令牌,接收处在令牌包之后并且从主机发送的数据包,以及取回存储在数据包的DATA中的数据,并且将其存储在根据令牌包的ENDP识别的终端中的FIFO缓冲器中。
如图4(d)(3)所示,不为等时传输做出通过握手进行数据重发的请求。虽然图4(b)所示的每一帧均具有一个事务,但是每一帧可以具有多个音频事务,以允许PC 100(主机)和设备120之间的时分双向音频传输。
图5是当设备120的电源接通或者当设备120通过USB电缆150连接至PC 100时CPU 131所执行的主程序的流程图。在步骤501的初始化之后,CPU 131在步骤502检测事件。当检测到任何事件时,CPU 131从步骤503前进到步骤504,以执行与所检测到的事件相对应的事件处理。然后,CPU 131重复步骤502至504。
在步骤501的初始化中,CPU 131与USB I/O 109和在PC 100上运行的设备驱动器协同工作,以利用控制传输来配置设备120。在该配置中,配置数据(之前存储在集成电路121的非易失性存储装置中描述符)通过控制传输被从设备120的集成电路121传输到PC 100,PC 100检查数据,然后将设置命令通过控制传输发送到集成电路121。通过该配置,设备地址被分配给集成电路121(或者设备120),从而可以设置用于传输音频数据的管路和传输模式。
所设置的管路是用于从PC 100向集成电路121传输数据的管路(从主机侧观察为向外管路)和从集成电路121向PC 100传输数据的管路(从主机侧观察为向内管路)。下文,上述向外管路将被称为“OUT管路”,而上述向内管路将被称为“IN管路”。另外,通过利用OUT管路的数据传输从PC 100广播的令牌将被称为“OUT令牌”,而通过利用IN管路的数据传输从PC 100广播的令牌将被称为“IN令牌”。通过设置上述管路,针对IN管路确定对应于发送FIFO 146的终端号,而针对OUT管路确定对应于接收FIFO 147的终端号。为IN管路和OUT管路设置的传输模式是等时传输。这些设置(设备地址、终端号、传输模式等)被PC 100和终端控制器145保留。
通过上述配置,PC 100和设备120准备好以预定模式进行通信。在配置设置之后,PC 100可以通过指定设备地址和IN管路的终端号利用等时传输来输入来自设备120的音频数据。另外,PC 100可以通过指定设备地址和OUT管路的终端号利用等时传输来将音频数据输出到设备120。
图6是表示配置之后从PC 100向设备120输出音频数据的处理的概要的流程。首先,PC 100向设备120发送设置输出音频数据的向外端点的命令(步骤601)。这是PC 100利用控制传输把涉及音频数据的参数通知给集成电路121的步骤,该音频数据要利用已经通过上述配置进行了设置的OUT管路来传输。所述参数包括要通过管路传输的音频数据的采样频率、样本的位数、输出通道数量等。已经接收到该命令的CPU 131将通知的参数提供给DSP 139和再现控制部分143(适当地改变参数的表示)(步骤602)。而且,在DSP 139中使用的算法还从PC 100发送到设备120,以便CPU 131将该算法发送到DSP 139。
接下来,PC 100通过控制传输向设备120发送表示PC 100开始输出音频数据的命令,以指示集成电路121开始运行以便输入音频数据(步骤603)。接收到命令的CPU 131指示再现控制部分143开始操作(步骤604)。再现控制部分143然后通过初始化硬件来开始运行(步骤605)。在这些步骤之后,PC 100重复利用OUT管路向设备120的集成电路121发送要进行信号处理的音频数据的处理(等时发送处理;PC 100在此执行的代码是经由OUT管路将音频数据写入设备120的终端(接收FIFO 147)的命令)(步骤606)。响应于该指令,再现控制部分143执行图7的状态机程序中所指示的各种处理(步骤607)。在步骤606中,PC 100发送令牌包(OUT令牌),然后发送数据包,令牌包包括表示OUT的PID、分配给设备120的地址ADDR、以及分配给接收FIFO 147的终端号ENDP,而数据包包括一个帧的多个通道的音频数据。基于OUT令牌的ADDR和ENDP,设备120的集成电路121识别出设备120应当接收令牌包之后的数据包,并且读取包含于数据包中的多个通道的音频数据,存入接收FIFO 147。
图7是表示设备120从PC 100接收音频数据的情况下的再现控制部分143的操作的状态机视图。本说明书中使用的术语“再现”表示作为典型情况的一种情况(渲染),其中PC 100将PC 100存储的一系列音频数据组成的一帧在每一帧周期传输到设备120,而设备120在一个采样周期外部输出一个样本。然而,根据音频文件,该系列音频数据可能不需要PC 100来“再现”,而是可以从不同源(类似于设备120的不同设备、记录器等)以流传输方式输入到PC 100。
在图7中,在系统通电之后的配置之后,再现控制部分143处于空闲状态708。当随后执行图6所示的步骤601至604以从PC 100向设备120输出音频数据时,再现控制部分143被指示来根据在步骤604输出的开始命令开始运行。响应于该指令,再现控制部分143从空闲状态708转移到硬件初始化701(步骤605)。通过该初始化701,接收FIFO 147和再现FIFO 144被清空。而且,通过该初始化,终端控制器145和再现FIFO 144分别设置为“开启接收”和“再现停止”。术语“开启接收”表示USB收发器149和终端控制器145开始操作来接收数据(更具体地讲,开始操作来利用OUT管路接收从PC 100发出的音频数据,以将接收到的数据存储在FIFO 147中)。术语“再现停止”表示通过位于再现FIFO 144的输出侧的DMA电路在每个采样周期向DSP 139发送存储在再现FIFO 144中的音频数据的一个音频样本的发送被停止。在初始化701之后,再现控制部分143转移到“等待SOF”状态702。
如图6的步骤606所描述,PC 100利用OUT管路向集成电路121发送要进行信号处理的音频数据。由于集成电路121侧被设置为“开启接收”,因此集成电路121从OUT管路接收音频数据,并且将接收到的音频数据存储在接收FIFO 147中。当SOF被接收到时,以及当OUT令牌被接收到时,终端控制器145将各个接收通知给再现控制部分143。当SOF被接收到时,再现控制部分143检测帧周期时刻(更具体地讲,作为帧周期之间的边界的SOF接收时刻),以根据图7所示的分支条件(1)至(5)从等待SOF状态702转移到另一状态。
条件(1)是在以“再现停止”状态接收到具有“OUT”的SOF的情况下所采取的分支。具有“OUT”表示在上面接收到的SOF之前的一个帧中接收到了OUT令牌。在这种情况下,假设在接收FIFO 147中存在接收到的音频数据。更具具体地讲,条件(1)是这样一种情况:在有音频数据存储在接收FIFO 147中的情况下,通过DSP 139进行的从再现FIFO 144取回音频数据的操作被停止。在条件(1)的情况下,再现控制部分143前进到状态703以检查再现FIFO 144是否被填充了足以开始再现的量的音频数据。如果再现FIFO 144填充了足够数量的音频数据,则位于再现FIFO 144的输出侧的DMA电路被指示来开始再现(通过该指令,使得再现FIFO 144从“再现停止”转移到“再现处理中”),从而再现控制部分143进入状态704。如果再现FIFO 144还没有填充足够数据的音频数据,则再现控制部分143直接进入状态704。在状态704中,存储在接收FIFO 147中的音频数据被DMA传输到再现FIFO 144。然后,再现控制部分143返回到等待SOF状态702。在状态703中,位于再现FIFO 144(已经进入“再现处理中”)的输出侧的DMA电路向DSP 139持续传输(再现)在每个采样周期存储到再现FIFO 144中的多个通道的音频数据的一个音频样本,直到下一个“再现停止”指令为止。
条件(2)是在没有“OUT”时以“再现停止”状态接收到SOF的情况下所采取的分支。没有“OUT”表示在以上接收到的SOF之前的一个帧中没有接收到包括设备120的地址ADDR和接收FIFO 147的终端号ENDP的OUT令牌。在这种情况下,由于没有接收到任何音频数据,因此再现控制部分143直接返回到等待SOF状态702。
条件(3)是在具有“OUT”时以再现FIFO 144已满或者缺少音频数据的状态接收到SOF的情况下所采取的分支。在音频数据已被状态704的DMA传输写入再现FIFO 144中以用数据填充再现FIFO 144从而返回到状态702以接收SOF的情况下,采取条件(3)。虽然位于输出侧的DMA电路在每个采样周期向DSP 139提供存储在再现FIFO144中的一个音频数据样本,但是再现FIFO 144有必要总是具有一定数量或更多数量的音频数据,以确保DSP 139的稳定连续的信号处理(在状态703,一个帧的音频数据(特定数量或更多数量的音频数据)被充入再现FIFO 144)。因此,再现控制部分143要检测存储在再现FIFO 144中的音频数据是否少于特定数量。当检测到再现FIFO 144中的音频数据不足时,确定再现FIFO 144缺少音频数据。在以这种状态接收到SOF的情况下,也将采取条件(3)。
在这些条件中的任意一个得到满足时,再现控制部分143进入状态705以产生错误中断,并且通知CPU 131存在错误以执行错误恢复处理。通过错误恢复处理,位于再现FIFO 144输出侧的DMA电路被指示“停止再现”,同时执行诸如清空再现FIFO 144之类的初始化。初始化之后,再现控制部分143继续其操作,在状态704重新开始。因此,虽然声音被临时中断,但是操作可以被继续。操作的继续表示自动的恢复能力处于启动状态(启用)。可以关闭(禁用)从错误中自动恢复的能力。在自动恢复能力被设置为关闭状态的情况下,继续停止状态,而不执行如706中所示的错误恢复处理。自动恢复能力在开启和关闭状态之间的切换可由CPU 131来指示。而且,通过错误恢复处理,再现FIFO 144被清空,而接收FIFO 147不会被清空。这是因为如果在错误发生时音频数据仍然存储在再现FIFO 144中,则再现FIFO 144的清空有助于以下再现的重新开始。然而,对于接收FIFO 147,因为存储在接收FIFO 147中的音频数据可以用于以下再现的重新开始,因此接收FIFO 147不会被清空,以便有助于再现的重新开始。
在再现FIFO 144已满的条件(3)的情况下,通过从再现FIFO 144中删除一定量的数据以产生空闲空间,可以不停止再现从而继续该操作。在再现FIFO 144缺少数据的条件(3)的情况下,通过将由多个零值样本形成的一定量的伪音频数据写入再现FIFO 144中,可以不停止再现从而继续该操作。在这些情况下,声音将被中断,而再现继续进行。
条件(4)是在具有“OUT”的“再现过程中”的情况下所采取的分支。在这种情况下,再现控制部分143进入状态704以通过位于再现FIFO 144的输入侧的DMA电路将存储于接收FIFO 147中的多个通道的一帧音频数据DMA传输到再现FIFO 144。再现控制部分143然后返回到等待SOF状态702。
条件(5)是在没有“OUT”的“再现过程中”的情况下所采取的分支。在这种情况下,再现控制部分143进入状态707,以使位于再现FIFO 144的输出侧的DMA电路进入“再现停止”状态。然后,再现控制部分143返回等待SOF状态702。如果然后在具有“OUT”的状态中接收到SOF,则再现控制部分143重新开始其操作以再次采取条件(1)的分支。
接收从PC 100发出的音频数据以对其进行信号处理的典型流程如下:首先,再现控制部分143从状态701转移到状态702以采取条件(1)的分支,从而多次重复状态702→703→704→702以将多个通道的音频数据存储在再现FIFO 144中。当积累了一定量的音频数据时,音频数据的再现开始。将通过位于再现FIFO 144的输出侧的DMA电路再现的多个通道的音频数据提供给DSP 139来进行信号处理。在再现开始之后,采取条件(4)的分支以重复状态702→704→702,从而并行地继续通过位于再现FIFO 144的输入侧的DMA电路进行的从接收FIFO 147到再现FIFO 144的对顺序接收到的音频数据的逐帧传输和通过输出侧的DMA电路进行的从再现FIFO 144到DSP 139的音频数据的逐个样本的传输。如果重复期间再现FIFO 144已满或者出现缺少数据所引起的错误,则采取条件(3)的分支,以自动地执行错误恢复处理。如果从PC 100的发送中断,则采取条件(5)的分支,以自动地“停止再现”。
由于在图6的步骤602已向DSP 139和再现控制部分143提供了从PC 100传输的音频数据的采样频率、样本的位数、以及输出通道数,因此再现控制部分143能够检测到存储在再现FIFO 144中的音频数据与所提供的采样频率、样本的位数和输出通道数是否匹配。如果检测到这种“数据尺寸错误”,则可以采取条件(3)的分支。
在图6和图7中没有示出的PC 100停止音频数据输出的情况下,输出停止命令通过控制传输被发送至设备120。响应于该命令,集成电路121的CPU 131指示再现控制部分143停止其操作。接收到该指示的再现控制部分143转向“禁用接收”和“再现停止”,同时停止自动接收(再现)能力以转移到空闲状态708。
图8是表示配置之后将音频数据从设备120输入至PC 100的处理的概要的流程。首先,PC 100向设备120发送命令来设置用于输入音频数据的向内终端(步骤801)。这是PC 100利用控制传输将涉及音频数据的参数通知给集成电路121的处理,该音频数据要利用已通过上述配置设置的IN管道来进行传输。这些参数包括要通过管道传输的音频数据的采样频率、样本的位数、输出通道数等。接收到该命令的CPU 131给DSP 139和记录控制部分141提供通知的参数(适当地改变参数的表示)(步骤802)。而且,在这种情况下,PC 100也会向设备120传送DSP 139中使用的算法,从而CPU 131可以将该算法发送给DSP 139。
接下来,PC 100通过控制传输向设备120发送指示PC 100开始输入音频数据的命令,以指示集成电路121开始操作以输出音频数据(步骤803)。接收到该命令的CPU 131指示记录控制部分141开始操作(步骤804)。记录控制部分141然后通过初始化硬件开始操作(步骤805)。在这些步骤之后,PC 100重复向设备120的集成电路121发送IN令牌并且接收集成电路121发送的音频数据以利用IN管路跟随IN令牌的处理(等时接收处理:PC 100此处执行的代码是经由IN管路从设备120的终端(发送FIFO 146)读取音频数据的命令)(步骤806)。在步骤806中,PC 100发出包括表示OUT的PID、分配给设备120的地址ADDR、分配给发送FIFO 146的终端号ENDP的令牌包(OUT包)。基于OUT令牌的ADDR和ENDP,设备120识别出设备120接下来应当发送数据包,并且发送包括多个通道的一帧音频数据的数据包。PC 100然后从发出的数据包中取回音频数据。记录控制部分141执行在图9的状态机视图中表示的各种处理,这将在接下来进行说明。
图9是表示从设备120向PC 100发送音频数据的情况中记录控制部分141的操作的状态机视图。本说明书中使用的术语“记录”表示作为一种典型情况的情况(捕获),其中在每个采样周期输入到设备120的一个音频数据样本被顺序存储,使得在每个帧周期向PC 100传输一帧音频数据,从而PC 100可以连接接收到的数据以重建音频数据系列。然而,PC 100也可以不必将音频数据系列记录为音频文件,而是可以将音频数据系列从PC 100以流式传输方式输出到不同的接收器(sink)(与设备120类似的不同设备、记录器等)。
在图9中,在系统接通电源之后的上述配置之后,记录控制部分141处于空闲状态909。当随后执行图8所示的步骤801至804以便将音频数据从设备120输入PC 100时,根据步骤804中的输入开始命令指示记录控制部分141开始操作。响应于该指令,记录控制部分141从空闲状态909转移到硬件初始化901(步骤805)。通过该初始化901,发送FIFO 146和记录FIFO 142被清空。而且,通过该初始化,终端控制器145和记录FIFO 143分别被设置为“禁用发送”和“记录停止”。术语“禁用发送”表示USB收发机149和终端控制器145将不会执行发送(更具体地讲,当接收到IN令牌时,USB收发器149和终端控制器145将不会执行基于存储在发送FIFO 146中的数据来产生数据包以及利用IN管路向PC 100发送数据包的操作)。然而,在IN令牌被发出的情况下,由于向PC 100发送的是包括没有多个通道的声音的音频数据的数据包,而不是所述数据包,因此不存在事务。术语“记录停止”表示通过位于记录FIFO 142的输出侧的DMA电路在每个采样周期向记录FIFO 142传输存储在DSP 139的输出寄存器中的多个通道的一个音频数据样本的操作被停止。在初始化901之后,记录控制部分141转移到“等待SOF”状态902。
如图8的步骤806所示,PC 100开始发出IN令牌并且接收从设备120发出的数据包以跟随IN令牌的操作。然而,由于集成电路121侧仍然处于“禁用发送”的状态,因此IN令牌的接收不会导致存储在发送FIFO 146中的数据的发送(该时刻没有数据)。当SOF被接收到时并且当IN令牌被接收到时,终端控制器145通知记录控制部分141各个接收。当SOF被接收到时,记录控制部分141检测帧周期时刻(更具体地讲,作为帧周期之间的边界的SOF接收时刻)以根据图9的分支条件(1)至(5)从等待SOF状态902转移到另一状态。
条件(1)是在记录开始之前的“记录停止”状态时(即,在以通过记录FIFO 142的输入侧的DMA电路从DSP 139向记录FIFO 142传输音频数据的操作被停止的状态接收到SOF的情况下)采取的分支。在这种情况下,通过记录FIFO 142的输入侧的DMA电路的记录操作开始,从而在每个采样周期每个通道的音频样本从DSP 139的输出寄存器传输到记录FIFO 142,以存储在记录FIFO 142中。通过控制记录控制部分141从“记录停止”状态转移到“记录过程中”状态的时刻,可以调节在开始向PC 100发送时(在几个帧之后的SOF的接收时)存储在记录FIFO 142中的音频样本数量(X:预测值,以帧计数)。例如,在记录FIFO 142具有2帧容量的情况下,优选的是该过渡时刻是从当前SOF接收时刻开始经过相当于半个帧的时间之后的时刻(X=1/2)。例如,在记录FIFO 142具有3帧容量的情况下,优选的是记录控制部分141在当前SOF接收时刻转移至“记录过程中”状态。通过X=(S-1)/2来计算最适合的量X,其中记录FIFO的容量定义为S。从SOF接收到过渡时刻的延迟时间D由D=1-Frac(X)(Frac()是取小数部分的函数)来计算。在状态903之后,记录控制部分141返回等待SOF状态902。
条件(2)是在以“记录过程中”和“禁用发送”状态接收SOF的情况下所采取的分支。在这种情况下,记录控制部分141转移至状态904,以检查记录FIFO 142是否有最适于开始向发送FIFO 146传输的特定量X的音频数据。如果记录FIFO 142中存储有特定量X的音频数据,则记录控制部分141指示USB收发器149和终端控制器145开始发送(通过该指令,终端控制器145从“禁用发送”转移至“启用发送”),然后转移至状态905。如果在记录FIFO 142中还没有存储特定量X的音频数据,则记录控制部分141直接转移至状态905。在状态905下,存储在记录FIFO 142中的多个通道的一帧音频数据通过输出侧的DMA电路被DMA传输到发送FIFO 146。然后,记录控制部分141返回到等待SOF状态902。
条件(3)是在没有“IN”时以“记录过程中”和“启用发送”状态接收到SOF的情况下采取的分支。没有“IN”表示在以上接收到的SOF之前的一帧中没有接收到任何IN令牌。在这种情况下,存在发送FIFO 146或记录FIFO 142中缺少空闲空间的可能性。因此,记录控制部分141转移到状态906,以删除要在一个帧中发送的量的音频数据。有两种删除方案,可以预先选择任意一种。第一种方案是从发送FIFO 146中删除在一个帧中可以发送的音频数据量的方案。在这种情况下,记录控制部分141则如在(a)中所示转移至状态905。由于发送FIFO 146中的空闲空间增加,因此可以执行状态905下的DMA传输。第二种方案是从记录FIFO 142中删除在一个帧中可以发送的音频数据量的方案。在这种情况下,记录控制部分141则如(b)中所示转移至等待SOF状态902。由于记录FIFO 142的空闲空间增加,因此可以继续从DSP 139向记录FIFO 142的写入。根据CPU 131做出的指令来完成上述(a)和(b)之间的选择。
状态(4)是在记录FIFO 142已满或缺少数据时以“记录过程中”和“启用发送”状态接收到SOF的情况下采取的分支。条件(4)的分支是在以下情况中要采取的分支,其中由于“记录过程中”状态,通过记录FIFO 142的输入侧的DMA电路,各通道的数据的音频样本在每个采样周期从DSP 139的输出寄存器被写入记录FIFO 142中,以使得记录FIFO 142处于不能写入任何数据的已满状态,但却接收到了SOF。对于存储在记录FIFO 142中的音频数据,通过基本程序,能够在一个帧中发送的量的音频数据被发送FIFO 146通过在状态905中执行的DMA操作取回,以将其发送到主机。然而,为了确保向主机的稳定连续的发送,任何时刻在记录FIFO 142中有必要存储特定量或更多的音频数据(在状态904下,相当于一帧(特定量或更多)的音频数据被充入记录FIFO 142中)。因此,记录控制部分141被指定为检测存储在记录FIFO 142中的音频数据是否少于特定量。如果检测到存储在记录FIFO 142中的音频数据少于特定量,则判断记录FIFO 142为“缺少数据”。同样在以该状态接收到SOF的情况下,要采取条件(4)。
在条件(4)的情况下,记录控制部分141进入状态907,以产生错误终端并且同志CPU 131存在错误,以执行错误恢复处理。通过错误恢复处理,终端控制器145等的发送被设置为“禁用发送”,而通过记录FIFO 142的输入侧的DMA电路从DSP 139向记录FIFO 142的记录停止(即,“记录停止”)。在诸如清空发送FIFO 146和记录FIFO 142之类的初始化之后,记录控制部分141返回到状态902以继续该操作。该操作的继续表示自动恢复能力启动(启用)。可以关闭(禁用)从错误自动恢复的能力。在自动恢复能力设置为关闭状态的情况下,如908所示停止操作的状态继续而不执行错误恢复处理。由CPU 131来指示自动恢复能力在启动和关闭之间的切换。在“记录”时出现错误的情况下,发送FIFO 146和记录FIFO 142均被清空。这是因为由于音频数据序列中断必须清空发送FIFO 146。记录FIFO142被清空是为了将在从PC接收到SOF时的记录FIFO 142的音频数据样本的数量重置为最适合的值。
在记录FIFO 142已满的条件(4)的情况下,通过从记录FIFO 142中删除接下来要传输到发送FIFO 146中的数据来继续该操作,而不是转向“禁用发送”和“记录停止”。在记录FIFO 142缺少数据的条件(4)的情况下,可以通过将由零值样本形成的特定量的伪音频数据写入记录FIFO 142来继续该操作,而不转向“禁用发送”和“记录停止”。在这些情况下,声音将不连续,但是操作可以继续。
条件(5)是在具有“IN”时的“记录过程中”和“启用发送”情况下采取的分支。在该情况下,记录控制部分141进入状态905,以执行从记录FIFO 142到发送FIFO 146的DMA传输。记录控制部分141然后返回到等待SOF状态902。
PC 100输入从DSP 139输出的音频数据的典型流程如下:首先,记录控制部分141从状态901转移至状态902,采取条件(1)的分支,从而转向“记录过程中”,即,使得能够通过记录FIFO 142在每个采样周期从DSP 139向记录FIFO 142传输音频数据。然后,记录控制部分142从状态902转移至状态904,以在记录FIFO 142中存储最适于开始发送的量X的音频数据,以转向“启用发送”。当已经存储了数量接近X的音频数据时,记录控制部分141转移至状态905以从记录FIFO 142将数据DMA传输至发送FIFO 146。记录控制部分141然后采取条件(5)的分支,重复状态902→905→902的循环,以继续音频数据的发送。如果出现了从PC 100发送的IN令牌的中断,则采取条件(3)的分支以从状态902转移至状态906,删除一帧音频数据以继续该操作。如果出现了由已满或缺少数据的记录FIFO 142引起的错误,则采取条件(4)的分支以自动执行错误恢复处理。
取决于SOF出现和采样频率之间的间隔,要根据SOF发送的数据大小精确地改变。例如,即使在一个帧中通常要传输6个样本,也会存在由于不规则SOF周期所引起的一个帧中传输5个或7个样本的情况。然而,由于能够识别出可能样本数据的几个图案,因此基于所识别的图案能够算出要传输的数据的各自大小。在要传输的数据的可变大小与任意的识别出的可能大小不匹配的情况下,可以调节可变大小,使得经过调节的大小不会超过最大的识别大小。可选地,在这种情况下,这种数据的传输可以被检测为“数据大小错误”。在“数据大小错误”的情况下,可以采取条件(4)的分支。
在图8和图9未示出的PC 100停止音频数据输入的情况下,通过控制传输向设备120发出输入停止命令。响应于该命令,集成电路121的CPU 131指示记录控制部分141停止其操作。接收到该指令的记录控制部分141转向“禁用发送”和“记录停止”,从而也停止了自动发送(记录)能力,从而转移至空闲状态909。
如参照图7和图8所示,用于“再现”和“记录”的传输序列以及诸如向接收FIFO或者发送FIFO的DMA传输之类的操作由作为硬件的再现控制部分143和记录控制部分141通过自动处理来实现,因此给CPU 131的负担较少。对于通过常规USB设备进行的音频数据的输入/输出,在每个帧周期中断CPU,使得CPU将控制USB接口和执行DMA控制。然而,在该实施例中,由于作为硬件的再现控制部分143和记录控制部分141执行该控制,因此可以减轻CPU 131的负担。另外,可以在再现控制部分143和记录控制部分141的控制下执行“再现”或“记录”时出现的不规则操作出现情况下的错误检测和自动恢复处理,从而减轻了CPU 131的负担。
虽然在上述实施例中使用了USB 1.1,但是还可以采用诸如USB2.0之类的其他标准。
Claims (11)
1.一种音频数据输出设备,用于在每个预定帧周期从主机设备输入通过通信总线提供的音频数据、执行特定处理、然后输出该音频数据,该音频数据输出设备包括:
接收部分,其具有先进先出缓冲器,并且根据在每个帧周期经由通信总线从主机设备发送到音频数据输出设备的输出请求,执行经由通信总线接收从主机设备发出的多个通道的多个音频数据样本的接收操作,以及将接收到的多个通道的音频数据写入接收缓冲器中;
再现部分,其具有先进先出再现缓冲器并且执行读出存储在再现缓冲器中的多个通道的一个音频数据样本以在每个预定采样周期输出读出数据的再现操作;
处理器,其控制整个音频数据输出设备;以及
控制部分,其根据来自处理器的指令控制接收部分和再现部分的各自操作,
所述处理器用于:
(1)在经由通信总线从主机设备接收到与要被接收的音频数据有关的参数时将该参数提供给控制部分;以及
(2)在经由通信总线从主机设备接收到开始音频数据的输出的指令时指示控制部分开始操作;并且
所述控制部分根据来自处理器的开始操作的指令来清空接收缓冲器和再现缓冲器、启用接收部分的接收操作、以及停止再现部分的再现操作,然后在每个帧周期,
(1)如果在再现部分的再现操作已经停止时接收部分接收到音频数据,则将接收到的音频数据从接收缓冲器传输到再现缓冲器,以及当存储在再现缓冲器中的音频数据达到特定数量时,指示再现部分开始再现操作;
(2)如果在再现部分处于再现操作时接收部分接收到音频数据,则将接收到的音频数据从接收缓冲器传输到再现缓冲器;
(3)如果接收部分未接收数据,则停止再现部分的再现操作;以及
(4)如果在再现缓冲器已满或者缺少数据时接收部分接收到音频数据,则控制部分停止再现部分的再现操作、清除存储在再现缓冲器中的音频数据、并且将接收到的音频数据从接收缓冲器传输到再现缓冲器,作为自动恢复处理。
2.根据权利要求1所述的音频数据输出设备,其中处理器指示控制部分启用或者禁用自动恢复处理;以及
在自动恢复处理被启用的状态下,控制部分执行(4)的操作,而在自动恢复处理被禁用的状态下,控制部分停止每个帧周期执行的操作而不执行(4)的操作,然后保持停止操作。
3.根据权利要求1所述的音频数据输出设备,其中
当处理器经由通信总线从主机设备接收到停止输出的指令时,处理器响应于该指令指示控制部分停止操作;以及
响应于停止操作的指令,控制部分停止再现部分的再现操作。
4.根据权利要求1所述的音频数据输出设备,还包括:
数字信号处理部分,其输入从再现部分输出的音频数据并且在每个采样周期单独地执行对各个通道的音频数据的信号处理,其中
处理器设置与要被接收到的音频数据有关的参数。
5.根据权利要求1至4中的任一项所述的音频数据输出设备,其中
与音频数据有关的参数包括表示音频数据的采样频率、样本的位数和通道数量的参数中的至少一个。
6.一种音频数据输入设备,用于外部输入音频数据、执行特定处理、然后在每个预定帧周期经由通信总线将音频数据提供给主机设备,该音频数据输入设备包括:
记录部分,其具有先进先出记录缓冲器,并且执行在每个预定采样周期将多个通道的外部输入音频数据的一个样本写入记录缓冲器的记录操作;
发送部分,其具有先进先出发送缓冲器,并且根据在每个帧周期经由通信总线从主机设备发送到音频数据输入设备的输入请求执行将存储在发送缓冲器中的多个通道的多个音频数据样本经由通信总线发送到主机设备的发送操作;
处理器,其控制整个音频数据输入设备;以及
控制部分,其根据来自处理器的指令控制发送部分和记录部分的各自操作,
所述处理器用于:
(1)在经由通信总线从主机设备接收到与要被发送的音频数据有关的参数时向控制部分提供该参数;以及
(2)当经由通信总线从主机设备接收到开始音频数据的输入的指令时,指示控制部分开始操作;以及
控制部分根据来自处理器的开始操作的指令清空发送缓冲器和记录缓冲器、禁用发送部分的发送操作、停止记录部分的记录操作、然后在每个帧周期,
(1)如果记录部分的记录操作处于被停止状态,则指示记录部分开始记录操作;
(2)如果在发送部分的发送操作被禁用时记录部分处于记录操作中,则将存储在记录缓冲器中的音频数据传输到发送缓冲器,以及在存储在发送缓冲器中的音频数据到达特定数量时,启用发送部分的发送操作;
(3)如果在发送部分的发送操作被启用时记录部分处于记录操作中并且如果音频数据输入设备接收到从主机设备发出的输入请求,则将存储在记录缓冲器中的音频数据传输到发送缓冲器;
(4)如果在发送部分的发送操作被启用时记录部分处于记录操作中并且如果音频数据输入设备没有接收到从主机设备发送出来的输入请求,则控制部分(a)删除存储在发送缓冲器中的一个帧周期的音频数据并且将存储在记录缓冲器中的音频数据传输到发送缓冲器,或者(b)删除存储在记录缓冲器中的一个帧周期的音频数据;以及
(5)如果在发送部分的发送操作被启用时记录部分处于记录操作中并且如果记录缓冲器已满或者缺少数据时,控制部分禁用发送部分的发送操作,并且清空存储在记录缓冲器和发送缓冲器中的音频数据作为自动恢复处理。
7.根据权利要求6所述的音频数据输入设备,其中
处理器指示控制部分选择上述(4)情况下的(a)或(b)来执行;以及
根据该指令,控制部分执行上述(4)情况下的(a)或(b)。
8.根据权利要求6所述的音频数据输入设备,其中
处理器指示控制部分启用或者禁用该自动恢复处理;并且
在自动恢复处理被启用的状态下,控制部分执行(5)的操作,而在自动恢复处理被禁用的状态下,控制部分停止在每个帧周期执行的操作而不执行(5)的操作,然后保持停止操作。
9.根据权利要求6所述的音频数据输入设备,其中
当处理器经由通信总线从主机设备接收到停止输入的指令时,处理器响应于该指令指示控制部分停止操作;以及
响应于停止操作的指令,控制部分停止记录部分的记录操作。
10.根据权利要求6所述的音频数据输入设备,还包括:
数字信号处理部分,其输入外部输入的音频数据、在每个采样周期单独执行对各个通道的音频数据的信号处理、以及将经过处理的音频数据输出到记录部分,其中
处理器设置与要被接收的音频数据有关的参数。
11.根据权利要求6至10中的任一项权利要求所述的音频数据输入设备,其中
与音频数据有关的参数包括表示音频数据的采样频率、每个样本的位数和通道数的参数中的至少一个。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011-070787 | 2011-03-28 | ||
JP2011070787 | 2011-03-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102736999A CN102736999A (zh) | 2012-10-17 |
CN102736999B true CN102736999B (zh) | 2015-08-12 |
Family
ID=46021994
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210088543.4A Expired - Fee Related CN102736999B (zh) | 2011-03-28 | 2012-03-28 | 音频数据输入设备和音频数据输出设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9076491B2 (zh) |
EP (1) | EP2506262A3 (zh) |
JP (1) | JP5971550B2 (zh) |
CN (1) | CN102736999B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103914421B (zh) * | 2013-01-07 | 2017-04-26 | 华为终端有限公司 | 一种数据终端、数据传输系统及热插拔控制方法 |
US10628172B2 (en) * | 2016-06-27 | 2020-04-21 | Qualcomm Incorporated | Systems and methods for using distributed universal serial bus (USB) host drivers |
CN108235410B (zh) * | 2016-12-15 | 2021-03-19 | 展讯通信(上海)有限公司 | 子帧中断的控制方法及装置 |
US10210111B2 (en) * | 2017-04-10 | 2019-02-19 | Dell Products L.P. | Systems and methods for minimizing audio glitches when incurring system management interrupt latency |
US10601599B2 (en) * | 2017-12-29 | 2020-03-24 | Synaptics Incorporated | Voice command processing in low power devices |
KR20200055901A (ko) * | 2018-11-14 | 2020-05-22 | 삼성전자주식회사 | 액세서리 장치로부터 수신된 식별 정보에 기반하여 동작을 수행하는 전자 장치, 그의 동작 방법 및 액세서리 장치 |
CN110888619B (zh) * | 2019-11-26 | 2023-06-09 | 上海艾为电子技术股份有限公司 | 数字音频功放同步电路及方法、电子设备 |
CN116529716A (zh) * | 2020-10-21 | 2023-08-01 | 舒尔获得控股公司 | 虚拟通用串行总线接口 |
CN114697817B (zh) * | 2020-12-30 | 2023-06-02 | 华为技术有限公司 | 音频数据处理系统和电子设备 |
CN113965844B (zh) * | 2021-12-22 | 2022-04-15 | 深圳市维海德技术股份有限公司 | 低延时音频传输方法、装置、驱动设备及可读存储介质 |
CN115426588B (zh) * | 2022-11-02 | 2023-03-03 | 杭州星犀科技有限公司 | 一种音频处理系统和方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1426047A (zh) * | 2001-12-12 | 2003-06-25 | 雅马哈株式会社 | 混音器设备和能与混音器设备通信的音乐设备 |
CN1947196A (zh) * | 2004-04-26 | 2007-04-11 | 日本先锋公司 | 记录再现装置、同时记录再现控制方法以及同时记录再现控制程序 |
CN101131849A (zh) * | 2006-08-24 | 2008-02-27 | 松下电器产业株式会社 | 记录和再现装置 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6347380B1 (en) * | 1999-03-03 | 2002-02-12 | Kc Technology, Inc. | System for adjusting clock rate to avoid audio data overflow and underrun |
JP3671120B2 (ja) * | 1999-06-16 | 2005-07-13 | 株式会社ソニー・コンピュータエンタテインメント | データ転送装置、データ転送システムおよびデータ転送方法 |
EP2590168B1 (en) | 1999-09-27 | 2015-04-08 | JVC KENWOOD Corporation | Information-signal reproducing method |
JP3996819B2 (ja) * | 2002-08-29 | 2007-10-24 | 松下電器産業株式会社 | オーディオ伝送システム、これに用いられる受信端末、送信端末及び復号化処理装置、並びにオーディオ伝送方法 |
JP4507672B2 (ja) * | 2004-03-31 | 2010-07-21 | ヤマハ株式会社 | オーディオ再生装置およびクロック周波数制御方法 |
JP2005303831A (ja) * | 2004-04-14 | 2005-10-27 | Olympus Corp | データ受信装置、データ受信方法、データ送信装置、及びデータ送信方法 |
JP4211698B2 (ja) * | 2004-07-09 | 2009-01-21 | ソニー株式会社 | コンテンツデータ再生装置 |
JP4597826B2 (ja) * | 2005-09-16 | 2010-12-15 | ティーオーエー株式会社 | 通信装置、その通信方法、通信プログラム及び通信プログラムを記録したコンピュータ読み取り可能な記録媒体 |
JP5029053B2 (ja) * | 2007-02-15 | 2012-09-19 | 富士ゼロックス株式会社 | データ通信システム及びデータ通信プログラム |
JP2009289306A (ja) * | 2008-05-28 | 2009-12-10 | Alpine Electronics Inc | 再生装置 |
US8010692B1 (en) * | 2009-11-05 | 2011-08-30 | Adobe Systems Incorporated | Adapting audio and video content for hardware platform |
-
2012
- 2012-03-23 JP JP2012068417A patent/JP5971550B2/ja not_active Expired - Fee Related
- 2012-03-27 US US13/431,222 patent/US9076491B2/en not_active Expired - Fee Related
- 2012-03-27 EP EP12161369.9A patent/EP2506262A3/en not_active Withdrawn
- 2012-03-28 CN CN201210088543.4A patent/CN102736999B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1426047A (zh) * | 2001-12-12 | 2003-06-25 | 雅马哈株式会社 | 混音器设备和能与混音器设备通信的音乐设备 |
CN1947196A (zh) * | 2004-04-26 | 2007-04-11 | 日本先锋公司 | 记录再现装置、同时记录再现控制方法以及同时记录再现控制程序 |
CN101131849A (zh) * | 2006-08-24 | 2008-02-27 | 松下电器产业株式会社 | 记录和再现装置 |
Also Published As
Publication number | Publication date |
---|---|
EP2506262A3 (en) | 2018-02-14 |
US20120253491A1 (en) | 2012-10-04 |
JP5971550B2 (ja) | 2016-08-17 |
US9076491B2 (en) | 2015-07-07 |
EP2506262A2 (en) | 2012-10-03 |
CN102736999A (zh) | 2012-10-17 |
JP2012215861A (ja) | 2012-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102736999B (zh) | 音频数据输入设备和音频数据输出设备 | |
KR0163234B1 (ko) | 데이타 스트리밍 메카니즘, 스트리밍 장치 어댑터, 컴퓨터 시스템 및 데이타 처리 시스템 | |
CN102667745B (zh) | 多核系统、多核系统的控制方法以及在非暂态可读介质中存储的程序 | |
JP5793690B2 (ja) | インタフェース装置、およびメモリバスシステム | |
CN109313617A (zh) | 负载减少的非易失性存储器接口 | |
US8275579B2 (en) | Communication of a diagnostic signal and a functional signal by an integrated circuit | |
WO2003084164A1 (en) | Stream data processing device, stream data processing method, program, and medium | |
JP5637145B2 (ja) | バスモニタ回路及びバスモニタ方法 | |
CN110290187A (zh) | 数据信息的传输方法及装置、存储介质、电子装置 | |
TW200525362A (en) | Tracking progress of data streamer | |
TW457792B (en) | System and method for context switching in an electronic network | |
CN103516627B (zh) | 多芯片通信中数据包发送、接收的方法和装置 | |
CN105718396A (zh) | 一种大数据主设备传输的i2c总线装置及其通讯方法 | |
JP2008198185A (ja) | バスシステム及びその制御方法 | |
US8195441B1 (en) | Hardware co-simulation involving a processor disposed on a programmable integrated circuit | |
US6799227B2 (en) | Dynamic configuration of a time division multiplexing port and associated direct memory access controller | |
TWI287710B (en) | Stream under-run/over-run recovery | |
CN209690899U (zh) | 基于usb的fpga通信控制装置及fpga | |
JP2006127423A (ja) | バス制御装置、調停装置、並びに、その方法及びプログラム | |
TW402710B (en) | Method and system for packet control list format for controlling a DMA machine in a packetized data communications system | |
Wielgosz et al. | FPGA-based platform for real-time internet | |
CN110601784B (zh) | Tdm接口扩展方法及装置、设备、可读存储介质 | |
US20030152111A1 (en) | System for verifying operations of system LSI | |
Moonen | Predictable embedded multiprocessor architecture for streaming applications | |
JP3967792B2 (ja) | パケット化されたデータ通信インタフェース機器のpciシリアルバスインタフェース機器回路を自律的に動作させるための方法ならびに自律ブート回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150812 Termination date: 20190328 |