專利名稱:高分辨率音頻體系結(jié)構(gòu)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于在主機接口和一個或多個編碼器/解碼器(CODEC)之間通信的兼容HAD的裝置。
背景技術(shù):
Intel高分辨率音頻(HDA)是用于能夠重放比傳統(tǒng)的集成音頻規(guī)范更多的通道并且具有更好的質(zhì)量的集成音頻的規(guī)范。HDA的主要目的之一是支持在PC(個人計算機)環(huán)境下的高質(zhì)量音頻。在“Intel HighDefinition Audio Specification Revision 1.0,April 15,2004”中給出了HDA規(guī)范。
圖1中示出了針對HDA體系結(jié)構(gòu)的典型硬件配置。該體系結(jié)構(gòu)被分成上游部分101和下游部分103。上游部分101包括經(jīng)主機總線107被連接到存儲器控制器109的中央處理單元(CPU)105。存儲器控制器109可以訪問系統(tǒng)存儲器111并且存儲器控制器109經(jīng)外圍部件互連(PCI)113或一些其他系統(tǒng)總線被連接到下游部分103。下游部分103包括經(jīng)HDA鏈路119被連接到若干HDA CODEC117a、117b...的HDA控制器115。用于很多HDA設(shè)備的代號為“Azalia”,所以HDA控制器115或者可以被稱為Azalia控制器,HDA鏈路119或者可以被稱為Azalia鏈路(或者按照更早的術(shù)語被稱為音頻Codec鏈路),并且HDA CODEC117a...或者可以被稱為Azalia CODEC。
HDA控制器115是總線主控I/O外設(shè),其經(jīng)PCI(或者一些其他合適的外設(shè)附接主機的接口)被連接到系統(tǒng)存儲器。HDA控制器115包括一個或多個DMA(直接存儲器訪問)引擎121,其中每個DMA引擎被設(shè)定為在系統(tǒng)存儲器111和HDA CODEC117a之間傳送單一音頻流。
HDA控制器115經(jīng)HDA鏈路119被物理連接到Azalia CODEC117a...中的一個或多個上。HDA鏈路119在HDA控制器115和CODEC117a...之間輸送串行化的數(shù)據(jù)。HDA鏈路119具有固定的協(xié)議,該協(xié)議提供用于傳送數(shù)據(jù)的最佳標(biāo)準(zhǔn)。HDA鏈路允許命令從HDA控制器被發(fā)送到CODEC(例如用于音量控制),并且允許利用標(biāo)準(zhǔn)協(xié)議將數(shù)字?jǐn)?shù)據(jù)從HDA控制器傳送到CODEC。HDA鏈路使得用戶能夠連接下游側(cè)的任何所需要的HDA CODEC。
一個或多個Azalia CODEC117a、117b...被連接到HDA鏈路119。CODEC根據(jù)時間復(fù)用的鏈路協(xié)議提取一個或多個音頻流并通過一個或多個轉(zhuǎn)換器123將它們轉(zhuǎn)換成輸出流。轉(zhuǎn)換器123通常將數(shù)字流轉(zhuǎn)換成模擬信號(反之亦然),但是也可以提供附加的對調(diào)制解調(diào)器的支持功能并且被附接到電話線路,并且還可以可選地具有一些其他功能。一些可能的下游連接被示為耳機、電話線路和揚聲器,但是輸出并不局限于這些示例。
在像圖1中所示的傳統(tǒng)HDA體系結(jié)構(gòu)中,所使用的全部CODEC必須是兼容UAA(Universal Audio Architecture,通用音頻體系結(jié)構(gòu))的,并且HDA控制器和HDA CODEC利用相同的標(biāo)準(zhǔn)協(xié)議進(jìn)行工作。這意味著用戶被限制為只能使用HDA/Azalia專用的CODEC。兼容HDA的CODEC例如來自SigmaTel的STAC9200。其他非兼容UAA的標(biāo)準(zhǔn)CODEC不能被連接到下游側(cè)。在加電之后,主機將進(jìn)行枚舉以確定哪些I/O(輸入/輸出)被連接。這通過經(jīng)HDA鏈路119在外圍HDA控制器115和HDA CODEC117a...之間的通信來實現(xiàn)。
像圖1中所示的HDA體系結(jié)構(gòu)引入了用于組織數(shù)據(jù)經(jīng)HDA鏈路傳送的流和通道的思想。流是在系統(tǒng)存儲器緩沖器和CODEC之間被創(chuàng)建的邏輯或虛擬連接,并且每個流通過HDA鏈路由單一DMA引擎驅(qū)動。流包含一個或多個通道的數(shù)據(jù),其中每個通道的數(shù)據(jù)被匯集到CODEC中的單一轉(zhuǎn)換器。圖2示出了在像圖1中所示的傳統(tǒng)體系結(jié)構(gòu)中的流式處理(streaming)。在圖1和圖2中使用相同的標(biāo)號來表示相同的部件。
圖2是圖1的修改版本,其只示出了圖1中那些說明流式處理的概念所必需的部件。系統(tǒng)存儲器111包括緩沖器201a、201b和201c。系統(tǒng)存儲器111被連接到包括DMA引擎121a、121b、121c的HDA控制器115(經(jīng)存儲器控制器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只包含一個通道——調(diào)制解調(diào)器的輸入側(cè))。每個活動流具有在HDA控制器115中被分配的DMA引擎121n。如果DMA引擎不可用,則流必須保持為非活動狀態(tài)一直到某個DMA引擎變?yōu)榭捎玫臑橹?例如圖2中的流4未被連接到DMA引擎,因此是非活動的)。HDA鏈路操縱時間復(fù)用系統(tǒng),意味著每個CODEC被分配了在其中進(jìn)行發(fā)送/接收的特定時隙,并且一旦該時隙結(jié)束就必須等待直到下一個周期上它的下一個時隙。當(dāng)給定的流正在被傳送時,DMA引擎121和一個或多個CODEC117之間的鏈路被固定。
圖3示出了在HDA鏈路119上傳送的數(shù)據(jù)的結(jié)構(gòu)。鏈路中的每個輸入信號傳輸一系列分組或幀。這在圖3最上面的部分中被示出。在圖3的中間部分,我們看到每個幀包含控制信息(下面將會討論)和根據(jù)需要的多個樣本塊(S-1、S-2、S-3...)。幀中任何未被使用的空間都被填充NULL,以使得每個幀花費相同的時間量來被傳輸。在本示例中,圖3的下部示出了樣本塊S-2具有四個通道C-1、C-2、C-3和C-4,每個通過分別具有20位。每個通道去往不同的CODEC。根據(jù)工作樣本速率,幀沿著HDA鏈路以適當(dāng)?shù)拈g隔被傳輸,例如在48kHz,幀每隔20.83μs被傳輸。HDA控制器115和HDA CODEC117a...利用單一協(xié)議進(jìn)行工作,因此以適當(dāng)方式成幀的數(shù)據(jù)可以由HDA控制器發(fā)送并由HDA CODEC117a...正確地接收,以及由CODEC發(fā)送并由控制器接收。
HDA控制器115利用命令出站環(huán)緩沖器(Command Outbound RingBuffer,CORB)機制來將命令傳遞給HDA CODEC117a...。CORB是位于系統(tǒng)存儲器111中的環(huán)形緩沖器,其被用于將命令從軟件傳遞到被連接到HDA鏈路119的CODEC。HDA控制器115使用DMA引擎121從CORB中獲取出站命令并將它們放置在每個幀開始處的控制位中(見圖3)。
來自CODEC117a...的響應(yīng)經(jīng)響應(yīng)入站環(huán)緩沖器(Response InboundRing Buffer,RIRB)機制被發(fā)送到HDA控制器115。RIRB是位于系統(tǒng)存儲器111中的被用于存儲來自CODEC的響應(yīng)的環(huán)形緩沖器。響應(yīng)可以是被請求的(例如響應(yīng)于來自HDA控制器的命令)或主動提供的(例如由CODEC發(fā)送以用信號通知事件)。
如前面提到的,IntelHDA規(guī)范需要在HDA控制器的下游側(cè)的兼容UAA的CODEC,以使得總線驅(qū)動器被正確地裝載。另外,非HDA的CODEC不具有用于HDA鏈路的正確接口。因而,用在圖1的傳統(tǒng)HAD體現(xiàn)結(jié)構(gòu)中的CODEC必須是兼容UAA的。這意味著可以結(jié)合HAD體系結(jié)構(gòu)使用的CODEC的種類是受限制的,并且那些可用的CODEC不具有與一些其他標(biāo)準(zhǔn)CODEC(例如用于I2S或S/PDIF)同樣好的性能(例如信噪比SNR)。能夠?qū)?biāo)準(zhǔn)的非兼容UAA的CODEC連接到HAD體系結(jié)構(gòu)以提供給用戶對CODEC的更多的選擇,并且從而實現(xiàn)在能夠使用HAD體系結(jié)構(gòu)的同時提高音頻質(zhì)量將是非常有益的。
發(fā)明內(nèi)容
根據(jù)本發(fā)明的第一方面,提供了被布置為與主機接口和一個或多個非兼容高分辨率音頻(HDA)的編碼器/解碼器(CODEC)通信的裝置,該裝置包括可連接到一個或多個非兼容HDA的CODEC并且與HDA控制器兼容的邏輯電路,邏輯電路被布置為向HDA控制器發(fā)送響應(yīng),這些響應(yīng)仿真兼容HDA的CODEC的響應(yīng)。
在主機接口處,主機不會“看到”本發(fā)明的布置和傳統(tǒng)布置之間的任何區(qū)別。然而,在邏輯電路的下游側(cè),邏輯電路可以被連接到標(biāo)準(zhǔn)CODEC,即非兼容HDA的CODEC。這意味著標(biāo)準(zhǔn)CODEC可以結(jié)合HDA體系結(jié)構(gòu)被使用。這允許用戶有對CODEC的更多的選擇,意味著很可能實現(xiàn)聲音質(zhì)量的提高。
該裝置可以構(gòu)成聲卡的一部分,因而該裝置還可以包括與邏輯電路兼容并且可連接到主機接口的HDA控制器。有益的是該裝置采用集成電路(IC)的形式,即HDA控制器和仿真器邏輯電路被形成為單一IC。這將減少該裝置的制造成本。
在所描述的實施例中,主機接口是外圍部件接口(PCI)。USB和1394是其他可能的主機接口。
一個或多個CODEC中的至少一個可以是針對Sony/Phillips數(shù)字接口(S/PDIF)的CODEC。S/PDIF是Sony和Phillips公司共同研發(fā)的標(biāo)準(zhǔn)音頻文件傳送格式。S/PDIF允許數(shù)字音頻信號從一個設(shè)備傳送到另一設(shè)備,而不需要首先被轉(zhuǎn)換成模擬格式。
一個或多個CODEC中的至少一個可以是Inter-IC-Sound(I2S)CODEC。I2S是用于將數(shù)字音頻設(shè)備連接起來的電總線接口標(biāo)準(zhǔn)。I2S總線將時鐘和數(shù)據(jù)信號分開,得到了非常低抖動的連接。
各種CODEC的其他示例包括來自Cirrus Logic的CS4382和來自Phillips的UDA1361TS。這些都是標(biāo)準(zhǔn)的(非兼容HDA的CODEC)。
主機接口可以位于裝置的上游側(cè),并且一個或多個HDA非兼容的CODEC可以位于裝置的下游側(cè)。如果該裝置包括HDA控制器,那么主機接口可以位于HDA控制器的上游側(cè)。優(yōu)選地,該裝置與用于存儲供應(yīng)商專用指令和/或一個或多個非兼容HDA的CODEC的配置的存儲器存儲裝置相組合。這是有益的,它使得該結(jié)構(gòu)非常靈活,因為在HDA控制器和/或仿真器邏輯電路被制作之后仍然可以支持供應(yīng)商專用的命令。
優(yōu)選地,供應(yīng)商專用指令從由下列各項構(gòu)成的組中選出I2C命令、SPI命令和MIDI命令。如果存儲器存儲裝置還被布置為存儲一個或多個非兼容HDA的CODEC的配置,那么所仿真的響應(yīng)可以基于被存儲的配置。
根據(jù)本發(fā)明的第二方面,提供了可位于裝置的上游側(cè)的主機接口和該裝置的下游側(cè)的一個或多個編碼器/解碼器(CODEC)之間的裝置,該裝置包括可連接到該裝置的下游側(cè)的主機接口的高分辨率音頻(HDA)控制器;以及HDA控制器的下游側(cè)的邏輯電路,該邏輯電路可連接到裝置的下游側(cè)的一個或多個非兼容HDA的CODEC,并且與邏輯電路的上游側(cè)的HDA控制器兼容,該邏輯電路被布置為在啟動期間和正常操作期間能夠向HDA控制器發(fā)送響應(yīng),這些響應(yīng)仿真兼容HDA的CODEC的響應(yīng)。
針對本發(fā)明的一個方面描述的特征也可以應(yīng)用于本發(fā)明的另一方面。
已經(jīng)參考附圖的圖1、2和3描述了公知的布置,其中圖1示出了一種傳統(tǒng)的HAD體系結(jié)構(gòu);圖2是用于說明在經(jīng)HDA鏈路傳送的數(shù)據(jù)中的流和通道的思想的圖1的修改版本;以及圖3示出了在圖1的HDA鏈路上傳送的幀的結(jié)構(gòu)。
結(jié)合附圖,參考下面的詳細(xì)描述將更容易理解本發(fā)明的上述方面和很多附加的優(yōu)點,在附圖中圖4示出了根據(jù)本發(fā)明的一個實施例的包括改進(jìn)的HDA控制器和仿真器邏輯的HAD體系結(jié)構(gòu);圖5a示出了在傳統(tǒng)的HDA布置中DMA到CODEC的連接;圖5b示出了在圖4中所示的本發(fā)明的實施例中的DMA到CODEC的連接;圖6是圖4中的改進(jìn)的HDA控制器的功能框圖;圖7是圖4的仿真器邏輯的功能框圖;圖8示出了構(gòu)成本發(fā)明第二和第三實施例的另外的HAD體系結(jié)構(gòu);圖9a示出了要求半導(dǎo)體芯片支持分別具有其自身輸入/輸出的兩個獨立的ADC的第一體系結(jié)構(gòu)的簡化布置;圖9b示出了要求半導(dǎo)體芯片支持具有兩個輸入/輸出的單一ADC的第二體系結(jié)構(gòu)的簡化布置;圖9c示出了如何基于從EEPROM獲得的第一配置在半導(dǎo)體芯片中配置HDA I/O管腳窗口部件以支持實際的ADC配置;以及圖9d示出了如何基于從EEPROM獲得的第二配置在半導(dǎo)體芯片中配置HDA I/O管腳窗口部件以支持實際的ADC配置。
具體實施例方式
如上所述,本發(fā)明的思想在于改進(jìn)HDA控制器以使其能夠向下游連接到標(biāo)準(zhǔn)CODEC而不只是被連接到兼容UAA的CODEC。這意味著解決兩個問題首先是在標(biāo)準(zhǔn)CODEC不具有合適的HDA鏈路接口的情況下將HDA控制器與標(biāo)準(zhǔn)(非兼容HDA)的CODEC相連接的物理問題,其次是在HDA控制器和標(biāo)準(zhǔn)CODEC沒有利用相同協(xié)議工作的情況下它們之間通信的問題。
圖4示出了本發(fā)明的一個實施例。在圖4中,上游側(cè)101與傳統(tǒng)的HAD體系結(jié)構(gòu)中完全一樣,如圖1中所示,所以這里使用了相同的標(biāo)號??偟貋碚f,上游側(cè)包括經(jīng)主機總線107被連接到存儲器控制器109的CPU105。存儲器控制器可以訪問系統(tǒng)存儲器111并且經(jīng)PCI113(或一些其他合適的接口)被連接到下游側(cè)401。
然而,在下游側(cè)401,布置非常不同。在本實施例中,單一半導(dǎo)體芯片403包括改進(jìn)的HDA控制器405以及對Azalia CODEC性能仿真的邏輯407。芯片403在下游側(cè)被連接到一個或多個標(biāo)準(zhǔn)CODEC(例如I2S、SPDIF)409a、409b...。
在改進(jìn)的HDA控制器405的上游側(cè),系統(tǒng)存儲器111“看到”與傳統(tǒng)系統(tǒng)中一樣的HDA控制器。因而,新的體系結(jié)構(gòu)不影響與UAA系統(tǒng)的適應(yīng)性,并且不需要對主機HDA接口113進(jìn)行任何改變。在Azalia CODEC邏輯407的上游側(cè),改進(jìn)的HDA控制器“看到”與傳統(tǒng)系統(tǒng)一樣的Azalia CODEC,因為Azalia CODEC仿真器邏輯407被設(shè)計為看起來就像傳統(tǒng)系統(tǒng)的HDA鏈路和Azalia CODEC一樣。因而,總線驅(qū)動器仍然可以被正確地裝載。然而,在Azalia CODEC仿真器邏輯407的下游側(cè),接口是非兼容UAA的并且可以被連接到一個或多個標(biāo)準(zhǔn)CODEC409a、409b...。
圖6示出了HDA控制器405的功能框圖,其包括與存儲器控制器109通信的DMA引擎405a、被連接到DMA引擎405a的標(biāo)準(zhǔn)音頻接口405b、HDA控制器寄存器組405c、CORB和RIRB緩沖器405d、405e。這些部件中每個部件的功能都清楚地記載在“Intel High Definition AudioSpecification Revision 1.0,April 15,2004”中,這里將不再詳細(xì)描述。
在圖4的布置中,HDA鏈路已完全被去除。Azalia CODEC仿真器邏輯407被設(shè)計為替換傳統(tǒng)系統(tǒng)中的HDA鏈路和Azalia CODEC。然而,這意味著一些功能必須向上游移到芯片403,并且由Azalia CODEC仿真器邏輯來執(zhí)行。圖7示出了仿真器邏輯407的功能框圖。如該圖中所示,仿真器邏輯407包括用于接收來自HDA控制器405的CORB緩沖器405d的命令的CORB接口407a、命令識別部分407b、窗口部件(Widget)和響應(yīng)發(fā)生器407c和RIRB接口407d。
來自主機的命令經(jīng)過HDA控制器405并且被CORB接口407a接收。CORB接口407a結(jié)合HDA控制器起到的作用就像直接訪問主機存儲器111而無需外部軟件的介入的DMA引擎。一旦合適的地址在HDA控制器405中被建立,CORB接口就與控制器405一起來獲取來自主機存儲器111的命令。同樣,對于RIRB接口407d,這也是能夠直接與主機存儲器111通信的DMA引擎。代替從主機存儲器中讀取命令,RIRB接口將響應(yīng)轉(zhuǎn)發(fā)并放置在主機存儲器111中。類似于CORB接口407a,RIRB接口407d不需要任何外部軟件的介入就可以執(zhí)行DMA操作,除非主機需要對所需地址進(jìn)行編程以用于轉(zhuǎn)發(fā)操作。通常,對于CORB接口所接收的每個命令,都期望有來自響應(yīng)發(fā)生器的響應(yīng)。
命令識別模塊407b執(zhí)行理解來自主機的命令(如CORB接口所接收到的命令)的任務(wù),并且翻譯這些命令,以使得經(jīng)翻譯的命令被不符合Azalia的CODEC所理解。為了使用對CODEC409a、409b...進(jìn)行編程來以特定的采樣速率流式處理音頻的Azalia命令的示例來進(jìn)行詳細(xì)描述,命令識別模塊407b將進(jìn)入的Azalia命令解釋為從CORB接口407a接收,將該信息翻譯為“事件”指令,并將經(jīng)翻譯的信息傳送給窗口部件和響應(yīng)發(fā)生器407c,用于CODEC409a、409b...的編程和進(jìn)一步的處理。
發(fā)生器407c包含代表其正在仿真的兼容HDA的CODEC的寄存器,并且處理經(jīng)翻譯的“事件”指令,以根據(jù)從主機接收的命令來產(chǎn)生合適的響應(yīng)。此外,事件指令被用于產(chǎn)生用于CODEC 409a、409b...的I2C/GPO命令。
參考三個尤其重要的功能對仿真器邏輯407的功能作進(jìn)一步描述功能1枚舉如前所述,在加電之后,主機執(zhí)行枚舉以確定I/O的數(shù)目,即下游連接的CODEC的數(shù)目。在現(xiàn)有技術(shù)的布置中,因為CODEC是兼容HDA的,所以很容易經(jīng)HDA鏈路進(jìn)行枚舉。然而,在本發(fā)明中,在枚舉期間從主機接收命令并且發(fā)送合適的響應(yīng)是Azalia CODEC仿真器邏輯407的功能。因而,仿真器邏輯407將所附接的音頻設(shè)備的性能告知給操作系統(tǒng)(例如Windows XP或類似的),所述性能例如是CODEC能夠支持多少輸入/輸出設(shè)備,每個輸入/輸出設(shè)備有多少個通道,每個通道插口(jack)的顏色編碼和每個輸入/輸出設(shè)備所支持的采樣速率。按照這種方式,Azalia邏輯仿真兼容HDA的CODEC,并且在枚舉期間向主機偽裝為Azalia CODEC被連接。即,不是從HDA CODEC對主機的枚舉查詢進(jìn)行直接響應(yīng),而是仿真器邏輯根據(jù)被連接的標(biāo)準(zhǔn)CODEC的數(shù)目和類型仿真合適的響應(yīng),以使得對于主機而言看起來像是多個兼容Azalia的CODEC被連接。
功能2流式處理如圖2中所示,HDA鏈路提供HDA控制器中的DMA引擎和AzaliaCODEC之間的連接,用于傳輸包含流和通道的幀。對于每個DMA引擎,當(dāng)一些給定的數(shù)據(jù)被傳輸時,在DMA引擎和合適的一個或多個CODEC之間有“固定”連接。HDA鏈路以時間復(fù)用的方式工作,這意味著對于其中DMA正在接收或發(fā)送的周期的一部分,DMA引擎被使用,但是對于該周期的其余部分(當(dāng)其他DMA正在發(fā)送時),DMA沒有被使用,對其他傳輸不起作用,因為它被預(yù)留給其特定的CODEC。在圖4的布置中,Azalia CODEC仿真器邏輯必須執(zhí)行相同的流式處理功能。
圖5a是經(jīng)HDA鏈路在DMA引擎和CODEC之間的連接的傳統(tǒng)布置的示意圖。圖5a實際就是圖2的下面部分的示意圖。參考圖5a,考慮數(shù)據(jù)正在被各個CODEC1、2、3接收的情況。CODEC3被要求首先接收,因此其建立與DMA引擎1的直接連接。對于接收CODEC3數(shù)據(jù)所占用的時間,CODEC3和DMA引擎1之間的連接被固定。然后,CODEC1被要求接收(同時CODEC3仍然在工作),這樣由于DMA引擎1已經(jīng)在使用,所以CODEC1和DMA引擎2之間的直接連接被建立。對于接收CODEC1數(shù)據(jù)所占用的時間,CODEC1和DMA引擎2之間的連接被固定。然后,CODEC2被要求接收(同時CODEC1和3仍然在工作),這樣由于DMA引擎1和2已經(jīng)在使用,所以CODEC2和DMA引擎3之間的直接連接被建立。對于接收CODEC2數(shù)據(jù)所占用的時間,CODEC2和DMA引擎3之間的連接被固定。
然而,在圖5b中,沒有HDA鏈路并且HDA鏈路的功能由AzaliaCODEC仿真器邏輯407來執(zhí)行。Azalia CODEC仿真器邏輯按照與現(xiàn)有技術(shù)的HDA鏈路完全相同的方式操作,即建立CODEC和DMA引擎之間的固定連接,同時數(shù)據(jù)被傳輸(經(jīng)CORB接口407a、命令識別部分407b、窗口部件和響應(yīng)發(fā)生器407c)。對于使用Azalia CODEC仿真器邏輯407的DMA引擎而言,時間復(fù)用也可能是多余的(雖然仍然可能被使用)。不進(jìn)行時間復(fù)用,數(shù)據(jù)吞吐量和BUS的帶寬可以被增大。
功能3控制器與CODEC、CORB和RIRB之間的通信如上面關(guān)于圖3的描述,在現(xiàn)有技術(shù)中,HDA控制器將數(shù)據(jù)轉(zhuǎn)換成合適的幀格式用于經(jīng)HDA鏈路傳輸?shù)紿DA控制器。因為HDA CODEC根據(jù)相同的協(xié)議進(jìn)行工作,所以它們能夠?qū)Τ蓭臄?shù)據(jù)進(jìn)行譯碼。然而,在圖4的布置中,HDA控制器不需要將傳出的數(shù)據(jù)轉(zhuǎn)換成幀(因為它沒有在和HDA CODEC通信),所以改進(jìn)的HDA控制器405不對傳出數(shù)據(jù)進(jìn)行成幀處理。相反,Azalia CODEC仿真器邏輯407轉(zhuǎn)換從HDA控制器接收的數(shù)據(jù),并將其轉(zhuǎn)換成用于被連接的特定的標(biāo)準(zhǔn)CODEC的合適的格式。很清楚,該轉(zhuǎn)換由發(fā)生器407c執(zhí)行。
如前所述,在現(xiàn)有技術(shù)的布置中,來自CORB的出站命令被置于每個幀的開始處的控制位中。然后,控制位被CODEC接收,并且合適的動作被進(jìn)行。然而,在圖4的布置中,因為數(shù)據(jù)沒有被成幀,所以命令數(shù)據(jù)可以不被包括在每個幀的開始處。代替地,仿真器邏輯處理和解釋命令,并且執(zhí)行被請求的功能。因此,即使當(dāng)HDA鏈路不存在時,命令仍然可以被處理,就像HDA鏈路存在一樣,因為仿真器邏輯可以解釋并處理這些命令。這是很重要的,這樣使得驅(qū)動器看不到任何區(qū)別并且仍然可以正確地被裝載。此外,仿真器邏輯解釋來自CODEC的響應(yīng),并且用正確的響應(yīng)做出答復(fù)。
因此,仿真器邏輯允許驅(qū)動器知道什么特征被支持,并且相應(yīng)地告知給操作系統(tǒng)。此外,在枚舉期間,仿真器邏輯向主機發(fā)送信息以使得看起來像是Azalia CODEC被連接。在正常操作期間,仿真器邏輯接收和發(fā)送CODEC和HDA控制器之間的命令和響應(yīng)。
通過將HDA控制器和對HDA鏈路和Azalia CODEC進(jìn)行仿真的邏輯集成在單一芯片上,用戶能夠在下游側(cè)使用非兼容UAA的CODEC。這提供給用戶更多的選擇,并且由于很多標(biāo)準(zhǔn)的CODEC具有比HDA專用CODEC更好的性能,因而用戶可以在使用HDA系統(tǒng)的同時享受到更好的聲音質(zhì)量。此外,將HDA控制器和Azalia CODEC仿真器邏輯組合到單一硅片上減少了成本。
UAA的目的在于向用戶提供在操作系統(tǒng)(OS)中提供基本音頻功能的類驅(qū)動器(class driver)體系結(jié)構(gòu),以及向與用戶系統(tǒng)上的音頻的存在兼容問題或不需要改進(jìn)音頻特征的用戶提供第三方驅(qū)動器的替代選擇。例如,提出使用針對Windows VistaTMOS的標(biāo)準(zhǔn)的Microsoft音頻驅(qū)動器,以使得音頻芯片制造商不需要為其音頻芯片提供任何驅(qū)動器。這樣的好處在于只要音頻芯片是適用Windows的,那么它就可以被Microsoft驅(qū)動器支持。然而,有了這種開始,音頻芯片制造商就不再對驅(qū)動器有控制權(quán),并且因而不能控制其音頻芯片上的任何私有功能。例如,在來自Creative的聲卡產(chǎn)品中,CODEC的數(shù)模轉(zhuǎn)換器(DAC)和模數(shù)轉(zhuǎn)換器(ADC)經(jīng)I2C或GPO端口被控制,以將DAC/ADC編程為針對特定功能的合適的狀態(tài)。例如,并且使用I2C作為示例,當(dāng)加電時,主機向DAC/ADC發(fā)送I2C命令流以將它們置于加電狀態(tài)。隨后,當(dāng)主機開始音頻流時,另一組I2C命令被發(fā)送到連接到CODEC的各個音頻設(shè)備的非靜音輸出端。類似地,當(dāng)主機發(fā)起采樣速率變化時,需要特定的I2C命令。這些命令對于CODEC芯片商是專用的,并且Microsoft標(biāo)準(zhǔn)驅(qū)動器不支持這些供應(yīng)商專用的命令。
本發(fā)明的第二實施例的目的在于解決上述缺點,并且在圖8中被示出(也可以參見圖7的虛線中的文字),圖8類似于圖4的配置,只是附加了CODEC控制器500和存儲器存儲裝置,并且在本實施例中,存儲器采用EEPROM510的形式。
EEPROM510作為命令存儲裝置,其中存儲有用于DAC/ADC的供應(yīng)商專用I2C命令。由于來自仿真器邏輯407的命令和指令被傳送經(jīng)過控制器500,所以控制器500能夠監(jiān)視需要供應(yīng)商專用命令的“事件”或操作。例如,加電就是這樣的事件,并且當(dāng)從仿真器邏輯407(即從發(fā)生器407c)接收到“加電”指令時,控制器500執(zhí)行以下步驟a.識別事件;b.從EEPROM510中獲取與該事件相對應(yīng)的供應(yīng)商專用I2C命令;以及c.基于命令的I2C地址,將I2C命令傳輸?shù)筋A(yù)期的CODEC以對DAC/ADC進(jìn)行編程。
控制器500與分別(即在控制器500的外部)的EEPROM510一起使用來判定何時需要供應(yīng)商專用的I2C命令并且使這樣的命令可用,這樣創(chuàng)建了非常靈活的結(jié)構(gòu),因為這個體系結(jié)構(gòu)是符合UAA的,并且還允許支持供應(yīng)商專用的命令。該體系結(jié)構(gòu)也不局限于某些類型/模式的CODEC(或DAC/ADC),因為對EEPROM的編程可以在聲卡(或母板)的組裝和之后的表面安裝期間進(jìn)行,而不在HDA控制器芯片的制作期間進(jìn)行。很清楚,只要相應(yīng)的供應(yīng)商專用I2C命令被編程到EEPROM中,CODEC(和它們相應(yīng)的DAC/ADC)就可以被配置,而無需使用供應(yīng)商專用的音頻驅(qū)動器,在符合UAA的音頻體系結(jié)構(gòu)中是不滿足這一點的。當(dāng)然,只要所創(chuàng)建的供應(yīng)商專用的音頻驅(qū)動器符合Microsoft驅(qū)動器原則,該驅(qū)動器就可以被使用。但是,使用上述體系結(jié)構(gòu)免去了與研發(fā)這種驅(qū)動器相關(guān)聯(lián)的成本。此外,這種結(jié)構(gòu)也被適合于使用標(biāo)準(zhǔn)的Microsoft驅(qū)動器進(jìn)行工作。
應(yīng)當(dāng)清楚以上體系結(jié)構(gòu)可以被延伸到其他接口或連接,例如通用輸出(GPO)接口、串行外圍接口(SPI)或MIDI。
EEPROM510的使用還擴(kuò)展了音頻體系結(jié)構(gòu)的功能,形成本發(fā)明的第三實施例。為了詳細(xì)說明,產(chǎn)品研發(fā)者通常根據(jù)產(chǎn)品的需要(例如改變CODEC可以支持的輸入/輸出設(shè)備的數(shù)目,改變每個輸入/輸出設(shè)備的通道數(shù)目,使用針對每個通道插口的不同顏色編碼以及限定采樣速率)提供具有不同功能的不同音頻芯片(CODEC)。如第一實施例中所述,優(yōu)選的是使仿真器邏輯407與HDA控制器405制作在同一硅片中,這意味著在制作改進(jìn)的HDA控制器IC期間對仿真器邏輯407正在仿真的CODEC的配置進(jìn)行編程。即使仿真器邏輯407被制作成單獨的部件,這也是個問題,因為這將改進(jìn)的HDA控制器/仿真器邏輯的功能僅限制用于所選擇的CODEC。
為了解決這個問題,關(guān)于CODEC的配置,例如重要參數(shù)的默認(rèn)值和“Verbs”被存儲在EEPROM510中。例如,HDA CODEC體系結(jié)構(gòu)使用“窗口部件(Widgets)”來定義不同功能的組,例如I/O管腳窗口部件或DAC窗口部件等。如果仿真器邏輯407在制作期間被進(jìn)行了預(yù)編程以仿真預(yù)定的窗口部件,那么將需要不同的仿真器邏輯407來支持不同的CODEC配置。然而,提出將窗口部件參數(shù)存儲在仿真器邏輯407可以訪問的EEPROM510中。在加電復(fù)位時,存儲在EEPROM中的配置被下載并且存儲在仿真器邏輯407的內(nèi)部存儲器中。當(dāng)要求響應(yīng)時(例如在以上描述圖7的段落中所述,從主機中接收到命令時),仿真器邏輯407的窗口部件及響應(yīng)發(fā)生器407c通過從內(nèi)部存儲器中獲取并轉(zhuǎn)發(fā)配置的相應(yīng)參數(shù)來做出響應(yīng)。
圖9a是要求半導(dǎo)體芯片403支持分別具有其自身輸入/輸出502、504的兩個獨立的ADC(ADC1和ADC2)的體系結(jié)構(gòu)的簡化布置。另一方面,圖9b是要求半導(dǎo)體芯片403支持具有兩個輸入/輸出506、508的單一ADC的另一體系結(jié)構(gòu)的簡化布置。通常,這需要具有被配置為仿真各個配置的相應(yīng)的仿真器邏輯407的兩個不同的半導(dǎo)體403。然而,第三實施例提出半導(dǎo)體芯片403預(yù)期支持的ADC的具體配置被存儲在EEPROM510中,因而半導(dǎo)體芯片403可以按照一般的方式被制作,而不考慮CODEC的配置。
根據(jù)產(chǎn)品的體系結(jié)構(gòu),EEPROM510根據(jù)專用于該體系結(jié)構(gòu)的配置被編程,并且之后當(dāng)需要仿真對HDA控制器405的響應(yīng)時,仿真器邏輯407可以獲得該配置。圖9c和9d示出了如何基于從EEPROM獲得的配置在半導(dǎo)體芯片403中重新配置HDA I/O管腳窗口部件以支持實際的ADC配置。類似的標(biāo)號被用于表示被仿真的管腳,另外增加了符號“′”。
按照這種方式,HDA CODEC管腳窗口部件可以被重新編程為所需要的配置以滿足大范圍的產(chǎn)品需求。這也減少了芯片開發(fā)成本,因為可以制造通用的HDA控制器205和仿真器邏輯407,然后使用EEPROM510來定義產(chǎn)品類型/配置。
所描述的實施例不應(yīng)當(dāng)被認(rèn)為是限制性的。例如,優(yōu)選的是將邏輯407和HDA控制器405制作為一個集成電路(或單一半導(dǎo)體芯片),因為這樣更節(jié)省成本。然而,不是必須這樣,因為設(shè)想邏輯407可以被制作為單獨的集成電路,該集成電路之后可經(jīng)AC鏈路連接到傳統(tǒng)的HDA控制器。然后,用于第二實施例的CODEC控制器500可以與仿真器邏輯407集成在同一硅芯片內(nèi)或者作為單獨的部件,但是后者是次優(yōu)選的。
當(dāng)然,可以設(shè)想存儲器存儲裝置510可以集成在控制器500中,但是這不是優(yōu)選的,因為在制作HDA控制器時供應(yīng)商的I2C命令必須已經(jīng)被編程,而這限制了結(jié)構(gòu)的靈活性。
權(quán)利要求
1.一種被布置為與主機接口和一個或多個非兼容高分辨率音頻的編碼器/解碼器通信的裝置,所述裝置包括可連接到所述一個或多個非兼容高分辨率音頻的編碼器/解碼器并且與高分辨率音頻控制器兼容的邏輯電路,所述邏輯電路被布置為向所述高分辨率音頻控制器發(fā)送響應(yīng),所述響應(yīng)仿真兼容高分辨率音頻的編碼器/解碼器的響應(yīng)。
2.如權(quán)利要求1所述的裝置,還包括與所述邏輯電路兼容并且可連接到所述主機接口的所述高分辨率音頻控制器。
3.如權(quán)利要求2所述的裝置,其中,所述裝置采用集成電路的形式。
4.如權(quán)利要求2所述的裝置,其中,所述主機接口是外圍部件接口。
5.如權(quán)利要求2所述的裝置,其中,所述一個或多個編碼器/解碼器中的至少一個是從由以下項組成的組中選出的類型的編碼器/解碼器Sony/Phillips數(shù)字接口和Inter-IC-Sound。
6.如權(quán)利要求1所述的裝置,其中,所述邏輯電路利用由以下項組成的組中選出的數(shù)據(jù)來與所述一個或多個非兼容高分辨率音頻的編碼器/解碼器通信復(fù)用的數(shù)據(jù)和未復(fù)用的數(shù)據(jù)。
7.如權(quán)利要求1所述的裝置,其中,所述主機接口可位于所述裝置的上游側(cè),并且所述一個或多個非兼容高分辨率音頻的編碼器/解碼器可位于所述裝置的下游側(cè)。
8.如權(quán)利要求2所述的裝置,其中,所述主機接口可位于所述高分辨率音頻控制器的上游側(cè)。
9.權(quán)利要求1所述的裝置與用于存儲所述一個或多個非兼容高分辨率音頻的編碼器/解碼器的供應(yīng)商專用指令的存儲器存儲裝置的組合。
10.如權(quán)利要求9所述的組合,其中,所述供應(yīng)商專用指令是從由下列項組成的組中選擇的I2C命令、SPI命令和MIDI命令。
11.如權(quán)利要求9所述的組合,其中,所述存儲器存儲裝置還被布置為存儲所述一個或多個非兼容高分辨率音頻的編碼器/解碼器的配置。
12.如權(quán)利要求11所述的組合,其中,所述被仿真的響應(yīng)是基于所述被存儲的配置的。
13.權(quán)利要求1所述的裝置和用于存儲所述一個或多個非兼容高分辨率音頻的編碼器/解碼器的配置的存儲器存儲裝置的組合。
14.一種裝置,可位于所述裝置的上游側(cè)的主機接口和所述裝置的下游側(cè)的一個或多個非兼容高分辨率音頻的編碼器/解碼器之間,所述裝置包括可連接到所述裝置的上游側(cè)的主機接口的高分辨率音頻控制器;和所述高分辨率音頻控制器的下游側(cè)的邏輯電路,該邏輯電路可連接到所述裝置的下游側(cè)的所述一個或多個非兼容高分辨率音頻的編碼器/解碼器,并且與所述邏輯電路的上游側(cè)的高分辨率音頻控制器兼容,所述邏輯電路被布置為能夠在啟動和正常操作期間向所述高分辨率音頻控制器發(fā)送響應(yīng),所述響應(yīng)仿真兼容高分辨率音頻的編碼器/解碼器的響應(yīng)。
全文摘要
本發(fā)明提供了一種高分辨率音頻體系結(jié)構(gòu)。在一個優(yōu)選實施例中,提供了一種裝置,其可位于裝置的上游側(cè)的主機接口和裝置的下游側(cè)的一個或多個非兼容高分辨率音頻(HDA)的編碼器/解碼器(CODEC)之間。該裝置包括可連接到裝置的上游側(cè)的主機接口的高分辨率音頻(HDA)控制器,和HDA控制器的下游側(cè)的邏輯電路。該邏輯電路可連接到裝置的下游側(cè)的一個或多個非兼容HDA的CODEC,并且與邏輯電路的上游側(cè)的HDA控制器兼容。邏輯電路還被布置為在啟動期間和正常操作期間能夠向HDA控制器發(fā)送響應(yīng),這些響應(yīng)仿真兼容HDA的CODEC的響應(yīng)。
文檔編號H04B1/66GK101087144SQ20071009699
公開日2007年12月12日 申請日期2007年4月26日 優(yōu)先權(quán)日2006年4月27日
發(fā)明者徐兆順, 艾德里安·喬納森 申請人:創(chuàng)新科技有限公司