Etude du bus 1-wire au travers du capteur de température dallas ds18s20

Disponible uniquement sur Etudier
  • Pages : 5 (1134 mots )
  • Téléchargement(s) : 0
  • Publié le : 14 décembre 2010
Lire le document complet
Aperçu du document
Etude du bus 1-Wire au travers du capteur de température Dallas DS18S20

Ce rapport se propose de résumer l’emploie du capteur de température DS18S20.
Données de bases :
* Bus de données sur pin DQ en 1-Wire ;
* Tension d’alimentation entre les pins VDD et GND : de 3V à 5V ;
* Plage de mesure avec une précision de ±0,5°C : -10°C à +85 ;
* Plage de fonctionnement : -55°C à+125°C ;
* Codage de la température sur 9 bits ;
* Possibilité d’alarme avec stockage de la donnée sur mémoire non volatile ;
* Chaque DS18S20 comporte une adresse unique codée sur 64bit, on peut donc adresser plusieurs capteurs reliés sur le même bus 1-Wire ;
* Possibilité d’alimenter le capteur via le bus. En effet il contient une capacité pour s’auto alimenter quand le bus est auniveau de tension basse ;
* La température est codée en complément à deux sur 16bits (00AAh = +85.0°C ; 0001h = 0,5°C ; 0000h = 0°C ; FFFFh = -0,5°C ; FF92h = -55.0°C)
Principe de fonctionnement
La ROM de 64bit contient l’adresse du capteur. Le SCRATCHPAD contient 9 Octets (bytes). La température y est codée sur 2 octets (octet 0 ->LSB) (Octet 1 -> MSB). Les bit T H (alarme températurehaute dépassée) et TL (température basse dépassée) sont stockés sur de l’EEPROM, donc si l’alimentation du capteur est coupée, il est possible de récupérer les valeurs ultérieurement. Ces bits sont accessibles via le SCRATCHPAD.
Il faut placer une résistance de 4,7kΩ « pullup » sur le bus afin de maintenir à VPU la tension sur la ligne.

64-bit ROM contenant l’adresse

Le CRC est calculé àpartir des 58 premiers bits seulement.
Organisation des registres EEPROM du capteur (SCRATCHPAD)

Quand on cherche à lire le SCRATCHPAD il faut utiliser la commande BEh. Le capteur envoie le registre (SCRATCHPAD) en entier en commençant par le LSB de l’octet 0.
Octets (bytes) 0 et 1
Ces deux octets contiennent la température mesurée après conversion. LSB octet 1 , MSB octet 2. En lecture seul.Température en °C codée en complément à deux.

Octets 2 et 3 (bytes 2 et 3)
Ces deux octets contiennent la température pour l’alarme de température haute (octet 2 ; TH) et basse (octet 3 ; TL) dépassée. La température est codée sur 8bit. Le bit 7 sert de bit de signe (0 positif, 1 négatif). Si la fonction alarme n’est pas utilisée, ces deux octet peuvent servir de mémoire.

Pour écrire cesOctets il faut utiliser la commande 4Eh, puis envoyer les données en commençant par le LSB de l’octet 2. On peut en suite vérifier l’écriture en lisant le SCRATCHPAD ; commande BEh. Une fois TH et TL transférés il faut envoyer la commande 48h au capteur pour les transférer dans l’EEPROM.
Octets (bytes) 4 et 5.
Octets propre au capteur ne pas les utiliser, sauf lors du calcule du CRC.
Octets 6 et 7L’octet 6 contient le COUNT REMAIN. L’octet 7 le CONT PER °C. A utiliser si l’on désire une résolution autre que 0,5°C (par défaut). La température ce calcul alors avec la formule ci-dessous.

Octet 8
Il contient le CRC envoyé avec le registre (SCRATCHPAD). Il est en lecture seul.
A la réception du SCRATCHPAD, le microcontrôleur doit recalculer le CRC puis le comparer au CRC reçue.
Pourcalculer le CRC il faut utiliser le digramme ci-dessous :
On rentre un à un tous les bits du SCRATCHPAD en commençant par le LSB de l’octet 0. Au début le CRC est égale à 0. A la fin le CRC calculé doit être égale à 0 si les données ont été envoyées sans erreur. Cela correspond à un polygone de type : CRC = X8+X5+X4+1.
Exemple de séquence type pour une lecture de la température
Dans le cas où iln’y a qu’un seul capteur sur le bus, l’adresse de celui-ci n’est pas utilisée. Tout échange de données sur le bus suit la trame suivante :
1. Initialisation ;
2. Commande de ROM suivie d’échange de donnée (non utilisé ici) ;
3. Commande fonctionnelle suivie d’échange de donnée.
Initialisation du bus 1-Wire
La séquence d’initialisation se déroule de la façon suivante :
1....
tracking img