高分辨率音频体系结构的制作方法

文档序号:7651796阅读:240来源:国知局
专利名称:高分辨率音频体系结构的制作方法
技术领域
本发明涉及用于在主机接口和一个或多个编码器/解码器(CODEC)之间通信的兼容HAD的装置。
背景技术
Intel高分辨率音频(HDA)是用于能够重放比传统的集成音频规范更多的通道并且具有更好的质量的集成音频的规范。HDA的主要目的之一是支持在PC(个人计算机)环境下的高质量音频。在“Intel HighDefinition Audio Specification Revision 1.0,April 15,2004”中给出了HDA规范。
图1中示出了针对HDA体系结构的典型硬件配置。该体系结构被分成上游部分101和下游部分103。上游部分101包括经主机总线107被连接到存储器控制器109的中央处理单元(CPU)105。存储器控制器109可以访问系统存储器111并且存储器控制器109经外围部件互连(PCI)113或一些其他系统总线被连接到下游部分103。下游部分103包括经HDA链路119被连接到若干HDA CODEC117a、117b...的HDA控制器115。用于很多HDA设备的代号为“Azalia”,所以HDA控制器115或者可以被称为Azalia控制器,HDA链路119或者可以被称为Azalia链路(或者按照更早的术语被称为音频Codec链路),并且HDA CODEC117a...或者可以被称为Azalia CODEC。
HDA控制器115是总线主控I/O外设,其经PCI(或者一些其他合适的外设附接主机的接口)被连接到系统存储器。HDA控制器115包括一个或多个DMA(直接存储器访问)引擎121,其中每个DMA引擎被设定为在系统存储器111和HDA CODEC117a之间传送单一音频流。
HDA控制器115经HDA链路119被物理连接到Azalia CODEC117a...中的一个或多个上。HDA链路119在HDA控制器115和CODEC117a...之间输送串行化的数据。HDA链路119具有固定的协议,该协议提供用于传送数据的最佳标准。HDA链路允许命令从HDA控制器被发送到CODEC(例如用于音量控制),并且允许利用标准协议将数字数据从HDA控制器传送到CODEC。HDA链路使得用户能够连接下游侧的任何所需要的HDA CODEC。
一个或多个Azalia CODEC117a、117b...被连接到HDA链路119。CODEC根据时间复用的链路协议提取一个或多个音频流并通过一个或多个转换器123将它们转换成输出流。转换器123通常将数字流转换成模拟信号(反之亦然),但是也可以提供附加的对调制解调器的支持功能并且被附接到电话线路,并且还可以可选地具有一些其他功能。一些可能的下游连接被示为耳机、电话线路和扬声器,但是输出并不局限于这些示例。
在像图1中所示的传统HDA体系结构中,所使用的全部CODEC必须是兼容UAA(Universal Audio Architecture,通用音频体系结构)的,并且HDA控制器和HDA CODEC利用相同的标准协议进行工作。这意味着用户被限制为只能使用HDA/Azalia专用的CODEC。兼容HDA的CODEC例如来自SigmaTel的STAC9200。其他非兼容UAA的标准CODEC不能被连接到下游侧。在加电之后,主机将进行枚举以确定哪些I/O(输入/输出)被连接。这通过经HDA链路119在外围HDA控制器115和HDA CODEC117a...之间的通信来实现。
像图1中所示的HDA体系结构引入了用于组织数据经HDA链路传送的流和通道的思想。流是在系统存储器缓冲器和CODEC之间被创建的逻辑或虚拟连接,并且每个流通过HDA链路由单一DMA引擎驱动。流包含一个或多个通道的数据,其中每个通道的数据被汇集到CODEC中的单一转换器。图2示出了在像图1中所示的传统体系结构中的流式处理(streaming)。在图1和图2中使用相同的标号来表示相同的部件。
图2是图1的修改版本,其只示出了图1中那些说明流式处理的概念所必需的部件。系统存储器111包括缓冲器201a、201b和201c。系统存储器111被连接到包括DMA引擎121a、121b、121c的HDA控制器115(经存储器控制器109和PCI113——图2中未示出)。缓冲器201a被连接到DMA引擎121a,缓冲器201b被连接到DMA引擎121b,并且缓冲器201c被连接到DMA引擎121c。多个流通过HDA链路119在HDA控制器115与CODEC117a、117b和117c之间被传送。在图2中,示出了用于说明的四个流。
参考图2,输出流可以被汇集到不止一个CODEC(例如流3可以是由耳机上的HDA CODEC117a和扬声器上的HDA CODEC117c所提供的双通道流),但是输入流必须被汇集到单一的HDA CODEC(例如流2只包含一个通道——调制解调器的输入侧)。每个活动流具有在HDA控制器115中被分配的DMA引擎121n。如果DMA引擎不可用,则流必须保持为非活动状态一直到某个DMA引擎变为可用的为止(例如图2中的流4未被连接到DMA引擎,因此是非活动的)。HDA链路操纵时间复用系统,意味着每个CODEC被分配了在其中进行发送/接收的特定时隙,并且一旦该时隙结束就必须等待直到下一个周期上它的下一个时隙。当给定的流正在被传送时,DMA引擎121和一个或多个CODEC117之间的链路被固定。
图3示出了在HDA链路119上传送的数据的结构。链路中的每个输入信号传输一系列分组或帧。这在图3最上面的部分中被示出。在图3的中间部分,我们看到每个帧包含控制信息(下面将会讨论)和根据需要的多个样本块(S-1、S-2、S-3...)。帧中任何未被使用的空间都被填充NULL,以使得每个帧花费相同的时间量来被传输。在本示例中,图3的下部示出了样本块S-2具有四个通道C-1、C-2、C-3和C-4,每个通过分别具有20位。每个通道去往不同的CODEC。根据工作样本速率,帧沿着HDA链路以适当的间隔被传输,例如在48kHz,帧每隔20.83μs被传输。HDA控制器115和HDA CODEC117a...利用单一协议进行工作,因此以适当方式成帧的数据可以由HDA控制器发送并由HDA CODEC117a...正确地接收,以及由CODEC发送并由控制器接收。
HDA控制器115利用命令出站环缓冲器(Command Outbound RingBuffer,CORB)机制来将命令传递给HDA CODEC117a...。CORB是位于系统存储器111中的环形缓冲器,其被用于将命令从软件传递到被连接到HDA链路119的CODEC。HDA控制器115使用DMA引擎121从CORB中获取出站命令并将它们放置在每个帧开始处的控制位中(见图3)。
来自CODEC117a...的响应经响应入站环缓冲器(Response InboundRing Buffer,RIRB)机制被发送到HDA控制器115。RIRB是位于系统存储器111中的被用于存储来自CODEC的响应的环形缓冲器。响应可以是被请求的(例如响应于来自HDA控制器的命令)或主动提供的(例如由CODEC发送以用信号通知事件)。
如前面提到的,IntelHDA规范需要在HDA控制器的下游侧的兼容UAA的CODEC,以使得总线驱动器被正确地装载。另外,非HDA的CODEC不具有用于HDA链路的正确接口。因而,用在图1的传统HAD体现结构中的CODEC必须是兼容UAA的。这意味着可以结合HAD体系结构使用的CODEC的种类是受限制的,并且那些可用的CODEC不具有与一些其他标准CODEC(例如用于I2S或S/PDIF)同样好的性能(例如信噪比SNR)。能够将标准的非兼容UAA的CODEC连接到HAD体系结构以提供给用户对CODEC的更多的选择,并且从而实现在能够使用HAD体系结构的同时提高音频质量将是非常有益的。

发明内容
根据本发明的第一方面,提供了被布置为与主机接口和一个或多个非兼容高分辨率音频(HDA)的编码器/解码器(CODEC)通信的装置,该装置包括可连接到一个或多个非兼容HDA的CODEC并且与HDA控制器兼容的逻辑电路,逻辑电路被布置为向HDA控制器发送响应,这些响应仿真兼容HDA的CODEC的响应。
在主机接口处,主机不会“看到”本发明的布置和传统布置之间的任何区别。然而,在逻辑电路的下游侧,逻辑电路可以被连接到标准CODEC,即非兼容HDA的CODEC。这意味着标准CODEC可以结合HDA体系结构被使用。这允许用户有对CODEC的更多的选择,意味着很可能实现声音质量的提高。
该装置可以构成声卡的一部分,因而该装置还可以包括与逻辑电路兼容并且可连接到主机接口的HDA控制器。有益的是该装置采用集成电路(IC)的形式,即HDA控制器和仿真器逻辑电路被形成为单一IC。这将减少该装置的制造成本。
在所描述的实施例中,主机接口是外围部件接口(PCI)。USB和1394是其他可能的主机接口。
一个或多个CODEC中的至少一个可以是针对Sony/Phillips数字接口(S/PDIF)的CODEC。S/PDIF是Sony和Phillips公司共同研发的标准音频文件传送格式。S/PDIF允许数字音频信号从一个设备传送到另一设备,而不需要首先被转换成模拟格式。
一个或多个CODEC中的至少一个可以是Inter-IC-Sound(I2S)CODEC。I2S是用于将数字音频设备连接起来的电总线接口标准。I2S总线将时钟和数据信号分开,得到了非常低抖动的连接。
各种CODEC的其他示例包括来自Cirrus Logic的CS4382和来自Phillips的UDA1361TS。这些都是标准的(非兼容HDA的CODEC)。
主机接口可以位于装置的上游侧,并且一个或多个HDA非兼容的CODEC可以位于装置的下游侧。如果该装置包括HDA控制器,那么主机接口可以位于HDA控制器的上游侧。优选地,该装置与用于存储供应商专用指令和/或一个或多个非兼容HDA的CODEC的配置的存储器存储装置相组合。这是有益的,它使得该结构非常灵活,因为在HDA控制器和/或仿真器逻辑电路被制作之后仍然可以支持供应商专用的命令。
优选地,供应商专用指令从由下列各项构成的组中选出I2C命令、SPI命令和MIDI命令。如果存储器存储装置还被布置为存储一个或多个非兼容HDA的CODEC的配置,那么所仿真的响应可以基于被存储的配置。
根据本发明的第二方面,提供了可位于装置的上游侧的主机接口和该装置的下游侧的一个或多个编码器/解码器(CODEC)之间的装置,该装置包括可连接到该装置的下游侧的主机接口的高分辨率音频(HDA)控制器;以及HDA控制器的下游侧的逻辑电路,该逻辑电路可连接到装置的下游侧的一个或多个非兼容HDA的CODEC,并且与逻辑电路的上游侧的HDA控制器兼容,该逻辑电路被布置为在启动期间和正常操作期间能够向HDA控制器发送响应,这些响应仿真兼容HDA的CODEC的响应。
针对本发明的一个方面描述的特征也可以应用于本发明的另一方面。


已经参考附图的图1、2和3描述了公知的布置,其中图1示出了一种传统的HAD体系结构;图2是用于说明在经HDA链路传送的数据中的流和通道的思想的图1的修改版本;以及图3示出了在图1的HDA链路上传送的帧的结构。
结合附图,参考下面的详细描述将更容易理解本发明的上述方面和很多附加的优点,在附图中图4示出了根据本发明的一个实施例的包括改进的HDA控制器和仿真器逻辑的HAD体系结构;图5a示出了在传统的HDA布置中DMA到CODEC的连接;图5b示出了在图4中所示的本发明的实施例中的DMA到CODEC的连接;图6是图4中的改进的HDA控制器的功能框图;图7是图4的仿真器逻辑的功能框图;图8示出了构成本发明第二和第三实施例的另外的HAD体系结构;图9a示出了要求半导体芯片支持分别具有其自身输入/输出的两个独立的ADC的第一体系结构的简化布置;图9b示出了要求半导体芯片支持具有两个输入/输出的单一ADC的第二体系结构的简化布置;图9c示出了如何基于从EEPROM获得的第一配置在半导体芯片中配置HDA I/O管脚窗口部件以支持实际的ADC配置;以及图9d示出了如何基于从EEPROM获得的第二配置在半导体芯片中配置HDA I/O管脚窗口部件以支持实际的ADC配置。
具体实施例方式
如上所述,本发明的思想在于改进HDA控制器以使其能够向下游连接到标准CODEC而不只是被连接到兼容UAA的CODEC。这意味着解决两个问题首先是在标准CODEC不具有合适的HDA链路接口的情况下将HDA控制器与标准(非兼容HDA)的CODEC相连接的物理问题,其次是在HDA控制器和标准CODEC没有利用相同协议工作的情况下它们之间通信的问题。
图4示出了本发明的一个实施例。在图4中,上游侧101与传统的HAD体系结构中完全一样,如图1中所示,所以这里使用了相同的标号。总地来说,上游侧包括经主机总线107被连接到存储器控制器109的CPU105。存储器控制器可以访问系统存储器111并且经PCI113(或一些其他合适的接口)被连接到下游侧401。
然而,在下游侧401,布置非常不同。在本实施例中,单一半导体芯片403包括改进的HDA控制器405以及对Azalia CODEC性能仿真的逻辑407。芯片403在下游侧被连接到一个或多个标准CODEC(例如I2S、SPDIF)409a、409b...。
在改进的HDA控制器405的上游侧,系统存储器111“看到”与传统系统中一样的HDA控制器。因而,新的体系结构不影响与UAA系统的适应性,并且不需要对主机HDA接口113进行任何改变。在Azalia CODEC逻辑407的上游侧,改进的HDA控制器“看到”与传统系统一样的Azalia CODEC,因为Azalia CODEC仿真器逻辑407被设计为看起来就像传统系统的HDA链路和Azalia CODEC一样。因而,总线驱动器仍然可以被正确地装载。然而,在Azalia CODEC仿真器逻辑407的下游侧,接口是非兼容UAA的并且可以被连接到一个或多个标准CODEC409a、409b...。
图6示出了HDA控制器405的功能框图,其包括与存储器控制器109通信的DMA引擎405a、被连接到DMA引擎405a的标准音频接口405b、HDA控制器寄存器组405c、CORB和RIRB缓冲器405d、405e。这些部件中每个部件的功能都清楚地记载在“Intel High Definition AudioSpecification Revision 1.0,April 15,2004”中,这里将不再详细描述。
在图4的布置中,HDA链路已完全被去除。Azalia CODEC仿真器逻辑407被设计为替换传统系统中的HDA链路和Azalia CODEC。然而,这意味着一些功能必须向上游移到芯片403,并且由Azalia CODEC仿真器逻辑来执行。图7示出了仿真器逻辑407的功能框图。如该图中所示,仿真器逻辑407包括用于接收来自HDA控制器405的CORB缓冲器405d的命令的CORB接口407a、命令识别部分407b、窗口部件(Widget)和响应发生器407c和RIRB接口407d。
来自主机的命令经过HDA控制器405并且被CORB接口407a接收。CORB接口407a结合HDA控制器起到的作用就像直接访问主机存储器111而无需外部软件的介入的DMA引擎。一旦合适的地址在HDA控制器405中被建立,CORB接口就与控制器405一起来获取来自主机存储器111的命令。同样,对于RIRB接口407d,这也是能够直接与主机存储器111通信的DMA引擎。代替从主机存储器中读取命令,RIRB接口将响应转发并放置在主机存储器111中。类似于CORB接口407a,RIRB接口407d不需要任何外部软件的介入就可以执行DMA操作,除非主机需要对所需地址进行编程以用于转发操作。通常,对于CORB接口所接收的每个命令,都期望有来自响应发生器的响应。
命令识别模块407b执行理解来自主机的命令(如CORB接口所接收到的命令)的任务,并且翻译这些命令,以使得经翻译的命令被不符合Azalia的CODEC所理解。为了使用对CODEC409a、409b...进行编程来以特定的采样速率流式处理音频的Azalia命令的示例来进行详细描述,命令识别模块407b将进入的Azalia命令解释为从CORB接口407a接收,将该信息翻译为“事件”指令,并将经翻译的信息传送给窗口部件和响应发生器407c,用于CODEC409a、409b...的编程和进一步的处理。
发生器407c包含代表其正在仿真的兼容HDA的CODEC的寄存器,并且处理经翻译的“事件”指令,以根据从主机接收的命令来产生合适的响应。此外,事件指令被用于产生用于CODEC 409a、409b...的I2C/GPO命令。
参考三个尤其重要的功能对仿真器逻辑407的功能作进一步描述功能1枚举如前所述,在加电之后,主机执行枚举以确定I/O的数目,即下游连接的CODEC的数目。在现有技术的布置中,因为CODEC是兼容HDA的,所以很容易经HDA链路进行枚举。然而,在本发明中,在枚举期间从主机接收命令并且发送合适的响应是Azalia CODEC仿真器逻辑407的功能。因而,仿真器逻辑407将所附接的音频设备的性能告知给操作系统(例如Windows XP或类似的),所述性能例如是CODEC能够支持多少输入/输出设备,每个输入/输出设备有多少个通道,每个通道插口(jack)的颜色编码和每个输入/输出设备所支持的采样速率。按照这种方式,Azalia逻辑仿真兼容HDA的CODEC,并且在枚举期间向主机伪装为Azalia CODEC被连接。即,不是从HDA CODEC对主机的枚举查询进行直接响应,而是仿真器逻辑根据被连接的标准CODEC的数目和类型仿真合适的响应,以使得对于主机而言看起来像是多个兼容Azalia的CODEC被连接。
功能2流式处理如图2中所示,HDA链路提供HDA控制器中的DMA引擎和AzaliaCODEC之间的连接,用于传输包含流和通道的帧。对于每个DMA引擎,当一些给定的数据被传输时,在DMA引擎和合适的一个或多个CODEC之间有“固定”连接。HDA链路以时间复用的方式工作,这意味着对于其中DMA正在接收或发送的周期的一部分,DMA引擎被使用,但是对于该周期的其余部分(当其他DMA正在发送时),DMA没有被使用,对其他传输不起作用,因为它被预留给其特定的CODEC。在图4的布置中,Azalia CODEC仿真器逻辑必须执行相同的流式处理功能。
图5a是经HDA链路在DMA引擎和CODEC之间的连接的传统布置的示意图。图5a实际就是图2的下面部分的示意图。参考图5a,考虑数据正在被各个CODEC1、2、3接收的情况。CODEC3被要求首先接收,因此其建立与DMA引擎1的直接连接。对于接收CODEC3数据所占用的时间,CODEC3和DMA引擎1之间的连接被固定。然后,CODEC1被要求接收(同时CODEC3仍然在工作),这样由于DMA引擎1已经在使用,所以CODEC1和DMA引擎2之间的直接连接被建立。对于接收CODEC1数据所占用的时间,CODEC1和DMA引擎2之间的连接被固定。然后,CODEC2被要求接收(同时CODEC1和3仍然在工作),这样由于DMA引擎1和2已经在使用,所以CODEC2和DMA引擎3之间的直接连接被建立。对于接收CODEC2数据所占用的时间,CODEC2和DMA引擎3之间的连接被固定。
然而,在图5b中,没有HDA链路并且HDA链路的功能由AzaliaCODEC仿真器逻辑407来执行。Azalia CODEC仿真器逻辑按照与现有技术的HDA链路完全相同的方式操作,即建立CODEC和DMA引擎之间的固定连接,同时数据被传输(经CORB接口407a、命令识别部分407b、窗口部件和响应发生器407c)。对于使用Azalia CODEC仿真器逻辑407的DMA引擎而言,时间复用也可能是多余的(虽然仍然可能被使用)。不进行时间复用,数据吞吐量和BUS的带宽可以被增大。
功能3控制器与CODEC、CORB和RIRB之间的通信如上面关于图3的描述,在现有技术中,HDA控制器将数据转换成合适的帧格式用于经HDA链路传输到HDA控制器。因为HDA CODEC根据相同的协议进行工作,所以它们能够对成帧的数据进行译码。然而,在图4的布置中,HDA控制器不需要将传出的数据转换成帧(因为它没有在和HDA CODEC通信),所以改进的HDA控制器405不对传出数据进行成帧处理。相反,Azalia CODEC仿真器逻辑407转换从HDA控制器接收的数据,并将其转换成用于被连接的特定的标准CODEC的合适的格式。很清楚,该转换由发生器407c执行。
如前所述,在现有技术的布置中,来自CORB的出站命令被置于每个帧的开始处的控制位中。然后,控制位被CODEC接收,并且合适的动作被进行。然而,在图4的布置中,因为数据没有被成帧,所以命令数据可以不被包括在每个帧的开始处。代替地,仿真器逻辑处理和解释命令,并且执行被请求的功能。因此,即使当HDA链路不存在时,命令仍然可以被处理,就像HDA链路存在一样,因为仿真器逻辑可以解释并处理这些命令。这是很重要的,这样使得驱动器看不到任何区别并且仍然可以正确地被装载。此外,仿真器逻辑解释来自CODEC的响应,并且用正确的响应做出答复。
因此,仿真器逻辑允许驱动器知道什么特征被支持,并且相应地告知给操作系统。此外,在枚举期间,仿真器逻辑向主机发送信息以使得看起来像是Azalia CODEC被连接。在正常操作期间,仿真器逻辑接收和发送CODEC和HDA控制器之间的命令和响应。
通过将HDA控制器和对HDA链路和Azalia CODEC进行仿真的逻辑集成在单一芯片上,用户能够在下游侧使用非兼容UAA的CODEC。这提供给用户更多的选择,并且由于很多标准的CODEC具有比HDA专用CODEC更好的性能,因而用户可以在使用HDA系统的同时享受到更好的声音质量。此外,将HDA控制器和Azalia CODEC仿真器逻辑组合到单一硅片上减少了成本。
UAA的目的在于向用户提供在操作系统(OS)中提供基本音频功能的类驱动器(class driver)体系结构,以及向与用户系统上的音频的存在兼容问题或不需要改进音频特征的用户提供第三方驱动器的替代选择。例如,提出使用针对Windows VistaTMOS的标准的Microsoft音频驱动器,以使得音频芯片制造商不需要为其音频芯片提供任何驱动器。这样的好处在于只要音频芯片是适用Windows的,那么它就可以被Microsoft驱动器支持。然而,有了这种开始,音频芯片制造商就不再对驱动器有控制权,并且因而不能控制其音频芯片上的任何私有功能。例如,在来自Creative的声卡产品中,CODEC的数模转换器(DAC)和模数转换器(ADC)经I2C或GPO端口被控制,以将DAC/ADC编程为针对特定功能的合适的状态。例如,并且使用I2C作为示例,当加电时,主机向DAC/ADC发送I2C命令流以将它们置于加电状态。随后,当主机开始音频流时,另一组I2C命令被发送到连接到CODEC的各个音频设备的非静音输出端。类似地,当主机发起采样速率变化时,需要特定的I2C命令。这些命令对于CODEC芯片商是专用的,并且Microsoft标准驱动器不支持这些供应商专用的命令。
本发明的第二实施例的目的在于解决上述缺点,并且在图8中被示出(也可以参见图7的虚线中的文字),图8类似于图4的配置,只是附加了CODEC控制器500和存储器存储装置,并且在本实施例中,存储器采用EEPROM510的形式。
EEPROM510作为命令存储装置,其中存储有用于DAC/ADC的供应商专用I2C命令。由于来自仿真器逻辑407的命令和指令被传送经过控制器500,所以控制器500能够监视需要供应商专用命令的“事件”或操作。例如,加电就是这样的事件,并且当从仿真器逻辑407(即从发生器407c)接收到“加电”指令时,控制器500执行以下步骤a.识别事件;b.从EEPROM510中获取与该事件相对应的供应商专用I2C命令;以及c.基于命令的I2C地址,将I2C命令传输到预期的CODEC以对DAC/ADC进行编程。
控制器500与分别(即在控制器500的外部)的EEPROM510一起使用来判定何时需要供应商专用的I2C命令并且使这样的命令可用,这样创建了非常灵活的结构,因为这个体系结构是符合UAA的,并且还允许支持供应商专用的命令。该体系结构也不局限于某些类型/模式的CODEC(或DAC/ADC),因为对EEPROM的编程可以在声卡(或母板)的组装和之后的表面安装期间进行,而不在HDA控制器芯片的制作期间进行。很清楚,只要相应的供应商专用I2C命令被编程到EEPROM中,CODEC(和它们相应的DAC/ADC)就可以被配置,而无需使用供应商专用的音频驱动器,在符合UAA的音频体系结构中是不满足这一点的。当然,只要所创建的供应商专用的音频驱动器符合Microsoft驱动器原则,该驱动器就可以被使用。但是,使用上述体系结构免去了与研发这种驱动器相关联的成本。此外,这种结构也被适合于使用标准的Microsoft驱动器进行工作。
应当清楚以上体系结构可以被延伸到其他接口或连接,例如通用输出(GPO)接口、串行外围接口(SPI)或MIDI。
EEPROM510的使用还扩展了音频体系结构的功能,形成本发明的第三实施例。为了详细说明,产品研发者通常根据产品的需要(例如改变CODEC可以支持的输入/输出设备的数目,改变每个输入/输出设备的通道数目,使用针对每个通道插口的不同颜色编码以及限定采样速率)提供具有不同功能的不同音频芯片(CODEC)。如第一实施例中所述,优选的是使仿真器逻辑407与HDA控制器405制作在同一硅片中,这意味着在制作改进的HDA控制器IC期间对仿真器逻辑407正在仿真的CODEC的配置进行编程。即使仿真器逻辑407被制作成单独的部件,这也是个问题,因为这将改进的HDA控制器/仿真器逻辑的功能仅限制用于所选择的CODEC。
为了解决这个问题,关于CODEC的配置,例如重要参数的默认值和“Verbs”被存储在EEPROM510中。例如,HDA CODEC体系结构使用“窗口部件(Widgets)”来定义不同功能的组,例如I/O管脚窗口部件或DAC窗口部件等。如果仿真器逻辑407在制作期间被进行了预编程以仿真预定的窗口部件,那么将需要不同的仿真器逻辑407来支持不同的CODEC配置。然而,提出将窗口部件参数存储在仿真器逻辑407可以访问的EEPROM510中。在加电复位时,存储在EEPROM中的配置被下载并且存储在仿真器逻辑407的内部存储器中。当要求响应时(例如在以上描述图7的段落中所述,从主机中接收到命令时),仿真器逻辑407的窗口部件及响应发生器407c通过从内部存储器中获取并转发配置的相应参数来做出响应。
图9a是要求半导体芯片403支持分别具有其自身输入/输出502、504的两个独立的ADC(ADC1和ADC2)的体系结构的简化布置。另一方面,图9b是要求半导体芯片403支持具有两个输入/输出506、508的单一ADC的另一体系结构的简化布置。通常,这需要具有被配置为仿真各个配置的相应的仿真器逻辑407的两个不同的半导体403。然而,第三实施例提出半导体芯片403预期支持的ADC的具体配置被存储在EEPROM510中,因而半导体芯片403可以按照一般的方式被制作,而不考虑CODEC的配置。
根据产品的体系结构,EEPROM510根据专用于该体系结构的配置被编程,并且之后当需要仿真对HDA控制器405的响应时,仿真器逻辑407可以获得该配置。图9c和9d示出了如何基于从EEPROM获得的配置在半导体芯片403中重新配置HDA I/O管脚窗口部件以支持实际的ADC配置。类似的标号被用于表示被仿真的管脚,另外增加了符号“′”。
按照这种方式,HDA CODEC管脚窗口部件可以被重新编程为所需要的配置以满足大范围的产品需求。这也减少了芯片开发成本,因为可以制造通用的HDA控制器205和仿真器逻辑407,然后使用EEPROM510来定义产品类型/配置。
所描述的实施例不应当被认为是限制性的。例如,优选的是将逻辑407和HDA控制器405制作为一个集成电路(或单一半导体芯片),因为这样更节省成本。然而,不是必须这样,因为设想逻辑407可以被制作为单独的集成电路,该集成电路之后可经AC链路连接到传统的HDA控制器。然后,用于第二实施例的CODEC控制器500可以与仿真器逻辑407集成在同一硅芯片内或者作为单独的部件,但是后者是次优选的。
当然,可以设想存储器存储装置510可以集成在控制器500中,但是这不是优选的,因为在制作HDA控制器时供应商的I2C命令必须已经被编程,而这限制了结构的灵活性。
权利要求
1.一种被布置为与主机接口和一个或多个非兼容高分辨率音频的编码器/解码器通信的装置,所述装置包括可连接到所述一个或多个非兼容高分辨率音频的编码器/解码器并且与高分辨率音频控制器兼容的逻辑电路,所述逻辑电路被布置为向所述高分辨率音频控制器发送响应,所述响应仿真兼容高分辨率音频的编码器/解码器的响应。
2.如权利要求1所述的装置,还包括与所述逻辑电路兼容并且可连接到所述主机接口的所述高分辨率音频控制器。
3.如权利要求2所述的装置,其中,所述装置采用集成电路的形式。
4.如权利要求2所述的装置,其中,所述主机接口是外围部件接口。
5.如权利要求2所述的装置,其中,所述一个或多个编码器/解码器中的至少一个是从由以下项组成的组中选出的类型的编码器/解码器Sony/Phillips数字接口和Inter-IC-Sound。
6.如权利要求1所述的装置,其中,所述逻辑电路利用由以下项组成的组中选出的数据来与所述一个或多个非兼容高分辨率音频的编码器/解码器通信复用的数据和未复用的数据。
7.如权利要求1所述的装置,其中,所述主机接口可位于所述装置的上游侧,并且所述一个或多个非兼容高分辨率音频的编码器/解码器可位于所述装置的下游侧。
8.如权利要求2所述的装置,其中,所述主机接口可位于所述高分辨率音频控制器的上游侧。
9.权利要求1所述的装置与用于存储所述一个或多个非兼容高分辨率音频的编码器/解码器的供应商专用指令的存储器存储装置的组合。
10.如权利要求9所述的组合,其中,所述供应商专用指令是从由下列项组成的组中选择的I2C命令、SPI命令和MIDI命令。
11.如权利要求9所述的组合,其中,所述存储器存储装置还被布置为存储所述一个或多个非兼容高分辨率音频的编码器/解码器的配置。
12.如权利要求11所述的组合,其中,所述被仿真的响应是基于所述被存储的配置的。
13.权利要求1所述的装置和用于存储所述一个或多个非兼容高分辨率音频的编码器/解码器的配置的存储器存储装置的组合。
14.一种装置,可位于所述装置的上游侧的主机接口和所述装置的下游侧的一个或多个非兼容高分辨率音频的编码器/解码器之间,所述装置包括可连接到所述装置的上游侧的主机接口的高分辨率音频控制器;和所述高分辨率音频控制器的下游侧的逻辑电路,该逻辑电路可连接到所述装置的下游侧的所述一个或多个非兼容高分辨率音频的编码器/解码器,并且与所述逻辑电路的上游侧的高分辨率音频控制器兼容,所述逻辑电路被布置为能够在启动和正常操作期间向所述高分辨率音频控制器发送响应,所述响应仿真兼容高分辨率音频的编码器/解码器的响应。
全文摘要
本发明提供了一种高分辨率音频体系结构。在一个优选实施例中,提供了一种装置,其可位于装置的上游侧的主机接口和装置的下游侧的一个或多个非兼容高分辨率音频(HDA)的编码器/解码器(CODEC)之间。该装置包括可连接到装置的上游侧的主机接口的高分辨率音频(HDA)控制器,和HDA控制器的下游侧的逻辑电路。该逻辑电路可连接到装置的下游侧的一个或多个非兼容HDA的CODEC,并且与逻辑电路的上游侧的HDA控制器兼容。逻辑电路还被布置为在启动期间和正常操作期间能够向HDA控制器发送响应,这些响应仿真兼容HDA的CODEC的响应。
文档编号H04B1/66GK101087144SQ20071009699
公开日2007年12月12日 申请日期2007年4月26日 优先权日2006年4月27日
发明者徐兆顺, 艾德里安·乔纳森 申请人:创新科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1