Forum: PC-Programmierung Anfängerhilfe AT-Befehle GSM-Modem


von Rentner O. (rentner323)


Lesenswert?

Hi,

Ich hab hier nen GSM-Modem liegen (CT63)

Was ich möchte ist mit QT über serielle Schnittstelle SMS empfangen und 
senden. Arbeite das 1. mal mit AT-Befehlen, und habe viele fragen:


Für die Pin Eingabe habe ich folgendes gefunden:
AT+CPIN? PIN-Abfrage
AT+CPIN=nnnn PIN Eingabe

Muss ich AT+CPIN? aufrufen? wozu? kann ich nicht gleich mit AT+CPIN=nnnn 
einfach die Pin übergeben?

Muss ich beim starten oder sonst irgendwann AT+COPS=0 (automatisch 
Einbuchung) übergeben?

Reicht folgende start Routine:
AT
---> auf OK warten, sonst immer wieder AT senden
AT+CPIN=0123
auf OK warten
//fertig

Wenn das Modem eine SMS empfängt, schickt es mir "von sich aus" 
irgendwelche Daten über das RS232? Oder muss ich einfach regelmäßig 
prüfen ob neue SMS da sind?

Gibt es irgendwo ein Beispiel für eine "minimalistische Startroutine"?
Muss ich das Modem irgendwie "herunterfahren" oder einfach Stecker 
ziehen?

Gruß

von Karl H. (kbuchegg)


Lesenswert?

Ein kleiner Tipp.

Bei derartigen Sachen ist es eine extrem gute Idee, nicht gleich mit 
Programmierung loszulegen, sondern
* das Modul an eine serielle Schnittstelle kabeln (das brauchst du 
sowieso)
* ein Terminalprogramm aufmachen, auf die richtige Baudrate einstellen
* die Kommandos durch händisches eintippen auszuprobieren und auch zu 
beobachten, wie das Gerät (in deinem Fall eben das GSM Modem) reagiert.


Genau aus dem Grund sind die Befehle (der sog. AT-Befehlssatz) nämlich 
allesamt einfache Textkommandos. Weil man da die wenigsten 
Schwierigkeiten hat und weil man die zur Not auch einfach als Mensch, 
ohne sich die Finger zu verrenken, per Terminal zum Gerät senden kann 
und sich die Reaktion des Geräts im Terminal wieder ansehen kann.


Also: einfach mal 'das Programm' für kurze Zeit vergessen und manuell 
mit dem Gerät 'spielen' um sich mit ihm und den Kommandos, in Abstimmung 
mit dem Handbuch, vertraut machen.

von Olek (Gast)


Lesenswert?

Ich hau den Link mal hier in die Runde, damit konnte ich damals meine 
GSM Probleme/Aufgaben lösen und weiter entwickeln.

http://m2msupport.net/m2msupport/software-and-at-commands-for-m2m-modules/

von Rentner O. (rentner323)


Lesenswert?

Karl Heinz schrieb:
> Bei derartigen Sachen ist es eine extrem gute Idee, nicht gleich mit
> Programmierung loszulegen, sondern
> * das Modul an eine serielle Schnittstelle kabeln (das brauchst du
> sowieso)
> * ein Terminalprogramm aufmachen, auf die richtige Baudrate einstellen
> * die Kommandos durch händisches eintippen auszuprobieren und auch zu
> beobachten, wie das Gerät (in deinem Fall eben das GSM Modem) reagiert.

Das hab ich ja schon getan... löst meine Frage für einen "richtigen" 
Startup aber nicht.

von Peter Pan (Gast)


Lesenswert?

Rentner Opa schrieb:
> löst meine Frage für einen "richtigen" Startup aber nicht.

Vielleicht hilft dir folgendes:
http://www.ct63.de/data/CT63_AT_commands.pdf

von Karl H. (kbuchegg)


Lesenswert?

Rentner Opa schrieb:
> Karl Heinz schrieb:
>> Bei derartigen Sachen ist es eine extrem gute Idee, nicht gleich mit
>> Programmierung loszulegen, sondern
>> * das Modul an eine serielle Schnittstelle kabeln (das brauchst du
>> sowieso)
>> * ein Terminalprogramm aufmachen, auf die richtige Baudrate einstellen
>> * die Kommandos durch händisches eintippen auszuprobieren und auch zu
>> beobachten, wie das Gerät (in deinem Fall eben das GSM Modem) reagiert.
>
> Das hab ich ja schon getan... löst meine Frage für einen "richtigen"
> Startup aber nicht.

Wieso löst es das nicht?

Stell dir fraglichen Werte ein, schalte das Modem aus und wieder ein und 
sieh nach ob sie noch aktiv sind.

von Chris K. (kathe)


Lesenswert?

Suche mal nach 3gpp 27.007 dort findest du alle at Befehle.

Ansonsten das modem abfragen welche Befehle es kann mit
At+clac

Gruss Chris

von 167-761 (Gast)


Lesenswert?

>Wenn das Modem eine SMS empfängt, schickt es mir "von sich aus"
>irgendwelche Daten über das RS232? Oder muss ich einfach regelmäßig
>prüfen ob neue SMS da sind?
Am einfachsten ist regelmäßiges nachschauen (pollen). Alle uC die ich 
kenne können einen Interrupt bei Empfang eines Zeichens auslösen. Was 
ist dein Ziel-Hardware? AVR? PC? Du mußt dann halt eine entsprechende 
Routine schreiben. Ist zwar wesentlich sportlicher als pollen aber dafür 
eleganter.
Könnte aber auch sein, daß dir das GSM-Modul einen gewissen Luxus bietet 
und bei vollem Empfangspuffer eine Portleitung schaltet (würde sich im 
Datenblatt finden lassen).

Ansonsten kann ich nur das bestätigen was Karl Heinz schrieb.
>Das hab ich ja schon getan... löst meine Frage für einen "richtigen"
>Startup aber nicht.
Du kannst einen "richtigen" Startup des GSM-Moduls komplett über die 
manuelle Eingabe übers Terminal simulieren, nur die Ablaufzeit stimmt 
halt nicht. Möglicherweise bietet Hyperterminal sogar die Möglichkeit, 
ein Textfile zum GSM Modul zu schicken - zum testen könnte man dann alle 
Parameter dort eintragen und das Modul ist innerhalb von ner halben 
Sekunde parametriert.

von Peter Pan (Gast)


Lesenswert?

@167-761
Ich glaube, du hast das Problem missverstanden...
Es geht nicht darum, auf dem uC festzustellen, ob Zeichen empfangen
wurden, sondern ob das GSM Modul eine SMS empfangen hat.
Da ist der uC erst einmal egal, genauso ob Pollen oder Interrupt
benutzt wurde.

Hast du das mit dem Textfile schon mal probiert?
Das mag bei einem einzelnen AT-Kommando noch gehen,
aber bei einem 2. AT Kommando in der Textdatei gibt es dann
schon Probleme...außer das Terminalprogram schickt
die Zeichen so langsam, dass das GSM Modul eine Chance hat
dazwischen das Kommando in Ruhe auszuführen.

von Karl H. (kbuchegg)


Lesenswert?

Ja, aber der springende Punkt ist doch, dass man all diese Dinge im 
Vorfeld mit einem Terminal ausprobieren und erkunden kann. Das klingt 
auf den ersten Blick wie verlorene Zeit, ist es aber nicht.

Noch bei allen Geräten mit Textschnittstelle, egal ob Modem oder Drucker 
oder Plotter oder RFID Leser oder Spektrumanalyzer oder Spektrograph 
oder ..., hat es sich im weiteren Verlauf immer als hilfreich erwiesen, 
zuvor einfach mal das Gerät händisch per Terminal angesteuert zu haben. 
Sei es jetzt um Konfigurationswerte auf die Schnelle auszuprobieren, sei 
es um unklare Stellen im Handbuch zu klären, sei es um unterschiedliche 
Reihenfolge der Kommandos auszuprobieren, sei es um zu klären was genau 
denn jetzt eigentlich als Rückmeldung in welchen Fällen kommt, sei es um 
festzustellen wie ein Modem bei eingehendem Anruf reagiert, sei es um 
bewusst Fehler zu provozieren und zu beobachten was das Gerät macht 
(sowohl physikalisch als auch an der Schnittstelle), sei es um 
auszuprobieren ob es einen \n als Trenner akzeptiert (wenn das so 
vorgesehen ist) oder ob es ein \r oder gar beides sein muss, etc. etc.

Es war noch immer hilfreich da ein paar Stunden investiert zu haben und 
sei es nur um die Gewissheit zu haben, dass man die Dinge, die man in 
der Doku gelesen hat, auch richtig verstanden hat. Und bis jetzt war bei 
allen Geräten, die ich in den Fingern hatte, noch immer irgendwas dabei, 
was ich in der Doku missverstanden habe und das sich dann beim Spielen 
mit dem Gerät schnell und einfach hat klären lassen.


Das zum Beispiel
> Wenn das Modem eine SMS empfängt, schickt es mir "von sich aus"
> irgendwelche Daten über das RS232? Oder muss ich einfach
> regelmäßig prüfen ob neue SMS da sind?
lässt sich in 2 Minuten klären.
Am Terminal ankabeln, SMS zum Gerät schicken und dann sieht man im 
Terminal ob was kommt oder nicht. Was soll daher die Frage? Mit einem 
ersten Versuch am Terminal ist die Frage schneller geklärt als sie hier 
im Forum getippt wurde.
Eines ist natürlich klar: Einfach an die serielle ankablen, Terminal 
starten, AT eintippen und das Modem antwortet mit OK, dann 'Super' sagen 
und das Terminal wieder ausschalten, ist zu wenig. Da muss man halt mal 
ein wenig nachdenken, wie man die Dinge geklärt kriegt, die man klären 
möchte. Aber das sehen wir hier im Forum ja immer öfter, das man den 
Leuten eigenständiges systematisches und zielgerichtetes arbeiten erst 
mal beibringen muss.

: Bearbeitet durch User
von SL55 (Gast)


Lesenswert?

Rentner Opa schrieb:
> Wenn das Modem eine SMS empfängt, schickt es mir "von sich aus"
> irgendwelche Daten über das RS232? Oder muss ich einfach regelmäßig
> prüfen ob neue SMS da sind?

Bei manchen Geräten gibt es eine sogenannte new message indication, z.B. 
via "AT+CNMI=1,1,0,0,1\r\n" beim SL55

Aber wie bereits mehrfach erwähnt, ist es ratsam im Vorfeld vie HTerm 
o.a. zu probieren. Jedes Gerät kann anders reagieren.

von Chris (Gast)


Lesenswert?

Also zur Hilfestellung:
AT+CIND command anschauen "message" message received (0-1)  abfragen.
AT+CGSMS command anschauen Select service for MO SMS messages +CGSMS
und weitere Befehle nach "3GPP 27.007"
http://www.etsi.org/deliver/etsi_ts/127000_127099/127007/10.08.00_60/ts_127007v100800p.pdf

Eventuell noch das "reporting" zu Hilfe nehmen.

Aber genaueres was das "Modem" kann gibt nur das Datenblatt an.

Wie schon mehrfach erwähnt probier das erst mal mit einem 
Terminalprogramm aus. (Hterm ist gut nur unter Win 7 als admin ausführen 
nicht vergessen).

Gruss Chris

von sebastian m. (sebastian_m96)


Lesenswert?

Hallo,
meines wissens bieten viele Modems die Möglichkeit dich zyklisch
darüber zu informieren was in ihnen vorgeht.
Und wenn du nicht zu viele Kommandos schickst kannst du ja per software 
am pc pollen.

Und sosnt zur Einwahl:
Ich hatte mit dem ez340 zu tun,
da war es so das am Anfang das Autobauding stand was heist, dass man
AT solange sendet bis kein Kauderwelsch zurückkommt sondern AT+OK oder 
sowas in die Richtung.
Danach kannst du einfah AT+CPIN=0123\r\n schicken
und wieder warten bis eine Bestätigung kommt.
Bei mir war es so das das schon eine Weile gedauert hat.
Weil sich das GSM Modem gleich noch ins Netz gewählt hat.

Irgendwann kam dann die Antwort Call Ready und noch irgendwas was ich 
aber grade nicht im Kopf habe.

Beste Grüße

von Hanns-Jürgen M. (yogy)


Lesenswert?

Falls das GSM-Modem bei SMS Empfang ein "Ring" Signal liefert, kann 
damit eine IRQ-Routine angestoßen werden, die die Kommunikation 
imnititiert. Falls nicht, wie bei meinem TC35-kompatiblem-China-Modem 
(entgegen der Beschreibung) hilft nur Pollen.

von Rentner O. (rentner323)


Lesenswert?

Danke für die Infos,

habe es jetzt am laufen nach der Vorgehensweise von sebastian_m96, 
SMS-Empfang wird vom PC alle 10 Sekunden "gepollt".

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.