Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Personal Fabrication Drahtgebundene Kommunikation

Ähnliche Präsentationen


Präsentation zum Thema: "Personal Fabrication Drahtgebundene Kommunikation"—  Präsentation transkript:

1 Personal Fabrication Drahtgebundene Kommunikation
DIY Personal Fabrication Drahtgebundene Kommunikation `` Juergen Eckert – Informatik 7

2 Fahrplan UART SPI TWI

3 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 diskret heute

4 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: Synchron (selbsttaktend) oder asynchron: Sendertakt wird mit übermittelt Gleichstromfrei: Kein bestimmter Pegel in Ref zu GND Bandbreitenbedarf: Breite des Frequenzbands, um Signal zu übertragen.

5 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)

6 Leitungskodierung (2/2)
Referenz NRZI 1 Unipolares NRZ Bipolar Manchester- Kodierung Differentielle Polares NRZ Bitsequenz

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]

8 Serielle Schnittstelle (1/2)
Foto: Wikipedia 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 900m 4800 300m 9600 152m 19200 15m 57600 5m 115200 <2m Alle Differenziell: 2 Leitungen übertragen das gleiche Signal, eine Leitung ist invertiert (Ursprung: RS485) Hohe Toleranz gegenüber el-mag. Störungen

9 Differenzielle Signalübertragung
(Einschub) Differenzielle Signalübertragung Foto: Wikipedia

10 Serielle Schnittstelle (2/2)
RS-232: NRZ polar, mit TTL Logik: unipolar TTL „1“ = 3.3V oder 5V und „0“ = 0V Baudrate muss bekannt sein Üblich: 8N1 (ohne Parity) 5-9 bit LSB first t Foto: Wikipedia

11 Universal Asynchronous Receiver Transmitter (UART)
Hardware in fast jedem Mikrocontroller AVR: 1Byte Puffer Andere bieten mehr Hardware- Support (Puffer) Atmel AVR Manchmal auch USART: S steht für synchronous, also alternative Konfigurationsart

12 Hardware UART (Bsp: AVR) (1/3)
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 Programmier Tutorial: Hardware wird mittels Bits in Register kontrolliert Beschreibung siehe Datenblatt

13 Hardware UART (Bsp: AVR) (2/3)
void USART_Transmit( unsigned char data ) { /* Wait for empty transmit buffer */ while ( !( UCSRA & (1<<UDRE)) ) ; /* Put data into buffer, sends the data */ UDR = data; } Aktives warten bis das Register frei ist Daten in Register schreiben. Mikrocontroller kann andere Sachen erledigen während der UART die Daten versendet

14 Hardware UART (Bsp: AVR) (3/3)
unsigned char USART_Receive( void ) { /* Wait for data to be received */ while ( !(UCSRA & (1<<RXC)) ) ; /* Get and return received data from buffer */ return UDR; } Schreib- und Lesezugriff auf Register kann unterschiedliche Resultate haben (Bsp: UDR) AVR UART ist Full Duplex (senden und empfangen gleichzeitig)

15 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

16 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

17 Software UART (AVR304) TX RX Hier: Kein Stop Bit Test

18 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)

19 Punkt-zu-Punkt Verbindung
Jedes Modul benötigt dedizierte Hardware (Pins) Mikrocontroller TX RX Modul RX TX

20 Binary Unit System (BUS)
(weiterhin seriell) 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)

21 Serial Peripheral Interface (SPI)
Von Motorola 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) Foto: Wikipedia

22 SPI Topologie Kaskadierung (Daisy-Chain) Stern
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 Fotos: Wikipedia

23 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

24 Leitungskodierung (2/2)
Rot Blau Foto: Wikipedia

25 SPI in der Praxis Mikrocontroller Debugging Verwendung
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 Foto: dangerousprototypes.com Für Chiptest: Bus Pirate

26 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

27 Single- vs. Multi-Master (2/2)
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)

28 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

29 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

30 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 Strom Senke Foto: Lammertbies

31 Medienzugriff I2C Start Kondition (S): SDA⤵︎︎, SCL=1
Foto: Wikipedia 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

32 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

33 Beispiel: AT24CXX EEprom (=persistenter Speicher)
Adress-Pins Lesen (Zuvor muss der Lese- Pointer gesetzt werden) Fotos: Datenblatt Schreiben

34 I2C/TWI in der Praxis Siehe SPI Folie Anwendung:
„Low Power“ / „Langsame“ ICs

35 UART / I2C / SPI im Vergleich
I2C/TWI SPI Leitungen 1-2 2 je Chip Konnektivität 1:1 m:n 1:n Distanz Einige Meter Einige Zentimeter < 1m Geschwindigkeit k2 Baud (Einige Mbaud) 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

36 Nächstes mal bei DIY Drahtlose Kommunikation (Crash Kurs)
ISO OSI Referenzmodell


Herunterladen ppt "Personal Fabrication Drahtgebundene Kommunikation"

Ähnliche Präsentationen


Google-Anzeigen