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?
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.
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.
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.
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.
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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.