PDA

Επιστροφή στο Forum : Σύνδεση siemens κινητού με AT89C51AC2



kokoman
10-01-06, 23:20
Κατ'αρχάς χρόνια πολλά σε όλους και καλή χρονιά.
Έχω να κάνω ένα project σύνδεσης κινητού-μικροελεγκτή.Έχω καλώδιο RS-232 για το κινητό (siemens) και βλέπω ότι επικοινωνεί κανονικά με το hyper terminal (AT commands).Έχω κάνει ένα υποτυπώδες πρόγραμμα στον ελεγκτή (σε assemply),όπου ουσιαστικά περιμένει την σειριακή να στείλει δεδομένα στον SBUF.Σωστά μέχρι εδώ?Θέλω να στέλνω SMS στο κινητό,να το βλέπει ο ελεγκτής (μέσω της ενσωματωμένης σειριακής),να το συγκρίνει με ένα τυποποιημένο μήνυμα που θα το έχω βάλει στο πρόγραμμα και να κάνει μια εργασία.Ας πούμε να ανάβει ένα led.Το πρόβλημά μου είναι μάλλον λίγο χαζό.Δεν ξέρω πως να "πω" στο κινητό να στείλει σειριακά δεδομένα.Το έχω ψάξει λίγο στο διαδίκτυο,αλλά δεν βρήκα κάτι που να βοηθάει.Φαντάζομαι ότι κάτι θα πρέπει να γράψω στον ελεγκτή για μου διαβάζει την πρώτη θέση μνήμης του κινητού (που απ'οτι είδα εκεί φυλάσσονται τα νέα SMS).Πρέπει να του στείλω εντολές ΑΤ?Αν ναι,ξέρει κανείς πώς θα το κάνω με assemply?Αν όχι,άλλη ιδέα?Επίσης τί παίζει με τα "septets" που χρησιμοποιούν τα κινητά?Θα έχω μεγάλο πρόβλημα σε σύγκριση με τα "octets" που χρησιμοποιεί ο ελεγκτής (και όλες οι λογικές συσκευές στον κόσμο-καταραμένα κινητά...)? Παρακαλώ για την βοήθειά σας...έχω πελαγώσει!
Ευχαριστώ προκαταβολικά

apa02gr
11-01-06, 17:11
Ποιο κινητό χρησιμοποιείς? Θα πρέπει να βρεις τις εντολές ΑΤ με τις οποίες επικοινωνεί το κινητό.

leosedf
11-01-06, 20:11
Θα μπορούσες να δείς και τις ΑΤ απ τα modules της siemens το πιθανότερο είναι να είναι οι ίδιες.
http://www.tdc.co.uk/technical/downloads.htm#tc35i
Και συνήθως έτσι συνδέουν μικροελεγκτές η PC με κινητά.

kokoman
11-01-06, 22:38
Το κινητό είναι Siemens CX65 (νομίζω!).Το πρόβλημα δεν είναι ακριβώς ποιες εντολές θα δώσω,αλλά πώς θα τις΄δώσω μέσα από το πρόγραμμα του ελεγκτή(ή με κάποιον άλλο τρόπο τελοσπάντων)

Μανιώτης Δημήτρης
12-01-06, 10:41
εδώ έχει ότι χρειάζεσαι για να αρχίσεις.
Οι εντολές κάνουν για το seimens σου.
Θέλει όμως υπομονή το όλο project :)

http://www.dreamfabric.com/sms/

apa02gr
12-01-06, 11:10
Στείλε μου το email σου με pm για να σου στείλω ένα pdf με τις AT cmds για siemens C35. Πολύ πιθανών να είναι ίδιες οι εντολές. Διάβασε το κεφάλαιο που αναφέρεται στα sms και δοκίμασέ το από το PC. Συνέδεσε το κινητό με το pc και εξωμοίωσε τις εντολές. (CMGL-CMGR)

apa02gr
13-01-06, 08:38
Γεια σου Κώστα,

λοιπόν θα πρέπει να διαβάσεις καλά το manual που σου έστειλα και ύστερα να εφαρμόσεις τις εντολές αυτές μέσα από το PC σου (hyper terminal - dataceble - mobile) ώστε να δεις το response του κινητού.

Ο τηλεχειρισμός μέσω SMS προυποθέτει ότι θα πρέπει να διαβάζεις τα incoming sms να αναγνωρίσεις την εντολή και έπειτα να την εκτελέσεις.

Η τηλεειδοποίηση μέσω sms προυποθέτει ότι θα πρέπει να ειδοποιήσεις τον χρήστη για κάποι event στέλνοντάς του ένα sms. Νωρίτερα βέβαια θα πρέπει να έχεις αποθηκεύσει το νούμερο του χρήστη.

Μερικές από τις εντολές που πιθανόν να χρησιμοποιήσεις είναι:

AT+CMGD=xx : clear memory sms
AT+CMGR=xx : read sms xx
AT+CMGS : send sms.

Χρησιμοποίησε το link του Μ. Δημήτρη πιο πάνω και κατανόησέ το.

Πάντως θέλει υπομονή και πολλές πολλές δοκιμές οι οποίες για να γίνουν εύκολα και γρήγορα απαιτεί τη χρήση 8051 αναπτυξιακού (δες σχετικό pm με webpage).

Καλή τύχη.

kokoman
14-01-06, 02:40
Ευχαριστώ πολύ παιδιά για τις χρήσιμες συμβουλές.Μάλλον βρήκα μια άκρη.Οι 3 ΑΤ εντολές που χρειάζομαι είναι ακριβώς αυτές που είπες φίλε μου.Από ότι σκέφτηκα μέχρι στιγμής μάλλον θα τις γράψω σε ένα string στη ROM του μΕ, και θα τις καλώ με MOVC κάθε φορά που θέλω να τις στείλω στον SBUF και από κει στην σειριακή,χρησιμοποιώντας τους ακροδέκτες RI και TI.Θα το δοκιμάσω,θα το φτιάξω (που θα μου πάει!) και θα ανεβάσω το πλήρες project για να έχουν ένα πάτημα όσοι ασχοληθούν στο μέλλον μ'αυτό.Είδομεν....

Lykos1986
14-01-06, 10:28
To pdf σου είναι πολύ καλό. Κατάλαβα την σύνταξη των εντολών και το τι κάνουν αλλά δεν κατάλαβα κάτι πιο βασικό!!! Το λειτουργικό μέρος του όλου συστήματος. Πώς στέλνω την εντολή στο κινητό;;; Με ποιο hex αντιστοιχούν οι εντολές;;; Για να δεχθεί το κινητό την εντολή θέλει παλμό σε κάποιο άλλο pin του κινητού;;; Δεν υπάρχει διάγραμμα χρονισμού;;; κτλ κτλ κτλ

kokoman
16-01-06, 00:41
Λοιπόν...
Επειδή κάτι έκανα τελικά με το όλο project,θα σας πώ τί έχω κάνει περίπου:
Όπως είπα προηγουμένως,χρησιμοποιώ τον μΕ της ATMEL,τον AT89C51AC2, ο οποίος έχει φυσικά ενσωματωμένη σειριακή θύρα,την οποία και χρησιμοποιώ στέλνοντας ή λαμβάνοντας σεριακά δεδομένα μέσω του καταχωρητή SBUF.Η διάκριση μεταξύ αποστολής και λήψης γίνεται μέσω των ακροδεκτών ΤΙ (για αποστολή) και RI (για λήψη).Στέλνω, μέσω του DPTR, τις εντολές ΑΤ σε μορφή ASCII (τις γράφω μέσα σε string,όπως περίπου δουλεύουν και οι LCD οθόνες).Το κινητό μου απαντάει με ένα μακρινάρι,το οποίο κατάλαβα τι αντιπροσωπεύει μέσω του Hyper terminal του υπολογιστή.Μέσα στο μακρινάρι των hex αριθμών που μου στέλνει το κινητό είναι και ο αριθμός του αποστολέα,η ώρα/ημερομηνία,το κέντρο μηνυμάτων κ.α.. Απομονώνω το καθεαυτό μήνυμα που βρίσκεται πάντα στο τέλος αυτής της ακολουθίας,το αποθηκεύω στον ελεγκτή και μετά κάνω κάποια εργασία.Ας πούμε συγκρίνω αυτό που πήρα με ένα στάνταρ μήνυμα που έχω αποθηκεύσει στη RAM και αν είναι ίδιο (προσοχή! ακριβώς ίδιο πρέπει να είναι),τότε του λέω ας πούμε να ανάψει ένα LED.Αυτό είναι βασικά το όλο πρόγραμμα.Απλά έχει φυσικά κάποιες λεπτομέρειες που θα πρέπει να δείς,που ποικίλουν από κινητό σε κινητό και από μΕ σε μΕ.Δεν ξέρω αν σε βοήθησα,πάντως να ξέρεις ότι έφαγα πολύ καιρό μέχρι να καταλάβω ακριβώς της φιλοσοφία του κινητού και το πώς θα επικοινωνήσω με το μΕ.Αν εσύ ή κάποιος άλλος θέλετε κάποια βοήθεια,στείλτε π.μ. να σας δώσω παραπάνω στοιχεία.

Lykos1986
17-01-06, 14:18
Με λίγα λόγια χρησιμοποιείς το USART του μC σου (σε ασύγχρονη λειτουργία) για να κάνεις όλη την δουλειά, μέσο δύο καλωδίων. Και σαν bytes πληροφοριών στέλνεις το ΑΤ και μετά ότι άλλη εντολή χρειαστεί. Μπορείς να γράψεις ένα κομμάτι κώδικα για το πώς ακριβώς στέλνεις μια τυχαία εντολή;;; Αυτό που βασικά θέλω να δω είναι αν μέσα περιέχεις και τις ASCII εντολές για τα κενά ή απλά το γράφεις μονοκόμματο. Το κινητό μετά από αυτήν την αποστολή σου απαντάει αυτόματα ή πρέπει να στείλεις και κάποια εντολή για να πάρεις απάντηση;;; Επίσης όταν συνέσεις τον κονέκτορα για επικοινωνία μέσο εντολών AT θα πρέπει να ενεργοποιήσεις και κάτι από το menu του κινητού ή με το που το συνδέσεις είναι άμεσα χρησιμοποιήσιμο;;; Με τι baud rate γίνετε η επικοινωνία;;; Είναι σταθερό για όλα τα κινητά;;;

Μανιώτης Δημήτρης
17-01-06, 16:40
Τα κινητά για επικοινωνία με τον έξω κόσμο έχουν τα εξής πρωτόκολλα: a)SR232 me AT command (Siemens και ericsson) b) FBUS Protocol kai Sbus protocol ( Nokia ). Μεταξύ αυτών υπάρχουν διαφορές όσον αφορά τα καλώδια που χρειάζονται και τις ταχύτητες επικοινωνίας. Λόγω του ότι τα Fbus / Sfus είναι πολύ ιδιόρρυθμα προτείνω το RS232.
Η ταχύτητα επικοινωνίας που μπορεί κανείς να έχει μέσο του RS232 είναι ασύνχρονη και παίζει από τα 1200 baud (ίσος και λιγότερο) kai μπορεί να φτάσει μέχρι τα 115200 (όπου από default σε όλα τα κινητά είναι auto). Προτείνω να διαλέξεις ταχύτητα στα 9600 όπου είναι μια μέση λύση (ικανοποιητική ταχύτητα με "λίγα" error)
Αν τώρα με ένα hyper terminal καταλάβεις τι θέλεις να κάνεις τότε το μόνο που σου απομένει είναι να βάλεις έναν processor να σου κάνει την δουλειά.
Στέλντας μια ΑΤ εντολή σε ένα κινητό μέσω RS232 τότε εκείνο θα φέρει απάντηση για ότι το έχεις ρωτήσει και μετά θα ένα "ΟΚ"

Lykos1986
17-01-06, 20:14
Λοιπόν, κατέβασα το service manual του κινητού μου, Sony J7 απλά για να κάνω μια δοκιμή αν υποστηρίζει ΑΤ. Είδα ποια είναι τα δύο pins επικοινωνίας και το συνέδεσα με το Hyper Terminal. Δεν κατάφερα και πολλά. Το μόνο που έκανε το κινητό μου ήταν να κάνει ECO σε αυτά που το γράφω…

leosedf
18-01-06, 00:08
Fbus και Mbus είναι. το πρώτο είναι τρισύρματο και είναι πιό γρήγορο (Rx,Tx,GND) και το δεύτερο είναι δισύρματο αλλα είναι πιό αργο. Στα καινούρια ΝΟΚΙΑ χρησιμοποιείται περισσότερο το Fbus. Υπάρχει και το jtag σε πολλά τηλέφωνα αλλα αυτό βρίσκεται για άλλους λόγους μέσα στην πλακέτα με νησίδες

Lykos1986
18-01-06, 17:13
Ρε leosedf, ξέρεις αν το Sony J7 υποστηρίζει ΑΤ εντολές;;; Από το manual που βρήκα είδα πως έχει 5 pins για επικοινωνία RS232 όπως λέει. Τα pins είναι: RX, TX, RTS(RFR), CTS και Gen I/O(DTR or DCD).
Εγώ έκανα μια δοκιμή με τα RX και TX και το μόνο που μου έκανε ήταν ένα απλό Eco.

leosedf
18-01-06, 17:20
Ναι υποστηρίζει
Mobile phone interface pin Description
4 CTS
5 RTS
7 Tx
8 Rx
12 GND
(Pins 6 and 10 shorted in data-cable )

Lykos1986
18-01-06, 18:16
Βασικά από το manual που έχω εγώ, βλέπω μερικές διαφορές:

Εκτός αυτού όμως, με ποια από αυτά τα pins γίνεται η επικοινωνία για AT;;;

leosedf
18-01-06, 22:30
χμμ...
τώρα μπερδεύτηκα, θεωρητικά σαν data cable αν το δουλέψεις.
πχ αν δείς πάνω αν βραχυκυκλώσεις το 6 με το 10 τότε μπορείς να κάνεις αναβάθμιση (μην το δοκιμάσεις εχω καταστρέψει 2 J7) αλλα για να δουλέψεις ΑΤ θεωρητικά σε RS232 mode μόνο

Lykos1986
19-01-06, 22:31
Αν έχεις κάποιο manual σχετικά με τις AT εντολές για το συγκεκριμένο κινητό ή αν κάποτε αποκτήσεις κάποιο manual, τότε κάνε ένα post. :wink:

Lykos1986
31-01-06, 10:12
Θέλω να κάνω μια ακόμα δοκιμή με τις AT αλλά δεν ξέρω με τι baud rate θα πρέπει να δουλέψω αλλά όυτε και τα pins. Λογικά με χρήση των RX και TX έτσι δεν είναι;;;

leosedf
31-01-06, 10:33
Rx, Tx, GND 9600 δοκίμασε για αρχή

Lykos1986
31-01-06, 10:36
Οκ θα κάνω την δοκιμή, (φυσικά θέλει και ένα MAX232). Θα πρέι να θέσω τα κλασικά 8, Ν, 1 ή να κάνω κάποια αλλαγή πάνω σε αυτά;;;

leosedf
31-01-06, 11:34
Οχι κλασική σύνδεση με ΜΑΧ232 η 3232