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
Gast
#4817349
Ich würde die Länge des Startbits messen. Aber wie es tatsächlich IST, weiss ich nicht.
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.
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
Gast
#4817372
Danke für die Antworten. Ist das auch zwingend so, wenn ich das AT- Kommando von meinem Arduino Mega 2560 sende?
Gast
#4817379
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.
Gast
#4817382
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.
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.
Gast
#4817400
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
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
Gast
#4817419
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.
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.
Mal abgesehen vom Sync Byte kann man das Stopbit relativ leicht finden, wenn die Länge am standard 1,5 ist.
Wenn nur EIN Zeichen gesendet wird, also Pause-Zeichen-Pause, dann müsste es auch immer funktionieren. Unabhängig vom Zeichen selbst.
Nee, wahrscheinlich erreicht man eine sichere Erkennung mit exakt ZWEI Zeichen
Gast
#4817549
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
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.