Forum: Mikrocontroller und Digitale Elektronik Funktionsweise der seriellen Schnittstelle


von piUser (Gast)


Lesenswert?

Hallo kann mir mal jemand etwas zur seriellen Schnittstelle sagen?

Und zwar haben ich einen Sender und einen Empfänger.

Wenn der Sender jetzt Daten sendet was passiert dann mit den Daten beim 
Empfänger?

Muss der Empfänger auf jeden Fall zum Sendezeitpunkt den Port lesen oder 
werden die Daten irgendwie zwischen gepuffert bis der Empfänger das 
nächste mal die "mySerialPort.Read() - Methode" aufruft?

von Jim M. (turboj)


Lesenswert?

Kommt auf die verwendete Plattform an. Auf einem kleinen µC ist 
eventuell nur das zuletzt gesendete Byte verfügbar, USB2Serial ICs für 
PC haben üblicherweise FIFOs, die 100e Byte groß sein können.

von Peter B. (funkheld)


Lesenswert?

Du musst die Daten Zeitlich rechtzeitig am Empfänger abfragen, sonst 
können bei zu kleinem Zwischenbuffer und zu hohen Sendeinterwallen 
welche verloren gehen.
Oder du arbeitest mit RTS und CTS als Datenflusssteuerung.

von Wolfgang (Gast)


Lesenswert?

piUser schrieb:
> Muss der Empfänger auf jeden Fall zum Sendezeitpunkt den Port lesen

Es gibt keinen Sende-/zeitpunkt/, weil die Daten - wie die Bezeichnung 
seriellen Schnittstelle schon sagt - seriell, i.e. nacheinander 
übertragen werden.

von Tom Thomsen (Gast)


Lesenswert?

Jim M. schrieb:
> Auf einem kleinen µC ist eventuell nur das zuletzt gesendete Byte
> verfügbar, USB2Serial ICs für PC haben üblicherweise FIFOs, die
> 100e Byte groß sein können.

Auf kleinen µC kommt es zuweilen sogar vor, dass man sich auf der 
Empfängerseite um jedes einzelne Bit kümmt, z.B. bei Soft-SPI.

von Georg (Gast)


Lesenswert?

piUser schrieb:
> Muss der Empfänger auf jeden Fall zum Sendezeitpunkt den Port lesen

Das empfangene Zeichen steht beim Empfänger zur Verfügung, wenn das 
letzte Bit davon eingetroffen ist - also etwa eine Zeichenlänge später 
als der Start des Sendevorgangs. Das Zeichen muss ausgelesen werden, 
bevor das nächste zur Verfügung steht, man hat also etwas weniger als 
eine Zeichenlänge Zeit. Ist ein Fifo eingebaut für n Zeichen, hat man 
entsprechend länger Zeit, aber insgesamt muss man natürlich x Zeichen 
pro Sekunde abholen, wenn x Zeichen pro Sekunde gesendet werden. Daher 
sollte man, wenn die Verfügbarkeit angezeigt wird, nicht nur ein Zeichen 
auslesen, sondern alles was da ist.

Georg

von Noch einer (Gast)


Lesenswert?

Was ist für dich der Empfänger?

Normalerweise hat man 2 Ebenen. Die Hardware hat normalerweise nur 1 - 
16 Bytes an Puffer. Sofort nach Empfang holt eine Interrupt-Routine das 
Zeichen von der Hardware ab und schiebt es in eine Warteschlange für das 
Anwendungsprogramm.

von Walter S. (avatar)


Lesenswert?

aufgrund des Namens vermute ich dass der TO ein System benutzt bei dem 
die Kommunikation von einem Betriebssystem gemacht wird das mehr als ein 
Byte Buffer hat.
Er hat dann mind x*(Dauer eines Bytes) Zeit die Bytes abzurufen
(x ist die Größedes Buffers)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.