I²S

**I²S** (“i-ruut-s”, ingl. *Inter-Integrated Circuit Sound*) on Philips Semiconductors (nüüd ) loodud jadaliidese protokoll heliinformasiooni edastamiseks integraalskeemide vahel.

Protokolli eesmärgiks oli luua standardiseeritud sidestruktuur digitaalse heliga tegelevate süsteemiosade vahel, et suurendada paindlikust eri tootjate vahel. Kuna protokolli spetsifikatsioon hõlmab vaid heliandmete edastust, siis muud juht- ja abisignaalid (näiteks kodeerimisinformatsioon) edastatakse eraldi.

## Ajalugu
*Philips Semiconductors avaldas esmakordse I²S spetsifikatsiooni 1. veebruaril 1986.
*I²S spetsifikatsiooni teine revisjon avaldati 5. juunil 1996. 
* avaldas spetsifikatsiooni kõige uuema revisjoni 17. veebruaril 2022.Revideerimise käigus taasloodi dokument teise revisjoni põhjal, et protokoll vastaks firma nõuetele. Sealhulgas asendati ingliskeelne termin **' terminiga ''"Controller"'' ning **' terminiga *"Target"*.

## I²S ülesehitus
I²S siin koosneb kolmest liinist:
*Taktsignaal – SCK (ingl. *continuous serial clock*)
*Sõnavaliku signaal – WS (ingl. *word select*)
*Andmesignaal – SD (ingl. *serial data*)
Kuna saatja ja vastuvõtja kasutavad sama taktsignaali andmete edastamiseks, peab saatja, kontrolleri (ülemseadme) rollis, genereerima nii taktsignaali, sõnavaliku kui ka edastama andmed.

Kuna I²S spetsifikatsioon ei määra, mis andmeid saadetakse ning mis kiirusega, siis on siini kasutatud ka mitte heliga seotud funktsioonide täitmiseks. 

Keerulisemates süsteemides, kus on mitu saatjat ja vastuvõtjat, võib kontrolleri määramine muutuda keerukaks. Sellistes süsteemides on tavaliselt olemas keskne kontroller, mis juhib digitaalse heli andmevoogu erinevate süsteemiosade vahel.
Saatjad peavad siis andmeid edastama välise taktsignaali alusel, tegutsedes sihtseadmetena.

### Taktsignaal
Seade, mis tekitab taktsignaali ning juhib sõnavaliku signaali on kontroller, ehk ülemseade. Sihtseade, ehk alamseade, peab saadud taktsignaali kasutama oma sisemiste toimingute ajastamiseks.

Kui vaadata, kui palju aega kulub signaalil ühest seadmest teiseni jõudmiseks, siis koosneb see kahest osast:
*ajast, mis kulub välisel taktsignaali jõudmiseks vastuvõtva seadme sisemisse kella;
*ajast, mis kulub selle sisemise taktsignaali põhjal andmete või sõnavaliku signaali väljastamiseks.

Andmeedastuseks esimene viivitus pole väga oluline – see tähendab lihtsalt, et seadmel on rohkem aega andmete õigeks lugemiseks. Oluline on, kui kiiresti andmeid saadetakse ja kui kiiresti teine seade suudab need korrektselt vastu võtta.

Kõik I²S spetsifikatsiooni ajastusnõuded on määratud selle järgi, kui pikk on üks kellaperiood või kui lühike see tohib minimaalselt olla. See võimaldab seadmetel kasutada vajadusel erinevaid andmeedastuskiirusi.

##### Ajastusnõuete tabeli märkused
[1] Taktsignaali periood T peab olema suurem kui Ttr ja Tr, sest nii saatja kui ka vastuvõtja peavad suutma andmeedastuskiirusega toime tulla.
[2] Nii tHC kui ka tLC määratakse vastavalt perioodile T, kuna kontroller peab looma sümmeetrilise taktsignaali.
[3] Sihtseadmena peavad nii saatja kui ka vastuvõtja suutma signaali tuvastada, seega peavad taktsignaali kõrge ja madala taseme kestused olema vähemalt 0.35Tr. Tingimuse täitmisel võib kasutada ükskõik millist taktsignaali.
[4] Kuna saatja viide tdtr ja maksimaalne saatja kiirus Ttr on omavahel seotud, siis võib taktsignaali serva aeglase tõusu korral tekkida olukord, kus kiire saatja tdtr on lühem kui taktsignaali tõusuaeg tRC. Sel juhul muutub hoidmisaeg thtr nulliks või negatiivseks. Saatja peab tagama, et thtr oleks ≥ 0, seni kuni tRC ei ületa minimaalset lubatud väärtust 0.15Ttr.
[5] Selleks, et andmeid saaks edastada taktsignaali langeva servaga, määratakse saatja viide perioodi T ning taktsignaali tõusva serva suhtes.
[6] Andmete seadistusaeg ja hoidmisaeg ei tohi olla lühemad kui vastuvõtja poolt määratud miinimumid.

### Sõnavaliku signaal
Sõnavaliku signaal tähistab kumba helikanalit parasjagu edastatakse: 
*Kui liin on madalas olekus, ehk 0, edastatakse vasakut helikanalit (*channel 1*).
*Kui liin on kõrges olekus, ehk 1, edastatakse paremat helikanalit (*channel 2*).
Liini olek peab muutuma üks taktiperiood enne järgmise sõna kõrgeima biti edastamist. See võimaldab saatjal õigesti sünkroonida andmeedastuse ajastuse ja annab vastuvõtjale aega salvestada vastuvõetud sõna ning ette valmistada sisend järgmiste andmete jaoks.
Liini olek võib muutuda kas taktsignaali tõusval või langeval serval ning signaali kestus ei pea olema sümmeetriline. Vastuvõtja loeb signaali oleku alati tõsuval serval.

### Andmesignaal
Andmed edastatakse täiendkoodis, alustades kõrgeimast bitist, kuna saatja ja vastuvõtja sõnapikkused võivad erineda. 
*Kui vastuvõtja sõnapikkus on suurem, kui edastatav sõna, siis madalamad bitid seatakse 0-ks.
*Kui vastuvõtja sõnapikkus on väiksem, ignoreeritakse ülejäänud madalamaid bitte.
Kõrgeim bitt saadetakse alati üks taktiperiood peale sõnavaliku signaali muutumist.
Saatja võib sünkroonida andmeedastuse kas taktsignaali tõusva või langeva servaga, kuid vastuvõtja loeb andmed alati tõusval serval.

### Pingetasemete nõuded
Sisendtasemed:
*Kõrge taseme sisendpinge (UIH) = 2.0 V
*Madala taseme sisendpinge (UIL) = 0.8 V

Väljundtasemed:
*Kõrge taseme väljundpinge (UH) > 2.4 V
*Madala taseme väljundpinge (UL) IL = –1,6 mA ja kõrge taseme sisendvool IIH = 0,04 mA).

## Vaata ka
* I²C

## Viited

## Välislingid
1. "All You Need To Know About I²S" - Hackaday - Jenny List, 18. aprill 2019