www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik RS232 kommunikation bytes verloren


Autor: BERG (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Ich muss grössere Datenmengen (ca. 1MB) über RS232 vom uC auf den PC 
bringen.

ich verwende die std. Uart einstellungen 115200 N 1.

Irgendwie erhalte ich beim PC jedoch nur ca 80% der Daten wenn ich den 
Bus voll auslaste.

Die Daten welche ich erhalte scheinen korrekt zu sein (es fehlen einfach 
n paar), desshalb vermute ich dass es sich um kein timing problem 
handelt.

Ich habe viel mehr den verdacht, dass Linux beim auslesen versagt, aber 
ist dies überhaupt möglich?? (Auslesethread macht nichts auser auslesen 
und abspeichern in ein Buffer im Ram, sleep ist auf 10us...(std. PC (P4 
3GHz oder so))

Autor: Zwölf Mal Acht (hacky)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kein Protokol ? Wenn die Baudarte aufm uC nicht genau stimmt geschieht 
genau das.

Autor: Johann L. (gjlayde) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Um das zu vermeiden gibt's Flußsteuerung, in Hardware (RTS/CTS) bzw. 
Software (XOn/XOff)

RS-232: Flußsteuerung

Autor: BERG (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey noch Was schrieb:
> Kein Protokol ? Wenn die Baudarte aufm uC nicht genau stimmt geschieht
> genau das.

Wenn die Baudrate nicht genau stimmen würde, dann doch würden doch auch 
die Bytes die ich empfange irgend ein unsinn ergeben, oder?

Insbesondere wegen der Tatsache, dass 80% der Daten korrekt und 20% der 
Daten verlohren sind, denke ich eher an ein Buffer overflow problem.

Die verbindung ist ohne Flusskontrolle also nur TXD,RXD und GND

Autor: BERG (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
a ja noch vergessen anzufügen:

Eine Flusskontrolle ist doch eher historisch bedingt und heute eher 
Obsolete, ich denke jeder modernere PC sollte doch in der lage sein 115k 
Baud 100%ig ausgelastet abzuarbeiten, und sommit ist doch die 
Flusskontrolle überflüssig. Giebt es noch Anwendungen die wirklich ne 
Flusskontrolle benötigen?

Autor: Guido C. (guidoanalog)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

wenn Du die Daten nicht schnell genug aus dem Pufferspeicher 
"herausholst", hast Du ohne Flusssteuerung die von der geschilderten 
Probleme. Hier ist auch entscheidend welches Programm Du PC-seitig 
verwendest. Manche Terminalprogramme geben bei der von Dir angegebenen 
Geschwindigkeit schon auf.

Kannst Du keine Software Flusssteuerung (XOn/XOff) realisieren? Ohne 
Flusssteuerung wäre mir die Übertragung nicht robust genug.

Mit freundlichen Grüßen
Guido

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
RS232?

Neue PCs haben doch sowieso keine RS232 mehr drin. Prinzipiell wäre
ein Einsatz eines FT232R oder was ähnliches sinnvoll. Allerdings
wird Du um eine Flusssteuerung oder ein "Frame" Format nicht rumkommen.

Schau dir mal das X-Modem Protokoll (Appnote von Atmel AVR350) an.
Damit kannste dann den ganzen Dtenblock CRC gesichert und mit ARQ 
übertragen lassen. Das Xmodem sollte von jedem Terminalprogramm 
unterstützt werden oder
relativ einfach selber implementiert werden können.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.