Forum: Mikrocontroller und Digitale Elektronik Baud-Erkennung


von Thomas H. (datatom)


Lesenswert?

Hallo zusammen,

bei der Kommunikation zwischen meinem GSM Modul und HTERM vom Laptop 
aus, gebe ich nur die Baudrate bei HTERM vor. Bei dem GSM Modul steht 
als Baudrate auto-baud eingetragen. Die Kommunikation klappt 
einwandfrei.

Ich frage mich allerdings, woher dem GSM Modul die Baudrate von HTERM 
bekannt ist. Sendet HTERM die Baudrate als Parameter mit?

Vielen Dank.

Grüße

datatom

von THOR (Gast)


Lesenswert?

Ich würde die Länge des Startbits messen. Aber wie es tatsächlich IST, 
weiss ich nicht.

von Jim M. (turboj)


Lesenswert?

Die meisten Modems können mit dem "A" von "AT" an Hand der Flanken die 
Baudrate automagisch erkennen.

Gibts auch bei manchen µCs, z.B. im UART vom LPC1768 von NXP.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Thomas H. schrieb:
> Sendet HTERM die Baudrate als Parameter mit?

Nein.

Ein verbreiteter Autobaudmechanismus ist das AT-Kommando aus dem 
Hayes-Befehlssatz von Modems (wie von Jim schon erwähnt).

https://en.wikipedia.org/wiki/Hayes_command_set#Autobaud

von datatom (Gast)


Lesenswert?

Danke für die Antworten.

Ist das auch zwingend so, wenn ich das AT- Kommando von meinem Arduino 
Mega 2560 sende?

von datatom (Gast)


Lesenswert?

Zusatz: Weil das Senden vom Arduino MEGA 2560 zum GSM Modul niht klappt. 
Wohl aber das Senden vom Arduino MEGA 2560 zu HTERM auf dem Laptop. Von 
daher scheint das reine Senden ok zu sein.

von Erwin D. (Gast)


Lesenswert?

datatom schrieb:
> Danke für die Antworten.
>
> Ist das auch zwingend so, wenn ich das AT- Kommando von meinem Arduino
> Mega 2560 sende?

Wenn die Autobaud-Erkennung im GSM-Modul auf dem AT-Kommando basiert, 
dann ist es egal, wo das AT herkommt.
Probiere es doch einfach aus, ob es funktioniert. Die Wahrscheinlichkeit 
ist groß, daß es klappt.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Nicht jedes GSM-Modul akzeptiert jede Baudrate. Außerdem muss ein 
AT-Kommando korrekt aufgebaut sein, um akzeptiert zu werden - hier wird 
gerne das CR (\r) am Ende vergessen.

von Georg (Gast)


Lesenswert?

THOR schrieb:
> Ich würde die Länge des Startbits messen

Das geht garnicht, danach kann es ja mit einem 0-Bit weitergehen.

Ausser der Erkennung eines festen Zeichens wie A von AT kann man bei 
beliebigen Texten eine Reihe von Flankenabständen messen, die müssen ein 
Vielfaches des kleinsten vorkommenden Abstands sein, und der ist die 
Zeit für 1 Bit. Ist natürlich aufwendiger und auch nicht 100%ig sicher.

Georg

von Thomas H. (datatom)


Lesenswert?

Die Baudrate beträgt 9600. In der Beschreibung steht zur Höhe der 
Baudrate nur die maximale Höhe über 230 kBit/s.

Das AT Kommando sollte korrekt aufgebaut sein: AT+CPIN=0000\r

von Erwin D. (Gast)


Lesenswert?

Thomas H. schrieb:
> Die Baudrate beträgt 9600. In der Beschreibung steht zur Höhe der
> Baudrate nur die maximale Höhe über 230 kBit/s.
>
> Das AT Kommando sollte korrekt aufgebaut sein: AT+CPIN=0000\r

Na dann sollte das auf jeden Fall auch mit dem ATMega funktionieren.
Das AT-Kommando kannst du auch einfach als AT\r senden. Also ohne 
Funktion. Nur für die Autobaud-Erkennung. Wenn die Kommunikation dann 
funktioniert, also das GSM-Modem die Baudrate erkannt hat, dann kannst 
du die PIN senden. Vorher gibt es ja keine Garantie, daß die Baudrate 
schon erkannt wurde.

von Johnny B. (johnnyb)


Lesenswert?

z.B. beim LIN-Bus (der übrigens auf UART basiert) wird vom Master als 
erstes Byte immer ein SYNC geschickt, welches 0x55 beträgt, also 
1010101. Das kann dann vom Slave sehr einfach ausgewertet werden, um 
seinen Clock entsprechend anzupassen.
In der Praxis wird das genutzt, um in den Slaves auf die teuren Quarze 
verzichten zu können. Es reicht dann ein billiger RC-Oszillator.

von Thomas W. (diddl)


Lesenswert?

Mal abgesehen vom Sync Byte kann man das Stopbit relativ leicht finden, 
wenn die Länge am standard 1,5 ist.

von Thomas W. (diddl)


Lesenswert?

Wenn nur EIN Zeichen gesendet wird, also Pause-Zeichen-Pause, dann 
müsste es auch immer funktionieren. Unabhängig vom Zeichen selbst.

von Thomas W. (diddl)


Lesenswert?

Nee, wahrscheinlich erreicht man eine sichere Erkennung mit exakt ZWEI 
Zeichen

von Georg (Gast)


Lesenswert?

Thomas W. schrieb:
> kann man das Stopbit relativ leicht finden,
> wenn die Länge am standard 1,5 ist

Abgesehen davon, dass 1,5 seit den Zeiten seliger Teletype und 
Lorenz-Fernschreiber kein üblicher Standard mehr ist, kann das auch 
deshalb nicht funktionieren, weil ja keineswegs wieder ein Startbit 
folgen muss - das Stopbit kann beliebig lang sein.

Thomas W. schrieb:
> Wenn nur EIN Zeichen gesendet wird, also Pause-Zeichen-Pause, dann
> müsste es auch immer funktionieren

Wenn man von so lästigen Details absieht wie 5,6,7,8,9 Bit und Parity 
Even, Odd oder keine...

Georg

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.