Serielle Schnittstellen - grundlegende Fragen

Im Unterforum Grundlagen - Beschreibung: Grundlagen und Fragen für Einsteiger in der Elektronik

Elektronik Forum Nicht eingeloggt       Einloggen       Registrieren




[Registrieren]      --     [FAQ]      --     [ Einen Link auf Ihrer Homepage zum Forum]      --     [ Themen kostenlos per RSS in ihre Homepage einbauen]      --     [Einloggen]

Suchen


Serverzeit: 16 6 2024  00:16:13      TV   VCR Aufnahme   TFT   CRT-Monitor   Netzteile   LED-FAQ   Osziloskop-Schirmbilder            


Elektronik- und Elektroforum Forum Index   >>   Grundlagen        Grundlagen : Grundlagen und Fragen für Einsteiger in der Elektronik

Gehe zu Seite ( 1 | 2 | 3 Nächste Seite )      


Autor
Serielle Schnittstellen - grundlegende Fragen

    







BID = 922264

Andi-872

Aus Forum ausgetreten
 

  


Hallo,

auf meinen "Bauvorhaben" bin ich immer wieder auf Fernsteuerungen gestossen. Dabei fallen mir besonders die Sachen RS-422 / 485 usw. auf, aber auch die "simple" MIDI-Schnittstelle im Musikbereich, die ja z.B. mit der RS-422 gewisse Gemeinsamkeiten hat. Nun ist mir das zwar vom Prinzip her erstmal klar, aber im Detail frage ich mich, wie wird das überhaupt codiert, und woher weiss der Empfänger, was er mit welchem ankommenden Signal machen soll. Bleiben wir bei MIDI: da gibt es Tabellen für das MIDI-Protokoll. Die Bytes und deren Zuordnung sind irgendwann mal festgelegt worden. Ok. Wie werden nun aber diese Bytes erzeugt? "Wer" ist dafür zuständig? Es müsste - nach meinem Verstehen - einen programmierten Chip geben, der diese speziellen 8 Bits erzeugt und diese seriell rausschickt. Auf der anderen Seite müsste dann wiederum ein entsprechender Chip sitzen, der genau weiss, wenn Byte "so-und-so" reinkommt, muss dieses und jenes geschehen. Ähnlich natürlich RS-422 usw. Die RS-422 gefällt mir (theoretisch) ganz gut, denn trotz Einschränkungen kann man diese Schnittstelle ja für eine ganze Menge Dinge verwenden. Und man kann sogar mehrere Sender und Empfänger in Serie schalten. Für die meisten Anwendungen "zu hause" völlig ausreichend. Wenn ich mir nun eine 2-Draht-Fernsteuerung bauen möchte, um Dinge in der Ferne zu regeln, könnte die 422 also gut passen. Ich hab einen "Sender", auf dem sind meinetwegen 10 Taster. 2 Drähte angeschlossen, und auf der Empfängerseite sollen dann 10 verschiedene Funktionen ausgelöst werden können, je nach dem, welchen der 10 Taster ich auf dem Sender drücke. Wie wird das gemacht? Gibt es da z.B. vorgefertigte Bausteine (sowohl Tx als auch Rx, Encoder / Decoder o.ä.), die man da "einfach" nimmt? Irgendwie muss ja dieses Signal (Byte) erzeugt werden, zzgl. der entsprechenden Pausen-Signale zwischen den Bytes usw. Beim googeln nach entsprechenden Schaltplänen usw. bin ich da bisher noch nicht fündig geworden. Stimmt meine "Theorie" erstmal soweit, dass es Bausteine/-gruppen geben muss, die zunächst das Signal (Byte) erzeugen, dieses dann über "2 Drähte" (mal von den verschiedenen Duplex-Arten abgesehen) an einen Empfänger senden, der das dann wiederum entsprechend auf Funktionen bzw. zugeordnete Kabel und Stecker und Leitungen schickt (um z.B. 10 verschiedene Lampen an- und auszuschalten usw.)? Wäre das eine Sache für MC´s, indem man einen MC als Encoder und den anderen (auf der Empfängerseite) als Decoder verwendet? Und wie würde man ein solches Signal erzeugen und dann decodieren? Und wird das Binär oder Hexadezimal erzeugt, übertragen und decodiert? usw. usf........

Andi






[ Diese Nachricht wurde geändert von: Andi-872 am 31 Mär 2014 15:44 ]

BID = 922266

der mit den kurzen Armen

Urgestein



Beiträge: 17433

 

  

Also es gibt Encoder und auch Decoder die zur Leitungsreduzierung verwendet werden können.
Serielle Datenübertragung hat mit in Reihe schalten von Sendern und Empfängern gar nichts zu tun. Alle Sender und alle Empfänger hängen dann an einem Bus und zwar parallel.
Für deine Zwecke dürfte die Verwendung von µC die einfachste Lösung sein. Der µC kann da sowohl Sender als auch Empfänger sein. http://de.wikipedia.org/wiki/I%C2%B2C

_________________
Tippfehler sind vom Umtausch ausgeschlossen.
Arbeiten an Verteilern gehören in fachkundige Hände!
Sei Dir immer bewusst, dass von Deiner Arbeit das Leben und die Gesundheit anderer abhängen!

BID = 922267

Andi-872

Aus Forum ausgetreten

"Alle Sender und alle Empfänger hängen dann an einem Bus und zwar parallel."
Ja, stimmt, da hab ich mich ungünstig ausgedrückt. Was mir jetzt nicht klar ist: ist I2C so eine Art Oberbegriff für diese Bus-Schnittstellen? I2C ist ja so neu auch nicht. Oder ist I2C eine "modernere" Art RS-422?

Andi

BID = 922268

Andi-872

Aus Forum ausgetreten

... und diese Encoder/Decoder werden irgendwie so allmählich aus dem Verkehr gezogen, habe ich den Eindruck. Ich war vor Monaten schon mal auf der Suche, weil ich einen entsprechenden Schaltplan fand, aber die erforderlichen IC´s (und vergleichbare) gab es nicht mehr. Allenfalls irgendwo teuer als Restposten, und das will ich dann auch nicht erst anfangen. Meine Vermutung damals war, dass diese IC´s deswegen nicht mehr hergestellt werden, weil MC´s genau diese Aufgabe übernehmen können. Ist das evt. so?

Andi

BID = 922269

Andi-872

Aus Forum ausgetreten

...wobei diese Encoder / Decoder wohl nicht als Bussystem verwendbar sind. Das nun finde ich bei z.B. RS-422 so gut, dass man eben noch paar Sachen gleichzeitig ranhängen kann, z.B. bei Bedarf statt 1 eben 3 Sender. Deswegen meine Frage doch eher in diese Richtung RS-422...



Andi

BID = 922270

der mit den kurzen Armen

Urgestein



Beiträge: 17433

Nein ist es nicht nur ist I²C schon in den meisten Atmels vorgesehen und es gibt die entsprechenden Protokolle und Programme fix und fertig. Mit 3 Leitungen (SDA,SDL und GND ) sind 127 Geräte ansprechbar. Das dürfte für deine Zwecke mehr als ausreichend sein. Zudem ist I²C Bidirektional! Bei den heutigen Preisen für µC ist es da gar keine Frage auf irgendwelche Exoten auszuweichen. Auch bei der Ausgabe bist du da flexibel. Die Anzahl der Ein und Ausgänge hängt nur von dem verwendetem µC ab. Zudem gibt es auch Porterweiterungen.
Beispiel mit 16 Eingängen kannst du 8*8 =64 Tasten abfragen.(8 Zeilen mal 8 Spalten)


_________________
Tippfehler sind vom Umtausch ausgeschlossen.
Arbeiten an Verteilern gehören in fachkundige Hände!
Sei Dir immer bewusst, dass von Deiner Arbeit das Leben und die Gesundheit anderer abhängen!

BID = 922271

perl

Ehrenmitglied



Beiträge: 11110,1
Wohnort: Rheinbach


Zitat :
Oder ist I2C eine "modernere" Art RS-422?
Nein, die Verfahren habe zunächst einmal nichts miteinander zu tun.
I2C ist eine Abkürzung für den von Philips entwickelten Bus http://de.wikipedia.org/wiki/IIC , während V24, RS-232, RS488, usw. die Bezeichnungen von Komitees bei Normungsgremien sind.


Zitat :
Wie werden nun aber diese Bytes erzeugt?
Mit Schieberegistern.
Die werden gewöhnlich zusammen mit etwas zusätzlicher Logik integriert, welche Steuersignale (z.b. dass das Schieberegister leer ist) zur Verfügung stellt und dann heißen sie UART oder USART.

Zitat :
der genau weiss, wenn Byte "so-und-so" reinkommt,
Dafür werden oft bestimmte Synchronisationsmuster am Anfang eines Datenblocks verwendet, manchmal sogar unter absichtlicher Verletzung des eigentlichen Übertragungsprotokolls.

Wenn es nur einen Empfänger am Ende der Leitung gibt, ist ja klar, dass alles, was da kommt, für ihn bestimmt ist.
Wenn aber mehrere Empfänger an einen Bus lauschen, beginnt der Datenblock mit ein paar Adressbytes, an denen der Empfänger erkennen kann, ob er gemeint ist.

Beachte aber auch, daß man aus der RS-xyz Bezeichnung nicht ableiten kann was da gemacht wird.
Das sind reine Komiteebezeichnungen und man muß nachsehen, ob diese die elektrischen Eigenschaftem, ein bestimmtes Übertragungsverfahren, oder sogar nur die Form eines Steckers genormt haben.

P.S.:
Zitat :
Meine Vermutung damals war, dass diese IC´s deswegen nicht mehr hergestellt werden, weil MC´s genau diese Aufgabe übernehmen können. Ist das evt. so?
Das kommt darauf an, unm was für Chips es sich gehandelt hat.
Der µC kann oftmals den Datenfluss senden und empfangen, aber wenn es auf die Leitung geht, sind meist spezielle Schnittstellentreiber beteiligt, die mit den harten Bedingungen der Aussenwelt besser zurecht kommen.
Auch sind manche Übertragungsverfahren so schnell oder so komplex, daß man sie besser speziell dafür entwickelter Hardware überlässt.






[ Diese Nachricht wurde geändert von: perl am 31 Mär 2014 17:47 ]

[ Diese Nachricht wurde geändert von: perl am 31 Mär 2014 17:54 ]

BID = 922280

Andi-872

Aus Forum ausgetreten

Danke.

"... daß man sie besser speziell dafür entwickelter Hardware überlässt. " --> welche z.B.?

Andi

BID = 922286

der mit den kurzen Armen

Urgestein



Beiträge: 17433

LWL oder Profibus oder KNX oder CAN-Bus nur um einige zu nennen.

_________________
Tippfehler sind vom Umtausch ausgeschlossen.
Arbeiten an Verteilern gehören in fachkundige Hände!
Sei Dir immer bewusst, dass von Deiner Arbeit das Leben und die Gesundheit anderer abhängen!

BID = 922288

perl

Ehrenmitglied



Beiträge: 11110,1
Wohnort: Rheinbach


Zitat :
welche z.B.?
Das hängt vom jeweiligen Fall ab.
Z.B. werden viele µC schon mit USB2.0 überfordert sein, beim Ethernet werden analoge Pegel mit ausgewertet um Kollisionen zu erkennen, bei HDLC werden während der Übertragung u.U. Nullen eingefügt und wieder entfernt, und bei der Aufzeichnung und beim Lesen von CD oder DVD werden nach komplizierten Regeln Informationen zur Fehlerkorrektur mit dem Datenstrom verflochten, während es in anderen Fällen ausreicht diese Information am Blockende zu übertragen, oder sogar überhaupt nicht zu verwenden.

Du kannst dir zum Spaß ja mal das Datenblatt des über 30 Jahre alten Z-80-SIO ansehen (nicht der SIO-9). Was da drin steckt, möchtest du wahrscheinlich nicht programmieren.



BID = 922486

Andi-872

Aus Forum ausgetreten

Hallo,

der I2C scheint in der Tat sehr interessant zu werden für mich. Kurz eine Frage dazu: es gibt einen Master und es sind mehrere Slaves möglich. Die Slaves reagieren auf die vom Master gesendeten Befehle. Somit ist eine Rücksendung (Rückmeldung; Bestätigung, dass der im Slave empfangene UND AUSGEFÜHRTE Befehl) vom Slave an den Master nicht möglich? Oder weiter gedacht: Wenn ich eine kabelgebundene Fernsteuerung bauen möchte, bei der ein Empfänger von mindestens einem Sender (bei Bedarf auch mehrere, gleichberechtigte Sender) gesteuert werden soll, kommt hier der I2C in Betracht, oder wäre das nichts für den I2C? Alles auf Basis Arduino - AVR...


Andi

BID = 922492

perl

Ehrenmitglied



Beiträge: 11110,1
Wohnort: Rheinbach


Zitat :
Somit ist eine Rücksendung (Rückmeldung; Bestätigung, dass der im Slave empfangene UND AUSGEFÜHRTE Befehl) vom Slave an den Master nicht möglich?
Doch, im Prinzip genau wie man EEPROMs am I2C schreiben und lesen kann, indem der Master ein vom Slave bereitgestelltes Statusbyte abfragt.
Das macht man ja auch bei anderen Übertragungsverfahren so.

BID = 922522

der mit den kurzen Armen

Urgestein



Beiträge: 17433

Am i²C sind sogar mehrere Master möglich! Aber bedenke du brauchst bei längeren Leitungen geschirmtes Kabel. http://www.timmermann.org/ralph/ind.....c.htm

_________________
Tippfehler sind vom Umtausch ausgeschlossen.
Arbeiten an Verteilern gehören in fachkundige Hände!
Sei Dir immer bewusst, dass von Deiner Arbeit das Leben und die Gesundheit anderer abhängen!

BID = 922885

DonComi

Inventar



Beiträge: 8605
Wohnort: Amerika

I²C ist nicht dazu gedacht, ICs über Gerätegrenzen hinweg zu verbinden, daher ja auch die Bezeichnung des Protokolls.

Lieber asynchron z.B. mittels RS485, ordentlichen Schnittstellentreibern und einem einfachen Protokoll. Will man Kollisionen/Kollisionserkennung vermeiden, kann man den Slaves grundsätzlich verbieten, von allein loszuquatschen, sondern nur nach Nachfrage o.ä..

Allerdings kommst du natürlich nicht um das Programmieren eines Mikrocontrollers herum, das ist aber im Prinzip ganz einfach

_________________

BID = 922959

Andi-872

Aus Forum ausgetreten

"Allerdings kommst du natürlich nicht um das Programmieren eines Mikrocontrollers herum, das ist aber im Prinzip ganz einfach."

:-) Für Dich mag das zutreffen. Ich beschäftige mich momentan zum ersten mal detailierter mit seriellen Schnittstellen. Man verwendet sie irgendwie immer selbstverständlich, weil die Stecker halt da sind, aber weiter fragt man nie - wozu auch bisher. Du schreibst, dass I2C nicht dafür gedacht ist. Ich hab das schon gelesen, dass damit z.B. Displays u.ä. angesteuert werden, Sachen also, die sich im Gerät selbst befinden. Das ist das eine. Die andere Sache wäre interessant: was kann I2C darüber hinaus? Könnte man es dennoch "artfremd" benutzen, um z.B. drahtgebundene Fernsteuerungen zu bauen usw., die bis ca. 20m Kabel angesteuert werden? Was mir (als Hobby-Elektroniker) gefällt, ist die Tatsache, dass das I2C-Protokoll in den MCs bereits vorgesehen ist. Als Profi magst Du das entspannt sehen, für mich ist das eine Herausforderung


Andi


      Nächste Seite
Gehe zu Seite ( 1 | 2 | 3 Nächste Seite )
Zurück zur Seite 0 im Unterforum          Vorheriges Thema Nächstes Thema 


Zum Ersatzteileshop


Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum       Datenschutz       Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland       

gerechnet auf die letzten 30 Tage haben wir 15 Beiträge im Durchschnitt pro Tag       heute wurden bisher 0 Beiträge verfasst
© x sparkkelsputz        Besucher : 181475720   Heute : 33    Gestern : 7051    Online : 406        16.6.2024    0:16
0 Besucher in den letzten 60 Sekunden         ---- logout ----viewtopic ---- logout ----
xcvb ycvb
0.0655081272125