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
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.
AAAso, war immer davon ausgegangen das die ähnlich funtionieren. Danke für die Info.
ein weiterer unterschied ist die geschwindigkeit! i²c(twi) highspeed = 400khz wogegen einige spi bauteile mit über 10 MHz arbeiten.
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
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
@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
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
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
@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)
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
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).
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
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
@ ---- 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
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.
> 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).
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 !
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
>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.
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.
Hmm,Korrektur letzter Satz.: Jetzt müßte man sich nur noch darauf einigen was als Unterscheidungskriterium in betracht kommt. ---
>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...
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
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
@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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.