Funktionsweise der seriellen Schnittstelle

Gast #4456076
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?
Gast #4456147
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.
Gast #4456154
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.
Gast #4456159
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
Gast #4456174
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.
#4456603
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)

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.