Zvukové čipy odpovídající specifikaci Audio Codec AC'97

11. 6. 2009
Doba čtení: 10 minut

Sdílet

V dnešní části seriálu o architekturách počítačů bude popsán způsob zapojení a komunikace se zvukovými čipy i zvukovými kartami, které odpovídají specifikaci Audio Codec AC'97 firmy Intel.

Obsah

1. Zvukové karty používané v současných počítačích
2. Specifikace Audio Codec AC'97
3. Připojení čipů kompatibilních s AC'97
4. Struktura čipů kompatibilních s AC'97
5. Vstupní i výstupní zvukové kanály a jejich parametry
6. Zpětná kompatibilita Audio Codec AC'97
7. Odkazy na Internetu

1. Zvukové karty používané v současných počítačích

Vývoj zvukových karet se v současné době ubírá několika navzájem odlišnými směry. První směr představují multifunkční čipy, které zajišťují jak podporu pro generování (syntézu) i záznam zvuku, tak i rozhraní pro dnes již poměrně málo používané analogové modemy určené pro telefonní linky. Tyto čipy, které většinou odpovídají specifikaci AC'97 popsané níže, mají poměrně jednoduchou interní strukturu, protože se ve skutečnosti jedná pouze o sadu několika analogově-digitálních a digitálně-analogových převodníků, popř. i analogových multiplexerů doplněných o vstupní či výstupní zesilovače. O vlastní syntézu hudby i o vytváření analogových signálů pro modem (či naopak o převod analogového signálu přečteného z telefonní linky na binární data) se z velké části stará obslužný program. Tento směr vývoje zvukových karet je tedy založen na myšlence náhrady specializovaných obvodů a DSP (digitálních signálových procesorů), které bývaly umístěny na zvukové kartě, výkonným univerzálním mikroprocesorem.

pc6501

Obrázek 1: Zvuková karta odpovídající specifikaci AC'97 ve skutečnosti obsahuje pouze několik D/A a A/D převodníků doplněných o analogový mixér a zesilovače. Jediný digitální výstup je přiváděn na konektor S/PDIF.

Další směr vývoje představují zvuková zařízení připojovaná buď na externí sběrnici USB nebo samostatná zařízení vybavená ethernetovou přípojkou – viz první obrázek, na němž se nachází zvukové zařízení firmy Turtle Beach, které je možné připojit na libovolný počítač vybavený sběrnicí USB (u zařízení vyráběných touto firmou si můžeme být jisti kvalitou, takže se jedná o ideální doplněk k notebookům, jejichž zvukové čipy, zesilovače a interní reproduktory většinou příliš kvalitní nejsou). Tato zařízení buď obsahují pouze digitálně-analogové a analogově-digitální převodníky (samozřejmě doplněné o čip, který se stará o komunikaci po USB sběrnici či síti Ethernet) ovládané programem z počítače, nebo se jedná o plnohodnotné syntetizéry s vlastní pamětí, v níž jsou uloženy vzorky hudebních nástrojů používaných při wavetable syntéze. Předností těchto zařízení je, že se s jejich pomocí dá zvuk přenášet i na velké vzdálenosti v binární podobě, takže při přenosu nedochází k nežádoucí ztrátě kvality – převod binárních dat na analogový signál je proveden až v blízkosti zesilovače.

pc6502

Obrázek 2: Externí zvukové zařízení firmy Turtle Beach, které se k počítači připojuje přes externí sběrnici USB.

2. Specifikace Audio Codec AC'97

Poměrně velké množství osobních počítačů používaných v současnosti již není vybaveno samostatnou zvukovou kartou (určenou například pro interní sběrnici PCI či externí sběrnici USB), ale obvodem pro generování zvuku, který odpovídá specifikaci AC'97 vytvořené firmou Intel (zařízení většinou implementují verzi 2.2 specifikace, popř. novější specifikaci IHDA, kterou si popíšeme příště). Při generování (syntéze) zvuku či naopak jeho záznamu obvodem odpovídajícím této specifikaci jsou sice stále používány základní moduly, které jsme si již popsali v předchozích částech tohoto seriálu (analogově-digitální i digitálně-analogové převodníky, zesilovače), ale vlastní generování tónů či šumu v jednotlivých zvukových kanálech a jejich následné mixování a filtrace je prováděno programově. V případě, že je použita wavetable syntéza (což je dnes stále nejpoužívanější forma zvukové syntézy), jsou vzorky hudebních nástrojů uloženy v operační paměti, odkud si je načítá program, který se o zvukovou syntézu stará.

pc6503

Obrázek 3: Logo používané u zařízení odpovídajících specifikaci AC'97.

Vývoj zvukových karet (zde spíše jen čipů než celých karet) se tak oklikou po více než dvaceti letech vrátil ke svému počátku, protože také některé první obvody pro generování zvuků byly založeny na programové syntéze s využitím mikroprocesoru počítače (na počítačích kompatibilních s IBM PC se jednalo například o zařízení typu Covox a v určitém ohledu i všechny Sound Blastery až do verze Sound Blaster 16). To, že je v případě použití čipu AC'97 pro zvukovou syntézu potřebné použít speciální programové vybavení a poměrně výkonný mikroprocesor, již není v dnešní době ovladačů s unifikovaných rozhraním a mikroprocesorů s frekvencemi v řádu GHz problematické, naopak to vede (alespoň u těch uživatelů, kteří nevyžadují vyšší kvalitu zvuků a hudby) ke snížení celkové ceny počítače vybaveného zvukovými obvody (ale i modemy) odpovídajícími AC'97. Především z tohoto důvodu se můžeme s čipy AC'97 setkat jak v běžných desktopech, tak i noteboocích. Pro správnou funkci je však zapotřebí mít nainstalované potřebné ovladače, což je poměrně velký rozdíl oproti starším zvukovým kartám určeným pro sběrnice ISA a později PCI, které do značné míry pracovaly samostatně, protože zvuková syntéza byla prováděna přímo na zvukové kartě.

pc6504

Obrázek 4: Jeden z čipů odpovídajících specifikaci AC'97. Počet pinů se u těchto čipů liší, většinou však mívají 48 či 64 vývodů.

3. Připojení čipů kompatibilních s AC'97

Celý zvukový subsystém počítače je v případě použití AC'97 implementován ve dvou modulech. První modul se nazývá AC'97 digital controller, zkráceně též DC97. Ten je integrován do čipů umístěných přímo na základní desce, podobně jako řadič PCI sběrnice (což mj. znamená, že se v naprosté většině případů nejedná o samostatný čip, ale o součást South Bridge – viz též čtvrtý obrázek). Modul DC97 komunikuje pomocí interní obousměrné sériové linky nazvané AC-Link s takzvanými kodeky (AC97 codec), jejichž konkrétní umístění v počítači se liší podle jeho konfigurace. Kodek může být nainstalovaný na základní desce jako samostatný čip (což je dnes pravděpodobně nejčastější případ), nebo se může jednat o zařízení umístěné na sběrnici CNR (Communication and Networking Riser) či AMR (Audio Modem Riser). K jednomu digital controlleru (DC97) je možné zapojit minimálně dva kodeky, takže je možné mít v jednom počítači podle potřeby nainstalováno i větší množství zvukových zařízení a modemů.

pc6505

Obrázek 5: Interní struktura South Bridge, který mimo dalších bloků obsahuje i AC'97 digital controller.

Nejdůležitějšími vodiči, které tvoří fyzickou vrstvu sériového rozhraní AC-linky, jsou SDATA_IN0, SDATA_IN1 (serial data in), SDATA_OUT (serial data out), SYNC, RESET a BIT_CLK (bit clock). Vodiče jsou označeny z logického pohledu řadiče, tj. například po vodiči označeném SDATA_OUT se přenáší data z řadiče (DC'97) do všech kodeků (z jejich pohledu se naopak jedná o vstupní vodič, nehledě na jeho označení). Rozlišení jednotlivých zařízení umístěných na jednom kodeku je zajištěno přímo v přenosovém protokolu AC-linky. Na následujícím obrázku můžeme vidět zapojení pinů čipu odpovídajícího specifikaci AC97 kodeku, který je multifunkční, protože dokáže zvuk generovat i zaznamenávat, zpracovávat další vstupy (CD, externí mikrofon) a současně slouží i jako modem (resp. tvoří část modemu, která se stará o vytváření a zpracovávání analogových signálů přenášených po telefonní lince, protože všechny další funkce modemu jsou již implementovány pomocí obslužného programu).

pc6506

Obrázek 6: Obvod odpovídající specifikaci AC'97. Piny na levé, horní i pravé straně obvodu slouží převážně pro vstup či výstup analogových signálů; piny na straně spodní jsou z velké části připojeny k řídicím obvodům čipové sady základní desky – můžeme zde vidět jak vstupní a výstupní piny SDATA_IN a SDATA_OUT, tak i hodinový signál BIT_CLK, pomocí nichž je na linkové vrstvě vytvořeno obousměrné sériové spojení.

pc6507

Obrázek 7: Způsob propojení řadiče DC'97 s jednotlivými kodeky. Řadič by měl umět komunikovat minimálně se dvěma kodeky, tj. musí obsahovat dvojici signálů SDATA_IN0 a SDATA_IN1. Povšimněte si, že výstupní vodič je jen jeden – SDATA_OUT, protože rozlišení jednotlivých zařízení je zajištěno přenosovým protokolem (každý přenášený blok obsahuje v hlavičce identifikaci zařízení).

4. Struktura čipů kompatibilních s AC'97

Na osmém obrázku je zobrazena interní struktura čipu, který odpovídá specifikaci AC'97 kodeku. Na levé straně jsou zobrazeny vstupy a výstupy určené pro připojení čipu k AC-lince, přes kterou se data přenáší sériovým způsobem. Uvnitř čipu se nachází sada 64 konfiguračních registrů, vyrovnávací paměť a především sada D/A a A/D převodníků. Šedé bloky nemusí být na všech čipech odpovídajících specifikaci AC'97 přítomné, bílé bloky by se však měly nacházet na všech počítačových systémech (ovšem ne vždy jsou všechny vstupy a výstupy skutečně vyvedeny na příslušné konektory). Většina zvukových vstupů a výstupů je analogových (ať už zesílených, nezesílených či impedančně přizpůsobených připojenému zařízení), jedinou výjimkou je konektor S/PDIF, přes nějž se přenáší komprimovaná data v digitální podobě. Důležitým blokem je „Analog Mixing and Gain Control“ – jedná se o konfigurovatelnou propojovací matici, ve které lze navzájem téměř libovolným způsobem zmixovat jednotlivé vstupní i výstupní analogové signály.

pc6508

Obrázek 8: Interní bloková struktura čipu odpovídajícího specifikaci AC'97.

5. Vstupní i výstupní zvukové kanály a jejich parametry

Specifikace AC'97 taktéž předepisuje parametry zvukových kanálů. Podporovány jsou tři konfigurace výstupních kanálů: monofonní výstup, stereofonní výstup a takzvaný režim multichannel, při jehož použití lze zvuk přenášet až do šesti reproduktorů (jedna z možných konfigurací je Dolby 5.1). Jednotlivé vzorky (samply) mohou mít 16, 18 či 20 bitů, samplovací frekvence dosahuje až 48 kHz. V novější specifikaci AC'97 v 2.2 je taktéž určeno, že pro dva hlavní kanály, tj. pravý a levý reproduktor, lze použít vzorkovací frekvence v rozsahu 88,2 až 96 Khz, což odpovídá dvojnásobku frekvencí 44,1 a 48 kHz používaných při běžném zpracování zvuku. Firma Intel tento režim nazvala vcelku přiléhavě Double Rate Audio neboli DRA. Při pohledu na maximální povolené vzorkovací frekvence, bitovou šířku jednotlivých vzorků (samplů) a celkový počet D/A a A/D převodníků by se mohlo zdál, že je nutné, aby přenosová rychlost AC-linky byla velká. Ve skutečnosti je na základě specifikace AC'97 použita rychlost 12,576 Mbit/s, která je v praxi využita pouze z cca jedné pětiny.

pc6509

Obrázek 9: Možné kombinace vstupních a výstupních zvukových kanálů.

pc6510pc6511

Obrázek 10 a 11: Pokud má interní zvuková karta vyvedeny pouze konektory pro levý a pravý reproduktor, lze použít přídavnou kartu tak, jak je naznačeno na těchto dvou obrázcích.

pc6512

Obrázek 12: Zvuková karta, která doplňuje dva hlavní kanály (pravý a levý) o výstup pro subwoofer a dva okrajové reproduktory. Lze ji například použít při konfiguraci odpovídající Dolby 5.1.

6. Zpětná kompatibilita Audio Codec AC'97

Podle specifikace firmy Intel by měly zvukové obvody nesoucí označení AC'97 (compatible) a především jejich programové vybavení plně emulovat jak čip OPL3, tak i veškeré funkce zvukové karty Sound Blaster, a to až na úroveň jednotlivých řídicích registrů (což mj. znamená, že by mělo být možné používat tyto čipy i v DOSu jako plnohodnotnou náhradu Sound Blasterů). Teoreticky je sice tato podpora zajištěna, ale ve skutečnosti bývá především emulace FM syntézy, tj. čipu OPL3 (Yamaha YMF 262) velmi slabá – původnímu zvuku OPL3 se mnohdy ani vzdáleně neblíží (z tohoto důvodu používá například DOSBox – emulátor počítače s nainstalovaným DOSem – vlastní emulaci OPL2/3 a nespoléhá se na schopnosti ovladačů zvukových karet).

bitcoin školení listopad 24

pc6513

Obrázek 13: Plnohodnotná zvuková karta, kterou lze zapojit do konektoru CNR, na nějž je vyvedena AC-linka. Tuto kartu lze používat současně se zvukovým čipem umístěným na základní desce počítače.

7. Odkazy na Internetu

  1. Digigram
    www.digigram.com
  2. PCX9/PCX9 PCI
    http://www.di­gigram.com/pro­ducts/getinfo­.php?prod_key=8950
  3. PCX924
    http://www.di­gigram.com/pro­ducts/getinfo­.php?prod_key=8350
  4. Sell PCX9 Digigram (zde se dají relativně levně nakoupit karty PCX9)
    http://www.mac­music.org/ads/vi­ew.php/lang/en/id/1889­4/Digigram-PCX9
  5. Turtle Beach Systems
    http://en.wiki­pedia.org/wiki/Tur­tle_Beach_Sys­tems
  6. Voyetra Turtle Beach, Inc.
    http://www.tur­tlebeach.com/com­pany.aspx
  7. Turtle Beach MultiSound Project
    http://www.ala­sir.com/softwa­re/multisound/in­dex.html
  8. Beyond AC97 Audio Controller
    http://www.be­yondsemi.com/pa­ge/products/in­terface_cores/be­yond_ac97_audi­o_controller2
  9. Norma Intel Audio Codec AC'97 a jej praktické použitie
    http://www.svet­hardware.cz/ar­t_doc-AA4F07CB2C038­1B3C12569FC00599998­.html
  10. AC'97
    http://en.wiki­pedia.org/wiki/Ac97
  11. AC'97 Component Specification, Revision 2.3, Intel Corporation, April 2002
    http://downlo­ad.intel.com/sup­port/motherbo­ards/desktop/sb/ac97­_r23.pdf
  12. Front Panel I/O Connectivity Design Guide Intel Corporation, February 2005, Version 1.3
    http://www.for­mfactors.org/de­veloper/specs/A2928604–005.pdf
  13. S/PDIF
    http://en.wiki­pedia.org/wiki/S/PDIF
  14. SPDIF
    http://www.epa­norama.net/do­cuments/audio/spdif­.html
  15. S/PDIF C Channel Information
    http://www.mi­nidisc.org/spdif_c_ch­annel.html
  16. AES/EBU
    http://en.wiki­pedia.org/wiki/A­ES/EBU

Autor článku

Vystudoval VUT FIT a v současné době pracuje na projektech vytvářených v jazycích Python a Go.