I²C: erinevus redaktsioonide vahel

Eemaldatud sisu Lisatud sisu
Markus.dnd (arutelu | kaastöö)
Markus.dnd (arutelu | kaastöö)
91. rida:
=== Läbirääkimised kasutades SDA-d ===
 
Iga ülemseadeldis jälib siini start ja stop bitte ning ei alusta kunagi oma info vahetust seni kaua kuni teine ülemseadeldis siini töös hoiab. On aga võimalus, et kaks ülemseadeldist alustavad ülekannet samal ajal. Sellisel juhul toimuvad läbirääkimised. Alamseadmete infovahetust saab ka läbi rääkida juhul kui ülemseadeldis adresseerib mitut alamat korraga kuid see pole kuigi tavaline. Erinevalt näiteks [[ethernet|Ethernet-i]] protokollile mis kasutab juhusliku taganemise viivitust ennem uuesti proovimist. I²C-l on deterministlik läbirääkimiste meetod. Iga saatja kontrollib infoliini(SDA) kõrgust ning võrdleb seda tasemetega mida ta ootab. Kui need ei kehti on saatja oma õigused kaotanud ning lõpetab suhtluse.
 
Kui üks saatjatest seab SDA liini ühe peale (Ehk ei tõmba seda ise madalaks) Ning teine saatja seab selle nulli peale (ehk tõmbab mahamadalaks) on tulemuseks olukord kus liin on madal. Esimene saatja näeb, et liin on teistsugune kui ta ootaks ning seega järeldab, et teine sõlm on töös. Esimene sõlm mis sellist erinevust märkab kaotab läbirääkimised ehk lõpetab SDA siini juhtimise. Kui seda tegev on ülemseadeldis siis ka tema lõpetab SCL liini juhtimise ning ootab stoppi. See järel võib ülemseade uuesti proovida kogu sõnumi saatmist. Samal ajal teine sõlm ei ole SDA liinil eeldatud ja päris tasemete vahel mingit erinevust märkanud seega jätkab ülekannet.
 
Kui kaks ülemseadeldist saadavatsaadavad sõnumit kahele erinevale alamale siis see kelle alama aadress on madalam saab alati aadressi tasemel õiguse. Kuna kaks ülemseadeldist võivad sõnumi saata ka samadele alam-aadressitele ning üks aadress vihjab vahepeal mitmele alamale peab läbirääkimisvõimalus alles jääma ka info ülekandmise ajal.
 
Iseenesest toimub läbirääkimine üpris harva, kuid on tarvis korralikuks mitme ülemaga suhtluseks. Samamoodi nagu taktivenitamisega, ei toeta seda kõik seadmeid. Seadmed mis toetavad mitme ülemseadme suhtlust omavad nimetust "Multi-master" e mitme ülemseadme toega.
 
Sellisel üliharuldasel juhul kui kaks ülemseadet saadavad samal ajal identse sõnumi nimetataksetunnistatakse kommunikatsioon õnnestunuks kuid alamseade saab kätte vaid ühe sõnumi. Alamseadmed mis suudavad suhelda mitme ülemaga omavad see tõttu idempotentseid lisakäske.
 
=== Bufferdamine ja Multipleksimine ===