Gibt es eine Referenz oder was ist die Erklärung dafür, dass I²C und SPI nur Protokolle der physikalischen Schicht im OSI-Modell sind (ich weiß, dass dieses Modell für die Kommunikation und möglicherweise nicht genau für Bordbusse bestimmt ist) oder ist das Protokoll der Sicherungsschicht darin definiert? ihnen?
Wie sieht es mit dem CAN-Protokoll aus?
Beide. Der OSI-Stack ist so abstrakt, dass praktisch jedes in der Industrie verwendete Protokoll höchstwahrscheinlich praktische Überlegungen enthält, die mehrere Ebenen effektiv implementieren.
I2C arbeitet in Bezug auf definierte Transaktionen mit Arbitrierung und Handshaking, sodass es vernünftigerweise sowohl als Datenverbindungsschicht als auch als physische Schicht betrachtet werden kann, obwohl es nicht unbedingt gut zum OSI-Muster passt. SPI ist nicht wirklich ein Standard, sondern ein Begriff, der verwendet wird, um eine Vielzahl von Kommunikationsdesigns zu beschreiben. Als solches qualifiziert es sich kaum als Protokoll der physikalischen Schicht.
Sowohl mit SPI als auch mit I2C kann man zu höheren Schichten aufsteigen, wenn man seinen Fokus auf bestimmte Chipstile beschränkt. Zum Beispiel gibt es einen gemeinsamen Standard für I2C-EEPROMs bis zu 2 KByte und einen anderen, der für I2C-EEPROMs bis zu 512 KByte anwendbar wäre (obwohl ich noch keine so großen Geräte gesehen habe, die ihn verwenden). Solche Standards definieren nicht nur, wie Transaktionen auf dem Chip durchgeführt werden, sondern legen auch fest, was der Chip mit den darin enthaltenen Daten macht.
Nichts so explizites. Sie können versuchen, bestimmte Teile des I²C-Protokolls für verschiedene OSI-Schichten zu definieren, aber wie Sie sie definieren und wie jemand anderes sie definiert, würde nicht übereinstimmen (fragen Sie fünf Ingenieure und erhalten Sie sieben verschiedene Antworten).
Meine Meinung dazu ist, dass die physische Schicht die einfachste ist. I²C erfordert zwei Busleitungen mit offenem Kollektor, die mit Pullup-Widerständen mit dem Wert X an V CC angeschlossen sind und auf die Kapazität Y pF begrenzt sind (wobei X und Y basierend auf der gewünschten Frequenz des I²C-Busses berechnet werden). Die I²C-Geräte sollten die Leitung im Ruhezustand freigeben und die Leitung nur bei aktiver Kommunikation auf Low ziehen. Das ist die physische Schicht.
Die Datenschicht ist etwas komplexer. I²C-Master, insbesondere in einem Multi-Master-System, sollten beim Kommunikationsversuch prüfen, ob die Leitungen auf Low gezogen sind, wenn frei, versuchen Sie die Kommunikation, prüfen Sie die Leitung erneut. Wenn es zu irgendeinem Zeitpunkt unerwartet niedrig ist, befolgen Sie die Schlichtungsprotokolle . I²C-Slaves (und -Master) können auch Clock-Stretching implementieren und die Kommunikation steuern, indem sie Taktimpulse verhindern.
Physische und logische Adressierung fallen sowohl unter die Datenverbindungsschicht als auch unter die Vermittlungsschicht, wenn Sie Busexpander/Multiplexer/Puffer/Hot-Swap-ICs einbeziehen. I²C hat nicht wirklich eine Netzwerktopologie oder ein IP- Äquivalent, da Busexpander eine nicht-Spezifikations-Hacky-Lösung sind, die Hersteller entwickelt haben.
Leon Heller
Michelle
Michelle
Olin Lathrop