Ein serieller Bus kann effizienter sein als der herkömmliche parallele Bus. Es gibt jedoch Herausforderungen, den seriellen Datenfluss im Kontext der Taktung darzustellen und zu verstehen. Diese Schwierigkeiten können durch die Verwendung der Mehrkanalfunktionen fortschrittlicher Oszilloskope wie der Tektronix-Geräte der Serie 3000 behoben werden.
Der Schlüssel zum Verständnis und zur Interpretation der seriellen Daten- und Taktströme liegt im Verständnis des Innenlebens jedes einzelnen Datenbustyps. Betrachten Sie insbesondere den SPI-Bus (Serial Peripheral Interface). Es ähnelt dem I2C-Bus, aber es gibt signifikante Unterschiede. Beide sind um Master / Slave-Architekturen organisiert. Aber die Verkabelung zwischen Master und Slaves ist radikal anders.
Typischerweise arbeitet SPI mit einem einzigen Master-Gerät und einer Anzahl von Slaves, obwohl nur ein Slave möglich ist. Die Leitungen sind wie folgt:
• Eine serielle Taktleitung verläuft vom Master zu jedem Slave. Der Takt existiert im Master und ein Rechtecktaktsignal wird an den aktiven Slave weitergeleitet. Die Taktfrequenz wird vom Benutzer gewählt, darf jedoch nicht schneller sein als für das langsamste Slave-Gerät zulässig. Daher sollten einzelne Slave-Datenblätter bei der Einrichtung des Systems konsultiert werden.
* Master-Ausgang, Slave-Eingang (MOSI). Dies ist die Leitung, die die vom Master übertragenen Daten an den aktiven Slave übermittelt. Die Leitung läuft zu allen Slaves, aber diejenigen, die nicht aktiv sind, ignorieren sie.
* Master-Eingang, Slave-Ausgang (MISO). Diese Leitung übermittelt Daten vom aktiven Slave an den Master. Da es sich bei MOSI und MISO um separate Leitungen handelt, können Daten in beide Richtungen gleichzeitig übertragen werden, ohne dass eine der beiden Richtungen beeinträchtigt wird.
* Slave auswählen (SS). Zu jedem Slave wird eine eigene Leitung geführt. Normalerweise liegt beim Einschalten des Systems eine logisch hohe Spannung vom Master am SS-Pin jedes Slave-Geräts an. Um einen Slave zu aktivieren, schaltet der Master die Spannung auf dieser SS-Leitung auf logisch niedrig. Diese Methode der Slave-Auswahl tritt an die Stelle des Adressierungskonzepts, wie es im I2C-Bus implementiert ist.
Der SPI-Bus wird manchmal als Dreidrahtschema oder Vierdrahtschema bezeichnet, wenn Sie eine SS-Leitung für einen einzelnen Slave zählen. Unnötig zu erwähnen, dass jeder dieser Drähte tatsächlich eine Zweidrahtschaltung ist, so dass eine Erdungsrückleitung erforderlich ist, die jedoch in der numerischen Nomenklatur nicht berücksichtigt wird. Ein einziger geerdeter Leiter reicht aus, um alle diese Stromkreise zu vervollständigen.
Das Tektronix MDO Demo 1 Board bietet zahlreiche Ausgänge, einschließlich I2C- und SPI-Bustakt- und Datensignalen. Es ist für die Oszilloskope der Tektronix MDO4000-Serie vorgesehen, funktioniert aber auch gut mit Instrumenten der MDO3000-Serie.
Die Tektronix MDO Demo 1-Platine wird über ein ungewöhnliches T-Typ-USB-Kabel mit zwei USB-Typ-A-Anschlüssen an einem Ende mit Strom versorgt. Sie stecken in die beiden USB-Steckplätze des Oszilloskops. Der Grund dafür ist, dass der Strombedarf des Demo-Boards 1 so groß ist, dass bei Verwendung eines Standard-USB-Kabels ein einzelner USB-Ausgang am Oszilloskop überlastet würde.
Eine rote und zwei grüne LEDs zeigen den Empfang von Strom vom Oszilloskop an und dass die Platine betriebsbereit ist. Auf der Platine befinden sich zahlreiche Ausgangsklemmen. Sie sind geeignet für sonde verbindung mit sonde haken tipps und boden rückkehr blei alligator clips.
Zur Anzeige von SPI-Bussignalen werden TPP 1000 10:1-Tastköpfe an die analogen Kanaleingänge Eins, Zwei und Drei angeschlossen. Alle boden rückkehr führt verbinden zu einem der bord der boden terminals, und die drei sonde tipps sind eingehakt auf die SPI uhr, MISO und MOSI signal terminals. Wie immer sollten die Erdungsrückleitungen zuerst angeschlossen werden, bevor die Sonde Spitzen.
Man könnte einen vierten Oszilloskopkanal verwenden, um ein Slave-Select-Signal anzuzeigen. Da es sich bei diesem Signal jedoch nur um eine logisch hohe oder logisch niedrige Spannung handelt, kann es an beiden Enden des SPI-Busses mit einem standardmäßigen hochohmigen Multimeter oder einer Logiksonde überprüft werden.
Das Oszilloskop zeigt dann die SPI-Daten und Taktsignale an. Mit den Skalentasten Channel One, Channel Two und Channel Three, gefolgt von Autoset, können die Impulse zur besseren Lesbarkeit vergrößert und die Erfassung gestoppt werden, um die Anzeige stabiler zu machen. Mit den Wave Inspector-Reglern können Sie die Leiterbahnen schwenken und zoomen, um sie genauer zu betrachten. Dann ist es eine einfache Sache, Punkte auf der Uhr und den Datenströmen zu vergleichen, um den logischen Zustand (hoch oder niedrig) zu einem beliebigen Zeitpunkt zu ermitteln. Der vertikale Cursor, der durch Drehen des Knopfes a bewegt wird, ist hilfreich, um zu sehen, wie sich diese Spuren in Bezug auf die Zeit ausrichten.
Wir haben gesehen, wie SPI serielle bus daten und uhr signale können visualisiert werden mit einem oszilloskop. Die Sonden können mit ähnlichen Anschlüssen in einem funktionierenden (oder nicht funktionierenden) elektronischen Gerät verbunden werden. (Stellen Sie sicher, dass Sie die Akquisition zurückdrehen, um sie auszuführen.)
Im Gegensatz zu I2C gibt es keinen einzigen Standard für SPI. In den 1980er Jahren wurde es von Motorola für den Mikrocontroller der Serie 68000 entwickelt. SPI ist eher ein De-facto- als ein offizieller Standard, und als solcher bleibt er organisch und unterliegt Änderungen.
Andere Hersteller haben SPI mit Variationen eingeführt. Bei der Implementierung des Designs ist es daher notwendig, Datenblätter zu konsultieren. Beispielsweise benötigen einige Slave-Geräte eine fallende Flanke im SS-Signal, um die Kommunikation zu initiieren. Bei mehreren Slave-Typen sind unterschiedliche Initiierungssignale vom Master erforderlich. Wie I2C ist SPI ein serieller Kurzstreckenbus. Aufgrund seines geringen Strombedarfs wird es häufig in Mobiltelefonen, persönlichen digitalen Assistenten und ähnlichen mobilen Geräten verwendet, um die Interaktion zwischen CPU, Display, Tastatur und integrierten Schaltkreisen zu implementieren.
Variationen beinhalten das Weglassen der MISO-Leitung, wenn die Kommunikation von Slave zu Master nicht notwendig ist. Außerdem wird die SS-Leitung nicht benötigt, wenn nur ein einziger Slave vorhanden ist und der Slave-Select-Pin geerdet ist, sodass er immer aktiv ist.
SPI ist zwar eine synchrone serielle Schnittstelle (SSI), unterscheidet sich jedoch radikal vom SSI-Protokoll, das sich durch differentielle Signalisierung und einen einzigen Simplex-Kommunikationskanal auszeichnet.
Es ist full-duplex übertragung, sowohl MOSI und MISO, während jeder uhr signal. Auf den beiden separaten Leitungen wird in jede Richtung ein Bit gesendet. Das übliche Verfahren verwendet zwei Schieberegister, eines im Master und eines im Slave. Die Duplexübertragung wird über eine ausreichende Anzahl von Taktzyklen fortgesetzt, um die Übertragung abzuschließen. Auf diese Weise erfassen Master und Slave die über die beiden Leitungen transportierten Register. Wenn noch mehr Daten übrig sind, werden die Schieberegister neu geladen und die Übertragung beginnt von neuem.
Dieser Vorgang wird durch so viele Taktzyklen wie nötig fortgesetzt, woraufhin der Master das Auswahlsignal auf logic high gehen lässt und den Slave abwählt. Übertragungen sind oft 8-Bit, aber es gibt Variationen wie 12-Bit für viele DACs und ADCs und 16-Bit für Touchscreen-Controller.
Aufgrund von hardware und de facto protokoll unterschiede, die SPI bus hat ein spektrum von vorteile und nachteile in bezug auf I2C und andere bus arten. Zu den Vorteilen gehört die Vollduplex-Fähigkeit, lediglich eine weitere Leitung hinzuzufügen. Darüber hinaus, es ist gute signal integrität, hohe geschwindigkeit übertragung, und mehr potenzial daten übertragung im vergleich zu I2C. auch, nachricht inhalt ist unbegrenzt und nicht beschränkt auf 8-bit daten einheiten. Im Allgemeinen ist der Leistungsbedarf geringer als bei I2C, da Pull-Up-Widerstände nicht erforderlich sind. SPI ist auch zuverlässig, da es keine Arbitrierung benötigt und keine eindeutigen Slave-Adressen erforderlich sind. Da es keine maximale Taktrate abgesehen von Slave-Gerät Einschränkungen gibt, gibt es das Potenzial für High-Speed-Betrieb.
Wie bei jeder Technologie gibt es Nachteile gegenüber einigen anderen Protokollen. Da es keine Slave-Bestätigung gibt, könnte der Master im Falle eines Slave- oder Verkabelungsfehlers, ohne zu wissen, dass etwas nicht stimmt, ohne Zuhörer in eine Leere sprechen. Außerdem kann das Fehlen eines einzigen formalisierten Standards die Konformitätsvalidierung unpraktisch machen. Auch die Existenz zahlreicher unregulierter SI-Variationen kann die Anschaffung von Hardware problematisch machen.
Später ist es denkbar, dass wir einen höheren Grad an Kodifizierung sehen könnten. Diese Entwicklung wird weitere SPI-Verbesserungen bedeuten, die die jetzt bestehende Verwirrung verringern könnten. Das heißt, wie derzeit implementiert, ist SPI sehr benutzerfreundlich, insbesondere in seinem Bedarf an wenig Leistung.