AC97

AC97 (Audio Codec '97) is een audiocodering-standaard die ontwikkeld is door Intel in 1997. De standaard wordt toegepast in moederborden, modems en geluidskaarten.

De AC97 bestaat uit een codec die via een AC-link (5 datalijnen) verbonden is met een digitale controller. Met behulp van de codec worden de analoge signalen (audio) omgezet naar digitale signalen (gecodeerd) of omgekeerd (gedecodeerd). De AC-link bestaat uit een synchronisatielijn, een kloklijn, een resetlijn en twee lijnen voor de data van en naar de codec.

De AC97-controller kan meerdere codecs aansturen.

Datalijnen gebruikt voor AC97-communicatie

Opstarten van de communicatie

[bewerken | brontekst bewerken]

De communicatie verloopt op basis van de klok. Het kloksignaal wordt gegenereerd in de codec (bij meerdere codecs door de primaire codec), maar is niet altijd aanwezig.

Om de klokpuls te starten stuurt de controller een korte puls op de resetlijn of de synchronisatielijn.

Versturen van de informatie

[bewerken | brontekst bewerken]

De AC97-standaard maakt gebruik van een seriële interface. De data wordt bit per bit verzonden over de datalijnen op het ritme van de klok, die werkt op een frequentie van 12,288 MHz.

Data van en naar de codec wordt ondergebracht in frames van 256 bit, wat een framerate van 48 kHz per sample oplevert. Dit is voldoende groot om de audio correct weer te kunnen geven.

Een frame bevat 16 bits voor het tagveld en 12 slots van 20 bit voor invoer- en uitvoerkanalen. Met het tagveld wordt aangeduid welke slots gebruikt worden en in het slot bevindt zich een gedigitaliseerde waarde van een audiosample. Bij stereogeluid wordt het linker- en rechterkanaal apart opgeslagen in twee slots.

Hoewel een slot bestaat uit 20 bit, is een sample niet noodzakelijk 20 bit groot. Ook samples van 16 of 18 bit zijn mogelijk, waarbij een aantal bits van het slot niet gebruikt worden.

De synchronisatielijn geeft aan wanneer er data verzonden of ontvangen wordt. Eén klokpuls nadat deze hoog geworden is, wordt een nieuw frame verzonden of ontvangen.

Indien er meerdere frames verwerkt moeten worden, wordt de synchronisatiepuls aangestuurd tijdens de laatste bit van het vorige frame.

Opbouw van een frame en invloed van de synchronisatielijn op het verzenden
[bewerken | brontekst bewerken]