Forum: Mikrocontroller und Digitale Elektronik Unterschied Defintion I²C und SPI


von Taylor (Gast)


Lesenswert?

Könnte mal jemand den Unterschied zwischen den Definitionen I²C und SPI
erklären ? Vom Prinzip sind doch beide gleich. Ist das nur
Herstellerbezogen ? Ich mein MICROwire gabs da auch noch oder ?

gruß Taylor

von Simon Küppers (Gast)


Lesenswert?

Neee, die sind nich gleich. I²C hat 2 Leitungen (SDA, SCL. Data+Clock)
und SPI hat 3 Leitungen (MISO, MOSI, CLK. Master-In-Slave-Out,
Master-out-Slave-In, und Clock)

Desweiteren ist das I²C Protokoll seeeehr anders aufgebaut. Wenn man
bei SPI 8 Bits rüberschiebt, wird zuerst das MSB (oder LSB) an einen
Pin angelegt, und dann geclockt, dann das nächste, clock...8mal. Und
die Daten sind rüber.

Bei I²C jedoch gibts noch Start, Adress, und Stoppbytes.

von Taylor (Gast)


Lesenswert?

AAAso,
war immer davon ausgegangen das die ähnlich funtionieren. Danke für die
Info.

von KoF (Gast)


Lesenswert?

ein weiterer unterschied ist die geschwindigkeit!

i²c(twi) highspeed = 400khz
wogegen einige spi bauteile mit über 10 MHz arbeiten.

von Michael Rubitschka (Gast)


Lesenswert?

Ich habe immer gerne I2C verwendet, weil das ein sehr unkritisches
System ist und man den Takt selber bestimmt.
Bei SPI oder Onewire, muß man jedoch einen bestimmten Takt einhalten,
da
man ja nur eine Leitung hat und der Chip ja wissen muß wann ein Bit
aufhört und das nächste beginnt. Ist doch logisch oder ?
Bei I2C ist eine Leitung die Information und die Andere der Takt.
Bei modernen ICs mit Hardware SPI ist das ganze jedoch wieder fast so
einfach wie I2C.
Hoffe das hilft Dir.

LG
Michael

von dds5 (Gast)


Lesenswert?

Bei I2C muss jeder Baustein am Bus eine eigene Adresse haben über die er
sich angesprochen fühlen darf.
SPI braucht dagegen je eine ChipSelect Leitung vom Master zu jedem
einzelnen (Slave-) Baustein.

Dieter

von Ratber (Gast)


Angehängte Dateien:

Lesenswert?

@Taylor

Und nocht einer:

SPI ist im Groben Technisch nix anderes als eine variante einer
normalen RS232 Seriellen.
Statt RX/TX haste MISO/MOSI und Clock.


I2C ist dagegen ein "Einfaches" Master/Slave Bussystem mit
Adressierung und mehreren möglichen Mastern.
Zu den Standardmäßigen SDA und SCL kommt noch eine Optionale INT
(Interupt) Leitung dazu mit der Systemevents dargestellt werden
können.

Im Anhang mal ein älteres Dokument zu den Spezifikationen.




@Kof

Nicht ganz richtig.

Normalmode 100kHz
Fastmode   400kHz
Hsmode     3.4 MHz

von Taylor (Gast)


Lesenswert?

Danke erstmal @all. Mitterweile bin ich doch etwas fitter geworden und
meine ganzen SCI und SPI Schnittstellen laufen einwandfrei. Hardware
SPI ist ja wirklich, wenn man es einmal initialisiert hat, ja fast
schon peinlich einfach.

@Michael, warum eine Leitung ? Habe bei SPI doch Daten und Taktleitung
getrennt vonander.

gruß Taylor

von Mark Hämmerling (Gast)


Lesenswert?

Salve,

@Ratber:
naja, abgesehen davon, daß sowohl RS232 als auch SPI sehr simpel sind,
gibt's nicht wirklich viele Gemeinsamkeiten (gut - eine: sie sind
beide seriell ;) ). Denn:

RS232 ist asynchron, SPI ist synchron.
RS232 braucht daher Start/Stop-Bits, SPI braucht ggf. ein Framing über
ne zusätzliche Leitung (Slave Select).
RS232 funktioniert im Halb- oder Vollduplex (RX/TX unabhängig), SPI
läuft zwangsläufig im Vollduplex (nur 1 Clock).
RS232 ist Point-To-Point (gleichberechtigt), SPI ist Master/Slave
(Rollenverteilung erforderlich).

Nur um pädagogischen Mißverständnissen vorzubeugen. :)

Mark

von Ratber (Gast)


Angehängte Dateien:

Lesenswert?

@Mark

Tja,leider hast du bei all deinen pädagogischen Aufzählungen über
kleinigkeiten den allerwichtigsten Unterschied ,auf den ich ja
agesprochen habe,weggelassen.

SPI kennt keine Adressierung und I2C schon.

Unter diesem Aspekt ist SPI wie die alte 232 nur eine verbesserte
serielle verbindung zwischen weiterhin zwei Geräten.

will man mehrere Slaves anschließen dann sind weitere Leitungen fällig
(Siehe Skizze im anhang) die man auf unterschiedliche weise Generieren
kann.(zb. Slave dient als vorgeschobener Busmaster was aber eine nicht
standardisierte Protokolländerung und damit Insellösung darstellt)

von Mark Hämmerling (Gast)


Lesenswert?

Salve,

@Ratber:
natürlich, im Vergleich zu I²C ist die Ähnlichkeit von RS232 und SPI
schon nachvollziehbar (Point-To-Point vs. Bus). Ich wollte wie gesagt
nur Verständnisproblemen vorbeugen. Das war als Ergänzung zu verstehen,
nicht als Korrektur. :)

Mark

von ---- (Gast)


Lesenswert?

Nein, das war ganz klar eine Korrektur - und zwar eine absolut
berechtigte Korrektur!
Denn...:
> SPI ist im Groben Technisch nix anderes als eine variante einer
> normalen RS232 Seriellen. Statt RX/TX haste MISO/MOSI und Clock.
...ist inhaltlich falsch. (Auch im Kontext oben wirds nicht richtiger,
wenn mir jemand vorwerfen will, daß das Zitat aus dem Zusammenhang
gerissen sei).

Mark, bitte keine Rückzieher oder Relativierungen/Entschuldigungen.
Wenn Ratber statt den Fehler einzugestehen ein (kleines) Gegengeschütz
auffährt, so ist das argumentatorisch dennoch nicht korrekt.

----, (QuadDash).

von Mark Hämmerling (Gast)


Lesenswert?

Salve,

nun, ich denke, er sprach damit wirklich nur den Unterschied zwischen
Bus und Point-To-Point an. Daß SPI eine Variante von RS232 ist,
stimmt natürlich nicht. Denn beide arbeiten völlig unterschiedlich
(Hauptunterschied: synchron/asynchron).
Auch kann ich nicht ganz nachvollziehen, was an SPI "verbessert" sein
soll (gegenüber RS232?). Die beiden stehen doch technisch und
anwendungsseitig in gar keinem Zusammenhang bzw. in Konkurrenz.

Ansonsten verstehe ich aber zumindest im Nachhinein, was Ratber damit
sagen wollte. :)

Mark

von Schoaschi (Gast)


Lesenswert?

hat jemand vl so eine spezifikation vom SPI bus? bzw gibts sowas
überhaupt? weis jemand eine gute seite wo das (wenn möglich auf
deutsch) erklärt wird? alles genau mit dem timing und vielen bildern.
wäre euch dankbar,denn ich könnte das für die ausarbeitung einer
maturafrage benötigen.

mfg schoasch

von Mark Hämmerling (Gast)


Lesenswert?

Salve,

in den AVR-Datenblättern steht eigentlich alles, was man über SPI
wissen muß. :)

Mark

von Ratber (Gast)


Lesenswert?

@ ----


Welchen Fehler sollte ich mir den Eingestehen ?

Ich sagte I2C ist Adressierbar und SPI bzw. 232 nicht.
Desweiteren noch das beide auf diesem Hintergrund Verwand sind und
sonst garnichts.


PS:

Du liebst es mir permanent in die Fersen zu beißen ja ?
Naja,wenns nicht für die Waden reicht ist das dein Problem hehehe

Ich fühle mich geschmeichelt das du meine Schritte hier im Forum so
aufmerksam verfolgst und kommentierst.


@Mark

Meine Kommentar bezieht sich im wesentlichen auf Taylors ersten Post.

Deswegen ist "im Prinzip" SPI zu 232 ähnlicher als zu I2C,Can,FB,SMB
usw.

Ob Synchron oder nicht ist für mich eher ein untergeordneter Punkt wie
beim PKW der Motor (Otto,Wankel oder Elektro.Irgendwas dreht sich und
die karre fährt).


Naja,egal.

Wir wissen ja nun beide was du und ich gemeint haben nur blutet mir mal
wieder die Ferse aber man gewöhnt sich an fast alles. ggg

von Mobis (Gast)


Lesenswert?

Ganz zuteffend, Kinderforum

von mmerten (Gast)


Lesenswert?

Bevor hier immer mit den diversen Begriffen RS232 oder korrekterweise
EIA232E rumgeworfen wird, nicht zu verwechseln mit der
Standard-Seriell-Schnittstelle die ja nur eine Möglichkeit darstellt,
sollte man die einschlägigen Normen evtl. mal genauer lesen.
SPI ist mit Sicherheit näher am EIA232E Standard (synchron evtl.
select) als I²C ähnlich, aber doch sehr weit von der seriellen
Standard-
Asynchron-Schnittstelle eines PC entfernt.

von ---- (Gast)


Lesenswert?

> Welchen Fehler sollte ich mir den Eingestehen ?
Naja, vielleicht sollte ich es etwas relativieren und es
(unglücklich/verschuldetes) provoziertes Missverständnis nennen. Aber
du weißt schon um was es geht.

> Du liebst es mir permanent in die Fersen zu beißen ja ?
Hm, ist mir noch garnicht so bewusst aufgefallen, daß es "öfters"
dich trifft - muss ich doch glatt mal die Forumssuche bemühen.
Aber ich möchte in solche Punkte nicht gross nachbohren - eine Aussage,
ggf. eine weitere Konkretisierung, das sollte es dann von meiner Seite
gewesen sein.
Ok, dann jetzt hier die Konkretisierung: ;-)
Erklärungsversuch: Vielleicht gefällt mir nicht, daß du in deiner
Vortragsreihe "Ratber erklärt die Welt" hier Thesen aufstellst und
wenn jemand einen Punkt kritisiert (ich meine nicht mich), du darauf
dann nicht angemessen konstruktiv reagierst, sondern Tendenzen zum
Gegenschlag zeigst.
Aber natürlich darfst du dich geehrt fühlen, daß ich gerade dich
kritisiere - bei anderen vielen anderen "Kommen- und Gehen"-Postern
erspare ich mir das. Du hast also schon einen gewissen Status bei mir.
;-)

> Ob Synchron oder nicht ist für mich eher ein untergeordneter Punkt
Bei anderen eben nicht. Toleriere deren Meinung, zumal sie fachlich und
von der Einordnung/Gewichtung korrekt ist.

> Naja,egal.
Genau, deshalb: Sind wir wieder Freunde? :)

----, (QuadDash).

von Ratber (Gast)


Lesenswert?

Hehehe

Jaja,wie ich schon sagte. '-)


> Aber du weißt schon um was es geht.

In meinem Sinne : Ja
In deinem : Nein.

>Erklärungsversuch: Vielleicht gefällt mir nicht, daß du in deiner
>Vortragsreihe "Ratber erklärt die Welt" hier Thesen aufstellst und
>wenn jemand einen Punkt kritisiert (ich meine nicht mich), du darauf
>dann nicht angemessen konstruktiv reagierst, sondern Tendenzen zum
>Gegenschlag zeigst.


Von dir bekomme ich hir im Topic nur die Schützenhilfe gegen mich und
das Mark sich weren solle.
Zum Thema kam da von dir allerdings garnichts obwohl ich dich
aufgefordert habe mich zu korrigieren wenn ich denn dann so falsch
liegen sollte.

Wie siehts denn nun aus mit "----, (QuadDash) erklärt die Welt" ?
Wer die Aussage anderer anzweifelt sollte es besser erklären können.


>Du hast also schon einen gewissen Status bei mir.
Jaja,das merke ich und darauf spreche ich ja auch an. '-)


>Bei anderen eben nicht. Toleriere deren Meinung, zumal sie fachlich
>und von der Einordnung/Gewichtung korrekt ist.

Sorry,aber das hat nichts mit Meinung zu tun.
Taylor hat um die Prinzipiellen unterschiede nachgefragt und
"Prinzipiell" betrifft wohl grundsätzliche Ujnterschiede.

Wenn ich meine Meinung kundtue dann steht es auch dabei.






>Genau, deshalb: Sind wir wieder Freunde? :)


Nö,so billig kommste mir nicht davon,da bin ich zickig wie ne Jungfrau
vom ersten mal gg
Du hast meine Aussage ja deutlich kritisiert ,ohne auch nur einen
einzigen Punkt zu liefern,also gehe ich davon aus das du es besser
weißt.



Also nochmal für dich im Klartext:

Ich sage weiterhin SPI,232 unterscheiden sich zu i2C in dem Punkt das
I2C eine Adressierung der Slaves kennt !!

Was ist daran falsch bzw. warum sollte bei den Grundsätzlichen
Unterschieden die Gewichtung mehr auf "Speed" als "Protokoll"
liegen ?

Gib mal eine Einsicht in deine Argumente zum Thema !

von DirkD (Gast)


Lesenswert?

Hi!

Wenn Englisch kein Problem darstellt, findet man unter

http://www.embedded.com/story/OEG20020528S0057

einen Vergleich zwischen den seriellen Protokollen.

@Ratber:
Mit Deiner Aussage "SPI ist im Groben Technisch nix anderes ...."
provozierst Du aber auch Reaktionen. Da könnte man auch sagen, daß SPI
nix anderes ist als I2C, da beide asynchron seriell sind. Oder Linux
nix anderes als Windows, Mac nix anderes als x86, PIC nix anderes als
AVR...

   Dirk

von Ratber (Gast)


Lesenswert?

>Mit Deiner Aussage "SPI ist im Groben Technisch nix anderes ...."
>provozierst Du aber auch Reaktionen..............................

Was soll ich den Provozieren ?

Ich habe geschrieben das SPI und 232 ähnliucher sind als SPI und I2C
weil es eben bei I2C die Adressierung gibt und weil SPI und 232 sich
über 2 Leitungen auf 2 Richtungen (RX/TX und MISO/MOSI)unterhalten.

Das sehe ich wesentlicher als bei der Synchronität oder der Nettorate
zu unterscheiden.
(Da könnte ich übrigens 232-Highspeedvarianten anderer Hersteller
anführen aber die sind eben nicht gängig)

Wenn mich einer nach dem Unterschied zwischen Panzer und PKW fragt dann
nenne ich bestimmt nicht Diesel und Benzin sondern eher
Kettenantrieb,Größe,Gewicht,Allgem.straßenzulassung und Fahrhändling.


Was mich etwas nervt ist das bei fast jeder "Saloppen" Aussagen wie
"PKW haben 4 Räder" immer gleich einer in den "Korintenkacker- bzw.
Beamtenmodus" schalten muß und zb. mit einem "Aber da gibt es noch
die kleinen Italienischen dreirädrigen....." kommt.
Damit hat er ja genaugenommen recht aber bei über 99% Pkw mit 4 Rädern
lasse ich die Sonderformen getrost unterm Tisch.

Komisch:
Im RL habe ich diese Probleme nicht.
Kann es daran liegen das sich mein gegenüber dort nicht so ohne
weiteres verstecken kann und keine besondere Anonymität genießt ?

Noch komischer ist wenn man dann eine Gegendarstellung fordert und man
immer nur Antworten bekommt die auf alles im Text eingeht aber eben
nicht auf die Forderung selber.

In einigen Foren endet sowas dann auch schonmal darin das einer
plötzlich anfängt die Rechtschreibung des gegenübers zu kritisieren was
ja nun wirklich nebensächlich ist.

Das macht echt keinen Spaß.

Machen wir es doch einfach mal so:


"I2C,232,422,1W,2W,K-Bus,Can,Sata,SPI,USB,FW.....usw. ist alles das
gleiche weil Seriell !"


Ich könnt mein linkes Ei drauf wetten das im Laufe der Diskussion um
diese Aussage garantiert einer drauf kommt das ich "CAN" falsch
geschrieben oder vieleicht ein bussystem erwähnt habe das es so nicht
gibt.


Das ewige hin und her zwischen präziser und unpräzier Diskussion nervt
gewaltig.
Ich bevorzuge eher mal Allgemein anzufangen und dan später ,nach
klärung der Grundlagen,in die Tiefen abzusteigen.

Naja,mal sehen wie es weitergeht.

von Ratber (Gast)


Lesenswert?

Hoppla,noch was vergessen.


Danke für den Link.

Is schön erklärt.


Jetzt müßte man sich nur noch darauf einigen was als
Unterscheidungskriterien in betracht kommt.

von Ratber (Gast)


Lesenswert?

Hmm,Korrektur letzter Satz.:

Jetzt müßte man sich nur noch darauf einigen was als
Unterscheidungskriterium in betracht kommt.
                     ---

von DirkD (Gast)


Lesenswert?

>Im RL habe ich diese Probleme nicht.

Wirklich? Würde mich wundern ;-) (Nicht wegen Dir, sondern aus anderer
persönlicher Erfahrung)

Ein Punkt ist, daß Du mit Deiner Aussage auch eine persönliche Meinung
ausdrückst.

Für Dich ist die Unterscheidung synchron/asynchron nicht so wichtig,
wie z. B. Adressierung. Ist ok. Aber es gibt immer jemand der eine
andere Priorisierung hat.

Aber wir sollten das jetzt beenden. Der OP ist jetzt hoffentlich
schlauer...

von Peter Dannegger (Gast)


Lesenswert?

SPI ist ein simples 8Bit-Schieberegister-Protokoll (wie z.B. 74HC165,
74HC595).

Zum Schieben sind 3 Leitungen erforderlich (Data in, Data out, Takt).

Um nun das Ende eines Bytes zu signalisieren ist eine 4. Strobe-Leitung
erforderlich.

Sind mehrere SPI-Slaves (Schieberegister) anzusteuern, gibt es 2
Möglichkeiten:

1. man hat für jeden Slave eine separate Strobeleitung
2. man hat eine gemeinsame Strobeleitung und schaltet alle
Datenleitungen der Slaves hintereinander und schiebt immer alle Bytes
hintereinander rein bzw. raus.


Bei ner UART sieht es nun vollkommen anders aus. Oftmals wird da im
9Bit-Mode über ein Adreßbyte der Slave ausgewählt. Das 9.Bit
unterscheided also nur zwischen Adreß- oder Datenbyte.


I2C (=TWI) ist nun wieder vollkommen anders.
Es gibt 2 Leitungen, die permanent bidirectional sind. Dadurch ergibt
sich der Vorteil der echten Multimasterfähigkeit und
Kollisionsvermeidung (Arbitration). Auch gibt es keine Datenverluste,
da der langsamste Slave das Tempo bestimmt (SCL-Stretching).
Die Adressierung erfolgt immer nach der Startbedingung.



Peter

von Taylor (Gast)


Lesenswert?

Danke Peter für die gute Aussage und ich möchte bitten hier zu
schließen. Die gestellte Frage wurde mehr als beantwortet und alles
andere ist hier nicht mehr förderlich.

gruß Taylor

von Ratber (Gast)


Lesenswert?

@Dirk

>Wirklich? Würde mich wundern ;-) (Nicht wegen Dir, sondern aus
anderer
>persönlicher Erfahrung)

Ja hier (Damit ist das Internet allgemein gemeint) kann sich doch jeder
verstecken und tarnen wie er will.
Ich könnte jetzt auch unter anderem Namen (auch anderer IP .Kein akt
sowas) und anderer Schreibweise mir selber zustimmen um eine
Meinungsmehrheit vorzutäuschen ohne das jemand da was beweisen könnte.

Im RL geht das kaum da der Gesprächspartner mir gegenüber sitzt,steht
oder sonstwie lokalisierbar ist.
Würde ein Arbeitskollege in dieser Art ausweichen dann kann ich bei ihm
direkt und ohne ihm eine Denkpause zu gönnen nachhaken.

Hier geht das nicht.
Hier kann ich meine Antwort Taktisch vorbereiten und genau das ist das
Problem in Internet denn diese Praxis ist gängig.(Leider)

Soll aber jetzt nicht auf jemanden persönlich gemunzt sein (Traurig das
ich das jetzt erwänen muß aber sonst kackt wieder einer rum)


>Ein Punkt ist, daß Du mit Deiner Aussage auch eine persönliche
>Meinung ausdrückst.

Ja,sicher drücke ich hier auch meine Meinung aus.
Das tut jeder der sich irgendwie unterhält und hier Postet.
Auch du gerade.

Mir geht es,um nochmal aufs Thema zu kommen, darum welche Kriterien den
nun als "Wesentliches" Unterscheidungsmerkmal genommen werden sollen.

1.Geschwindigkeit ?
2.Duplex ?
3.Adressierung ?
4.Leitungslänge ?
5.Synchronität ?

Was ist denn dann Objektiv bzw. wer sagt was wirklich als Kriterium
gilt ?

Um wieder aufs Thema zu kommen:

SPI,232 und I2C

SPI und I2C sind Synchron ,232 nicht
Dagegen sind SPI und 232 Vollduplex und I2C nicht.
Und bei der Zahl des Types ergibt sich wieder ein anderes Bild da I2C
eine Adressierung auf dem Bus kennt ,SPI es mit CS-Leitungen macht
(Keine Echte Lösung finde ich) und die 232 ebenso Arbeiten könnte (Sind
nur extraports nötig oder zb.  Alles ins Schieberegister. is aber wieder
zu Speziell)

Also herausstechend ist für mich immernoch Point2Poin und eben
Adressierbarkeit wie bei CAN&Co


Ja,bleibt immernoch die Frage im Raum,welches Kriterum zur
Unterscheidung herangezogen wird.  '-)

Beitrag #1458650 wurde von einem Moderator gelöscht.
Beitrag #6073774 wurde von einem Moderator gelöscht.
Beitrag #6073782 wurde von einem Moderator gelöscht.
Beitrag #6073896 wurde von einem Moderator gelöscht.
Beitrag #6073897 wurde von einem Moderator gelöscht.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.