I²S

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 10. november 2020; verifikation kræver 1 redigering .

I²S ( russisk ai-squaard-es / i-dva-es ) er en elektrisk seriel bus-grænsefladestandard, der bruges til at forbinde digitale lydenheder. Bruges til at overføre PCM -lyddata mellem integrerede kredsløb i en elektronisk enhed. I²S-bussen fører ur- og datasignalerne på separate linjer, hvilket resulterer i en reduktion i den jitter , der er typisk for kommunikationssystemer, der genvinder clock-signaler fra hele strømmen. Navnet er en forkortelse af Integrated Inter-chip Sound.

Denne standard blev introduceret i 1986 og sidst revideret i 1996.

I²S-grænsefladen består elektrisk af 3 ledninger, der går fra den aktive enhed til den passive enhed, samt 4 signaler, der svarer til dem som følger:

  1. Bitsynkroniseringsur (CLK)
  2. Ramme (Word) Synchronization Clock (WS)
  3. Et datasignal, der kan sende eller modtage 2 tidsadskilte kanaler. (SD) [1]

Kanalerne til modtagelse og transmission af data er adskilt, det vil sige, at der er en separat kanal til modtagelse af data og en kanal til at sende data. Controlleren modtager data transmitteret af audio-codec'et, men den omvendte situation er også mulig.

Formater

Der er to formater til datatransmission over lydgrænsefladen - I²S og DSP (Digital Signal Processing, digital signal processing), hvor der er en tovejs dataudveksling reguleret af den aktive enhed (controller). I I²S-formatet angiver framing en kanalændring. Et lavt rammeniveau indstiller venstre kanal, et højt niveau indstiller højre kanal. Ursignalerne ændres ikke (ikke afbrudt) i modsætning til instrumentgrænsefladen. Ursignalet tilføres kontinuerligt, hvilket forenkler algoritmen.

Med ankomsten af ​​et rammesynkroniseringssignal med en forsinkelse på en eller to klokcyklusser, begynder data at blive transmitteret eller modtaget, og transmissionen starter fra den mest signifikante bit. Ved at ændre varigheden af ​​rammesynkronisering kan du ændre antallet af transmitterede bits , signaleksempler. Derfor vil der i det generelle tilfælde være et antal N transmitterede bits - antallet af clock-intervaller, der vil blive brugt til datatransmission. Men efter at dataene med den nødvendige længde er blevet transmitteret, er der en pause indtil ankomsten af ​​den næste overgang af rammesynkroniseringssignalet. Denne overgang sender eller modtager data på en anden kanal. Forskydningen i forhold til rammeovergangen før starten af ​​datamodtagelse konfigureres ved at konfigurere den controller , der styrer datatransmissionen. Dernæst transmitteres bits, der er ens i antallet af bits af den venstre kanal og den højre kanal, dette gentages, det vil sige, at samplerne af venstre og højre signaler transmitteres skiftevis.

I henhold til den deklarerede specifikation har I²S-standarden følgende parametre

DSP-formatet opfører sig anderledes - det kræver synkronisering i form af en impuls med en stor arbejdscyklus , kanaler transmitterer som dobbelt så mange bits for at forenkle modtagelse og transmission. Og i dette tilfælde er der en sekventiel transmission af en bit fra den venstre kanal, og derefter uden huller i bits i den højre kanal. Så kommer den næste impuls, og cyklussen gentages.

Organisation af controlleren

Regulatoren har to dele, samt en blok af eksterne udgange. De er ansvarlige for data, der transmitteres og modtages over en enkelt leder, såvel som for clock- og framesynkroniseringssignaler. Controlleren sender dem og styrer udvekslingsprocessen. For at enheden skal fungere korrekt, kan input og output ikke vendes, dette kan føre til en digital sløjfe .

Den første del er selve controlleren med indgange. For at fungere skal den have en urgenerator, der udsender feed -forward- kanalhændelser . Modtagelse og transmission af lyd kan ikke udføres af en mikroprocessor, men af ​​en direkte adgangskanal, en speciel processor til datainput / output. Denne direkte adgangskanal har brug for begivenheder for at begynde at læse data fra modtageregistrene eller sende data til overførselsregistrene.

Den anden del er grænsefladeregistrene, følgende typer er tilvejebragt:

  1. Afbryde flagregistre ;
  2. Afbrydelsesaktiveringsregister fra en bestemt kilde (ved antallet af afbrydelsesflag eller antallet af bits i afbrydelsesaktiveringsregistret)
  3. Kontrolregister, som indstiller styreenhedens driftstilstande;
  4. Sample rate generator register, hvor du kan indstille clock-signalet og dets frekvens til bitsynkronisering - hvis data modtages, så skriver registret disse data, og det kan beregnes af software;
  5. To registre til modtagelse af data;
  6. Kanaloverførselsregistre, som kan have to 32-bit registre overført sekventielt.

Afbrydelsessignaler indikerer, hvilke hændelser der er sket inde i controlleren og skal behandles. Der er to grupper af afbrydelser: den første er afbrydelser forbundet med modtagelse og transmission af data og hændelser, den anden er forbundet med behandling og generering af clocksignaler. Den genererer signaler til den direkte adgangskanal og interrupt-controlleren.

Hvis enheden er passiv (spiller rollen som en slave), så kommer signalerne udefra til synkronisatoren. I et tilfælde modtager og forstærker den, omformer ursignaler, hvilket gør dem glatte langs konturen til klare og skarpe. Ellers udsender den et ursignal til en ekstern enhed. Signalerne fra den blok, der er ansvarlig for at aktivere eller deaktivere drift, genereres i overensstemmelse med tilstanden af ​​en bit i styreregisteret.

Interrupt-handleren læser først interrupt-flagregisteret for at nulstille dem. Dernæst læser eller skriver data til I²S-dataregistrene, medmindre der bruges en direkte adgangskanal. Derefter vender afbrydelsen tilbage.

Konfigurationsmulighederne indstiller synkroniseringens bit- og rammesynkroniseringspolaritet. Disse data hjælper synkroniseringsapparatet med at vælge driftstilstanden for lydgrænsefladen.

Datamodtagelse

Den serielle modtager fanger tydeligt niveauerne af de signaler, der klokkes for af synkroniseringen. Yderligere sendes disse data bit for bit langs linjen af ​​modtagne data til skifteregisteret, som synkroniserer dataene fra synkroniseringen. Efter at skifteregisteret er lagret, skrives det til modtageregisterbufferen . Skifteregisterets størrelse er givet af ordets længde. Efter registerbufferen har registreret de modtagne data, kan tegnudvidelse forekomme. Da fikspunktsformatet åbenbart bruges , er det nødvendigt at udvide tegnet til 32 bit og få 12 bit data. MSB'en af ​​de modtagne data udbredes til alle MSB'erne i registret, således at det korrekte tal er repræsenteret i brøkformat.

Dataoverførsel

Dataene fra registret læses ind i et tegn-despredningskredsløb, som kasserer ekstra bits, despreader tegnet, udtrækker de transmitterede data og skriver det til sendebufferen. Det indsnævrer tegnet fra forskellige dele, og tallet skrives ind i de tilsvarende bits på senderen. Så snart skifteregisteret er ledigt, skrives skiftebittene samtidigt og begynder at gå en bit frem, startende med den højeste, overfører data til senderen, som overfører data til udgangskredsløbet.

Urstyrke

Der er et kredsløb, der er ansvarlig for at levere clock-strøm til enheden. For at gøre dette tilvejebringer den et læseregister, det vil sige et konfigurationsregister for ureffektporte. Hvis du giver nul, vil dens værdi blive én, og signalet vil gå. Hvis der er en enhed, så vil der opstå en lukker, med andre ord, urstrøm til en enhed vil ikke blive leveret til enheden. Der er to formler - ur- og rammesynkronisering. Hver af dem tager frekvensen, der kommer ind i det første kloksignal og dividerer med det antal gange, der er angivet i klokdelerregistret eller i rammedelerregisteret.

Fuldfører I/O

For at fuldføre I/O-processen skal du sekventielt deaktivere afbrydelsen, rydde flagene, stoppe den direkte adgangskanal og fjerne urstrømmen.

Se også

Links

Noter

  1. [ http://www.compeljournal.ru/images/articles/2011_2_8.pdf Lydfunktioner i STM32F-mikrocontrolleren] (utilgængeligt link) . compeljournal.ru . Dato for adgang: 27. oktober 2011. Arkiveret fra originalen den 7. november 2013.