I²S

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 10 november 2020; verifiering kräver 1 redigering .

I²S ( ryska ai-squaard-es / i-dva-es ) är en elektrisk seriell bussgränssnittsstandard som används för att ansluta digitala ljudenheter. Används för att överföra PCM -ljuddata mellan integrerade kretsar i en elektronisk enhet. I²S-bussen bär klock- och datasignalerna på separata linjer, vilket resulterar i en minskning av det jitter som är typiskt för kommunikationssystem som återvinner klocksignaler från hela strömmen. Namnet är en förkortning av Integrated Inter-chip Sound.

Denna standard introducerades 1986 och reviderades senast 1996.

I²S-gränssnittet består elektriskt av 3 ledningar som går från den aktiva enheten till den passiva enheten, samt 4 signaler som motsvarar dem enligt följande:

  1. Bitsynkklocka (CLK)
  2. Frame (Word) Synchronization Clock (WS)
  3. En datasignal som kan sända eller ta emot 2 tidsseparerade kanaler. (SD) [1]

Kanalerna för att ta emot och sända data är separerade, det vill säga det finns en separat kanal för att ta emot data och en kanal för att överföra data. Styrenheten tar emot data som överförs av audiocodec, men det omvända är också möjligt.

Format

Det finns två format för dataöverföring över ljudgränssnittet - I²S och DSP (Digital Signal Processing, digital signal processing), där det finns ett tvåvägs datautbyte som regleras av den aktiva enheten (kontrollern). I I²S-formatet anger inramning en kanaländring. En låg ramnivå ställer in den vänstra kanalen, en hög nivå ställer in den högra kanalen. Klocksignalerna ändras inte (inte avbrutna) till skillnad från instrumentgränssnittet. Klocksignalen matas kontinuerligt, vilket förenklar algoritmen.

Med ankomsten av en ramsynkroniseringssignal med en fördröjning på en eller två klockcykler, börjar data att sändas eller tas emot, och överföringen startar från den mest signifikanta biten. Genom att ändra varaktigheten för ramsynkronisering kan du ändra antalet överförda bitar , signalsampel. Därför kommer det i det allmänna fallet att finnas ett antal N överförda bitar - antalet klockintervall som kommer att användas för dataöverföring. Men efter att data med den erforderliga längden har sänts, finns det en paus till ankomsten av nästa övergång av ramsynkroniseringssignalen. Denna övergång sänder eller tar emot data på en annan kanal. Förskjutningen i förhållande till ramövergången före start av datamottagning konfigureras genom att konfigurera styrenheten som styr dataöverföringen. Därefter sänds bitar som är lika i antalet bitar för den vänstra kanalen och den högra kanalen, detta upprepas, det vill säga sampeln av de vänstra och högra signalerna sänds omväxlande.

Enligt den deklarerade specifikationen har I²S-standarden följande parametrar

DSP-formatet beter sig annorlunda - det kräver synkronisering i form av en puls med en stor arbetscykel , kanaler sänder som dubbelt så många bitar för att förenkla mottagning och sändning. Och i det här fallet sker en sekventiell överföring av en bit från den vänstra kanalen, och då utan luckor i bitarna i den högra kanalen. Sedan kommer nästa impuls och cykeln upprepas.

Organisation av kontrollanten

Regulatorn har två delar, samt ett block med externa utgångar. De är ansvariga för data som sänds och tas emot över en enda ledare, såväl som för klock- och ramsynkroniseringssignaler. Styrenheten sänder dem och hanterar utbytesprocessen. För att enheten ska fungera korrekt kan ingången och utgången inte vändas, detta kan leda till en digital loop .

Den första delen är själva regulatorn med ingångar. För att fungera behöver den en klockgenerator som matar ut kanalhändelser för frammatning . Mottagning och överföring av ljud kan inte utföras av en mikroprocessor, utan av en direktåtkomstkanal, en speciell processor för datainmatning / -utgång. Denna direktåtkomstkanal behöver händelser för att börja läsa data från mottagningsregistren eller sända data till överföringsregistren.

Den andra delen är gränssnittsregistren, följande typer tillhandahålls:

  1. Avbryt flaggregister ;
  2. Avbrottsaktiveringsregister från en viss källa (med antalet avbrottsflaggor eller antalet bitar i avbrottsaktiveringsregistret)
  3. Styrregister, som ställer in styrenhetens driftlägen;
  4. Sample rate generator register, där du kan ställa in klocksignalen och dess frekvens för bitsynkronisering - om data tas emot, skriver registret dessa data och det kan beräknas med programvara;
  5. Två register för att ta emot data;
  6. Kanalöverföringsregister, som kan ha två 32-bitars register överförda sekventiellt.

Avbrottssignaler indikerar vilka händelser som har inträffat inuti styrenheten och som behöver bearbetas. Det finns två grupper av avbrott: den första är avbrott associerade med mottagning och överföring av data och händelser, den andra är associerad med bearbetning och generering av klocksignaler. Den genererar signaler för direktåtkomstkanalen och avbrottsstyrenheten.

Om enheten är passiv (spelar rollen som en slav), kommer signalerna utifrån till synkronisatorn. I ett fall tar den emot och förstärker, omformar klocksignaler, vilket gör dem jämna längs konturen till tydliga och skarpa. Annars matar den ut en klocksignal till en extern enhet. Signalerna från blocket som är ansvarigt för att aktivera eller avaktivera operation genereras i enlighet med tillståndet för en bit i styrregistret.

Avbrottshanteraren läser först avbrottsflaggregistret för att återställa dem. Därefter läser eller skriver data till I²S-dataregistren, om inte en direktåtkomstkanal används. Efter det återkommer avbrottet.

Konfigurationsalternativen ställer in synkroniseringens bit- och ramsynkroniseringspolaritet. Dessa data hjälper synkroniseraren att välja driftsätt för ljudgränssnittet.

Datamottagning

Den seriella mottagaren fångar tydligt nivåerna på signalerna som klockas av synkroniseraren. Vidare sänds denna data bit för bit längs raden av mottagen data till skiftregistret, som synkroniserar data från synkroniseraren. Efter att skiftregistret har lagrats skrivs det till mottagningsregisterbufferten . Skiftregistrets storlek ges av ordets längd. Efter att registerbufferten registrerar mottagna data kan teckenexpansion inträffa. Eftersom fixpunktsformatet uppenbarligen används är det nödvändigt att expandera tecknet till 32 bitar och få 12 bitar data. MSB för den mottagna datan sprids till alla MSB i registret så att det korrekta antalet representeras i bråkformat.

Dataöverföring

Data från registret läses in i en teckenavspridningskrets, som kasserar extra bitar, avsprider tecknet, extraherar den överförda datan och skriver den till sändningsbufferten. Det begränsar tecknet från olika delar och numret skrivs in i motsvarande bitar på sändaren. Så snart skiftregistret är ledigt skrivs skiftbitarna samtidigt och börjar flytta fram en bit, med början med den högsta, överför data till sändaren som överför data till utgångskretsen.

Klockeffekt

Det finns en krets som ansvarar för att leverera klockström till enheten. För att göra detta tillhandahåller den ett läsregister, det vill säga ett klockeffektgrindkonfigurationsregister. Om du ger noll, kommer dess värde att bli ett och signalen försvinner. Om det finns en enhet kommer en slutare att uppstå, med andra ord, klockström till en enhet kommer inte att tillföras enheten. Det finns två formler - klocka och ramsynkronisering. Var och en av dem tar frekvensen som kommer in i den första klocksignalen och dividerar med det antal gånger som anges i klockdelarregistret eller i ramdelarregistret.

Slutför I/O

För att slutföra I/O-processen måste du sekventiellt inaktivera avbrottet, rensa flaggorna, stoppa direktåtkomstkanalen och ta bort klockströmmen.

Se även

Länkar

Anteckningar

  1. [ http://www.compeljournal.ru/images/articles/2011_2_8.pdf Ljudfunktioner hos STM32F-mikrokontrollern] (otillgänglig länk) . compeljournal.ru . Datum för åtkomst: 27 oktober 2011. Arkiverad från originalet den 7 november 2013.