Kasutaja:Kartulas/liivakast

I3C
Venni diagramm I3C pärimuslikusest
Tüüp Jadasiin
Ajalugu
Projekteerija MIPI Alliance
Sensor Working Group
Projekteeritud 2016
Spetsifikatsioon
Käigultühendus Jah
Signaalilülitus CMOS
Siinilaius 1-bit (SDA) eraldi taktsignaaliga (SCL)
Bitikiirus 12,5; 25; 33 Mbit/s vastavalt režiimile
0,4; 1 Mbit/s I²C tagasiühilduvusrežiimis
Protokoll Jadamisi, pooldupleks

MIPI I3C (ingl Improved Inter-Integrated Circuit), samuti tuntud kui SenseWire, on spetsifikatsioon[1], mis defineerib integraallülituste vahelise kommunikatsiooni elektriühendused ning signaalimustrid. Spetsifikatsioon määrab integraallülituste vahelisteks elektrililseks ühenduseks kaks juhet, mida jagavad kõik siinil olevad seadmed, millest üks käitub ülemsõlmena. Ühte juhet (SCL) kasutakse taktsignaali jaoks, mis määrab signaali diskreetimishetked ning teist juhet (SDA) signaali kandmiseks.

I3C spetsifikatsioon projekteeriti mitemete elektroonika- ning arvutiriistavaratootjate poolt koostöös MIPI Alliance-iga (ingl Mobile Industry Processor Interface Alliance). I3C Spetsifikatsioon avaladati MIPI Alliance liikmetele esmakordselt 2017 aasta alguses ning avalikusele sama aasta lõpus.[2][3]

I3C spetsifikatsioon omab mitmeid sarnasusi vanema I²C protokolliga, mis oli de facto standard madala kiirusega kommunikatsiooniks integraallülituste vahel. I3C spetsifikatsioon kasutab samu elektroonilisi ühendusi, on saanud oma nime sellest ning on ka osaliselt tagasiühilduv. See lubab I²C seadmetel olla ühendatud I3C siinil aeglustamata kiiremate seadmete kommunikatsiooni.

Ajalugu muuda

MIPI Sensor Working Group (aasta 2019 oktoobrist edaspidi I3C working group) eesmärgid avalikustati aasta 2014 novembris MEMS Executive Congress-il.[4]

Aasta 2016 detsembris avalikustas Lattice Semiconductor uue I3C võimekusega FPGA iCE40 UltraPlus. [5]

Aasta 2017 detsembris avalikustati I3C 1.0 spetsifikatsioon.[1][6]

Aasta 2020 juunis tõi Renesas Electronics turule I3C multiplekserid ning sisend/väljund laiendid.[7]

Aasta 2020 juulis avaldati, et JEDEC poolt väljatöötatud DDR5 SDRAM kasutab modifitseeritud I3C Basic versiooni.[8]

Eesmärgid ja eelised muuda

I3C spetsifikatsiooni peaeesmärgiks oli luua modernne keskmise kiirusega jadaühendussiin mobiilsete tehnoloogiate, autotööstuse ning värkvõrgu seadmete jaoks.[1] See saavutas mitmeid eeliseid varasemale I²C protokollile:[9]

  • Sama elektriline ühendus, mis lubab ühendada vanemaid I²C alamsõlmi I3C ülemsõlmega
  • Madalam energiatarve
  • Alamsõlm võib lõpetada kommunikatsiooni, mistõttu ei ole sõnumi pikkust algusest vaja teada
  • Katkestused on integreeritud suhtluse sisse ning ei vaja lisakaableid
  • Dünaamiline aadresside jaotus I3C alamsõlmedele ning I²C alamsõlmede staatiliste aadresside toetus
  • Standardiseeritud ühised käsusignaalid (CCC)
  • Käsu järjekorra tugi
  • Mitme ülemsõlmega süsteemidele kindlalt defineeritud protokoll kontrolli üleandmiseks

Versioonid muuda

I3C v1.0 muuda

Avaldatud 2017 aasta detsembris, see spetsifikatsioon on esimene ametlik I3C versioon.

I3C Basic muuda

Avaldatud 2018 aasta detsembris, see spetsifikatsioon on saadaval kõigile läbi RAND-Z litsentsi[10] ning on mõeldud MIPI organisatsiooni mitte kuulutavtele arendajatele ja organisatsioonidele. Selle versiooni eest ei pea tasuma litsentsi- või autoritasusid, kuid on piiratud HDR režiimi ja lisafunktsioonide kasutus.[11]

I3C v1.1 muuda

Avaldatud 2019 aasta detsembris, see spetsifikatsioon on saadaval ainult MIPI liikmetele.[12]

I3C v1.1.1 muuda

Avaldatud 2021 aasta juunis, aegunud "master/salve" (juht/ori) terminoloogiat asendas "controller/target" (kontroller/sihtmärk) nomenklatuur.[1]

Seadmeklassid muuda

 
I3C siini näidisskeem ühe I3C ülem-, kahe I3C alam- ja ühe I²C alamsõlmega

I3C siinil, mis on standardkiiruselises režiimis toetatakse nelja erinevat tüüpi seadet:

  • I3C peamine ülemsõlm
  • I3C teisejärguline ülemsõlm
  • I3C alamsõlm
  • I²C alamsõlm (tagasiühilduvus)

Disain muuda

Elektrilised ühendused muuda

I3C kasutab samu elektrilisi ühendusi kui I²C, millele viidatakse kui SCL (ingl serial clock) ja SDA (ingl serial data). Nende oluliseim vahe on see, et I²C kasutab mõlemal siinil alati avatud kollektoriga väljundit ning selle kiirus on limiteeritud aeglase tõusuaja tõttu. I3C kasutab avatud kollektoriga väljundit ainult tagurpidiühilduvuseks ning kasutab igal teisel võimalusel lükka-tõmba väljundit.

  • SCL on standartne taktsignaal, mida genereerib peamine ülemsõlm andmete ülekandel. Kommunikatsioonis I²C alamsõlmedega on antud taktsignaali täitetegur ligikaudu 50% kuid suheldes I3C alamsõlmedega võib ülemsõlm vahetada kiiremale sagedusele ja/või muuta täitetegurit, et SCL kõrge oleku periood on maksimaalselt 40 ns.
  • SDA kannab jadamisi andmevoogu, mis võib olla genereeritud ülem- või alamsõlme poolt, kuid selle kiirus on reguleeritud ülemsõlme SCL signaaliga. Tagurpidiühilduvuseks I²C protokolliga algavad kõik SDA siini vahendused avatud kollektoriga väljundi režiimis, mis limiteerib kiirust. Saates andmeid I3C sõlmedele vahetab signaali genereeria oma väljundi lükka-tõmba režiimi peale esimesi bitte, et ülemsõlm saaks taktsignaali tõsta 12,5 MHz peale.

Andmepakett muuda

Sarnaselt I²C-le kasutab I3C andmepakette sünkroniseerimiseks. Ühe andmepaketi sees peaksid kõik muutused SDA siinil toimuma, siis kui SCL on madalas olekus. Selle reegli rikkumist kasutatakse standardkiiruse ning tagasiühelduvusrežiimil, et tähistada andmepaketi algust ja lõppu. Andmepakettide vahel hoiab ülemsõlm SCL siini kõrges olekus, sellega peatades kella, samal ajal seatakse SDA signaali generaatorite väljundite impedants kõrgeks, et siini oleks võimalik hoida kõrges olekus läbi toitevooluga ühendatud takisti. SDA liikumist kõrgest olekust madalasse kui SCL on kõrges olekus loetakse START sümboliks, mida tõlgendatakse uue andmepaketi algusena. SDA liikumist madalast kõrgesse olekusse kui SCL on kõrges olekus loetakse STOP sümboliks, mida tõlgendatakse andmepaketi lõpuna.

Mitu järjestikust START signaali ilma vastavate STOP signaalideta kutsutakse korratud stardiks ning võimaldab saata mitu sõnumit ühes andmepaketis.

I²C kommunikatsioonis genereerib START signaali enamasti ülemsõlm, aga I3C kommunikatsioonis on selleks võimelised ka alamsõlmed. Seda kasutatakse erinevates lisafunktsioonides nagu mitme ülemsõlme tugi, käigultühendus ning siinisidesed katkestused.

Üheksas bitt muuda

I²C ja I3C mõlemad kasutavad 9 kellatsüklit, et saata üks 8 bitiline bait, aga nende 9. kellatsükkel täidab erinevaid funktsioone. I²C kasutab viimast tsükli biti, et saata andmete kätte saamise kinnitus saaja poolt. I3C kasutab sama tehnikat I²C alamsõlmedega suheldes ning I3C seadmetega suheldes andmepaketi esimese (aadress) baidi jaoks. Peale esimest baiti kasutatakse kirjutamisel seda paarsusbitina ning lugemisel andmete lõpu märgistusena.

Kirjutamist saab lõpetada ainult ülemsõlm, aga lugemist võib lõpetada nii alam- kui ülemsõlm. Kui alamsõlm seab SDA madalasse olekusse, et märgistada andmete lõppu, siis ülemsõlm vastab STOP või korduva START signaali genereerimisega.

Siini arbitreerimine muuda

Ühe andmepaketi alguses võivad mitu sõlme avaldada soovi kasutada siini. Sel juhul kasutatakse siini arbitreerimist, et määrata millisele sõlmele antakse kontroll siini üle. Nii I²C kui ka I3C puhul kasutavad sõlmed avatud kollektoriga väljundit SDA siinil, et sõlmed, mis seavad oma väljundi madalaks kirjutaksid üle sõlmed, mille väljundid on seatud kõrgeks. Konkureerivad sõlmed jälgivad siini ning edastavad aadressi alustades suurima kaaluga bitist, kui sõlm tuvastab SDA siinil madalat olekut samal ajal edastades kõrget olekut, siis langeb see sõlm konkurentsist välja. I3C puhul kestab see aadressi baidi lõpuni ning siinile jääb kõige madalama aadressiga seade.

Common command codes (CCC) muuda

Kirjutamist reserveeritud aadressile 0x74 kasutatakse I3C spetsifikatsioonis erikäskude täitmiseks. Kõik I3C seadmed peavad olema võimelised vastu võtma ja mõistma sõnumeid saadetud sellele aadressile lisaks nende individiuaalsele aadressile.

Kirjutamine antud aadressile ilma edasiste andmeteta ei oma efekti I3C seadmetel, aga võidakse kasutada arbitreerimise kiirendamiseks.

Kirjutamine antud aadressile koos andmebaidiga aktiveerib vastava erikäsu. Käsukoodid 0-0x7F on adresseeritud kõigile I3C sõlmedele ning sellele võivad järgneda ka käsu spetsiifilised parameetrid. Käsukoodid 0x80-0xFE on adresseeritud kindlatele I3C sõlmedele. Nendele järgnevad korduvad START signaalid ning kirjutamised või lugemised.

High Data Rate (HDR) režiim muuda

Kõik I3C siinil toimuvad suhtlused standardkiiruselises (SDR, ingl Standard Data Rate) režiimis, kuid I3C ülemsõlm võib välja saata "Sisene HDR režiimi" käskluse, mis teavitab kõiki siinil olevaid I3C alamsõlmi, et kommunikatsioon jätkub täpsustatud kõrgkiiruselises (HDR, ingl High Data Rate) režiimis.[13] I3C alamsõlmed, mis ei toeta kõrgkiiruselist režiimi ignoreerivad siinil liikuvat informatsiooni seni, kuni väljastatakse "Välju HDR režiimist" käsklus, mis informeerib alamsõlmesid, et on aeg hakata uuesti jälgima siinil toimuvat. Ülemsõlm teab millised alamsõlmed on võimelised kõrgkiiruselist režiimi kasutama ning ei ürita alustada kõrgkiiruselist režiimi alamsõlmedega, mis seda ei toeta.

Mõned kõrgkiiruselise režiimi variandid on ühilduvad ka I²C seadmetega juhul kui neil on SCL siinil 50 ns pingeimpulsi filter, mis lubab seadmel ignoreerida positiivseid impulsse lühemad kui 50ns. See on I²C spetsifikatsioonist[14], aga pole alati implementeeritud ning osad implimentatsioonid ei ignoreeri korduvaid pingeimpulsse, mistõttu tuleb kontrollida ühilduvust enne kasutamist.[15]

Vaata ka muuda

Viited muuda

  1. 1,0 1,1 1,2 1,3 "MIPI I3C and I3C Basic". mipi.org. MIPI Alliance. 6. jaanuar 2017. Vaadatud 24. aprillil 2022.
  2. "I3C Working Group". mipi.org. MIPI Alliance. 9. jaanuar 2017. Vaadatud 30. aprillil 2022.
  3. "MIPI Alliance releases MIPI I3C sensor-interface specification". electronicdesign.org. Electronic Design. 9. jaanuar 2017. Vaadatud 30. aprillil 2022.
  4. "MEMS/Sensor Interface I3C Rocks". eetimes.com. EE Times. 11. detsember 2014. Vaadatud 30. aprillil 2022.
  5. "Lattice gives iCE40 more power, I/O and memory". electronicsweekly.com. Electronics Weekly. 12. detsember 2016. Vaadatud 1. mail 2022.
  6. "MIPI makes market push for I3C sensor interface". electronicsweekly.com. Electronics Weekly. 14. detsember 2017. Vaadatud 30. aprillil 2022.
  7. "Renesas Introduces New I3C Bus Extension Products". renesas.com. Renesas. 4. juuni 2020. Vaadatud 30. aprillil 2022.
  8. Rajesh Bhaskar (29. juuli 2020). "MIPI I3C Basic in JEDEC DDR5: A Sum Greater Than Its Parts". mipi.org. MIPI Alliance. Vaadatud 1. mail 2022.
  9. Michael Joehren. "MIPI I3C TECHNOLOGY AN INTRODUCTION TO MIPI I3C" (PDF). nxp.org. NXP. Vaadatud 30. aprillil 2022.
  10. "MIPI I3C Basic v1.1.1 Download Page". mipi.org. MIPI Alliance Blog: The Wires Behind Wireless. 11. detsember 2018. Vaadatud 30. aprillil 2022.
  11. Ken Foust. "MIPI Alliance Delivers New I3C Basic Specification". mipi.org. MIPI Alliance. Vaadatud 30. aprillil 2022.
  12. "MIPI I3C v1.1 Utility and Control Bus Strengthens Upgrade Path for I2C Implementers". mipi.org. MIPI Alliance. 15. jaanuar 2020. Vaadatud 30. aprillil 2022.
  13. "I3C Protocol: Understanding and Debug". prodigytechno.org. Prodigy Techno. 15. detsember 2020. Vaadatud 30. aprillil 2022.
  14. "UM10204 I²C-bus specification and user manual" (PDF). nxp.com. NXP. 1. oktoober 2021. Vaadatud 1. mail 2022.
  15. "8-Kbit serial I²C bus EEPROM" (PDF). st.com. STMicroelectronics. Oktoober 2017. Vaadatud 1. mail 2022.

Välislingid muuda

MIPI I3C Basic versioon