You are on page 1of 270

DAVID REY

INTERFACES GSM
2e dition

Montages pour tlphones portables

EDITIONS TECHNIQUES ET SCIENTIFIQUES FRANAISES

Dunod, Paris, 2004, 2010 ISBN 978-2-10-055334-1 Couverture : Rachid MARA Illustrations : Alain et Ursula BOUTEVEILLE

TABLE DES MATIRES

CHA PITRE

P A GE

Tlchargez les fichiers du livre ! Introduction Gnralits

VII 1 3 5 6 6 6
7 16

Codage des SMS 1.1 Introduction 1.2 Gnralits 1.3 Mode PDU
SMS-SUBMIT SMS-DELIVER

1.4

Codage/dcodage par logiciel

21 25 28
29

Commandes AT 2.1 Norme GSM07.07


Description dtaille des commandes

2.2

Norme GSM07.05
Description dtaille des commandes

41
41

Matriels utiliss 3.1 Tlphones portables


Adaptateur TTL/RS232 Adaptateur pour FBUS/MBUS (ou M2BUS) Cordons DATA

55 56
56 59 61

3.2

Modules GSM intgrs


Le TM2 de TELTONIKA Pour aller plus loin

62
62 70

Interfacer un tlphone GSM 4.1 Avec un PC


Matriel Hyper Terminal Commandes gnrales Commandes SMS

73 74
74 75 78 83

INTERFACES GSM
Commandes spcifiques au TM2 de Teltonika Logiciel intgr pour la gestion des SMS Logiciel WinGSM 90 90 91

4.2

Avec un PicBasic
Linstruction SEROUT Envoi dun SMS Linstruction SERIN Rception dun SMS

92
93 94 95 95

Ralisations lectroniques 5.1 Rcepteur/metteur SMS


Rcepteur de SMS sur cran LCD metteur de SMS

101 102
102 116

5.2

Tlcommandes par GSM


1 sortie sur relais 4 sorties sur relais 4 sorties sur triacs 4 sorties analogiques

123
123 131 142 152

5.3

Tlmesures par GSM


4 entres logiques 4 entres analogiques Thermomtre

163
163 173 183

5.4

Carte Entres/Sorties pilote par GSM


PicBasic Schma lectrique Ralisation Programme PicBasic : ces.bas Programmation et configuration Essais Interface de puissance

194
194 195 204 205 221 222 224

5.5

Golocalisation par GSM


Cell Monitor Tracker GPS Positionnement gographique

228
228 233 233

Annexes Glossaire Bibliographie

251 261 264

VI

TLCHARGEZ LES FICHIERS DU LIVRE !

Tous les circuits imprims, programmes et logiciels des montages dcrits dans cet ouvrage sont tlchargeables partir du site : http://www.dunod.com Il faut tout dabord rechercher louvrage (par titre ou par auteur) puis, une fois sur la page ddie louvrage, cliquer sur documents tlchargeables dans la rubrique Complments en ligne. Un mot de passe, issu de louvrage, vous sera alors demand. Limpression directe sur transparent des circuits imprims pourra ainsi tre ralise facilement. La meilleure qualit sera obtenue en utilisant une imprimante laser qui permet, de par sa prcision, un rendu du trac exceptionnel. Si lon utilise une imprimante jet dencre, il conviendra de vrier minutieusement le rsultat car des micro-coupures apparaissent frquemment sur les pistes. La dernire solution est de sortir une impression sur papier et deffectuer une photocopie de ce dessin sur transparent. Dans ce cas, il est ncessaire de raliser deux transparents et de les superposer, le trac ntant pas assez opaque pour linsolation aux ultraviolets.

VII

INTRODUCTION

Actuellement le rseau GSM franais compte pas moins de 58 millions dusags. Le portable est devenu en quelques annes un produit de consommation courante. Ce petit trsor de technologie ouvre la porte de nombreuses applications lectroniques sans l celui qui sait linterfacer avec un PC ou un microcontrleur. Il devient alors possible via lenvoi et la rception de SMS de piloter et de surveiller un processus quelconque. La distance nest dsormais plus un souci puisque le rseau GSM couvre 99 % du territoire franais et ne cesse de progresser au niveau mondial.

GNRALITS

Lusage dun tlphone portable est bien entendu destin ltre humain, aussi il dispose dinterfaces qualies dhommemachine. Parmi ces interfaces citons le clavier qui permet par exemple la saisie du numro de tlphone de la personne que lon souhaite contacter. Une seconde interface lcran permet de contrler visuellement que le numro saisi est correct. La dernire interface constitue par le micro et le haut-parleur permet de converser oralement avec son interlocuteur. Il existe un autre type dinterface machine- machine du fait peu connu de lutilisateur. Physiquement cette interface prend la forme dun connecteur multibroche. De nombreux accessoires prennent place sur ce connecteur, citons par exemple les kits mains libres ou pitons, le chargeur de batterie Parmi ces accessoires un nous intresse plus particulirement, il sagit dun cordon dadaptation RS232 qui permet daccder toutes les fonctions du tlphone. Un simple PC muni lui aussi dun port RS232 et quip dun logiciel terminal standard suft alors prendre le contrle du processeur central du tlphone, encore faut-il parler le mme langage que celui-ci

CHAPITRE

PAGE

1
2 3 4 5

CODAGE DES SMS

1.1 Introduction 1.2 Gnralits 1.3 Mode PDU 1.4 Codage/dcodage par logiciel

6 6 6 21

Commandes AT Matriels utiliss Interfacer un tlphone GSM Ralisations lectroniques Annexes Glossaire Bibliographie

25 55 73 101 251 261 264

INTERFACES GSM

1.1 INTRODUCTION
Un des services offert par le GSM est la gestion des minimessages ou SMS (Short Message Service). Il ne sagit plus de la transmission de sons mais dun texte limit thoriquement 160 caractres. Chaque message envoy transite vers un centre de messagerie baptis SMSC (Short Message Service Centre) o il est temporairement stock. Ds que le destinataire est disponible, cest--dire lorsque le mobile est sous tension et prsent dans une zone couverte par le rseau GSM, le message est transmis. Le message peut exceptionnellement rester sur le SMSC durant plusieurs jours, ce qui est le cas notamment en n danne o le nombre de SMS envoys atteint des records, vux de bonne anne oblige En situation normale on peut considrer que lenvoi dun SMS est instantan condition que le mobile de destination soit oprationnel. Les SMSC sont identis par un numro dappel spcique chaque oprateur. Il est possible denvoyer un SMS autrement quavec un tlphone portable. On trouve sur Internet des logiciels qui permettent un PC muni dun modem daccder un SMSC. Le moyen le plus simple et le moins onreux consiste passer par le Web. Certains providers comme AOL proposent leurs abonns un service SMS en ligne. Il existe mme des sites qui permettent lenvoi gratuit de SMS au prix tout de mme dun message publicitaire qui vient se greffer votre message.

1.2 GNRALITS
Il y a deux faons de transmettre un message SMS, soit par le mode PDU qui est le mode de base ou le mode TEXT. Le mode PDU est une suite de caractres hexadcimaux qui codient le SMS, le mode TEXT nest rien dautre quune reprsentation sous forme de texte des donnes qui composent le SMS. Il y a diffrents types dalphabets utiliss pour passer du mode PDU au mode TEXT. Par exemple votre tlphone portable afche en mode TEXT sur son cran les donnes dun ventuel SMS reu, cest lui qui dtermine automatiquement quel type dalphabet utiliser. Attention, il faut savoir que certains tlphones portables ne supportent pas le mode TEXT lorsquils sont interfacs avec un PC. Il est donc utile de connatre en dtail le mode PDU.

1.3 MODE PDU


Lorsquun mobile A envoie un SMS au mobile B, le message transite obligatoirement par un centre de messagerie baptis SMSC. Dans son message lutilisateur du mobile A doit dnir deux adresses, celle du SMSC quil souhaite utiliser et celle du mobile B.

CHAPITRE

CODAGE DES SMS

Figure 1.1.

Lacheminement du dit message du mobile A destination du SMSC est baptis SMS-SUBMIT. Une fois le message trait par le SMSC il est dlivr au mobile B, on parle alors de SMS-DELIVER (gure 1.1). Les protocoles SMS-SUBMIT et SMS-DELIVER sont des PDU, il en existe dautres, dimportance moindre, qui permettent de signaler des ventuelles erreurs dacheminement : SMS-DELIVER-REPORT : le cas chant, il indique une dfaillance lors du transfert du SMS par le SMSC au destinataire ; SMS-SUBMIT-REPORT : le cas chant, il indique une dfaillance lors du transfert du SMS par le mobile au SMSC ; SMS-STATUS-REPORT : le SMSC envoie un rapport dtat au mobile metteur du SMS ; SMS-COMMAND : le mobile envoie une commande au SMSC. Les trames codant le SMS sont diffrentes suivant le type de PDU mis en uvre. Dans la partie qui va suivre nous nous contenterons de dcrire les deux principaux protocoles : SMS-SUBMIT et SMS-DELIVER.

DUNOD La photocopie non autorise est un dlit.

SMS-SUBMIT
Tlphone GSM vers SMSC. La taille maximale de la trame dun SMS-SUBMIT est de 173 octets. Le champ le plus important en terme de taille est le champ qui codie le corps du message qui peut atteindre 140 octets. Les deux autres champs indispensables sont SCA qui codie ladresse du SMSC et DA qui codie ladresse de lmetteur.
1-10 octets 1 octet 1 octet 2-12 octets 1 octet 0-7 octets 1 octet 1 octet 0-140 octets

SCA

PDU

MR

DA

PID

DCS

VP

UDL

UD

INTERFACES GSM

SCA : Service Centre Adresse


Adresse du centre de messagerie.
1 octet 2 octets 0 - 8 octets

LEN

Type Number

Numro SMSC

Le champ SCA ne possde pas une taille xe, elle dpend de la longueur du numro du SMSC utilis, ce paramtre est stock dans le champ LEN. LEN : nombre doctets ncessaires pour codier le numro du SMSC. Type Number : indique le format du numro de tlphone du SMSC.
7 6 5 4 3 2 1 0

Type number

Numbering Plan Identication

Type number : spcie le type de numro de tlphone utilis. La valeur la plus utilise est 001bin qui signale un numro de type international (tableau 1.1).
Tableau 1.1.
Bit 6 Bit 5 Bit 4 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 Description Format non spci Numro international Numro national Numro spcique au rseau Numro dabonn Codication en accord avec la norme GSM TS 03.38 alphabet par dfaut sur 7 bit Numro abrg X

Numbering Plan Identication : le numbering plan identication est pris en compte dans le cas o le type number est gal 000bin, 001bin ou 010bin. Si type number est gal 101bin alors les bits 3 0 sont rservs. Pour adresser nimporte quelle entit, le numbering plan identication doit tre gal 0001bin (tableau 1.2).

CHAPITRE

CODAGE DES SMS

Bit 3 Bit 2 Bit 1 Bit 0 0 0 0 0 1 1 1 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 1 0 1 1 0 0 1 0 1

Description X ISDN/tlphone numbering plan (E.164/E.163) Data numbering plan (X.121) Telex numbering plan National numbering plan Private numbering plan ERMES numbering plan (ETSI DE/PS 3 01-3) X

Tableau 1.2.

Compte tenu de ce que nous avons dit plus haut, le Type Number le plus utilis est : 91hex.
7 6 5 4 3 2 1 0

Numro du SMSC (service de centre de messagerie) : attention, le codage est effectu en dcimal cod binaire (BCD). Un octet contient donc deux quarts cods en BCD et qui plus est de poids inverss. Le nombre de semi-octet devant tre obligatoirement paire il est parfois ncessaire de complter par Fhex.
Digit2 Digit1 Digit4 Digit3 Digit n Digit n1

DUNOD La photocopie non autorise est un dlit.

Voici les principaux numros utiliss en France pour contacter un SMSC, le signe + signale quil sagit dun numro international : +33609001390 (SFR) +33689004000 (Orange) +33660003000 (Bouygues Tlcom) Par exemple codons le numro du SMSC utilis par les abonns dOrange de France Tlcom : le nombre de chiffres tant impair il est ncessaire dajouter un Fhex la n. Ensuite il suft de permuter chaque chiffre comme le montre le tableau ci-aprs.

INTERFACES GSM
Octet n 1 Octet n 2 Octet n 3 Octet n 4 Octet n 5 Octet n 6

3 3

3 3

6 0

0 6

9 0

0 9

0 1

1 0

3 9

9 3

0 F

F 0

Finalement le numro +33660003000 une fois cod devient : 3306091093F0. Remarque : le champ SCA est optionnel, de ce fait lorsquil est positionn 00hex cela signie que le SMSC utilis est celui stock dans la mmoire du tlphone, correspondant en principe loprateur auquel vous avez souscrit votre abonnement.

Type de PDU
Le champ PDU toujours cod sur 1 seul octet a pour fonction principale de dnir sil sagit dun SMS-DELIVER ou dun SMSSUBMIT (bits 0 et 1) tableau 1.3.
7 6 5 4 3 2 1 0

RP

UDHI

SRR

VPF

RD

MTI

Tableau 1.3.

Champ RP

Bit 7 0 1

Description Il nexiste pas de chemin de repli Il existe un chemin de repli Description Le champ UD contient uniquement un message Le champ UD contient un en-tte en plus du message Description Un rapport dtat ne sera pas retourn Un rapport dtat sera retourn Bit 3 0 1 0 1 Description Le champ VP nest pas prsent X Le champ VP existe, il est codi en entier (relatif) Le champ VP existe, il est codi en semi-octet (absolu)

Champ UDHI

Bit 6 0 1

Champ SRR

Bit 5 0 1

Champ

Bit4 0 0

VPF

1 1

10

CHAPITRE

CODAGE DES SMS

Champ

Bit 2 0

Description Indique au SMSC quil ne doit pas recevoir un nouvel SMS portant le mme MR et la mme adresse de destination Indique au SMSC quil peut accepter la rception dun nouvel SMS portant le mme MR et la mme adresse de destination Bit 0 1 Description SMS-SUBMIT : Achemine le SMS du mobile vers le SMSC

Tableau 1.3 (suite).

RD 1

Champ MTI

Bit1 0

MR : Message rfrence
Chaque message envoy par le mobile au SMSC est identi par un numro compris entre 0 et FFhex baptis MR (Rfrence du Message). Le fait de positionner MR 0 indique au mobile que cest lui qui doit dnir automatiquement ce champ. Dans ce cas il sincrmente pour chaque nouveau message envoy pour un mme destinataire. Ce champ est li au bit RD du champ PDU.
1 octet

MR

DA : Destination Adress
Le codage de ladresse de lmetteur est sur le principe semblable au codage de ladresse du SMSC (voir champ SCA).
1 octet
DUNOD La photocopie non autorise est un dlit.

2 octets

0 - 8 octets

LEN

Type Number

Numro du destinataire

LEN : longueur du numro du destinataire correspondant cette fois au nombre de chiffres et pas au nombre de semi-octets utiliss pour sa codication comme cest le cas pour le SMSC.

PID : Protocol Identier


1 octet

PID

Le champ PID cod sur un octet indique quel type de service tlmatique est destin le message. Dans notre cadre dutilisation ce champ sera toujours positionn 00hex. Attention, sil est

11

INTERFACES GSM
certain que le PID 00hex est support par tous les SMSC, il en est autrement pour les autres (tableau 1.4).
Tableau 1.4.
PID 00hex 11hex 02hex 03hex 12hex Description La trame est traite comme un message court La trame est traite comme un telex La trame est traite comme un telefax de groupe 3 La trame est traite comme un telefax de groupe 4 La trame est traite comme un e-mail

Pour plus dinformations vous pouvez consulter la norme GSM 03.40 chapitre 9.2.3.9.

DCS : Data Coding Scheme


Le champ DCS indique de quelle manire est cod le champ UD qui correspond au corps du message. Il peut aussi indiquer une classe du message (bits 4 7 positionns 1). Dans la pratique, tous les bits sont positionns zro (tableau 1.5).
7 6 5 4 3 2 1 0

Tableau 1.5.

Coding Group

Bit7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Description 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 1 0 0 1 0 0 0 1 0 0 0 1 x 0 1 1 x Indique que le champ UD est cod avec lalphabet par dfaut, chaque caractre est cod sur 7 bits, une classe est spcie Indique que le champ UD est cod en ASCII sur 8 bits Classe 0 : le message safche immdiatement lcran Classe 1 : spcique au mobile (ME) Classe 2 : spcique la carte SIM Classe 3 : spcique lquipement terminal (TE) Rserv Indique que le champ UD est cod avec lalphabet GSM, aucune classe nest spcie

1 1 1 1 1

1 1 1 1 1

1 1 1 1 1

1 1 1 1 1

0 0 0 0 0

1 x x x x

x 0 0 1 1

x 0 1 0 1

12

CHAPITRE

CODAGE DES SMS


Avec lalphabet GSM chaque caractre est cod sur 7 bits (voir Annexes). Avec ce type dalphabet il est donc possible de coder 8 caractres avec 7 octets. Le champ UD peut dans ce cas codier un total de 160 caractres. Dans la pratique, le plus simple consiste positionner tous les bits du champ DCS zro, ce qui slectionne lalphabet GSM, aucune classe nest mentionne ainsi cest le mobile de destination qui choisira le stockage adquat du SMS.

VP : Validity Period
Permet dindiquer au SMSC la dure de validit du SMS condition que les bits 3 et 4 (champ VPF) de loctet PDU soient correctement positionns. Si VPF (voir champ PDU) est 0, le champ VP sera ignor par le SMSC, le SMS aura une dure de vie illimite. Cette dure peut tre relative (VPF = 10bin), si le SMSC na pas russi transmettre le SMS au destinataire dans la dure dnie par VP, le SMS est dtruit (tableau 1.6).
1 octet

JOUR

VPdec 0 143 144 167 168 196 197 255


DUNOD La photocopie non autorise est un dlit.

Dure de validit du SMS (VP + 1) 5 minutes 12 heures + ((VP 143) 30 minutes) (VP 166) 1 jour (VP 192) 1 semaine

Tableau 1.6.

La dure peut tre absolue (VPF = 11bin), le SMSC jusqu la date dnie par VP pour dlivrer le SMS au destinataire, pass cette date le message est dtruit.
1 octet 1 octet 1 octet 1 octet 1 octet 1 octet 1 octet

Anne

Mois

Jour

Heure

Minute

Seconde

Fuseau

En codage absolu le champ VP se compose de 7 octets, contenant chacun deux champs cods en BCD et de poids inverss. Le champ Fuseau exprim en quart dheure indique la diffrence entre lheure locale et lheure GMT.

13

INTERFACES GSM

UDL : User Data Length, UD : User Data


1 octet 0 - 140 octets

UDL

UD

UDL contient la taille en octets utiliss pour codier le message dans UD.

Exemple de codage
titre dexemple, essayons de constituer la trame qui permettrait denvoyer un SMS ayant une validit de 4 jours, contenant le message TEST au numro 0612345678 en utilisant le centre de messagerie +33609001390 . Numro du SMSC utilis : +33609001390. Le signe + indique quil sagit dun numro international, on donc Type Number = 91hex.
7 6 5 4 3 2 1 0

Numro international

ISDN / Telephone numbering plan

Pour chacun des octets qui composent le numro, on inverse les deux groupes composs de 4 bits chacun. Le nombre de chiffres tant impair, il est ncessaire dajouter loctet Fhex la n du numro. On obtient le numro suivant : 3306091093F0.
3 3 3 3 6 0 0 6 9 0 0 9 0 1 1 0 3 9 9 3 0 F F 0

Le nombre doctets utiliss pour coder le numro du SMSC est de 07dec do LEN = 07hex (Type Number inclus). Finalement SCA = 07913306091093F0.
7 6 5 4 3 2 1 0

RP 0

UDHI 0

SRR 0 1

VPF 0

RD 0 0

MTI 1

RP = 0. Il nexiste pas de chemin de repli.

14

CHAPITRE

CODAGE DES SMS


UDHI = 0. Le champ UD contient uniquement un message. SRR = 0. Aucun rapport dtat ne sera retourn au mobile. VPF = 10. Le champ VP et cod en relatif. MTI = 01. SMS-SUBMIT (Envoi). On a donc PDU = 11hex. Rfrence du SMS, MR = 00hex, indique que cest le mobile qui doit dnir cette valeur. Le numro de tlphone du destinataire est 0612345678 , la codication est identique celle du champ SCA. Dans le cas prsent le nombre de chiffres tant pair il nest pas utile dajouter Fhex la n.
0 6 6 0 1 2 2 1 3 4 4 3 5 6 6 5 7 8 8 7

On obtient le numro : 6021436587. Nous allons utiliser un format de numro non spci donc Type of Number = 81hex.
7 6 5 4 3 2 1 0

Le numro comporte 10 chiffres donc LEN = 0Ahex. Do DA = 0A816021436587.


DUNOD La photocopie non autorise est un dlit.

Le message doit tre trait par le SMSC comme un SMS donc PID = 00hex. Le champ UD est cod avec lalphabet par dfaut, aucune classe nest spcie donc DCS = 00hex. La dure de validit du message est limite 4 jours. On applique la formule nb jours = VP 166, avec nb jours = 4 cela implique que VP = AAhex. Corps du message : TEST , comme spci par le champ DCS le codage est ralis avec lalphabet GSM. Pour chacun des caractres composant le message on cherche la correspondance en binaire dans le tableau alphabet GSM (voir Annexes). Un caractre correspond un bloc de 7 bits. Ensuite on regroupe les bits par paquet de 8 en commenant par la droite, remarquez quil est ncessaire dajouter 4 zros pour complter le dernier paquet.

15

INTERFACES GSM
Chaque octet est nalement converti en un nombre hexadcimal, pour ce faire vous pouvez utiliser la calculatrice scientique de Windows (tableau 1.7).
Tableau 1.7.
T 0000 1010100 S 1010011 E 1000101 T 1010100

00001010 0A

10010100 94

11100010 E2

11010100 D4

Chaque lettre est code sur 7 bits, pour former la trame compose doctets on regroupe les bits par bloc de 8 on en dduit alors la valeur en hexadcimal. On a donc dans le champ UD = D4E294OA. Il faut 4 octets pour coder le message donc UDL = 04. Finalement pour envoyer un SMS ayant une validit de 4 jours, contenant le message TEST au numro 0612345678 en utilisant le centre de messagerie +33609001390 il faut constituer la trame : 07913306091093F011000A8160214365870000AA04D4E294OA Pour utiliser le centre de messagerie associ au tlphone, il suft de remplacer les octets concernant le SMSC par 00 : 0011000A8160214365870000AA04D4E2940A

SMS-DELIVER
SMSC vers tlphone GSM. La taille maximale de la trame dun SMS-DELIVER est de 173 octets. Le champ le plus important en terme de taille est le champ qui codie le corps du message qui peut atteindre 140 octets. Les deux autres champs indispensables sont SCA qui codie ladresse du SMSC et OA qui codie ladresse du destinataire.
1-10 octets 1 octet 2-12 octets 1 octet 1 octet 7 octets 1 octet 0-140 octets

SCA

PDU

OA

PID

DCS

SCTS

UDL

UD

SCA : Service Centre Adresse


Adresse du centre de messagerie.

16

CHAPITRE

CODAGE DES SMS


Le codage est identique celui prsent dans la partie SMSSUBMIT. Dans le cas prsent il indique quel est le SMSC qui a trait le SMS.

PDU : Protocol Data Unit


7 6 5 4 3 2 1 0

RP

UDHI

SRI

MMS

MTI

Champ RP

Bit 7 0 1

Description Il nexiste pas de chemin de repli Il existe un chemin de repli Description Le champ UD contient uniquement un message Le champ UD contient un en-tte en plus du message Description Aucun rapport dtat ne sera retourn au mobile Un rapport dtat sera retourn au mobile Description Des messages supplmentaires pour le MS sont en attente dans le SMSC Pas de message supplmentaire en attente pour le MS dans le SMSC Description SMS-DELIVER : Achemine le SMS du mobile vers le SMSC

Tableau 1.8.

Champ UDHI

Bit 6 0 1

Champ SRI

Bit 5 0 1

Champ

Bit 2 0

MMS 1
DUNOD La photocopie non autorise est un dlit.

Champ MTI

Bit 1 Bit 0 0 0

Le champ MTI est le plus important, dans le cas dun SMS-DELIVER il est positionn 00.

OA : Originator Adress
Le codage de ladresse de lmetteur est sur le principe semblable au codage de lexpditeur dans la partie SMS-SUBMIT.
1 octet 2 octets 0 - 8 octets

LEN

Type Number

Numro de lmetteur du SMS

17

INTERFACES GSM

PID : Protocol Identier


Le codage est identique celui prsent dans la partie SMSSUBMIT.
1 octet

PID

SCTS : Service Centre Time Stamp


1 octet 1 octet 1 octet 1 octet 1 octet 1 octet 1 octet

Anne

Mois

Jour

Heure

Minute

Seconde

Fuseau

Le champ SCTS se compose de 7 octets, contenant chacun deux champs cods en BCD et de poids inverss. Il indique au destinataire la date et lheure laquelle le SMS est arriv au SMSC. Le champ Fuseau exprim en quart dheure indique la diffrence entre lheure locale et lheure GMT.

UDL : User Data Length, UD : User Data


1 octet 0 - 140 octets

UDL

UD

Exemple de dcodage Imaginons que nous devions dcoder la trame suivante :


07913306091093F0000A81609121436500009920215075032104D4E 2940A Le premier octet 07 nous indique que ladresse du SMSC utilis pour acheminer le SMS est code sur 7 octets. On extrait donc les 7 octets suivants an de dterminer le numro du SMSC, soit 913306091093F0. Le premier octet 91 nous indique quil sagit dun numro international.
7 6 5 4 3 2 1 0

Numro international

Les 6 octets suivants contiennent le numro du SMSC :

18

CHAPITRE

CODAGE DES SMS


Pour chacun des octets qui composent le numro on inverse les deux groupes composs de 4 bits chacun.
3 3 3 3 0 6 6 0 0 9 9 0 1 0 0 1 9 3 3 9 F 0 0 F

Lavant dernier octet F ne correspond aucun chiffre, il nest l que pour avoir un nombre de chiffres pair. Le numro du SMSC utilis pour convoyer le message est donc : +33609001390. Loctet suivant 00 indique le PDU utilis :
7 6 5 4 3 2 1 0

RP 0

UDHI 0

SRI 0

X 0

X 0

MMS 0 0

MTI 0

RP = 0. Il nexiste pas de chemin de repli. UDHI = 0. Le champ UD contient uniquement un message. SRI = 0. Aucun rapport dtat ne sera retourn au mobile. MMS = 0. Pas de message supplmentaire en attente pour le MS dans le SMSC. MTI = 0. SMS-DELIVER. Loctet suivant 0Ahex = 10dec indique le nombre de chiffres composant le numro de lmetteur du message. Attention on ne comptabilise pas loctet utilis pour le champ Type Number. Do OA = 0A816091214365.
6 0 0 6 9 1 1 9 2 1 1 2 4 3 3 4 6 5 5 6

DUNOD La photocopie non autorise est un dlit.

Aprs permutation des chiffres on obtient le numro : 0619123456. PID = 00hex donc il sagit dun message SMS. DCS = 00hex donc le champ UD est cod avec lalphabet par dfaut, aucune classe nest spcie. Les 7 octets suivants 99202150750321 codient le champ SCTS (tableau 1.9).

19

INTERFACES GSM
Tableau 1.9.
1 octet 1 octet 1 octet 1 octet 1 octet 1 octet 1 octet

Anne 9 9 9 9

Mois 2 0 0 2

Jour 2 1 1 2

Heure 5 0 0 5

Minute 7 5 5 7

Seconde 0 3 3 0

Fuseau 2 1 1 2

12 fvrier 1999

05 : 57 : 03

GMT+3h

Le SMS a donc t expdi par le SMSC le 12 fvrier 1999 05 :57 :03 (GMT+3h). Il reste dcoder le dernier morceau de la trame : 04D4E294OA. Loctet 04hex = 04dec indique la longueur du champ UD contenant le corps du message.
Tableau 1.10.
0A 00001010 94 10010100 E2 11100010 D4 11010100

0000 1010100 T

1010011 S

1000101 E

1010100 T

Chaque octet exprim en hexadcimal est converti en un nombre binaire compos de 8 bits. Daprs le champ DCS on sait que UD est cod avec lalphabet GSM. On regroupe les bits par paquets de 7 en commenant par la gauche. En saidant du tableau de conversion de lalphabet GSM (voir Annexes) on en dduit le caractre correspondant chaque paquet. Finalement en effectuant une lecture de la droite vers la gauche on obtient le corps du message soit TEST . En conclusion la trame : 07913306091093F0000A81609121436500009920215075032104D4E 2940A signie quil sagit dun SMS contenant le message TEST envoy par 0619123456 trait par le SMSC +33609001390 le 12 fvrier 1999 05 : 57 : 03 (GMT+3h).

20

CHAPITRE

CODAGE DES SMS

1.4 CODAGE/DCODAGE PAR LOGICIEL


Comme vous pouvez le constater le codage/dcodage manuel dune trame PDU est assez fastidieux. Dans la pratique ceci est heureusement totalement transparent pour lutilisateur du tlphone portable. Dune part le numro du SMSC utilis est celui gurant dans la mmoire du mobile, dnit par loprateur, il est donc inutile de le mentionner lors de la rdaction du message. Le numro du correspondant peut tre slectionn dans le rpertoire ou alors saisie manuellement en mode TEXT. Le corps du message est galement saisi en mode TEXT laide du clavier. Rien de plus simple en somme pour rdiger un SMS. Tous les autres champs que nous avons vus prcdemment sont grs par le processeur du mobile. Le mobile se charge ensuite de convertir chacun des champs en valeurs hexadcimales pour constituer la trame qui sera nalement envoye sur le rseau. Le mobile destinataire du SMS fera le cheminement inverse pour restituer lutilisateur seulement les informations pertinentes sur son cran. Malheureusement pour certains tlphones lorsque le port srie est reli par exemple un PC, le mode TEXT nest plus support. Les trames SMS afches/constitues lcran du PC sont obligatoirement en mode PDU ce qui complique fortement les manipulations. Heureusement nous allons faire en sorte grce au logiciel ConvertSMS.exe (gures 1.2 et 1.3) que ce soit le PC qui prenne en charge le codage/dcodage des donnes SMS. Le logiciel dvelopp avec Delphi 4 est relativement simple, le code fait largement appel aux fonctions de manipulation de chanes de caractres.

DUNOD La photocopie non autorise est un dlit.

Figure 1.2.

21

INTERFACES GSM

Figure 1.3.

Algorithme de codage Tous les paramtres correspondant au codage dun SMS sont prsents dans longlet nomm : TEXT -> PDU .
Pour faciliter le codage dun SMS nous allons ger certains champs (griss). Le champ SCA est positionn 00, ainsi le numro du SMSC utilis est celui prsent dans la mmoire du portable, inutile de sen soucier. Le champ PDU est 11hex pour indiquer quil sagit dun SMS-SUBMIT et que le champ VP est cod en relatif (bit 3 = 0 et bit 4 = 1). Le champ MR est g zro, ainsi lidentication du message est cone au mobile. Comme il sagit dun SMS, le champ PID est zro. Le champ DCS est aussi zro, ainsi le champ UD doit tre cod avec lalphabet GSM et aucune classe nest spcie. Les autres champs devront tre renseigns par lutilisateur, sauf le champ UDL qui est calcul par le logiciel. Le champ DA correspond au numro du destinataire du SMS. Le champ VP indique la dure de validit du SMS, sa valeur est comprise entre 0 et 255dec, la dure correspondante safche ct, par exemple avec VP = 170dec le message aura une dure de validit de 4 jours. Le champ UD correspond au texte du message. Le bouton convertir permet dafcher la trame au format PDU correspondante aux informations saisies. Dans la copie dcran nous avons repris lexemple vu prcdemment.

22

CHAPITRE

CODAGE DES SMS


Algorithme de dcodage Le deuxime onglet nomm PDU -> TEXT permet le dcodage dun SMS rceptionn.
On considre que la trame commence toujours par les caractres 0791 , en effet le numro du SMSC est toujours international donc Type Number = 91hex et il se compose de 11 chiffres, donc cod sur 7 octets. Le bouton convertir permet de dcoder les diffrents champs correspondant la trame saisie ; attention lors de la saisie de la trame ne pas insrer de saut de ligne qui viendrait gner le dcodage. Dans la copie dcran nous avons repris lexemple vu prcdemment.

ConvertSMS.dll Ceux qui pratiquent un langage autre que Delphi ne sont pas oublis, les fonctions de codage/dcodage ont t compiles dans le chier ConvertSMS.dll . Les deux fonctions dclarer et appeler dans votre programme sont :
Function PduToText(pdu: string):TTEXTE;

Largument pdu contient la trame convertir. La fonction retourne la variable type TTEXTE constitue ainsi :
type TTexte=record SMSC:string[12]; PDU:string[2]; OA:string[12]; PID:string[2]; DCS:string[2]; UDL:string[160]; SCTS:string[50]; end; Function TextToPdu(SCA_PDU_MR:string;targetms:string;PID_DCS: string;VP:Integer;text:string):TPDU;

DUNOD La photocopie non autorise est un dlit.

Largument SCA_PDU_MR contient les 3 champs concatns SCA, PDU et MR, par exemple : 001100 . targetms contient le numro du destinataire, par exemple : 0601020304 . PID_DCS contient les champs concatns PID et DCS. VP est un nombre entier compris entre 0 et 255. text contient le texte du message.

23

INTERFACES GSM
La fonction retourne la variable type TPDU constitue ainsi :
type TPDU=record Len:string[12]; Trame:string[255]; end;

Le formalisme de dclaration et dappel des fonctions contenues dans la DLL ConvertSMS.dll seffectuera bien videmment suivant le type de langage utilis.

24

CHAPITRE

PAGE

2
3 4 5

COMMANDES AT

2.1 Norme GSM07.07 2.2 Norme GSM07.05

28 41

Matriels utiliss Interfacer un tlphone GSM Ralisations lectroniques Annexes Glossaire Bibliographie

55 73 101 251 261 264

25

INTERFACES GSM
Il existe un standard de tlcommunication europen (ETS) qui spcie une liste de commandes AT qui permettent laccs aux fonctions dun tlphone portable par lintermdiaire dun terminal. Ces commandes sinspirent fortement du standard Hayes, du nom de la socit amricaine qui dans les annes 1970 a dni une liste de commandes universelles permettant de piloter un modem. Chaque instruction dbute par les caractres ASCII AT tirs de labrviation ATtention et se termine par un retour chariot, CR : Carriage Return, do le nom souvent donn cette srie de commandes : instructions AT . On peut effectivement comparer un tlphone portable un modem sans l, il est donc logique quil utilise des instructions semblables au modem xe qui quipe nos PC. Les constructeurs se doivent de fabriquer des tlphones portables qui respectent ces normes. La premire baptise GSM07.07 permet laccs aux fonctions gnrales du tlphone, la deuxime GSM07.05 concerne la gestion des SMS. Dans les textes ofciels qui traitent du GSM on retrouve les termes ME pour Mobile Equipement qui correspond par exemple un tlphone portable, TE pour Terminal Equipement qui physiquement peut tre un ordinateur ou un microcontrleur et TA pour Terminal Adaptator qui assure la liaison entre le ME et le TE, ne pas confondre avec le cble srie. Dans la pratique il y a trois possibilits concernant la disposition des diffrents lments (gure 2.1) : TA, ME et TE sont trois entits distinctes ; TA et ME forment une seule entit, ce qui est le cas le plus frquent. Par exemple un tlphone portable standard ou un terminal GSM contient dans son botier la fois le TA et le ME. Le TE forme une entit part, par exemple il peut sagir dun ordinateur de type PC qui dispose dun port srie ou dun circuit lectronique bas sur un C qui implmente un port srie ; TA, ME et TE forment une seule entit.

Figure 2.1.

26

CHAPITRE

COMMANDES AT
Paramtres Liste des diffrents paramtres qui sont utiliss avec les commandes AT : <xxx> Indique que xxx est un paramtre de la commande AT associe.
[<xxx>] <CR> <LF> Indique que le paramtre <xxx> est facultatif. Carriage Return (retour chariot) <CR> = 13dec = 0Dhex Line Feed <LF> = 10dec = 0Ahex

<ctrl-Z/ESC> Touche CTRL plus touche Z quivalent au code ASCII EOF pour End Of File ; en informatique cest un caractre qui signale la n dun chier, ici il signale la n dune instruction. <CTRL-Z> = 26dec = 1Ahex OU Touche ESC ou Escape permet de sortir de la commande en cours de frappe sans quelle ne soit excute. <ESC> = 27dec = 1Bhex Comme le montre le tableau 2.1, il existe trois manires denvoyer une mme commande AT.
Tableau 2.1.

Commande de test Commande de lecture Commande dcriture

AT+CXXX=? AT+CXXX? AT+CXXX=<xxx>

Retourne la liste des paramtres utilisables avec la commande CXXX. Retourne le ou les paramtres en cours associs la commande CXXX. Applique le ou les paramtres <xxx> la commande CXXX.

DUNOD La photocopie non autorise est un dlit.

Dans tous les cas le tlphone doit rpondre, favorablement ou non, la commande envoye. Si la commande est accepte, la rponse retourne est de la forme : <CR><LF>OK<CR><LF>. Si la commande nest pas reconnue, ou que le ME rencontre un problme lors de son excution, un message derreur est retourn : <CR><LF>ERROR<CR><LF>, accompagn ventuellement dun message dcrivant la nature de lerreur (voir commande AT+CMEE).

27

INTERFACES GSM

2.1 NORME GSM07.07


La norme GSM07.07 regroupe environ 80 commandes permettant daccder toutes les fonctions du ME. Nous nallons pas dtailler la totalit de ces commandes mais seulement celles qui seront susceptibles de nous intresser dans les chapitres suivants (tableau 2.2).
Tableau 2.2.

Commandes AT+CGMI AT+CGMM AT+CGMR AT+CGSN AT+CIMI AT+CLIP AT+CSCS AT+CPAS AT+CPIN AT+CBC AT+CREG AT+CSQ AT+CIND AT+CPBS AT+CPBR AT+CPBF AT+CPBW AT+CCLK AT+CALA AT+CMEE

Fonction Identication fabricant Identication modle Identication version Identication numro de srie (IMEI) Information didentit internationale du mobile (IMSI) Prsentation du numro Alphabet utilis par le TE tat dactivit du tlphone Entre le code PIN tat de charge batterie Enregistrement sur le rseau Qualit du signal Indicateurs de contrle Slectionne un rpertoire tlphonique Lecture du rpertoire tlphonique Recherche une entit dans le rpertoire tlphonique criture dans le rpertoire tlphonique Horloge Alarme Signalisation dune erreur

Page 29 29 29 30 30 31 32 32 33 33 34 35 35 36 37 37 38 38 39 39

28

CHAPITRE

COMMANDES AT

Description dtaille des commandes


AT+CGMI : Identication fabricant Commande de test AT+CGMI=? Rponse OK si erreur +CME ERROR: <err> Rponse +CGMI: <manufacturer> Renvoi des informations (2 048 caractres au maximum) concernant le fabriquant du ME. si erreur +CME ERROR: <err>

Commande de lecture AT+CGMI (exceptionnellement pas de point dinterrogation)

AT+CGMM : Identication modle Commande de test AT+CGMM=? Rponse OK si erreur +CME ERROR: <err> Rponse +CGMM: <model> Retourne le modle du ME. si erreur +CGMI ERROR: <err>

Commande de lecture AT+CGMM (exceptionnellement pas de point dinterrogation)

AT+CGMR : Identication version Commande de test AT+CGMR=?


DUNOD La photocopie non autorise est un dlit.

Rponse OK si erreur +CME ERROR: <err> Rponse +CGMR: <revision> Retourne la version du ME. si erreur +CGMI ERROR: <err>

Commande de lecture AT+CGMR (exceptionnellement pas de point dinterrogation)

29

INTERFACES GSM

AT+CGSN : Identication numro de srie (IMEI) Commande de test AT+CGSN=? Rponse OK si erreur +CME ERROR: <err> Rponse +CGSN: <sn> Retourne le numro de srie du ME nomm IMEI (International Mobile station Equipment Identity ; voir norme GSM 03.03). si erreur +CGMI ERROR: <err>

Commande de lecture AT+CGSN (exceptionnellement pas de point dinterrogation)

AT+CIMI : Information didentit internationale du mobile (IMSI) Commande de test AT+CGMI=? Rponse OK si erreur +CME ERROR: <err> Rponse <IMSI> Retourne le numro IMSI : International Mobile Subscriber Indentity. Permet au TE didentier la carte SIM lie au ME. si erreur +CGMI ERROR: <err>

Commande de lecture AT+CIMI (exceptionnellement pas de point dinterrogation)

30

CHAPITRE

COMMANDES AT

AT+CLIP : Prsentation du numro Commande de test AT+CLIP=? Rponse +CLIP: (liste des <n>s supports) si erreur +CGMI ERROR: <err> Rponse +CLIP= <n>,<m> Paramtres <n> : paramtre qui active/dsactive la prsentation du numro au TE 0 inactif (valeur par dfaut) 1 actif <m> : paramtre qui indique ltat de la fonctionnalit prsentation du numro 0 Loprateur ne fournit pas ce service (non prvu dans labonnement) 1 Loprateur fournit ce service 2 Inconnu (ex : connexion au rseau impossible) si erreur +CGMI ERROR: <err> Rponse OK Paramtre Voir commande de lecture si erreur +CGMI ERROR: <err> Remarque : Si la prsentation du numro est active (AT+CLIP=1) et condition que lappelant ne soit pas en mode secret, le numro est envoy au TE : +CLIP: <number>,<type>[,<alpha>] <number> : numro de tlphone <type> : type de numro (national/international) <alpha> : nom provenant du rpertoire, correspondant au numro de tlphone

Commande de lecture AT+CLIP?

Commande dcriture AT+CLIP=[<n>]

DUNOD La photocopie non autorise est un dlit.

31

INTERFACES GSM

AT+CSCS : Alphabet utilis par le TE Commande de test AT+CSCS? Rponse OK si erreur +CME ERROR: <err> Rponse +CSCS: <chset> Indique au TA quel est lalphabet utilis par le TE. Ainsi le TA peut correctement convertir les chanes de caractres entre le TE et le ME. si erreur +CGMI ERROR: <err> Rponse OK Paramtre <chset> : "GSM" GSM alphabet par dfaut "HEX" chane de nombre hexadcimal 00 FF "IRA" alphabet de rfrence international (ITU-T T.50 [13]) si erreur +CGMI ERROR: <err>

Commande de lecture AT+CSCS=?

Commande dcriture AT+CSCS= <chset>

AT+CPAS : tat dactivit du tlphone Commande de test AT+CPAS=? Commande de lecture AT+CPAS? Rponse +CPAS: (liste des <pas>s supports) Rponse +CPAS : <pas> Paramtre Retourne ltat dactivit <pas> du ME 0 prt 1 indisponible 2 indni 3 sonnerie (le ME est prt pour le transfert de commandes entre TA/TE, mais la sonnerie est active) 4 appel en cours (le ME est prt pour le transfert de commandes entre TA/TE, mais un appel est en cours) 5 en veille si erreur +CGMI ERROR: <err>

32

CHAPITRE

COMMANDES AT

AT+CPIN : Entre le code PIN Commande de test AT+CPIN=? Rponse OK si erreur +CGMI ERROR: <err> Rponse +CPIN= <code> Paramtre <code> : READY ME aucun mot de passe donner SIM PIN ME attente du SIM PIN SIM PUK ME attente SIM PUK si erreur +CGMI ERROR: <err> Rponse OK Permet de rentrer le code PIN si erreur +CGMI ERROR: <err> Rponse OK Permet de modier le code PIN, <newpin> est le nouveau code. +CGMI ERROR: <err>

Commande de lecture AT+CPIN?

Commande dcriture AT+CPIN=<pin>

Commande dcriture AT+CPIN= <pin>,<newpin>

AT+CBC : Charge de la batterie Commande de test AT+CBC=? Rponse +CBC: (liste des <bcs>s),(liste des <bcl>s) si erreur +CGMI ERROR: <err> Rponse +CBC: <bcs>,<bcl> Paramtres <bcs> : tat de connexion de la batterie 0 le ME est aliment par la batterie 1 le ME est connect une batterie, mais il nest pas aliment par celle-ci 2 le ME nest pas connect une batterie 3 dfaut dalimentation <bcl> : niveau de charge de la batterie 0 la batterie est dcharge, ou le ME ne dispose pas de batterie 1..100 capacit de la batterie entre 1 et 100 % si erreur +CGMI ERROR: <err>

Commande de lecture AT+CBC?


DUNOD La photocopie non autorise est un dlit.

33

INTERFACES GSM

AT+CREG : Enregistrement sur le rseau Commande de test AT+CREG=? Rponse +CREG: (liste des <n>s supports) si erreur +CGMI ERROR: <err> Rponse +CREG: <n>,<stat>[,<lac>,<ci>] Paramtres <n> : indique dans quel mode la commande AT+CREG est utilise 0 commande inactive (valeur par dfaut) retourne un code indiquant si le tlphone est enregistr sur le rseau +CREG: <stat> retourne un code <stat> indiquant si le tlphone est enregistr sur le rseau et les informations <lac> et <ci> <stat> : 0 tlphone non enregistr, pas de recherche doprateur en cours 1 tlphone enregistr sur le rseau 2 tlphone non enregistr, recherche doprateur en cours 3 enregistrement interdit 4 inconnu 5 enregistr, roaming <lac> : Location Aera Code, deux octets cods en hexadcimal <ci> : Cell-ID, deux octets cods en hexadcimal si erreur +CGMI ERROR: <err> Rponse OK Paramtre Voir commande de lecture si erreur +CGMI ERROR: <err>

Commande de lecture AT+CREG?

Commande dcriture AT+CREG=[<n>]

34

CHAPITRE

COMMANDES AT

AT+CSQ : Qualit du signal Commande de test AT+CSQ=? Rponse +CSQ: (liste des <rssi>s supports),(liste des <ber>s supports) si erreur +CGMI ERROR: <err> Rponse +CSQ: <rssi>,<ber> Paramtres <rssi> : 0 113 dBm ou moins 1 111 dBm 2..30 - 109... 53 dBm 31 51 dBm ou plus 99 inconnu ou non dtectable <ber> : 0..7 RXQUAL 99 inconnu ou non dtectable si erreur +CGMI ERROR: <err>

Commande de lecture AT+CSQ?

AT+CIND : Indicateurs de contrle Commande de test AT+CIND=? Rponse +CIND: (<descr>,(liste des <ind>s supports)) [,(<descr>, (liste des <ind>s supports))[,...]] si erreur +CGMI ERROR: <err> Rponse +CIND: <ind>[,<ind>[,...]] Paramtres <ind> : niveau correspondant au <descr> <descr> : "battchg" niveau de charge de la batterie (0-5) "signal" qualit du signal (0-5) "service" disponibilit du service (0-1) "sounder" activit sonore (0-1) "message" message reu (0-1) "call" appel en cours (0-1) "vox" transmission active par activit vocale (0-1) "roam" indicateur de roaming (0-1) "smsfull" la mmoire de stockage des sms est pleine (1), ou disponible (0) si erreur +CGMI ERROR: <err>

Commande de lecture AT+CIND?

DUNOD La photocopie non autorise est un dlit.

35

INTERFACES GSM

AT+CPBS : Slectionne un rpertoire tlphonique Commande de test AT+CPBS=? Rponse +CPBS: (liste des <storage>s supports) OK si erreur +CGMI ERROR: <err> Rponse +CPBS: <storage>[,<used>,<total>] Paramtres Voir commande dcriture si erreur +CPBS ERROR: <err> Rponse OK Paramtres <storage> : "DC" : liste des numros appels "EN" : numro durgence stock dans mmoire SIM ou ME "FD" : rpertoire xe "LD" : dernier numro appel "MC" : liste des numros appels, mais sans rponse "ME" : rpertoire du ME "MT" : rpertoire combin, ME et SIM "ON" : numros propres la carte SIM / ME (MSISDNs) "RC" : liste des appels reus "SM" : rpertoire de la carte SIM "TA" : rpertoire du TA <used> : indique lespace utilis dans la mmoire <total> : taille de la mmoire si erreur +CGMI ERROR: <err>

Commande de lecture AT+CPBS?

Commande dcriture AT+CPBS=<storage>

36

CHAPITRE

COMMANDES AT

AT+CPBR : Lecture du rpertoire tlphonique Commande de test AT+CPBR=? Rponse +CPBR: (liste des <index>s supports),[<nlength>],[<tlength>] Paramtres <nlength> : taille maximum du champ <number> <tlength> : taille maximum du champ <text> si erreur +CGMI ERROR: <err> Rponse +CPBR: <index1>,<number>,<type>,<text>[[...] <CR><LF>+CPBR: <index2>,<number>,<type>,<text>]] Cette commande afche le contenu du rpertoire situ entre les emplacements <index1> et <index2> Paramtres <number> : numro de tlphone <type> : type de numro <text> : nom de la personne si erreur +CGMI ERROR: <err>

Commande dcriture AT+CPBR=<index1> [,<index2>]

AT+CPBF : Recherche une entit dans le rpertoire tlphonique Commande de test AT+CPBF=? Rponse +CPBF: [<nlength>],[<tlength>] OK Paramtres <nlength> : taille maximum du champ <number> <tlength> : taille maximum du champ <text> si erreur +CGMI ERROR: <err> Rponse +CPBF: <index1>,<number>,<type>,<text>[[...] <CR><LF>+CBPF: <index2>,<number>,<type>,<text>]] Recherche un lment dans le rpertoire courant (celui slectionn par la commande +CPBS) qui commence par les caractres spcis par <findtext> Paramtres <number> : numro de tlphone <type> : type de numro <text> : nom de la personne si erreur +CGMI ERROR: <err>

Commande de lecture AT+CPBF= <findtext>


DUNOD La photocopie non autorise est un dlit.

37

INTERFACES GSM

AT+CPBW : criture dans le rpertoire tlphonique Commande de test AT+CPBW=? Rponse +CPBW: (liste des <index>s supports),[<nlength>],[<tlength>] Paramtres <nlength> : taille maximum du champ <number> <tlength> : taille maximum du champ <text> si erreur +CGMI ERROR: <err> Rponse OK Paramtres <number> : numro de tlphone <type> : type de numro <text> : nom de la personne si erreur +CGMI ERROR: <err>

Commande dcriture AT+CPBW= [<index>] [,<number> [,<type>[,<text>]]]

AT+CCLK : Date / Heure Commande de test AT+CCLK? Rponse +CCLK: <time> Retourne la date et lheure au format "aa/mm/jj","hh:mm:ss" si erreur +CGMI ERROR: <err> Rponse OK mise jour de la date et de lheure si erreur +CGMI ERROR: <err>

Commande dcriture AT+CCLK=<time>

38

CHAPITRE

COMMANDES AT

AT+CALA : Alarme Commande de test AT+CALA=? Rponse +CALA: (liste des <n>s supports),(liste des <type>s supports), <tlength> Paramtres Voir commande de lecture si erreur +CGMI ERROR: <err> Rponse +CALA: <time>,<n1>,<type>,[<text>] [<CR><LF>+CALA: <time>,<n2>,<type>,[<text>][]]] Paramtre lalarme horaire du ME. Il est possible de programmer plusieurs alarmes, chaque alarme afche un message diffrent sur lcran du ME. Paramtres <time> : date et heure au format "aa/mm/jj","hh:mm:ss" <n>, <n1>, <n2> : nombre entier spciant lindex de lalarme (spcique au fabriquant) <type> : nombre entier qui indique le type dalarme, son, volume, Led <text> : texte qui doit safcher sur lcran du ME lorsque lalarme est active <Tlength> : taille maximum du champ <text> si erreur +CGMI ERROR: <err> Rponse OK Programmation dune alarme si erreur +CGMI ERROR: <err>

Commande de lecture AT+CALA?

Commande dcriture AT+CALA=<time> [, <n>[, <type> [, <text>]]]

AT+CMEE : Signalisation dune erreur


DUNOD La photocopie non autorise est un dlit.

Commande de test AT+CMEE=? Commande de lecture AT+CMEE? Commande dcriture AT+CMEE=[<n>]

Rponse +CMEE: (liste des <n>s supports) Rponse +CMEE: <n> Paramtres <n>: 0 seul le code "ERROR" est retourn 1 retourne le code "ERROR" plus une valeur numrique 2 retourne le code "ERROR" plus un commentaire

39

INTERFACES GSM
Codes derreur Lorsquune commande choue, un code derreur <err> peut tre renvoy au TE (voir commande AT+CMEE) :
0......... chec du tlphone 1......... pas de connexion au tlphone 2......... "phone-adaptor link reserved" 3......... opration interdite 4......... opration non supporte 5......... PH-SIM PIN requis 6......... PH-FSIM PIN requis 7......... PH-FSIM PUK requis 10....... SIM absente 11 ....... SIM PIN requis 12....... SIM PUK requis 13....... chec de SIM 14....... SIM occupe 15....... SIM fausse 16....... mot de passe incorrect 17....... SIM PIN2 requis 18....... SIM PUK2 requis 20....... mmoire pleine 21....... index invalide 22....... non trouv 23....... chec de mmoire 24....... chane de texte trop longue 25....... caractre invalide dans la chane 26....... numro de tlphone trop long 27....... caractre invalide dans le numro 30....... pas de rseau 31....... timeout rseau 32....... pas de rseau, appel durgence seulement 40....... code PIN didentication sur le rseau requis 41....... code PUK didentication sur le rseau requis 42....... code PIN second didentication sur le rseau requis 43....... code PUK second didentication sur le rseau requis 44....... code PIN didentication sur loprateur requis 45....... code PUK didentication sur loprateur requis 46....... code PIN requis pour une identication 47....... code PUK requis pour une identication 100..... inconnu Attention, certains lments prsents ci-avant sont extraits dun document ofciel de lETSI et par consquent ils sont soumis un copyright :

40

CHAPITRE

COMMANDES AT
ETSI 1999. Further use, modication, redistribution is strictly prohibited. ETSI standards are avaiable from: http://pda.etsi.org/pda/ and http://www.etsi.org/eds/

2.2 NORME GSM07.05


La norme GSM07.05 spcie les commandes AT permettant la gestion des SMS (tableau 2.3).
Tableau 2.3.

Commande AT+CSMS AT+CPMS AT+CMGF AT+CSCA AT+CSDH AT+CSAS AT+CRES AT+CNMI AT+CMGL AT+CMGR AT+CMGS
DUNOD La photocopie non autorise est un dlit.

Fonction Slection du service de messagerie Slection de la zone mmoire pour le stockage des SMS Slection du format du SMS (PDU ou TEXT) Dnition de ladresse du centre de messagerie Afche en mode TEXT le paramtrage des SMS Sauvegarde du paramtrage Restauration du paramtrage par dfaut Indication concernant un nouveau SMS Liste les SMS stocks en mmoire Lecture dun SMS Envoie un SMS Envoie dun SMS stock en mmoire criture dun SMS Efface un SMS

Page 45 46 46 47 47 48 48 49 50 50 51 51 52 52

AT+CMSS AT+CMGW AT+CMGD

Description dtaille des commandes


Paramtres concernant le stockage <index> Nombre entier indiquant lemplacement du SMS dans la mmoire associe.
<mem1> Mmoire dans laquelle les messages sont lus ou effacs. Les commandes utilisant ce paramtre

41

INTERFACES GSM
sont +CMGL qui liste les messages, +CMGR qui effectue la lecture dun message et +CMGD qui efface un message. <mem2> Mmoire utilise pour rdiger ou envoyer un message. Les commandes utilisant ce paramtre sont +CMSS qui envoie le message situ dans cette mmoire et +CMGW qui crit un message dans cette mmoire. Mmoire utilise pour stocker les messages reus. Les messages reus peuvent ventuellement tre directement transmis au TE, voir commande +CNMI. Les paramtres <mem1>, <mem2> et <mem3> peuvent thoriquement prendre les valeurs suivantes :
<memx> ME MT SM TA Description Stockage dans la mmoire du mobile Tous les stockages associs au mobile Stockage dans la carte SIM Stockage dans le TA (Terminal Adaptator)

<mem3>

<stat>

Si le mobile est utilis en mode PDU ce paramtre est un nombre entier compris entre 0 et 4. En mode TEXT il sagit alors dune chane de caractres. Dans les deux cas il indique ltat du message situ en mmoire :
Mode TEXT REC UNREAD REC READ STO UNSENT STO SENT ALL

Mode PDU 0 1 2 3 4

Signication Message reu non lu Message reu lu Message stock non envoy Message stock dj envoy Tous les messages (voir commande +CMGL)

<total1>

nombre entier indiquant le nombre de messages quil est possible de stocker dans la mmoire <mem1>.

42

CHAPITRE

COMMANDES AT
<total2> nombre entier indiquant le nombre de messages quil est possible de stocker dans la mmoire <mem2>. nombre entier indiquant le nombre de messages quil est possible de stocker dans la mmoire <mem3>. nombre entier indiquant le nombre de messages stocks dans la mmoire <mem1>. nombre entier indiquant le nombre de messages stocks dans la mmoire <mem2>. nombre entier indiquant le nombre de messages stocks dans la mmoire <mem3>.

<total3>

<used1> <used2> <used3>

Paramtres concernant les donnes On retrouve bien entendu des paramtres communs ceux que nous avons dtaills dans le chapitre Codage des SMS .
<alpha> Il sagit dune chane de caractres reprsentant le nom du destinataire <da> ou de lexpditeur du message <oa> correspondant une entre trouve dans le rpertoire du mobile (voir commande associe +CSCS). Adresse du destinataire du message. Le type dadresse utilis est donn par <toda>. Correspond au champ User Data qui stocke le corps du message. Data Coding Scheme, indique lalphabet utilis pour composer le champ <data> et la classe du message. Discharge Time respectant le format : "yy/MM/dd, hh:mm:sszz", o les caractres indiquent lanne (deux derniers chiffres), mois, jour, heure, minutes, secondes et le dcalage horaire. Indique le type de massage :
<fo> 17dec 2dec Description SMS-DELIVER ou SMS-SUBMIT SMS-STATUS-REPORT ou SMS-COMMAND

<da> <data> <dcs> <dt>

DUNOD La photocopie non autorise est un dlit.

<fo>

<length>

Indique la longueur du champ <data>. En mode TEXT il indique le nombre de caractres, en mode PDU il indique le nombre doctets.

43

INTERFACES GSM
<mr> <oa> <pdu> <pid> Rfrence du message (nombre entier compris entre 0 et 255dec). Adresse de lmetteur du message. Contient les informations relatives au type de PDU. Protocole Identier, indique quel type de service tlmatique est destin le message, par dfaut, il est 0, le message est donc trait comme un SMS. Adresse du centre de messagerie. Service Centre Time Stamp contient la date et lheure laquelle le SMS est arriv au SMSC (voir <dt>). Type de ladresse de destination, quand le premier caractre de <da> est + on a <toda>=145dec (numro international) sinon <toda>=129dec (numro national). Type de ladresse de lmetteur du message, quand le premier caractre de <da> est + on a <tooa>=145dec (numro international) sinon <tooa>=129dec (numro national). Format de codage de ladresse du centre de messagerie, ce paramtre est facultatif, sil est omis les numros tlphoniques nationaux/internationaux sont reconnus par le caractre + qui prcde le numro. Nombre compris entre 0 et 255dec indiquant la dure de validit du message.

<sca> <scts>

<toda>

<tooa>

<tosca>

<vp>

44

CHAPITRE

COMMANDES AT
Commandes AT pour la gestion des SMS
AT+CSMS : Slection du service de messagerie Commande de test AT+CSMS=? Rponse +CSMS: (liste des <service>s supports) Paramtres Voir commande dcriture si erreur +CMS ERROR <err>

Commande de lecture AT+CSMS?

Rponse +CSMS: <service>,<mt>,<mo> Retourne les types de messages supports par le ME : <mt> pour le mobile qui reoit le message, <mo> pour le mobile qui met le message. Paramtres Voir commande dcriture si erreur +CMS ERROR <err> Rponse +CSMS: <mt>,<mo> Paramtres <service> : 0 GSM 03.40 et 03.41 1...127 rserv 128... spcique au constructeur <mt>,<mo> : 0 type non support 1 type support si erreur +CMS ERROR <err>

Commande dcriture AT+CSMS= <service>

DUNOD La photocopie non autorise est un dlit.

45

INTERFACES GSM

AT+CPMS : Slection de la zone mmoire pour le stockage des SMS Commande de test AT+CPMS=? Rponse +CPMS: (liste des <mem1>s supportes),(liste des <mem2>s supportes), (liste des <mem3>s supportes) Liste pour chaque type de mmoire si erreur +CMS ERROR <err> Rponse +CPMS: <mem1>,<used1>,<total1>,<mem2>,<used2>,<total2>, <mem3>,<used3>,<total3> Afche pour chaque type de mmoire <memx> lespace utilis <usedx> et la capacit de stockage <totalx> si erreur +CMS ERROR: <err> Rponse +CPMS: <used1>,<total1>,<used2>,<total2>,<used3>,<total3> Affecte une mmoire aux paramtres <mem1>, <mem2> et <mem3> si erreur +CMS ERROR <err>

Commande de lecture AT+CPMS?

Commande dcriture +CPMS= <mem1> [,<mem2>[,<mem3>]]

AT+CMGF : Slectionne le format des SMS (PDU ou TEXT) Commande de test AT+CMGF=? Rponse +CMGF: liste des <mode>s supports OK Paramtre Voir commande dcriture si erreur +CMS ERROR <err> Rponse +CMGF: <mode> OK Paramtre Voir commande dcriture si erreur +CMS ERROR <err> Rponse OK slectionne le format de dialogue utilis Paramtre <mode> :0 mode PDU (mode disponible sur tous les types de mobile) 1 mode TEXT si erreur +CMS ERROR <err>

Commande de lecture AT+CMGF?

Commande dcriture AT+CMGF= [<mode>]

46

CHAPITRE

COMMANDES AT

AT+CSCA : Adresse du centre de messagerie (SMSC) Commande de test AT+CSCA=? Rponse OK si erreur +CMS ERROR <err> Rponse +CSCA: <sca>,<tosca> OK si erreur +CMS ERROR <err> Rponse OK Dnit ladresse du centre de messagerie utiliser pour lenvoi des SMS si erreur +CMS ERROR <err>

Commande de lecture AT+CSCA?

Commande dcriture Si mode TEXT (+CMGF=1) : AT+CSCA= <sca>[,<tosca>]

AT+CSDH : Afche en mode TEXT le paramtrage des SMS Commande de test AT+CSDH=? Rponse +CSDH: (liste des <show>s supports) Paramtre Voir commande dcriture si erreur +CMS ERROR <err> Rponse +CSDH: <show> Paramtre Voir commande dcriture si erreur +CMS ERROR <err> Rponse OK Paramtre <show> : 0 nafche pas tout le paramtrage du SMS, concerne les commandes +CSCA et +CSMP (<sca>, <tosca>, <fo>, <vp>, <pid> et <dcs>) sinon <length>, <toda> ou <tooa> pour +CMT, +CMGL, +CMGR 1 afche tout le paramtrage du SMS si erreur +CMS ERROR <err>

Commande de lecture AT+CSDH?

DUNOD La photocopie non autorise est un dlit.

Commande dcriture AT+CSDH= [<show>]

47

INTERFACES GSM

AT+CSAS : Sauvegarde du paramtrage en cours Commande de test AT+CSAS=? Rponse +CRES: liste des <profile>s supports si erreur +CMS ERROR <err> Sauvegarde en mmoire du paramtrage du service de messagerie en cours (concerne la commande +CSCA). Un mobile peut contenir dans sa mmoire volatile jusqu 255 proles diffrents. si erreur +CMS ERROR <err>

Commande dcriture AT+CSAS= [<profile>]

AT+CRES : Restauration du paramtrage par dfaut Commande de test AT+CRES=? Rponse +CRES: liste des <profile>s supports si erreur +CMS ERROR <err> Restauration dun des paramtrages du service de messagerie (concerne la commande +CSCA) stocks en mmoire. Un mobile peut contenir dans sa mmoire volatile jusqu 255 proles diffrents dnis laide de la commande +CSAS. si erreur +CMS ERROR <err>

Commande dcriture AT+CRES= [<profile>]

48

CHAPITRE

COMMANDES AT

AT+CNMI : Indication concernant un nouveau SMS Commande de test AT+CNMI=? Rponse +CNMI: (liste des <mode>s supports), (liste des <mt>s supports) Paramtres Voir commande dcriture si erreur +CMS ERROR <err> Rponse +CNMI: <mode>,<mt> Paramtres Voir commande dcriture si erreur +CMS ERROR <err> Rponse OK Dtermine comment le mobile doit informer le TE lorsquun nouveau SMS arrive du rseau. <mode> : 0 Les indications concernant la rception dun nouveau message sont stockes dans le TA. 1 Rejette les indications concernant la rception dun nouveau message lorsque la liaison entre le TA et le TE est rserve. Sinon les indications sont directement transfres vers le TE. 2 Sauvegarde dans le TA les indications concernant la rception dun nouveau message lorsque la liaison entre le TA et le TE est rserve. Lorsque la liaison est libre, les indications sont transfres vers le TE. 3 Les indications concernant la rception dun nouveau message sont directement transfres vers le TE. <mt> : 0 Aucune indication concernant le SMS-DELIVER nest envoye au TE. 1 Si le SMS-DELIVER est stock dans le mobile, les indications concernant lemplacement en mmoire du message sont envoyes au TE en utilisant le code +CMTI: <mem>,<index> 2 Les SMS-DELIVERs sont directement achemins au TE en utilisant le code +CMT : [<alpha>],<length><CR><LF><pdu> 3 Les SMS-DELIVERs de classe 3 sont directement achemins au TE en utilisant le code : +CMT: [<alpha>],<length><CR><LF><pdu> si erreur +CMS ERROR <err>

Commande de lecture AT+CNMI?

Commande dcriture +CNMI= [<mode> [,<mt>]]

DUNOD La photocopie non autorise est un dlit.

49

INTERFACES GSM

AT+CMGL : Liste les SMS stocks en mmoire Commande de test AT+CMGL=? Rponse +CMGL: liste des <stat>s supports OK si erreur +CMS ERROR <err> Rponse Si mode PDU (AT+CMGF=0) et commande russie +CMGL: <index>,<stat>,[<alpha>],<length><CR><LF><pdu> [<CR><LF>+CMGL:<index>,<stat>,[<alpha>],<length><CR><LF> <pdu>[...]] Si mode TEXT (AT+CMGF=1) et commande russie +CMGL: <index>,<stat>,<oa/da>,[<alpha>],[<scts>] [,<tooa/toda>,<length>]<CR><LF><data>[<CR><LF> +CMGL: <index>,<stat>,<da/oa>,[<alpha>],[<scts>] [,<tooa/toda>,<length>]<CR><LF><data>[...]] Retourne tous les messages stocks avec leur tat <stat> depuis la mmoire <mem1> Si ltat dun message est received unread il devient received read si erreur +CMS ERROR <err>

Commande dcriture AT+CMGL= [<stat>]

AT+CMGR : Lecture dun SMS Commande de test +CMGR=? Rponse OK si erreur +CMS ERROR <err> Rponse Si mode PDU (AT+CMGF=0) et commande russie +CMGR: <stat>,[<alpha>],<length><CR><LF><pdu> Si mode TEXT (AT+CMGF=1), commande russie et SMS-DELIVER +CMGR: <stat>,<oa>,[<alpha>],<scts> [,<tooa>,<fo>,<pid>,<dcs>,<sca>,<tosca>,<length>]<CR> <LF><data> Si mode TEXT (AT+CMGF=1), commande russie et SMS-SUBMIT +CMGR: <stat>,<da>,[<alpha>] [,<toda>,<fo>,<pid>,<dcs>,[<vp>],<sca>,<tosca>,<length>]<CR> <LF><data> Retourne le message ayant pour emplacement <index> dans la mmoire <mem1> Si ltat dun message est received unread il devient received read si erreur +CMS ERROR <err>

Commande dcriture +CMGR= <index>

50

CHAPITRE

COMMANDES AT

AT+CMGS : Envoi dun SMS Commande de test AT+CMGS=? Rponse OK si erreur +CMS ERROR <err> Rponse +CMGS: <mr>[,<scts>] OK Envoi du SMS sur le rseau (SMS-SUBMIT). La rfrence du message <mr> est retourne au terminal metteur si le message est correctement envoy. Si erreur : +CMS ERROR: <err> Note : La n du message est signale par CTRL Z ESC annule lenvoi du message en cours, bien que le terminal retourne OK, le SMS nest pas envoy. Envoi de-mail par SMS : certains providers ne reconnaissent pas le symbole @, il est possible dans certains cas de le remplacer par !

Commande dcriture Si mode PDU (+CMGF=0) : +CMGS= <length><CR> trame PDU <ctrl-Z/ESC> Si mode TEXT (+CMGF=1) : +CMGS= <da>[,<toda>] <CR> texte <ctrl-Z/ESC>

AT+CMSS : Envoi dun SMS stock en mmoire Commande de test AT+CMSS=? Rponse OK si erreur +CMS ERROR <err> Si lenvoi est russi : +CMSS: <mr> Cette commande envoie le SMS (SMS-SUBMIT), situ lemplacement <index> de la mmoire <mem2> La rfrence du message <mr> est retourne au terminal metteur si le message est correctement envoy. si erreur +CMS ERROR <err>

Commande dcriture +CMSS=<index> [,<da>[,<toda>]]

DUNOD La photocopie non autorise est un dlit.

51

INTERFACES GSM

AT+CMGW : criture dun SMS en mmoire Commande de test AT+CMGW=? Rponse OK si erreur +CMS ERROR <err> Rponse +CMGW: <index> Lexcution de cette commande effectue le stockage dans la mmoire <mem2> dun message (SMS-DELIVER ou SMS-SUBMIT). Lemplacement du message dans la mmoire <index> est retourn. Par dfaut ltat du message sera stored unsent , mais le paramtre <stat> qui est facultatif autorise les autres valeurs possibles. si erreur +CMS ERROR <err>

Commande dcriture Si mode PDU (+CMGF=0) : +CMGW= <length>[,stat] <CR> trame PDU <ctrl-Z/ESC> Si mode TEXT (+CMGF=1) : +CMGW=<oa/da> [,<tooa/toda> [,<stat>]]<CR> texte <ctrl-Z/ESC>

AT+CMGD : Efface un SMS Commande de test AT+CMGD=? Rponse OK si erreur +CMS ERROR <err> Rponse OK Efface le message situ dans la mmoire <mem1> lemplacement dnit par <index> si erreur +CMS ERROR <err>

Commande dcriture AT+CMGD= <index>

52

CHAPITRE

COMMANDES AT
Codes derreur Lorsquune commande choue, un code derreur <err> peut tre renvoy au TE (voir commande AT+CMEE) :
300 ...............chec ME 301 ...............service SMS du ME rserv 302 ...............opration non autorise 303 ...............opration non supporte 304 ...............paramtre invalide (mode PDU) 305 ...............paramtre invalide (mode TEXT) 310 ...............SIM non insre 311 ...............SIM PIN ncessaire 312 ...............PH-SIM PIN ncessaire 313 ...............chec SIM 314 ...............SIM occupe 315 ...............SIM faux 320 ...............chec mmoire 321 ...............index mmoire non valide 322 ...............mmoire pleine 330 ...............adresse SMSC inconnue 331 ...............pas de rseau 332 ...............timeout rseau 500 ...............erreur inconnue 501 511 .....rserv 512 ...............spcique au constructeur Attention, certains lments prsents ci avant sont extraits dun document ofciel de lETSI et par consquent ils sont soumis un copyright : ETSI 1999. Further use, modication, redistribution is strictly prohibited. ETSI standards are avaiable from: http://pda.etsi.org/pda/ and http://www.etsi.org/eds/
DUNOD La photocopie non autorise est un dlit.

53

CHAPITRE

PAGE

3
4 5

MATRIELS UTILISS

3.1 Tlphones portables 3.2 Modules GSM intgrs

56 62

Interfacer un tlphone GSM Ralisations lectroniques Annexes Glossaire Bibliographie

73 101 251 261 264

55

INTERFACES GSM

3.1 TLPHONES PORTABLES


La majorit des tlphones portables disposent en interne dun TA, dans ce cas il est possible de rcuprer les lignes TxD et RxD disponibles sur un connecteur multibroche, propre chaque modle de tlphone. Un simple circuit adaptateur de niveau de tension TTL/RS232 permet alors de relier le tlphone au port srie dun PC. Bien entendu tout portable normalement constitu se doit de reconnatre les normes GSM07.07 et GSM07.05, ainsi il est possible via lordinateur daccder toutes les fonctions du tlphone laide des commandes AT que nous avons vues prcdemment. Il est important de noter que certains modles de portables ne supportent pas le mode TEXT, la gestion des SMS entre lordinateur et le mobile se fait uniquement en mode PDU. Rappelons que la commande AT+CMGF=? permet de lister les modes supports par le mobile, si la rponse est +CMGF : (0,1) cela signie que les modes TEXT (0) et PDU (1) sont supports. Si la rponse est +CMGF : (0), seul le mode PDU peut tre utilis.

Adaptateur TTL/RS232

Figure 3.1. Schma de ladaptateur TTL/RS232.

Nous allons faire appel au clbre circuit intgr MAX232 qui, cbl avec ces 4 condensateurs au tantale de 1 F, permet dadapter

56

CHAPITRE

MATRIELS UTILISS
les niveaux de tension entre le PC et le tlphone. Paradoxalement le plus compliqu consiste se procurer le connecteur pour relier le tlphone au montage. Il est possible de modier un kit piton encore faut-il que les broches qui nous intressent soient prsentes. Quelques exemples de brochages rcuprs sur Internet vont vous permettre didentier les lignes relier au montage. Attention les brochages prsents ici nont pas t vris, leur utilisation est sous votre entire responsabilit. Lalimentation du montage peut se faire partir des sorties DTR et RTS de lordinateur, dans ce cas le cavalier J1 est en position B. Comme certains PC ne disposent pas dune puissance sufsante sur leur

Figure 3.2. Circuit imprim. Figure 3.3. Implantation des composants. Liste des composants C1 : 100 nF / LCC jaune C2 C5 : 1 F / tantale / 15 V C6 : 220 F / lectrolytique / 15 V D1 : 1N4002 D2, D3 : 1N4148 REG : rgulateur 78L05 J1 : barrette HE10 3 contacts + cavalier CN1 : bornier vis 2 plots CN2 : connecteur DB9 mle pour CI/coud 90 CN3 : connecteur spcique au modle de tlphone utilis IC1 : MAX232 + support DIL 16 broches
DUNOD La photocopie non autorise est un dlit.

57

INTERFACES GSM

Figure 3.4. Diffrents brochages.

58

CHAPITRE

MATRIELS UTILISS
port srie, cest le cas notamment des portables, il est possible de connecter sur le bornier CN1 une alimentation externe dlivrant une tension de 12 V, dans ce cas le cavalier J1 est en position A. Dans les deux cas le rgulateur 78L05 se charge de rguler + 5 V la tension destine au MAX232 mais aussi au tlphone, certains modles ont besoin de cette tension pour activer leur port srie. Il est possible de tester le montage avant mme de lavoir connect au tlphone. Pour cela, reliez momentanment les lignes TXD et RXD, ainsi les donnes transmises sur TXD sont recopies sur RXD. Un simple logiciel comme Hyper Terminal sufra vrier que le texte saisi lcran est renvoy comme un cho par le montage.

Adaptateur pour FBUS/MBUS (ou M2BUS)

DUNOD La photocopie non autorise est un dlit.

Certains tlphones, notamment ceux de la marque Nokia, ncessitent une lectronique lgrement diffrente pour communiquer avec un PC. En effet ils utilisent des protocoles de transmission FBUS et/ou MBUS propres ce constructeur. Le FBUS est le mode de communication privilgi de lutilisateur, il permet le transfert de donnes une vitesse maximale de 115 kbauds, on retrouve les broches TXD et RXD mais les niveaux de tension ne doivent pas dpasser 3 V, do la prsence des diodes zener DZ1

Figure 3.5. Schma de ladaptateur pour FBUS/MBUS.

59

INTERFACES GSM
et DZ2 qui possdent une tension de seuil de 2,7 V. Le MBUS est plutt rserv au personnel technique de Nokia pour effectuer le paramtrage systme du tlphone, bien quil puisse tre aussi utilis pour le transfert de donnes mais avec une vitesse limite 9 600 bauds. La transmission et la rception se font sur une seule broche nomme MBUS. Le montage prsent ici peut communiquer selon les deux protocoles FBUS (cavalier J2 retir) ou MBUS (cavalier J2 en place). Il est possible de tester le montage avant mme de lavoir reli au tlphone. En effet, lorsque rien nest connect au bus, les lignes RXD et TXD se trouvent relies par la diode D4 de sorte que toute information envoye sur TXD est retransmise sur RXD (si le cavalier J2 en place).

Figure 3.6. Circuit imprim. Figure 3.7. Implantation des composants. Liste des composants C1 : 100 nF / LCC jaune C2 C5 : 1 F / tantale / 15 V C6 : 220 F / lectrolytique / 15 V D1 : 1N4002 D2 D4 : 1N4148 DZ1, DZ2 : diode zener 2,7 V REG : rgulateur 78L05 J1 : barrette HE10 3 contacts + cavalier J2 : barrette HE10 2 contacts + cavalier CN1 : bornier vis 2 plots CN2 : connecteur DB9 mle pour CI coud 90 CN3 : connecteur spcique au modle de tlphone utilis IC1 : MAX232 + support DIL 16 broches

60

CHAPITRE

MATRIELS UTILISS

Remarque : pour relier ladaptateur TTL/RS232 ou ladaptateur pour FBUS/MBUS (ou M2BUS) au port srie dun ordinateur il faut utiliser un cble RS232 droit , la ligne TXD de ladaptateur doit tre connecte sur la ligne TXD du PC et la ligne RXD de ladaptateur doit tre connecte sur la ligne RXD du PC (voir gure 3.9).

Figure 3.8. Brochages concernant les tlphones de la marque NOKIA.

DUNOD La photocopie non autorise est un dlit.

Figure 3.9. Cble adaptateur.

Cordons DATA
Si vous ntes pas convaincu du brochage trouv sur Internet et que vous avez peur dabmer votre tlphone, il est possible dacheter un cble tout prt. Ces cbles appels DATA ou DATA LINK sont malheureusement difciles se procurer dans le commerce traditionnel. Encore une fois Internet vient notre secours, sur le site www.maisondugsm.com vous trouverez certainement le cble correspondant votre modle de tlphone, avec la possibilit de commander par correspondance si le paiement en ligne vous rebute. Ces cbles disposent en interne de toute la circuiterie permettant une liaison directe entre votre tlphone et

61

INTERFACES GSM
le port srie du PC. Lnergie ncessaire la mise niveaux des signaux est prleve, en principe, de la ligne DTR, ce qui rend le cble totalement autonome. Notez quil existe des cbles permettant de connecter simultanment une alimentation externe an de recharger la batterie du tlphone.

3.2 MODULES GSM INTGRS


On trouve dsormais sur le march des tlphones GSM intgrs dbarrasss de leurs interfaces homme-machine, ne subsiste que la partie interface machine-machine (M2M), qui physiquement correspond un connecteur multibroche quelconque ou encore un connecteur DB9 facilitant la connexion un PC. Ces modules sont universels puisquils supportent les normes GSM07.07 et GSM07.05 dcrites prcdemment et permettent de ce fait lchange de donnes, de SMS, demails et mme de tlcopies (FAX) via le rseau de tlphonie mobile. Leur simplicit de mise en uvre ouvre des perspectives trs intressantes concernant la ralisation de montages lectroniques sans l. La socit Lextronic propose la vente via son site Internet plusieurs modles de modules GSM intgrs ladresse http://www.lextronic.fr/R203-modules-gsm--gprs.html

Le TM2 de TELTONIKA
Parmi les diffrents modles proposs par Lextronic notre choix sest port sur le TM2 fabriqu par la socit Teltonika. Il sagit dun modle quadri bandes qui utilise les frquences 850, 900, 1 800 et 1 900 MHz. Il est capable de fonctionner dans les modes voix, donnes, FAX et surtout, le plus intressant pour nous, dans le mode SMS. Le module dispose dun support destin recevoir lindispensable carte SIM et un connecteur MMCX permettant de relier une petite antenne RF galement fournie par Lextronic. Toutes les entres et sorties utiles au pilotage du module sont disponibles sur un connecteur comportant 60 points en CMS. Inutile desprer souder vous-mme un tel composant. Heureusement Lextronic propose un adaptateur qui rpartit lensemble des connexions sur 4 ranges de 15 points au pas classique de 2,54mm. Nous avons ajout au module TM2 une interface au format RS232 an de pouvoir facilement le connecter au port srie dun PC et surtout toutes les ralisations prsentes dans le chapitre 5. Une fois de plus nous faisons donc appel au traditionnel MAX232 pour ladaptation des niveaux de tensions des lignes TXD0 et RXD0. Comme le TM2 utilise des niveaux de tension de

62

CHAPITRE

MATRIELS UTILISS

Transmission Alimentation Bandes de frquences Courant absorb

Voix, donnes et SMS 3.5 V 4.2 V, typiquement 3.8 V GSM 850 MHz, EGSM 900 MHz, DCS 1800 MHz, PCS 1900 MHz GSM900 : 147 mA (900 mA max) GSM1800 : 127 mA (700 mA max) GSM1900 : 113 mA (650 mA max) Class 4 (2 W) pour bandes GSM/EGSM Class 1 (1 W) pour bandes DCS/PCS Intgr au module, supporte les cartes SIM 3,3v et 1,8v Externe par connecteur MMCX Connecteur 60 points (CVILUX CBRB060PC2000R0) : Audio, (2x analog, 1x digital), I2C bus, SPI bus, 2x ADC, 2x analog out (PWM), 12 GPIOs et 2 port srie de type UART GSM07.07 et GSM07.05 PDU et TEXT GPRS multi-slot class (MSC) 10 (4+1, 3+2), GPRS PBCCH/PCCCH support, GPRS Class B and CC G3, Classe 2.0 20 C + 55 C

Tableau 3.1. Caractristiques principales

Puissance dmission Lecteur de carte SIM Antenne Interfaces

Normes respectes Modes SMS GPRS Data Services FAX Temprature dutilisation Taille
DUNOD La photocopie non autorise est un dlit.

33,5 mm x 38,8 mm x 5,6 mm < 10 g

Masse

+3,3v il faut prendre soin dabaisser la tension fournie par la sortie TXD du MAX232 laide dun simple pont diviseur de tension constitu par les rsistances R1 et R2. Lentre KIN2 est relie au GND ainsi le TM2 devient actif ds sa mise sous tension. Le module TM2 doit tre aliment par une tension de +3,8v via ses entres VBAT. Nous utilisons un rgulateur de tension LM317 (REG2) qui dlivre une tension fonction de la rsistance du potentiomtre P1. Avant mme dinsrer le module TM2 il est impratif de rgler le potentiomtre P1 jusqu lobtention dune tension de +3,8v entre la broche VBAT et la broche GND.

63

INTERFACES GSM

Figure 3.10. Le module TM2 vu de dessous ( gauche) et de dessus ( droite).

Une petite chute de plaque daluminium fera ofce de dissipateur thermique pour REG2. Un deuxime rgulateur 78L05 (REG1) est ncessaire pour alimenter le circuit MAX232 avec une tension plus conventionnelle de +5v.

Figure 3.11. Le module TM2 avec son antenne sur sa platine dadaptation.

Compte tenu de lintensit absorbe par le module GSM notamment lors des phases de recherche de rseau, il conviendra dutiliser un bloc alimentation secteur dlivrant au moins une intensit de 1A pour une tension continue comprise entre 9 et 12v. Une prise jack (CN1) femelle permet de relier facilement nimporte quel bloc du commerce. Lalimentation est reprise sur le connecteur CN2 an dalimenter le montage hte, un de ceux prsents dans le chapitre 5.

64

CHAPITRE

MATRIELS UTILISS

Figure 3.12. Schma lectrique.

Seules les broches utiles au montage sont relies la carte dadaptation via 4 connecteurs CN4 CN7 de type HE10. Comme les broches VBAT et GND sont dj interconnectes sur la carte dadaptation il nest pas utile de toutes les relies notre montage.

DUNOD La photocopie non autorise est un dlit.

65

INTERFACES GSM

Figure 3.13. Circuit imprim.

Figure 3.14. Implantation des composants.

Liste des composants R1 : 4,7 k R2 : 100 k R3 : 220 (prcision 1 %) P1 : potentiomtre multi-tours horizontal/4,7 k C1 : 220 F/lectrolytique/25v horizontal C2 : 100 nF/LCC jaune C3 C6 : 1 F/tantale/15v D1 : diode 1N4004 IC1 : MAX232 + support DIL 16 broches IC2 : module GSM TM2 + platine dadaptation + antenne (www.Lextronic.fr) REG1 : 78L05 REG2 : LM317 CN1 : prise jack femelle pour CI CN2 : bornier 2 plots . CN3 : connecteur DB9 femelle CN4 CN7 : connecteur HE10

66

CHAPITRE

MATRIELS UTILISS
Mise en uvre Le montage peut tre connect au port srie dun ordinateur de type PC. Dans cette conguration le chapitre 4 vous montrera comment utiliser le logiciel Hyper terminal pour envoyer des commandes AT au module TM2.
La connexion du module TM2 peut seffectuer directement au port srie du PC ou par lintermdiaire dun cble droit constitu de deux connecteurs DB9 mle et femelle.

Figure 3.15. Cble droit constitu de deux connecteurs DB9 mle et femelle.

Le montage peut galement tre directement connect au port srie dune des 5 ralisations prsentes au chapitre 5.

Commandes AT spciques au module TM2 En supplment des commandes AT prsentes au chapitre 2, il est ncessaire de connatre les commandes dtailles ci-aprs. Elles nous serons utiles la n du chapitre suivant an de paramtrer la vitesse de transmission entre le module TM2 (TA) et le montage hte (TE).
AT+IpR : Dnit la vitesse de transmission srie Commande de test AT+IPR=?
DUNOD La photocopie non autorise est un dlit.

Tableau 3.2.

Rponse +IPR : liste des <vitesses> supportes pour la transmissions des donnes entre la TA et le TE 0, 2400, 4800, 9600, 19200, 38400, 57600, 115200 bps. 115200 est le rglage sortie dusine. 0 signie que le TA se synchronise automatiquement sur la vitesse du TE Rponse +IPR : <vitesse> OK Retourne la vitesse de transmission en cours si erreur +CME ERROR : <error> Rponse OK Dnit la vitesse de transmission si erreur +CME ERROR : <error>

Commande de lecture AT+IPR?

Commande dcriture AT+IPR=<vitesse>

67

INTERFACES GSM
Tableau 3.3.
AT&W : sauvegarde la conguration en cours Commande dcriture AT&W [<value>] Rponse OK Cette commande enregistre en mmoire la conguration active du TA dans un des deux proles utilisateurs. <value>=0 premier prole (valeur par dfaut) <value>=1 deuxime prole si erreur +CME ERROR : <error> Nota : cette commande doit tre utilise conjointement avec la commande AT+CPWROFF pour que la mmorisation du prole soit effective Liste des paramtres mmoriss dans le prole utilisateur : AT&C : Circuit 109 behavior ; AT&D : Circuit 108 behavior ; AT&K : Flow control ; ATE : Echo mode ; ATQ : Response Suppression Mode ; ATV : Response Formatting Mode ; ATX : Call Progress Monitoring Control ; ATS0 : Automatic answer ; ATS2 : Escape character ; ATS3 : Command line termination character ; ATS4 : Response formatting character ; ATS5 : Command line editing character ; ATS7 : Connection completion timeout ; AT+CBST : Data Rate, Bearer Service, Connection Element ; AT+CRLP : RlpIws (IWF to MS window size), RlpMws (MS to IWF window size), Rlp96T1 (acknowledgement timer T1), RlpN2 (retransmission attempts N2) ; AT+CR : Service Report Control Mode ;

68

CHAPITRE

MATRIELS UTILISS

AT&W : sauvegarde la conguration en cours AT+CRC : Cellular Result Mode ; +BR (+IPR saved value) : Baud Rate ; AT+COPS : Cops mode, Cops PLMN to Register ; AT+NMGC : Microphone Gain Control ; AT+NSGC : Speaker Gain Control ; AT+NSTN : Sidetone ; AT+NUBF : Uplink Biquad Filters ; AT+NDBF : Downlink Biquad Filters ; AT+NHFP : Hand Free Parameters ; AT+ICF : DTE-DCE character framing ;

Tableau 3.3. (suite)

AT&V : afche la conguration en cours AT&V[<value>] Rponse ACTIVE PROFILE : &C1, S02 : S07 : 061, +BR : &D1, &K3, E1, Q0, V1, X4, S00 043, S03 : 013, S04 : 010, S05 060, +CBST : 007, 000, 001, +CRLP 048, 006, +CR : 000, +CRC 57600, +COPS : 2,FFFFF : : : : 000, 008, 061, 000,

Tableau 3.4.

STORED PROFILE 0 : &C1, S02 : S07 : 061, +BR : &D1, &K3, E1, Q0, V1, X4, S00 043, S03 : 013, S04 : 010, S05 060, +CBST : 007, 000, 001, +CRLP 048, 006, +CR : 000, +CRC 115200, +COPS : 2, FFFFF : : : : 000, 008, 061, 000,

DUNOD La photocopie non autorise est un dlit.

STORED PROFILE 1 : &C1, S02 : S07 : 061, +BR : OK Cette commande retourne la conguration en cours ainsi que les congurations stockes dans les proles utilisateurs. si erreur +CME ERROR : <error> &D1, &K3, E1, Q0, V1, X4, S00 043, S03 : 013, S04 : 010, S05 060, +CBST : 007, 000, 001, +CRLP 048, 006, +CR : 000, +CRC 115200, +COPS : 2, FFFFF : : : : 000, 008, 061, 000,

69

INTERFACES GSM
Tableau 3.5.

AT&Y : Dnit le prole charg la suite dun RESET AT&Y[<value>] Rponse OK <value>=0 premier prole (valeur par dfaut) <value>=1 deuxime prole si erreur +CME ERROR : <error>

Pour aller plus loin


Le module TM2 est aussi capable de mettre en uvre des connexions de type GPRS, de fait il est possible douvrir des sockets permettant le transfert de donnes suivant le protocole TCP/IP. La conguration en mode client ou serveur se fait laide de commandes AT propres au module TM2. Sans trop rentrer dans les dtails nous vous prsentons deux exemples de conguration tirs de la datasheet du constructeur Teltonika AT commands.

Conguration du prole GPRS Tout dabord il faut congurer un prole GPRS partir des informations de votre oprateur tlphonique (SFR dans cet exemple).
Tableau 3.6.
at+npsd=0,1,"websfr" OK at+npsd=0,2," " OK at+npsd=0,3," " OK at+npsd=0,4,"172.20.2.10" OK at+npsd=0,5,"194.6.128.4" OK at+npsd=0,7,"0.0.0.0" OK Cration dun prole GPRS n 0 Code APN : websfr Nom dutilisateur (vide) Mot de passe (vide) DNS1 DNS2 Adresse IP (0.0.0.0 dynamique)

70

CHAPITRE

MATRIELS UTILISS
Cration dun socket serveur
at+npsda=0,3 OK at+npsnd=0,0 +NPSND : 0,0,"217.201.129.34" OK at+nsocr=6 +NSOCR : 0 OK at+nsoli=0,80 OK +NUSOLI : 1,"151.9.34.66",9882 +NUSORD : 1,28 at+nsord=1,28 +NSORD : 1,28,"data sent from telnet client" OK at+nsowr=1,29,"sending data to telnet client" +NSOWR : 1,29 OK at+nsocl=1 OK at+nsocl=0 OK at+npsda=0,4 OK Active le prole GPRS n 0 Obtention dune adresse IP dynamique Adresse IP serveur=217.201.129.34 Cration dun soket 0 = n du soket TCP Association du socket au port 80 Afchage de ladresse IP du client qui tente de se connecter Indication quil existe 28 octets en provenance du client Lecture de ces 28 octets Rponse Ecriture de 29 octets destination du client

Tableau 3.7.

Fermeture du socket 1 Fermeture du socket 0 Fermeture du prole GPRS n 0

DUNOD La photocopie non autorise est un dlit.

71

INTERFACES GSM
Cration dun socket client
Tableau 3.8.
at+npsda=0,3 OK at+nsocr=6 +NSOCR : 0 OK at+nsoco=0,"151.9.34.66",80 OK at+nsowr=0,18,"data to be written" +NSOWR : 0,18 OK +NUSORD : 0,18 at+nsord=0,8 +NSORD : 0,8,"data to " OK +NUSORD : 0,10 at+nsord=0,10 +NSORD : 0,10,"be written" OK at+nsocl=0 OK at+npsda=0,4 Active le prole GPRS n 0 Cration dun soket TCP 0 = n du soket Adresse IP serveur=151.9.34.66 et port=80 associs au socket n0 Ecriture de 18 octets destination du serveur Conrmation dcriture Notication de rception de 18 octets mis par le serveur Lecture des 8 premiers octets Notication quil existe 10 octets restant Lecture des 10 octets Fermeture du socket 0 Fermeture du prole GPRS n 0

Pour plus dinformations sur la mise en uvre de montages autonomes utilisant la technologie TCP/IP pour communiquer, nous vous renvoyons louvrage Contrle, commande et mesure via Internet disponible aux ditions DUNOD.

72

CHAPITRE

PAGE

4
5

INTERFACER UN TLPHONE GSM

4.1 Avec un PC 4.2 Avec un PicBasic

74 92

Ralisations lectroniques Annexes Glossaire Bibliographie

101 251 261 264

73

INTERFACES GSM
Ce chapitre va vous montrer comment interfacer facilement un tlphone (ou terminal) GSM. Dans un premier temps nous utiliserons un ordinateur de type PC en guise de TE (Terminal Equipement), les commandes AT vues prcdemment saisies partir du logiciel Hyper Terminal seront envoyes via le port srie. Dans un deuxime temps cest un simple microcontrleur PicBasic beaucoup plus compacte qui nous permettra, en matire denvoi et de rception de SMS, datteindre les mmes rsultats que le PC.

4.1 AVEC UN PC
Le logiciel Hyper Terminal livr en standard avec Windows est utilis pour envoyer les commandes AT tires des normes GSM07.05 et GSM07.07. Un logiciel maison dvelopp sous DELPHI vous permettra denvoyer, de recevoir, et de consulter facilement vos SMS.

Matriel
Tlphone GSM standard
un cble spcique, du commerce, ou que vous fabriquerez vous-mme (adaptateur RS232/TTL), comme nous lavons vu dans le chapitre 3 ; une carte SIM pour vous connecter au rseau GSM (vous pouvez utiliser une carte prpaye telle que mobicarte) ; un PC disposant dun port srie libre (exemple : COM2 ou COM1). Nota : si votre ordinateur na pas de port srie vous pouvez utiliser un convertisseur USB-Srie du commerce ; un logiciel Windows de type Hyper Terminal (livr en standard avec toutes les versions de Windows).

Terminal GSM : TM2 de Teltonika


une carte SIM pour vous connecter au rseau GSM (vous pouvez utiliser une carte prpaye telle que mobicarte) ; une antenne GSM (fournie par le fabriquant) ; un bloc secteur pour lalimentation (9 12 v / 1 A) ; un PC disposant dun port srie libre (exemple : COM2 ou COM1). Nota : si votre ordinateur na pas de port srie vous pouvez utiliser un convertisseur USB-Srie du commerce ; un logiciel Windows de type Hyper Terminal (livr en standard avec toutes les versions de Windows).

74

CHAPITRE

INTERFACER UN TLPHONE GSM


Attention, veillez mettre le tlphone ou le terminal hors tension avant dinsrer ou de retirer la carte SIM de son lecteur.

Hyper Terminal
Ouvrez une session du logiciel Hyper Terminal gnralement situ sous le rpertoire C:\Program Files\Windows . Vous pouvez crer un raccourci sur le bureau pour un accs ultrieur plus rapide.

Figure 4.1. Description de la connexion.

Dans la fentre Description de la connexion (gure 4.1) spciez un nom pour la connexion que vous allez crer. Choisissez galement une icne qui sera associe la connexion. Dans la fentre Numro de tlphone (gure 4.2) slectionnez dans la liste droulante Se connecter en utilisant le port COM1 ou COM2. Les autres listes de la fentre qui sont utilises uniquement avec un modem doivent se griser. La fentre Proprits de COMx (gure 4.3) permet de congurer le protocole de transfert. La vitesse de transmission dnie en bits par seconde (ou bauds) est xe 9 600. Cette valeur nest, en principe, pas primordiale pour un tlphone GSM car celui-ci est prvu pour se synchroniser sur la vitesse de transmission du TE. Nous avons volontairement choisi une vitesse ni trop rapide ni trop lente, susceptible dtre accepte par tous les modles de tlphone. Les autres paramtres 8 bits de donnes, pas de parit et 1 bit de stop correspondent la conguration par dfaut. Aucun contrle de ux nest spci, il sufra dattendre la conrmation de traitement de la commande saisie avant denvoyer la suivante. Lorsque vous cliquez sur la touche OK la connexion est tablie.

DUNOD La photocopie non autorise est un dlit.

75

INTERFACES GSM

Figure 4.2. Numro de tlphone.

Attention : concernant le module GSM TM2 vous devez utiliser une vitesse de 115 200 bds. Nous verrons dans le paragraphe Commandes spciques au TM2 de Teltonika comment ramener cette vitesse 9 600 bds. Remarque : il nest pas utile de paramtrer le logiciel pour que les commandes saisies au clavier safchent lcran car chaque caractre saisi est automatiquement renvoy par le ME en cho.

Figure 4.3. Proprits de COM2.

76

CHAPITRE

INTERFACER UN TLPHONE GSM


Ceci permet de contrler que la commande est correctement rceptionne par le ME. On constate dailleurs un trs lger retard entre la saisie dune commande et son afchage lcran. On constate aussi que si une nouvelle commande ne commence pas par les caractres "AT+" les caractres saisis ne sont pas afchs l'cran, donc refuss par le ME. Pour tester la liaison vous pouvez utiliser la commande la plus simple qui soit :
AT [ENTREE]

Rappelons que la touche [ENTREE] ou Return du clavier correspond au caractre <CR>, lcran il se traduit par un retour la ligne. Si la liaison est tablie le mobile doit simplement rpondre par :
OK

Figure 4.4. Hyper Terminal.


DUNOD La photocopie non autorise est un dlit.

Lorsque lon utilise un logiciel informatique comme Hyper Terminal pour envoyer ou recevoir des donnes via le port srie du PC, les caractres saisis lcran sont cods suivant la table des caractres ASCII. Par exemple si vous tapez la lettre majuscule A cest le code 1000001bin qui est envoy au systme connect sur le port srie. Il est donc impratif que ce systme utilise la mme table pour convertir la donne rceptionne. Dans notre cas, le tlphone GSM peut utiliser diffrents alphabets citons par exemple : IRA, GSM, HEX malheureusement lalphabet ASCII nest pas support. Cependant, si lon se limite lutilisation des caractres usuels (AZ, az, 09,) la compatibilit est assure. Il faut rester prudent dans lutilisation des autres caractres, notamment les caractres accentus. Pour les utilisateurs du Terminal TC35

77

INTERFACES GSM
(ou MC35) il existe une solution pour envoyer les caractres non compatibles, il faut saisir un anti-slash suivi du caractre ASCII ; voir quelques exemples au tableau 4.1.

Tableau 4.1.
Caractre GSM

Valeur hexa. du caractre GSM

Caractre ASCII

Caractres ASCII de remplacement \00 \02 \ \

Codes hexa. des caractres de remplacement 5C 30 30 5C 30 5C 5C

@ $

00 02 06 7F

(null)

Remarque : pour connatre tous les caractres incompatibles entre lalphabet GSM et lalphabet ASCII il suft de comparer les deux tableaux situs en Annexes. La commande AT+CSCS permet de slectionner un alphabet. Il est recommand dutiliser lalphabet GSM (en principe cest lalphabet congur par dfaut par les fabricants) qui est thoriquement support par tous les tlphones. Alphabets supports par le tlphone :
AT+CSCS=? +CSCS: ("GSM","UCS2")

Commande pour slectionner lalphabet GSM :


AT+CSCS="GSM" OK

Commandes gnrales
Nous allons tester dans cette partie uniquement les commandes de la norme GSM07.05. Pour tre tranquille dans nos exprimentations, nous allons de suite entrer le code PIN pour dverrouiller la carte SIM, grce la commande AT+CPIN :
AT+CPIN="xxxx" OK

Les caractres xxxx doivent bien entendu tre remplacs par le code PIN de votre tlphone. Si le code saisi est valide le tlphone doit rpondre par OK.

78

CHAPITRE

INTERFACER UN TLPHONE GSM


Caractristiques du module GSM
En principe lorsque le TE commence tablir une communication avec le TA et le ME, celui-ci demande leurs caractristiques grce aux commandes +GMI, +GMM, +GMR et +GSN, cest ce que nous allons faire : Retourne le nom du fabriquant :
AT+CGMI SAGEM OK

Retourne le modle :
AT+CGMM MY X-5 GPRS OK

Retourne la version :
AT+CGMR 1.00 OK

Retourne le numro de srie :


AT+CGSN 987612345-123 OK

DUNOD La photocopie non autorise est un dlit.

Tout le monde connat le fameux code *#06# qui une fois compos sur le clavier du tlphone permet dafcher son identiant international (IMEI). On obtient le mme rsultat avec la commande AT+CGSN :
AT+CGSN 351030358226964 OK

Pour information dchiffrons ce code qui sert de base pour le calcul du code de dverrouillage Les deux premiers chiffres (33) indiquent le pays dorigine du mobile, selon le code international de la numrotation tlphonique, dans cet exemple il sagit de la France. Les quatre chiffres suivants (1030) reprsentent le TAC (Type Approval Code) qui identie le modle de poste au regard de la procdure dagrment.

79

INTERFACES GSM
Les deux chiffres suivants (35) sont le FAC (Final Assembly Code) qui prcise le lieu dassemblage nal de lappareil, donc en Bretagne dans cet exemple. Les six chiffres suivants (822696) sont le numro de srie du mobile (SNR). Le dernier chiffre est une clef dont le codage est similaire au dernier chiffre des numros de cartes bancaires.

Indicateurs et contrles tat dactivit :


Cette commande peut tre utilise pour interroger le ME avant de faire effectuer une action au tlphone :
AT+CPAS +CPAS: 0 OK

Le zro indique que le ME est prt recevoir des commandes de la part du TE. Charge de la batterie indique ltat de connexion de la batterie et son niveau de charge :
AT+CBC +CBC: 0,80 OK

Le ME est aliment par la batterie et la charge est de 80 %. Qualit du signal :


AT+CSQ +CSQ: 7,99 OK

Le premier chiffre correspond au champ <rssi> qui indique la puissance du signal reu. On sait que pour rssi = 2 la puissance correspondante est de 109 dBm, pour rssi = 30 on a une puissance de 53 dBm. De ces 4 valeurs on dnit lquation suivante : P = 2rssi 113. Donc en injectant dans lquation rssi = 7 on obtient une puissance gale 99 dBm pour cet exemple. Rappelons que le dBm est une unit de mesure exprimant un niveau rfrenc par rapport une puissance de 1 mW. En ralit la valeur obtenue par lquation prcdente est le gain (G). Si lon considre que la station dmission GSM envoie un signal dune puissance gale 1 mW et que le tlphone mobile reoit une puissance Ps, le gain est donn par lquation suivante : G = 10 log(Ps/1 103). On obtiendra toujours un gain ngatif

80

CHAPITRE

INTERFACER UN TLPHONE GSM


car bien videmment la puissance reue par le tlphone est toujours plus faible que le signal mis par la station, au mieux on peut avoir puissance reue = puissance mise auquel cas le gain est gal zro. Pour calculer la puissance reue en mW, on utilise lquation : Ps = 10G/10. Par exemple avec G = 99 dBm on obtient Ps = 125 1012 mW. La deuxime valeur 99 correspondant au champ <ber> indique que le taux derreur de bit est inconnu ou non dtectable. La commande +CIND regroupe les 3 commandes vues prcdemment. Demande la liste des indicateurs supports par le ME et valeurs possibles :
AT+CIND=? +CIND: ("battchg",(0..5)),("signal",(0..5)),("service",(0,1)),("call",(0, 1)) OK

Commande de lecture :
AT+CIND? +CIND: 4,3,1,0 OK

La lecture nous indique ici que la batterie est charge 80 %, que la qualit du signal est de 60 %, que le tlphone est en service et quil ny a pas dappel en cours. Lecture de la date et de lheure du ME :
DUNOD La photocopie non autorise est un dlit.

AT+CCLK? +CCLK: "03/04/15,10:43:49"

Attention, le jour et lanne sont permuts, il faut lire : 15/04/03. Programmation dune alarme. Lalarme peut produire diffrents effets, crire un message lcran du ME, mettre un son Les effets sont spciques au fabricant du tlphone, pour connatre ceux disponibles sur votre tlphone tapez la commande suivante :
AT+CALA=? +CALA: (1),(sound)

Le chiffre 1 indique le nombre dalarme quil est possible de programmer. Le deuxime paramtre sound signale leffet de lalarme, en loccurrence dmettre un son.

81

INTERFACES GSM
Exemple de programmation dune alarme. Le ME mettra un son le 15 mars 2003 11:50.
AT+CALA="03/03/15,11:50:00" OK

Gestion des rpertoires tlphonique La saisie des numros mais surtout des noms dans un rpertoire tlphonique nest pas des plus aises dautant que la taille des touches du clavier ne cesse de diminuer chaque nouveau modle. Dsormais plus de soucis grce aux commandes +CPBR et +CPBW qui permettent de lire et de rajouter des entres dans votre rpertoire.
Un tlphone peut contenir, au maximum, 15 rpertoires. La commande +CPBS permet de savoir quels sont ceux disponibles sur votre tlphone :
AT+CPBS=? +CPBS: ("DC","ME","SM")

Ensuite il faut slectionner un rpertoire parmi ceux proposs, prenons le cas le plus courant, celui plac sur la carte SIM. Souvent le rpertoire utilisateur est mmoris sur la carte SIM, ce qui vite de ressaisir son contenu lorsque lon change de tlphone.
AT+CPBS="SM" OK

Chaque rpertoire possde un espace mmoire xe. La commande +CPBS utilise en mode lecture permet dobtenir cette information :
AT+CPBS? +CPBS: "SM",2,50

Dans cet exemple, la mmoire possde une capacit de 50 enregistrements, dont 2 sont utiliss. Chaque enregistrement est accessible via son index, le premier enregistrement ne possde pas forcment un index gal 1. De plus les champs numro et nom sont limits en terme de nombre de caractres. Consultons ces paramtres avec la commande +CPBR :
AT+CPBR=? +CPBR: (1-150),10,12

La carte SIM dispose de 150 enregistrements encadrs par les index 1 150, il ny a donc pas doffset dans cet exemple. Le champ numro peut contenir 10 caractres et le champ nom 12 caractres.

82

CHAPITRE

INTERFACER UN TLPHONE GSM


Il est possible de lire tous les enregistrements en une seule fois :
AT+CPBR=1,150

Seuls les enregistrements non vides sont afchs lcran. Une ligne correspondant un enregistrement, voici le rsultat obtenu :
+CPBR: 1,"0600000001",145,"Julien" +CPBR: 2,"0600000002",129,"stphanie"

On retrouve le champ index puis le champ numro, le chiffre 129dec (soit 81hex) indique quil sagit dun numro national, le chiffre 145dec (soit 91hex) indique un numro international, pour nir on trouve le champ nom. Il existe mme une fonction qui permet de rechercher dans le rpertoire en cours le ou les enregistrements qui ont un champ texte qui commence par la chane de caractres spcie :
AT+CPBF="st"

La commande retourne lenregistrement correspondant :


+CPBR: 2,"0600000002",129,"stphanie"

Terminons par la commande +CPBW qui permet dajouter un enregistrement au rpertoire. Si le champ index nest pas spci, le nouvel enregistrement sera positionn au premier emplacement de libre trouv. Si lon utilise un index contenant dj un enregistrement, celui-ci sera cras.
AT+CPBW=,"0600000003",129,"jacques"

On aurait obtenu le mme effet avec la commande :


DUNOD La photocopie non autorise est un dlit.

AT+CPBW=3,"0600000003",129,"jacques"

Si la commande est utilise seulement avec le paramtre index, lenregistrement correspondant est effac. Par exemple pour effacer lenregistrement numro 3 :
AT+CPBW=3

Commandes SMS
Slection de la zone mmoire pour lecture/criture des SMS
Avant dutiliser les commandes relatives aux SMS, il faut savoir quels sont les types de mmoires disponibles sur votre tlphone :
AT+CPMS=? +CPMS: ("ME","SM"),("ME","SM"),("ME","SM")

83

INTERFACES GSM
Daprs cet exemple les mmoires ME et SIM peuvent tre utilises aussi bien pour la lecture (<mem1>) que pour lcriture (<mem2> et <mem3>). Regardons la conguration actuelle :
AT+CPMS? +CPMS: "ME",7,100,"ME",7,100,"ME",7,100

Avec cette conguration toutes les commandes de lecture et dcriture se font sur la mmoire ME propre au tlphone qui dispose ici de 100 emplacements. La mmoire ME contient actuellement 7 messages. Pour travailler sur la mmoire de la carte SIM il suft denvoyer la commande suivante :
AT+CPMS="SM","SM","SM" +CPMS: "SM",1,12,"SM",1,12,"SM",1,12

Dsormais, lcriture et la lecture des SMS se fera exclusivement dans la mmoire de la carte SIM qui dispose de 11 emplacements libres. Certains tlphones supportent loption MT , ainsi les commandes de lecture et dcriture des SMS peuvent tre utilises sur toutes les mmoires disponibles sur le tlphone. Voici titre dexemple ce que renvoie un MYX-5 de SAGEM :
AT+CPMS=? +CPMS: ("ME","SM","MT")

On remarque que seule la mmoire <mem1> utilise par les commandes de lecture est disponible. Il est possible daffecter <mem1> la mmoire de la carte SIM :
AT+CPMS="SM" +CPMS : "SM",1,12

Affectons maintenant <mem1> la mmoire du tlphone :


AT+CPMS="ME" +CPMS : "ME",7,100

Dernire possibilit, affectons <mem1> les deux mmoires :


AT+CPMS="MT" +CPMS : "MT",8,112

On remarque que lespace mmoire disponible est bien la somme de lespace mmoire ME et du SM (100 + 12 = 112). Il en va de mme pour le nombre de messages contenus (1 + 7 = 8).

84

CHAPITRE

INTERFACER UN TLPHONE GSM


Envoi dun SMS En Mode PDU
Premire chose il faut sassurer que le mode PDU est support par le module GSM, cest normalement le cas quel que soit le modle utilis :
AT+CMGF=?

Le module retourne la liste des modes quil supporte :


+CMGF: (0,1)

Dans le cas prsent le mode PDU est support (0) de mme que le mode TEXT (1). Activons donc le mode PDU :
AT+CMGF=0

Il faut entrer la longueur, en octets, de la trame qui compose le SMS :


AT+CMGS=17

Un curseur vous invite saisir la trame. Laction des touches [CONTROL] et [Z] valide la saisie et envoie le SMS directement sur le rseau, il ne sera pas stock sur le tlphone :
>0011000A8160102030400000AA04D4E2940A

Si tout sest bien droul, le module GSM doit retourner la rponse suivante :
+CMGS: O OK

DUNOD La photocopie non autorise est un dlit.

Le chiffre 0 correspond au champ MR qui est la rfrence du message comprise entre 0 et 255, cette rfrence est gnre automatiquement par le mobile et signale galement que le message est correctement envoy. Par exemple, si on envoie un nouveau message au mme destinataire, la rfrence sera incrmente dune unit. Pour constituer la trame il est bien entendu fortement recommand dutiliser le logiciel ConvertSMS.exe dtaill dans le chapitre 1, slectionnez la trame constitue par le logiciel puis faite un copier/coller pour limporter dans Hyper Terminal. En Mode TEXT Premire chose, il faut sassurer que le mode TEXT est support par le module GSM :
AT+CMGF=?

85

INTERFACES GSM
Le module retourne la liste des modes quil supporte :
+CMGF: (0,1)

Dans le cas prsent le mode PDU est support (0) de mme que le mode TEXT (1). Activons donc le mode TEXT :
AT+CMGF=1 OK

Comme nous lavons vu pour envoyer un SMS il faut indiquer le numro du SMSC que lon souhaite utiliser. Ce paramtre est normalement dj dans la mmoire du mobile, il correspond celui de loprateur auquel vous avez souscrit votre abonnement. Pour sen assurer demandons les paramtres associs la commande +CSCA :
AT+CSCA? +CSCA: "+33689004000"

Vous pouvez bien entendu modier ce paramtre :


AT+CSCA="+61418706700" OK

Il faut entrer le numro de tlphone du destinataire du message :


AT+CMGS="0601020304"

Entrez le texte du message par exemple TEST et validez la saisie par laction simultane des touches [CTRL] et [Z] qui provoque lenvoi du SMS sur le rseau GSM.
> TEST

Si tout sest bien droul, le module GSM doit retourner la rponse suivante :
+CMGS: 0 OK

Le chiffre 0 correspond au champ MR qui est la rfrence du message comprise entre 0 et 255dec, cette rfrence est gnre automatiquement par le mobile et signale galement que le message est correctement envoy. Par exemple si on envoie un nouveau message au mme destinataire, la rfrence sera incrmente dune unit.

86

CHAPITRE

INTERFACER UN TLPHONE GSM


Autre mthode denvoi dun SMS
Dans le cas prcdent le message constitu nest pas stock en mmoire mais directement expdi sur le rseau. Il est galement possible de le sauvegarder temporairement en mmoire <mem2> grce la commande +CMGW an de lexpdier au moment opportun. Par exemple si lon souhaite que <mem2>="ME", il faut utiliser la commande suivante :
AT+CPMS="ME","ME"

Le premier paramtre qui correspond <mem1> est obligatoire. Dans cette conguration la lecture des messages reus et stocks non envoys est sauvegarde dans la mme mmoire. Mode PDU (AT+CMGF=0)
AT+CMGW=17 0011000A8160102030400000AA04D4E2940A

Mode TEXT (AT+CMGF=1)


AT+CMGW="0601020304" TEST

Que ce soit en mode PDU ou TEXT, le module GSM retourne lemplacement mmoire <index> o est stock le message :
+CMGW: 900

La commande +CMSS permet denvoyer un message stock en mmoire <mem2> par exemple lemplacement 900, ce qui provoquera lenvoi du message saisi prcdemment :
DUNOD La photocopie non autorise est un dlit.

AT+CMSS=900

Si lenvoi est russi :


+CMSS: 0

Le chiffre 0 correspond au champ MR qui est la rfrence du message comprise entre 0 et 255dec, cette rfrence est gnre automatiquement par le mobile et signale galement que le message est correctement envoy. Par exemple, si on envoie un nouveau message au mme destinataire, la rfrence sera incrmente dune unit.

Rception/lecture/suppression dun SMS


En Mode PDU (AT+CMGF=0)

87

INTERFACES GSM
La manire dont le ME indique au TE quil vient de recevoir un nouveau SMS dpend du paramtrage de la commande +CNMI :
AT+CNMI=1,1

Avec cette conguration le ME signalera au TE la rception dun nouveau SMS en envoyant le code :
+CMTI: <mem>,<index>

Par exemple voici le code afch sur lcran du PC signalant quun nouveau message est reu et quil est sauvegard lemplacement 1 de la mmoire de la carte SIM
+CMTI: "SM",1

Pour lire le message en question il faut utiliser la commande +CMGR suivie du paramtre index, on considre que la mmoire utilise pour la lecture est celle de la carte SIM (<mem1>="SM", voir commande AT+CPMS) :
AT+CMGR=1

Le module GSM doit retourner le contenu du message sous forme dune trame PDU :
+CMGR: 1,23 07913306091093F0040B913316502193F100003050616124430004D4E2940A OK

O 1 est le code tat qui indique que le message a dj t lu, 23hex indique la longueur du message. En Mode TEXT (AT+CMGF=1) Les instructions utilises pour congurer la rception et effectuer la lecture dun SMS sont identiques celles du mode PDU. La diffrence rside dans lafchage du contenu du message. Le module GSM retourne ltat du message, le numro de lmetteur et la date laquelle le message a t trait par le SMSC :
+CMGR: "REC READ" ,"+33610512391","03/05/16,16:42:34+00"

ainsi que le corps du message


TEST OK

Liste tous les SMS en mmoire La commande AT+CMGL (ou AT+CMGL=4) permet de lister tous les messages stocks dans la mmoire <mem1> (voir commande AT+CPMS) :
AT+CMGL

88

CHAPITRE

INTERFACER UN TLPHONE GSM


Il est possible dutiliser le paramtre facultatif <stat> pour afcher certains types de messages, par exemple si <stat>=1, seuls les messages reus non lus seront afchs. La commande de test AT+CMGL= ? renvoie la liste des <stat>s supports par le ME. Lafchage lcran du message dpend du mode slectionn PDU ou TEXT. En Mode PDU (AT+CMGF=0) Les 3 paramtres qui suivent le texte +CMGL correspondent respectivement aux champs <index>, <stat> au format numrique et <length> qui est la taille de la trame PDU afche sur la deuxime ligne.
+CMGL: 1,2,25 000011FF0281603200A712EDF27C1E3E97416537284CA797DDF432 +CMGL: 2,1,23 07913306091093F0040B913316502193F100003050616124430004D4E2940A OK

En Mode TEXT (AT+CMGF=1) Les paramtres qui suivent le texte +CMGL correspondent respectivement aux champs <index>, <stat> au format texte, <OA> qui est le numro de lexpditeur du message (si SMS-DELIVER) ou <DA> qui est le numro du destinataire (si SMS-SUBMIT) et la date denvoi du SMS (si SMS-DELIVER). Sur la deuxime ligne on trouve le corps du message.
+CMGL: 1,"STO UNSENT","06" message en attente +CMGL: 2,"REC READ" ,"+33610512391","03/05/16,16:42:34+00" TEST OK
DUNOD La photocopie non autorise est un dlit.

Effacer un message SMS Mode PDU/TEXT


Il convient deffacer priodiquement les messages reus an de ne pas saturer la mmoire <mem1>. La commande +CMGD efface le SMS situ, par exemple, lemplacement <index> = 1
AT+CMGD=1

Le module doit conrmer leffacement par la rponse :


OK

Notez quil nexiste pas de commande AT qui permet deffacer en une seule fois tous les messages stocks en mmoire.

89

INTERFACES GSM

Commandes spciques au TM2 de Teltonika


Par dfaut la vitesse de transmission des donnes srie est de 115 200 bauds. Comme les montages prsents dans le chapitre suivant intitul Ralisations lectroniques utilisent tous une vitesse de 9 600 bauds, il est ncessaire de modier le paramtrage dusine du TM2. La commande AT+IPR permet de modier cette vitesse de transmission :
AT+IPR=9600

Ds lors il faut modier le paramtrage dHyper Terminal. Cliquez sur Dconnexion puis dans le menu Fichier slectionnez Proprits enn cliquez sur le bouton Congurer et slectionnez une vitesse de 9 600 bds. Cliquer sur Connexion . La vitesse de transmission seffectue bien 9 600 bds mais au prochain RESET elle reviendra par dfaut 115 200 bds. Il faut donc mmoriser cette conguration dans un prol utilisateur. Tout dabord il faut paramtrer le TM2 pour quil charge le prol utilisateur n 0 chaque RESET :
AT&Y0 OK

Il faut maintenant mmoriser la conguration en cours dans le prol utilisateur n 0 :


AT&W0 OK

Une dernire commande est obligatoire pour que la mmorisation soit effective :
AT+CPWROFF

lissue de cette dernire commande le TM2 est automatiquement plac en mode veille. Dsormais chaque RESET ou mise sous tension le prol utilisateur n 0 sera automatiquement charg. De fait le module TM2 communique une vitesse de 9 600 bds compatible avec lensemble des ralisations lectroniques prsentes dans le chapitre suivant.

Logiciel intgr pour la gestion des SMS


Pour la gestion des SMS en mode PDU nous vous recommandons le logiciel ConvertSMS2.exe (gure 4.5) qui, comme son

90

CHAPITRE

INTERFACER UN TLPHONE GSM

Figure 4.5. ConvertSMS2.

nom le laisse supposer, est une volution de celui prsent dans le chapitre Codage SMS . Dsormais il intgre une partie qui gre la liaison srie. Le paramtrage par dfaut est COM2, avec un dbit de 9 600 bauds, 8 bits de donnes, pas de parit. Le port est actif une fois que vous avez cliqu sur le bouton Ouvrir. Au mme instant une deuxime fentre plus petite safche, vous demandant de saisir votre code PIN. Aprs avoir constitu la trame PDU dans longlet TEXT->PDU , il suft de cliquer sur le bouton envoi pour que le message soit directement expdi sur le rseau via le ME, notez que le bouton SMSC ? indique le centre de messagerie utilis. Il est aussi possible de lire un SMS spcique, dans la mmoire spcie par <mem1>, identi par son index en cliquant sur Lecture , ou lire tous les messages situs en mmoire grce au bouton Tous , le rsultat safche dans la zone de texte nomme Tampon de rception du port srie , slectionnez alors la trame que vous souhaitez dcoder puis cliquez sur le bouton Convertir trame slectionne , le SMS safche alors en mode text sur la fentre de gauche dans longlet PDU->TEXT .

DUNOD La photocopie non autorise est un dlit.

Logiciel WinGSM
Si lon fait abstraction des logiciels qui permettent de dverrouiller son portable, bien loin des proccupations de cet ouvrage, il existe trs peu de softs ddis la gestion des SMS. Lauteur a dcid de mettre n cette pnurie en dveloppant son propre logiciel baptis WinGSM qui permet de grer et darchiver sur le disque dur de son PC les SMS mmoriss sur son tlphone portable, et ce nest pas tout :

91

INTERFACES GSM
Muni dun cordon ad ok permettant de relier votre tlphone portable au port srie de votre PC et du logiciel WinGSM vous avez la possibilit de : Grer/Archiver vos SMS Lorsque la mmoire de votre tlphone (ME) ou de votre carte SIM (SM) est pleine, vous tes oblig de supprimer dnitivement certains SMS. Grce WinGSM vous pouvez les transfrer sur le disque dur de votre ordinateur (chier SMS.gsm) et les consulter ultrieurement votre convenance, mme lorsque le tlphone nest plus connect au PC. Vous pouvez galement composer facilement un nouveau SMS et lexpdier directement sur le rseau GSM ou le mmoriser pour lenvoyer au moment opportun. Grer/Sauvegarder votre rpertoire tlphonique En cas de perte ou de vol de votre tlphone, vous tes contraint de ressaisir les noms et les numros de tlphones prsents dans la mmoire de votre tlphone et/ou de votre carte SIM. Si vous avez pris soin, grce WinGSM, de faire une copie de sauvegarde sur le disque dur de votre PC (chier rpertoire .gsm), vous pouvez transfrer, dun click, toutes les entits de votre rpertoire tlphonique vers votre nouveau mobile GSM. Vous pouvez bien entendu ajouter/modier/supprimer facilement des numros/noms dans le rpertoire dj en mmoire sur votre tlphone. Visualiser lcran les paramtres de fonctionnement de votre tlphone WinGSM afche de nombreuses donnes de paramtrage, souvent inaccessibles lutilisateur conventionnel. Utiliser votre tlphone comme un modem Avec WinGSM vous pouvez raliser le transfert, travers le rseau GSM, de donnes (DATA) destination dun modem xe (RTC) ou destination dun autre tlphone GSM (gure 4.6). WinGSM est compatible avec tous les tlphones GSM du march et mme avec les modules GSM intgrs MC35 et TC35 de Siemens ! (supporte les normes GSM07.05 et GSM05.05). Le programme fonctionne sous toutes les versions de Windows, 95 XP.

4.2 AVEC UN PICBASIC


Le microcontrleur choisi, pour jouer le rle du TE, est un PicBasic du constructeur Coren COMFILE TECHNOLOGY. Il existe 3 familles de PicBasic, celui que nous avons choisi, le PICBASIC3B, appartient la deuxime famille, il est un bon compromis

92

CHAPITRE

INTERFACER UN TLPHONE GSM

Figure 4.6. WinGSM.

entre le cot et les possibilits offertes. Disponible en botier au format DIP 18 broches, il intgre un PIC 16C74A-04, un quartz de 4,19 MHz et une mmoire eeprom srie dune capacit de 4 Ko. Que tous ceux qui sont allergiques au langage assembleur se rassurent, comme son nom le laisse prsager, le PicBasic se programme en basic. Le logiciel PICBASIC-LAB fourni par le fabricant permet, laide dun PC, une conception vraiment trs aise du programme. Le puissant compilateur intgr permet de traduire les lignes basic en instructions spciques comprhensibles par le microcontrleur. Le programme compil peut ensuite tre implant dans la mmoire eeprom du PicBasic par le biais dun cordon reli au port imprimante dun PC. Notez quen phase de conception la fonction debug vous permettra de suivre pas pas lexcution du programme par le PicBasic. Il est notamment possible de consulter ltat de toutes les variables utilises par le programme. Une fois le programme au point il suft de dconnecter le cordon pour rendre le PicBasic autonome. Le langage Basic reconnu par le compilateur se compose une cinquantaine dinstructions. Celles qui nous intressent fortement sont les instructions SERIN et SEROUT qui assurent la gestion dun port srie, elles nous permettront de communiquer facilement avec un module GSM.

DUNOD La photocopie non autorise est un dlit.

Linstruction SEROUT
SEROUT Port, Param1, Mode, Param2, [Var1]

Cette instruction permet de transmettre des donnes sous forme srie selon le protocole RS232. Une fois excute, la broche Port

93

INTERFACES GSM
du PICBASIC transmettra la ou les donnes Var1 une vitesse dnie par Param1, selon la correspondance du tableau prcdent. Le paramtre Mode permet dinstaurer une temporisation entre chaque caractre mis dont la dure en millisecondes est fonction de Param2. Les donnes envoyes doivent tre de type BYTE cest--dire comprise entre 0 et 255 (tableau 4.2).
Tableau 4.2.

Vitesse (bits/s) 2 400 4 800 9 600 19 200

PICBASIC 2H/3B/3H

207 103 51

Envoi dun SMS


Dans cet exemple nous allons montrer comment envoyer un SMS contenant le texte TEST au numro 0600000000 laide de la commande SEROUT. On considre que la sortie I/O17 (broche n 22) du PICBASIC est utilise et que la vitesse de transmission seffectue 9 600 bauds. Dans ce cas Port = 17, Param1 = 103, Mode = 0 ; la temporisation entre chaque caractre et xe 1 ms donc Param2 = 1. Comme nous lavons dj vu, la commande AT utiliser est AT+CMGS .

Mode TEXT (AT+CMGF=1) Premirement il faut dnir le numro du destinataire :


SEROUT 17,103,0,1,["AT+CMGS=",34,"0600000000",34,13]

34dec est le code ASCII du symbole guillemet. Les vrais guillemets encadrant le numro sont l uniquement pour indiquer au compilateur quil doit traiter le numro 0600000000 comme une chane de caractres, mme chose pour la commande AT+CMGS. Alors que le code ASCII 34dec ne sera pas interprt par le compilateur donc envoy tel quel sur la sortie srie. 13dec est le code ASCII du retour chariot <CR>, qui dclenche lexcution de la commande. Ensuite il faut une temporisation dau moins 1/2 seconde (500 ms) avant dentrer le texte du message :
DELAY 500

Envoi du texte :
SEROUT 17,103,0,1,["TEST",26]

94

CHAPITRE

INTERFACER UN TLPHONE GSM


26dec est le code ASCII du caractre EOF (End Of File) quivalent la combinaison des touches CTRL+Z, qui provoque lenvoi du SMS sur le rseau GSM.

Mode PDU (AT+CMGF=0) En mode PDU la premire instruction indique la taille de la trame, 17 dans cet exemple :
SEROUT 17,103,0,1,["AT+CMGS=17",13] DELAY 500

Ensuite la trame elle-mme est envoye :


SEROUT 17,103,0,1,["0011000A8160000000000000AA04D4E2940A",26]

26dec est le code ASCII du caractre EOF (End Of File) quivalent la combinaison des touches CTRL+Z, qui provoque lenvoi du SMS sur le rseau GSM.

Linstruction SERIN
SERIN Port, Param1, Mode, Param2, Adress, [Var1]

Cette instruction permet dattendre la rception de donnes sous forme srie selon le protocole RS232. Une fois excute, la broche Port du PICBASIC attendra la ou les donnes Var1 une vitesse dnie par Param1, selon la correspondance du tableau vu prcdemment. Durant cette phase le PICBASIC ne pourra pas effectuer dautres tches et attendra en permanence les donnes pendant une dure dnie en millisecondes par Param2. Si la dure dattente est dpasse, sans quaucune donne ne soit reue, le programme passera ladresse indique par Adress. Le paramtre Mode nest pas utilis et doit tre positionn 0.
DUNOD La photocopie non autorise est un dlit.

Rception dun SMS


La mthode prsente ici consiste mettre en uvre la commande AT+CNMI an de congurer le ME (tlphone) pour quil signale au TE (PicBasic) larrive dun SMS. Rappelons que cette commande utilise les paramtres <mode> et <mt> voir norme GSM07.05. Lorsque <mode>=1 les indications concernant la rception dun nouveau message sont directement transfres au TE. Les dites indications, si le message est du type SMS-DELIVER, sont de la forme +CMTI: <mem>,<index> condition que <mt>=1, <mem> contient la rfrence de la mmoire utilise pour stocker le message et <index> son emplacement au sein de cette mmoire. En langage PicBasic nous devons utiliser dans un premier temps linstruction SEROUT pour congurer le ME laide de la com-

95

INTERFACES GSM
mande AT+CNMI suivie des paramtres <mode> et <mt> et du code ASCII 13dec qui dclenche lexcution de la commande :
SEROUT 17,103,0,1,["AT+CNMI=1,1",13]

Dsormais le ME signalera systmatiquement au TE larrive dun nouveau SMS en envoyant sur la ligne srie RxD linstruction +CMTI: <mem>,<index>. Le PicBasic doit donc en permanence scruter la ligne RxD dans lespoir de recevoir cette instruction. Linstruction SERIN associe WAIT place le C dans une phase de scrutation de lentre srie, correspondant ici lentre I/O16 (broche 21), qui dure 1 000 ms (1 s), ds que la chane TI est reconnue, les caractres qui suivent sont placs dans la variable tableau Tampon qui peut contenir jusqu 8 valeurs de type BYTE. Si la chane attendue nest pas reue durant cette seconde le programme boucle sur ltiquette ATT (pour ATTente). Le simple fait de placer ltiquette ATT sur la mme ligne que linstruction SERIN permet de reconduire indniment la phase dattente.
ATT: serin 16,103,0,1000,ATT,[WAIT("TI"),Tampon(0)~8]

Tableau 4.3.

Imaginons maintenant que le ME vient de recevoir un SMS et quil a stock dans la mmoire de la carte SIM lemplacement numro 1. Aussitt linstruction +CMTI: "SM",1 est envoye au PicBasic qui va placer les 8 caractres suivants TI dans la variable Tampon, voir tableau 4.3.

Tampon(0) Tampon(1) Tampon(2) Tampon(3) Tampon(4) Tampon(5) Tampon(6) Tampon(7) : 58dec 00dec " 34dec S 83dec M 77dec " 34dec , 44dec 1 49dec

Il serait plus judicieux dutiliser par exemple linstruction WAIT("+CMTI: ") mais cette combinaison nest malheureusement pas accepte par le compilateur, linstruction WAIT ne peut contenir que deux caractres. Parmi les 8 octets contenus par la variable Tampon, les donnes Tampon(2) Tampon(5) contiennent le nom de la mmoire <mem1> o est stock le message et Tampon(7) contient la fameuse donne <index>, ici gale 1 qui correspond lemplacement du message dans la mmoire. On considre dans cet exemple que <index> est compris entre 0 et 9, en pratique ce nest pas toujours le cas, mais il sera temps de voir cela dans le chapitre 5. Par contre le nom de la mmoire est toujours cod sur quatre caractres.

96

CHAPITRE

INTERFACER UN TLPHONE GSM


Premirement nous allons paramtrer le tlphone pour que la commande de lecture des SMS se fasse sur la mmoire prcise par les variables Tampon(2) Tampon(5), grce la commande AT+CPMS :
SEROUT 14,51,0,1,["AT+CPMS=",Tampon(2),Tampon(3),Tampon(4), Tampon(5),13]

Cette ligne de code est quivalente pour cet exemple la commande :


AT+CPMS="SM"<CR>

Remarque : comme les donnes Tampon(2) et Tampon(5) contiennent toujours le code ASCII 34dec qui correspond au guillemet, on aurait pu utiliser le code suivant :
SEROUT 14,51,0,1,["AT+CPMS=",34,Tampon(3),Tampon(4),34,13]

La commande AT+CMGR suivie du paramtre <index> contenu dans la variable Tampon(7) permet deffectuer la lecture du SMS en question, lecture qui va se faire, pour cet exemple, lemplacement numro 1 dans la mmoire de la carte SIM grce la commande prcdente.
SEROUT 14,51,0,1,["AT+CMGR=",Tampon(7),13]

Cette ligne de code est quivalente la commande : AT+CMGR=1<CR>. Temporisation de 500 ms (0,5 s) pour laisser le temps au ME dexcuter la commande.
DELAY 500
DUNOD La photocopie non autorise est un dlit.

Pour contenir le message nous imaginons quil existe une deuxime donne baptise SMS de type tableau limite 70 valeurs de type BYTE. La RAM du PicBasic 3B peut contenir 80 octets, 7 sont utiliss par la variable Tampon, on se garde donc une marge de 3 octets. Linstruction SERIN permet de capturer les 70 caractres envoys par le ME sur la ligne RxD du PicBasic. Si le SMS comporte plus de 70 caractres il sera tronqu. linverse, si le SMS contient moins de 70 caractres, le programme basculera sur ltiquette SUITE au bout de 1 000 ms (1 s).
serin 16,103,0,1000,SUITE,[SMS(0)~70]

Le contenu de la variable SMS dpend du mode utilis PDU ou TEXT.

97

INTERFACES GSM
Voici ce que pourrait contenir la variable SMS en mode PDU :
+CMGR: 0,,24 07911614786007F0040B911604994743F400009930139100406B05E8329BFD06 OK

Le dcodage de la trame PDU nest pas vidente pour le PicBasic, cest pour cela que nous allons privilgier lutilisation du mode TEXT dans le chapitre 5. En mode TEXT on aurait :
+CMGR: "REC READ","+61407809050","98/12/01,20:16:11+44" TEST OK

La premire ligne contient len-tte du message, le premier paramtre REC READ indique quil sagit dun message non lu, le deuxime paramtre donne le numro de lexpditeur du message, le dernier paramtre indique la date laquelle le message a t envoy. Le texte du message qui nous intresse est situ sur la deuxime ligne soit TEST , on constate quil nest pas vident premire vue dextraire cette donne. Il serait judicieux de placer dans la variable SMS uniquement le mot TEST . Malheureusement linstruction WAIT ne peut pas tre utilise pour dtecter le caractre <CR> an de mmoriser uniquement la donne situe sur la deuxime ligne. La solution consiste faire prcder le corps du message dune paire de caractres spciques qui dclencherait la mmorisation dans la variable SMS. Il faut choisir des caractres qui ne devront jamais apparatre dans len-tte du message sous peine de rcuprer des donnes inutiles. Deux points dexclamations !! semble tre une bonne solution. Voici donc linstruction basic utiliser :
ATT1: serin 16,103,0,1000,ATT1,[WAIT("!!"),SMS(0)~70]

En admettant cette fois que le SMS rceptionn est de la forme suivante :


+CMGR: "REC READ","+61407809050","98/12/01,20:16:11+44" !!TEST OK

98

CHAPITRE

INTERFACER UN TLPHONE GSM


La variable SMS est constitue comme le montre le tableau 4.4. Les donnes SMS(0) SMS(3) contiennent les donnes souhaites. Il sufrait de faire tester ces 4 variables au PicBasic pour que celui-ci effectue une action en fonction de leur contenu, cest ce que nous allons maintenant mettre en pratique dans le chapitre suivant.
SMS(0) T 48dec SMS(1) E 69dec SMS(2) S 83dec SMS(3) T 48dec SMS(4) SMS() SMS()

Tableau 4.4.
SMS(70)

DUNOD La photocopie non autorise est un dlit.

99

CHAPITRE

PAGE

RALISATIONS LECTRONIQUES

5.1 Rcepteur/metteur SMS 5.2 Tlcommandes par GSM 5.3 Tlmesures par GSM 5.4 Carte Entres/Sorties pilote par GSM 5.5 Golocalisation par GSM

102 123 163 194 228

Annexes Glossaire Bibliographie

251 261 264

101

INTERFACES GSM
Dans la ralisation dune application sans l, la porte est le paramtre le plus important. Avec les modules HF intgrs Aurel ou Mipot du commerce il est difcile dassurer une transmission correcte sur une distance suprieure 100 m et ceci mme dans les conditions les plus favorables, temps clair, terrain dgag Mme si la porte est lie la puissance dmission, il existe une limite xe par la rglementation. Voil pourquoi les modules vendus dans le commerce dlivrent une puissance dmission ne dpassant pas quelques dizaines de milliwatts. Avec la technologie GSM, la porte nest plus un problme. Un tlphone portable possde certes une puissance de quelques watts mais celle-ci est largement sufsante pour accder au rseau tlphonique via les antennes relais quadrillant notre territoire. Il devient alors possible par lenvoi et la rception de commandes sous forme de SMS de piloter et de surveiller un processus quelconque se droulant sur un site distant, voire mme mobile (automobile). La mise en uvre de ce procd ncessite le dveloppement dune lectronique autonome capable de sinterfacer avec un tlphone et de communiquer avec celui-ci via les commandes AT que nous avons dcrites prcdemment, et disposant dactionneurs et de capteurs pour interagir avec son environnement. Cest le but que nous allons atteindre dans ce dernier chapitre. Tous les montages prsents ci-aprs peuvent sutiliser avec un tlphone portable GSM supportant le mode TEXT connect laide dun cordon DATA ; ou avec nimporte quel terminal GSM supportant les standards GSM07.07 et GSM07.05, comme le TM2 de Teltonika pour ne citer que lui.

5.1 RCEPTEUR/METTEUR SMS


Les deux premiers montages ont surtout une vocation pdagogique. Il est certainement plus simple de lire directement le SMS reu sur lcran LCD de votre tlphone ; ou de composer sur le clavier le message envoyer. Cependant ceci est moins vident sur les terminaux GSM (par exemple TM2) qui ne disposent daucune interface homme-machine

Rcepteur de SMS sur cran LCD


Ds que le tlphone portable ou le terminal GSM connect ce montage reoit un nouveau SMS, un buzzer interpelle lutilisateur pour quil consulte le contenu du message afch sur lcran LCD.

Schma lectrique
Voir gure 5.1.

102

DUNOD La photocopie non autorise est un dlit.

RALISATIONS LECTRONIQUES

103

CHAPITRE

Figure 5.1. Schma du rcepteur de SMS sur cran LCD.

INTERFACES GSM
Le cur du montage est comme convenu un PicBasic PB-3B. Les lignes I/O16 (broche 21) et I/O17 (broche 22) sont mises contribution pour lacquisition des donnes sries. Le circuit IC2, un Max232 dadapte le niveau de tension des signaux en provenance et destination du tlphone GSM reli au circuit par lintermdiaire dun cble adaptateur que nous avons dcrit dans la premire partie du chapitre 3. Si vous utilisez un terminal GSM tel que le TC35 de siemens qui dispose dune sortie RS232 normalise, la liaison se fera avec un cble RS232 standard. Le Max232 est cbl avec 4 condensateurs au tantale ncessaires lactivation de sa pompe de charge interne qui permet de passer la tension dalimentation de 5 12 V. Lentre RXD (broche 2) qui rcupre les donnes en provenance du tlphone est relie lentre RX1i, si sur cette entre une tension de + 12 V est applique on aura sur la sortie correspondante RX1o une tension nulle qui sera applique sur la ligne I/O16 congure pour loccasion en entre. Si lentre RX1i est soumise une tension de 12 V, on aura sur lentre I/O16 une tension de + 5 V. La ligne I/O17 (broche 22) est congure en sortie pour lenvoi des donnes destination du tlphone, elle est relie lentre TX1i. Une tension nulle applique sur TX1i donne une tension de + 12 V sur la sortie TX1o et sur TXD (broche 3). Une tension de + 5 V donne une tension de 12 V sur TXD. La sortie DTR est aussi mise contribution, mais uniquement pour lalimentation du cble utilis conjointement avec un tlphone portable. En effet les cbles DATA LINK du commerce utilisent cette sortie pour alimenter leur lectronique interne. Comme lentre TX2i est relie la masse, on obtient sur TX2o donc sur DTR une tension de + 12 V. Cette sortie est inutile si vous utilisez un terminal GSM, il suft dans ce cas de retirer le cavalier J1. Les lignes RXD, TXD et DTR sont disponibles sur un connecteur au format DB 9 broches mle pour une connexion directe. Comme tout microcontrleur qui se respecte, le PicBasic utilise un quartz, de 20 MHz, associ aux condensateurs de dcouplage C2 et C3 de 22 pF, pour cadencer lexcution du programme. Lentre RES qui est en logique inverse, est relie directement au + 5 V, ainsi chaque mise sous tension du montage le PicBasic est remis zro. Lalimentation se fait par la broche 20, deux broches 8 et 19 sont utilises pour la mise la masse. Le PicBasic dispose dinstructions spcialement ddies pour le pilotage dun afcheur LCD commande srie. Une seule ligne nomme PICBUS (broche 26) suft piloter lafcheur 2 16 caractres que nous avons choisi. Un buzzer constitu dun simple disque piezzo est connect sur la sortie I/O9 (broche 12), l encore une instruction Basic dlivre un signal carr dune

104

CHAPITRE

RALISATIONS LECTRONIQUES
frquence de 4 kHz pour faire mettre un bip . Deux boutons poussoirs BP1 et BP2 respectivement relis aux lignes I/O0 (broche 2) et I/O1 (broche 3) permettent lutilisateur dagir sur le droulement du programme. Lorsque le bouton poussoir est inactif, lentre correspondante est la masse via une rsistance de 10 k. Les rsistances R2 et R3 de 10 k associes la diode D1 permettent, par lintermdiaire du cordon spcique (fourni par Lextronic) connect sur le port imprimante dun PC, de transfrer le programme dans leeprom du PicBasic. Lalimentation de lensemble est cone un traditionnel rgulateur de tension 7805 en botier TO220 capable de dbiter une tension rgule de + 5 V avec une intensit maximale de 1 A. Le condensateur lectrolytique de 220 F assure un ltrage efcace de la tension dalimentation provenant, par exemple, dun bloc secteur dlivrant une tension maximale continue de 15 V. La diode D1 protgera le montage dans le cas dune malencontreuse inversion de polarit. Pour terminer, une Led associe une rsistance de 470 signale visuellement la prsence de la tension dalimentation.

DUNOD La photocopie non autorise est un dlit.

Ralisation Limpression du circuit sur du papier transparent avec une imprimante jet dencre ou laser permet dobtenir un masque de bonne qualit. Pour avoir une opacit correcte des pistes, il est conseill de superposer deux masques lors de linsolation. Le temps dexposition aux UV peut ainsi tre augment pour une rvlation sans surprise. Aprs gravure, rinage et perage, les diffrents composants seront souds conformment au schma dimplantation. Attention lorientation des composants polariss. La borne positive du buzzer correspond au disque gris de plus faible dimension. La borne positive pour chacun des condensateurs est signale par un signe + grav ct cuivre. Soyez galement vigilant sur lorientation du connecteur du cble de programmation et celui de lafcheur LCD (voir gure 5.4). Programme du PicBasic : recep.bas Le programme implant dans la mmoire eeprom du PicBasic est largement aussi important que la partie lectronique, puisque cest de lui que dpend le fonctionnement correct du montage. Il nest donc pas inutile de le dtailler surtout pour ceux qui dsireront par la suite ajouter des fonctionnalits au montage.
'DECLARATION DES CONSTANTES '--------------------------

Pour faciliter la maintenance nous avons dclar trois constantes : TXD qui correspond la ligne I/O16 (broche n 22) du PicBasic, RXD qui correspond ligne I/O17 (broche n 21) et BDS pour

105

INTERFACES GSM

Figure 5.2. Circuit imprim.

Figure 5.3. Implantation des composants. Liste des composants R1 : 470 R2, R3, R4, R5 : 10 k C1 : 100 nF (pas de 2,54 mm) C2, C3 : 22 pF / cramique C4, C10 : 100 nF / LCC jaune C5, C6, C7, C8 : 1 F / tantale / 15 V C9 : 220 F / lectrolytique / 15 V D1 : diode 1N4002 D2 : diode 1N4148 L : Led standard Q : quartz 20 MHz REG : rgulateur 7805

BUZ : buzzer piezzo (sans lectronique intgre) BP1, BP2 : bouton poussoir type D6 J1 : barrette HE10 2 contacts + cavalier CN1 : bornier vis 2 plots CN2 : connecteur DB9 mle pour CI / coud 90 CN3 : connecteur pour cble de programmation (LEXTRONIC) CN4 : connecteur pour cran LCD (LEXTRONIC) IC1 : PICBASIC PB-3B (LEXTRONIC) + support DIL 28 broches (troit) IC2 : MAX232 + support DIL 16 broches cran LCD srie 2 16 caractres (LEXTRONIC)

106

CHAPITRE

RALISATIONS LECTRONIQUES

Figure 5.4.

bauds qui dnit la vitesse de transmission ici xe 9 600 car BDS = 103. Lutilisation de constantes vite de parcourir tout le programme lorsque lon dsire modier un des paramtres.
CONST BDS = 103 CONST RXD = 17 CONST TXD = 16 'DECLARATION DES VARIABLES '-------------------------

DUNOD La photocopie non autorise est un dlit.

Comme dans nimporte quel autre programme nous avons besoin de variables pour stocker dans la mmoire RAM des donnes et les rcuprer ultrieurement. La premire variable nomme Tampon contient la mmoire et lindex du SMS. Il nest pas possible dutiliser des variables de type texte (string), les seuls types supports par le compilateur sont BYTE qui est un nombre cod sur 8 bits donc compris entre 0 et 255 et INTEGER qui est un nombre cod sur 16 bits donc compris entre 0 et 65 535. Par contre il est possible de congurer une variable en tableau an de stocker plusieurs valeurs. Sachant quun caractre ASCII se code sur 8 bits, il est possible de stocker une chane de caractres dans un tableau de type BYTE. Dans ce cas la ligne de commande DIM Tampon(10) as BYTE signie que la variable Tampon peut contenir jusqu 10 valeurs de type BYTE. La deuxime variable nomme SMS stocke le contenu du SMS, limit ici 16 caractres. Enn la variable simple i de type BYTE qui sert notamment pour les boucles FOR/NEXT.
DIM Tampon(10) AS BYTE DIM SMS(16) AS BYTE DIM i AS BYTE

107

INTERFACES GSM
'INITIALISATION DE LECRAN LCD '------------------------------------------------

Il convient dinitialiser lcran LCD connect au PicBasic grce aux instructions spciques ce type dafcheur. Linstruction SET PICBUS HIGH ou LOW permet de paramtrer la vitesse de communication du bus spcialis PICBUS . Par dfaut ce type dafcheur est congur pour travailler une vitesse de 19 200 bauds, donc linstruction SET PICBUS sera suivie de linstruction HIGH (LOW pour une vitesse de 4 800 bauds). Linstruction LCDINIT initialise lcran LCD.
SET PICBUS HIGH LCDINIT 'TEST LIAISON SERIE '-----------------------------

Pour sassurer que la liaison entre le montage et le tlphone est valide, nous allons envoyer la commande la plus simple qui soit : AT<CR>, le ME doit rpondre par <CR><LF>OK<CR><LF> si la liaison est correcte. Les caractres AT suivis du caractre <CR>=13dec sont envoys par la commande SEROUT. Linstruction SERIN permet dattendre lventuelle rponse OK pendant 2 000 ms (soit 2 s). Si les caractres OK sont rceptionns dans le temps donn, le caractre suivant soit <CR> est plac dans la variable i. Dans le cas contraire le programme saute la ligne repre par ltiquette TEST0, i est alors vide. Il suft de tester le contenu de i pour savoir si la liaison est tablie.
TEST0: TEST1: i=0 SEROUT TXD,BDS,0,1,["AT",13] SERIN RXD,BDS,0,2000,TEST1,[WAIT("OK"),i] IF i<>0 THEN LOCATE 0,0 PRINT "Liaison OK" LOCATE 0,1 PRINT "Test mode..." ELSE LOCATE 0,0 PRINT "PB liaison !" DELAY 5000 END IF

Tant que la liaison nest pas tablie le programme boucle sur ltiquette TEST0. Lcran LCD afche le message PB liaison ! . Une fois la liaison tablie, le programme suit son cours normal.
IF i=0 THEN GOTO TEST0

108

CHAPITRE

RALISATIONS LECTRONIQUES
'SELECTION DE lALPHABET GSM '----------------------------------------------SEROUT TXD,BDS,0,1,["AT+CSCS=",34,"GSM",34,13] DELAY 500 'CODE PIN '--------------

En principe le code PIN qui autorise lutilisation du tlphone doit tre compos chaque mise sous tension. Avec un tlphone classique vous pouvez le saisir partir du clavier. Ce qui nest plus possible si vous utilisez un terminal GSM intgr, pour la simple et bonne raison quil ne dispose pas de clavier ! Linstruction AT+CPIN suivie de votre code PIN est dans ce cas incontournable. 13dec est le code ASCII du retour chariot <CR>, qui dclenche lexcution de la commande.
SEROUT TXD,BDS,0,1,["AT+CPIN=",34,"7208",34,13] DELAY 500 'INITIALISATION DES VARIABLES '----------------------------

Il convient comme dans tout programme dinitialiser les variables, en particulier Tampon et SMS.
DEBUT: FOR i=0 TO 9 Tampon(i)=0 NEXT i FOR i=0 TO 15 SMS(i)=0 NEXT i 'INITIALISATION ME '-----------------

DUNOD La photocopie non autorise est un dlit.

On considre que la liaison est tablie, nous allons congurer le ME en mode TEXT avec la commande AT+CMGF=1 . On prendra pour habitude de faire suivre lenvoi dune commande par une temporisation dau moins 500 ms (0,5 s) ceci an de laisser le temps au ME de rceptionner, de traiter et ventuellement de rpondre la commande.
CLS i=0 SEROUT TXD,BDS,0,1,["AT+CMGF=1",13] SERIN RXD,BDS,0,2000,INIT,[WAIT("OK"),i] INIT: IF i<>0 then LOCATE 0,0 PRINT "Mode TEXT"

109

INTERFACES GSM
LOCATE 0,1 PRINT "Attente SMS..." ELSE LOCATE 0,0 PRINT "Mode TEXT" LOCATE 0,1 PRINT "non supporte :(" DELAY 5000 END IF IF i=0 THEN GOTO INIT DELAY 1000

Le ME doit signaler au TE larrive dun nouveau SMS, pour cela utilisons la commande AT+CNMI=1,1 . Ainsi larrive dun SMS sera signale par lenvoi au ME de la commande +CMTI: "SM",1. Ceci dans le cas o le message serait stock dans la carte SIM lemplacement n 1.
SEROUT TXD,BDS,0,1,["AT+CNMI=1,1",13] DELAY 1000 'ATTENTE RECEPTION SMS '---------------------

Le C est plac dans une phase dattente. Ds que les caractres TI sont reus, les 10 caractres suivants sont stocks dans la variable Tampon, le buzzer retentit et le texte Message reu safche sur la premire ligne de lcran LCD, sur la deuxime ligne apparat la mmoire contenant le SMS et son index. Notez que linstruction WAIT ne peut pas tre utilise avec une chane de plus de 2 caractres. Lindex est obtenu aprs la concatnation des variables Tampon(7), Tampon(8) et Tampon(9) condition que leur contenu soit compris entre 48dec=0ASCII et 57dec=9ASCII. Ceci limine les caractres indsirables du style <CR> ou <LF> qui senregistrent dans la variable Tampon lorsque lindex est cod sur un ou deux chiffres.
ATTSM: SERIN RXD,BDS,0,10000,ATTSM,[WAIT("TI"),Tampon(0)~10] CLS LOCATE 0,0 PRINT "Message recu !" LOCATE 0,1 PRINT "Mem:",Tampon(3),Tampon(4) PRINT ",Index:" FOR i=7 TO 9 IF Tampon(i)>=48 AND Tampon(i)<=57 THEN PRINT Tampon(i) NEXT i

Un bip est mis par le buzzer jusqu ce quun des boutons poussoirs (BP1 ou BP2) soit actionn.

110

CHAPITRE

RALISATIONS LECTRONIQUES
ATTBP: BEEP 9 IF IN(0)=0 AND IN(1)=0 THEN GOTO ATTBP

Comme lindex sincrmente chaque nouveau message rceptionn, il est ncessaire dextraire cette donne pour savoir o aller lire le message en mmoire. Dans ltat actuel des choses admettons que la donne Tampon contient ce qui est indiqu au tableau 5.1.

Tableau 5.1.

Tampon Tampon Tampon Tampon Tampon Tampon Tampon Tampon Tampon Tampon (0) (1) (2) (3) (4) (5) (6) (7) (8) (9) : " S M " , 1

On considre dans le programme que la valeur <index> sera code au maximum sur 3 chiffres. Il est par exemple possible que le stockage des SMS se fasse partir de lindex 900. Cela dpend du tlphone utilis et du type de mmoire slectionn. Dans lexemple prsent ici, le SMS est stock dans la carte SIM lemplacement n 1.
'LECTURE DU SMS RECU '-------------------

Le fait dactionner BP1 ou BP2 provoque la lecture du SMS dans la mmoire dnie par les variables Tampon(3) et Tampon(4) situ lemplacement point par la valeur obtenue aprs la concatnation des variables Tampon(7), Tampon(8) et Tampon(9) condition que leur contenu soit compris entre 48dec = 0ASCII et 57dec = 9ASCII.
SEROUT TXD,BDS,0,1,["AT+CPMS=",34,Tampon(3),Tampon(4),34,13] DELAY 500 SEROUT TXD,BDS,0,1,["AT+CMGR="] FOR i=7 TO 9 IF Tampon(i)>=48 AND Tampon(i)<=57 THEN SEROUT TXD,BDS,0,1,[Tampon(i)] NEXT i SEROUT TXD,BDS,0,1,[13]

DUNOD La photocopie non autorise est un dlit.

Dans notre exemple, les variables Tampon(8) et Tampon(9) tant vides, elles seront ignores par le programme. La commande envoye au ME est quivalente AT+CMGR=1<CR> . En rponse la commande prcdente le ME va transmettre le contenu du SMS. Comme il nest pas possible au PicBasic de mmoriser lintgralit du message qui peut atteindre 180 caractres, sans compter len-tte, on considre que le message est compos au maximum dune chane de 16 caractres. La mmori-

111

INTERFACES GSM
sation du message dans la variable SMS seffectuera ds la dtection dune paire de points dexclamation. Les SMS envoys au montage devront donc toujours dbuter par les caractres !! . Voici titre dexemple un SMS tel quil est transmis notre montage par le ME :
+CMGR: "REC READ","+61405809051","03/12/01,20:16:11+44" !!Ceci est un test

Tous les caractres qui prcdent la paire de points dexclamations seront ignors par le PicBasic. La variable SMS contient donc le texte Ceci est un test .
SERIN RXD,BDS,0,5000,SUITE,[WAIT("!!"),SMS(0)~16] SUITE: IF SMS(0)=0 THEN GOTO RAZ 'AFFICHAGE SUR LECRAN LCD '-------------------------

Il reste maintenant afcher le contenu de la variable SMS sur lcran LCD du montage. Dans le cas o le SMS contiendrait moins de 16 caractres, le C va enregistrer des caractres inutiles et notamment les caractres <CR><LF>OK<CR><LF> qui signalent la n du texte. Pour viter de les afcher sur lcran il suft de sortir de la boucle FOR/NEXT ds que le caractre <CR>=13dec est dtect.
CLS LOCATE 0,0 FOR i=0 to 15 IF SMS(i)=13 THEN GOTO RAZ ELSE PRINT SMS(i) END IF NEXT i 'EFFACE LE SMS EN MEMOIRE '------------------------

Lappui sur BP1 efface le SMS de la mmoire du tlphone grce la commande AT+CMGD suivie de lindex du SMS, BP2 permet de retourner au dbut du programme sans supprimer le SMS, attention tout de mme ne pas saturer la mmoire de votre tlphone.
RAZ: LOCATE 0,1 PRINT "BP1:RAZ BP2:SUIV" BP1: IF IN(0)=1 THEN SEROUT TXD,BDS,0,1,["AT+CMGD="] FOR i=7 TO 9

112

CHAPITRE

RALISATIONS LECTRONIQUES
IF Tampon(i)>=48 AND Tampon(i)<=57 THEN SEROUT TXD,BDS,0,1,[Tampon(i)] NEXT i SEROUT TXD,BDS,0,1,[13] DELAY 1000 BEEP 9 CLS LOCATE 0,0 PRINT "RAZ Message" LOCATE 0,1 PRINT "BP2:SUIV" END IF IF IN(1)=1 THEN GOTO DEBUT GOTO BP1

Toutes les instructions que nous venons de dcrire sont rassembles dans le chier recep.bas . Il reste maintenant transfrer le programme dans leeprom du PicBasic. Pour raccorder le PC et le PicBasic via le cble imprimante, il vous faudra imprativement couper lalimentation du montage, puis connecter le cble avant dallumer le PC et en dernier lieu mettre le montage sous tension. Lancez le logiciel PICBASIC-LAB, ouvrez alors le chier recep.bas , cliquez sur le bouton RUN . Le programme est compil en instructions assembleurs qui sont ensuite implantes dans la mmoire du PicBasic. Pour rendre le montage autonome, coupez toujours lalimentation du montage puis celle du PC. De mme, ne dconnectez le cordon de liaison que si le PC et le montage sont tous deux hors tension.

DUNOD La photocopie non autorise est un dlit.

Test du montage Dans un premier temps il est prudent de tester le montage laide dun PC avant dy relier un tlphone. Ralisez un cble RS232 crois laide dun cordon comportant 3 conducteurs et de 2 connecteurs DB9 femelles cbler comme le montre la gure 5.5.
Reliez le montage au port srie du PC. Ouvrez une session du logiciel Hyper Terminal, vous pouvez reprendre le chier InterfacesGSM.lnk prsent dans le chapitre 4. Rappelons que la

Figure 5.5.

113

INTERFACES GSM

Figure 5.6. Conguration ASCII.

vitesse de transmission est de 9 600 bauds, 8 bits de donnes et pas de contrle de ux. Dans le menu Fichier slectionnez Proprits , cliquez sur longlet paramtres puis nalement sur le bouton Conguration ASCII . Sur la fentre qui apparat (gure 5.6), cochez les cases Reproduire localement les caractres taps et Ajouter les changements de ligne la n des lignes entrantes , validez par OK . Alimentez le montage, aussitt les caractres AT doivent apparatre sur lcran du PC. Rpondez dans les 2 secondes qui suivent en tapant les caractres OK , suivis dun retour chariot. Lcran LCD du montage doit afcher la phrase Liaison OK . La commande dinitialisation du mode TEXT AT+CMGF=1 doit safcher lcran, rpondez aussi par OK et un retour chariot. La commande AT+CNMI=1,1 doit ensuite safcher. Simulons alors la rception dun SMS en envoyant la commande +CMTI: "SM",1. Le buzzer doit retentir et lcran afcher Message reu ! . Actionnez un des deux boutons poussoirs de la platine pour demander la lecture du message. Vous devez voir apparatre la commande AT+CMGR=1, rpondez en tapant par exemple !!TEST . Comme prvu, les caractres TEST qui suivent la chane !! doivent safcher sur lcran LCD. Actionnez BP1 pour effacer le SMS, en retour vous obtenez lcran la commande correspondante AT+CMGD=1 et aprs une temporisation de 1 s le processus se rpte. Notez quil est difcile de saisir les rponses dans le temps donn. Il est possible de les prparer lavance dans des chiers texte grce au bloc-notes de Windows. Lenvoi seffectue par le menu Transfert , Envoyer le chier texte . Une autre solution consiste rallonger temporairement les temporisations des instructions SERIN.

114

CHAPITRE

RALISATIONS LECTRONIQUES

Les 3 points dtaills ici sont valables pour lensemble des montages prsents dans ce chapitre. Pour connecter un tlphone portable laide dun cble DATA LINK du commerce noubliez pas de mettre en place le cavalier J1 sur le montage. Pour connecter un tlphone portable laide de ladaptateur TTL/RS232 ou TTL/FBUS ou M2BUS prsent dans le chapitre Matriels utiliss vous devez utiliser un cble RS232 droit (voir gure ci-aprs). Une alimentation externe (la mme que celle du montage) sera utilise pour alimenter ladaptateur (cavalier J1 de ladaptateur en position A). Concernant le module TM2 vous pouvez directement le connecter au prsent montage ou utiliser un cble RS232 droit (voir gure 5.7). Lalimentation du montage est fournie par le module TM2 (via le connecteur CN2).

Tableau 5.2.

Figure 5.7. Cble droit .

Le moment tellement attendu, celui de relier votre tlphone portable au montage, est enn arriv ! ! Mettez la platine sous tension. Allez, par exemple, sur Internet pour envoyer gratuitement un SMS. Noubliez pas de commencer le message par les caractres !!. Quelques secondes aprs lenvoi du SMS lcran LCD du montage doit indiquer larrive de votre message.
DUNOD La photocopie non autorise est un dlit.

Rsum des points importants


RECEPTEUR DE MESSAGES SMS Conguration

Tableau 5.3.

Cavalier J1 mettre en place uniquement si vous utilisez un cble DATA LINK du commerce Elments du programme PicBasic modier Code PIN (7208 par dfaut) Commande SMS reue !!texte Action du montage Afche le contenu du paramtre texte sur la premire ligne de lcran LCD (texte 16 caractres)

115

INTERFACES GSM

metteur de SMS
Nous prsentons ici une deuxime utilisation du montage, la platine est identique, seul le programme est modi. Le but est denvoyer quotidiennement un SMS une heure pralablement programme. Nous en proterons donc pour montrer comment bncier de lhorloge du tlphone qui fournit la date et lheure courante. Pour varier les plaisirs le SMS est compos au format PDU.

Programme du PicBasic (version PDU) : emet_pdu.bas


'DECLARATION DES CONSTANTES '--------------------------

Dclarations de nos trois constantes employes dans les instructions SERIN et SEROUT pour congurer le port srie.
CONST BDS = 103 CONST RXD = 17 CONST TXD = 16 'DECLARATION DES VARIABLES '-------------------------

Dclarations des quatre variables utilises par le programme. La variable tableau CLK permet la mmorisation de la date et de lheure fournies par le tlphone. La variable nbSMS de type BYTE permet de mmoriser le nombre de SMS envoys. Nous verrons un peu plus loin lutilit de la variable old. La variable i est notamment utilise pour les boucles FOR/NEXT.
DIM DIM DIM DIM CLK(20) AS BYTE old AS BYTE nbSMS AS BYTE i AS BYTE

INITIALISATION DE LECRAN LCD -----------------------------

La partie de code assurant linitialisation de lcran LCD, le test de la liaison srie et lenvoi du code PIN est identique au programme prcdent :
SET PICBUS HIGH LCDINIT 'TEST LIAISON SERIE '-----------------i=0 TEST0: SEROUT TXD,BDS,0,1,["AT",13]

116

CHAPITRE

RALISATIONS LECTRONIQUES
SERIN RXD,BDS,0,2000,TEST1,[WAIT("OK"),i] TEST1: IF i<>0 THEN LOCATE 0,0 PRINT "Liaison OK" ELSE LOCATE 0,0 PRINT "PB liaison !" DELAY 5000 END IF IF i=0 THEN GOTO TEST0 DELAY 5000 'SELECTION DE lALPHABET GSM '--------------------------SEROUT TXD,BDS,0,1,["AT+CSCS=",34,"GSM",34,13] DELAY 500 'CODE PIN '-------SEROUT TXD,BDS,0,1,["AT+CPIN=",34,"7208",34,13] DELAY 500 'INITIALISATION ME '-----------------

Exceptionnellement lenvoi des SMS se fera en mode PDU :


CLS i=0 SEROUT TXD,BDS,0,1,["AT+CMGF=0",13] DELAY 1000 'ATTENTE / AFFICHAGE DATE et HEURE SUR ECRAN LCD '---------------------------------------------- DUNOD La photocopie non autorise est un dlit.

Voici maintenant le programme principal. Dans un premier temps on interroge le tlphone pour savoir quelle est la date et lheure courante. Rappelons que la commande utiliser est AT+CCLK?, suivie bien entendu dun retour chariot :
ATT: old=0 SEROUT TXD,BDS,0,1,["AT+CCLK?"] DELAY 500 SEROUT TXD,BDS,0,1,[13]

En retour le tlphone transmet le texte suivant : +CCLK: "aa/mm/jj,hh:mm:ss", pour placer la date est lheure dans la variable CLK nous allons attendre les caractres LK et mmoriser les 20 caractres suivants :
SERIN RXD,BDS,0,2000,ATT,[WAIT("LK"),CLK(0)~20]

117

INTERFACES GSM
Examinons ce que contient dsormais la variable tableau CLK (tableau 5.4).

Tableau 5.4.

CLK CLK CLK CLK CLK CLK CLK CLK CLK CLK CLK CLK CLK CLK CLK CLK CLK CLK CLK CLK (0) (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16) (17) (18) (19) : " A A / M M / J J , H H : M M : S S

AA : anne, MM : mois, JJ : jour, HH : heure, MM : minute, SS : seconde. Nous afchons sur la premire ligne de lcran LCD la date au format JJ/MM :
LOCATE 0,0 PRINT CLK(9),CLK(10),"/",CLK(6),CLK(7)," "

Lafchage de lheure se fait laide dune boucle FOR et NEXT an de parcourir les champs CLK(12) CLK(19) :
FOR i=12 TO 19 PRINT CLK(i) NEXT i

Si lheure courante correspond lheure programme, un SMS doit tre envoy, le programme bascule alors sur le sous-programme EMET. Pour tre certain que le montage nenvoie pas plus dun SMS par jour, le programme teste le champ CLK(10) qui reprsente lunit du jour ; tant quil na pas vari, aucun autre SMS ne peut tre envoy. La valeur prcdente est mmorise dans la variable old. Par dfaut lheure programme est 09:55, vous pouvez bien entendu modier ce paramtre selon votre convenance.
IF CLK(10)<>old THEN IF CLK(12)="0" AND CLK(13)="9" THEN IF CLK(15)="5" AND CLK(16)="5" THEN GOSUB EMET END IF END IF GOTO ATT 'EMISSION SMS '------------

Voici maintenant la description du sous-programme qui assure lenvoi du SMS. chaque envoi un compteur sincrmente an dafcher sur lcran LCD le nombre total de SMS (limit 99 pour viter le dbordement du texte de lcran LCD) envoys depuis la mise sous tension du montage.

118

CHAPITRE

RALISATIONS LECTRONIQUES
EMET: nbSMS=nbSMS+1 IF nbSMS>99 THEN nbSMS=0 LOCATE 0,1 PRINT DEC(nbSMS,2,0)," SMS envoye(s)"

En mode PDU, il suft de prciser le nombre doctets que comporte le message, puis denvoyer la trame au tlphone, le caractre <eof> = 26dec provoque lenvoi sur le rseau GSM :
SEROUT TXD,BDS,0,1,["AT+CMGS=46",13] DELAY 1000 SEROUT TXD,BDS,0,1,["0011000A8160572391950000AA25C3F2380D2ACFE9A0BA1BD42 ECFE7E17319442E83E8E5391D0497BFCFF270BB5D06"] SEROUT TXD,BDS,0,1,[26] old=CLK(10) RETURN

La composition de votre propre message se fera avec le logiciel ConvertSMS . Renseignez le champ DA, cest--dire le numro de tlphone du destinataire, puis le champ texte du message, cliquez sur le bouton convertir. Faites ensuite un copier/coller de la trame obtenue vers le programme. Noubliez pas de mettre jour la longueur qui suit la commande AT+CMGS .

Rsum des points importants


METTEUR DE MESSAGES SMS (mode PDU) Conguration

Tableau 5.5.

Cavalier J1 mettre en place uniquement si vous utilisez un cble DATA LINK du commerce lments du programme PicBasic modier
DUNOD La photocopie non autorise est un dlit.

Code PIN (7208 par dfaut) Heure laquelle le SMS doit tre envoy (09:55 par dfaut) Trame PDU constituant le message envoyer

Programme du PicBasic (version TEXT) : emet_txt.bas Voici une deuxime version du programme, pour ceux qui prfrent travailler avec le mode TEXT pour envoyer les SMS.
'DECLARATION DES CONSTANTES '-------------------------CONST BDS = 103 CONST RXD = 17 CONST TXD = 16 'DECLARATION DES VARIABLES

119

INTERFACES GSM
'------------------------DIM CLK(20) AS BYTE DIM old AS BYTE DIM nbSMS AS BYTE DIM i AS BYTE 'INITIALISATION DE LECRAN LCD '----------------------------SET PICBUS HIGH LCDINIT 'TEST LIAISON SERIE '-----------------i=0 TEST0: SEROUT TXD,BDS,0,1,["AT",13] SERIN RXD,BDS,0,2000,TEST1,[WAIT("OK"),i] TEST1: IF i<>0 THEN LOCATE 0,0 PRINT "Liaison OK" ELSE LOCATE 0,0 PRINT "PB liaison !" DELAY 5000 END IF IF i=0 THEN GOTO TEST0 DELAY 5000 'SELECTION DE lALPHABET GSM '--------------------------SEROUT TXD,BDS,0,1,["AT+CSCS=",34,"GSM",34,13] DELAY 500 'CODE PIN '-------SEROUT TXD,BDS,0,1,["AT+CPIN=",34,"7208",34,13] DELAY 500 'INITIALISATION ME '-----------------

Lenvoi des SMS se fait dsormais en mode TEXT grce la commande AT+CMGF = 1<CR> .
CLS i=0 SEROUT TXD,BDS,0,1,["AT+CMGF=1",13] DELAY 1000 'ATTENTE / AFFICHAGE DATE et HEURE SUR ECRAN LCD '----------------------------------------------old=0 ATT: SEROUT TXD,BDS,0,1,["AT+CCLK?"]

120

CHAPITRE

RALISATIONS LECTRONIQUES
DELAY 500 SEROUT TXD,BDS,0,1,[13] SERIN RXD,BDS,0,2000,ATT,[WAIT("LK"),CLK(0)~20] LOCATE 0,0 PRINT CLK(9),CLK(10),"/",CLK(6),CLK(7)," FOR i=12 TO 19 PRINT CLK(i) NEXT i IF CLK(10)<>old THEN IF CLK(12)="0" AND CLK(13)="9" THEN IF CLK(15)="5" AND CLK(16)="5" THEN GOSUB EMET END IF END IF GOTO ATT 'EMISSION SMS '-----------EMET: nbSMS=nbSMS+1 IF nbSMS>99 THEN nbSMS=0 LOCATE 0,1 PRINT DEC(nbSMS,2,0)," SMS envoye(s)"

"

Avec le mode TEXT lenvoi du message Ceci est un message de test programme se fait laide de la commande AT+CMGS . Noubliez pas de modier le numro du destinataire du message.
SEROUT TXD,BDS,0,1,["AT+CMGS=",34,"06xxxxxxxx",34,13] DELAY 1000 SEROUT TXD,BDS,0,1,["Ceci est un message de test programme",26] old=CLK(10) RETURN

DUNOD La photocopie non autorise est un dlit.

Rsum des points importants


METTEUR DE MESSAGES SMS (mode TEXT) Conguration

Tableau 5.6.

Cavalier J1 mettre en place uniquement si vous utilisez un cble DATA LINK du commerce lments du programme PicBasic modier Code PIN (7208 par dfaut) Heure laquelle le SMS doit tre envoy (09:55 par dfaut) Numro de tlphone pour lenvoi des SMS (06xxxxxxxx par dfaut) Texte du SMS ( Ceci est un message de test programme par dfaut)

121

INTERFACES GSM

122

Figure 5.8. Schma de la tlcommande 1 sortie sur relais.

CHAPITRE

RALISATIONS LECTRONIQUES

5.2 TLCOMMANDES PAR GSM 1 sortie sur relais


Cette premire tlcommande qui possde une seule sortie, nest, exceptionnellement, pas pilote par SMS. Le changement dtat du relais se fait lorsque le tlphone reoit un appel, condition que le numro de lappelant soit autoris piloter la carte. Lutilisation de ce montage est totalement gratuite, aucun frais de communication nest prvoir du fait quil ny a pas de prise de ligne, cest la sonnerie qui est le vecteur de la commande. Attention, il faut tout de mme que labonnement du tlphone connect au montage inclue la prsentation du numro. Si ce nest pas le cas vous pouvez toujours vous rabattre sur la version 2 du programme.

Schma lectrique Nous ne reviendrons pas sur la description des parties communes au montage prcdent. La sortie I/O11 ne disposant pas dune puissance sufsante pour faire coller le relais, nous avons fait appel un tage amplicateur constitu dun simple transistor 2N2222. La base est relie la sortie I/O11 via une rsistance de 1 k. Le relais est plac entre le collecteur et lalimentation du montage (en amont du rgulateur) qui ne devra pas dpasser les 12 V. Notez la prsence de la diode dite de roue libre D3 charge de court-circuiter la force contre lectromotrice gnre par la bobine. Lorsque la sortie I/O11 est ltat haut, T1 est satur, le relais est actif. Lorsque I/O11 est ltat bas, T1 est bloqu, le relais est inactif. Le seul capteur de la carte est le bouton poussoir BP1 connect lentre I/O0. La rsistance de rappel R7 impose une tension de + 5 V lorsque le BP nest pas actionn (gures 5.9 et 5.10).
DUNOD La photocopie non autorise est un dlit.

Programme PICBASIC (version 1) : 1sr_v1.bas


'DECLARATION DES CONSTANTES '--------------------------

Dclaration des constantes utilises par les instructions SERIN et SEROUT. TXD correspond la ligne I/O16 du PicBasic, RXD correspond ligne I/O17 et BDS pour bauds qui dnit la vitesse de transmission ici xe 9 600 car BDS = 103.
CONST BDS = 103 CONST RXD = 17 CONST TXD = 16 'DECLARATION DES VARIABLES '-------------------------

123

INTERFACES GSM

Figure 5.9. Circuit imprim.

Figure 5.10. Implantation des composants. Liste des composants R1, R5, R6 : 470 R2, R3, R7 : 10 k R4 : 1 k C1 : 100 nF (pas de 2,54 mm) C2, C3 : 22 pF / cramique C4, C10 : 100 nF / LCC jaune C5, C6, C7, C8 : 1 F / tantale / 15 V C9 : 220 F / lectrolytique / 15 V D1 : diode 1N4002 D2, D3 : diode 1N4148 L, L1, L2 : Led standard (diamtre 3 mm) Q : quartz 20 MHz REG : rgulateur 7805

BUZ : buzzer piezzo (sans lectronique intgre) T : transistor 2N2222 J1 : barrette HE10 2 contacts + cavalier CN1 : bornier vis 2 plots CN2 : connecteur DB9 mle pour CI / coud 90 CN3 : connecteur pour cble de programmation (LEXTRONIC) CN4 : connecteur pour cran LCD (LEXTRONIC) (facultatif) IC1 : PICBASIC PB-3B (LEXTRONIC) + support DIL 28 broches (troit) IC2 : MAX232 + support DIL 16 broches REL : relais ISKRA TRM 2903 12 V (ou quivalent) BP : bouton poussoir type D6

124

CHAPITRE

RALISATIONS LECTRONIQUES
DIM DIM DIM DIM DIM Num(16) AS BYTE NumMem AS BYTE i AS BYTE j AS INTEGER flag AS BYTE

'GESTION DU BOUTON POUSSOIR '--------------------------

Linstruction utilise ici permet de raliser un accs direct au sous-programme BP ds lors quun niveau logique bas apparat sur lentre I/O0 o est connect le bouton poussoir. Cette surveillance est gre en tche de fond pendant lexcution du programme principal. Ds que le bouton poussoir est actionn, le programme principal est interrompu, le sous-programme BP est excut, le programme principal peut ensuite reprendre son cours normal.
ON INT(0)=0 GOSUB BP 'TEST LIAISON SERIE '------------------

DUNOD La photocopie non autorise est un dlit.

Pour sassurer que la liaison entre le montage et le tlphone est valide, nous allons envoyer la commande la plus simple qui soit : AT<CR>, le ME doit rpondre par <CR><LF>OK<CR><LF> si la liaison est correcte. Les caractres AT suivis du caractre <CR>=13dec sont envoys par la commande SEROUT. Linstruction SERIN permet dattendre lventuelle rponse OK pendant 2 000 ms (soit 2 s). Si les caractres OK sont rceptionns dans le temps donn, le caractre suivant soit <CR> est plac dans la variable i. Dans le cas contraire le programme saute la ligne repre par ltiquette TEST, i est alors vide, un bip est mis par le buzzer. Il suft de tester le contenu de i pour savoir si la liaison est tablie.
TEST: BEEP 9 SEROUT TXD,BDS,0,1,["AT",13] SERIN RXD,BDS,0,2000,TEST,[WAIT("OK"),i] IF i=0 THEN GOTO TEST 'SELECTION DE lALPHABET GSM '--------------------------SEROUT TXD,BDS,0,1,["AT+CSCS=",34,"GSM",34,13] DELAY 500 'CODE PIN '--------

125

INTERFACES GSM
En principe le code PIN qui autorise lutilisation du tlphone doit tre compos chaque mise sous tension. Avec un tlphone classique vous pouvez le saisir partir du clavier. Ce qui nest plus possible si vous utilisez un terminal GSM intgr, pour la simple et bonne raison quil ne dispose pas de clavier ! Linstruction AT+CPIN suivie de votre code PIN est dans ce cas incontournable.
SEROUT TXD,BDS,0,1,["AT+CPIN=",34,"7208",34,13] DELAY 500 'INITIALISATION DU ME '--------------------

Activation de la fonction prsentation du numro. Attention lutilisation de ce service dpend de votre formule dabonnement.
SEROUT TXD,BDS,0,1,["AT+CLIP=1",13] DELAY 500 'INITIALISATION N TELEPHONE '---------------------------

Le numro de tlphone autoris piloter le relais est initialis dans la mmoire eeprom du PicBasic. Pour ne pas interfrer avec la partie programme, le stockage se fait dans les 11 derniers emplacements de la mmoire de FF5hex FFFhex. Cette mmorisation ne se ralise quune seule fois car le programme teste avant si ladresse FF5hex est vide (notez quun emplacement vide contient la donne FFhex). Attention le numro est en notation internationale, mais sans le signe + , on a donc un numro de la forme 33xxxxxxxxx (+33 correspond en fait au chiffre 0).
IF EEREAD(&HFF5)=&HFF THEN EEWRITE &HFF5,"3" EEWRITE &HFF6,"3" EEWRITE &HFF7,"x" EEWRITE &HFF8,"x" EEWRITE &HFF9,"x" EEWRITE &HFFA,"x" EEWRITE &HFFB,"x" EEWRITE &HFFC,"x" EEWRITE &HFFD,"x" EEWRITE &HFFE,"x" EEWRITE &HFFF,"x" END IF 'INITIALISATION DES VARIABLES '----------------------------

126

CHAPITRE

RALISATIONS LECTRONIQUES
DEBUT: FOR i=0 TO 15 Num(i)=0 NEXT i 'ATTENTE SONNERIE (Appel entrant) '--------------------------------

Lors dun appel les sonneries sont matrialises par le message RING qui est envoy sur la sortie srie du tlphone destination du TE. Lorsque la prsentation du numro est active, le message complmentaire suivant apparat chaque sonnerie : +CLIP : <number>,<type>. Le paramtre <number> contient le numro de tlphone de lappelant. Le C va donc scruter lentre RXD dans lattente des caractres IP . Ds leur rception les 16 caractres suivants sont placs dans la variable tableau Num.
ATT: SERIN RXD,BDS,0,10000,ATT,[WAIT("IP"),Num(0)~16] GOSUB BUZ

Ce que contient la variable Num lorsque le tlphone reoit un appel est montr tableau 5.7.

Tableau 5.7.

NUM NUM NUM NUM NUM NUM NUM NUM NUM NUM NUM NUM NUM NUM NUM NUM (0) (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) : " + 3 3 x x x x x x x x x "

Le numro de lappel entrant est contenu par les variables Num(3) Num(12).
'COMPARAISON AVEC NUMERO EN EEPROM '-------------------------------- DUNOD La photocopie non autorise est un dlit.

Le programme compare le numro de lappel entrant au numro stock dans leeprom du PicBasic. Si au moins un des chiffres qui composent le numro ne correspond pas, la variable ag est positionne 0.
flag=1 j=&HFF5 FOR i=4 TO 14 NumMem=EEREAD(j) IF Num(i)<>NumMem THEN flag=0 j=j+1 NEXT i 'ACTIVATION / DESACTIVATION DU RELAIS '------------------------------------

127

INTERFACES GSM
Si la variable ag est 1, le relais change dtat. Si ag est 0 le relais conserve son tat, la Led L2 sillumine pendant 5 s pour signaler que lappel est rejet. Linstruction TOGGLE change ltat de la sortie qui lui est associe.
IF flag=1 THEN TOGGLE 11 TOGGLE 2 OUT 3,0 GOSUB BUZ ELSE OUT 3,1 END IF DELAY 5000 OUT 3,0 GOTO ATT 'GESTION DU BP '-------------

Sous-programme relatif la gestion du bouton poussoir. Ds lors que le BP est actionn, le relais et la Led L1 changent dtat et le buzzer est activ.
BP: TOGGLE 11 TOGGLE 2 GOSUB BUZ DELAY 1000 RETURN

'ACTIVATION DU BUZZER '-------------------BUZ: FOR i=0 TO 10 BEEP 9 NEXT i RETURN Tableau 5.8.

Rsum des points importants


1 SORTIE SUR RELAIS (version 1)

Conguration Cavalier J1 mettre en place uniquement si vous utilisez un cble DATA LINK du commerce lments du programme PicBasic modier Code PIN (7208 par dfaut) Numro de tlphone autoris activer/dsactiver le relais, attention le numro est en notation international mais sans le signe +, exemple : 33xxxxxxxx (valeur par dfaut)

128

CHAPITRE

RALISATIONS LECTRONIQUES
Programme PICBASIC (version 2) : 1sr_v2.bas Pour ceux qui nont pas la chance de possder la fonctionnalit prsentation du numro, voici une deuxime version du programme. Le montage se contente de dtecter larrive dun appel pour changer ltat du relais. Linconvnient est que nimporte qui peut piloter votre montage.
'DECLARATION DES CONSTANTES '-------------------------CONST BDS = 103 CONST RXD = 17 CONST TXD = 16 'DECLARATION DES VARIABLES '------------------------DIM RING(2) AS BYTE DIM i AS BYTE 'GESTION DU BOUTON POUSSOIR '-------------------------ON INT(0)=0 GOSUB BP 'TEST LIAISON SERIE '-----------------TEST: BEEP 9 SEROUT TXD,BDS,0,1,["AT",13] SERIN RXD,BDS,0,2000,TEST,[WAIT("OK"),i] IF i=0 THEN GOTO TEST 'SELECTION DE lALPHABET GSM '--------------------------SEROUT TXD,BDS,0,1,["AT+CSCS=",34,"GSM",34,13] DELAY 500
DUNOD La photocopie non autorise est un dlit.

'CODE PIN '-------SEROUT TXD,BDS,0,1,["AT+CPIN=",34,"7208",34,13] DELAY 500 'INITIALISATION DES VARIABLES '---------------------------DEBUT: RING(0)=0 RING(1)=0 'ATTENTE SONNERIE (Appel entrant) '--------------------------------

Lors dun appel les sonneries sont matrialises par le message RING qui est envoy sur la sortie srie du tlphone destination du TE. Cest ce texte qui va tre reconnu par le C, pour

129

INTERFACES GSM
ce faire celui-ci attend les caractres RI , les 2 caractres suivants sont placs dans la variable RING.
ATT: SERIN RXD,BDS,0,10000,ATT,[WAIT("RI"),RING(0)~2]

Ce que contient la variable RING lorsque le tlphone reoit un appel est montr tableau 5.9.
Tableau 5.9.
RING(0) N RING(1) G

'ACTIVATION / DESACTIVATION DU RELAIS '------------------------------------

Si les variables RING(0) et RING(1) contiennent respectivement les lettres N et G , ltat du relais est modi.
IF RING(0)<>"N" OR RING(1)<>"G" THEN GOTO ATT TOGGLE 11 TOGGLE 2 GOSUB BUZ DELAY 5000 GOTO ATT 'GESTION DU BP '------------BP: TOGGLE 11 TOGGLE 2 GOSUB BUZ DELAY 1000 RETURN 'ACTIVATION DU BUZZER '-------------------BUZ: FOR i=0 TO 10 BEEP 9 NEXT i RETURN Tableau 5.10.

Rsum des points importants


1 SORTIE SUR RELAIS (version 2)

Conguration Cavalier J1 mettre en place uniquement si vous utilisez un cble DATA LINK du commerce lments du programme PicBasic modier Code PIN (7208 par dfaut)

130

CHAPITRE

RALISATIONS LECTRONIQUES

4 sorties sur relais


Ce montage associ un tlphone portable ou un terminal GSM permet le pilotage de 4 sorties tout ou rien de puissance. Lactivation des relais se fait par lenvoi dun message SMS partir dun tlphone portable voire mme dun ordinateur disposant dune connexion Internet (SMS gratuits !). Le message doit contenir le numro du relais activer (ou dsactiver). tout moment il est possible de demander ltat des 4 sorties.

Schma lectrique Quatre lignes du PicBasic I/O8 I/O11 congures pour loccasion en sorties pilotent les 4 relais. Le circuit ULN2803A sert damplicateur an de fournir lintensit sufsante pour activer les bobines, les 4 sorties restantes sont mises prot pour signaler visuellement ltat de chacun des relais. IC3 est un amplicateur inverseur de tension, par exemple si lentre D0 est ltat haut, la sortie Q0 est ltat bas, le relais REL1 est alors actif. Chacune des sorties de lamplicateur est capable de dlivrer une intensit de 500 mA, plus quil en faut pour faire coller le relais. Les relais choisis pour cette ralisation sont au format DIL, ils se caractrisent par une petite taille, cependant ils sont capables de vhiculer une intensit permanente de 1,25 A. Programme PICBASIC (version 1) : 4sr_v1.bas Le dbut du programme est similaire au montage prcdent. Les lignes de programme concernant la gestion de lcran LCD sont retires.
'DECLARATION DES CONSTANTES '------------------------- DUNOD La photocopie non autorise est un dlit.

Dclaration des constantes utilises par les instructions SERIN et SEROUT. TXD correspond la ligne I/O16 du PicBasic, RXD correspond ligne I/O17 et BDS pour Bauds qui dnit la vitesse de transmission ici xe 9 600 car BDS = 103.
CONST BDS = 103 CONST RXD = 17 CONST TXD = 16 'DECLARATION DES VARIABLES '------------------------DIM Tampon(10) AS BYTE DIM SMS(7) AS BYTE DIM i AS BYTE DIM n AS BYTE

131

INTERFACES GSM

132

Figure 5.11. Schma de la tlcommande 4 sorties sur relais.

CHAPITRE

RALISATIONS LECTRONIQUES

Figure 5.12. Circuit imprim.


DUNOD La photocopie non autorise est un dlit.

Liste des composants R1, R4 R7 : 470 R2, R3 : 10 k C1 : 100 nF (pas de 2,54 mm) C2, C3 : 22 pF / cramique C4, C10 : 100 nF / LCC jaune C5, C6, C7, C8 : 1 F / tantale / 15 V C9 : 220 F / lectrolytique / 15 V D1 : diode 1N4002 D2 : diode 1N4148 L, L1 L4 : Led standard (diamtre 3 mm) Q : quartz 20 MHz REG : rgulateur 7805 BUZ : buzzer piezzo (sans lectronique intgre) J1 : barrette HE10 2 contacts + cavalier

Figure 5.13. Implantation des composants. CN1 : bornier vis 2 plots CN2 : connecteur DB9 mle pour CI / coud 90 CN3 : connecteur pour cble de programmation (LEXTRONIC) CN4 : connecteur pour cran LCD (LEXTRONIC) (facultatif) IC1 : PICBASIC PB-3B (LEXTRONIC) + support DIL 28 broches (troit) IC2 : MAX232 + support DIL 16 broches IC3 : ULN2803A + support DIL 18 broches REL1 REL4 : relais FINDER au format DIL 30.22S modle 3995 (Arqui composants) S1 S4 : cosse poignard

133

INTERFACES GSM
'INITIALISATION DES RELAIS '-------------------------

Au dpart du programme tous les relais doivent tre inactifs. Linstruction BYTEOUT port,val permet de sortir la valeur binaire de la donne (val) sur 8 sorties du PicBasic. Chaque sortie est limage de chaque bit de la valeur binaire donne. Dans notre cas les relais sont relis sur les sorties I/O8 I/O11, il sagit donc des 4 bits du bloc 1. Le LSB correspond la broche I/O8, le MSB la broche I/O15. Les bits 0 3 sont donc positionns zro, ltat des autres bits na aucune importance car les sorties correspondantes ne sont pas utilises (mieux vaux tout de mme les positionner ltat bas).
BYTEOUT 1,&b00000000 'TEST LIAISON SERIE '------------------

Pour sassurer que la liaison entre le montage et le tlphone est valide, nous allons envoyer la commande la plus simple qui soit : AT<CR>, le ME doit rpondre par <CR><LF>OK<CR><LF> si la liaison est correcte. Les caractres AT suivis du caractre <CR>=13dec sont envoys par la commande SEROUT. Linstruction SERIN permet dattendre lventuelle rponse OK pendant 2 000 ms (soit 2 s). Si les caractres OK sont rceptionns dans le temps donn, le caractre suivant soit <CR> est plac dans la variable i. Dans le cas contraire le programme saute la ligne repre par ltiquette TEST, i est alors vide, un bip est mis par le buzzer. Il suft de tester le contenu de i pour savoir si la liaison est tablie.
i=0 TEST: BEEP 4 SEROUT TXD,BDS,0,1,["AT",13] SERIN RXD,BDS,0,2000,TEST,[WAIT("OK"),i] IF i=0 THEN GOTO TEST 'SELECTION DE lALPHABET GSM '--------------------------SEROUT TXD,BDS,0,1,["AT+CSCS=",34,"GSM",34,13] DELAY 500 'CODE PIN '--------

En principe le code PIN qui autorise lutilisation du tlphone doit tre compos chaque mise sous tension. Avec un tlphone classique vous pouvez le saisir partir du clavier. Ce qui nest

134

CHAPITRE

RALISATIONS LECTRONIQUES
plus possible si vous utilisez un terminal GSM intgr, pour la simple et bonne raison quil ne dispose pas de clavier ! Linstruction AT+CPIN suivie de votre code PIN est dans ce cas incontournable.
SEROUT TXD,BDS,0,1,["AT+CPIN=",34,"7208",34,13] DELAY 500 'INITIALISATION DU ME '--------------------

Le ME est congur en mode TEXT par la commande AT+CMGF=1 . La commande AT+CNMI=1,1 indique au ME que chaque nouveau SMS reu doit tre signal au TE. Ainsi larrive dun SMS sera signale par lenvoi au ME de la commande +CMTI: <mem1>,<index>.
SEROUT TXD,BDS,0,1,["AT+CMGF=1",13] DELAY 500 SEROUT TXD,BDS,0,1,["AT+CNMI=1,1",13] DELAY 500 'INITIALISATION DES VARIABLES '---------------------------DEBUT: FOR i=0 TO 9 Tampon(i)=0 NEXT i FOR i=0 TO 6 SMS(i)=0 NEXT i 'ATTENTE RECEPTION SMS '-------------------- DUNOD La photocopie non autorise est un dlit.

Dsormais le C scrute lentre RXD dans lattente des caractres TI . Ds leur rception les 10 caractres suivants sont placs dans la variable Tampon. Une srie de 11 bips signale larrive du SMS.
ATT: SERIN RXD,BDS,0,10000,ATT,[WAIT("TI"),Tampon(0)~10] FOR i=0 TO 10 BEEP 4 NEXT i

Comme lindex sincrmente chaque nouveau message rceptionn, il est ncessaire dextraire cette donne pour savoir o aller lire le message en mmoire. Dans ltat actuel des choses admettons que la donne Tampon contient ce qui est indiqu tableau 5.11.

135

INTERFACES GSM
Tableau 5.11.
Tampon Tampon Tampon Tampon Tampon Tampon Tampon Tampon Tampon Tampon (0) (1) (2) (3) (4) (5) (6) (7) (8) (9) : " M E " , 9 0 0

On considre dans le programme que la valeur <index> sera code au maximum sur 3 chiffres. Il est possible, comme le montre cet exemple, que le stockage des SMS se fasse dans la mmoire ME partir de lindex 900.
'LECTURE DU SMS RECU '-------------------

Le TE congure le ME pour que la lecture soit faite dans la mmoire dnie par Tampon(3) et Tampon(4).
SEROUT TXD,BDS,0,1,["AT+CPMS=",34,Tampon(3),Tampon(4),34,13] DELAY 500

La lecture du SMS est provoque par la commande AT+CMGR=<index> . Si la donne <index> est code sur un ou deux chiffres, on rcupre des donnes indsirables (<CR><LF>). Pour les liminer lors de la reconstitution de lindex du message on sassure que les donnes Tampon(7) Tampon(9) contiennent un caractre compris entre 0ASCII=48dec et 9ASCII=57dec.
SEROUT TXD,BDS,0,1,["AT+CMGR="] FOR i=7 TO 9 IF Tampon(i)>=48 AND Tampon(i)<=57 THEN SEROUT TXD,BDS, 0,1,[Tampon(i)] NEXT i SEROUT TXD,BDS,0,1,[13]

Ds la rception des caractres !! les 7 caractres suivants sont placs dans la variable SMS. Dans le cas o les caractres !! ne sont pas dtects dans les 5 s, le programme passe au label SUITE, comme la variable SMS(0) est vide le SMS est effac. Si le SMS contient moins de 7 caractres le programme passe galement au label SUITE mais comme SMS(0) est dans ce cas diffrent de zro le programme suit son cours.
SERIN RXD,BDS,0,5000,SUITE,[WAIT("!!"),SMS(0)~7] SUITE: SMS(0)=0 THEN GOTO RAZ

En ltat actuel du programme, si lon considre que le SMS envoy tait de la forme !!REL1,ON , la variable tableau SMS doit contenir ce qui est indiqu tableau 5.12.

136

CHAPITRE

RALISATIONS LECTRONIQUES

SMS(0) R

SMS(1) E

SMS(2) L

SMS(3) 1

SMS(4) ,

SMS(5) O

SMS(6) N

Tableau 5.12.

SMS(3) contient le numro du relais activer, compris entre 1 et 4 SMS(5) et SMS(6) contiennent ltat que doit prendre le relais lissue de la commande, ON ou OF. Il nest pas interdit de saisir le dernier F de OFF mais celui-ci sera ignor par le programme.
'GESTION DES RELAIS '------------------

La partie gestion des relais est traite uniquement si la variable SMS(3) est comprise entre 1 et 4, codes ASCII 49dec et 52dec. Si tel est le cas, le contenu des variables SMS(5) et SMS(6) est test pour savoir si le relais en question doit tre activ ou dsactiv. Si SMS(5)+SMS(6)= ON alors le relais est activ par la commande OUT x,1. Si SMS(5)+SMS(6)= OF le relais est dsactiv par la commande OUT x,0. Le paramtre x tant le numro de la broche sur laquelle le relais est connect.
IF SMS(3)<=52 AND SMS(3)>=49 THEN IF SMS(5)="O" AND SMS(6)="N" THEN IF SMS(3)="1" THEN OUT 8,1 IF SMS(3)="2" THEN OUT 9,1 IF SMS(3)="3" THEN OUT 10,1 IF SMS(3)="4" THEN OUT 11,1 END IF IF SMS(5)="O" AND SMS(6)="F" THEN IF SMS(3)="1" THEN OUT 8,0 IF SMS(3)="2" THEN OUT 9,0 IF SMS(3)="3" THEN OUT 10,0 IF SMS(3)="4" THEN OUT 11,0 END IF END IF 'ENVOI DUN SMS CONTENANT LETAT DES 4 RELAIS '--------------------------------------------

DUNOD La photocopie non autorise est un dlit.

Si la variable SMS(3) ne contient pas un chiffre compris entre 1 et 4 mais un point dinterrogation ? , ceci dans le cas o le SMS envoy est de la forme !!REL? , le montage doit rdiger et envoyer un SMS contenant ltat actuel des 4 relais. Notez la commande OUTSTAT qui permet de consulter ltat des sorties qui pilotent les relais sans en modier ltat. La variable n contient successivement les codes ASCII 49dec 52dec, correspondant aux numros 1 4 des relais.

137

INTERFACES GSM
Pour obtenir systmatiquement un accus de rception pour chaque commande envoye il sufrait de supprimer la ligne de code IF SMS(3)="?" THEN et le END IF correspondant.
n=0 IF SMS(3)="?" THEN SEROUT TXD,BDS,0,1,["AT+CMGS=",34,"06xxxxxxxx",34,13] DELAY 1000 SEROUT TXD,BDS,0,1,["ETAT DES RELAIS : "] FOR i=8 TO 11 n=i+41 IF OUTSTAT(i)=1 THEN SEROUT TXD,BDS,0,1,["REL",n,"=ON "] ELSE SEROUT TXD,BDS,0,1,["REL",n,"=OFF "] END IF NEXT i SEROUT TXD,BDS,0,1,[26] DELAY 5000 END IF 'EFFACE LE SMS EN MEMOIRE '------------------------

Pour terminer, le SMS est systmatiquement effac laide de la commande AT+CMGD suivie de lindex, pour viter une saturation de la mmoire utilise. Du fait chaque SMS reu aura le mme index.
RAZ: SEROUT TXD,BDS,0,1,["AT+CMGD="] FOR i=7 TO 9 IF Tampon(i)>=48 AND Tampon(i)<=57 THEN SEROUT TXD,BDS, 0,1,[Tampon(i)] NEXT i SEROUT TXD,BDS,0,1,[13] DELAY 1000 GOTO DEBUT

Rsum des points importants Voir Tableau 5.13. Programme PICBASIC (version 2) : 4sr_v2.bas Dans le programme prcdent, lorsque lon utilise la commande !!REL? un SMS contenant ltat des 4 relais est envoy un numro qui est prcis en dur dans le programme, ce qui limite lutilisation du montage un seul numro. Si vous utilisez un autre tlphone portable pour envoyer la commande !!REL? vous ne recevrez aucun SMS en retour. Nous allons avec cette deuxime version du programme remdier ce petit inconvnient.

138

CHAPITRE

RALISATIONS LECTRONIQUES

Tableau 5.13.
4 SORTIES SUR RELAIS (version 1) Conguration Cavalier J1 mettre en place uniquement si vous utilisez un cble DATA LINK du commerce lments du programme PicBasic modier Code PIN (7208 par dfaut) Numro de tlphone pour lenvoi des SMS (06xxxxxxxx par dfaut) Commande SMS reue !!RELx,ON !!RELx,OF !!REL? Action du montage Activation du relais numro x (4 x 1) Dsactivation du relais numro x (4 x 1) Un SMS contenant ltat des 4 relais est envoy au numro spci dans le programme

Il suft de faire suivre la commande du numro o doit tre expdi le SMS : !!REL?,06xxxxxxxx.
'DECLARATION DES CONSTANTES '-------------------------CONST BDS = 103 CONST RXD = 17 CONST TXD = 16 'DECLARATION DES VARIABLES '-------------------------

La taille de la variable tableau SMS doit dsormais pouvoir contenir jusqu 15 caractres.
DUNOD La photocopie non autorise est un dlit.

DIM DIM DIM DIM

Tampon(10) AS BYTE SMS(15) AS BYTE i AS BYTE n AS BYTE

'INITIALISATION DES RELAIS '------------------------BYTEOUT 1,&b00000000 'TEST LIAISON SERIE '-----------------TEST: BEEP 4 SEROUT TXD,BDS,0,1,["AT",13] SERIN RXD,BDS,0,2000,TEST,[WAIT("OK"),i] IF i=0 THEN GOTO TEST

139

INTERFACES GSM
'SELECTION DE lALPHABET GSM '--------------------------SEROUT TXD,BDS,0,1,["AT+CSCS=",34,"GSM",34,13] DELAY 500 'CODE PIN '-------SEROUT TXD,BDS,0,1,["AT+CPIN=",34,"7208",34,13] DELAY 500 'INITIALISATION DU ME '-------------------SEROUT TXD,BDS,0,1,["AT+CMGF=1",13] DELAY 500 SEROUT TXD,BDS,0,1,["AT+CNMI=1,1",13] DELAY 500 'INITIALISATION DES VARIABLES '---------------------------DEBUT: FOR i=0 TO 9 Tampon(i)=0 NEXT i FOR i=0 TO 14 SMS(i)=0 NEXT i 'ATTENTE RECEPTION SMS '--------------------ATT: SERIN RXD,BDS,0,10000,ATT,[WAIT("TI"),Tampon(0)~10] FOR i=0 TO 10 BEEP 4 NEXT i 'LECTURE DU SMS RECU '-------------------

Le TE congure le ME pour que la lecture soit faite dans la mmoire dnie par Tampon(3) et Tampon(4). La lecture du SMS est provoque par la commande AT+CMGR=<index> . Ds la rception des caractres !! les 15 caractres suivants sont placs dans la variable SMS.
SEROUT TXD,BDS,0,1,["AT+CPMS=",34,Tampon(3),Tampon(4),34,13] DELAY 500 SEROUT TXD,BDS,0,1,["AT+CMGR="] FOR i=7 TO 9 IF Tampon(i)>=48 AND Tampon(i)<=57 THEN SEROUT TXD,BDS, 0,1,[Tampon(i)] NEXT i SEROUT TXD,BDS,0,1,[13] SERIN RXD,BDS,0,5000,ATT,[WAIT("!!"),SMS(0)~15] ATT: IF SMS(0)=0 THEN GOTO RAZ

140

CHAPITRE

RALISATIONS LECTRONIQUES
En ltat actuel du programme, si lon considre que le SMS envoy tait de la forme !!REL?,0601234567 , la variable tableau SMS doit contenir ce qui est indiqu tableau 5.14.

Tableau 5.14.

SMS SMS SMS SMS SMS SMS SMS SMS SMS SMS SMS SMS SMS SMS SMS (0) (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) R E L ? , 0 6 0 1 2 3 4 5 6 7

SMS(3) contient un point dinterrogation qui signale au PicBasic quil doit envoyer un SMS contenant ltat des 4 relais au numro spci par SMS(5) SMS(14).
'GESTION DES RELAIS '------------------

Noter que les autres commandes, !!RELx,ON et !!RELx,OF, fonctionnent de la mme manire que dans la version 1 du programme.
IF SMS(3)<=52 AND SMS(3)>=49 THEN IF SMS(5)="O" AND SMS(6)="N" THEN IF SMS(3)="1" THEN OUT 8,1 IF SMS(3)="2" THEN OUT 9,1 IF SMS(3)="3" THEN OUT 10,1 IF SMS(3)="4" THEN OUT 11,1 END IF IF SMS(5)="O" AND SMS(6)="F" THEN IF SMS(3)="1" THEN OUT 8,0 IF SMS(3)="2" THEN OUT 9,0 IF SMS(3)="3" THEN OUT 10,0 IF SMS(3)="4" THEN OUT 11,0 END IF END IF 'ENVOI UN SMS CONTENANT LETAT DES 4 RELAIS '--------------------------------------------

DUNOD La photocopie non autorise est un dlit.

Si la variable SMS(3) ne contient pas un chiffre compris entre 1 et 4 mais un point dinterrogation ? , ceci dans le cas o le SMS envoy est de la forme !!REL? ,06xxxxxxxx , le montage doit rdiger et envoyer un SMS contenant ltat actuel des 4 relais. Cette fois le numro du tlphone nest pas g dans le programme, il est contenu par les variables SMS(5) SMS(14). La boucle FOR/NEXT permet de balayer les 10 variables pour reconstituer le numro. Si aucun numro nest spci, ce qui est vrai si SMS(4) ne contient pas une virgule, le message est envoy au numro par dfaut indiqu en dur dans le programme.

141

INTERFACES GSM
n=0 IF SMS(3)="?" THEN IF SMS(4)="," THEN SEROUT TXD,BDS,0,1,["AT+CMGS=",34] FOR i=5 TO 14 SEROUT TXD,BDS,0,1,[SMS(i)] NEXT i SEROUT TXD,BDS,0,1,[34,13] ELSE SEROUT TXD,BDS,0,1,["AT+CMGS=",34,"06xxxxxxxx",34,13] END IF DELAY 1000 SEROUT TXD,BDS,0,1,["ETAT DES RELAIS : "] FOR i=8 TO 11 n=i+41 IF OUTSTAT(i)=1 THEN SEROUT TXD,BDS,0,1,["REL",n,"=ON "] ELSE SEROUT TXD,BDS,0,1,["REL",n,"=OFF "] END IF NEXT i SEROUT TXD,BDS,0,1,[26] DELAY 5000 END IF 'EFFACE LE SMS EN MEMOIRE '-----------------------RAZ: SEROUT TXD,BDS,0,1,["AT+CMGD="] FOR i=7 TO 9 IF Tampon(i)>=48 AND Tampon(i)<=57 THEN SEROUT TXD,BDS, 0,1,[Tampon(i)] NEXT i SEROUT TXD,BDS,0,1,[13] DELAY 1000 GOTO DEBUT

Rsum des points importants Voir Tableau 5.15.

4 sorties sur triacs


Ce montage associ un tlphone portable ou un terminal GSM permet le pilotage de 4 charges alimentes par la tension du secteur, la partie puissance fait cette fois appel des triacs. Contrairement aux relais, les triacs ont un fonctionnement purement lectronique, donc statique, ce qui est gage dune dure de vie plus importante. Comme pour le montage prcdent, lactivation des triacs se fait par lenvoi dun message SMS partir dun tlphone portable

142

CHAPITRE

RALISATIONS LECTRONIQUES

Tableau 5.15.
4 SORTIES SUR RELAIS (version 2) Conguration Cavalier J1 mettre en place uniquement si vous utilisez un cble DATA LINK du commerce lments du programme PicBasic modier Code PIN (7208 par dfaut) Numro de tlphone par dfaut pour lenvoi des SMS Commande SMS reue !!RELx,ON !!RELx,OF !!REL? !!REL?,06xxxxxxxx Action du montage Activation du relais numro x (4 x 1) Dsactivation du relais numro x (4 x 1) Un SMS contenant ltat des 4 relais est envoy au numro spci en dur dans le programme Un SMS contenant ltat des 4 relais est envoy au numro indiqu

ou dun ordinateur. Le message doit contenir le numro du triac activer (ou dsactiver). tout moment il est possible de demander ltat des 4 sorties.

Schma lectrique
Quatre lignes du PicBasic I/O8 I/O11 congures en sorties pilotent les 4 triacs. Lutilisation de la tension du secteur nous conduit effectuer une isolation galvanique an de protger correctement llectronique place en amont. Cette isolation est ralise laide dun optocoupleur (du type MOC3041), un tel circuit se compose de deux parties distinctes (isolation galvanique de 7 500 V) : la premire est constitue dune diode infrarouge qui va venir mettre en conduction le triac contenu dans la deuxime partie. Il dispose galement dun dispositif qui dtecte le passage zro de la tension du secteur an dviter de gnrer des parasites lors de lalimentation de la charge. Le courant de lordre de 10 mA, ncessaire lactivation de la diode infrarouge, est gnr par la sortie du PicBasic, la limitation de lintensit est assure par une rsistance de 470 . La faible puissance du triac interne loptocoupleur (Imax = 100 mA) ne permet pas lalimentation directe dune charge importante. Un deuxime triac mis en cascade permet de disposer dune puissance beaucoup plus importante. Toutefois, compte tenu de la largeur des pistes de la carte, il est conseill de ne pas dpasser 200 W par sortie. Le composant rfrenc VR est une varistance qui permet de protger le

DUNOD La photocopie non autorise est un dlit.

143

INTERFACES GSM

144

Figure 5.14. Schma de la tlcommande 4 sorties sur triacs.

CHAPITRE

RALISATIONS LECTRONIQUES
montage lors du pilotage dune charge inductive, les phnomnes dauto-induction lors de ltablissement et la coupure du courant peuvent dtriorer le triac. Chaque triac possde donc une varistance monte en parallle. Ce composant voit son impdance chuter trs fortement en prsence dune surtension (tension > tension nominale de 250 V), protgeant ainsi le circuit plac en aval, en loccurrence le triac. Notez la prsence de 4 Led sur les broches I/O0 I/O3 qui signalent visuellement ltat des triacs.

Programme PICBASIC : 4st.bas Il est bien entendu possible de rutiliser le programme du montage 4 sorties sur relais , cependant nous allons en proter pour mettre en uvre ici une deuxime mthode de programmation qui va viter au PicBasic dattendre en permanence que le ME lui signale larrive dun SMS. Priodiquement, cest le TE qui va consulter la mmoire du ME pour savoir si un nouveau SMS y est stock. Cette mthode est plus simple et permet surtout au PicBasic deffectuer dautres tches entre deux consultations. Le seul petit inconvnient est quil faut savoir lavance dans quelle mmoire va tre stock le prochain SMS et quel sera son index.
Nous allons galement ajouter la commande : TRI.,DATA qui positionne simultanment les 4 triacs ltat spci par la donne DATA comprise entre 00 et 15dec.
'DECLARATION DES CONSTANTES '-------------------------CONST BDS = 103 CONST RXD = 17 CONST TXD = 16 'DECLARATION DES VARIABLES '------------------------DIM index(3) AS BYTE DIM SMS(15) AS BYTE DIM DATA AS BYTE DIM i AS BYTE DIM n AS BYTE 'INITIALISATION DES TRIACS ET DES LEDS '------------------------------------BYTEOUT 1,&b00000000 OUT 0,1 OUT 1,1 OUT 2,1 OUT 3,1 'TEST LIAISON SERIE '-----------------i=0

DUNOD La photocopie non autorise est un dlit.

145

INTERFACES GSM

Figure 5.15. Circuit imprim.

TEST: BEEP 4 SEROUT TXD,BDS,0,1,["AT",13] SERIN RXD,BDS,0,2000,TEST,[WAIT("OK"),i] IF i=0 THEN GOTO TEST 'SELECTION DE lALPHABET GSM '--------------------------SEROUT TXD,BDS,0,1,["AT+CSCS=",34,"GSM",34,13] DELAY 500 'CODE PIN '--------

En principe le code PIN qui autorise lutilisation du tlphone doit tre compos chaque mise sous tension. Avec un tlphone

146

CHAPITRE

RALISATIONS LECTRONIQUES

Figure 5.16. Implantation des composants. Liste des composants R1, R4 R15 : 470 R2, R3 : 10 k C1 : 100 nF (pas de 2,54 mm) C2, C3 : 22 pF / cramique C4, C10 : 100 nF / LCC jaune C5, C6, C7, C8 : 1 F / tantale / 15 V C9 : 220 F / lectrolytique / 15 V D1 : diode 1N4002 D2 : diode 1N4148 L, L1 L4 : Led standard (diamtre 3 mm) Q : quartz 20 MHz REG : rgulateur 7805 BUZ : buzzer piezzo (sans lectronique intgre) J1 : barrette HE10 2 contacts + cavalier CN1 : bornier vis 2 plots CN2 : connecteur DB9 mle pour CI / coud 90 CN3 : connecteur pour cble de programmation (LEXTRONIC) CN4 : connecteur pour cran LCD (LEXTRONIC) (facultatif) IC1 : PICBASIC PB-3B (LEXTRONIC) + support DIL 28 broches (troit) IC2 : MAX232 + support DIL 16 broches OPT1 OPT4 : optocoupleur MOC3041 TR1 TR4 : TRIAC BTA08-400B VR1 VR4 : varistance 220 V

DUNOD La photocopie non autorise est un dlit.

classique vous pouvez le saisir partir du clavier. Ce qui nest plus possible si vous utilisez un terminal GSM intgr, pour la simple et bonne raison quil ne dispose pas de clavier ! Linstruction AT+CPIN suivie de votre code PIN est dans ce cas incontournable.
SEROUT TXD,BDS,0,1,["AT+CPIN=",34,"7208",34,13] DELAY 500 'INITIALISATION DU ME EN MODE TEXT '---------------------------------

147

INTERFACES GSM
Comme nous navons pas besoin que le ME avertisse le TE de larrive dun nouveau SMS, la commande AT+CNMI=1,1 est retire. Ne subsiste que la commande qui slectionne le mode TEXT.
SEROUT TXD,BDS,0,1,["AT+CMGF=1",13] DELAY 500 'SELECTION MEMOIRE ET INDEX POUR LECTURE SMS '-------------------------------------------

Comme nous lavons dit plus haut, la mmoire de stockage et lindex sont gs. Il faut donc dterminer ces deux paramtres lavance. Concernant la mmoire <mem1>, on considre que les SMS envoys par les particuliers ne possdent pas de classe. Cela signie que le mobile qui reoit ce genre de SMS le stocke dans la mmoire ME. Les autres types de mmoire sont surtout utiliss par les oprateurs. Si votre tlphone le supporte vous pouvez utiliser le paramtre MT qui permet aux commandes de lecture de SMS de travailler avec toutes les mmoires (possible sur le SIEMENS MC35 et TC35).

Figure 5.17. Index.

Ici nous avons choisi la mmoire du tlphone do AT+CPMS= "ME" . De mme, la variable index doit tre initialise avec lindex que portera le prochain SMS rceptionn. Il correspond au premier emplacement de libre dans la mmoire slectionne. Pour le dterminer, vous pouvez utiliser le logiciel convertSMS2 , aprs avoir slectionn la mmoire, soit ME dans notre cas, cliquez sur le bouton Tous , il suft de relever lindex du premier emplacement de libre. Dans lexemple ci-contre on constate que la mmoire ME contient 2 messages, le premier est situ lindex 900, le deuxime est situ lindex 902. Lindex 901 est donc libre, cest l que le prochain message reu sera stock.

148

CHAPITRE

RALISATIONS LECTRONIQUES
Remarque : Si vous avez un index cod sur un ou deux chiffres, il suft de mettre les variables non utilises nul. Par exemple si index = 1 (index de base pour le MC35 et TC35 de SIEMENS), il faudra modier le programme comme ceci : index(0)="":index(1)="":index(2)="1".
SEROUT TXD,BDS,0,1,["AT+CPMS=",34,"ME",34,13] DELAY 500 index(0)="9":index(1)="0":index(2)="1" 'INITIALISATION DES VARIABLES '---------------------------DEBUT: FOR i=0 TO 14 SMS(i)=0 NEXT i 'REGARDE SI RECEPTION DUN SMS '-----------------------------

Le programme grce la commande AT+CMGR regarde si lemplacement mmoire indiqu par lindex contient un SMS. Si lemplacement est vide le programme saute ltiquette RAZ. Dans le cas contraire si le texte contient les caractres !! , les 15 caractres suivants, qui contiennent la commande, sont stocks dans la variable SMS.
SEROUT TXD,BDS,0,1,["AT+CMGR="] FOR i=0 to 2 IF index(i)>=48 AND index(i)<=57 THEN SEROUT TXD,BDS, 0,1,[index(i)] NEXT i SEROUT TXD,BDS,0,1,[13] SERIN RXD,BDS,0,5000,ATT,[WAIT("!!"),SMS(0)~15] IF SMS(0)=0 THEN GOTO RAZ FOR i=0 TO 10 BEEP 4 NEXT i

ATT:
DUNOD La photocopie non autorise est un dlit.

'GESTION DES TRIACS '------------------

La commande contenue dans la variable SMS est dcode pour savoir sil faut activer/dsactiver un triac ou envoyer un SMS contenant ltat des 4 triacs. Exemple : la commande !!TRI4,OF dsactive le triac numro 4.
IF SMS(3)<=52 AND SMS(3)>=49 THEN IF SMS(5)="O" AND SMS(6)="N" THEN IF SMS(3)="1" THEN OUT 8,1 IF SMS(3)="2" THEN OUT 9,1

149

INTERFACES GSM
IF SMS(3)="3" THEN OUT 10,1 IF SMS(3)="4" THEN OUT 11,1 END IF IF SMS(5)="O" AND SMS(6)="F" THEN IF SMS(3)="1" THEN OUT 8,0 IF SMS(3)="2" THEN OUT 9,0 IF SMS(3)="3" THEN OUT 10,0 IF SMS(3)="4" THEN OUT 11,0 END IF END IF

Ajout de la commande qui permet de piloter simultanment les 4 triacs. Notez qu la place du numro du triac il faut saisir un point. Les donnes SMS(5) et SMS(6) contiennent la valeur appliquer sur les sorties qui pilotent les triacs (tableau 5.16).
Tableau 5.16.
Commande (dec) !!TRI.,00 !!TRI.,01 !!TRI.,02 !!TRI.,03 !!TRI.,04 !!TRI.,05 !!TRI.,06 !!TRI.,07 !!TRI.,08 !!TRI.,09 !!TRI.,10 !!TRI.,11 !!TRI.,12 !!TRI.,13 !!TRI.,14 !!TRI.,15 1 = ON, 0 = OFF 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 4 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 3 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 2 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

DATA

TRIAC n

150

CHAPITRE

RALISATIONS LECTRONIQUES
Notez que la commande !!TRI.,00 dsactive simultanment les 4 triacs, alors que la commande !!TRI.,15 active simultanment les 4 triacs. SMS(5) et SMS(6) contiennent la valeur de consigne que doivent prendre les 4 triacs. Cette valeur ne peut pas tre utilise directement, car elle est code en ASCII. Malheureusement il nexiste aucune instruction en langage PicBasic pour convertir une valeur de type texte en donne de type BYTE. Attention il ne suft pas de multiplier SMS(5) par 10, SMS(6) par 1 et dadditionner ces deux valeurs pour obtenir la valeur numrique souhaite. Avant de faire ce calcul il faut retrancher 48dec chaque donne (48 correspond au code ASCII du chiffre 0).
IF SMS(3)="." THEN SMS(5)=SMS(5)-48 SMS(5)=SMS(5)*10 SMS(6)=SMS(6)-48 DATA = SMS(5)+SMS(6) BYTEOUT 1,DATA END IF

Mise jour des Led en fonction de ltat des triacs :


IF IF IF IF OUTSTAT(8) =0 OUTSTAT(9) =0 OUTSTAT(10)=0 OUTSTAT(11)=0 THEN THEN THEN THEN OUT OUT OUT OUT 0,1 1,1 2,1 3,1 ELSE ELSE ELSE ELSE OUT OUT OUT OUT 0,0 1,0 2,0 3,0

'ENVOI DUN SMS CONTENANT LETAT DES 4 TRIACS '--------------------------------------------

DUNOD La photocopie non autorise est un dlit.

Si la variable SMS(3) ne contient pas un chiffre compris entre 1 et 4 mais un point dinterrogation ? , ceci dans le cas o le SMS envoy est de la forme !!TRI?,06xxxxxxxx , le montage doit rdiger et envoyer un SMS contenant ltat actuel des 4 triacs. Cette fois le numro du tlphone nest pas g dans le programme, il est contenu par les variables SMS(5) SMS(14). La boucle FOR/NEXT permet de balayer les 10 variables pour reconstituer le numro. Si aucun numro nest spci, ce qui est vrai si SMS(4) ne contient pas le code ASCII du symbole virgule, le message est envoy au numro par dfaut indiqu en dur dans le programme.
n=0 IF SMS(3)="?" THEN IF SMS(4)="," THEN SEROUT TXD,BDS,0,1,["AT+CMGS=",34] FOR i=5 TO 14 SEROUT TXD,BDS,0,1,[SMS(i)]

151

INTERFACES GSM
NEXT i SEROUT TXD,BDS,0,1,[34,13] ELSE SEROUT TXD,BDS,0,1,["AT+CMGS=",34,"06xxxxxxxx",34,13] END IF DELAY 1000 SEROUT TXD,BDS,0,1,["ETAT DES TRIACS : "] FOR i=8 TO 11 n=i+41 IF OUTSTAT(i)=1 THEN SEROUT TXD,BDS,0,1,["TRIAC",n,"=ON "] ELSE SEROUT TXD,BDS,0,1,["TRIAC",n,"=OFF "] END IF NEXT i SEROUT TXD,BDS,0,1,[26] DELAY 5000 END IF 'EFFACE LE SMS EN MEMOIRE '------------------------

Cette partie du programme permet deffacer systmatiquement le SMS en mmoire, ainsi le prochain SMS rceptionn aura toujours le mme index. Ceci vite de prvoir une incrmentation de la variable index et surtout de saturer la mmoire utilise. Notez que cette partie de programme est dans certains cas appele mme si aucun SMS nest effacer, le ME rpond par un message derreur qui est ignor par le programme.
RAZ: SEROUT TXD,BDS,0,1,["AT+CMGD="] FOR i=0 TO 2 IF index(i)>=48 AND index(i)<=57 THEN SEROUT TXD,BDS,0,1,[index(i)] NEXT i SEROUT TXD,BDS,0,1,[13] DELAY 1000 GOTO DEBUT

Rsum des points importants Voir Tableau 5.17.

4 sorties analogiques
Le prsent montage nutilise pas de rseau R-2R comme on aurait pu sy attendre mais des potentiomtres numriques. Le potentiomtre numrique remplit exactement la mme fonction que son anctre mcanique. La diffrence est que pour faire varier sa rsistance on ne fait plus tourner un axe mais on envoie un mot

152

CHAPITRE

RALISATIONS LECTRONIQUES

Tableau 5.17.
4 SORTIES SUR TRIACS Conguration Cavalier J1 mettre en place uniquement si vous utilisez un cble DATA LINK du commerce lments du programme PicBasic modier Code PIN (7208 par dfaut) Mmoire lecture SMS <mem1> (ME par dfaut) Index du prochain SMS reu (900 par dfaut) Numro de tlphone par dfaut pour lenvoi des SMS Action du montage Activation du triac numro x (4 x 1) Dsactivation du triac numro x (4 x 1) Positionne les 4 triacs suivant la valeur contenue par data (15 data 00) Un SMS contenant ltat des 4 triacs est envoy au numro spci en dur dans le programme Un SMS contenant ltat des 4 triacs est envoy au numro indiqu

Commande SMS reue !!TRIx,ON !!TRIx,OF !!TRI.,data !!TRI? !!TRI?,06xxxxxxxx

DUNOD La photocopie non autorise est un dlit.

de commande par le biais dune liaison srie synchrone ncessitant que 3 ls. On peut donc facilement interfacer ce type de composant avec un PicBasic et envisager de piloter par SMS tout montage utilisant un potentiomtre (alimentation variable, ltre programmable, timer, gradateur). Lajout de straps permet de transformer le montage en Convertisseur Numrique Analogique, on obtient dans ce cas sur les sorties une tension comprise entre 0 et + 5 V que lon peut faire varier par pas de 20 mV.

Schma lectrique Voir Figures 5.18, 5.19 et 5.20.. Caractristiques Dans la famille des potentiomtres numriques proposs par le constructeur Analog Devices nous trouvons le AD8400 qui dispose dun canal, le AD8402 de deux canaux et le AD8403 de quatre canaux. Bien que le montage prsent ici possde 4 sorties, nous avons opt pour lutilisation de 4 circuits AD8400 indpendants. Il est ainsi possible de choisir des valeurs de rsistance nominale diffrentes sur chaque sortie. Une sortie correspond un potentiomtre que lon peut contrler numriquement. Les valeurs nominales disponibles sont 1 k, 10 k, 50 k ou 100 k.

153

INTERFACES GSM

154

Figure 5.18. Schma de la tlcommande 4 sorties analogiques.

CHAPITRE

RALISATIONS LECTRONIQUES

DUNOD La photocopie non autorise est un dlit.

Liste des composants R1 : 470 R2, R3 : 10 k R4 : 1 k C1 : 100 nF (pas de 2,54 mm) C2, C3 : 22 pF / cramique C4, C10 : 100 nF / LCC jaune C5, C6, C7, C8 : 1 F / tantale / 15 V C9 : 220 F / lectrolytique / 15 V D1 : diode 1N4002 D2 : diode 1N4148 L : Led standard Q : quartz 20 MHz REG : rgulateur 7805

Figure 5.19. (en haut) Circuit imprim.

Figure 5.20. (en bas) Implantation des composants.

BUZ : buzzer piezzo (sans lectronique intgre) J1 : barrette HE10 2 contacts + cavalier CN1 : bornier vis 2 plots CN2 : connecteur DB9 mle pour CI / coud 90 CN3 : connecteur pour cble de programmation (LEXTRONIC) CN4 : connecteur pour cran LCD (LEXTRONIC) (facultatif) IC1 : PICBASIC PB-3B (LEXTRONIC) + support DIL 28 broches (troit) IC2 : MAX232 + support DIL 16 broches IC3 IC6 : AD8400 (RADIOSPARES) + support DIL 8 broches

155

INTERFACES GSM
Nous avons choisi pour notre montage 4 potentiomtres de 10 k. La rsolution du potentiomtre est de 8 bits, cest--dire que lon peut accder 28 = 256 positions lmentaires. Chacune de ces 256 positions est spare par une valeur gale 10 000 /256 = 39 . Il suft de transfrer un mot de 8 bits dans un registre pour dterminer la valeur de la rsistance du potentiomtre. Soit A et B les deux points xes et W le point variable (curseur). Entre les points A et B on retrouve la valeur nominale du potentiomtre soit 10 k. La position du curseur W est pilote par la valeur contenue dans le registre de commande. La mise jour de ce registre se fait par un bus de type SPI pilot par le PicBasic. Il sagit dune liaison srie synchrone. On retrouve donc un signal dhorloge (CLK) connect la broche I/O0, une ligne pour le transfert des donnes (SDI) connecte la broche I/O1 et une ligne de validation (CS), les 4 sorties I/O8 I/O11 relies aux entres CS permettent de slectionner indpendamment chacun des circuits AD8400. Chaque mot transfr comporte 10 bits. Le niveau prsent sur la ligne de donne est transfr dans le registre dcalage sur un front montant du signal dhorloge alors que la ligne CS est ltat bas. Ce processus est rpt 10 fois puis la ligne CS est mise ltat haut ce qui dclenche la mise jour de la position de W. Les deux premiers bits transfrs dterminent ladresse du potentiomtre. Dans le cadre dune utilisation de lAD8400 qui ne dispose que dun canal, les bits dadresse A0 et A1 seront toujours gaux zro. Les 8 autres bits dterminent la position du curseur W, le transfert du mot seffectue par bit de poids dcroissant. Le premier point est accessible en envoyant la valeur 0. Le curseur est alors en bute sur le point B, il subsiste entre ces deux points une rsistance rsiduelle denviron 50 . La seconde position est obtenue en envoyant le mot 01dec on obtient entre les points W et B une rsistance quivalente de 89 . Chaque position est en fait calcule par la relation suivante : RWB(Dx) = (Dx/255) RBA + Rw avec Rw = 50 . La rsistance maximale est obtenue en transfrant la valeur 255dec on obtient alors entre le point B est W une rsistance gale 10 011 . On peut videmment en dduire aussi la rsistance entre les points W et A en utilisant la relation suivante : RWA(Dx) = ((255 Dx)/255) RBA + Rw (tableau 5.18). Utilisation du circuit en convertisseur numrique-analogique Il est aussi trs facile dobtenir en sortie du potentiomtre non plus une rsistance mais une tension, simplement en reliant le point A au + 5 V (straps J2, J4, J6 et J8) et le point B au Gnd (straps J1, J3, J5 et J7). La tension comprise entre le point W et le point B se calcule de la manire suivante : VwB(Dx) = Dx/255 VAB + VB.

156

CHAPITRE

RALISATIONS LECTRONIQUES

Code (Dec) 255 128 1 0

RWB() 10 011 5 050 89 50

RWA() 89 5 050 10 011 10 050

Tableau 5.18.

Figure 5.21. Graphique R = f(D).

On obtient ni plus ni moins quun convertisseur numrique analogique (CNA). Concernant notre montage, nous avons VAB = + 5 V et VB = 0 V (on nglige la rsistance rsiduelle), la formule prcdente devient : VwB(Dx) = Dx/256 5 et VwA = 5 VwB.
DUNOD La photocopie non autorise est un dlit.

Si vous dsirez gnrer une intensit convenable, il suft dajouter un amplicateur oprationnel cbl en suiveur de tension (tableau 5.19).
Tableau 5.19.

Code (Dec) 255 128 1 0

VWB (V) 5 2,5 0,02 0

VWA (V) 0 2,5 4,98 5

157

INTERFACES GSM
Programme PICBASIC : 4sa.bas
'DECLARATION DES CONSTANTES '-------------------------CONST BDS = 103 CONST RXD = 17 CONST TXD = 16 'DECLARATION DES VARIABLES '------------------------DIM Tampon(10) AS BYTE DIM SMS(13) AS BYTE DIM i AS BYTE DIM n AS BYTE DIM D(4) AS BYTE 'INITIALISATION DES 4 CIRCUITS AD8400 '------------------------------------

Au dpart du programme il faut que les sorties CS0 CS3 soient ltat haut an que les circuits AD8400 ignorent les ventuelles informations circulant sur les lignes SDI et CLK. Linstruction BYTEOUT permet de sortir la valeur binaire de la donne (val) sur 8 sorties du PicBasic. Chaque sortie est limage de chaque bit de la valeur binaire donne. Dans notre cas les entres CS sont relies sur les sorties I/O8 I/O11, il sagit donc des 4 bits du bloc 1. Le LSB correspond la broche I/O8, le MSB la broche I/O15. Les bits 0 3 sont donc positionns ltat logique haut, ltat des autres bits na aucune importance (ici positionns zro). Une boucle FOR/NEXT permet la mise zro de la variable tableau D qui contient limage de la valeur de consigne pour chacun des 4 potentiomtres. La valeur de consigne zro est alors envoye simultanment aux 4 potentiomtres.
BYTEOUT 1,&b00001111 FOR i=0 TO 3 D(i)=0 NEXT i BYTEOUT 1,&b00000000 SHIFTOUT 0,1,1,0,10 BYTEOUT 1,&b00001111 'TEST LIAISON SERIE '------------------

Pour sassurer que la liaison entre le montage et le tlphone est valide, nous allons envoyer la commande la plus simple qui soit : AT<CR>, le ME doit rpondre par <CR><LF>OK<CR><LF> si la liaison est correcte. Les caractres AT suivi du caractre <CR>=13dec

158

CHAPITRE

RALISATIONS LECTRONIQUES
sont envoys par la commande SEROUT. Linstruction SERIN permet dattendre lventuelle rponse OK pendant 2 000 ms (soit 2 s). Si les caractres OK sont rceptionns dans le temps donn, le caractre suivant soit <CR> est plac dans la variable i. Dans le cas contraire le programme saute la ligne repre par ltiquette TEST i est alors vide, un bip est mis par le buzzer. Il suft de tester le contenu de i pour savoir si la liaison est tablie.
TEST: BEEP 4 SEROUT TXD,BDS,0,1,["AT",13] SERIN RXD,BDS,0,2000,TEST,[WAIT("OK"),i] IF i=0 THEN GOTO TEST 'SELECTION DE lALPHABET GSM '--------------------------SEROUT TXD,BDS,0,1,["AT+CSCS=",34,"GSM",34,13] DELAY 500 'CODE PIN '--------

En principe le code PIN qui autorise lutilisation du tlphone doit tre compos chaque mise sous tension. Avec un tlphone classique vous pouvez le saisir partir du clavier. Ce qui nest plus possible si vous utilisez un terminal GSM intgr, pour la simple et bonne raison quil ne dispose pas de clavier ! Linstruction AT+CPIN suivie de votre code PIN est dans ce cas incontournable.
SEROUT TXD,BDS,0,1,["AT+CPIN=",34,"7208",34,13] DELAY 500 'INITIALISATION DU ME '------------------- DUNOD La photocopie non autorise est un dlit.

Le ME est congur en mode TEXT par la commande AT+CMGF=1 . La commande AT+CNMI=1,1 indique au ME que chaque nouveau SMS reu doit tre signal au TE.
SEROUT TXD,BDS,0,1,["AT+CMGF=1",13] DELAY 500 SEROUT TXD,BDS,0,1,["AT+CNMI=1,1",13] DELAY 500 'INITIALISATION DES VARIABLES '---------------------------DEBUT:FOR i=0 TO 9 Tampon(i)=0 NEXT i FOR i=0 TO 12 SMS(i)=0

159

INTERFACES GSM
NEXT i 'ATTENTE RECEPTION SMS '---------------------

Dsormais le C scrute lentre RXD dans lattente des caractres TI . Ds leur rception les 10 caractres suivants sont placs dans la variable Tampon. Une srie de 11 bips signale larrive du SMS.
ATT: SERIN RXD,BDS,0,10000,ATT,[WAIT("TI"),Tampon(0)~10] FOR i=0 TO 10 BEEP 4 NEXT i

'LECTURE DU SMS RECU '-------------------

Le TE congure le ME pour que la lecture soit faite dans la mmoire dnie par Tampon(3) et Tampon(4). La lecture du SMS est provoque par la commande AT+CMGR=<index> . Ds la rception des caractres !! les 13 caractres suivants sont placs dans la variable SMS.
SEROUT TXD,BDS,0,1,["AT+CPMS=",34,Tampon(3),Tampon(4), 34,13] DELAY 500 SEROUT TXD,BDS,0,1,["AT+CMGR="] FOR i=7 TO 9 IF Tampon(i)>=48 AND Tampon(i)<=57 THEN SEROUT TXD,BDS,0,1,[Tampon(i)] NEXT i SEROUT TXD,BDS,0,1,[13] SERIN RXD,BDS,0,5000,SUITE,[WAIT("!!"),SMS(0)~13] SUITE: IF SMS(0)=0 THEN GOTO RAZ

En ltat actuel du programme, si lon considre que le SMS envoy est de la forme !!S1,127 , la variable tableau SMS doit contenir ce qui est indiqu tableau 5.20.
Tableau 5.20.
SMS(0) S 83dec SMS(1) 1 49dec SMS(2) , 44dec SMS(3) 1 49dec SMS(4) 2 50dec SMS(5) 7 55dec

SMS(1) contient le numro de la sortie, compris entre 1 et 4. SMS(3), SMS(4) et SMS(5) contiennent la valeur comprise entre 0 et 255 que doit prendre la sortie concerne. Cette valeur ne peut

160

CHAPITRE

RALISATIONS LECTRONIQUES
pas tre utilise directement, car elle est code en ASCII alors que le circuit AD8400 rclame une valeur numrique. Malheureusement il nexiste aucune instruction en langage PicBasic pour convertir une valeur de type texte en donne de type BYTE. Attention il ne suft pas de multiplier SMS(3) par 100, SMS(4) par 10, SMS(5) par 1 et dadditionner ces trois valeurs pour obtenir la valeur souhaite. Voici la preuve : 49 100 + 50 10 + 55 1 = 5 455.
'CONVERSION ASCII -> DECIMAL '

En fait, avant de faire ce calcul il faut retrancher 48 chaque donne. SMS(3) 48 = 49 48 = 1 SMS(4) 48 = 50 48 = 2 SMS(5) 48 = 55 48 = 7 Finalement en reprenant le calcul prcdent, on obtient bien la valeur souhaite : 1 100 + 2 10 + 7 1 = 127. La formule gnrale est donc : D = (SMS(3) 48) 100 + (SMS(4) 48) 10 + (SMS(5) 48) 1 Traduit en langage PicBasic :
IF SMS(1)<=52 AND SMS(1)>=49 THEN SMS(3)=SMS(3)-48 SMS(3)=SMS(3)x100 SMS(4)=SMS(4)-48 SMS(4)=SMS(4)x10 SMS(5)=SMS(5)-48
DUNOD La photocopie non autorise est un dlit.

SMS(1)=SMS(1)-49 D(SMS(1))=SMS(3)+SMS(4)+SMS(5)

Attention la valeur de consigne doit tre code sur 3 chiffres, veillez complter par des zros si ncessaire. Par exemple : !!S1,009.
'GESTION DES SORTIES '

La variable n (soit SMS(1)) contient le numro de la sortie en cours compris entre 0 et 3. Il suft dajouter 8 SMS(1) pour obtenir la sortie du PicBasic qui slectionne le circuit AD8400. Linstruction SHIFTOUT permet denvoyer la donne D(n) au potentiomtre numrique. Cette instruction gnre un signal dhorloge de synchronisation sur la sortie I/O0, tout en venant

161

INTERFACES GSM
crire sriellement les donnes prsentes sur lentre I/O1. Le paramtre suivant dnit le mode dcriture, plac ici 1, il indique que le MSB est prioritaire. Le dernier paramtre positionn 10, indique le nombre de bits de la donne D(n), 2 bits pour ladresse (toujours 0) et 8 bits pour la donne (comprise entre 0 et 255).
n=SMS(1) SMS(1)=SMS(1)+8 OUT SMS(1),0 SHIFTOUT 0,1,1,D(n),10 OUT SMS(1),1 END IF 'ENVOI DUN SMS CONTENANT LA VALEUR POUR CHAQUE SORTIE '-----------------------------------------------------

Si la variable SMS(3) ne contient pas un chiffre compris entre 1 et 4 mais un point dinterrogation ? , ceci dans le cas o le SMS envoy est de la forme !!S?,06xxxxxxxx , le montage doit rdiger et envoyer un SMS contenant les 4 valeurs de consigne. Si la commande est suivie dune virgule et dun numro du tlphone, la boucle FOR/NEXT permet de balayer les 10 variables SMS(3) SMS(12) pour reconstituer le numro. Si aucun numro nest spci, ce qui est vrai si SMS(2)<>",", le message est envoy au numro par dfaut indiqu en dur dans le programme.
n=0 IF SMS(1)="?" THEN IF SMS(2)="," THEN SEROUT TXD,BDS,0,1,["AT+CMGS=",34] FOR i=3 TO 12 SEROUT TXD,BDS,0,1,[SMS(i)] NEXT i SEROUT TXD,BDS,0,1,[34,13] ELSE SEROUT TXD,BDS,0,1,["AT+CMGS=",34,"06xxxxxxxx",34,13] END IF DELAY 1000 SEROUT TXD,BDS,0,1,["ETAT DES SORTIES : "] FOR i=0 TO 3 n=i+49 SEROUT TXD,BDS,0,1,["S",n,"=",DEC(D(i),3,0),32] NEXT i SEROUT TXD,BDS,0,1,[26] DELAY 5000 END IF 'EFFACE LE SMS EN MEMOIRE '------------------------

162

CHAPITRE

RALISATIONS LECTRONIQUES
Pour terminer, le SMS est systmatiquement effac laide de la commande AT+CMGD, pour viter une saturation de la mmoire utilise. Du fait chaque SMS reu aura le mme index.
RAZ: SEROUT TXD,BDS,0,1,["AT+CMGD="] FOR i=7 TO 9 IF Tampon(i)>=48 AND Tampon(i)<=57 THEN SEROUT TXD,BDS,0,1,[Tampon(i)] NEXT i SEROUT TXD,BDS,0,1,[13] DELAY 1000 GOTO DEBUT

Rsum des points importants


4 SORTIES ANALOGIQUES Conguration

Tableau 5.21.

Cavalier J1 mettre en place uniquement si vous utilisez un cble DATA LINK du commerce Parties du programme PicBasic modier Code PIN (7208 par dfaut) Numro de tlphone par dfaut pour lenvoi des SMS Commande SMS reue !!Sx,data Action du montage La valeur de consigne data exprime en dcimal, toujours code sur 3 chiffres, (000 data > 255) est envoye sur la sortie pointe par x (4 x 1) La valeur de consigne associe pour chaque sortie est envoye par SMS au numro spci en dur dans le programme La valeur de consigne associe pour chaque sortie est envoye par SMS au numro indiqu

!!S? !!S?,06xxxxxxxx
DUNOD La photocopie non autorise est un dlit.

5.3 TLMESURES PAR GSM 4 entres logiques


Voici une carte comportant 4 entres logiques tout ou rien. Sur demande de lutilisateur ltat logique des entres est envoy par SMS. Il est possible de programmer la carte pour quun envoi se dclenche sur un tat logique prcis des 4 entres. On peut envisager dutiliser ce montage comme systme dalarme protgeant 4 zones.

Schma lectrique Voir Figure 5.22.

163

INTERFACES GSM

164

Figure 5.22. Schma de la tlcommande 4 entres logiques.

CHAPITRE

RALISATIONS LECTRONIQUES
Les lignes I/O8 I/O11 du PicBasic sont utilises comme des entres logiques. Pour une protection efcace du PicBasic les 4 entres sont isoles lectriquement des tensions externes qui lui seront appliques. Le composant charg de cet isolement est un optocoupleur (ou photocoupleur). Comme son nom le laisse supposer le transfert de linformation binaire se fait optiquement ; un tel circuit se compose de deux parties distinctes : la premire est constitue dune diode infrarouge qui va venir mettre en conduction le phototransistor contenu dans la deuxime partie. Le 4N33 choisi ici possde un isolement lectrique de 2 500 V. En thorie cela signie quil faudrait appliquer une tension dau moins 2 500 V en amont du circuit pour arriver endommager la partie situe en aval. Dans notre cadre dutilisation on considre que les tensions normales appliques sur les entres seront comprises entre 0 et + 5 V. Sachant quune intensit de 10 mA traversant la diode suft a saturer le phototransistor, les rsistances R8 R11 ont une valeur de 470 . Une diode externe au botier est utilise pour signaler visuellement lutilisateur ltat de chaque entre. On notera la prsence des diodes 1N4002, D3 D6, qui protgeront les optocoupleurs dventuelles tensions inverses importantes. Lorsque la tension dentre est nulle, voir ngative, la diode interne loptocoupleur est teinte, par consquent le phototransistor est bloqu, sur lentre correspondante du PicBasic on obtient une tension de + 5 V du fait de la prsence de la rsistance de rappel (R12 R15) au + 5 V du montage. Lorsque la tension dentre est gale + 5 V, la diode interne loptocoupleur est allume et vient saturer le phototransistor, on obtient par consquent une tension denviron 0,6 V considre comme un tat logique bas par le PicBasic. On remarque que ltat logique lu par le PicBasic est invers par rapport celui des entres de la carte, il faudra en tenir compte dans le programme. Une barrette de 4 mini-interrupteurs est connecte aux entres I/O0 I/O3 du PicBasic. Les rsistances de rappel R4 R7 imposent une tension de + 5 V aux entres lorsque les interrupteurs sont ouverts. Lorsque ltat des 4 interrupteurs est gal ltat des 4 entres E1 E4, un SMS est envoy au destinataire de votre choix. La Led L5 signale lenvoi du SMS (Figures 5.23 et 5.24).

DUNOD La photocopie non autorise est un dlit.

Programme PICBASIC : 4el.bas


Comme le PicBasic doit la fois traiter larrive dun ventuel SMS, et envoyer un SMS dans le cas o ltat logique des interrupteurs est identique aux entres, nous allons utiliser la mthode de programmation mise en uvre pour le montage 4 sorties sur triacs . Comme le PicBasic ne possde pas dinterruption programme lors de larrive dune donne sur son entre srie, il est ncessaire quil scrute en permanence la ligne RxD

165

INTERFACES GSM

Figure 5.23. Circuit imprim.

dans lattente du signal envoy par le ME concernant larrive dun SMS, ce qui nest pas possible dans notre application. Priodiquement, cest le TE qui va consulter la mmoire du ME pour savoir si un nouveau SMS y est stock. Entre deux consultations le PicBasic vriera lgalit entre les entres et les interrupteurs, si celle-ci est avre, un SMS dalerte sera envoy.
'DECLARATION DES CONSTANTES '-------------------------CONST BDS = 103 CONST RXD = 17 CONST TXD = 16 'DECLARATION DES VARIABLES '-------------------------

166

CHAPITRE

RALISATIONS LECTRONIQUES

DUNOD La photocopie non autorise est un dlit.

Liste des composants R1, R8 R11, R16 : 470 R2 R7, R12 R15 : 10 k C1 : 100 nF (pas de 2,54 mm) C2, C3 : 22 pF / cramique C4, C10 : 100 nF / LCC jaune C5, C6, C7, C8 : 1 F / tantale / 15 V C9 : 220 F / lectrolytique / 15 V D1, D3 D6 : diode 1N4002 D2 : diode 1N4148 L, L1 L5 : Led standard Q : quartz 20 MHz REG : rgulateur 7805 J1 : barrette HE10 2 contacts + cavalier

Figure 5.24. Implantation des composants. BUZ : buzzer piezzo (sans lectronique intgre) CN1 : bornier vis 2 plots CN2 : connecteur DB9 mle pour CI / coud 90 CN3 : connecteur pour cble de programmation (LEXTRONIC) CN4 : connecteur pour cran LCD (LEXTRONIC) (facultatif) IC1 : PICBASIC PB-3B (LEXTRONIC) + support DIL 28 broches (troit) IC2 : MAX232 + support DIL 16 broches OPT1 OPT4 : optocoupleur 4N33 DIP : interrupteur mini dip 4 contacts

167

INTERFACES GSM
DIM DIM DIM DIM DIM DIM index(3) AS BYTE SMS(13) AS BYTE i AS BYTE j AS INTEGER n AS BYTE num AS BYTE

'TEST LIAISON SERIE '-----------------i=0 TEST: BEEP 12 SEROUT TXD,BDS,0,1,["AT",13] SERIN RXD,BDS,0,2000,TEST,[WAIT("OK"),i] IF i=0 THEN GOTO TEST 'SELECTION DE lALPHABET GSM '--------------------------SEROUT TXD,BDS,0,1,["AT+CSCS=",34,"GSM",34,13] DELAY 500 'CODE PIN '--------

En principe le code PIN qui autorise lutilisation du tlphone doit tre compos chaque mise sous tension. Avec un tlphone classique vous pouvez le saisir partir du clavier. Ce qui nest plus possible si vous utilisez un terminal GSM intgr, pour la simple et bonne raison quil ne dispose pas de clavier ! Linstruction AT+CPIN suivie de votre code PIN est dans ce cas incontournable.
SEROUT TXD,BDS,0,1,["AT+CPIN=",34,"7208",34,13] DELAY 500

Comme nous navons pas besoin que le ME avertisse le TE de larrive dun nouveau SMS, la commande AT+CNMI=1,1 est retire.
'INITIALISATION DU ME EN MODE TEXT '--------------------------------SEROUT TXD,BDS,0,1,["AT+CMGF=1",13] DELAY 500 'SELECTION MEMOIRE ET INDEX POUR LECTURE SMS '-------------------------------------------

Comme nous lavons dit plus haut, la mmoire de stockage et lindex sont gs. Il faut donc dterminer ces deux paramtres lavance. Concernant la mmoire <mem1>, on considre que les SMS envoys par les particuliers ne possdent pas de classe. Cela

168

CHAPITRE

RALISATIONS LECTRONIQUES
signie que le mobile qui reoit ce genre de SMS le stocke dans la mmoire ME. Les autres types de mmoire sont surtout utiliss par les oprateurs. Si votre tlphone le permet vous pouvez utiliser le paramtre MT qui permet aux commandes de lecture de SMS de travailler avec toutes les mmoires. Ici nous avons choisi la mmoire du tlphone do AT+CPMS= ME . De mme, la variable index doit tre initialise avec lindex que portera le prochain SMS rceptionn. Il correspond au premier emplacement de libre dans la mmoire slectionne. Pour le dterminer, vous pouvez utiliser le logiciel convertSMS2 , aprs avoir slectionn la mmoire soit ME dans notre cas, cliquez sur le bouton Tous il suft de relever lindex du premier emplacement de libre. Lindex par dfaut utilis ici est x 900. Si vous avez un index cod sur un ou deux chiffres, il suft de mettre les variables non utilises nul. Par exemple si index = 1, il faudra modier le programme comme ceci : index(0)="":index(1)="":index(2)="1".
SEROUT TXD,BDS,0,1,["AT+CPMS=",34,"ME",34,13] DELAY 500 index(0)="9":index(1)="0":index(2)="0" 'INITIALISATION N TELEPHONE UTILISE PAR DEFAUT POUR LENVOI DES SMS '----------------------------------------------------------------

DUNOD La photocopie non autorise est un dlit.

Le numro de tlphone utilis par dfaut pour envoyer des SMS est initialis dans la mmoire eeprom du PicBasic. Pour ne pas interfrer avec la partie programme, le stockage se fait dans les 10 derniers emplacements de la mmoire de FF6hex FFFhex. Cette mmorisation ne se ralise quune seule fois car le programme teste avant si ladresse FF6hex est vide (notez quun emplacement vide contient la donne FFhex).
IF EEREAD(&HFF6)=&HFF THEN EEWRITE &HFF6,"0" EEWRITE &HFF7,"6" EEWRITE &HFF8,"x" EEWRITE &HFF9,"x" EEWRITE &HFFA,"x" EEWRITE &HFFB,"x" EEWRITE &HFFC,"x" EEWRITE &HFFD,"x" EEWRITE &HFFE,"x" EEWRITE &HFFF,"x" END IF 'INITIALISATION DES VARIABLES '----------------------------

169

INTERFACES GSM
OUT4,0 DEBUT: FOR i=0 TO 12 SMS(i)=0 NEXT i 'COMPARAISON INTERRUPTEURS / ENTREES '-----------------------------------

En premier lieu, ltat logique des 4 interrupteurs est lu, puis compar avec ltat des 4 entres de la carte, en cas dgalit le sous-programme ALERT est excut.
IF IN(0)=IN(8) AND IN(1)=IN(9) THEN IF IN(2)=IN(10) AND IN(3)=IN(11) THEN GOSUB ALERT END IF 'REGARDE SI RECEPTION DUN SMS '-----------------------------

Le programme, grce la commande AT+CMGR , regarde si lemplacement mmoire indiqu par lindex contient un SMS. Si lemplacement est vide le programme saute ltiquette RAZ. Dans le cas contraire si le texte contient les caractres !! , les 13 caractres suivants, qui dnissent la commande, sont stocks dans la variable SMS, sinon le programme saute ltiquette RAZ.
SEROUT TXD,BDS,0,1,["AT+CMGR="] FOR i=0 to 2 IF index(i)>=48 AND index(i)<=57 THEN SEROUT TXD,BDS,0,1,[index(i)] NEXT i SEROUT TXD,BDS,0,1,[13] SERIN RXD,BDS,0,5000,SUITE,[WAIT("!!"),SMS(0)~13] SUITE: IF SMS(0)=0 THEN GOTO RAZ FOR i=0 TO 10 BEEP 12 NEXT i 'GESTION DES SMS RECEPTIONNES '----------------------------

Dans un premier temps, seules les deux premires lettres constituant la commande reue par SMS sont vries par le programme. Si les lettres E? sont reconnues, le sous-programme ETAT est appel. Si les lettres N, sont dtectes, le sousprogramme MAJNUM est appel. Si ce sont les lettres RA , la sortie I/O4 qui signale et mmorise le fait quun message dalerte a t envoy, est remise zro. La Led L5 est alors teinte.
IF SMS(0)="E" AND SMS(1)="?" THEN GOSUB ETAT IF SMS(0)="N" AND SMS(1)="," THEN GOSUB MAJNUM

170

CHAPITRE

RALISATIONS LECTRONIQUES
IF SMS(0)="R" AND SMS(1)="A" THEN OUT4,0 GOTO RAZ 'MESSAGE DALERTE EN CAS DEGALITE '---------------------------------

Si la sortie I/O4 est zro, le sous-programme ENV qui compose la premire partie du SMS est appel. Ensuite vient se greffer la n du message, le texte => ALERTE . Le caractre 26dec soit <EOF> dclenche lenvoi du SMS. La sortie I/O4 est positionne 1 pour viter que dautres SMS dalerte soient envoys. Lutilisateur devra envoyer un SMS avec la commande !!RA pour positionner la sortie I/O4 zro.
ALERT: IF OUTSTAT(4)=0 THEN GOSUB ENV SEROUT TXD,BDS,0,1,["=> ALERTE",26] OUT4,1 DELAY 5000 END IF RETURN 'ENVOI ETAT DES ENTREES '----------------------

Appel du sous-programme ENV pour la composition du SMS spciant ltat des 4 entres. Le caractre 26dec soit <EOF> dclenche lenvoi du SMS.
ETAT: GOSUB ENV SEROUT TXD,BDS,0,1,[26] DELAY 5000 RETURN
DUNOD La photocopie non autorise est un dlit.

'Modification du numro utilis pour lenvoi des SMS '---------------------------------------------------

Le numro contenu dans la commande !!N,06xxxxxxxx est sauvegard dans la mmoire eeprom du PicBasic aux adresses FF6hex FFFhex. Cest ce numro qui sera utilis pour lexpdition des SMS.
MAJNUM: i=2 FOR j=&HFF6 TO &HFFF EEWRITE j,SMS(i) i=i+1 NEXT j 'ENVOI DUN SMS CONTENANT LETAT DES 4 ENTREES '---------------------------------------------

171

INTERFACES GSM
Si la variable SMS(2) contient une virgule, cest quil sagit de la commande !!E?,06xxxxxxxx, le programme envoie alors le SMS au numro indiqu par les variables SMS(3) SMS(12). Pour tous les autres cas, le numro utilis est celui situ dans la mmoire eeprom du PicBasic, aux adresses FF6hex FFFhex. Le message expdi sur le rseau GSM contient ltat logique en cours des 4 entres de la carte.
ENV: SEROUT TXD,BDS,0,1,["AT+CMGS=",34] IF SMS(2)="," THEN FOR i=3 TO 12 SEROUT TXD,BDS,0,1,[SMS(i)] NEXT i ELSE FOR j=&HFF6 TO &HFFF num=EEREAD(j) SEROUT TXD,BDS,0,1,[num] NEXT j END IF SEROUT TXD,BDS,0,1,[34,13] DELAY 1000 SEROUT TXD,BDS,0,1,["ETAT DES ENTREES : "] FOR i=8 TO 11 n=i+41 IF IN(i)=0 THEN SEROUT TXD,BDS,0,1,["E",n,"=ON "] ELSE SEROUT TXD,BDS,0,1,["E",n,"=OFF "] END IF NEXT i RETURN

'EFFACE LE SMS EN MEMOIRE '------------------------

Cette partie du programme permet de systmatiquement effacer le SMS en mmoire, ainsi le prochain SMS rceptionn aura toujours le mme index. Ceci vite de prvoir une incrmentation de la variable index et surtout de saturer la mmoire utilise. Notez que cette partie de programme est appele mme si aucun SMS nest effacer, le ME rpond par un message derreur qui est ignor par le programme.
RAZ: SEROUT TXD,BDS,0,1,["AT+CMGD="] FOR i=0 TO 2 IF index(i)>=48 AND index(i)<=57 THEN SEROUT TXD,BDS,0,1,[index(i)] NEXT i SEROUT TXD,BDS,0,1,[13] DELAY 1000 GOTO DEBUT

172

CHAPITRE

RALISATIONS LECTRONIQUES
Test du montage Dans un premier temps il est prudent de tester le montage laide dun PC avant dy relier un tlphone. Ralisez un cble RS232 laide dun cordon comportant 3 conducteurs et de 2 connecteurs DB9 femelles cbler.
Reliez le montage au port srie du PC. Ouvrez une session du logiciel Hyper Terminal, vous pouvez reprendre le chier Interfaces GSM.lnk prsent dans le chapitre 4. Rappelons que la vitesse de transmission est de 9 600 bauds, 8 bits de donnes et pas de contrle de ux. Alimentez le montage, aussitt les caractres AT doivent apparatre sur lcran du PC. Rpondez dans les 2 secondes qui suivent en tapant les caractres OK, suivis dun retour chariot. La commande dinitialisation du mode TEXT AT+CMGF=1 doit safcher lcran ; rpondez aussi par OK et un retour chariot. Vous devez voir apparatre la commande AT+CMGR=900 (en admettant que index est x 900), rpondez dans les 5 secondes qui suivent en tapant la commande !!E ? . Vous devez voir apparatre lcran les instructions permettant lenvoi dun SMS contenant ltat logique des 4 entres. Appliquez maintenant un tat logique sur les entres correspondant celui des interrupteurs. Aussitt la Led L5 doit sallumer. Vous devez voir apparatre lcran les instructions permettant lenvoi dun SMS contenant ltat logique des 4 entres suivi cette fois de la phrase => ALERTE . la prochaine apparition de la commande AT+CMGR=900 vous pouvez tester la commande !!RA qui doit provoquer lextinction de la Led L5. Si tout fonctionne correctement vous pouvez relier votre tlphone ou terminal GSM au montage.

DUNOD La photocopie non autorise est un dlit.

Rsum des points importants Voir Tableau 5.22.

4 entres analogiques
Voici une carte capable de convertir 4 tensions analogiques en 4 donnes numriques codes sur 8 bits et denvoyer le rsultat par SMS sur demande de lutilisateur. La carte envoie galement un SMS dalerte lorsquune tension dpasse un seuil pralablement programm.

Schma lectrique Voir Figure 5.25.


Le PicBasic 3B possde 5 entres analogiques disponibles sur les broches AD0 AD4. Dans le cadre de notre application nous nous limiterons lacquisition de 4 tensions analogiques sur les

173

INTERFACES GSM
Tableau 5.22.
4 ENTRES LOGIQUES Conguration Cavalier J1 mettre en place uniquement si vous utilisez un cble DATA LINK du commerce 4 mini-interrupteurs, lorsque ltat logique est gal celui des 4 entres un SMS dalerte est envoy Parties du programme PicBasic modier Code PIN (7208 par dfaut) Mmoire lecture SMS <mem1> (ME par dfaut) Index du prochain SMS reu (900 par dfaut) Numro de tlphone utilis par dfaut pour lenvoi des SMS Action du montage Un SMS contenant ltat logique des 4 sorties est envoy au numro prsent dans la mmoire eeprom du PicBasic Modie dans la mmoire eeprom du PicBasic le numro utilis pour lenvoi des SMS Un SMS contenant ltat logique des 4 sorties est envoy au numro indiqu Autorise le montage envoyer dautres SMS dalerte

Commande SMS reue !!E? !!N,06xxxxxxxx !!E?,06xxxxxxxx !!RA

entres AD0 (broche2) AD3 (broche5). La valeur de la tension lire doit tre comprise entre 0 et + 5 V. Il est impratif que la tension ne dpasse pas la barre des + 5 V, sous peine dendommager le PicBasic. Pour lacquisition de tensions suprieures + 5 V il est prvu sur la carte des emplacements pour ajouter les rsistances R12 R15, chaque rsistance associe celle existante forme un pont diviseur de tension. titre dexemple tudions le cas de lentre E1 (gure 5.26). Le raisonnement est bien entendu similaire pour les trois autres entres de la carte. La tension AD0 applique au CAN du PicBasic se calcule ainsi : AD0 = [R12/(R12 + R8)] E1. Pour chaque valeur de E1 en entre on souhaite connatre la rsistance R12 utiliser, il nous faut donc une fonction de la forme R12 = f(E1). On sait que lorsque E1 est au maximum on doit toujours avoir AD0 = + 5 V. On en dduit la formule suivante : R12 = (5 R8)/(E1 5). Par exemple si lon souhaite mesurer une tension comprise entre 0 et + 10 V, on aura R12 = (5 R8)/(10 5) do R12 = R8. Pour une tension comprise entre 0 et + 15 V on aura R12 = R8/10. Notez la prsence dun condensateur de 22 nF qui limine les variations brusques de la tension mesurer (ltre passe bas).

174

DUNOD La photocopie non autorise est un dlit.

RALISATIONS LECTRONIQUES

175

CHAPITRE

Figure 5.25. Schma de la tlcommande 4 entres analogiques.

INTERFACES GSM

Figure 5.26. Entre E1.

Avec la version du PicBasic que nous utilisons, la rsolution du convertisseur est de 10 bits ; cela signie que le PicBasic convertit une tension en un nombre binaire compos de 10 bits. La prcision de la mesure est donc gale 5/210 = 0,005 V. Rappelons la relation qui permet partir de la valeur binaire de calculer la tension : V = (D 5)/210, V est la tension mesure exprime en volts, D est la donne exprime en dcimal calcule par le PicBasic. Par exemple si D = 512 cela signie que la tension mesure est gale 2,5 V. Linstruction basic qui permet de raliser une conversion est ADIN(port), avec port compris entre 0 et 3. Comme nous lavons dit dans lintroduction, la carte doit envoyer un SMS ds lors que la tension mesure dpasse un seuil pralablement programm par lutilisateur. Dans un premier temps pour signaler le dpassement du seuil sur chacune des entres, nous utilisons 4 Led, associes bien entendu des rsistances de limitation, sur les broches I/O8 I/O11 utilises en sorties.

Programme PICBASIC : 4ea.bas Comme le PicBasic doit la fois traiter larrive dun ventuel SMS, et envoyer un SMS dans le cas o une tension dpasse le seuil dni par lutilisateur, nous allons utiliser la mthode de programmation mise en uvre pour le montage 4 sorties sur triacs . Comme le PicBasic ne possde pas dinterruption programme lors de larrive dune donne sur son entre srie, il est ncessaire quil scrute en permanence la ligne RxD dans lattente du signal envoy par le ME concernant larrive dun SMS, ce qui nest pas possible dans notre application. Priodiquement, cest le TE qui va consulter la mmoire du ME pour savoir si un nouveau SMS y est stock. Entre deux consultations le PicBasic vriera que chacune des tensions mesures est infrieure au seuil correspondant.
Le programme ci-aprs est prvu pour lacquisition de tensions comprises entre 0 et + 5 V. Il est donc inutile dimplanter les rsistances R12 R15 sur la carte. Toutefois si les rsistances en question sont en place il sufrait de multiplier le rsultat de la conversion par un coefcient. Par exemple si vous mesurez une tension comprise entre 0 et + 10 V il faut multiplier par 2 le rsultat obtenu par le CAN du PicBasic pour retrouver la tension dentre.

176

CHAPITRE

RALISATIONS LECTRONIQUES

Liste des composants R1, R4 R7 : 470 R2, R3 : 10 k R8 R11 : 47 k R12 R15 : rsistance prvoir si la tension mesurer est suprieure + 5 V C1 : 100 nF (pas de 2,54 mm) C2, C3 : 22 pF / cramique C4, C10 : 100 nF / LCC jaune C5, C6, C7, C8 : 1 F / tantale / 15 V C9 : 220 F / lectrolytique / 15 V C11 C14 : 22 nF / cramique D1 : diode 1N4002 D2 : diode 1N4148 L, L1 L4 : Led standard Q : quartz 20 MHz REG : rgulateur 7805

DUNOD La photocopie non autorise est un dlit.

Figure 5.27. (en haut) Circuit imprim. Figure 5.28. (en bas) Implantation des composants. BUZ : buzzer piezzo (sans lectronique intgre) J1 : barrette HE10 2 contacts + cavalier CN1 : bornier vis 2 plots CN2 : connecteur DB9 mle pour CI / coud 90 CN3 : connecteur pour cble de programmation (LEXTRONIC) CN4 : connecteur pour cran LCD (LEXTRONIC) (facultatif) IC1 : PICBASIC PB-3B (LEXTRONIC) + support DIL 28 broches (troit) IC2 : MAX232 + support DIL 16 broches

177

INTERFACES GSM
'DECLARATION DES CONSTANTES '-------------------------CONST BDS = 103 CONST RXD = 17 CONST TXD = 16 'DECLARATION DES VARIABLES '------------------------DIM index(3) AS BYTE DIM SMS(13) AS BYTE DIM i AS BYTE DIM j AS INTEGER DIM n AS BYTE DIM FLAG AS BYTE DIM seuil(4) AS BYTE DIM num AS BYTE DIM DIM DIM DIM DIM D AS INTEGER V AS INTEGER V1 AS INTEGER V2 AS INTEGER V3 AS INTEGER

'TEST LIAISON SERIE '-----------------i=0 TEST: BEEP 4 SEROUT TXD,BDS,0,1,["AT",13] SERIN RXD,BDS,0,2000,TEST,[WAIT("OK"),i] IF i=0 THEN GOTO TEST 'SELECTION DE lALPHABET GSM '--------------------------SEROUT TXD,BDS,0,1,["AT+CSCS=",34,"GSM",34,13] DELAY 500 'INITIALISATION DU ME EN MODE TEXT '--------------------------------SEROUT TXD,BDS,0,1,["AT+CMGF=1",13] DELAY 500 'INITIALISATION DES VARIABLES '----------------------------

Comme nous lavons dit plus haut, la mmoire de stockage et lindex sont gs. Il faut donc dterminer ces deux paramtres lavance. Concernant la mmoire <mem1>, on considre que les SMS envoys par les particuliers ne possdent pas de classe. Cela signie que le mobile qui reoit ce genre de SMS le stocke dans la mmoire ME. Les autres types de mmoire sont surtout utiliss

178

CHAPITRE

RALISATIONS LECTRONIQUES
par les oprateurs. Si votre tlphone le permet vous pouvez utiliser le paramtre MT qui permet aux commandes de lecture de SMS de travailler avec toutes les mmoires. Ici nous avons choisi la mmoire du tlphone do AT+CPMS= ME . De mme, la variable index doit tre initialise avec lindex que portera le prochain SMS rceptionn. Il correspond au premier emplacement de libre dans la mmoire slectionne. Pour le dterminer, vous pouvez utiliser le logiciel convertSMS2 , aprs avoir slectionn la mmoire soit ME dans notre cas, cliquez sur le bouton Tous il suft de relever lindex du premier emplacement de libre. Lindex par dfaut utilis ici est x 900. Si vous avez un index cod sur un ou deux chiffres, il suft de mettre les variables non utilises nul. Par exemple si index = 1, il faudra modier le programme comme ceci : index(0)="":index(1)="":index(2)="1". Il faut dans cette partie dnir galement les seuils des tensions qui dclencheront lenvoi dun SMS. Chaque entre possde son propre seuil exprim en dcimal. Attention comme il nest pas possible de dclarer une variable de type tableau en INTEGER, les valeurs doivent tre comprises entre 0 et 255. Voici la relation qui permet de calculer la valeur dcimale code sur 8 bits en fonction de la tension : D = (V 28)/5, par exemple si vous dsirez quun SMS dalerte soit envoy si la tension mesure sur lentre E1 dpasse 2,5 V, il vous faut initialiser la variable seuil(0) 127.
SEROUT TXD,BDS,0,1,["AT+CPMS=",34,"ME",34,13] DELAY 500 index(0)="9":index(1)="0":index(2)="0" seuil(0)=127:seuil(1)=127:seuil(2)=127:seuil(3)=127 BYTEOUT 1,&b00001111 'INITIALISATION N TELEPHONE UTILISE PAR DEFAUT POUR LENVOI DES SMS '---------------------------------------------------------------

DUNOD La photocopie non autorise est un dlit.

Le numro de tlphone utilis par dfaut pour envoyer des SMS est initialis dans la mmoire eeprom du PicBasic. Pour ne pas interfrer avec la partie programme, le stockage se fait dans les 10 derniers emplacements de la mmoire de FF6hex FFFhex. Cette mmorisation ne se ralise quune seule fois car le programme teste avant si ladresse FF6hex est vide (notez quun emplacement vide contient la donne FFhex).
IF EEREAD(&HFF6)=&HFF THEN EEWRITE &HFF6,"0" EEWRITE &HFF7,"6" EEWRITE &HFF8,"x"

179

INTERFACES GSM
EEWRITE EEWRITE EEWRITE EEWRITE EEWRITE EEWRITE EEWRITE END IF &HFF9,"x" &HFFA,"x" &HFFB,"x" &HFFC,"x" &HFFD,"x" &HFFE,"x" &HFFF,"x"

'INITIALISATION DES VARIABLES (suite) '-----------------------------------DEBUT: FLAG=0 FOR i=0 TO 12 SMS(i)=0 NEXT i 'COMPARAISON TENSIONS '--------------------

Dans un premier temps le PicBasic regarde si au moins un des 4 seuils programms est dpass. Si cette condition est vrie et que la Led de signalement correspondante est inactive, le sousprogramme ENV est appel.
FOR i=0 TO 3 n=i+8 D=ADIN(i) D=D/4 IF D>=SEUIL(i) AND OUTSTAT(n)=1 THEN FLAG=1 NEXT i IF FLAG=1 THEN GOSUB ENV 'REGARDE SI RECEPTION DUN SMS '-----------------------------

Le programme grce la commande AT+CMGR regarde si lemplacement mmoire indiqu par lindex contient un SMS. Si lemplacement est vide le programme saute ltiquette RAZ. Dans le cas contraire si le texte contient les caractres !! , les 13 caractres suivants, qui contiennent la commande, sont stocks dans la variable SMS, sinon le programme saute ltiquette RAZ.
SEROUT TXD,BDS,0,1,["AT+CMGR="] FOR i=0 to 2 IF index(i)>=48 AND index(i)<=57 THEN SEROUT TXD,BDS,0,1,[index(i)] NEXT i SEROUT TXD,BDS,0,1,[13] SERIN RXD,BDS,0,5000,SUITE,[WAIT("!!"),SMS(0)~13] SUITE: IF SMS(0)=0 THEN GOTO RAZ

180

CHAPITRE

RALISATIONS LECTRONIQUES
FOR i=0 TO 10 BEEP 4 NEXT i 'GESTION DES SMS RECEPTIONNES '----------------------------

Seules les deux premires lettres constituant la commande reue par SMS sont vries par le programme. Si les lettres E? sont reconnues, le sous-programme ENV est appel. Si les lettres N, sont reconnues, le sous-programme MAJNUM est appel. Si ce sont les lettres RA , les 4 Led qui mmorisent le fait quun message dalerte a t envoy sont remises zro.
IF SMS(0)="E" AND SMS(1)="?" THEN GOSUB ENV IF SMS(0)="N" AND SMS(1)="," THEN GOSUB MAJNUM IF SMS(0)="R" AND SMS(1)="A" THEN BYTEOUT 1,&b00001111 GOTO RAZ 'ENVOI DUN SMS CONTENANT LETAT DES 4 ENTREES '---------------------------------------------

Si la variable SMS(2) contient une virgule, cest quil sagit de la commande !!E?,06xxxxxxxx, le programme envoie alors le SMS au numro indiqu par les variables SMS(3) SMS(12). Pour tous les autres cas, le numro utilis est celui situ dans la mmoire eeprom du PicBasic, aux adresses FF6hex FFFhex. Le message expdi sur le rseau GSM indique la valeur de la tension mesure en volts (0 + 5 V) sur chacune des 4 entres de la carte. Dans le cas o la tension dpasse le seuil programm le message => seuil atteint est ajout. La Led de signalisation correspondante est active pour viter lenvoi dautres SMS. Rappelons que la commande !!RA permet de remettre zro les 4 Led.
DUNOD La photocopie non autorise est un dlit.

ENV:

SEROUT TXD,BDS,0,1,["AT+CMGS=",34] IF SMS(2)="," THEN FOR i=3 TO 12 SEROUT TXD,BDS,0,1,[SMS(i)] NEXT i ELSE FOR j=&HFF6 TO &HFFF num=EEREAD(j) SEROUT TXD,BDS,0,1,[num] NEXT j END IF SEROUT TXD,BDS,0,1,[34,13] DELAY 1000 SEROUT TXD,BDS,0,1,["TENSIONS MESUREES : "] FOR i=0 TO 3

181

INTERFACES GSM
n=i+48 D=ADIN(i) GOSUB CONV SEROUT TXD,BDS,0,1,["E",n,"=+",V1,",",V2,V3,"v "] n=i+8 IF D>=SEUIL(i) AND OUTSTAT(n)=1 THEN SEROUT TXD,BDS,0,1,["=> ALERTE "] OUT n,0 ELSE IF OUTSTAT(n)=0 THEN SEROUT TXD,BDS,0,1,["(seuil atteint) "] END IF NEXT i SEROUT TXD,BDS,0,1,[26] DELAY 5000 RETURN 'Conversion DECIMAL -> TENSION -> ASCII '--------------------------------------

Ce sous-programme permet de convertir la valeur dcimale fournie par linstruction D=ADIN(i) en trois caractres ASCII. Le rsultat contenu dans la variable D est cod sur 10 bits. Pour faciliter lcriture de notre programme nous allons travailler sur 8 bits, ce qui revient diviser le rsultat par 4. La prcision de la mesure est donc gale 5/28 = 0,02 V ce qui nest dj pas si mal. La formule qui permet de calculer la tension correspondante est de la forme V = (D 5)/28. Comme le PicBasic ne peut pas travailler avec des nombres virgule, nous allons multiplier le rsultat par 100, en simpliant, la relation devient V = (100 D)/51. On obtient alors un nombre entier compris entre 0 et 500. Pour extraire le chiffre des units nomm V1 on divise le rsultat par 100, do la relation V1 = V/100. La premire dcimale nomme V2 est obtenue par la formule V2 = (V 100 V1)/10. Enn la deuxime dcimale est obtenue par la formule V3 = V (100 V1 + 10 V2), notez quil est ncessaire de dcouper cette formule en 3 sous formules pour que le PicBasic puisse effectuer le calcul de V3. Finalement on ajoute chacun des chiffres le nombre 48dec pour obtenir le caractre ASCII correspondant. Le sous-programme ENV se chargera dintercaler une virgule entre V1 et V2 lors de la composition du SMS.
CONV: D=D/4 V=(100*D)/51 V1=V/100 V3=100*V1 V2=(V-V3)/10

182

CHAPITRE

RALISATIONS LECTRONIQUES
V3=V3+(10*V2) V3=V-V3 V1=V1+48 V2=V2+48 V3=V3+48 RETURN 'MISE JOUR DU NUMRO POUR LENVOI DES SMS '------------------------------------------

Le numro contenu dans la commande !!N,06xxxxxxxx est sauvegard dans la mmoire eeprom du PicBasic aux adresses FF6hex FFFhex. Cest ce numro qui sera utilis pour lexpdition des SMS.
MAJNUM: i=2 FOR j=&HFF6 TO &HFFF EEWRITE j,SMS(i) i=i+1 NEXT j 'EFFACE LE SMS EN MEMOIRE '------------------------

Cette partie du programme permet de systmatiquement effacer le SMS en mmoire, ainsi le prochain SMS rceptionn aura toujours le mme index. Ceci vite de prvoir une incrmentation de la variable index et surtout de saturer la mmoire du tlphone. Notez que cette partie de programme est appele mme si aucun SMS nest effacer, le ME rpond par un message derreur qui est ignor par le programme.
RAZ:
DUNOD La photocopie non autorise est un dlit.

SEROUT TXD,BDS,0,1,["AT+CMGD="] FOR i=0 TO 2 IF index(i)>=48 AND index(i)<=57 THEN SEROUT TXD,BDS,0,1,[index(i)] NEXT i SEROUT TXD,BDS,0,1,[13] DELAY 1000 GOTO DEBUT

Rsum des points importants Voir Tableau 5.23.

Thermomtre
Voici certainement le premier thermomtre GSM ! Vous pouvez tout instant demander la temprature ambiante en degr Celsius que vous recevrez sous forme dun SMS. Le montage vous avertit automatiquement lorsque la temprature est ngative, idal donc

183

INTERFACES GSM
Tableau 5.23.
4 ENTRES ANALOGIQUES Conguration Cavalier J1 mettre en place uniquement si vous utilisez un cble DATA LINK du commerce Les rsistances R12 R15 sont implanter sur la carte si la tension applique aux entres peut dpasser + 5 V Parties du programme PicBasic modier Code PIN (7208 par dfaut) Mmoire lecture SMS <mem1> (ME par dfaut) Index du prochain SMS reu (900 par dfaut) Numro de tlphone utilis par dfaut pour lenvoi des SMS Seuils de dclenchement de lenvoi dun SMS (seuil(0), seuil(1), seuil(2), seuil(3)) Action du montage Un SMS contenant les 4 tensions mesures est envoy au numro spci dans la mmoire eeprom du PicBasic Modie dans la mmoire eeprom du PicBasic le numro utilis pour lenvoi des SMS Un SMS contenant les 4 tensions mesures est envoy au numro spci Autorise le montage envoyer dautres SMS dalerte

Commande SMS reue !!E? !!N,06xxxxxxxx !!E?,06xxxxxxxx !!RA

pour raliser un dtecteur de gel. Il est aussi possible de dnir une temprature maximale, lorsque celle-ci est atteinte, un SMS davertissement vous est envoy, idal pour dtecter un incendie.

Schma lectrique Ce montage utilise le circuit DS1620 du constructeur Dallas. Il sagit dun capteur de temprature ambiante contenu dans un botier DIL 8 broches. La liaison avec le PicBasic seffectue via un bus SPI ncessitant seulement trois lignes pour dialoguer : lhorloge CLK qui synchronise les donnes circulant sur DQ et RST qui permet une remise zro du circuit. Ces trois lignes sont respectivement relies aux broches I/O2 (broche 4), I/O3 (broche 5) et I/O1 (broche 3) du PicBasic. La temprature comprise entre 55 C et + 125 C avec une prcision de 0,5 C est transmise sous la forme dun mot de 9 bits en complment 2 sur la ligne DQ, le LSB (bit de poids le plus faible) est transmis en premier. Comme le PicBasic ne peut pas traiter des nombres virgule, la prcision de la mesure sera de 1 C.
On remarque que le 9e bit indique le signe, sil est gal 0 la temprature mesure est positive, sil est gal 1 la temprature

184

CHAPITRE

RALISATIONS LECTRONIQUES

DUNOD La photocopie non autorise est un dlit.

Temprature + 125 C + 25 C 0,5 C 0 C 0,5 C 25 C 55 C

Donne binaire 0 11111010 0 00110010 0 00000001 0 00000000 1 11111111 1 11001110 1 10010010

Donne Hex. 00FA 0032 0001 0000 01FF 01CE 0192

Donne Dc. 250 50 1 0 511 462 402

Figure 5.29. Schma du thermomtre GSM.

Tableau 5.24. Relation entre la donne et la temprature.

185

INTERFACES GSM

Figure 5.30. Circuit imprim.

Figure 5.31. Implantation des composants. Liste des composants R1, R5 : 470 R2, R3 : 10 k R4 : 1 k C1 : 100 nF (pas de 2,54 mm) C2, C3 : 22 pF / cramique C4, C10, C11 : 100 nF / LCC jaune C5, C6, C7, C8 : 1 F / tantale / 15 V C9 : 220 F / lectrolytique / 15 V D1 : diode 1N4002 D2 : diode 1N4148 L, L1 : Led standard Q : quartz 20 MHz REG : rgulateur 7805

BUZ : buzzer piezzo (sans lectronique intgre) J1 : barrette HE10 2 contacts + cavalier CN1 : bornier vis 2 plots CN2 : connecteur DB9 mle pour CI / coud 90 CN3 : connecteur pour cble de programmation (LEXTRONIC) CN4 : connecteur pour cran LCD (LEXTRONIC) (facultatif) IC1 : PICBASIC PB-3B (LEXTRONIC) + support DIL 28 broches (troit) IC2 : MAX232 + support DIL 16 broches IC3 : DS1620 + support DIL 8 broches

186

CHAPITRE

RALISATIONS LECTRONIQUES
est ngative. Dans le cas dune temprature positive le calcul est trs simple, il suft de diviser la donne par deux. Dans le cas dune temprature ngative, il faut prendre en compte les 8 premiers bits et les soustraire 255 puis diviser le rsultat par deux. Prenons titre dexemple la donne 1 11001110, le 9e bit est 1, donc il sagit dune temprature ngative. On prend les 8 autres bits soit 11001110bin = 206dec. On effectue lopration 255 206 = 49, 49/2 = 24,5 soit 25.

Programme PicBasic : . thermo.bas


'DECLARATION DES CONSTANTES '-------------------------CONST BDS = 103 CONST RXD = 17 CONST TXD = 16 'DECLARATION DES VARIABLES '------------------------DIM index(3) AS BYTE DIM SMS(13) AS BYTE DIM i AS BYTE DIM j AS INTEGER DIM num AS BYTE

La variable T mmorise la temprature courante. TH mmorise le seuil de temprature haute. FLAG_TH et FLAG_TB indiquent si un SMS de dpassement de seuil haut ou bas a t envoy.
DIM DIM DIM DIM T AS INTEGER TH AS INTEGER FLAG_TH AS BYTE FLAG_TB AS BYTE

DUNOD La photocopie non autorise est un dlit.

'INITIALISATION DES VARIABLES '----------------------------

La donne index nest pas dtermine automatiquement, il faudra donc linitialiser (900 par dfaut), il en va de mme pour la mmoire ( ME par dfaut). Le seuil de temprature haute TH est ici x 25 C, vous pouvez bien entendu le modier dans une plage allant de 1 125 C. La ligne qui suit effectue un dcalage gauche de la donne TH, ce qui correspond une multiplication par deux. Les indicateurs de dpassement de seuil sont initialiss zro.
index(0)="9":index(1)="0":index(2)="0" TH=25 TH=(TH<<1) FLAG_TH=0 FLAG_TB=0

187

INTERFACES GSM
'INITIALISATION N TELEPHONE UTILISE PAR DEFAUT POUR LENVOI DES SMS '---------------------------------------------------------------

Le numro de tlphone utilis par dfaut pour envoyer des SMS est initialis dans la mmoire eeprom du PicBasic. Pour ne pas interfrer avec la partie programme, le stockage se fait dans les 10 derniers emplacements de la mmoire de FF6hex FFFhex. Cette mmorisation ne se ralise quune seule fois car le programme teste avant si ladresse FF6hex est vide (notez quun emplacement vide contient la donne FFhex).
IF EEREAD(&HFF6)=&HFF THEN EEWRITE &HFF6,"0" EEWRITE &HFF7,"6" EEWRITE &HFF8,"x" EEWRITE &HFF9,"x" EEWRITE &HFFA,"x" EEWRITE &HFFB,"x" EEWRITE &HFFC,"x" EEWRITE &HFFD,"x" EEWRITE &HFFE,"x" EEWRITE &HFFF,"x" END IF 'TEST LIAISON SERIE '-----------------i=0 TEST: BEEP 9 SEROUT TXD,BDS,0,1,["AT",13] SERIN RXD,BDS,0,2000,TEST,[WAIT("OK"),i] IF i=0 THEN GOTO TEST 'SELECTION DE lALPHABET GSM '--------------------------SEROUT TXD,BDS,0,1,["AT+CSCS=",34,"GSM",34,13] DELAY 500 'CODE PIN '--------

En principe le code PIN qui autorise lutilisation du tlphone doit tre compos chaque mise sous tension. Avec un tlphone classique vous pouvez le saisir partir du clavier. Ce qui nest plus possible si vous utilisez un terminal GSM intgr, pour la simple et bonne raison quil ne dispose pas de clavier ! Linstruction AT+CPIN suivie de votre code PIN est dans ce cas incontournable.
SEROUT TXD,BDS,0,1,["AT+CPIN=",34,"7208",34,13] DELAY 500

188

CHAPITRE

RALISATIONS LECTRONIQUES
'INITIALISATION DU ME (MODE TEXT) '-------------------------------SEROUT TXD,BDS,0,1,["AT+CMGF=1",13] DELAY 500 SEROUT TXD,BDS,0,1,["AT+CPMS=",34,"ME",34,13] DELAY 500 'PROGRAMME PRINCIPAL '-------------------DEBUT: 'Initialisation variable tableau SMS ' FOR i=0 TO 12 SMS(i)=0 NEXT i 'Mesure de la temprature '

Dans un premier temps le PicBasic demande quelle est la temprature, au circuit DS1620, en envoyant sur le bus SPI linstruction AAhex laide de linstruction spcique SHIFTOUT. Cette instruction gnre un signal dhorloge de synchronisation sur la sortie I/O2, tout en venant crire sriellement les donnes prsentent sur lentre I/O3. Lavant dernier paramtre de la commande dnit le mode dcriture, plac zro il indique que le LSB est prioritaire. Pour lire la rponse donne par le DS1620 il faut ensuite utiliser linstruction SHIFTIN, les lignes dhorloge et de donne sont identiques, le dernier paramtre indique la taille en nombre de bits de la donne rcupre ici positionne 9. Les instructions OUT 1,1 et OUT 1,0 assure linitialisation du capteur de temprature avant et aprs sa consultation.
DUNOD La photocopie non autorise est un dlit.

OUT 1,1 SHIFTOUT 2,3,0,&HAA T=SHIFTIN(2,3,0,9) OUT 1,0 'Regarde si un des seuils de T est franchi '

Si la temprature mesure est suprieure 255, cela signie que le 9e bit est positionn 1, donc quil sagit dune temprature ngative, le sous-programme ALERT est alors appel. Si la temprature mesure est positive et suprieure au seuil dni par TH, le sous-programme ALERT est aussi appel.
IF T>255 THEN GOSUB ALERT

189

INTERFACES GSM
ELSE IF T>TH THEN GOSUB ALERT END IF 'Regarde si nouveau SMS '

La mmoire du ME spcie par la donne index est consulte pour savoir si un nouveau SMS est arriv.
SEROUT TXD,BDS,0,1,["AT+CMGR="] FOR i=0 to 2 IF index(i)>=48 AND index(i)<=57 THEN SEROUT TXD,BDS,0,1,[index(i)] NEXT i SEROUT TXD,BDS,0,1,[13] SERIN RXD,BDS,0,5000,SUITE,[WAIT("!!"),SMS(0)~13] SUITE: IF SMS(0)=0 THEN GOTO RAZ FOR i=0 TO 10 BEEP 9 NEXT i 'Envoi de la temprature courante '

Si les deux premires lettres de la commande rceptionne sont T et ? un SMS contenant la temprature courante est envoy. Sil sagit des lettres T et R la mmorisation des seuils de dpassement FLAG_TH et FLAG_TB sont mis zro. Le code ci-dessous gnre le SMS qui contient la temprature ambiante mesure, le seuil de dtection temprature haute et le numro de tlphone utilis pour lenvoi des SMS dalertes. Il fait notamment appel aux sous-programmes THM pour la conversion dune temprature ngative (T > 255) ou THP pour la conversion dune temprature positive (T < 255).
IF SMS(0)="T" AND SMS(1)="?" THEN GOSUB NUMERO IF T>255 THEN GOSUB THM ELSE GOSUB THP j=(TH>>1) SEROUT TXD,BDS,0,1,[" / Seuil Haut = +",DEC(j,3,1),"'C"] SEROUT TXD,BDS,0,1,[" / Numero dalerte : "] FOR j=&HFF6 TO &HFFF num=EEREAD(j) SEROUT TXD,BDS,0,1,[num] NEXT j SEROUT TXD,BDS,0,1,[26] END IF 'Remise zro des flags '

190

CHAPITRE

RALISATIONS LECTRONIQUES
Si les deux premires lettres de la commande rceptionne sont T et R la mmorisation des seuils de dpassement FLAG_TH et FLAG_TB sont mis zro. La Led de signalement est teinte.
IF SMS(0)="T" AND SMS(1)="R" THEN FLAG_TH=0 FLAG_TB=0 OUT 0,0 END IF 'Mise jour du seuil de temprature haut '

Il est possible de programmer par SMS la valeur du seuil haut qui dclenche lenvoi dun message dalerte. La commande est de la forme !!TH,temp, la donne temp contient la valeur de seuil comprise entre + 001 et + 125 C.
IF SMS(0)="T" AND SMS(1)="H" THEN SMS(3)=SMS(3)-48 SMS(3)=SMS(3)*100 SMS(4)=SMS(4)-48 SMS(4)=SMS(4)*10 SMS(5)=SMS(5)-48 TH=SMS(3)+SMS(4)+SMS(5) TH=(TH<<1) END IF 'Mise jour du numro utilis pour lenvoi des SMS '

DUNOD La photocopie non autorise est un dlit.

Le numro contenu dans la commande !!N,06xxxxxxxx est sauvegard dans la mmoire eeprom du PicBasic aux adresses FF6hex FFFhex. Cest ce numro qui sera utilis pour lexpdition des SMS.
IF SMS(0)="N" THEN i=2 FOR j=&HFF6 TO &HFFF EEWRITE j,SMS(i) i=i+1 NEXT j END IF 'Efface le SMS dans la mmoire du tlphone '

Cette partie du programme permet de systmatiquement effacer le SMS en mmoire, ainsi le prochain SMS rceptionn aura toujours le mme index. Ceci vite de prvoir une incrmentation de la variable index et surtout de saturer la mmoire du tlphone.

191

INTERFACES GSM
RAZ: SEROUT TXD,BDS,0,1,["AT+CMGD="] FOR i=0 to 2 IF index(i)>=48 AND index(i)<=57 THEN SEROUT TXD,BDS,0,1,[index(i)] NEXT i SEROUT TXD,BDS,0,1,[13] DELAY 5000 GOTO DEBUT

'ENVOI DU MESSAGE DALERTE GEL ou INCENDIE '-----------------------------------------

Le sous-programme ALERT gnre le SMS dalerte de dpassement des seuils. Il fait appel aux sous-programmes GEL si la temprature mesure est infrieure ou gale zro, INC si la temprature est suprieure au seuil TH x en dbut de programme (ou par SMS), condition quaucun des ags (FLAG_TB ou FLAG_TH) ne soit positionn 1.
ALERT: IF FLAG_TB<>0 OR FLAG_TH<>0 THEN RETURN GOSUB NUMERO IF T>255 THEN GOSUB GEL ELSE IF T>TH THEN GOSUB INC END IF SEROUT TXD,BDS,0,1,[26] DELAY 5000 RETURN 'NUMEROTATION POUR LENVOI DUN SMS '----------------------------------

Si la commande envoye est de la forme !!T?,06xxxxxxxx le numro utilis pour lenvoi des SMS est celui spci par la commande. Pour les autres commandes le numro utilis est celui inscrit dans la mmoire eeprom du PicBasic.
NUMERO: SEROUT TXD,BDS,0,1,["AT+CMGS=",34] IF SMS(1)="?" AND SMS(2)="," THEN FOR i=3 TO 12 SEROUT TXD,BDS,0,1,[SMS(i)] NEXT i ELSE FOR j=&HFF6 TO &HFFF num=EEREAD(j) SEROUT TXD,BDS,0,1,[num] NEXT j END IF SEROUT TXD,BDS,0,1,[34,13]

192

CHAPITRE

RALISATIONS LECTRONIQUES
DELAY 1000 RETURN 'MESSAGES DALERTES '------------------

Voici les sous-programmes GEL et INC qui font eux-mmes appel aux sous-programmes THM et THP qui ralisent la conversion de la temprature. On notera la mise 1 des variables FLAG_TB et FLAG_TH an dviter que dautres SMS dalertes ne soient envoys tant que ces mmes variables ne seront pas remises zro par la commande !!TR.
GEL: GOSUB THM SEROUT TXD,BDS,0,1,[" => RISQUE DE GEL"] FLAG_TB=1 OUT 0,1 RETURN GOSUB THP SEROUT TXD,BDS,0,1,[" => INCENDIE"] FLAG_TH=1 OUT 0,1 RETURN

INC:

'CALCUL DE LA TEMPERATURE '------------------------

Voici les sous-programmes, THM qui est charg de la conversion dune temprature ngative et THP charg de la conversion dune temprature positive.
THM: T=255 AND T T=(255-T) T=(T>>1) SEROUT TXD,BDS,0,1,["TEMPERATURE : -",DEC(T,3,1),"C"] RETURN T=(T>>1) SEROUT TXD,BDS,0,1,["TEMPERATURE : +",DEC(T,3,1),"C"] RETURN

DUNOD La photocopie non autorise est un dlit.

THP:

Rsum des points importants Voir Tableau 5.25.

193

INTERFACES GSM
Tableau 5.25.
THERMOMTRE Conguration Cavalier J1 mettre en place uniquement si vous utilisez un cble DATA LINK du commerce lments du programme PicBasic modier Code PIN (7208 par dfaut) Mmoire lecture SMS <mem1> (ME par dfaut) Index du prochain SMS reu (900 par dfaut) Numro de tlphone par dfaut pour lenvoi des SMS Seuil de temprature haute TH. Lorsque temprature > TH un SMS dalerte est envoy. Action du montage Un SMS contenant la temprature mesure est envoy au numro spci dans leeprom du PicBasic laide de la commande !!N,06xxxxxxxx Un SMS contenant la temprature mesure est envoy au numro indiqu Enregistre le numro de tlphone indiqu dans leeprom du PicBasic. Cest ce numro qui sera utilis pour lenvoi des SMS dalertes. Par dfaut le numro utilis est celui en dur dans le programme Fixe le seuil de temprature haute la valeur spcie par la donne temp (125 temp 001) Autorise le montage envoyer dautres SMS dalerte, si la temprature est ngative ou suprieure au seuil TH programm

Commande SMS reue !!T? !!T?,06xxxxxx !!N, 06xxxxxx

!!TH,temp !!TR

5.4 CARTE ENTRES/SORTIES PILOTE PAR GSM


La carte prsente ici est en quelque sorte une compilation des montages prcdents. Elle permet la commande de 32 sorties logiques rparties sur 4 ports ainsi que la lecture de 32 entres logiques rparties aussi sur 4 ports et de 8 entres analogiques rparties sur 1 port. Le pilotage de ces 72 lignes est entirement ralis par lenvoi et la rception de SMS sur le rseau de tlphonie mobile.

PicBasic
Le cur de notre carte est l encore un microcontrleur PicBasic du constructeur Coren COMFILE TECHNOLOGY. Il existe 3 familles de PicBasic, celui que nous avons choisi ici, le PICBASIC-2S, appartient la deuxime famille, il est un bon compromis entre le cot et les possibilits offertes. Ce petit module hybride au format DIP 34 broches est constitu dun PIC 16C74A-04, dun quartz de 4,19 MHz, dune mmoire eeprom

194

CHAPITRE

RALISATIONS LECTRONIQUES

24LC64 dune capacit de 8 Ko et dun petit connecteur qui permet limplantation en mmoire du programme. Sans avoir branch le fer souder, on dispose dj dune minicarte tout fait fonctionnelle. Comparativement au PicBasic 3B, le 2H dispose de 2 fois plus de mmoire programme, de 9 entres logiques et 3 entres analogiques supplmentaires. Toutefois le nombre dinstructions traites par seconde est beaucoup plus faible, 56 000 pour le 3B seulement 1 000 pour le 2S, mais cette diffrence nest pas du tout pnalisante dans le cadre de notre application.

Figure 5.32. Synoptique.

Schma lectrique
DUNOD La photocopie non autorise est un dlit.

Le schma lectrique (Figure 5.33) peut sembler complexe, au premier coup dil. Nous allons voir quil nen est rien.

Port srie Le PicBasic dispose dinstructions qui permettent dutiliser deux de ses lignes I/O pour simuler une liaison RS232. Le format des donnes transfres est 8 bits de donnes avec 1 bit de start, 1 bit de stop et sans bit de parit.
Linstruction SERIN Port, Param1, Mode, Param2, Adress, [Var1] permet dattendre la rception de donnes sous forme srie selon le protocole RS232. La broche Port attend la ou les donnes Var1 une vitesse dnie par Param1 (voir tableau 5.26). Durant cette phase le PicBasic ne peut pas effectuer dautres tches et attend la rception des donnes pendant une dure dnie par Param2.

195

INTERFACES GSM

196

CHAPITRE

RALISATIONS LECTRONIQUES

DUNOD La photocopie non autorise est un dlit.

Figure 5.33. Schma de la carte E/S pilote par GSM.

197

INTERFACES GSM

Figure 5.33 (suite). Sections alimentation et interface srie.

Si la dure dattente est dpasse, sans quaucune donne ne soit reue, le programme passera directement ladresse dnie par Adress. Le paramtre Mode nest pas utilis et doit tre positionn 0. Linstruction SEROUT Port, Param1, Mode, Param2, Adress, [Var1] permet de transmettre des donnes galement sous forme srie et au format RS232. La broche Port transmet la ou les donnes Var1 une vitesse dnie par Param1. Le paramtre Mode permet dinstaurer une temporisation entre chaque caractre mis dont la dure en millisecondes est fonction de Param2. Les donnes reues et envoyes par ces deux instructions doivent tre de type byte, cest--dire comprises entre 0 et 255. Si une donne de type integer, comprise entre 0 et 65 535, est envoye, seuls les 8 bits de poids faible seront transmis. La broche I/O5 (broche n 9) sera utilise pour recevoir les donnes srie, et la broche I/O6 (broche n 10) pour effectuer des transmissions. La vitesse de transmission a t xe 9 600 bauds, la valeur attribue au paramtre Param1 est donc 30. Comme notre carte doit pouvoir dialoguer avec le tlphone via le port srie, il faut utiliser un circuit adaptateur de signaux

198

CHAPITRE

RALISATIONS LECTRONIQUES

DUNOD La photocopie non autorise est un dlit.

Figure 5.34. Circuit imprim carte principale, rduit de 10 %.

199

INTERFACES GSM

Figure 5.35. Implantation des composants carte principale, rduite de 10 %. Liste des composants carte principale R1 : 470 R2 R9 : 220 C1 C8 : 100 nF / cramique multicouche (pas de 2,54) C9 : 220 F / 25 V / lectrolytique C10, C15 : 100 nF / LCC jaune C11 C14 : 1 F / tantale D1 : 1N4002 L1 : Led SIL1 SIL4 : rseau de rsistance 10 k (8R+commun) IC1 IC4 : 74HCT541 + support DIL 20 broches IC5 IC8 : 74HCT574 + support DIL 20 broches IC9 : MAX232 + support DIL 16 broches IC10 : PICBASIC-2S REG : rgulateur 7805 + dissipateur thermique CN1 : DB9 mle pour CI coud 90 CN2 : bornier vis 2 plots 8 barrettes femelles HE14 10 broches 2 barrettes femelles HE14 17 broches 2 barrettes mles HE14 10 broches 1 barrette mle HE14 3 broches (facultatif) 1 connecteur pour cran LCD srie (facultatif)

200

CHAPITRE

RALISATIONS LECTRONIQUES

DUNOD La photocopie non autorise est un dlit.

Liste des composants platines dessais AFF : 4 bargraphs 10 Led + support DIL 20 broches DIP : 4 dips switchs 8 interrupteurs + support DIL 16 broches L : 4 Led rouges rectangulaires R : 40 rsistances 470 C : 8 connecteurs HE10 mles 10 broches 8 barrettes mles HE14 10 broches

Figure 5.36. (en haut) Circuit imprim platines dessais. Figure 5.37. (en bas) Implantation des composants platines dessais.

201

INTERFACES GSM
du type MAX232 (IC9 sur le schma) cbl avec 4 condensateurs de 1 F, an de transformer les signaux TTL issus du PicBasic en signaux de + 10 V/ 10 V.
Tableau 5.26. Diffrentes vitesses de transmission.
Vitesse (bauds) 2 400 4 800 9 600 19 200 Param1 (instructions SERIN et SEROUT) 138 66 30 11

Protocole de communication Les commandes envoyes sous forme de SMS travers le rseau GSM sont rceptionnes par le tlphone puis transmises la carte via le port srie. Les commandes dbutent toujours par les caractres !! suivis dune lettre qui identie la commande, par exemple L pour lecture, E pour criture puis vient le numro du port concern par la commande et nalement la donne (dans le cas dune opration dcriture). Chaque paramtre est spar par une virgule (tableau 5.27).

Tableau 5.27.
Commande !!L, port !!E, port, Data !!S, port, NumBit !!R, port, NumBit !!C, port, NumBit !!T !!V

Action Lecture des 8 entres du port concern, avec 0 port 7 criture de la donne data sur le port concern, avec 4 port 7 Mise 1 de la sortie NumBit du port concern, avec 4 port 7 et 0 NumBit 7 Mise 0 de la sortie NumBit du port concern, avec 4 port 7 et 0 NumBit 7 Complmente la sortie NumBit du port concern, avec 4 port 7 et 0 NumBit 7 Effectue la lecture de toutes les entres logiques, le rsultat est envoy sous forme de 4 octets correspondants respectivement aux ports 0, 1, 2 et 3 Effectue la lecture de toutes les entres analogiques, le rsultat est envoy sous forme de 8 tensions lues sur les entres AD0 AD7

Ports E/S La carte possde pas moins de 8 ports parallles comportant chacun 8 lignes, 4 sont utilisables en entre et sont numrots de 0 3, 4 sont utilisables en sortie et sont numrots de 4 7. Chacun des 8 ports est reli 8 lignes du PicBasic. Il existe deux instructions spciques qui permettent de travailler simultanment avec des blocs de 8 lignes. Linstruction BYTEIN(Param1)

202

CHAPITRE

RALISATIONS LECTRONIQUES
permet de rcuprer la valeur de 8 entres dans un mot binaire 8 bits dont chaque bit est limage de chacune des entres. Il est possible avec le PICBASIC-2S daccder 3 blocs diffrents. Linstruction BYTEOUT Port, Val permet de sortir la valeur binaire 8 bits dune donne Val sur 8 sorties du PicBasic. Le paramtre port qui peut prendre les valeurs 1, 2 ou 3 permet daccder aux 3 blocs. Le bloc n 1 que nous utilisons comme un bus de donnes bidirectionnel laide des instructions BYTEIN et BYTEOUT est constitu des lignes I/O8 (broche n 12) I/O15 (broche n 19). Dans le cas dune opration dcriture, la donne est dabord lue sur le port srie puis recopie sur le bus de donnes qui est alors congur en sortie (instruction BYTEOUT). Dans le cas dune opration de lecture, la donne est dabord lue par le bus de donnes qui est alors congur en entre (instruction BYTEIN), puis envoye au tlphone via le port srie. Il est vident quun seul port est utilis la fois, cette slection seffectuant par lintermdiaire du bloc n 2 constitu des lignes I/O16 (broche n 20) I/O23 (broche n 27) qui est en quelque sorte utilis comme bus dadressage. Notez que la conguration des lignes du PicBasic en entre ou en sortie est automatiquement ralise. Par exemple si vous utilisez une instruction dcriture comme BYTEOUT, les lignes concernes sont congures en sortie. Avec linstruction de lecture BYTEIN les lignes concernes sont congures en entre. Sur chacune des 8 lignes du bus de donnes on trouve une rsistance de 220 charge de protger la ligne du PicBasic contre dventuelles mauvaises manipulations. Imaginons que vous effectuez une opration dcriture sur le bus de donnes alors que le bus dadressage rend actif, par exemple, le port n 0. Si par malheur une sortie du bus de donnes qui est ltat haut est relie une entre du port qui est ltat bas on obtient un court circuit qui pour consquence de dtruire le PicBasic ! Mais, comme nous avons pris le soin dinsrer une rsistance, la tension dbite par la sortie du PicBasic ne dpassera pas les 20 mA prconiss par le fabricant et le circuit sera sauv, ouf ! Entres Chaque port dentre utilise un circuit 74HCT541. La slection des ports 0, 1, 2 et 3 seffectue par les bits G1 et G2 qui sont relis respectivement I/O23 (broche 27), I/O22 (broche 26), I/O21 (broche 25) et I/O20 (broche 24). Si une de ces lignes est ltat bas loctet prsent sur lentre du 74HCT541 correspondant est recopi sur sa sortie et envoy de ce fait sur le bus de donnes qui est alors congur en entre. Si les bits G1 et G2 sont ltat haut, les sorties du 74HCT541 sont ltat de haute impdance, ce qui

DUNOD La photocopie non autorise est un dlit.

203

INTERFACES GSM
revient dire que le circuit est dconnect du bus de donnes. Les entres du 74HCT541 sont relies des rsistances de rappel. Si lentre nest pas utilise, elle est mise ltat haut par une rsistance de 10 k. Sorties Chaque port de sortie utilise un circuit 74HCT574. La slection des ports 4, 5, 6 et 7 seffectue par les broches CLK (clock) qui sont relies respectivement I/O19 (broche 23), I/O18 (broche 22), I/O17 (broche 21) et I/O16 (broche 20). Chacune des 8 entres de chaque 74HCT574 est relie au bus de donnes qui est alors congur en sortie. Si une des entres CLK est soumise un front montant, la donne prsente en entre du 74HCT574 correspondant est recopie sur sa sortie. Ltat de la sortie tant mmoris dans un tampon jusqu la prochaine criture. Port analogique Le PICBASIC-2S dispose dorigine de 8 entres analogiques AD0 AD7 possdant une rsolution de 8 bits, soit une prcision de 20 mV sur la mesure. Linstruction trs simple comme ADIN(port) permet de connatre la valeur de la tension prsente sur une broche prcise. La valeur lire doit tre imprativement comprise entre 0 et + 5 V sous peine de dtriorer le circuit. Pour la lecture de niveaux suprieurs il faudra avoir recours par exemple des ponts diviseurs de tensions ou des amplis OP cbls en diviseurs de tension. Le paramtre port correspond la broche du module qui reoit la valeur mesurer : broches 0 4 et 24 26. La valeur de la lecture est de type byte (comprise entre 0 et 255), lquation qui permet de calculer la tension est : Tension = (valeur 5)/255. Par exemple pour une valeur de 125 on obtient une tension gale 2,45 V.

Ralisation
Il faudra un minimum de vigilance lors de la ralisation, la carte comporte de nombreuses pistes proches les une des autres et relativement nes. La majorit des pastilles seront percer laide dun foret de 0,8 mm de diamtre. Seules les pastilles du bornier et du rgulateur seront percer 1,5 mm. Concernant le montage des composants, on commencera par la mise en place des 13 straps. On soudera ensuite les rsistances puis les condensateurs dont il faudra imprativement respecter la polarit, particulirement pour ceux destins au MAX232. On terminera par les supports des CI, le 7805 et le connecteur DB9. Le support du PicBasic est constitu de deux barrettes HE14 femelles de 17 contacts. Avant la mise en place des CI sur leurs supports

204

CHAPITRE

RALISATIONS LECTRONIQUES
respectifs, il est conseill de mettre le montage sous tension et de vrier la tension dalimentation laide dun voltmtre qui doit tre gale + 5 V 5 % prs.

Programme PicBasic : ces.bas


tudions maintenant en dtail le programme destin au PicBasic.
'DECLARATION DES CONSTANTES '--------------------------

Il ne faut surtout pas se priver de lutilisation des constantes qui facilitent la comprhension et la maintenance dun programme. De plus les constantes ne sont utilises que par le compilateur, elles ne prennent donc pas de place dans la mmoire du PicBasic.
'Constantes ddies la gestion du port srie '

Dclaration des constantes utilises par les instructions SERIN et SEROUT. TXD correspond la ligne I/O6 du PicBasic, RXD correspond ligne I/O5. BDS (pour bauds) dnit la vitesse de transmission ici xe 9 600 car BDS = 30.
CONST BDS = 30 CONST RXD = 5 CONST TXD = 6 'Constantes utilises pour ladressage de leeprom '

DUNOD La photocopie non autorise est un dlit.

De nombreux paramtres utiles la carte (code PIN, Mem, Index, Numro) sont sauvegards dans la mmoire eeprom du PicBasic. Les plages dadresses sont identies par des constantes, D_x dnit ladresse de dbut, F_x dnit ladresse de n.
CONST CONST CONST CONST CONST CONST CONST CONST CONST CONST CONST CONST D_FlagPort F_FlagPort D_PORT F_PORT D_PIN F_PIN D_Mem F_Mem D_Index F_Index D_Numero F_Numero = = = = = = = = = = = = &H1FE5 &H1FE8 &H1FE9 &H1FEC &H1FED &H1FF0 &H1FF1 &H1FF2 &H1FF3 &H1FF5 &H1FF6 &H1FFF

205

INTERFACES GSM
Tableau 5.28. Cartographie de la mmoire eeprom du PicBasic.

Adresse HEX 0000 0740 0741

Constante _ _ _ _

Nature Premier octet mmoire programme

Espace

1 857 octets Dernier octet mmoire programme

6 308 octets non utiliss

1FE4 1FE5 1FE6 1FE7 1FE8 1FE9 1FEA 1FEB 1FEC 1FED 1FEE 1FEF 1FF0 1FF1 1FF2 D_FlagPort _ _ F_FlagPort D_PORT _ _ F_PORT D_PIN _ _ F_PIN D_Mem _ 1er octet (Flag Port n 0) 2e octet (Flag Port n 1) 4 octets 3e octet (Flag Port n 2) 4e octet (Flag Port n 3) 1er octet (Port n 0) 2e octet (Port n 1) 4 octets 3e octet (Port n 2) 4e octet (Port n 3) 1er chiffre 2e chiffre 4 octets 3e chiffre 4e chiffre 1er caractre 2 octets 2e caractre

206

CHAPITRE

RALISATIONS LECTRONIQUES

1FF3 1FF4 1FF5 1FF6 1FF7 1FF8 1FF9 1FFA 1FFB 1FFC 1FFD 1FFE 1FFF

D_Index _ F_Index D_Numero _ _ _ _ _ _ _ _ F_Numero

1er chiffre 2e chiffre 3e chiffre 1er chiffre 2e chiffre 3e chiffre 4e chiffre 5e chiffre 10 octets 6e chiffre 7e chiffre 8e chiffre 9e chiffre 10e chiffre 3 octets

'Constantes ddies la gestion des E/S de la carte '

La constante adresse reprsente le bloc de 8 bits numro 2 (I/O16 I/O23), la constante donnee reprsente le bloc numro 1 (I/O8 I/O15). Ces deux constantes seront utilises dans le corps du programme avec les instructions BYTEIN et BYTEOUT.
CONST adresse = 2 CONST donnee = 1
DUNOD La photocopie non autorise est un dlit.

La constante MaskPort est une constante de type tableau qui contient 8 valeurs reprsentes ici en binaire. Chaque valeur est accessible par un indice, par exemple MaskPort(2)= 11010000bin. Ces valeurs seront utilises par le bus dadresse pour slectionner un des 8 ports de la carte, par exemple MaskPort(2) slectionne le port numro 2, car le bit 5 correspondant la sortie I/O21 est zro. Rappelons que les ports 0 3 sont actifs si les lignes correspondantes du bus dadressage (I/O23 I/O20) sont ltat bas. Alors que les ports 4 7 sont actifs si les lignes correspondantes du bus dadressage (I/O19 I/O16) passent de ltat bas ltat haut (front montant).
CONST BYTE MaskPort= (&b01110000,&b10110000,&b11010000, &b11100000,&b11111000,&b11110100, &b11110010,&b11110001)

207

INTERFACES GSM
'DECLARATION DES VARIABLES '------------------------'Variable ddie au stockage SMS ' DIM SMS(30) AS BYTE 'Variables ddies au pilotage des E/S de la carte ' DIM i AS BYTE DIM n AS BYTE DIM k AS BYTE DIM DATA AS BYTE DIM ValPort(4) AS BYTE DIM bin(8) AS BYTE DIM FlagPort(4) AS BYTE DIM j AS INTEGER DIM h AS INTEGER DIM j1 AS INTEGER DIM j2 AS INTEGER DIM V AS INTEGER DIM V1 AS INTEGER DIM V2 AS INTEGER DIM V3 AS INTEGER 'INITIALISATION DU BUS DADRESSE ET DE DONNEES '---------------------------------------------

Toutes les sorties de la carte sont positionnes ltat logique bas (Ports 4 7).
BYTEOUT adresse,&b11110000 BYTEOUT donnee, &b00000000 BYTEOUT adresse,&b11111111 'INITIALISATION DE LA VARIABLE TABLEAU ValPort '--------------------------------------------FOR i=0 TO 3 ValPort(i)=0 NEXT i 'TEST LIAISON SERIE '------------------

Pour sassurer que la liaison entre le montage et le tlphone est valide, nous allons envoyer la commande la plus simple qui soit : AT<CR>, le ME doit rpondre par <CR><LF>OK<CR><LF> si la liaison est correcte. Les caractres AT suivis du caractre <CR>=13dec sont envoys par la commande SEROUT. Linstruction SERIN permet dattendre lventuelle rponse OK pendant 2 000 ms

208

CHAPITRE

RALISATIONS LECTRONIQUES
(soit 2 s). Si les caractres OK sont rceptionns dans le temps donn, le caractre suivant soit <CR> est plac dans la variable i. Dans le cas contraire le programme saute la ligne repre par ltiquette TEST car i est vide. Il suft de tester le contenu de i pour savoir si la liaison est tablie. En phase de paramtrage, le montage est connect un PC, si la commande AT le PC rpond par OK suivi de la lettre P le montage se place en phase de programmation, si le PC rpond par la lettre L, cest la phase de lecture qui est active.
i=0 TEST: SEROUT TXD,BDS,0,1,["AT",13] SERIN RXD,BDS,0,2000,TEST,[WAIT("OK"),i] IF i=0 THEN GOTO TEST IF i="P" THEN GOTO PROG_EE IF i="L" THEN GOTO LECT_EE 'SELECTION DE lALPHABET GSM '--------------------------SEROUT TXD,BDS,0,1,["AT+CSCS=",34,"GSM",34,13] DELAY 500 'CODE PIN '--------

En principe le code PIN qui autorise laccs aux fonctions du tlphone doit tre compos chaque mise sous tension. Avec un tlphone classique vous pouvez le saisir partir du clavier. Ce qui nest plus possible si vous utilisez un terminal GSM intgr, pour la simple et bonne raison quil ne dispose pas de clavier ! Linstruction AT+CPIN suivie de votre code PIN est dans ce cas incontournable. Le code PIN est stock dans la mmoire eeprom du PicBasic entre les adresses D_PIN et F_PIN.
DUNOD La photocopie non autorise est un dlit.

SEROUT TXD,BDS,0,1,["AT+CPIN=",34] j1=D_PIN:j2=F_PIN GOSUB READ_EE SEROUT TXD,BDS,0,1,[34,13] DELAY 500 'MEMOIRE UTILISEE POUR LE STOCKAGE DES SMS '-----------------------------------------

La mmoire utilise pour le stockage des SMS rceptionns (<mem1>) est galement contenue dans la mmoire eeprom du PicBasic entre les adresses D_MEM et F_MEM.
SEROUT TXD,BDS,0,1,["AT+CPMS=",34] j1=D_MEM:j2=F_MEM

209

INTERFACES GSM
GOSUB READ_EE SEROUT TXD,BDS,0,1,[34,13] DELAY 500 'INITIALISATION DU ME '--------------------

Le ME est congur en mode TEXT.


SEROUT TXD,BDS,0,1,["AT+CMGF=1",13] DELAY 500 'INITIALISATION DE LA VARIABLE TABLEAU FLAGPORT '----------------------------------------------

Les 8 variables FlagPort sont charges avec les donnes lues entre les adresses D_FlagPort et F_FlagPort de leeprom. (voir la partie de programme SCRUT pour comprendre leur utilit).
i=0 FOR j=D_FlagPort TO F_FlagPort FlagPort(i)=EEREAD(j) i=i+1 NEXT j 'INITIALISATION DES VARIABLES '---------------------------DEBUT: 'Initialisation du bus de donnes '

Le bus dadresse est positionn de manire ce quaucun port ne soit slectionn. Pour des raisons de scurit, on effectue une lecture bidon du bus de donnes pour congurer les broches correspondantes du PicBasic en entres, cette prcaution vite les courts-circuits si par mgarde un des ports 0 3 est actif alors que le bus de donnes est congur en sortie.
BYTEOUT adresse,&b11110000 DATA=BYTEIN(donnee) 'Initialisation de la variable de stockage SMS ' FOR i=0 TO 29 SMS(i)=0 NEXT i 'ATTENTE SMS '-----------

210

CHAPITRE

RALISATIONS LECTRONIQUES
La lecture du SMS est provoque par la commande AT+CMGR=<index> , le paramtre Index est rcupr dans la mmoire eeprom du PicBasic. Ds la rception des caractres !! les 12 caractres suivants sont placs dans la variable SMS. Si les deux points dexclamation ne sont pas rceptionns dans les 5 s, le programme bascule sur ltiquette SCRUT.
SEROUT TXD,BDS,0,1,["AT+CMGR="] j1=D_Index:j2=F_Index GOSUB READ_EE_Index SERIN RXD,BDS,0,5000,SUITE,[WAIT("!!"),SMS(0)~12] SUITE: IF SMS(0)=0 THEN GOTO SCRUT

En ltat actuel du programme, si lon considre que le SMS envoy tait de la forme !!E,1,154 , la variable tableau SMS doit contenir ce qui est indiqu tableau 5.29 (ltat des variables SMS(7) SMS(29) nous est dans ce cas indiffrent).
SMS(0) E SMS(1) , SMS(2) 4 SMS(3) , SMS(4) 1 SMS(5) 5 SMS(6) 4

Tableau 5.29.

SMS(0) contient lidentiant de la commande, ici E pour criture. SMS(2) contient le numro du port sollicit. SMS(4), SMS(5) et SMS(6) contiennent la donne crire sur le port.
'CONVERSION ASCII -> DECIMAL '---------------------------

DUNOD La photocopie non autorise est un dlit.

Les valeurs contenues dans la variable SMS sont codes sous forme de caractres ASCII, pour calculer la valeur numrique exprime en dcimal il suft de retrancher la valeur 48dec qui est le code ASCII du chiffre zro. Par exemple si SMS(2) = 4ascii = 52dec, do SMS(2) 48dec = 52dec 48dec = 4dec. Attention cette conversion ne doit pas tre faite concernant les commandes !!N,06xxxxxxxx et !!F,xxxx.
IF SMS(0)<>"N" AND SMS(0)<>"F" THEN SMS(2)=SMS(2)-48 SMS(4)=SMS(4)-48 SMS(5)=SMS(5)-48 SMS(6)=SMS(6)-48 END IF 'AIGUILLAGE DU PROGRAMME EN FONCTION DU CONTENU DE SMS(0) '--------------------------------------------------------

211

INTERFACES GSM
Le test du contenu de la variable SMS(0) nous indique vers quelle partie le programme doit sorienter. Dans le cas o la commande reue nest pas valide, le programme bascule sur ltiquette RAZ ce qui provoque la suppression du SMS.
IF SMS(0)="L" IF SMS(0)="E" IF SMS(0)="S" IF SMS(0)="R" IF SMS(0)="C" IF SMS(0)="T" IF SMS(0)="V" IF SMS(0)="N" IF SMS(0)="F" GOTO RAZ THEN THEN THEN THEN THEN THEN THEN THEN THEN GOTO GOTO GOTO GOTO GOTO GOTO GOTO GOTO GOTO LECTURE ECRITURE SETBIT RESETBIT COMPLBIT LECTURES ANALOG MAJNUM FLAG

'LECTURE ENTREES DU PORT POINTE PAR SMS(2) '-----------------------------------------

Envoi dun SMS contenant ltat logique du port spci. Le sousprogramme NUM compose le numro de tlphone du destinataire, LEC1PORT effectue la lecture de la valeur dcimale et binaire prsente sur le port sollicit. Finalement le code ASCII 26dec=EOF est envoye sur la sortie TxD, ce qui dclenche lenvoi du SMS sur le rseau GSM.
LECTURE: GOSUB NUM GOSUB LEC1PORT SEROUT TXD,BDS,0,1,[26] DELAY 5000 GOTO RAZ 'LECTURE DE TOUTES LES ENTREES '-----------------------------

Effectue la lecture de tous les ports de la carte. Le sous-programme NUM compose le numro de tlphone du destinataire du SMS. Pour la lecture de tous les ports on fait appel 8 fois au sousprogramme LEC1PORT en incrmentant dune unit la variable SMS(2) chaque appel. Finalement le code ASCII 26dec=EOF est envoy sur la sortie TxD, ce qui dclenche lenvoi du SMS sur le rseau GSM.
LECTURES: GOSUB NUM FOR i=0 TO 7 SMS(2)=i IF i<>0 THEN SEROUT TXD,BDS,0,1,[" / "] GOSUB LEC1PORT NEXT i

212

CHAPITRE

RALISATIONS LECTRONIQUES
SEROUT TXD,BDS,0,1,[26] DELAY 5000 GOTO RAZ 'ECRITURE SUR PORT CONCERNE '-------------------------ECRITURE: 'Conversion de la valeur de consigne '

SMS(4) contient le chiffre des centaines de la valeur de consigne, SMS(5) le chiffre des dizaines et SMS(6) le chiffre des units. Les 3 lignes ci-dessous permettent de reconstituer facilement la valeur de consigne qui est ensuite enregistre dans la variable DATA.
SMS(4)=SMS(4)*100 SMS(5)=SMS(5)*10 DATA=SMS(4)+SMS(5)+SMS(6) 'Mise jour du port concern '

Lors dune opration dcriture, on commence par envoyer la valeur de consigne contenue dans DATA sur le bus de donnes. Le bus dadresse est ensuite positionn de manire ce que la donne en question soit transfre sur le port point par SMS(2). Notez que lon mmorise la valeur applique sur le port dans la variable tableau ValPort.
MAJBIT: IF SMS(2)>=4 THEN BYTEOUT donnee,DATA BYTEOUT adresse,MaskPort(SMS(2)) n=SMS(2)-4 ValPort(n)=DATA END IF GOTO RAZ 'MISE A 1 DUN BIT SUR PORT CONCERNE '-----------------------------------

DUNOD La photocopie non autorise est un dlit.

Grce au sous-programme UnBIT, la variable j contient le bit quil faut mettre 1. Pour ne mettre 1 que la sortie concerne, il faut faire un OU logique entre j et la valeur en cours sur le port.
SETBIT: GOSUB UnBIT DATA=j OR ValPort(n) GOTO MAJBIT

213

INTERFACES GSM
Exemple : dans cet exemple, seul le bit n 4 passe 1, tous les autres bits conservent leur tat.

j OU ValPort(n) DATA

0 1 1

0 1 1

0 0 0

1 0 1

0 1 1

0 1 1

0 0 0

0 0 0

'MISE A 0 DUN BIT SUR PORT CONCERNE '-----------------------------------

Grce au sous-programme UnBIT, la variable j contient le bit quil faut mettre 0. Pour ne mettre 0 que la sortie concerne, il faut faire un ET logique entre le complment de j (obtenu par 255-j) et la valeur en cours sur le port.
RESETBIT: GOSUB UnBIT DATA=(255-j) AND ValPort(n) GOTO MAJBIT

Exemple : dans cet exemple, seul le bit n 4 passe 0, tous les autres bits conservent leur tat.

j (255-j) ET ValPort(n) DATA

0 1 1 1

0 1 1 1

0 1 0 0

1 0 1 0

0 1 1 1

0 1 1 1

0 1 0 0

0 1 0 0

'INVERSE LETAT DUN BIT SUR PORT CONCERNE '-----------------------------------------

Grce au sous-programme UnBIT, la variable j contient le bit quil faut mettre 0. Pour ne mettre 0 que la sortie concerne, il faut faire un OU EXCLUSIF (XOR) entre j et la valeur en cours sur le port.
COMPLBIT: GOSUB UnBIT DATA=j XOR ValPort(n) GOTO MAJBIT

Exemple 1 : dans cet exemple, seul le bit n 4 change dtat et passe 1, tous les autres bits conservent leur tat.

214

CHAPITRE

RALISATIONS LECTRONIQUES

j XOR ValPort(n) DATA

0 1 1

0 1 1

0 0 0

1 0 1

0 1 1

0 1 1

0 0 0

0 0 0

Exemple 2 : dans cet exemple, seul le bit n 4 change dtat et passe 0, tous les autres bits conservent leur tat.
j XOR ValPort(n) DATA 0 1 1 0 1 1 0 0 0 1 1 0 0 1 1 0 1 1 0 0 0 0 0 0

'LECTURE DES 8 ENTREES ANALOGIQUES '---------------------------------

Voici la partie de programme charge de lire les 8 entres analogiques de la carte et denvoyer le rsultat sous forme de SMS. Lacquisition seffectue en deux parties car les entres analogiques ne se suivent pas (broches I/O0 I/O4 puis I/O24 I/O26). Le sous-programme CONVTENS permet de convertir la valeur lue en dcimale code sur 8 bits en une valeur code en ASCII.
ANALOG: SEROUT TXD,BDS,0,1,["ETAT DES 8 ENTREES ANALOGIQUES : "] FOR i=0 to 7 k=i IF i>4 THEN k=i+19 DATA=ADIN(k) GOSUB CONVTENS n=i+48 SEROUT TXD,BDS,0,1,["E",n,"= +",V1,",",V2,V3,"v"," "] NEXT i SEROUT TXD,BDS,0,1,[26] GOTO RAZ 'MISE A JOUR DU NUMERO UTILISE POUR LENVOI DES SMS '--------------------------------------------------

DUNOD La photocopie non autorise est un dlit.

Non seulement il est possible de modier le numro grce au logiciel CongES_GSM.exe (montage connect un PC) mais aussi par SMS (montage connect un tlphone GSM). Le numro contenu dans la commande !!N,06xxxxxxxx est sauvegard dans la mmoire eeprom du PicBasic aux adresses D_Numero F_Numero. Cest ce numro qui sera utilis pour lexpdition des SMS.

215

INTERFACES GSM
MAJNUM: i=2 FOR j= D_Numero TO F_Numero EEWRITE j,SMS(i) i=i+1 NEXT j 'POSITIONNEMENT DES FLAGS '------------------------

Les variables FlagPort peuvent tre positionnes par lenvoi dun SMS de la forme : !!F,f0f1f2f3. Si fx = 1 le port n x ne peut pas dclencher lenvoi dun SMS. Si fx = 0 le port n x peut dclencher lenvoi dun SMS. Avec 0 x 3. Si fx = ? la valeur du ag nest pas modie (voir la partie de programme SCRUT pour comprendre lutilit des ags).
FLAG: n=2 FOR i=0 TO 4 If SMS(n)<>"?" THEN FlagPort(i)=SMS(n) n=n+1 NEXT i GOTO RAZ 'EFFACE LE SMS EN MEMOIRE '------------------------

Le SMS est systmatiquement effac, laide de la commande AT+CMGD suivie de lindex, pour viter une saturation de la mmoire utilise, et une incrmentation de lindex. Du fait chaque SMS reu aura le mme index.
RAZ: SEROUT TXD,BDS,0,1,["AT+CMGD="] j1=D_Index:j2=F_Index GOSUB READ_EE_Index DELAY 500 GOTO DEBUT 'SCRUTATION DES ENTREES '----------------------

Aprs avoir vri si un nouveau SMS est prsent dans la mmoire du tlphone et, le cas chant, trait celui-ci, le PicBasic effectue une lecture des ports n 0 3 et compare les 4 valeurs lues avec celles situes entre les adresses D_PORT et F_PORT. En cas dgalit un SMS contenant ltat des entres du port est envoy, un message entre parenthses indique quil sagit dun message dalerte. Lenvoi ne peut se faire que si la variable

216

CHAPITRE

RALISATIONS LECTRONIQUES
FlagPort correspondante est zro. Lors du premier envoi la variable FlagPort est mise systmatiquement 1 pour viter que le port correspondant envoie dautres SMS. Le logiciel CongES _GSM.exe permet lutilisateur de dnir les valeurs qui dclenchent lenvoi dun SMS, il est galement possible dinhiber cette fonction en positionnant les variables FlagPort 1.
SCRUT: h=D_PORT FOR k=0 TO 3 IF FlagPort(k)="0" THEN BYTEOUT adresse,MaskPort(k) DATA=BYTEIN(donnee) IF EEREAD(h)=DATA THEN FlagPort(k)="1" GOSUB NUM SMS(2)=k GOSUB MESS1PORT SEROUT TXD,BDS,0,1,[" (Ceci est un message dalerte !)",26] END IF END IF h=h+1 NEXT k GOTO RAZ '**************************************************************** 'PROGRAMMATION DE LA CARTE AVEC UN PC '****************************************************************

DUNOD La photocopie non autorise est un dlit.

Tous les paramtres utiliss par le montage peuvent tre consults et modis dans leeprom du PicBasic grce au logiciel CongES_GSM.exe , la carte est dans ce cas connecte au port srie dun PC. Deux parties de code trs simples permettent la lecture et lcriture dans leeprom. Notez que les donnes sont prserves lorsque le montage est hors tension.
'LECTURE DES PARAMETRES SITUES EN EEPROM '---------------------------------------

Toutes les donnes situes entre les adresses D_FlagPort (1FE5hex) et F_Numero (1FFFhex) sont envoyes au PC. Le logiciel CongES_GSM.exe se charge dafcher clairement lcran les diffrents paramtres (voir copie dcran).
LEC_EE: j1=D_FlagPort:j2=F_Numero GOSUB READ_EE i=0 GOTO TEST

217

INTERFACES GSM
'ECRITURE DES DONNEES DE PARAMETRAGE DANS LEEPROM '-------------------------------------------------

En phase dcriture le logiciel CongES_GSM.exe envoie tous les paramtres au PicBasic qui les mmorise dans son eeprom, crasant ainsi les anciennes valeurs.
PROG_EE: SERIN RXD,BDS,0,5000,TEST,[WAIT("!!"),SMS(0)~30] i=0 FOR j=D_FlagPort TO F_Numero EEWRITE j,SMS(i) i=i+1 NEXT j i=0 GOTO TEST '**************************************************************** 'SOUS - PROGRAMMES '**************************************************************** 'LECTURE ENTREES DU PORT POINTE PAR SMS(2) '-----------------------------------------

Le sous-programme LEC1PORT effectue la lecture dun seul port. Le numro du port concern est contenu dans la variable SMS(2). Le texte du SMS est compos par le sous-programme MESS1PORT. Notez que pour les ports 4 7 la lecture seffectue dans la variable tableau ValPort.
LEC1PORT: IF SMS(2)<4 THEN BYTEOUT adresse,MaskPort(SMS(2)) DATA=BYTEIN(donnee) ELSE n=SMS(2)-4 DATA=ValPort(n) END IF GOSUB MESS1PORT RETURN 'COMPOSITION DU TEXTE DU SMS '---------------------------

Composition du SMS, on rappelle le numro du port contenu par la donne SMS(2), la donne lue sur le port contenu par DATA est afche en dcimal et en binaire (tat logique pour chaque entre, voir sous-programme CONVBIN). On afche galement la valeur du Flag.

218

CHAPITRE

RALISATIONS LECTRONIQUES
MESS1PORT: SEROUT TXD,BDS,0,1,["PORT "] n=SMS(2)+48 SEROUT TXD,BDS,0,1,[n," = ",DEC(DATA,3,1)," "] GOSUB CONVBIN IF SMS(0)<>"T" THEN SEROUT TXD,BDS,0,1,["=> "] FOR i=0 TO 7 n=i+48 SEROUT TXD,BDS,0,1,["S",n,"=",bin(i)] IF i<>7 THEN SEROUT TXD,BDS,0,1,[", "] NEXT i END IF IF SMS(2)<4 THEN SEROUT TXD,BDS,0,1,[" (Flag=",FlagPort (SMS(2)),") "] RETURN 'PREPARE LENVOI DU SMS (composition du numro de tlphone) '-----------------------------------------------------------

Le numro de tlphone utilis est rcupr dans la mmoire eeprom du PicBasic partir de ladresse D_Numero jusqu F_Numero.
NUM: SEROUT TXD,BDS,0,1,["AT+CMGS=",34] j1=D_Numero:j2=F_Numero GOSUB READ_EE SEROUT TXD,BDS,0,1,[34,13] DELAY 1000 RETURN 'CONVERSION LOGIQUE DEC -> BIN -> ASCII '------------------------------------- DUNOD La photocopie non autorise est un dlit.

Sous-programme qui convertit la donne contenue dans la variable DATA en valeurs binaires : b(0) b(7). Notez la prsence de linstruction j<<1 qui effectue une rotation gauche de la donne j, ce qui est quivalent une multiplication par 2 de j.
CONVBIN: j=1 FOR k=0 TO 7 n=DATA AND j IF n=j THEN bin(k)="1" ELSE bin(k)="0" j=(j<<1) NEXT k RETURN 'CONVERSION ANALOGIQUE DEC -> BIN -> ASCII '-----------------------------------------

219

INTERFACES GSM
Ce sous-programme permet de convertir la valeur dcimale fournie par linstruction DATA=ADIN(i) en trois caractres ASCII. La formule qui permet de calculer la tension correspondante est de la forme V = (D 5)/28. Comme le PicBasic ne peut pas travailler avec des nombres virgule, nous allons multiplier le rsultat par 100, en simpliant, la relation devient V = (100 D)/51. On obtient alors un nombre entier compris entre 0 et 500. Pour extraire le chiffre des units nomm V1 on divise le rsultat par 100, do la relation V1 = V/100. La premire dcimale nomme V2 est obtenue par la formule V2 = (V 100 V1)/10. Enn la deuxime dcimale est obtenue par la formule V3 = V (100 V1 + 10 V2), notez quil est ncessaire de dcouper cette formule en 3 sous formules pour que le PicBasic puisse effectuer le calcul de V3. Finalement on ajoute chacun des chiffres le nombre 48dec pour obtenir le caractre ASCII correspondant.
CONVTENS: V=(100*DATA)/51 V1=V/100 V3=100*V1 V2=(V-V3)/10 V3=V3+10*V2 V3=V-V3 V1=V1+48 V2=V2+48 V3=V3+48 RETURN 'MASQUE UTILISE POUR MODIFIER 1 BIT '----------------------------------

Le masque utilis pour les oprations sur 1 seul bit est ralis par un simple dcalage gauche dune variable j initialise 1. Le nombre de dcalage est dni par SMS(4) qui contient le numro de la sortie modier. La boucle produit un dcalage gauche de trop, do la prsence de la formule j=j/2.
UnBIT: j=&b00000001 FOR i=0 TO SMS(4) j=(j<<1) NEXT i j=j/2 n=SMS(2)-4 RETURN 'LECTURE DE LEEPROM ENTRE LES ADRESSES j1 et j2 '-----------------------------------------------

220

CHAPITRE

RALISATIONS LECTRONIQUES
READ_EE: FOR j=j1 TO j2 n=EEREAD(j) SEROUT TXD,BDS,0,1,[n] NEXT RETURN 'LECTURE DE LA DONNEE INDEX ENTRE LES ADRESSES j1 et j2 DE LEEPROM '---------------------------------------------------------------

la diffrence du sous-programme READ_EE, celui-ci vite denvoyer au tlphone des caractres indsirables lorsque la donne Index est code sur 1 ou 2 chiffres.
READ_EE_Index: FOR j=j1 TO j2 n=EEREAD(j) IF (n>=48) AND (n<=57) THEN SEROUT TXD,BDS,0,1,[n] NEXT RETURN

Programmation et conguration
Le programme CES.bas destin au PicBasic, une fois compil, ne fait que 1 857 octets + 27 octets de paramtrage. Sachant que leeprom du PICBASIC-2S est de 8 Ko, le programme est laise puisquil occupe moins de 1/4 de lespace. Cela peut sembler du luxe mais vu la simplicit du langage de programmation basic il est plus que probable que vous allez ajouter de nouvelles fonctionnalits la carte. Voyons tout dabord comment transfrer notre programme au PicBasic. La programmation ne se fait pas via le port srie, mais par le port parallle laide dun cordon spcique fourni par Lextronic. Si celui-ci est dj monopolis par limprimante vous pouvez utiliser le port LPT2. Si votre ordinateur dispose que dun seul port parallle pas de problme, il suft de dconnecter temporairement limprimante. Lautre extrmit du cordon prend place dans le petit connecteur prsent sur le module PicBasic, un dtrompeur vous vite toute erreur de branchement. Attention, vous devez alimenter la carte une fois que le PC est allum et que le logiciel PICBASIC-LAB est actif. Consultez la documentation fournie par Lextronic pour linstallation et ltalonnage du logiciel PICBASIC-LAB. Copiez ensuite le programme CES.bas sur votre disque dur et ouvrez ce chier partir du logiciel PICBASIC-LAB. Cliquez sur licne RUN ce qui a pour effet de compiler le programme, de le transfrer dans leeprom et de lexcuter. Attention, vous devez imprativement couper lalimentation de la carte avant de dconnecter le PicBasic du PC.

DUNOD La photocopie non autorise est un dlit.

221

INTERFACES GSM
Maintenant que le PicBasic est programm vous pouvez relier la carte au port srie de votre PC pour procder la conguration. Les diffrents paramtres utiles au montage seront envoys par lintermdiaire du logiciel CongES_GSM.exe . Slectionnez le port com sur lequel le montage est connect (com2 par dfaut), cliquez alors sur le bouton Ouvrir . Un voyant signalant que la communication est tablie doit sallumer en rouge, en fait les caractres AT envoys par la carte sont bien rceptionns par le PC. Entrez le code PIN de votre tlphone, la mmoire utilise pour stocker les SMS rceptionns, lindex du prochain SMS et le numro de tlphone utilis pour envoyer les SMS. Pour chacun des ports n 0 3, il est possible de dnir une valeur qui va dclencher lenvoi de SMS, condition davoir coch la case Envoi SMS . Chaque case cocher n 0 7 correspond une entre. Par exemple, avec la copie dcran ci-aprs, si une fois le montage connect un tlphone, toutes les entres du port n 0 sont 1, un SMS est envoy. Une fois tous ces paramtres dnis, cliquez sur le bouton ECRITURE pour les transfrer dans la mmoire eeprom du PicBasic. Le bouton LECTURE permet de sassurer que les paramtres sont correctement mmoriss.

Figure 5.38. Conguration de la carte.

Essais
Pour faciliter le contrle de bon fonctionnement des diffrents ports de la carte, deux montages trs simples vous sont proposs. Le premier est une platine de visualisation qui comporte 8 bargraphs constitus de 10 Led rouges rectangulaires associes des rsistances de 470 qui limitent le courant. Cette platine senche directement dans les 4 ports utiliss en sortie. En effet le 74HCT541 peut dbiter un courant denviron 50 mA sur chacune de ses

222

CHAPITRE

RALISATIONS LECTRONIQUES

DUNOD La photocopie non autorise est un dlit.

Figure 5.39. Schma des platines dessais.

sorties ce qui est amplement sufsant. Notez quune Led du bargraph est relie au + 5 V pour signaler la prsence de la tension dalimentation, il reste une Led qui est non connecte. Le deuxime montage permet par lintermdiaire dun dip switch de mettre indpendamment la masse chacune des lignes dun port utilis en entre. Rappelons qu ltat de repos chacun des 8 bits dun port est mis ltat haut par un rseau de rsistance. Une Led rectangulaire associe chacun des dip switch signale

223

INTERFACES GSM
la prsence de la tension dalimentation. laide de ces deux petits montages vous pourrez valider le bon fonctionnement de chaque port de la carte, celle-ci ne comportant aucun rglage. Pour le contrle du port analogique il est possible de cbler un potentiomtre de 10 k qui viendra se connecter sur les plots de lalimentation et sur les lignes de lecture analogique.

Interface de puissance
En bonus, nous vous proposons une interface de puissance base de triacs qui permet notre carte de piloter 8 charges indpendantes, alimentes sous une tension de 220 V. Cette interface se connecte sur lun des 4 ports de sortie de la carte (ports n 4, 5, 6 ou 7). En ralisant 4 exemplaires de cette interface vous aurez la possibilit de commander 32 charges !

Figure 5.40. Schma de linterface de puissance.

Lutilisation de la tension du secteur nous conduit raliser une isolation galvanique an de protger correctement llectronique place en amont. Cette isolation est ralise laide dun optocoupleur (du type MOC3041), un tel circuit se compose de deux parties distinctes (isolation galvanique de 7 500 V) : la premire est constitue dune diode infrarouge qui va venir mettre en conduction le triac contenu dans la deuxime partie. Il dispose galement dun dispositif qui dtecte le passage zro de la tension du secteur an dviter de gnrer des parasites lors de lalimentation de la charge. Le courant de lordre de 10 mA,

224

CHAPITRE

RALISATIONS LECTRONIQUES

Figure 5.41. Circuit imprim.


DUNOD La photocopie non autorise est un dlit.

ncessaire lactivation de la diode infrarouge, est gnr par la sortie du port, la limitation de lintensit est assure par une rsistance de 470 . Outre la scurit offerte par les optocoupleurs, leur utilisation nous permet de se passer dune alimentation en courant continu. En effet la diode de commutation est alimente par la sortie du port de la carte E/S et le triac par la tension secteur. Donc nul besoin de transformateur et autre rgulateur de tension. La faible puissance du triac interne loptocoupleur (Imax = 100 mA) ne permet pas une alimentation directe dune charge importante. Un deuxime triac mis en cascade permet de disposer dune puissance beaucoup plus importante. Toutefois, compte tenu de la largeur des pistes de la carte, il est conseill de ne pas dpasser 200 W par sortie. Le composant rfrenc VR est

225

INTERFACES GSM

Figure 5.42. Implantation des composants. Liste des composants R : 16 rsistances 470 IC : 8 MOC3041 ou TLP3041 TR : 8 triacs BTA08-400B VR : 8 varistances 220 V CN : 9 connecteurs vis 2 bornes FUS : porte fusible + fusible C : connecteur HE10 mle 10 broches

une varistance qui permet de protger le montage lors du pilotage dune charge inductive, les phnomnes dauto-induction lors de ltablissement et la coupure du courant peuvent dtriorer le triac. Chaque triac possde donc une varistance monte en parallle. Ce composant voit son impdance chuter trs fortement en prsence dune surtension (tension > tension nominale de 250 V), protgeant ainsi le circuit plac en aval, en loccurrence le triac. Pour terminer, un fusible vient complter la protection de notre montage, le calibre sera dtermin en fonction du courant maximum absorb par les 8 charges.

226

CHAPITRE

RALISATIONS LECTRONIQUES
Rsum des points importants

Tableau 5.30.
CARTE E/S PILOTE PAR GSM Conguration Cavalier J1 mettre en place uniquement si vous utilisez un cble DATA LINK du commerce Paramtrage de la carte (montage reli au port srie dun PC) Tous les paramtres ci-dessous peuvent tre modis grce au logiciel CongES_GSM.exe . Code PIN Mmoire utilise pour la lecture des SMS Index du prochain SMS Numro de tlphone pour lenvoi des SMS Valeurs sur les ports 0 3 qui dclenchent lenvoi de SMS Utilisation de la carte (montage reli un tlphone ou terminal GSM) Commande SMS reue !!L, port !!E, port, Data Action du montage Lecture des 8 entres du port concern, avec 0 port 7 criture de la donne data sur le port concern, avec 4 port 7. Data doit toujours tre cod sur 3 chiffres, compltez par des zros si ncessaire, ex : E,4,001 Mise 1 de la sortie NumBit du port concern, avec 4 port 7 et 0 NumBit 7 Mise 0 de la sortie NumBit du port concern, avec 4 port 7 et 0 NumBit 7 Complmente la sortie NumBit du port concern, avec 4 port 7 et 0 NumBit 7 Effectue la lecture de toutes les lignes logiques, le rsultat est envoy sous forme de 8 octets correspondants respectivement aux 8 ports de la carte Effectue la lecture de toutes les entres analogiques, le rsultat est envoy sous forme de 8 valeurs lues sur les entres AD0 AD7 Enregistre le numro de tlphone indiqu dans leeprom du PicBasic. Cest ce numro qui sera utilis pour lenvoi des SMS Positionnement des ags. Si fx = 1 le port nx ne peut pas dclencher lenvoi dun SMS. Si fx = 0 le port nx peut dclencher lenvoi dun SMS. Si fx = ? le ag nest pas modi. Avec 0 x 3

!!S, port, NumBit !!R, port, NumBit !!C, port, NumBit

DUNOD La photocopie non autorise est un dlit.

!!T

!!V !!N,06xxxxxxxx

!!F,f0f1f2f3

227

INTERFACES GSM

5.5 GOLOCALISATION PAR GSM


La plupart des terminaux GSM, tel que le TM2 de Teltonika, possdent une commande spcique qui permet de connatre lidentiant de la cellule en cours dutilisation, le fameux code Cell-ID exprim sur 4 chiffres et cod en hexadcimal. En thorie tous les tlphones portables sont pourvus de cette fonctionnalit, car elle est prvue dans la norme GSM07.07, il sagit de la commande AT+CREG dtaille dans le chapitre Commandes AT . Cette instruction indique si le mobile est connect au rseau et sous certaines conditions le paramtre Ci quivalent au code Cell-ID.

Cell Monitor
Il est important de noter que les oprateurs gardent secret les numros didentication de leurs cellules. Dans un premier temps nous allons reprogrammer le montage vu prcdemment dans la partie Rcepteur/metteur SMS an dafcher sur lcran LCD les paramtres LAC et Cell-ID, ainsi il vous sera possible didentier et de situer gographiquement les cellules de votre environnement plus ou moins proche an de vous constituer une petite base de donnes. Nous en proterons pour afcher galement la puissance du signal reu.

Programme du PicBasic : monitor.bas


'DECLARATION DES CONSTANTES '--------------------------

Pour faciliter la maintenance du programme nous avons dclar trois constantes : TXD qui correspond la ligne I/O17 (broche n 22) du PicBasic, RXD qui correspond ligne I/O16 (broche n 21) et BDS pour bauds qui dnit la vitesse de transmission ici xe 9 600 car BDS = 103.
Const BDS = 103 Const RXD = 17 Const TXD = 16 'DECLARATION DES VARIABLES '-------------------------

La variable tableau Tampon qui peut contenir jusqu 16 octets est utilise diverses reprises dans le programme, notamment pour stocker les donnes LAC et Cell-ID en attendant leur transfert vers lcran LCD. La variable Rssi stocke la valeur de la puissance du signal reu par le tlphone.

228

CHAPITRE

RALISATIONS LECTRONIQUES
DIM DIM DIM DIM Tampon(16) Rssi i n AS AS AS AS BYTE BYTE BYTE BYTE

'INITIALISATION DE LECRAN LCD '-----------------------------

Il convient dinitialiser lcran LCD connect au PicBasic grce aux instructions spciques ce type dafcheur. Linstruction SET PICBUS HIGH ou LOW permet de paramtrer la vitesse de communication du bus spcialis PICBUS . Par dfaut, ce type dafcheur est congur pour travailler une vitesse de 19 200 bauds donc linstruction SET PICBUS sera suivie de linstruction HIGH (LOW pour une vitesse de 4 800 bauds). Linstruction LCDINIT initialise lcran LCD.
SET PICBUS HIGH LCDINIT 'TEST LIAISON SERIE '------------------

DUNOD La photocopie non autorise est un dlit.

Pour sassurer que la liaison entre le montage et le tlphone est valide, nous allons envoyer la commande la plus simple qui soit : AT<CR>, le ME doit rpondre par <CR><LF>OK<CR><LF> si la liaison est correcte. Les caractres AT suivis du caractre <CR>=13dec sont envoys par la commande SEROUT. Linstruction SERIN permet dattendre lventuelle rponse OK pendant 2 000 ms (soit 2 s). Si les caractres OK sont rceptionns dans le temps donn, le caractre suivant soit <CR> est plac dans la variable i. Dans le cas contraire le programme saute la ligne repre par ltiquette TEST0, i est alors vide. Il suft de tester le contenu de i pour savoir si la liaison est tablie.
i=0 TEST0: SEROUT TXD,BDS,0,1,["AT",13] SERIN RXD,BDS,0,2000,TEST1,[WAIT("OK"),i] TEST1: IF i<>0 THEN LOCATE 0,0 PRINT "Liaison OK" LOCATE 0,1 PRINT "Test mode ..." ELSE LOCATE 0,0 PRINT "PB liaison !" DELAY 5000 END IF

229

INTERFACES GSM
Tant que la liaison nest pas tablie le programme boucle sur ltiquette TEST0. Lcran LCD afche le message PB liaison ! . Une fois la liaison tablie le programme suit son cours normal.
IF i=0 THEN GOTO TEST0 'SELECTION DE lALPHABET GSM '--------------------------SEROUT TXD,BDS,0,1,["AT+CSCS=",34,"GSM",34,13] DELAY 500 'CODE PIN '--------

En principe le code PIN qui autorise lutilisation du tlphone doit tre compos chaque mise sous tension.
SEROUT TXD,BDS,0,1,["AT+CPIN=",34,"7208",34,13] DELAY 500 'MESSAGE LCD DATTENTE '---------------------

linitialisation du montage un message daccueil safche sur lcran LCD. Les paramtres LAC et Cell-ID seront afchs lors du changement de cellule.
CLS LOCATE 0,0 PRINT "Acquisition" LOCATE 0,1 PRINT "en cours..." 'INITIALISATION DES VARIABLES '----------------------------

Initialisation de la variable Tampon grce une boucle FOR/NEXT.


DEBUT: FOR i=0 TO 15 Tampon(i)=0 NEXT i 'PROGRAMME PRINCIPAL '-------------------

Voici la partie du code qui permet de connatre les champs LAC et Cell-ID. Linstruction AT+CREG=2 lance la procdure dacquisition, chaque changement de cellule le tlphone envoie au PicBasic les nouvelles donnes <lac> et <ci> qui identient la BTS en cours dutilisation. Chaque envoi est prcd par les

230

CHAPITRE

RALISATIONS LECTRONIQUES
caractres +CREG , le PicBasic se contente de dtecter la paire de caractres EG et de placer les 16 caractres suivants dans la variable Tampon.
SEROUT TXD,BDS,0,1,["AT+CREG=2"] DELAY 500 SEROUT TXD,BDS,0,1,[13] ATT1: SERIN RXD,BDS,0,10000,ATT1,[WAIT("EG"),Tampon(0)~16] SEROUT TXD,BDS,0,1,["AT+CREG=0",13]

Un exemple de ce que peut contenir la variable Tampon est indiqu tableau 5.31.

Tableau 5.31.

Tampon(0) Tampon(1) Tampon(2) Tampon(3) Tampon(4) Tampon(5) Tampon(6) Tampon(7) Tampon(8) : 1 , " 0 B D C

Tampon(2) contient la donne <stat> qui reprsente ltat denregistrement du tlphone sur le rseau : <stat> : 0 tlphone non enregistr, pas de recherche doprateur en cours 1 tlphone enregistr sur le rseau 2 tlphone non enregistr, recherche doprateur en cours 6 enregistrement interdit 7 inconnu 8 enregistr, roaming
DUNOD La photocopie non autorise est un dlit.

Tampon(5) Tampon(8) contiennent les 4 octets codiant la donne <lac>.


Tampon(9) Tampon(10) Tampon(11) Tampon(12) Tampon(13) Tampon(14) Tampon(15) " , " F A 0 9

Tableau 5.32.

Tampon(12) Tampon(15) contiennent les 4 octets codiant la donne <ci>. Il ne reste qu afcher sur lcran LCD les donnes Stat, LAC et Cell-ID. Le buzzer est activ pour signaler le changement de cellule. La donne Stat est afche entre crochets sur la premire ligne, les deux autres paramtres apparaissent sur la deuxime ligne.

231

INTERFACES GSM
BEEP 9 BEEP 9 CLS LOCATE 0,0 PRINT "[",Tampon(2),"]" LOCATE 0,1 PRINT "LAC:",Tampon(5) ,Tampon(6) ,Tampon(7) ,Tampon(8) PRINT " CI:",Tampon(12),Tampon(13),Tampon(14),Tampon(15)

Maintenant le PicBasic interroge le tlphone pour connatre la qualit du signal laide de la commande AT+CSQ . Le tlphone rpond au montage en dbutant par les caractres +CSQ suivis du paramtre Rssi qui indique la puissance du signal. Ds la rception du couple de caractres SQ le PicBasic mmorise les 4 caractres suivants dans la variable Tampon.
ATT2: SEROUT TXD,BDS,0,1,["AT+CSQ"] DELAY 500 SEROUT TXD,BDS,0,1,[13] SERIN RXD,BDS,0,1000,ATT2,[WAIT("SQ"),Tampon(0)~4]

Un exemple de ce que peut contenir la variable Tampon est indiqu tableau 5.33.
Tableau 5.33.
Tampon(0) Tampon(1) Tampon(2) Tampon(3) : 2 0

Attention la valeur Rssi est comprise entre 0 et 31, le programme doit avant de convertir cette valeur en dcimal, vrier si elle est code sur un ou deux chiffres. Si la valeur Rssi est code sur 2 chiffres, Tampon(2) contient le chiffre des dizaines et Tampon(3) le chiffre des units. Dans le cas contraire, Tampon(2) contient le chiffre des units, Tampon(3) contient alors une virgule qui est ignore par le programme. Si la valeur Rssi est suprieure 31 cela signie que la puissance du signal reu nest pas quantiable un "?" est dans ce cas mmoris dans la variable Rssi. Dans le cas contraire le programme calcule la puissance exprime en dBm. Notez que les membres de lquation sont inverss an dobtenir un rsultat positif. Le signe moins sera ajout au moment de lafchage de la valeur sur lcran LCD.
IF Tampon(3)>=48 AND Tampon(3)<=57 THEN Tampon(2)=Tampon(2)-48 Tampon(2)=Tampon(2)*10 Tampon(3)=Tampon(3)-48 Rssi=Tampon(2)+Tampon(3) ELSE

232

CHAPITRE

RALISATIONS LECTRONIQUES
Tampon(2)=Tampon(2)-48 Rssi=Tampon(2) END IF IF Rssi<=31 THEN Rssi=113-(2*Rssi) ELSE Rssi="?" END IF

Afchage du rsultat sur la premire ligne de lcran LCD, droite de la donne Stat.
LOCATE 5,0 PRINT "P= -",DEC(Rssi,3,1),"dBm " GOTO DEBUT

Rsum des points importants


CELL MONITOR Conguration

Tableau 5.34.

Cavalier J1 mettre en place uniquement si vous utilisez un cble DATA LINK du commerce lments du programme PicBasic modier Code PIN (7208 par dfaut)

Tracker GPS
Nous vous proposons la ralisation dun montage capable denvoyer par SMS sa propre position gographique. La grande prcision est due la mise en uvre dun rcepteur GPS miniature. Une fois les coordonnes longitude et latitude rentres dans les applications telles que Google Map ou Google Earth, vous localiserez prcisment la position de votre montage sur une carte et/ou une photo satellite.

DUNOD La photocopie non autorise est un dlit.

Positionnement gographique
Dterminer une position gographique sur notre bonne vieille plante revient dterminer les coordonnes dun point situ la surface dune sphre. Qui dit coordonnes dit repre cartsien constitu de deux plans perpendiculaires. Le premier passe par les ples Nord et Sud et par lobservatoire de Greenwich prs de Londres : on lappelle le mridien dorigine. Le deuxime est quidistance des ples Nord et Sud : il sagit de lEquateur. Positionner un point sur la Terre revient dterminer la distance qui le spare du mridien dorigine : cest la longitude, et la distance

233

INTERFACES GSM
qui le spare de lEquateur : cest la latitude. Ces distances se mesurent en degrs dangle avec une tendue de 180 (Ouest et Nord) +180 (Est et Sud). Oprationnel depuis 1995, le GPS (Global Positioning System) permet un rcepteur utilisant cette technologie de dterminer prcisment sa position gographique. Un tel rcepteur est susceptible dutiliser les quelque 24 satellites en orbite autour de la Terre. Chaque satellite met en permanence un signal radio contenant diverses informations, dont un signal horaire, lheure dmission du signal et la position du satellite. An de se situer le rcepteur GPS mesure le temps que met ce signal lui parvenir. En effectuant cette opration avec au moins trois satellites simultanment il est capable de calculer les donnes longitude et latitude.

Rcepteur GPS Le rcepteur mis en uvre dans cette ralisation est un GPS OEM subminiature rfrenc EM-406 ; il est distribu en France par la socit Lextronic (http://www.lextronic.fr) pour un prix abordable mme pour llectronicien amateur (au sens noble du terme).
Ce GPS est bas sur le chipset SiRF StarIII, un des plus apprci du march, ce qui lui confre une stabilit exceptionnelle. Il est capable dutiliser jusqu 20 satellites, ce qui lui permet davoir un bon temps de rponse et une prcision correcte. Un des avantages de ce modle est quil dispose dune antenne de rception intgre GPS USGlobalSat, ce qui permet la ralisation dun montage compacte et discret.

Principales caractristiques du rcepteur EM-406


Dimensions 30 X 30 X 10,5 mm (antenne incluse) Alimentation +4,5 +6,5 Vcc Consommation 70 mA Canaux 20 Position 10 m, 2D RMS Vlocit 515 m/s Altitude maxi. 18000 m Acclration < 4 g Temps de r acquisition 0,1 s Hot Start 1 s Warm Start 38 s Cold Start 42 s

Le rcepteur dlivre une fois par seconde des trames conformes la norme NMEA0183 (National Marine Electronics Associa-

234

CHAPITRE

RALISATIONS LECTRONIQUES
tion). Les trames sont composes de caractres ASCII qui transitent sous forme srie sur la sortie nomme TX. Le protocole utilis est conforme la norme RS232 avec une vitesse prdnie de 4 800 bits/s. Chaque trame dbute par les caractres $GP. Trois caractres supplmentaires identient le type de trame envoye. LEM-406 est capable de gnrer 6 sortes de trames :

Nom Message ID UTC Time Latitude N/S Indicator Longitude E/W Indicator

Exemple $GPGGA 161229.487 3723.2475 N 12158.3416 W

Unit

Description GGA protocol header hhmmss.sss ddmm.mmmm N=north or S=south dddmm.mmmm E=east or W=west 0 : x not available or invalid 1 : GPS SPS Mode, x valid 2 : Diff. GPS, SPS Mode , x valid 3 : GPS PPS Mode, x valid Range 0 to 12 Horizontal Dilution of Precision

Tableau 5.35. GGA : GPS x et date

Position Fix Indicator

Satellites Used HDOP MSL Altitude1


DUNOD La photocopie non autorise est un dlit.

07 1.0 9.0 M mtre mtre mtre M mtre seconde 0000 *18

Units Geoid Separation1 Units Age of Diff. Corr. Diff. Ref. Station ID Checksum <CR><LF>

Null elds when DGPS is not used

End of message termination

235

INTERFACES GSM
Tableau 5.36. GLL : position gographique longitude-latitude.
Nom Message ID Latitude N/S Indicator Longitude E/W Indicator UTC Time Status Checksum <CR><LF> Exemple $GPGLL 3723.2475 N 12158.3416 W 161229.487 A *2C End of message termination Unit Description GLL protocol header ddmm.mmmm N=north or S=south dddmm.mmmm E=east or W=west hhmmss.sss A=data valid or V=data not valid

Tableau 5.37. GSA : satellites actifs.

Nom Message ID

Exemple $GPGSA

Unit

Description GSA protocol header M : Manual-forced to operate in 2D or 3D mode A : 2Dautomatic-allowed to automatically switch 2D/3D 1 : Fix not Available 2 : 2D 3 : 3D Sv on Channel 1 Sv on Channel 2

Mode 1

Mode 2 Satellite used Satellite used ... Satellite used PDOP HDOP VDOP Checksum <CR><LF>

3 07 02

Sv on Channel 12 1.8 1.0 1.5 *33 End of message termination Position dilution of Precision Horizontal dilution of Precision Vertical dilution of Precision

Dans le cadre de notre application nous utiliserons exclusivement la trame RMC qui nous donne les informations ncessaires et sufsantes compte tenu de notre application : la longitude et la latitude.

236

CHAPITRE

RALISATIONS LECTRONIQUES
Nom Message ID Number of Messages Message Number1 Satellites in View Satellite ID Elevation Azimuth SNR(C/No) ... Satellite ID Elevation Azimuth SNR(C/No) Checksum <CR><LF> 27 27 138 42 *33 End of message termination degr degr degr dBHz Channel 4 Channel 4 Channel 4 Exemple $GPGSV 2 1 07 07 79 048 42 degr degr dBHz Channel 1 (Range 1 to 32) Channel 1 (Maximum 90) Channel 1 (True. Range 0 to 359) Range 0 to 99. Null when not tracking Unit Description GSA protocol header Range 1 to 3 Range 1 to 3

Tableau 5.38. GSV : satelites visibles.

Exemple de trame RMC :


$GPRMC,161229.487,A,3723.2475,N,12158.3416,W,0.13,309.62,120598,E,*10
DUNOD La photocopie non autorise est un dlit.

Les champs sont spars par des virgules. Un checksum optionnel peut tre prsent la n de la trame (non utilis ici), il est prcd du caractre *. Chaque trame se termine par les caractres <CR><LF> (retour chariot, retour la ligne). Schma lectrique La broche I/O11 est ddie la rcupration des trames mises sur la sortie TX du GPS. Toutefois les niveaux de tension entre ces deux broches ne sont malheureusement pas compatibles. Le PicBasic attend des niveaux de 0v ou +5v alors que le GPS dlivre des niveaux compris entre 0v et 3,3v. Plutt que de mettre en uvre un circuit intgr pour adapter les niveaux de tension, nous avons choisi la simplicit en utilisant deux transistors BC547 travaillant en bloqu ou satur. Lorsque la base de T1 est soumise une tension de 3,3v on relve sur le collecteur de T2 une tension de +5v.

237

INTERFACES GSM
Tableau 5.38. RMC : donnes minimales exploitables specications. spciques.
Nom Message ID UTC Time Status Latitude N/S Indicator Longitude E/W Indicator Speed Over Ground Course Over Ground Date Magnetic Variation Checksum <CR><LF> Exemple $GPRMC 161229.487 A 3723.2475 N 12158.3416 W 0.13 309.62 120598 E *10 End of message termination degr noeud degr True ddmmyy E=east or W=west Unit Description RMC protocol header hhmmss.sss A=data valid or V=data not valid ddmm.mmmm N=north or S=south dddmm.mmmm E=east or W=west

Tableau 5.39. VTG : direction et vitesse de dplacement. i

Nom Message ID Course Reference Course Reference Speed Units Speed Units Checksum <CR><LF>

Exemple $GPVTG 309.62 T

Unit

Description VTG protocol header

degr

Measured heading True

degr M 0.13 N 0.2 K *6E km/h noeud

Measured heading Magnetic Measured horizontal speed Knots Measured horizontal speed Kilometers per hour

End of message termination

238

CHAPITRE

RALISATIONS LECTRONIQUES
Particularit concernant la ralisation Le rcepteur GPS est livr avec un petit cble muni de deux connecteurs. Sectionnez le cble an dliminer un connecteur et remplacez-le par un morceau de barrette scable 6 points. Ainsi il est facile de le relier au connecteur CN5 du montage. Attention lorientation du connecteur car celui-ci na plus de dtrompeur se reprer par rapport au conducteur de couleur grise.

Programme du picbasic trackerGPS.bas


'DECLARATION DES CONSTANTES '--------------------------

Constantes utilises pour la liaison srie avec le tlphone GSM :


Const BDS_GSM = 103 Const RXD_GSM = 17

Constantes utilises pour la liaison srie avec le GPS. La vitesse de communication est de 4800bds. Pas de constante concernant une sortie TXD puisque le PicBasic se contente de recevoir des donnes en provenance du GPS.
Const BDS_GPS = 207 Const RXD_GPS = 11 Const BUZZER = 10 'DECLARATION DES CONSTANTES '--------------------------

Nous verrons lutilit des variables ci-dessous au fur et mesure du dtail du programme.
DIM Tampon(43) AS BYTE DIM Index(3) AS BYTE Const TXD_GSM = 16 DIM j AS INTEGER M num AS BYTE 'TEST LIAISON SERIE '--------------------------

DUNOD La photocopie non autorise est un dlit.

Pour sassurer que la liaison entre le montage et le tlphone est valide, nous allons envoyer la commande la plus simple qui soit, AT<CR>, le ME doit rpondre par <CR><LF>OK<CR><LF> si la liaison est correcte.
DEBUT2: i=0 TEST: SEROUT TXD_GSM,BDS_GSM,0,1,["AT",13]

239

INTERFACES GSM

240

Figure 5.44. Schma du tracker GPS.

CHAPITRE

RALISATIONS LECTRONIQUES

Figure 5.45. Circuit imprim.

Figure 5.46. Implantation des composants.


DUNOD La photocopie non autorise est un dlit.

Liste des composants R1 : 470 R2, R3, R5, R6 : 10k R4 : 2,2k C1, C4 : 100nF (pas de 2,54mm) C2, C3 : 22pF / cramique C5, C6, C7, C8 : 1uF / tantale / 15v C9 : 220uF / lectrolytique / 15v D1 : diode 1N4004 D2 : diode 1N4148 L : Led standard Q : quartz 20MHz REG : rgulateur 7805

BUZ : buzzer piezzo (sans lectronique intgre) J1 : barrette HE10 2 contacts + cavalier CN1 : bornier vis 2 plots CN2 : connecteur DB9 mle pour CI / coude 90 CN3 : connecteur pour cble de programmation (LEXTRONIC) CN4 : connecteur pour cran LCD (LEXTRONIC) CN5 : barrette scable tulipe 6 points T1, T2 : transistor BC547 IC1 : PicBasic PB-3B (LEXTRONIC) + support 28 broches IC2 : MAX232 + support DIL 16 broches IC3 : GPS OEM subminiature rfrenc EM-406 (Lextronic)

241

INTERFACES GSM
SERIN RXD_GSM,BDS_GSM,0,2000,TEST1,[WAIT("OK"),i] TEST1: IF i=0 THEN GOTO TEST BEEP BUZZER DELAY 1000 BEEP BUZZER 'SELECTION DE lALPHABET GSM '--------------------------SEROUT TXD_GSM,BDS_GSM,0,1,["AT+CSCS=",34,"GSM",34,13] DELAY 500 'CODE PIN '--------

Noubliez pas de modier le code pin par dfaut gale 7208 :


SEROUT TXD_GSM,BDS_GSM,0,1,["AT+CPIN=",34,"7208",34,13] DELAY 500 'INITIALISATION DU ME '--------------------

Le ME est congur en mode TEXT par la commande AT+CMGF=1. La commande AT+CNMI=1,1 indique au ME que chaque nouveau SMS reu doit tre signal au TE. Ainsi larrive dun SMS sera signale par lenvoi au ME de la commande +CMTI: <mem1>,<index> :
SEROUT TXD_GSM,BDS_GSM,0,1,["AT+CMGF=1",13] DELAY 500 SEROUT TXD_GSM,BDS_GSM,0,1,["AT+CNMI=1,1",13] DELAY 500 'INITIALISATION N TELEPHONE UTILISE PAR DEFAUT POUR L'ENVOI DES SMS '-----------------------------------

Le numro de tlphone utilis par dfaut pour envoyer des SMS est initialis dans la mmoire EEPROM du PicBasic. Pour ne pas interfrer avec la partie programme, le stockage se fait dans les 10 derniers emplacements de la mmoire de FF6hex FFFhex. Cette mmorisation ne se ralise quune seule fois car le programme teste avant si ladresse FF6hex est vide (notez quun emplacement vide contient la donne FFhex).
IF EEREAD(&HFF6)=&HFF THEN EEWRITE &HFF6,"0" EEWRITE &HFF7,"6" EEWRITE &HFF8,"x" EEWRITE &HFF9,"x" EEWRITE &HFFA,"x" EEWRITE &HFFB,"x"

242

CHAPITRE

RALISATIONS LECTRONIQUES
EEWRITE &HFFD,"x" EEWRITE &HFFE,"x" EEWRITE &HFFF,"x" END IF 'INITIALISATION DES VARIABLES '----------------------------

Initialisation des programme :


DEBUT: FOR i=0 TO 42 Tampon[i]=0 NEXT i 'ATTENTE RECEPTION SMS '---------------------

diffrentes

variables

utilises

par

le

Dsormais le uC scrute lentre RXD dans lattente des caractres TI . Ds leur rception les 10 caractres suivants sont placs dans la variable Tampon. Une srie de 11 bips signale larrive du SMS :
ATT_SMS: SERIN RXD_GSM,BDS_GSM,0,10000,ATT_SMS, [WAIT("TI"),Tampon(0)~10] FOR i=0 TO 10 BEEP BUZZER DELAY 500 NEXT i

Comme lindex sincrmente chaque nouveau message rceptionn, il est ncessaire dextraire cette donne pour savoir o aller lire le message en mmoire. Dans ltat actuel des choses admettons que la donne Tampon contient ceci :
DUNOD La photocopie non autorise est un dlit.

On considre dans le programme que la valeur <index> sera code au maximum sur 3 chiffres. Il est possible, comme le montre cet exemple, que le stockage des SMS se fasse dans la mmoire ME partir de lindex 900 :
'LECTURE DU SMS RECU '-------------------

Le TE congure le ME pour que la lecture soit faite dans la mmoire dnie par Tampon(3) et Tampon(4) :
Tableau 5.40.
Tampon (0) : Tampon (1) Tampon (2) " Tampon (3) M Tampon (4) E Tampon (5) " Tampon (6) , Tampon (7) 9 Tampon (8) 0 Tampon (9) 0

243

INTERFACES GSM
SEROUT TXD_GSM,BDS_GSM,0,1, ["AT+CPMS=",34,Tampon(3),Tampon(4),34,13] DELAY 500

La lecture du SMS est provoque par la commande AT+CMGR=<index> . Au pralable nous stockons la donne index dans la variable tableau du mme nom. Si la donne <index> est code sur un ou deux chiffres, on rcupre des donnes indsirables (<CR><LF>). Pour les liminer lors de la reconstitution de lindex du message on sassure que les donnes Index(0) Index(1) contiennent un caractre compris entre 0ASCII=48dec et 9ASCII=57dec :
Index(0)=Tampon(7) Index(1)=Tampon(8) Index(2)=Tampon(9) SEROUT TXD_GSM,BDS_GSM,0,1,["AT+CMGR="] FOR i=0 TO 2 IF Index(i)>=48 AND Index(i)<=57 THEN SEROUT TXD_GSM,BDS_GSM,0,1,[Index(i)] NEXT i SEROUT TXD_GSM,BDS_GSM,0,1,[13]

Ds la rception des caractres !!, les 7 caractres suivants sont placs dans la variable Tampon. Dans le cas o les caractres !! ne sont pas dtects dans les 5 secondes, le programme passe au label SUITE, comme la variable Tampon(0) est vide, le SMS est effac. Si le SMS contient moins de 7 caractres, le programme passe galement au label SUITE mais comme Tampon(0) est dans ce cas diffrent de 0, le programme suit son cours :
SERIN RXD_GSM,BDS_GSM,0,5000,SUITE,[WAIT("!!"),Tampon(0)~13] SUITE: IF Tampon(0)=0 THEN GOTO RAZ

En ltat actuel du programme, si lon considre que le SMS envoy tait de la forme !!G?, la variable tableau SMS doit contenir au minimum ceci :
Tableau 5.41.
Tampon (0) G Tampon (1) ?

IF Tampon(0)<>"G" OR Tampon(1)<>"?" THEN GOTO DEBUT 'PREPARATION ENVOI SMS : N TEL DESTINATAIRE '-------------------------------------------

244

CHAPITRE

RALISATIONS LECTRONIQUES
Le numro utilis est celui situ dans la mmoire EEPROM du PicBasic, aux adresses FF6hex FFFhex ou le cas chant celui prcis dans le corps du SMS reu :
Tableau 5.42.
Tampon Donne 2 , 3 0 4 6 5 x 6 x 7 x 8 x 9 x 10 x 11 x 12 x

SEROUT TXD_GSM,BDS_GSM,0,1,["AT+CMGS=",34] IF Tampon(2)="," THEN FOR i=3 TO 12 SEROUT TXD_GSM,BDS_GSM,0,1,[Tampon(i)] NEXT i ELSE FOR j=&HFF6 TO &HFFF num=EEREAD(j) SEROUT TXD_GSM,BDS_GSM,0,1,[num] NEXT j END IF SEROUT TXD_GSM,BDS_GSM,0,1,[34,13] 'ACQUISITION TRAME NMEA '----------------------

Attente de lacquisition dune trame de type $GPRMC dans la variable tableau Tampon :
ATT_GPS: SERIN RXD_GPS,BDS_GPS,0,1000, ATT_GPS, [WAIT("$G"), Tampon(0)~42]

DUNOD La photocopie non autorise est un dlit.

Comme linstruction WAIT nadmet que 2 caractres en argument, il nous faut ruser et contrler les caractres suivants an dexclure les trames inutilises :
IF IF IF IF Tampon(0)<>"P" Tampon(1)<>"R" Tampon(2)<>"M" Tampon(3)<>"C" THEN THEN THEN THEN GOTO GOTO GOTO GOTO ATT_GPS ATT_GPS ATT_GPS ATT_GPS

Ainsi, lorsque les 4 premiers caractres mmoriss dans le variable Tampon sont gaux "PRMC", le programme peut alors continuer an dextraire les fameuses donnes latitude et longitude. Exemple de contenu de la variable tableau Tampon lorsque la trame rceptionne est de type "RMC" : Seuls les 42 premiers caractres de la trame sont mmoriss car ils contiennent les informations utiles notre montage. Les diffrentes informations sont extraites en accdant simplement aux donnes

245

INTERFACES GSM

Tampon Donne Type

0 P

1 R

2 M

3 C

4 ,

5 1

6 6

7 1

8 2

9 2

10 9

11 .

12 4

13 8

14 7

15 ,

Message ID

UTC Time

15 ,

16 A Status

17 ,

18 3

19 7

20 2

21 3

22 . Latitude

23 2

24 4

25 7

26 5

27 ,

28 N N/S

29 ,

30 1

31 2

32 1

33 5

34 8

35 .

36 3

37 4

38 1

39 6

40 ,

41 W E/W

42 ,

Longitude

Tableau 5.43.

contenues dans la variable tableau Tampon, chaque caractre est accessible via son index de 0 41. La premire information extraite lindex 16 est le status car il signale si la trame est valide par la lettre "A". Une trame non valide est identie par le status "V", cela se produit lorsque le rcepteur na pas assez de satellites en vue (on appelle cela le x) pour dterminer ses coordonnes. Dans ce cas de gure, la trame est ignore et le montage attend la prochaine trame. Le programme est dirig vers le label ATT_GPS :
IF Tampon(16)<>"A" THEN GOTO ATT_GPS 'ENVOI SMS '---------

Le message expdi sur le rseau GSM contient les donnes heure, latitude et longitude fournies par le GPS :
SEROUT TXD_GSM,BDS_GSM,0,1,["RESULTAT GEOLOCALISATION",13]

Une boucle FOR parcoure les index 5 10 qui contiennent lheure UTC :
SEROUT TXD_GSM,BDS_GSM,0,1,["Heure UTC : "] FOR i=5 TO 10 SEROUT TXD_GSM,BDS_GSM,0,1,[ Tampon(i)] IF i=6 OR i=8 THEN SEROUT TXD_GSM,BDS_GSM,0,1,[":"] NEXT i SEROUT TXD_GSM,BDS_GSM,0,1,[13,"Latitude : "]

Lindex 28 contient lindicateur Nord/Sud qui est transform en signe positif ou ngatif avant dtre envoy :

246

CHAPITRE

RALISATIONS LECTRONIQUES
IF Tampon(28)="N" THEN SEROUT TXD_GSM,BDS_GSM,0,1,["+"] ELSE SEROUT TXD_GSM,BDS_GSM,0,1,["-"] END IF

Une boucle FOR parcoure les index 18 26 qui contiennent la donne Latitude, ainsi que le caractre de sparation (virgule) en position 27 :
FOR i=18 TO 26 SEROUT TXD_GSM,BDS_GSM,0,1,[ Tampon(i)] NEXT i SEROUT TXD_GSM,BDS_GSM,0,1,[13,"Longitude : "]

Lindex 41 est lindicateur Est/Ouest (East/West) transform en signe positif ou ngatif :


IF Tampon(41)="E" THEN SEROUT TXD_GSM,BDS_GSM,0,1,["+"] ELSE SEROUT TXD_GSM,BDS_GSM,0,1,["-"] END IF

Une boucle FOR parcoure les index 30 39 qui contiennent la donne Longitude :
FOR i=30 TO 39 SEROUT TXD_GSM,BDS_GSM,0,1,[ Tampon(i)] NEXT i SEROUT TXD_GSM,BDS_GSM,0,1,[26]
DUNOD La photocopie non autorise est un dlit.

'EFFACE LE SMS EN MEMOIRE '------------------------

Cette partie du programme permet de systmatiquement effacer le SMS en mmoire, ainsi le prochain SMS rceptionn aura toujours le mme index. Ceci vite de saturer la mmoire utilise. Notez que cette partie de programme est appele mme si aucun SMS nest effacer ; dans ce cas le ME rpond par un message derreur qui est ignor par le programme :
RAZ: SEROUT TXD_GSM,BDS_GSM,0,1,["AT+CMGD="] FOR i=0 TO 2 IF Index(i)>=48 AND Index(i)<=57 THEN SEROUT TXD_GSM,BDS_GSM,0,1,[Index(i)] NEXT i

247

INTERFACES GSM
SEROUT TXD_GSM,BDS_GSM,0,1,[13] DELAY 5000 GOTO DEBUT

Interprtation du rsultat Les coordonnes sont fournies en reprsentation sexagsimale. Il est ncessaire de les convertir en dcimal an de pouvoir les utiliser dans Google Map et Google Earth :
Latitude: ddmm.mmmm = dd + mm.mmmm/60 Longitude : dddmm.mmmm = ddd + mm.mmmm/60 Exemple (il sagit des coordonnes extraites de la datasheet du EM406): Latitude: = +3723,2475 = + (37+23,2475/60) = +37,387458 Longitude = -12158,3416 = -(121+58,3416/60) = -121,97236

Ensuite, laide de votre navigateur prfr, il suft de vous rendre ladresse http://maps.google.fr/maps pour saisir les coordonnes Latitude et Longitude, spares par une virgule, dans la zone de recherche et enn cliquer sur le bouton Recherche Google Maps, pour localiser votre montage. Nous avons ralis un petit logiciel maison intitul VisuTrackerGPS.exe qui convertit automatiquement les coordonnes et afche le rsultat directement dans Google Map ou Google Earth. Nota : vous devez au pralable tlcharger gratuitement Google Earth ladresse http://earth.google.fr/. Petite astuce : louverture dcocher loption Atmosphre dans le menu Afchage sinon on ne voit rien !
La figure 5.47 est une copie dcran du rsultat obtenu dans Google Map.

Rsum des points importants.

Dernire minute Parmi les chiers tlchargeables via le site www.dunod.com, vous trouverez une version 2 du programme (trackerGPS V2.bas). Dans cette version lenvoi du SMS est dclench lorsque le montage reoit un appel, condition que le numro de lappelant soit celui indiqu dans le programme. Ainsi il ny a pas de frais de communication prvoir car il ny a pas de prise de ligne, cest la sonnerie qui est le vecteur de la commande. Attention, il faut tout de mme que la carte SIM utilise par le tracker inclue la prsentation du numro.

248

CHAPITRE

RALISATIONS LECTRONIQUES

Figure 5.47
TRACKER GPS Conguration Cavalier J1 mettre en place uniquement si vous utilisez un cble DATA LINK du commerce
DUNOD La photocopie non autorise est un dlit.

Elments du programme PicBasic modier Code PIN (7208 par dfaut) Numro de tlphone utilis pour lenvoi des SMS (06xxxxxxxx par dfaut) Utilisation Commande SMS reue !!G? !!G?,06xxxxxxxx Action du montage Acquisition des donnes Latitude et Longitude puis envoi de celles-ci via SMS au numro programm. Acquisition des donnes Latitude et Longitude puis envoi de celles-ci via SMS au numro indiqu.

249

ANNEXE

PAGE

ANNEXES

A.1 Brochages circuits intgrs A.2 Tables des caractres

252 259

Glossaire Bibliographie

261 264

251

INTERFACES GSM

A.1 BROCHAGES CIRCUITS INTGRS PicBasic 3B


Broche 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 Dsignation RES I/O 0-AD0 I/O 1AD1 I/O 2AD2 I/O 3AD3 CLKIN I/O 4-AD4 GND OSCIN OSCOUT I/O 8 I/O 9-PWM0 I/O 10-PWM1 I/O 11 I/O 12 I/O 13 I/O 14 I/O 15 GND +5V I/O 16 I/O 17 I/O 18 I/O 19 I/O 20 PICBUS PCIN PCOUT Bloc 1 LSB 1 1 1 1 1 1 1 MSB Fonction Reset E/S ou CAN E/S ou CAN E/S ou CAN E/S ou CAN Comptage E/S ou CAN Masse Quartz Quartz E/S E/S ou PWM E/S ou PWM E/S E/S E/S E/S E/S Masse Alimentation E/S E/S E/S E/S E/S Afcheur Prog. PC Prog. PC

Caractristiques : Plage dalimentation : 4,5 5,5 V Consommation typique : 15 mA Courant maximum par sortie : 25 mA Temprature de stockage : 40 + 80 C Temprature dutilisation : 0 75 C

252

ANNEXES

PicBasic 2S
Broche 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
DUNOD La photocopie non autorise est un dlit.

Dsignation +5V RES GND I/O 0-AD0 I/O 1AD1 I/O 2AD2 I/O 3AD3 I/O 4-AD4 I/O 5 I/O 6 I/O 7 I/O 8 I/O 9-PWM0 I/O 10-PWM1 I/O 11 I/O 12 I/O 13 I/O 14 I/O 15 I/O 16 I/O 17 I/O 18 I/O 19 I/O 20 I/O 21 I/O 22 I/O 23 I/O 24-AD5 I/O 25-AD6 I/O 26-AD7 CLKIN PICBUS NC NC

Bloc 0 LSB 0 0 0 0 0 0 0 MSB 1 LSB 1 1 1 1 1 1 1 MSB 2 LSB 2 2 2 2 2 2 2 MSB 3 LSB 3 3 MSB

Fonction Alimentation Reset Masse E/S ou CAN E/S ou CAN E/S ou CAN E/S ou CAN E/S ou CAN E/S E/S E/S E/S E/S ou PWM E/S ou PWM E/S E/S E/S E/S E/S E/S E/S E/S E/S E/S E/S E/S E/S E/S ou CAN E/S ou CAN E/S ou CAN Comptage Afcheur Non connecte Non connecte

26 27 28 29 30 31 32 33 34

Caractristiques : Plage dalimentation : 4,5 5,5 V Consommation typique : 15 mA

253

INTERFACES GSM
Courant maximum par sortie : 25 mA Temprature de stockage : 40 + 80 C Temprature dutilisation : 0 75 C

Adaptateur TTL/RS232 MAX232


Broche 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Dsignation C1+ V+ C1C2+ C2VTX2o RX2i RX2o TX2i TX1i RX1o RX1i TX1o GND Vcc Sortie RS232 numro 2 Entre RS232 numro 2 Sortie TTL numro 2 Entre TTL numro 2 Entre TTL numro 1 Sortie TTL numro 1 Entre RS232 numro 1 Sortie RS232 numro 1 Masse Alimentation + 5 V Condensateurs 1 F pour lactivation de la pompe de charge pour passage du niveau de tension TTL un niveau RS232 Fonction

254

ANNEXES

Amplicateur ULN2803A
Broche 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Dsignation IN1 IN2 IN3 IN4 IN5 IN6 IN7 IN8 GND Vcc OUT8 OUT7 OUT6 OUT5 OUT4 OUT3 OUT2 OUT1 Sorties (Courant maximum par sortie : 500 mA) Masse Alimentation + 5 V Entres Fonction

Optocoupleur MOC3041
Broche 1
DUNOD La photocopie non autorise est un dlit.

Dsignation ANODE CATHODE NC CHARGE NC CHARGE

Fonction Anode diode mission IR Cathode diode mission IR Non connect Charge max. 400 V/1 A * Non connect Charge max. 400 V/1 A * (*)Dtection de passage au 0

2 3 4 5 6

255

INTERFACES GSM

Potentiomtre numrique AD8400


Broche 1 2 3 4 5 6 7 8 Dsignation B1 GND CS SDI CLK Vdd W1 A1 Fonction Bute B du potentiomtre numrique Masse Entre de slection du circuit (Chip Select) active ltat bas Entre de donne srie (Serial Data Input) Entre dhorloge, active sur front montant Alimentation comprise entre + 3 V et + 5 V Curseur du potentiomtre numrique Bute A du potentiomtre numrique

Optocoupleur 4N33
Broche 1 2 3 4 5 6 Dsignation ANODE CATHODE NC EMETTEUR COLLECTEUR BASE Fonction Anode diode IR Cathode diode IR Non connect metteur transistor Collecteur transistor Base transistor (non connect)

Capteur de temprature DS1620


Broche 1 2 3 4 5 6 7 Dsignation DQ CLK/CONV RST GND THIGH TLOW TCOM Fonction Entre/Sortie de donnes Horloge/Conversion Reset (entres active ltat bas) Masse Indicateur dpassement seuil T haute Indicateur dpassement seuil T basse Passe ltat haut quand la T dpasse le seuil TH, passe ltat bas quand la T passe en dessous du seuil TL Alimentation + 5 V

Vdd

256

ANNEXES

74HCT574
Broche 1 Dsignation CLK Fonction Horloge Sur un front montant appliqu sur CLK, la valeur prsente sur les entres Dx et recopie sur les sorties Qx

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

D0 D1 D2 D3 D4 D5 D6 D7 OE GND Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0 Vcc Alimentation + 5 V Sorties logiques Slection du circuit, actif ltat bas Masse Entres logiques

DUNOD La photocopie non autorise est un dlit.

257

INTERFACES GSM

74HCT541
Broche 1 Dsignation G1 Fonction Si lentre G1 (et G2) est ltat bas la valeur prsente sur les entres Dx est recopie sur les sorties Qx

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

D0 D1 D2 D3 D4 D5 D6 D7 GND Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0 G2 Si lentre G2 (et G1) est ltat bas la valeur prsente sur les entres Dx est recopie sur les sorties Qx Alimentation + 5 V Sorties Logiques Masse Entres logiques

20

Vcc

24LC32
Broche 1 2 3 4 5 6 7 8 Dsignation A0 A1 A2 Vss SDA SCL WP Vcc Masse Ligne de donnes Ligne dhorloge Verrouille la mmoire en criture lorsque WP = 1 Alimentation + 5 V Entres dont ltat logique dnit ladresse du circuit Fonction

258

ANNEXES

A.2 TABLES DES CARACTRES ASCII


b7 b6 b5 b4 0 0 0 0 0 0 0 0 1 1 1 1 1
DUNOD La photocopie non autorise est un dlit.

0 0 0 0

0 0 1 1 (dle) (dc1) (dc2) (dc3) (dc4) (nak) (syn) (etb) (can) (em) (eof) (esc) (fs) (gs) (rs) (us)

0 1 0 2 (sp) ! " # $ % & ( ) * + , . /

0 1 1 3 0 1 2 3 4 5 6 7 8 9 : ; < = > ?

1 0 0 4 @ A B C D E F G H I J K L M N O

1 0 1 5 P Q R S T U V W X Y Z [ \ ] ^ _

1 1 0 6 ` a b c d e f g h i j k l m n o

1 1 1 7 p q r s t u v w x y z { | } ~

b3 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1

b2 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1

b1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

(nul) (soh) (stx) (etx) (eot) (enq) (ack) (bel) (bs) (tab) (lf) (vt) (np) (cr) (so) (si)

1 1 1

Exemples de conversion : CRASCII = 0001101bin = 13dec = Dhex 1ASCII = 0110001bin = 49dec = 31hex

259

INTERFACES GSM

GSM
b7 b6 b5 b4 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 b3 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 b2 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 b1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 0 0 0 @ $ (lf)

0 0 1 1 _

0 1 0 2 SP ! #

0 1 1 3 0 1 2 3 4

1 0 0 4 A B C D E F G H I J K L M N O

1 0 1 5 P Q R S T U V W X Y Z

1 1 0 6 a b c d e f g h i j k l m n o

1 1 1 7 p q r s t u v w x y z

% & ( ) * + , . /

5 6 7 8 9 : ; < = > ?

(cr)

260

GLOSSAIRE

ASCII : American Standard Code for Information Interchange. Table de code 7 lments permettant de reprsenter les lettres et les chiffres sous forme de caractres et de codes (ISO 7). BCD : Binary Coded Decimal. Systme de numration o chaque groupe de 4 bits dun nombre reprsente un digit dun chiffre. Bi-bande : Terminal capable de fonctionner indiffremment sur le rseau GSM 1800 et GSM 900. Il sagit de la mme technologie (GSM) utilise dans des bandes de frquences diffrentes : 900 MHz ou 1 800 MHz. Alors que les deux types de rseaux imposaient lutilisation de terminaux diffrents, on voit dsormais sur le march des terminaux bi-bandes GSM 900/1800, capables de fonctionner, soit sur un rseau GSM 900, soit sur un rseau GSM 1800, soit sur un rseau bi-bandes GSM 900/1800. BPS : Vitesse de transmission des donnes sur un rseau. La norme GSM limite la vitesse de transmission de donnes 9 600 bps sur le rseau. BSIC : Code regroupant le BCC et le NCC, il sert diffrencier 2 BTS utilisant le mme canal FCN. BTS : Base Transeiver Station. quipement comprenant lantenne et les metteurs/rcepteurs radio. CAN : Convertisseur Analogique Numrique. lment lectronique permettant de convertir un signal analogique (ex : tension) en une valeur numrique (ex : octet). Cell-ID : Numro cod sur deux octets qui identie une cellule (ou BTS). DATA FAX : Cest la fonction des tlphones qui permet le transfert distance de donnes ou de fax, dordinateur portable ordinateur. La vitesse de transfert des informations sexprime en bauds.

261

INTERFACES GSM
dBm : Unit de mesure exprimant un niveau rfrenc par rapport une puissance de 1 mW. E-GSM. : Extended GSM. Extension du systme GSM dautres frquences que la zone de frquences standards. ETS : European Telecommunication Standard. Nom de la norme cre par lETSI, la norme provisoire est nomme I-ETS. Par exemple les normes GSM 07.07 et GSM 07.05 sont des ETS. ETSI : European Telecommunications Standard Institute. Organisme cre par la Commission europenne et charg de la normalisation des tlcommunications. FCN : Frequency Chanel Number. Numro dsignant une porteuse de faon unique dans le systme GSM. GPRS : General Packet Radio Services. Systme de commutation de donnes par paquets selon le protocole TCP/IP permettant damliorer les dbits fournis par les rseaux GSM, on peut esprer un dbit de 115 kbits/s. Technologie standardise lETSI (Institut Europen des Normes de Tlcommunication). On trouve dsormais sur le march des tlphones utilisant le GPRS, cest le cas du MY-X5 de Sagem. Le constructeur SIEMENS propose le terminal MC35 qui dispose de cette fonction. GSM : Global System for Mobile communications. Norme de tlphonie cellulaire numrique europenne dveloppe par lETSI. Le GSM utilise une frquence de 900 MHz et atteint un taux de transfert de 9 600 bits/s. Il existe aussi des versions drives du GSM atteignant des frquences de 1 800 ou 1 900 MHz. Cette norme de tlphone mobile est apparue en 1992 avec un premier appel effectu en Finlande. Le GSM (Itinris, SFR) est la principale norme utilise en Europe avec le DCS (Bouygues Tlcom). GSM Phase 1. : Premire phase de spcication du systme GSM. GSM Phase 2. : Deuxime phase de spcication du systme GSM. GSM Phase 2+ : Nouvelle phase de spcication du GSM, aprs un codage plus efcace des donnes le dbit atteint 14,4 kbits/s. IMEI : International Mobile Equipment Identity. Terme qui dsigne le numro didentication dun mobile, et qui gure dans le corps de lappareil ainsi que dans sa mmoire. IMSI : International Mobile Subscriber Identity. Identit Internationale de labonn Mobile.

262

GLOSSAIRE
ITU-T : International Telecommunication Union, Telecommunication sector. LAC : Location Area Code. Code attribu lensemble des cellules dune mme zone. ME : Mobile Equipement. quipement mobile qui permet lenvoi et la rception de donnes sur le rseau GSM. MODEM : Modulateur-Demodulateur. Il sagit dun dispositif, ou dun priphrique de conversion des donnes qui transitent via une ligne tlphonique RTC ou GSM. (conversion en mission analogique vers numrique). OPRATEUR : Compagnie offrant des services de tlcommunications. PDU : Protocol Data Unit. Protocole qui dnit la constitution numrique de la trame dun SMS. PIN : Personal Identication Number. Numro didentication personnel. linverse des cartes bancaires, le code PIN du mobile peut tre modi par lutilisateur. Un code PIN2 permet galement de limiter des droits daccs lorsque lon prte son mobile une autre personne. PLMN : Public Land Mobile Network. Rseau GSM gr par un oprateur. PUK : Lorsque 3 codes PIN errons ont t rentrs, la carte SIM est bloque, et il faut le code PUK 8 chiffres pour la dbloquer. ROAMING : Mcanisme permettant doffrir les mmes services de tlcommunications mobiles des clients (roamers) abonns dautres rseaux ou dans dautres pays. SIM : Subscriber Identication Module. Module didentit dabonn. La carte SIM est une carte puce contenant les informations sur les droits daccs. La carte SIM permet dactiver le mobile, de recevoir son numro de tlphone ainsi que le droit daccs au rseau. Les appels durgence peuvent tre mis avec nimporte quel mobile, mme sans carte SIM. Cette technologie est standardise lETSI. SMS : Short Message Service. Service de messages courts permettant de transmettre et de recevoir de brefs messages de 160 caractres maximum. SMS-DELIVER : Reprsente le protocole qui permet le transfert dun SMS partir du SMSC destination dun tlphone portable.

DUNOD La photocopie non autorise est un dlit.

263

INTERFACES GSM
SMS-SUBMIT : Reprsente le protocole qui permet le transfert dun SMS partir dun tlphone portable destination dun SMSC. SMSC : Short Message Service Center. Centre de service de messages courts. Tous les messages courts sont tout dabord transmis dans le SMSC. Le message est ensuite transmis au destinataire depuis ce centre. Le SMSC stocke temporairement les messages lorsque le destinataire nest pas disponible. Ds que le destinataire est nouveau disponible sur le rseau (par exemple en allumant son appareil), les messages en attente lui sont transmis. TA : Terminal Adaptator. Assure la liaison entre le ME et le TE. TE : Terminal Equipement. Reprsente un ordinateur ou un microcontrleur disposant dun port srie permettant de piloter le ME travers le TA. TEXT : Permet de constituer/lire un SMS en mode texte. TTL : Transistor Transistor Logic. Famille de circuits logiques utilisant des transistors bipolaires. Ltat logique haut est x entre 2 et 5 V, ltat logique bas entre 0 et 0,8 V. Le courant maximum disponible par sortie est de 20 mA.

BIBLIOGRAPHIE
ETSI - ETS NORME GSM 07.07 ETSI - ETS NORME GSM 07.05 SIEMENS - DATA SHEET TC35 TERMINAL LEXTRONIC. COMFILE Technologie - PICBASIC Manuel de rfrence Vol.1.A D. REY. Interfaces PC numro 08 Potentiomtres numriques sur port srie P. GUEULLE. Tlphones portables et PC 3e dition, Dunod, PARIS, 2006

You might also like