DIY Personal Fabrication Drahtgebundene Kommunikation Juergen Eckert – Informatik 7.

36
DIY Personal Fabrication Drahtgebundene Kommunikation Juergen Eckert – Informatik 7

Transcript of DIY Personal Fabrication Drahtgebundene Kommunikation Juergen Eckert – Informatik 7.

Page 1: DIY Personal Fabrication Drahtgebundene Kommunikation Juergen Eckert – Informatik 7.

DIY

Personal Fabrication

Drahtgebundene Kommunikation

Juergen Eckert – Informatik 7

Page 2: DIY Personal Fabrication Drahtgebundene Kommunikation Juergen Eckert – Informatik 7.

Fahrplan

• UART• SPI• TWI

Page 3: DIY Personal Fabrication Drahtgebundene Kommunikation Juergen Eckert – Informatik 7.

Kommunikation Grundlagen (1/2)

• Taster und LED (siehe Bsp. vor Weihnachten) sind einfache Schnittstellen zur Kommunikation

• Kommunikation = Austausch von Signalen (z.B. Licht oder Spannung)

• Signal– Information in Form einer physikalischen Größe– Kategorisierungstupel:

• Wert: kontinuierlich oder diskret• Zeit: kontinuierlich oder diskretheute

Page 4: DIY Personal Fabrication Drahtgebundene Kommunikation Juergen Eckert – Informatik 7.

Kommunikation Grundlagen (2/2)

• Leitungskodierung bei binären Signalen = Zuordnung der Signalwerte zu 0 oder 1

• Übertragungsart:– Parallel: mehrere Bits gleichzeitig– Seriell: zeitlich aufeinander folgende Bits

• Weitere Eigenschaften:1. Synchron (selbsttaktend) oder asynchron: Sendertakt wird

mit übermittelt2. Gleichstromfrei: Kein bestimmter Pegel in Ref zu GND3. Bandbreitenbedarf: Breite des Frequenzbands, um Signal

zu übertragen.

Page 5: DIY Personal Fabrication Drahtgebundene Kommunikation Juergen Eckert – Informatik 7.

Leitungskodierung (1/2)• Non-Return-To-Zero (NRZ):

„1“ = High, „0“ = Low, ¬(1), unipolar: ¬(2), polar: (2)✓• NRZ-Invert (NRZI):

„1“ = Wechsel, „0“ = kein Wechsel, ¬(1), ¬(2), verpolungssicher• Bipolar:

„0“ = Nullpegel, „1“ = alternierend Low und High, ¬(1), (2) ✓• Manchester-Kodierung:

Pegelwechsel in Taktmitte, „1“ = High→Low, „0“ = Low→High, (1) , ¬(2), ✓benötigt doppelte Bandbreite, Verwendung bei Ethernet

• Differentielle Manchester-Kodierung: Pegelwechsel in Taktmitte und zusätzliche Taktwechsel am Flankenanfang,„1“ = kein Wechsel, „0“ = Wechsel, (1) , (2) , nochmal höhere Bandbreite, ✓ ✓Verwendung bei Token Ring

(Hier: High und Low sind Symbole die Spannung repräsentieren)

Page 6: DIY Personal Fabrication Drahtgebundene Kommunikation Juergen Eckert – Informatik 7.

Leitungskodierung (2/2)

NRZI

1 0 1 0 1 1 0 01

Unipolares NRZ

Bipolar

Manchester-Kodierung

DifferentielleManchester-

Kodierung

Polares NRZ

Bitsequenz

Referenz

Page 7: DIY Personal Fabrication Drahtgebundene Kommunikation Juergen Eckert – Informatik 7.

Übertragungssystem

• Systemtheorie: mathematisches Modell zur Beschreibung des Übertragungsverhaltens

• Signalübertragung (Pegelwechsel) benötigt Energie (je höher die Freq. desto mehr)

• Bandbreitenbeschränkung (min. und max. Freq.)– Signalverzerrung– Idealisiert: Freq. 0..fC unverändert, höhere Freq. stark

gedämpft. (Low Pass Filter)

Übertragungs-system

Eingangssignal Ausgangssignal

s1(t) s2(t)

Theorie (Fourierreihen, Fouriertransformation, Abtasttheorem, ...) siehe RK Vorlesung[Hier (aus Zeitgründen) Daumenregel: Signal auf das Medium geben und mit Oszi überprüfen]

Page 8: DIY Personal Fabrication Drahtgebundene Kommunikation Juergen Eckert – Informatik 7.

Serielle Schnittstelle (1/2)

• Meist genutztes Interface (DIY/HACKs)• EIA-232 (RS-232, V.10) in 1962– Punkt-zu-Punkt Verbindung (1:1)– Asynchron– Geschwindigkeit in Baud = Symbolrate ≠

Bits/s• Neuere serielle Schnittstellen:– Ethernet– USB– S-ATA– ...

max. Baud

max. Länge

2400 900m4800 300m9600 152m19200 15m57600 5m115200 <2m

Foto: Wikipedia

Alle Differenziell:• 2 Leitungen übertragen das gleiche Signal,

eine Leitung ist invertiert (Ursprung: RS485)• Hohe Toleranz gegenüber el-mag. Störungen

Page 9: DIY Personal Fabrication Drahtgebundene Kommunikation Juergen Eckert – Informatik 7.

Differenzielle Signalübertragung(Einschub)

Foto: Wikipedia

Page 10: DIY Personal Fabrication Drahtgebundene Kommunikation Juergen Eckert – Informatik 7.

Serielle Schnittstelle (2/2)

• RS-232: NRZ polar, mit TTL Logik: unipolar– TTL „1“ = 3.3V oder 5V und „0“ = 0V

• Baudrate mussbekannt sein

• Üblich: 8N1(ohne Parity)

• 5-9 bit• LSB first

Foto: Wikipedia

t

Page 11: DIY Personal Fabrication Drahtgebundene Kommunikation Juergen Eckert – Informatik 7.

Universal Asynchronous Receiver Transmitter (UART)

• Hardware in fast jedem Mikrocontroller

Manchmal auch USART: S steht für synchronous, also alternative Konfigurationsart

Atmel AVR

AVR: 1Byte Puffer

Andere bietenmehr Hardware-Support (Puffer)

Page 12: DIY Personal Fabrication Drahtgebundene Kommunikation Juergen Eckert – Informatik 7.

Hardware UART (Bsp: AVR) (1/3)

Programmier Tutorial:• Hardware wird mittels Bits in Register kontrolliert• Beschreibung siehe Datenblatt

void USART_Init( unsigned int baud ) {

/* Set baud rate */UBRRH = (unsigned char)(regbaud>>8);UBRRL = (unsigned char)regbaud;/* Enable receiver and transmitter */ UCSRB = (1<<RXEN)|(1<<TXEN);/* Set frame format: 8data, 2stop bit */UCSRC = (1<<URSEL)|(1<<USBS)|(3<<UCSZ0);

} Trick: Sender 8N2, Empfänger 8N1→Empfänger hat 1bit mehr Zeit zur Verarbeitung

Page 13: DIY Personal Fabrication Drahtgebundene Kommunikation Juergen Eckert – Informatik 7.

Hardware UART (Bsp: AVR) (2/3)

• Aktives warten bis das Register frei ist• Daten in Register schreiben.• Mikrocontroller kann andere Sachen erledigen

während der UART die Daten versendet

void USART_Transmit( unsigned char data ) {

/* Wait for empty transmit buffer */ while ( !( UCSRA & (1<<UDRE)) )

;/* Put data into buffer, sends the data */ UDR = data;

}

Page 14: DIY Personal Fabrication Drahtgebundene Kommunikation Juergen Eckert – Informatik 7.

Hardware UART (Bsp: AVR) (3/3)

• Schreib- und Lesezugriff auf Register kann unterschiedliche Resultate haben (Bsp: UDR)– AVR UART ist Full Duplex

(senden und empfangen gleichzeitig)

unsigned char USART_Receive( void ) {

/* Wait for data to be received */while ( !(UCSRA & (1<<RXC)) )

;/* Get and return received data from buffer */ return UDR;

}

Page 15: DIY Personal Fabrication Drahtgebundene Kommunikation Juergen Eckert – Informatik 7.

UART und Interrupts

• UART kann Interrupt nach dem Versenden oder Empfangen eines Bytes auslösen. → Kein aktives Warten notwendig!

• Komplexere MCUs haben FIFO Warteschlangen oder DMA Controller→ Interrupt nur noch alle n Bytes

Page 16: DIY Personal Fabrication Drahtgebundene Kommunikation Juergen Eckert – Informatik 7.

Software UART (= pain)

• Hardware bietet viele Vorteile:Geschwindigkeit, Interrupts, Fehlererkennung,...

• Wenn mehr UARTs benötigt werden als vorhanden kann der UART auch in Software mittels GPIO Pins implementiert werden.– „Semi-Software“ Lösungen (Kombination aus

Interrupts und Timer) möglich– Sonst idR Half-Duplex

• Umgangssprachlich: Bit-Banging

Page 17: DIY Personal Fabrication Drahtgebundene Kommunikation Juergen Eckert – Informatik 7.

Software UART (AVR304)TX RX

Hier: Kein Stop Bit Test

Page 18: DIY Personal Fabrication Drahtgebundene Kommunikation Juergen Eckert – Informatik 7.

Serielle Schnittstelle in der Praxis

• RS232 Service- und Konfigurationsschnittstelle– Heutzutage sonst eher unüblich– Heute: TTL oder CMOS UART (auf den Pegel achten!)

• Debugging:– 2 weitere UARTS (die 2 Empfangsleitungen)– Bus Pirate– Oszilloskop (2 Kanal)– Logic Analyzer

• Verwendung in Modulen– GPS, Bluetooth, WiFi, ...Für Modultest:USB nach Seriell Adapter (z.B. mittels FTDI)

Page 19: DIY Personal Fabrication Drahtgebundene Kommunikation Juergen Eckert – Informatik 7.

Punkt-zu-Punkt Verbindung

• Jedes Modul benötigt dedizierte Hardware (Pins)

Mikrocontroller ModulTX

TX RX

RX

Page 20: DIY Personal Fabrication Drahtgebundene Kommunikation Juergen Eckert – Informatik 7.

Binary Unit System (BUS)

• Datenübertragung zwischen mehreren Teilnehmern über einen gemeinsamen Übertragungsweg

• Aktive Konten: Master– Greifen selbstständig auf den BUS zu

• Passive Knoten: Slave• Varianten– Single-Master (1:n) Bsp: SPI– Multi-Master (m:n) Bsp: TWI (aka. I2C)

(weiterhin seriell)

Page 21: DIY Personal Fabrication Drahtgebundene Kommunikation Juergen Eckert – Informatik 7.

Serial Peripheral Interface (SPI)

• Synchronous Serial Port (SSP) • Master-Slave Paradigma (1:n)• Full Duplex• „Lockerer“ Standard

SCLK (Clock)MISO (Master In Slave Out)MOSI (Master Out Slave In)Andere Namen mögl. (SDI/SDO)

Von Motorola

Foto: Wikipedia

Page 22: DIY Personal Fabrication Drahtgebundene Kommunikation Juergen Eckert – Informatik 7.

SPI Topologie

Fotos: Wikipedia

Kaskadierung (Daisy-Chain)• Slave nur über Vorgänger

ansprechbar• Benötigt wenig IOs• Bsp. APA102 LEDs

Stern• Jeder Slave benötigt dedizierte

Slave Select (SS) Leitung• Schneller bei beliebigen Zugriff• Meist verbreitet

Page 23: DIY Personal Fabrication Drahtgebundene Kommunikation Juergen Eckert – Informatik 7.

Leitungskodierung (1/2)

• Unipolares NRZ für alle Leitungen• 4 Modi basieren aus Kombination von– Clock Polarität (CPOL)– Clock Phase (CPHA)

Folgen des lockeren Standards:• Keine festgelegt Bit- und Byte-Order– MSB oder LSB first– Little oder Big Endian

• Keine festgelegt Bitanzahl (üblich 8-16bit)

Siehe Datenblatt

Page 24: DIY Personal Fabrication Drahtgebundene Kommunikation Juergen Eckert – Informatik 7.

Leitungskodierung (2/2)

Foto: Wikipedia

Rot

Blau

Page 25: DIY Personal Fabrication Drahtgebundene Kommunikation Juergen Eckert – Informatik 7.

SPI in der Praxis

• Mikrocontroller– Hardware Unterstützung– Software Mode einfacher als UART

(zumindest als Master)• Debugging– Bus Pirate– Oszilloskop (2-4 Kanäle)– Logic Analyzer

• Verwendung– SD-Karte (MMC)– So gut wie jeder Chip

Für Chiptest:Bus Pirate

Foto: dangerousprototypes.com

Page 26: DIY Personal Fabrication Drahtgebundene Kommunikation Juergen Eckert – Informatik 7.

Single- vs. Multi-Master (1/2)

• Single-Master– Alle Kommunikation wird vom Master initiiert– Zentrale Kommunikation

Beispiel SPI: • Clock Leitung wird nur vom Master getrieben• Paralleler Zugriff auf die Clock Leitung kann Hardware

beschädigen• Bus-Arbiter (lat.: „Richter“) kann Zugriff regeln– Komplex / Aufwendig

Page 27: DIY Personal Fabrication Drahtgebundene Kommunikation Juergen Eckert – Informatik 7.

Single- vs. Multi-Master (2/2)

• Multi-Master– Mehrere aktive Konten auf dem geteilten Bus– Dezentrale Kommunikation

Arbitrierung (Zugriffsregelung auf den Bus) • Bus-Arbiter (de-) zentral Komponente (High

Level)• Auf Leitungsebene (Low Level)

Page 28: DIY Personal Fabrication Drahtgebundene Kommunikation Juergen Eckert – Informatik 7.

Multi-Master Medienzugriff

• SPI: Clock HI Leitung Clock LOW ⚡️⚡️⚡️⇨ ⇦• Dominantes und Rezessives Bit– Verhindern von Hardwarebeschädigung wenn

unterschiedliche Signals auf der Leitung– Dominantes Bit verdrängt rezessives Bit

• Bekannte Beispiele:– CAN-BUS (Automobilbereich, 1987)– I2C

Page 29: DIY Personal Fabrication Drahtgebundene Kommunikation Juergen Eckert – Informatik 7.

Inter-Integrated Circuit (I2C)

• Philips Semiconductors (heute NXP), 1982• Schaltungsinterne Kommunikation (zwischen ICs)• Ab Mitte der 1990er lizenzierte Drittanbieter• Two-Wire-Interface (TWI) lizenzfreie alternative– 2006 I2C Patent abgelaufen

• TWI = I2C ≈ SMBus– System Management Bus gedacht für stromsparende

PCs

Page 30: DIY Personal Fabrication Drahtgebundene Kommunikation Juergen Eckert – Informatik 7.

Physikalische Schicht I2C

• Datenleitung: SDA, Taktleitung SCK (Half Duplex)• Buszugriff mittels Open-drains– Low dominant, High rezessiv

• High Zustand mittels Pull-Up Widerstande– High-Speed:

Konstant StromSenke

Foto: Lammertbies

Page 31: DIY Personal Fabrication Drahtgebundene Kommunikation Juergen Eckert – Informatik 7.

Medienzugriff I2C

• Start Kondition (S): SDA , SCL=1⤵︎︎��• Bit übertragen (BX) (MSB zuerst):– Sender: Pegel auf SDA während SCL=0– Empfänger: SDA sampeln nachdem SCL ⤴︎�

• Stop Kondition (P): SDA , SCL=1⤴︎�

Foto: Wikipedia

Page 32: DIY Personal Fabrication Drahtgebundene Kommunikation Juergen Eckert – Informatik 7.

Transferschicht

• Zwischen Start und Stop beliebig viele Bits• Byteweise Übertragung• 9 Bit pro Byte: Letztes Bit = Bestätigung des

Empfängers (ACK = „0“ = Low)• Erstes Byte nach Start:– 7 Bit Adressierung: 112 Adressen (16 reserviert)• Erweiterung auf 10 Bit (mittels 2. Adressbyte)

– 8. Bit Kommunikationsrichtung • Master lesen oder schreiben

Page 33: DIY Personal Fabrication Drahtgebundene Kommunikation Juergen Eckert – Informatik 7.

Beispiel: AT24CXX EEprom (=persistenter Speicher)

Adress-Pins

Lesen

Schreiben

(Zuvor muss der Lese-Pointer gesetzt werden) Fotos: Datenblatt

Page 34: DIY Personal Fabrication Drahtgebundene Kommunikation Juergen Eckert – Informatik 7.

I2C/TWI in der Praxis

• Siehe SPI Folie

• Anwendung:– „Low Power“ / „Langsame“ ICs

Page 35: DIY Personal Fabrication Drahtgebundene Kommunikation Juergen Eckert – Informatik 7.

UART / I2C / SPI im VergleichUART I2C/TWI SPI

Leitungen 1-2 2 2-3 +1 je Chip

Konnektivität 1:1 m:n 1:n

Distanz Einige Meter Einige Zentimeter < 1m

Geschwindigkeit 1200-115k2 Baud(Einige Mbaud)

100-400 kbit/s(Bis zu 5Mbit/s)

>> 10Mbit/s

Synchronität - + +

Für große Entfernungen empfiehlt sich ein höheres Spannungspotential und/oder ein differenzielles Signal

Page 36: DIY Personal Fabrication Drahtgebundene Kommunikation Juergen Eckert – Informatik 7.

Nächstes mal bei DIY

• Drahtlose Kommunikation (Crash Kurs)• ISO OSI Referenzmodell