Configuration hardware d`un module XBee par commande AT

Transcription

Configuration hardware d`un module XBee par commande AT
Vincent GARAVILLON
Janvier 2012
NOTE D’APPLICATION
Configuration hardware d'un module XBee par commande AT
Cette note d’application s’adresse aux utilisateurs d’un module XBee série 2 du constructeur
Digi dont on peut voir une représentation ci-dessous.
SOMMAIRE
PRESENATION DU MODULE Xbee SERIE 2 ………………………….………………………………….……. p1
RENTRER EN MODE COMMANDE AT ……………….………………………………….………………………. p2
COMMANDE AT ………………………..………………………….………………………………….…………………. p2
SORTIR DU MODE COMMANDE AT ………………………………….………………….………………………. p5
EXEMPLE DE PARAMETRAGE D’UN MODULE X XBee SERIE 2 ………………………………………. p6
PRESENTATION DU MODULE Xbee SERIE 2
Figure 2 : Module XBee série 2
Figure 1 : Assignement des broches
Le module XBee utilise une liaison asynchrone pour communiquer avec un microcontrôleur.
La configuration des paramètres de la liaison RS232 (Vitesse, parité, start et stop, …)
s’effectue à l’aide des commandes AT. Celles-ci peuvent être envoyées soit par un
HyperTerminal soit via un microcontrôleur si l’on ne possède pas de port série. C’est cette
deuxième méthode qui est présenté. Cela nécessite d’utiliser au minimum les broches Vcc,
GND, OUT et IN du module Xbee. Les broches OUT et IN doivent être connectées
respectivement aux broches Rx et Tx d’un microcontrôleur. Le module Xbee peut être
alimenté entre 2,7 et 3,3 volts.
1/6
Vincent GARAVILLON
Janvier 2012
Vcc
Vcc
Vcc
Tx
Tx
Module XBee série 2
Microcontrôleur
Rx
Rx
Gnd
Gnd
Figure 3 : Montage simplifié d'un module XBee et d'un microcontrôleur
Note : Les commandes AT ne permettent pas la mise à jour du firmware.
RENTRER EN MODE COMMANDE AT
Pour modifier ou lire les paramètres du module, on va dialoguer par des commandes "AT" à
9600 Baud (il s’agit de la valeur par défaut du module).Il faut tout d'abord passer dans le
mode "commande" en envoyant 3 fois le caractère "+" soit 2B en hexadécimal en moins de 1
seconde. On doit respecter un temps de garde (de 1 seconde) avant et après l'envoi de ces 3
caractères. Le module répond par "OK" + "CR" ( ).
Le caractère "+" et le temps de garde sont modifiables par une commande AT.
Temps de garde 1 secondes
Aucun caractère envoyé
«+»«+»«+»
Temps de garde 1 secondes
Aucun caractère envoyé
Commande AT possible
Passage en mode AT
Note : Le plus souvent, l’échec pour rentrer en mode commande est dû à une erreur de
vitesse de transmission. Il faut s’assurer que l’UART du microcontrôleur est bien régler à
9600bps.
COMMANDE AT:
Il existe un grand nombre de commande AT. Cette note d’application en présente les
principales dans le tableau 1. L’ensemble des commandes AT existant peut se trouver à la
page 29 du lien suivant : ftp://ftp1.digi.com/support/documentation/90000866_A.pdf
Commande de lecture :
Elle est constituée des 2 caractères ASCII: « A » et « T » suivis de 2 caractères spécifiques à la
commande suivi d'un "CR" ( ). Le module renvoi alors la valeur de son paramètre.
2/6
Vincent GARAVILLON
Janvier 2012
Syntaxe d’envoi d’une commande AT de lecture:
"AT" + "ASCII commande" + « CR »
Exemple:
ATDH
Le module renvoi la valeur contenu dans le registre DH suivi de « CR ».
En cas d’envoi d’une commande AT non reconnu par le module Xbee, celui-ci retourne le
message « ERROR ».
Commande d’écriture :
Elle est constituée des 2 caractères ASCII: "A" et "T" suivis de 2 caractères spécifiques à la
commande, puis suit ou pas le caractère "Espace" et enfin suit le paramètre à écrire en
hexadécimal. On termine la commande par un "CR" ( ). Le module répond par "OK" suivi
d'un "CR" ( ). Les modifications des valeurs contenues dans les registres ne s’appliquent
qu’une fois que l’on est sorti du mode commande AT.
Syntaxe d’envoi d’une commande AT :
"AT" + "ASCII commande" + "Espace" (optionnel) + Paramètre (hexa) + « CR »
Exemple: ATDH A3
Cette commande fixe la valeur du registre DH à 0xA3.
Le module répond par « OK » suivi de « CR ».
ATWR
le module sauve les paramètres modifiés dans sa mémoire non
volatile et répond par « OK » suivi de « CR ».
En cas d’envoi d’une commande AT non reconnu par le module Xbee, celui-ci retourne le
message « ERROR ».
Il est aussi possible d’envoyer plusieurs commandes à la suite:
Exemple: ATID 56, DL 6F1,WR
Cette commande fixe la valeur du registre ID à 0x56. Puis
fixe la valeur du registre DL à 0x6F1 et sauve les paramètres dans la mémoire EEPROM. Le
module répond par « OK », « OK », « OK » suivi de « CR ».
Note : Si la vitesse de transmission est modifiée il faut penser à re-paramétrer l’UART avec la
nouvelle valeur dès que l’on quitte le mode commande AT de façon à pouvoir communiquer
avec le module Xbee par la suite.
Tableau 1 : Commande AT
Commande
AT
WR
description
Sauve les paramètres dans la mémoire non volatile. Il faut
impérativement
attendre la réponse "OK" du module avant de lui envoyer
une nouvelle commande.
3/6
Format du
paramètre
--
Valeur par
défaut
--
Vincent GARAVILLON
RE
Janvier 2012
--
--
0-1
--
0 – 0xFFFFFFFF
0
0 – 0xFFFFFFFF
0xFFFF
MY
MP
SH
Restaure les paramètres par défaut du module. Cette
commande ne réinitialise pas le champ ID
Réinitialise les paramètres de la couche réseau sur un ou
plusieurs modules au sein du réseau. Toutes les informations
de routages sont perdues.
NR = 0 : réinitialise le module qui a reçu la commande
NR = 1 : réinitialise tous les modules contenus dans le PAN
Modifie ou lit les 32 bits MSB de l'adressage
destinataire.
Modifie ou lit les 32 bits LSB de l'adressage
destinataire.
Lit les 16 bit de l'adressage réseau du module.
Lit les 16 bit de l'adressage parent du module.
Lit les 32 bits MSB du n° de série du module
0 – 0xFFFE
0 – 0xFFFE
0 – 0xFFFFFFFF
SL
Lit les 32 bits LSB du n° de série du module.
0 – 0xFFFFFFFF
CH
Modifie ou lit le canal utilisé dans la bande
2,4 GHz.
ID
Modifie ou lit l'adresse du Pan ID. Le changement de PAN
est effectué lorsque le module est réinitialisé sur une
commande FR, NR ou réalimenter.
Défini ou lit le temps qu’acceptera le module pour découvrir
d’autre nœud du réseau lorsque ND est activé
0 - 0x1A
0 (0x0B)
1 (0x0C)
2 (0x0D)
3 (0x0E)
4 (0x0F)
5 (0x10)
6 (0x11)
7 (0x12)
8 (0x13)
9 (0x14)
10 (0x15)
11 (0x16)
12 (0x17)
13 (0x18)
14 (0x19)
15 (0x1A)
0 - 0xFFFF
0xFFFE
0xFFFE
Défini en
usine
Défini en
usine
0
NR
DH
DL
NT
ND
PL
Cherche et donne les modules trouvés. Pour chacun on
obtient: MY + SH + SL + DB + NI. La commande se termine au
bout de 2,5 secondes et le module renvoie un "CR"(retour
chariot).
On peut faire suivre la commande d'un paramètre constitué
des 20 caractères du NI d'un module. Dans ce cas on obtient
en réponse uniquement les paramètres de ce module.
Modifie ou lit la puissance de sortie du module.
4/6
0x0234
0 - 0xFC
[x 100 msec]
0x3C
optional 20Byte NI or MY
value
--
0-4
4
0 = -10 / 10 dBm
1 = -6 / 12 dBm
2 = -4 / 14 dBm
Vincent GARAVILLON
Janvier 2012
3 = -2 / 16 dBm
4 = 0 / 18 dBm
0-7
0 = 1200 bps
1 = 2400 bps
2 = 4800 bps
3 = 9600 bps
4 = 19200 bps
5 = 38400 bps
6 = 57600 bps
7 = 115200 bps
0–1
0 = CTS non
permit
1 = RTS permit
0–1
0 = RTS non
permit
1 = RTS permit
0–1
0 = Fonction
non enclenchée
1 = Fonction
enclenchée
0 – 0xFFFF
BD
Vitesse de transmission
D7
Configuration contrôle de flux
D6
Configuration contrôle de flux
D5
Configure la LED d’association. La LED clignote 1*/sec quand
le module est alimenté. La LED clignote 2*/sec quand le
module rejoint un réseau
VR
Lit la version firmware du module
CT
Modifie ou lit le Time Out qui fait repasser le
module en mode IDLE »repos » si aucune commande AT ne
parvient.
2 - 0x028F
[x 100 ms]
0x64
CN
Dit explicitement au module de quitter le mode commande
AT.
Modifie ou lit le temps de garde entre l’envoie de deux
caractères. Cette période est utilisé pour éviter d’entrer par
inadvertance dans le mode commande AT.
--
--
1 - 0x0CE4
[x 1 ms]
(max of 3.3 sec
décimale)
0 - 0xFF
0x3E8
GT
CC
Modifie ou lit le caractère ASCII utilisé pour passer
en mode commande.
3
0
1
1
Défini en
usine
0x2B (‘+ ‘)
SORTIR DU MODE COMMANDE AT:
Il existe deux méthodes pour sortir du mode commande AT :
 Si aucune commande AT n'est parvenue au module après son passage en mode
commande pendant un temps de TIME OUT de 10 secondes (valeur par défaut et
paramétrable par une commande AT), le module retourne en mode « repos ».
 Pour quitter le mode commande avant la fin du Time OUT, il faut envoyer la
commande AT suivante: ATCN et le module répond alors par "OK"
5/6
Vincent GARAVILLON
Janvier 2012
EXEMPLE DE PARAMETRAGE D’UN MODULE XBee SERIE 2:
Commande AT envoyé par le
microcontrôleur via l’UART
+++
ATID 56 <entrer>
ATMY <entrer>
ATCH 2 <entrer>
ATBD 7 <entrer>
ATDH 0x2614AF <entrer>
ATDL 0x65AFC5D <entrer>
ATWR <entrer>
ATCN <entrer>
Réponse du module
OK <CR> (Entre dans le mode commande AT)
OK <CR> (positionne le PAN à 56)
{valeur actuel} <CR> (lit l’adresse réseau du
module Xbee)
OK <CR> (choix du canal 3)
OK <CR> (vitesse de transmission
115200bps)
OK <CR> (modifie l’adresse de destination
haute)
OK <CR> (modifie l’adresse de destination
basse)
OK <CR> (sauve les paramètres dans
mémoire non volatile)
OK <CR> (quitte le mode commande AT)
6/6