I²S

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 10 noiembrie 2020; verificarea necesită 1 editare .

I²S ( rusă ai-squaard-es / i-dva-es ) este un standard de interfață de magistrală serial electric utilizat pentru conectarea dispozitivelor audio digitale. Folosit pentru a transfera date audio PCM între circuitele integrate dintr-un dispozitiv electronic. Autobuzul I²S transportă semnalele de ceas și de date pe linii separate, ceea ce duce la o reducere a jitterului , tipică sistemelor de comunicații care recuperează semnalele de ceas din întregul flux. Numele este o abreviere pentru Integrated Inter-chip Sound.

Acest standard a fost introdus în 1986 și a fost revizuit ultima dată în 1996.

Interfața I²S constă electric din 3 fire care merg de la dispozitivul activ la dispozitivul pasiv, precum și 4 semnale corespunzătoare acestora, după cum urmează:

  1. Ceas de sincronizare biți (CLK)
  2. Ceas de sincronizare cadru (cuvânt) (WS)
  3. Un semnal de date care poate transmite sau recepționa 2 canale separate în timp. (SD) [1]

Canalele pentru primirea și transmiterea datelor sunt separate, adică există un canal separat pentru primirea datelor și un canal pentru transmiterea datelor. Controlerul primește datele transmise de codecul audio, dar este posibilă și situația inversă.

Formate

Există două formate pentru transmisia de date prin interfața audio - I²S și DSP (Digital Signal Processing, digital signal processing), în care există un schimb de date în două sensuri reglementat de dispozitivul activ (controller). În formatul I²S, încadrarea specifică o schimbare de canal. Un nivel scăzut de încadrare setează canalul stâng, un nivel ridicat stabilește canalul drept. Semnalele ceasului nu se modifică (nu sunt întrerupte), spre deosebire de interfața instrumentului. Semnalul de ceas este alimentat continuu, ceea ce simplifică algoritmul.

Odată cu sosirea unui semnal de sincronizare a cadrului cu o întârziere de unul sau două cicluri de ceas, datele încep să fie transmise sau primite, iar transmisia începe de la bitul cel mai semnificativ. Schimbând durata sincronizării cadrelor, puteți modifica numărul de biți transmisi , mostre de semnal. Prin urmare, în cazul general, va exista un număr N de biți transmiși - numărul de intervale de ceas care vor fi utilizate pentru transmiterea datelor. Dar după ce datele cu lungimea necesară au fost transmise, există o pauză până la sosirea următoarei tranziții a semnalului de sincronizare a cadrului. Această tranziție transmite sau primește date pe alt canal. Decalajul relativ la tranziția de încadrare înainte de începerea recepției datelor este configurat prin configurarea controlerului care controlează transmisia datelor. În continuare, se transmit biți care sunt egali în numărul de biți ai canalului stâng și al canalului drept, acest lucru se repetă, adică eșantioanele semnalelor din stânga și din dreapta sunt transmise alternativ.

Conform specificației declarate, standardul I²S are următorii parametri

Formatul DSP se comportă diferit - necesită sincronizare sub formă de impuls cu un ciclu de lucru mare , canalele transmit de două ori numărul de biți pentru a simplifica recepția și transmisia. Și în acest caz, există o transmisie secvențială a unui bit din canalul stâng și apoi fără goluri în biții canalului drept. Apoi vine următorul impuls și ciclul se repetă.

Organizarea controlorului

Controlerul are două părți, precum și un bloc de ieșiri externe. Ei sunt responsabili pentru datele transmise și primite printr-un singur conductor, precum și pentru semnalele de sincronizare a ceasului și a cadrelor. Controlorul le transmite, gestionând procesul de schimb. Pentru ca dispozitivul să funcționeze corect, intrarea și ieșirea nu pot fi inversate, acest lucru poate duce la o buclă digitală .

Prima parte este controlerul însuși cu intrări. Pentru a funcționa, are nevoie de un generator de ceas care să emită evenimente de canal de tip feed- forward . Recepția și transmiterea sunetului poate fi efectuată nu de un microprocesor, ci de un canal de acces direct, un procesor special pentru intrarea / ieșirea datelor. Acest canal de acces direct are nevoie de evenimente pentru a începe să citească date din registrele de recepție sau să transmită date către registrele de transfer.

A doua parte este registrele de interfață, sunt furnizate următoarele tipuri:

  1. Întreruperea registrelor de steag ;
  2. Registrul de activare a întreruperii dintr-o anumită sursă (în funcție de numărul de steaguri de întrerupere sau de numărul de biți ai registrului de activare de întrerupere)
  3. Registrul de control, care stabilește modurile de funcționare ale controlerului;
  4. Registrul generator de frecvență de eșantionare, în care puteți seta semnalul de ceas și frecvența acestuia pentru sincronizarea biților - dacă se primesc date, atunci registrul scrie aceste date și poate fi calculat prin software;
  5. Două registre pentru primirea datelor;
  6. Registre de transfer de canal, care pot avea două registre de 32 de biți transferate secvenţial.

Semnalele de întrerupere indică ce evenimente au avut loc în interiorul controlerului și trebuie procesate. Există două grupuri de întreruperi: primul este întreruperi asociate cu recepția și transmiterea de date și evenimente, al doilea este asociat cu procesarea și generarea semnalelor de ceas. Acesta generează semnale pentru canalul de acces direct și controlerul de întrerupere.

Dacă dispozitivul este pasiv (joacă rolul unui slave), atunci semnalele vin din exterior către sincronizator. Într-un caz, primește și amplifică, remodelează semnalele de ceas, făcându-le netede de-a lungul conturului în unele clare și clare. În caz contrar, emite un semnal de ceas către un dispozitiv extern. Semnalele blocului responsabil de activarea sau dezactivarea operației sunt generate în funcție de starea unui bit din registrul de control.

Managerul de întrerupere citește mai întâi registrul de steaguri de întrerupere pentru a le reseta. Apoi, citește sau scrie date în registrele de date I²S, cu excepția cazului în care este utilizat un canal de acces direct. După aceea, întreruperea revine.

Opțiunile de configurare setează polaritatea de sincronizare a biților și a cadrelor sincronizatorului. Aceste date ajută sincronizatorul să selecteze modul de funcționare al interfeței audio.

Recepția datelor

Receptorul serial captează clar nivelurile semnalelor care sunt tactate de sincronizator. Mai mult, aceste date sunt trimise bit cu bit de-a lungul liniei de date primite către registrul de deplasare, care sincronizează datele de la sincronizator. După ce registrul de deplasare este stocat, acesta este scris în bufferul registrului de recepție . Mărimea registrului de deplasare este dată de lungimea cuvântului. După ce tamponul de registru înregistrează datele primite, poate avea loc extinderea semnului. Deoarece se folosește în mod evident formatul cu virgulă fixă , este necesar să se extindă semnul la 32 de biți, obținând 12 biți de date. MSB-ul datelor primite este propagat la toate MSB-urile registrului astfel încât numărul corect să fie reprezentat în format fracționar.

Transfer de date

Datele din registru sunt citite într-un circuit de destindere a semnelor, care elimină biții suplimentari, destinde semnul, extrage datele transmise și le scrie în memoria tampon de transmisie. Îngustează semnul din diferite părți și numărul este scris în biții corespunzători ai emițătorului. De îndată ce registrul de deplasare este liber, biții de deplasare sunt scrieți în același timp și încep să avanseze cu un bit, începând cu cel mai mare, transferând date către transmițător, care transferă datele către circuitul de ieșire.

Puterea ceasului

Există un circuit care este responsabil pentru alimentarea cu energie a ceasului dispozitivului. Pentru a face acest lucru, oferă un registru de citire, adică un registru de configurare a porții de putere a ceasului. Dacă dați zero, atunci valoarea sa va deveni unu și semnalul va dispărea. Dacă există o unitate, atunci va apărea un obturator, cu alte cuvinte, puterea ceasului la o unitate nu va fi furnizată dispozitivului. Există două formule - ceas și sincronizare cadru. Fiecare dintre ele ia frecvența care intră în primul semnal de ceas și se împarte la numărul de ori specificat în registrul divizor de ceas sau în registrul divizor de cadre.

Finalizarea I/O

Pentru a finaliza procesul I/O, trebuie să dezactivați secvențial întreruperea, să ștergeți steagurile, să opriți canalul de acces direct și să eliminați alimentarea ceasului.

Vezi și

Link -uri

Note

  1. [ http://www.compeljournal.ru/images/articles/2011_2_8.pdf Capacitățile de sunet ale microcontrolerului STM32F] (link inaccesibil) . compeljournal.ru . Data accesului: 27 octombrie 2011. Arhivat din original pe 7 noiembrie 2013.