Hallo,
ich hab vor Tagen mein altes Sony Ericsson W810 ausgekramt und diverse
Dinge via Bluetooth (Serielle Schnittstelle) ausprobiert. Da gibts (gabs
mal) so ein schönes Dokument mit allen möglichen AT-Commands.
Nun würde ich gern via GPRS Daten versenden und zwar später auch mal
über den µC. Testen würde ich das Ganze gern mal am PC via Terminal.
Bis jetzt hab ich folgendes hinbeckommen (Stichwort PDP Context):
AT+CGDCONT?<\r><\r><\n>
+CGDCONT: 1,"IP","internet.victorvox","0.0.0.0",0,0
+CGDCONT: 2,"IP","internet.victorvox","0.0.0.0",0,0
+CGDCONT: 3,"IP","web.vodafone.de","0.0.0.0",0,0
OK
AT+CGATT=1<\r><\r><\n>
OK
AT+CGACT=1,1<\r><\r><\n>
OK
und bei kommt beim AT-Command AT+CGDATA="PPP",1 folgendes zurück:
AT+CGDATA="PPP",1;<\r><\r><\n>
CONNECT
~?}#?!}!}!} }8}#}$?#}(}"}'}"}"}&} } } } }%}&????}4?~
~?}#?!}!}"} }8}#}$?#}(}"}'}"}"}&} } } } }%}&????^A~
~?}#?!}!}#} }8}#}$?#}(}"}'}"}"}&} } } } }%}&??????~
~?}#?!}!}$} }8}#}$?#}(}"}'}"}"}&} } } } }%}&?????m~
~?}#?!}!}%} }8}#}$?#}(}"}'}"}"}&} } } } }%}&????}2?~
~?}#?!}!}&} }8}#}$?#}(}"}'}"}"}&} } } } }%}&????Xv~
~?}#?!}!}'} }8}#}$?#}(}"}'}"}"}&} } } } }%}&??????~
~?}#?!}!}(} }8}#}$?#}(}"}'}"}"}&} } } } }%}&?????4~
~?}#?!}!})} }8}#}$?#}(}"}'}"}"}&} } } } }%}&????}8?~
~?}#?!}!}*} }8}#}$?#}(}"}'}"}"}&} } } } }%}&????R/~
NO CARRIER
Jetzt weiß ich gar nicht was der von mir will. Was ich bisher
herausgefunden hab ist, dass es sich scheinbar um das Nachrichten im
PPP-Protokol handelt. Die ersten zwei und das letzte Asci-Zeichen deuten
darauf hin. Ich habe mir das ganze mal in Binär und Hex angeschaut.
Scheinbar übermittelt er als Protokoll PAP als inner Nachricht. Wie
komme ich nun an dieses Passwort für PAP?
Kennt sich hier überhaupt jemand mit GPRS verbindungen aus bzw hat den
entsprechenden Stack schon implementiert?
Gruß an alle ehrlichen Helfer
Das sieht doch ganz gut aus.
PPP ist in RFC1661 beschrieben. Zum Einlesen starte eventuell mit
http://de.wikipedia.org/wiki/Point-to-Point_Protocol.
Zu Beginn der PPP-Session wirst du dich beim Provider anmelden müssen.
PAP ist eins der dafür möglichen Authentisierungsverfahren (Usernamen
und Passwort).
Zur Implementation: Unter unixartigen OS erledigt das Protokoll ein
separater Prozess, der PPP-Daemon pppd. Du kannst dir ja mal den
Sourcecode ansehen. Für andere Umgebungen müsstest du mal suchen. Kann
sein, es gibt schon Ports.
Was willst du denn als den darauf aufsetzenden IP-Stack verwenden?
Grüße
Stefan
Nachtrag: LwIP http://en.wikipedia.org/wiki/LwIP hat anscheinend bereits
PPP-Support eingebaut.
Till Xxx schrieb:> Nun würde ich gern via GPRS Daten versenden und zwar später auch mal> über den µC. Testen würde ich das Ganze gern mal am PC via Terminal.
Hallo Till,
nur damit ich dich richtig verstehe - du willst eine GPRS-Verbindung ins
Internet aufbauen? Oder was genau hast du vor? Ist das betreffende SIM
für Internet-Zugang freigeschaltet? Tarif? Provider?
Stefan Wagner schrieb:> Das sieht doch ganz gut aus.>> PPP ist in RFC1661 beschrieben. Zum Einlesen starte eventuell mit> http://de.wikipedia.org/wiki/Point-to-Point_Protocol.
Ja genau den Artikel hab ich mir schon durchgelesen.
> Zu Beginn der PPP-Session wirst du dich beim Provider anmelden müssen.> PAP ist eins der dafür möglichen Authentisierungsverfahren (Usernamen> und Passwort).
Und genau da liegt mein Problem. Die Messages die ich über das Terminal
empfange, kann ich nicht ganz übersetzten bzw. eigentlich fast gar
nicht. Die ersten zwei Byte stimmen noch mit dem im Wiki-Artikel
überein. Das dritte Byte (Control-Byte) hab sehe ich leider nicht. Das
vierte und fünfte Byte müsste ja das enthaltene Protokoll enthalten
(siehe Artikel) ich bekomme die Bytes für PAP in umgekehrter Reihenfolge
(wahrscheinlich LSB first). Und dann hab ich auch keine Ahnung mehr was
der rest der Botschaft soll. Für meinen Provider (glaub Discoplus oder
Discotel) gibts keine Zugangspasswörter oder Benutzernamen.
> Zur Implementation: Unter unixartigen OS erledigt das Protokoll ein> separater Prozess, der PPP-Daemon pppd. Du kannst dir ja mal den> Sourcecode ansehen. Für andere Umgebungen müsstest du mal suchen. Kann> sein, es gibt schon Ports.
Danke. Ich werde mal danach suchen.
> Was willst du denn als den darauf aufsetzenden IP-Stack verwenden?
hab ich mir bis jetzt noch keine Gedanken gemacht. Ist für mich jetzt
aber auch noch nicht entscheidend. Wenns zu kompliziert wird, muss ich
die GPRS übertragung sowieso aufgeben. Hab da noch nicht viel Erfahrung
und alles was ich finde is sehr mager.
> Grüße>> Stefan>> Nachtrag: LwIP http://en.wikipedia.org/wiki/LwIP hat anscheinend bereits> PPP-Support eingebaut.
Markus Weber schrieb:> Till Xxx schrieb:>> Nun würde ich gern via GPRS Daten versenden und zwar später auch mal>> über den µC. Testen würde ich das Ganze gern mal am PC via Terminal.>> Hallo Till,> nur damit ich dich richtig verstehe - du willst eine GPRS-Verbindung ins> Internet aufbauen? Oder was genau hast du vor? Ist das betreffende SIM> für Internet-Zugang freigeschaltet? Tarif? Provider?
Hallo Markus,
ja genau. Mir geht es erst einmal darum zu verstehen wie ich Daten über
das Handy verschicken kann, ohne jedesmal eine SMS senden zu müssen.
Lieber wäre mir eine GPRS-Verbindung aufzubauen. Provider ist Discotel
und irgendein 9 Cent Tarif. Internet-Zugang ist denke ich schon
freigeschaltet, wenn ich über GPRS Wap nutzen kann. Also ja, ich bin mir
recht sicher.
Till Xxx schrieb:> ja genau. Mir geht es erst einmal darum zu verstehen wie ich Daten über> das Handy verschicken kann, ohne jedesmal eine SMS senden zu müssen.> Lieber wäre mir eine GPRS-Verbindung aufzubauen. Provider ist Discotel> und irgendein 9 Cent Tarif. Internet-Zugang ist denke ich schon> freigeschaltet, wenn ich über GPRS Wap nutzen kann. Also ja, ich bin mir> recht sicher.
Ich bin mir nicht sicher, aber ich denke, das Protokoll brauchst du
nicht selbst zu programmieren. Es schaut so aus, als würde sich das
Modem schon darum kümmern, wenn du es mit den richtigen Parametern
versorgst. Laut Doku müssten dafür die AT-Kommandos AT*EIAAUW und
AT*EIAAUR zuständig sein.
Der Verbindungsaufbau geschieht dann – wahrscheinlich – wie bei GPRS und
UMTS üblich mit ATD "*99#".
T. N. schrieb:> Ist das jetzt ein Configuration Request vom Provider an das Mobiltelefon
Wenn du die LCP-Pakete empfangen hast, kam das vom Provider.
Das Telefon an sich ist an der Stelle übrigens bereits "transparent",
d.h. dein System "redet" direkt mit dem Einwahlknoten des Providers.
Grüße
Stefan
Stefan Wagner schrieb:> T. N. schrieb:>> Ist das jetzt ein Configuration Request vom Provider an das Mobiltelefon>> Wenn du die LCP-Pakete empfangen hast, kam das vom Provider.
Sicher? Ich hab immer zweifel ob es nicht vom Telefon an das Terminal
gesendet wurde. Z.b. so wie es in diesem Dokument
http://www.uniroma2.it/didattica/iss/deposito/1_ppp.pdf
unter "Link establishment" beschrieben wird. Ich bekomme als ans
Terminal nur eine Kopie von dem, was an den Provider geschickt wurde.
>> Das Telefon an sich ist an der Stelle übrigens bereits "transparent",> d.h. dein System "redet" direkt mit dem Einwahlknoten des Providers.
Ok, du scheinst dir sicher zu sein.... Trotzdem lässt mich das Dokument
zweifeln.
> Grüße>> Stefan
T. N. schrieb:
Ab der Statusmeldung "CONNECT" des Telefons hast du eine (serielle)
Datenverbindung mit dem angewählten System (vermutlich ein
Einwahlknoten). Das Telefon verhält sich ab da transparent, d.h. alles
gesendete geht direkt weiter zur Gegenseite, alles empfangene kam direkt
von dort.
Dein PC (bzw. später dein µC) kommuniziert direkt mit diesem Endpunkt.
> Z.b. so wie es in diesem Dokument> http://www.uniroma2.it/didattica/iss/deposito/1_ppp.pdf> unter "Link establishment" beschrieben wird. Ich bekomme als ans> Terminal nur eine Kopie von dem, was an den Provider geschickt wurde.
Ich befürchte, da hast du was falsch verstanden. Auf welche Folie
beziehst du dich denn?
Grüße
Stefan
T. N. schrieb:> Folie 12 unten
Das ist der beidseitige LCP-Handshake zwischen den beiden Endpunkten des
PPP-Links. Wo siehst du denn da das Modem?
Hast du eventuell die Bezeichnung "NAS" so interpretiert, dass das dein
Modem sei? Oder hat dich die Bezeichnung "PHY" für den Layer unterhalb
LCP auf die falsche Fährte gebracht?
Egal was: Schau dir noch mal die untere Folie auf Seite 1 an.
Dein Telefon entspricht dem links unten im gelben Kästchen gezeichneten
Modem. Dein "Access Network" ist das GSM/GPRS-Netz. Der Network Access
Server (NAS) steht irgendwo bei deinem Provider.
In dieser Situation ist der GPRS-Transport über das Telefon dein
"PHY"-Layer, auch wenn er tatsächlich intern wesentlich komplexer ist.
Mit "AT+CGDATA="PPP",1;" baut dein Telefon (= Modem) eine byteserielle
Verbindung zum NAS auf. Sobald es den abgeschlossenen Verbindungsaufbau
meldet ("CONNECT") hast du eine direkte Verbindung zum NAS.
Alles weitere läuft auf dem Level von PPP zwischen deinem System und dem
NAS ab.
Ok?
Grüße
Stefan
Ok. ABER: Ich hab die Folie 12 "Link Establishment" so interpretiert,
dass der "User" mein PC über das Modem ist und das "NAS" der Provider.
Und auf der Seite wird also ein "Configuration Request" zuerst vom User
ans NAS geschickt und dann müsste ein "Configuration Ack" vom NAS
kommen.
Ich jedoch seh ja nur ein "Configuration Request" an meinem Terminal
ankommend und interpretier das so, dass dieses entweder die Kopie von
dem ist, was vom Modem (Telefon) an das Nas geschickt wird und mir das
über das Terminal als Information zur Verfügung steht.
Wenn es jetzt ein "Configuration Request" vom NAS sein sollte, dann
stimmt ja die Abbildung nicht, weil das NAS als erste Nachricht
hoffentlich ja ein "Configuration ACK" schicken sollte.
T. N. schrieb:> Ich hab die Folie 12 "Link Establishment" so interpretiert,> dass der "User" mein PC über das Modem ist und das "NAS" der Provider.
Korrekt.
> Und auf der Seite wird also ein "Configuration Request" zuerst vom User> ans NAS geschickt und dann müsste ein "Configuration Ack" vom NAS> kommen.
In dieser Darstellung, ja. Das ist nach meiner Erinnerung aber nicht
zwingend so, sondern implementationsabhängig. Es kann also auch die
"angerufene Seite" anfangen.
> Ich jedoch seh ja nur ein "Configuration Request" an meinem Terminal> ankommend und interpretier das so, dass dieses entweder die Kopie von> dem ist, was vom Modem (Telefon) an das Nas geschickt wird und mir das> über das Terminal als Information zur Verfügung steht.
Nochmal: Dein Modem sendet gar nichts von sich aus. Für alles, was von
deiner Seite aus gesendet werden soll, ist dein PC zuständig.
> Wenn es jetzt ein "Configuration Request" vom NAS sein sollte, dann> stimmt ja die Abbildung nicht, weil das NAS als erste Nachricht> hoffentlich ja ein "Configuration ACK" schicken sollte.
Ich habe den Eindruck, du hast das Protokoll und seine Abläufe noch
nicht vollständig verstanden.
PPP ist vom Grundsatz her ein symmetrisches Protokoll, es gibt keinen
Master und keinen Slave. Das heißt, dass alle Abläufe zweimal
stattfinden, je einmal für jede Übertragungsrichtung.
Du sendet ein Configuration Request und wartest auf die Antwort des NAS
und erwartest parallel dazu ein Configuration Request vom NAS (und
antwortest darauf).
Grüße
Stefan