www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PIC, RS232, Handy, SMS auslesen


Autor: Robby (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
angeregt durch www.fernwirken.tk versuche ich, eine Fernbedienung
mittels Handy und SMS aufzubauen. Ich verwende einen PIC 16F876 (20
MHz), Handy ist ein Siemens C35. Probleme habe ich mit der Auswertung
eingegangener SMS. Ich muß in der SMS bestimmte Zeichen erkennen. Dazu
sende ich an das Handy per USART den Abfragebefehl (Modem AT-Kommando).
Darauf anwortet das Handy z.B. so:
....
+CMGL: 1,1,,22

0791947122723033240C91947112234567800004030111252154003C5A413
....

Um die entsprechenden Zeichen in dieser Zeichenfolge zu erkennen, mache
ich folgendes:

...
siehe Anhang
...


Mein Problem ist, dass die Zeichen nur sehr unsicher erkannt werden. Es
klappt vielleicht bei 1 von 10 Versuchen, sogar relativ unerheblich wie
viele Zeichen ich auswerte. Mir ist auch nichts schlaueres als die
Subtraktion eingefallen um die Zeichen zu erkennen (wie könnte man es
anders / besser machen ?). Wenn ich die Sendung vom Handy am PC mittels
Terminal mitlese (angebunden über RS232-Schnittstelle MAX232) stelle
ich fest, daß dort immer alle Zeichen völlig korrekt ankommen.

Das Handy ist direkt mit dem PIC verbunden (Handy Pin 5-TX an PIC Pin
18-RX, Handy Pin 6-RX an PIC Pin 17-TX). An Handy Pin 5-TX-PIC Pin
18-RX messe ich in Ruhezustand ca. 3,3 V, dürfte als H-Pegel reichen.
Die Kommunikation funktioniert auch prinzipiell, z.B funktioniert eine
Routine zum Senden von SMS völlig problemlos.

Hat jemand eine Idee, wo das Problem liegen könnte ?

Vielen Dank + Gruß

Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ähm...nach such mal nach PDU und SMS dann wirst du docs zum sms format
finden...dann decodierst du die sms und schon weist du was rein
kommt...

73 de oe6jwf

Autor: Robby (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Antwort.
Ich weiß was PDU-Mode ist. Ich will die SMS allerdings gar nicht
dekodieren. Ich will einfach nur bestimmte, festgelegte Zeichenfolgen
in der SMS erkennen (von denen ich natürlich weiß, daß sie in der SMS
vorkommen müssen, wenn es die richtige SMS ist). Dabei wäre mir egal ob
die codiert im PDU-Mode vorliegt oder als Klartext im Text-Mode,
allerdings arbeitet das C35 nur im PDU-Mode. Wenn ich z.B. weiß, daß in
der vom Handy zum µC geschickten Zeichenfolge ein "C" und eine "9"
vorkommen müssen (wenn es die richtige SMS ist), brauche ich ja nur
nach "C" und "9" suchen. Was das in Wirklichkeit (übersetzt) heißt,
ist mir in dem Moment egal. Problem ist einfach, daß der PIC irgendwie
diese Folge von Zeichen mit meiner Routine nicht erkennt, obwohl sie
ganz sicher vom Handy kommt (kann ich in verschiedenen
Terminal-Programmen verfolgen). Ich vermute, daß ich irgend einen
logischen Fehler im Programm habe, finde ihn aber nicht.
Danke trotzdem !

Autor: xx_olli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi folks,

hab das gleiche mal mit ner C-Control probiert.
Dat Problem ist, dass die angeflogenen Zeichen zu langsam entsorgt
werden. Und da du RS232 ASYNCHRON berteibst, gibts auch kein
Halten mehr.
Nimm ne schnellere RS232-Schnittstelle oder Puffer den Datenstrom
sonstwie in Echtzeit zwischen.

C ya s00n
xx_olli

Autor: mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi

Mit deinem Assemblercode kann ich dir nicht helfen, aber um eine
Auswertung der PDU wirst du nicht herumkommen.
Wenn du dir das PDU-Format ansiehst wirst du sehen dass vor der
eigentlichen Textnachricht eine ganze Menge an Infos steht. Unter
anderem Absendernummer, SMSC-Nummer, Zeitinfos und wie lang jeder
dieser Teile ist. Mit diesen Daten kannst du dir zuverlässig die Infos
aus der Message herausholen, die du brauchst.
Die Tatsache das die Daten mit 19200Baud ankommen könnte dir auch
Probleme machen sofern dein PIC zu niedrig getaktet wird.


MfG
Mike

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.