mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR: Problem Übertragungsgeschwindigkeit


Autor: Sebastian Z. (sz1985)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich bin gerade dabei einen kleinen Teil des MODBus Protokolls auf einem 
Atmega32 zu integrieren. Ich habe aktuell das Problem, dass die Zeit zum 
Empfangen eines Zeichens nicht mit der Zeit laut Baudrate übereinstimmt.

Die Baudrate ist auf 9600 eingestellt, wenn ich einen 8 bit Timer beim 
ersten empfangen zeichen starte und nach Empfang der gesamten Bootschaft 
ausgebe, bekomme ich Zeiten die für mich unerklärlich sind.

11 Bit sind ein Frame und somit komme ich bei einer Baudrate von 9600 
auf eine Zeit pro Frame von 1,1458ms. Der gemessene Wert mittels Timer 
beträgt aber im Schnitt pro Frame ca. 4,5 - 4,6 ms. Kann mir jemand 
sagen, wo mein Fehler liegt?


Vielen Dank im Vorraus!

Gruss

Sebi

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Innerhalb eines Frames kommen die Bits mit 9600 Baud. Zwischen den 
Frames kann sich der Sender beliebig viel Zeit lassen. Wenn du die 
Messung der Framezeit über Framezeit + Zwischenframezeit machst und dann 
durch die Zahl der Frames teilst, kann das die Beobachtung erklären.

Autor: Sebastian Z. (sz1985)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das verstehe ich, aber nach dem Protokoll von MODBus für serielle 
Übertragung darf zwischen 2 Zeichen maximal 1,5 * Framezeit liegen. Die 
Zeit zwischen senden des ersten Frame bis zum nächsten darf 2,5 * 
Framezeit, also 2,86ms sein.

Zwiscchen request und respones muss beim MODBus eine Zeit von 3,5 Frame 
liegen. Dieses Kriterium wollte ich zum erkennen des Ende eines Frames 
und zum "Startschuss" für die respones nehmen.

Das ist so aber leider nicht möglich.

Autor: Sebastian Z. (sz1985)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann das eigentlich an der Schnittstelle liegen.bzw. kann das 
pausenverhalten über Einstellungen im gerätemanager beeinflußen?

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.