Serial Peripheral Interface

Serial Peripheral Interface

Das Serial Peripheral Interface (kurz SPI) ist ein von Motorola entwickeltes Bus-System mit einem sehr lockeren Standard für einen synchronen seriellen Datenbus, mit dem digitale Schaltungen nach dem Master-Slave-Prinzip miteinander verbunden werden können. Ein ähnliches Bus-System existiert von National Semiconductor und nennt sich Microwire.

Einfacher SPI-Bus mit nur einem SPI-Master und Slave.

Inhaltsverzeichnis

Grundlagen

Eigenschaften

Bild 1: SPI-Verbindung durch Kaskadierung der Slaves
Bild 2: SPI-Sternverbindung
  • Drei gemeinsame Leitungen, an denen jeder Teilnehmer angeschlossen ist:
SDO (englisch Serial Data Out) bzw. MISO oder SOMI (englisch Master in, Slave out)
SDI (englisch Serial Data In) bzw. MOSI oder SIMO (englisch Master out, Slave in)
SCK (englisch Serial Clock) bzw. SCLK, wird vom Master ausgegeben
  • Eine oder mehrere mit logisch-0 aktive Chip-Select-Leitungen, welche alle vom Master gesteuert werden und von denen je eine Leitung pro Slave vorgesehen ist. Diese Leitungen werden je nach Anwendung unterschiedlich mit Bezeichnungen wie SS, CS oder STE für Slave Select, Chip Select bzw. Slave Transmit Enable bezeichnet, oft noch in Kombination mit einer Indexnummer zur Unterscheidung. Es gibt auch spezielle Anwendungen, bei denen sich mehrere Slaves eine Leitung teilen, siehe Bild 1.
  • Vollduplexfähig
  • Viele Einstellmöglichkeiten, beispielsweise mit welcher Taktflanke ausgegeben bzw. eingelesen wird, Wortlänge, Übertragung MSB oder LSB zuerst.
  • Unterschiedliche Taktfrequenzen bis in den MHz-Bereich zulässig.
  • Vielfältige Einsatzmöglichkeiten in Audio- und Messanwendungen, zur Datenübertragung zwischen Mikrocontrollern.

Viele Einstellungsmöglichkeiten sind unter anderem deshalb erforderlich, weil sich die Spezifikation für den SPI-Bus in vielen Dingen nicht konkret festlegt und deshalb verschiedene, zueinander inkompatible Geräte existieren. So ist häufig für jeden angeschlossenen Schaltkreis eine eigene Konfiguration des steuernden Mikrocontrollers (Master des SPI-Bus) erforderlich.

Viele Mikrocontroller (z. B. die meisten AVR) erlauben eine In-System-Programmierung (kurz ISP) über den SPI-Bus.

Protokollablauf und Einstellmöglichkeiten

Es können theoretisch beliebig viele Teilnehmer an den Bus angeschlossen werden, wobei es immer exakt einen Master geben muss. Er ist derjenige, der das Clock-Signal an SCK erzeugt und festlegt, mit welchem Slave er kommunizieren will. Das geschieht über die Leitung "Slave Select". Wird sie gegen Masse gezogen, wird der jeweilige Slave aktiv, "lauscht" an MOSI und legt seine Daten im Takt von SCK an MISO. Es wird somit ein Byte vom Master zum Slave und ein anderes Byte vom Slave zum Master transportiert.

Bild 3: Datenübertragung bei verschiedenen Einstellungen von CPOL und CPHA

Ein Protokoll für die Datenübertragung wurde von Motorola zwar nicht festgelegt, doch haben sich in der Praxis vier verschiedene Modi durchgesetzt. Diese werden durch die Parameter Clock Polarität (CPOL) und Clock Phase (CPHA) festgelegt. Bei CPOL=0 ist der Clock Idle Low, bei CPOL=1 ist der Clock Idle High. CPHA gibt nun an, bei der wievielten Flanke die Daten übernommen werden sollen. Bei CPHA=0 werden sie bei der ersten Flanke übernommen, nachdem SS auf Low gezogen wurde, bei CPHA=1 bei der zweiten. Somit werden die Daten bei CPOL=0 und CPHA=0 mit der ersten Flanke übernommen, die nur eine High-Flanke sein kann. Bei CPHA=1 wäre es die zweite, also eine Low-Flanke. Bei CPOL=1 ist das ganze folglich genau andersherum, bei CPHA=0 Low-Flanke und bei CPHA=1 High-Flanke.

Zu beachten ist noch, dass der Slave bei CPHA=0 seine Daten schon beim Runterziehen von SS an MISO anlegt, damit der Master sie beim ersten Flankenwechsel übernehmen kann. Bei CPHA=1 werden die Daten vom Slave erst beim ersten Flankenwechsel an MISO gelegt, damit sie beim zweiten Flankenwechsel vom Master übernommen werden können. Der Master hingegen legt seine Daten immer zum gleichen Zeitpunkt an, meist kurz nach der Low-Flanke von SCK.

Mit jeder Taktperiode wird ein Bit übertragen. Beim üblichen Bytetransfer sind also 8 Taktperioden für eine vollständige Übertragung nötig. Es können auch mehrere Bytes hintereinander übertragen werden, wobei nicht festgelegt ist, ob zwischen jedem Byte das SS-Signal kurz wieder auf High gezogen werden muss. Eine Übertragung ist beendet, wenn das Slave-Select-Signal endgültig auf High gesetzt wird.

Modes

Für die verschiedenen Konstellationen existiert auch die Bezeichnung Modes, die die nachfolgende Tabelle auflistet.

Mode CPOL CPHA
0 0 0
1 0 1
2 1 0
3 1 1

Weblinks

 Commons: Serial Peripheral Interface – Sammlung von Bildern, Videos und Audiodateien

Wikimedia Foundation.

Игры ⚽ Поможем сделать НИР

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Serial Peripheral Interface — Bus SPI: un maestro y un esclavo …   Wikipedia Español

  • Serial Peripheral Interface — Liaison SPI: un maître et un esclave Une liaison SPI (pour Serial Peripheral Interface) est un bus de donnée série synchrone baptisé ainsi par Motorola, et qui opère en Full Duplex. Les circuits communiquent selon un schéma maître esclaves, où le …   Wikipédia en Français

  • Serial Peripheral Interface — SPI (англ. Serial Peripheral Interface, SPI bus  последовательный периферийный интерфейс, шина SPI)  последовательный синхронный стандарт п …   Википедия

  • Serial Peripheral Interface Bus — Serial Peripheral Interface Liaison SPI: un maître et un esclave Une liaison SPI (pour Serial Peripheral Interface) est un bus de donnée série synchrone baptisé ainsi par Motorola, et qui opère en Full Duplex. Les circuits communiquent selon un… …   Wikipédia en Français

  • Serial Peripheral Interface Bus — Protocol Analyzers SPI Protocol Analyzers are tools which sample an SPI bus and decode the electrical signals to provide a higher level view of the data been transmitted on the bus. Some SPI protocol analyzers are built into oscilloscopes while… …   Wikipedia

  • Interface De Communication Série — Pour les articles homonymes, voir SPI. Une interface de communication série (serial communications interface SCI) est un organe permettant des échanges de données série (un bit à la fois) entre un microprocesseur et un périphérique. Synchronous… …   Wikipédia en Français

  • Interface de communication serie — Interface de communication série Pour les articles homonymes, voir SPI. Une interface de communication série (serial communications interface SCI) est un organe permettant des échanges de données série (un bit à la fois) entre un microprocesseur… …   Wikipédia en Français

  • Serial — Serial, anything in the form of a series, can refer to several things:Art and literature*Serial, a format by which a story is told in installments **Serial (film), films released in chapters for viewing in cinemas, particularly in the 1930s and… …   Wikipedia

  • Interface de communication série — Pour les articles homonymes, voir SPI. Une interface de communication série (serial communications interface SCI) est un organe permettant des échanges de données série (un bit à la fois) entre un microprocesseur et un périphérique. Synchronous… …   Wikipédia en Français

  • Advanced Technology Attachment Peripheral Interface — Integrated Drive Electronics …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”