Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Waltraud Heimberger Geändert vor über 9 Jahren
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
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.