Cours Rs232 I2c [PDF]

  • 0 0 0
  • Gefällt Ihnen dieses papier und der download? Sie können Ihre eigene PDF-Datei in wenigen Minuten kostenlos online veröffentlichen! Anmelden
Datei wird geladen, bitte warten...
Zitiervorschau

La liaison série RS232 Ahmed AOUCHAR

L’École des INGÉNIEURS Scientifiques

1.1. LES TRANSMISSIONS NUMÉRIQUES  Tout système numérique doit pouvoir communiquer avec d’autres systèmes numériques, qu’ils soient à proximité ou éloignés.

Sys. Num.

interface

1

Sys. Num. 2

 Le transfert de données doit satisfaire certaines exigences comme : 1. La portée (distance à atteindre) 2. Le débit (nombre de bits/s transmis) 3. La fiabilité (contrôle d’erreurs) 4. La sécurité (confidentialité des données) 2

1.2. TRANSMISSION PARALLÈLE / SÉRIE PARALLÈLE :

 Plusieurs bits sont transmis en même temps.  Débit plus élevée à fréquence égale.  Portée faible.

Sys. Num.

Sys. Num.

interface

1

2  Les bits sont transmis l’un après l’autre.

SÉRIE :

 Compense le faible débit par la fréquence.  Portée plus élevée.

Sys. Num.

interface

Sys. Num.

1

2 3

1.3. MODE SYNCHRONE / ASYNCHRONE SYNCHRONE :

 L’horloge est transmise avec les données, ou à part.  Les trames sont longues (un centaine d’octets / trame).

Trame data

Trame data

USB I2C

ASYNCHRONE :

 L’émetteur et le récepteur ont chacun son horloge.  Les trames sont courtes (un octet / trame).

Sys. Num.

Sys. Num.

1

2 4

1.4. NORME RS232 / RS485 RS232 :

 La plus utilisée pour sa simplicité.  Portée : 150 m à 9600 Bauds.

Sys. Num.

Sys. Num.

1

2

RS485 :

 2 paires différentielles torsadées pour éviter les perturbations.  Portée : 1000 m à 9600 Bauds.

Sys. Num.

Sys. Num.

1

2 5

1.5.1. COMMUNICATION PAR « MODEM » modem 2 PC1

PC2

modem 1

 Le modem (modulateur-démodulateur) transforme les signaux numériques en signaux analogiques qu’il envoie sur la ligne téléphonique.  À la réception, le modem fait la transformation inverse.  La portée est celle du réseau téléphonique (ex: France – Australie). PC1

011011011011

modem 1 LIGNE

modem 011011011011 PC2 2

6

1.5.2. PRINCIPE DE LA MODULATION

Phase (PM)

Amplitude (AM)

Fréquence (FM)

7

2.1. FORMAT D’UNE TRAME DE DONNÉES

1L

0L

Repos

Repos S T A R T

0

1

2

3

4

5

6

7

P A R I T É

S T O P

S T A R T

SENS DE SORTIE DES BITS  La ligne au repos est au niveau logique 1.  Le bit « start » (0 logique) signale le début de la trame.  Le bit de parité (optionnel) permet de détecter une éventuelle erreur.  Le « stop » (1 logique) clôture la trame. Il comporte 1 ou 2 bits.  Tous les bits ont la même durée T (période de l’horloge associée). 8

2.2. LECTURE DES BITS EN PLEIN MILIEU

Horloge Emetteur lecture

REPOS Compteur = 8

START

BIT 0

16

16 Horloge de travail

Horloge Récepteur Ainsi, un écart de 5% entre les fréquences d’horloges est autorisé.

9

2.3. VITESSE DE TRANSFERT (DÉBIT)  Chaque bit dure une période T comme c’est déjà annoncé.  Le débit est exprimé en Bauds = nombre de bits transmis par seconde.  En full duplex, la vitesse est en général la même dans les deux sens.  Formule de calcul rapide :        

QUELQUES VITESSES NORMALISÉES

   

50 bauds

2400 bauds

75 bauds

4800 bauds

110 bauds

9600 bauds

150 bauds

19200 bauds

300 bauds

38400 bauds

600 bauds

56000 bauds

1200 bauds

115200 bauds 10

2.4. LE BIT DE PARITÉ  Un bit de parité peut être ajouté après l’octet transmis afin de détecter une éventuelle perte de bit à l’arrivée.

PARITÉ PAIRE :  Le nombre de bits à « 1 » en comptant l’octet et le bit de parité est pair.  Exemple : 10110011

1 (6 bits à « 1 »)

PARITÉ IMPAIRE :  Le nombre de bits à « 1 » en comptant l’octet et le bit de parité est impair.  Exemple : 10110011

0 (5 bits à « 1 ») 11

2.5.1. CODE ASCII DE BASE  Le code ASCII « aski » = American Standard Code for Information Interchange  La norme ASCII définit 128 codes représentant des caractères de contrôle, des lettres latines ainsi que certains symboles et des opérateurs.  Le code ASCII suffit pour la langue anglaise mais s’avère incomplet pour d’autres langues comme le français.  Après cette standardisation, les machines arrivent à communiquer sans difficulté !

12

2.5.2. ASCII ÉTENDU « UNICODE »  Unicode est un système de codage international permettant de représenter l’ensemble des caractères des différentes langues de la planète.  Créé par un groupement d’entreprises, il est adopté par toutes les plateformes matérielles et tous les logiciels.  Unicode utilise un code sur 16 bits, normalisé sous la référence ISO/CEI 10646.  Voici un bout du tableau qui comporte quelques milliers codes :

13

2.6. NIVEAUX LOGIQUES / ÉLECTRIQUES  La tension électrique est bipolaire (±V, mais jamais nulle) pour éviter de véhiculer une valeur moyenne qui dissiperait de l’énergie inutilement.  Les bits sont représentés en logique négative 1L = -V et 0L = +V (Pourquoi pas ?).

+25 V

Niveau logique 0 +3 V -3 V

Niveau logique 1 -25 V 14

2.7.1. LE CONNECTEUR DB25

Nomenclature des broches : Numéro

Nom

Désignation

2

Transmit Data

Transmission de données

3

Receive Data

Réception de données

4

Request to Send

Demande d'émission

5

Clear to Send

Prêt à émettre

6

Data Set Ready

Données prêtes

7

Signal Ground

Masse logique

8

Carrier Detect

Détection de porteuse

20

Data Terminal Ready

Terminal prêt

22

Ring Indicator

Indicateur de sonnerie 15

2.7.2. LE CONNECTEUR DB9

Nomenclature des broches : Numéro

Nom

Désignation

1

Carrier Detect

Détection de porteuse

2

Receive Data

Réception de données

3

Transmit Data

Transmission de données

4

Data Terminal Ready

Terminal prêt

5

Signal Ground

Masse logique

6

Data Set Ready

Données prêtes

7

Request to Send

Demande d'émission

8

Clear to Send

Prêt à émettre

9

Ring Indicator

Indicateur de sonnerie

Shield

Blindage 16

3.1. CONTRÔLE DE FLUX « SOFTWARE »  Xon/Xoff est un protocole logiciel qui permet une transmission bidirectionnelle série sur 3 fils.  Xon et Xoff sont représentés par 2 codes ascii. Code

sens

ascii

dec

hexa

clavier

Xoff

pause

DC3

19

13

Ctrl + S

Xon

envoi

DC1

17

11

Ctrl + Q

 Quand le périphérique qui reçoit les données ne peut plus en recevoir, il le signal à l’émetteur par l’envoi du code Xoff. L’émetteur arrête la transmission, il la reprend lorsqu'il reçoit le code Xon. Cela peut être le cas de la liaison entre un PC et une imprimante moins rapide.  La liaison entre les 2 appareils se fait par 3 fils seulement (voir figure suivante) 17

3.2. CONNEXION DIRECTE / CROISÉE

Connexion Minimale : 3 fils

Connexion complète : 9 fils

18

3.3. CONTRÔLE DE FLUX « HARDWARE »

 DTE (Data Terminal Equipment) = Appareil qui génère des données (ex : PC)  DCE (Data Communication Equipment) = Appareil qui communique (ex : modem)

19

3.4. RS232 ET USB  Le port série RS232 est bien implanté dans le milieu industriel, le port USB équipe toutes les nouvelles machines. Pour communiquer en RS232 avec un port USB, des interfaces intelligentes et transparentes existent.

20

3.5.1. UART

Tx Data

Rx L’UART « Universal Asynchronous Receiver Transmitterest » un circuit programmable qui sert d’interface entre le système numérique et les broches physiques.

Control

modem

INTR

Quartz

21

3.5.2. CONFIGURATION « WINDOWS » 

L’UART peut être utilisé selon deux modes : interruption ou scrutation. 1. En mode scrutation (polling), le CPU lit en permanence l’état de certains registres pour connaître l’état de la transmission. 2. En mode interruption, le CPU est averti par interruption à chaque fois que des données sont reçues.



Lorsqu’un port série est installé sur un PC, il doit être configuré en lui affectant des adresses d’E/S spécifiques et un numéro d’interruption (IRQ). On utilise en général les adresses standard (0x3F8 pour COM1 et 0x2F8 pour COM2).

22

Le bus I2C Ahmed AOUCHAR

L’École des INGÉNIEURS Scientifiques

1.1. PRÉSENTATION  I2C (Inter Integrated Circuit) est un bus série orienté communication entre circuits intégrés comme son nom l’indique.  Il a été développé au début des années 80 par « Philips Semiconductor » pour réduire le nombre de fils entre les circuits numériques présents dans les cartes électroniques des téléviseurs.  Il est devenu un standard implanté dans plus de 1000 composants (LCD, EEPROM, ADC …) et plus de 50 compagnies en détiennent la licence.  Il permet de faire communiquer des circuits intégrés entre eux à l’aide de trois fils seulement : 1. 2. 3.

SCL : horloge qui cadence la transmission des données (bus synchrone). SDA : signal de données (transmission série en half-duplex). GND : masse électrique de référence. 2

1.2. CARACTÉRISTIQUES PRINCIPALES  Chaque composant connecté au bus doit posséder une adresse unique.  C’est un bus maître-esclave : à chaque communication, un maître dialogue avec un esclave.  C’est un bus multi maîtres avec arbitrage des conflits au cas où deux maîtres initieraient des transferts simultanés.  C’est une transmission bidirectionnelle de données en série, par paquets de 8 bits et en « half-duplex ».  C’est un bus synchrone, cadencé à 100 Kbps (Sdandard mode) ou 400 Kbps (fast mode) ou 3,2 Mbps (high speed mode).  Les pics parasites sont rejetés par un filtrage intégré pour préserver l’intégrité des données.  Le nombre de périphériques (esclaves) est limité par la capacitance du bus qui ne doit pas dépasser 400 pF et le nombre de bits d’adresse évidemment. 3

1.3. SPÉCIFICATIONS ÉLECTRIQUES  Les signaux SCL et SDA sont de type « collecteur ouvert » avec des résistances de rappel vers VDD. Les lignes sont à ‘1’ quand le bus est libre.  Les lignes SCL et SDA ne peuvent être forcées qu’au niveau bas. Pour appliquer un niveau haut, les sorties sont mises en haute impédance. Le niveau électrique ‘Haut’ dépend de VDD.  Ce mode de fonctionnement évite les conflits électriques sur le bus : si un circuit met une ligne à ‘1’ et un autre met la même ligne à ‘0’, il n’y a as de court-circuit.

Circuit 1

Circuit 2

4

2.1. FORMAT D’UN TRANSFERT  Au repos, les signaux SCL et SDA sont au niveau haut grâce aux résistances de rappel.  Le transfert de données commence par un START et se termine par un STOP.  Un transfert comporte 8 bits commençant par le bit de poids fort (MSB). Après chaque accord (ACK), on peut enchaîner sur un autre transfert.  Chaque bit est validé par une impulsion de l’horloge SCL. La donnée doit être stable pendant l’impulsion d’horloge.

5

2.2. CONDITIONS DE START ET DE STOP  Le START et le STOP sont générés par le maître qui initie un transfert sur le bus.  Après avoir vérifié que le bus est libre et en avoir pris le contrôle, le circuit en devient le maître : c’est lui qui génère l’horloge.  La condition de START (S) s’applique lorsque le signal SDA passe de « 1 » à « 0 » pendant que l’horloge SCL est à « 1 ». Après le START, le bus passe dans l’état « occupé »  La condition de STOP (P) s’applique lorsque le signal SDA passe de « 0 » à « 1 » pendant que l’horloge SCL est à « 1 ». Après le STOP, le bus redevient « libre ».

6

2.3. L’ACCUSÉ DE RÉCEPTION « ACK »  La réponse à tout transfert est obligatoire, c’est la condition « ACKNOWLEDGE » (ACK ) qui la représente.  L’esclave doit donner son accord en mettant à « 0 » le signal SDA pendant l’impulsion SCL envoyée par le maître juste après la donnée.  Si l’esclave manifeste son désaccord en mettant SDA à « 1 » pendant l’impulsion d’horloge, le maître génère soit un STOP pour abandonner le transfert, soit un START pour retenter sa chance.

7

2.4.1. TIMING - CHRONOGRAMMES  Il faut respecter un certain timing dans l’enchainement des signaux pour que le transfert se passe correctement.  La largeur des impulsion d’horloge doit être bien calibrée en respectant les durées à l’état bas et l’état haut : tLOW et tHIGH.  Les temps de SETUP et de HOLD ( tSU et tHD ) du START, du STOP et de la DATA doivent respecter certaines valeurs minimales.

8

2.4.2. TIMING - VALEURS

9

3.1.1. ADRESSAGE EN LECTURE / ÉCRITURE  Après le START, le maître envoie une adresse pour sélectionner un esclave avec qui il veut dialoguer.  L’adresse est composée de 7 bits auxquels s’ajoute un bit de lecture/écriture : ce bit vaut 0 pour une écriture et 1 pour une lecture. Pour basculer de l’écriture vers la lecture ou inversement, un nouveau START doit être envoyé.

Le maître envoie des données

Le maître reçoit des données

10

3.1.2. ADRESSES RÉSERVÉES  Dans le cas des mémoires, l’espace adressable est élevé : le premier octet sélectionne la mémoire, les octets suivants sélectionnent une case mémoire parmi l’espace adressable.  Les adresses 0000XXX et 1111XXX sont réservées pour des modes particuliers

Appel de tous les circuits connectés Synchronisation des circuits rapides et lents

Compatible avec le standard CBUS Pour la compatibilité avec les autres formats

Mode d’adressage sur 10 bits 11

3.2. ÉCRITURE D’UNE DONNÉE  Le maître met le bit R/W à « 0 » pour signifier à l’esclave qu’il veut lui envoyer des données.  Il met ensuite la broche SDA en haute impédance pour attendre l’accusé de réception de l’esclave (ACK).  Après un « ACK », le maître envoie les différents octets de données séparés tous par des « ACK ». Il termine la transaction par un STOP.

Maître Esclave Résultant 12

3.3. LECTURE D’UNE DONNÉE  Le maître met le bit R/W à « 1 » pour signifier à l’esclave qu’il veut lui recevoir des données.  Il met ensuite la broche SDA en haute impédance pour attendre l’accusé de réception de l’esclave (ACK).  Il garde SDA en haute impédance pour lire les données. Après caque octet lu, il envoie un « ACK » et il termine la transaction par un « NACK » et un « STOP ».

Maître Esclave Résultant 13

4.1. GESTION DES CONFLITS  Le bus I2C autorise qu’il y ait plusieurs maîtres, ce qui crée forcément des conflits au moment de la prise en mains du bus.  Chaque maître peut prendre possession du bus dès que celui-ci est libre. Il est alors possible que deux maîtres veuillent se saisir du bus en même temps.  Il n’y a pas de problème électrique puisque les entrées/sorties sont à collecteur ouvert.  Il y a par contre un conflit logique et risque de collision des données. Il faut éviter à tout prix la corruption des données.  Une gestion des conflits et un arbitrage sont prévus pour départager deux maîtres prétendant à la prise en possession du bus.

14

4.2. SYNCHRONISATION DE L’HORLOGE  Comme l’horloge est générée par le maître, si deux maîtres prennent possession du bus en même temps, il y aura deux horloges.  La synchronisation des horloges se fera par le « OU CÂBLÉ ».  L’horloge résultante est à 1 uniquement quand les deux horloges sont à 1.  L’horloge qui a l’état bas le plus long va plonger l’autre circuit dans un état d’attente que la ligne passe à 1.

15

4.3. PRISE DE CONTRÔLE DU BUS  La première chose à vérifier par un maître avant de prendre le contrôle du bus est que celui-ci soit libre : SCL=1 et SDA=1 (ligne au repos).  Il doit aussi vérifier que le dernier STOP date d’au moins 4,7 µs.  S’il y a plusieurs maîtres, c’est l’état des lignes SCL et SDA qui va arbitrer les conflits.  Plusieurs cas peuvent se présenter : 1. Plusieurs maîtres envoient les mêmes données (extrêmement rare !), il n’y a pas de problème, ils continuent à émettre 2. Un maître écrit un 1 et lit un 1 sur la ligne SDA, il continue à émettre 3. Un maître écrit un 1 et lit un 0 sur la ligne SDA : cela signifie qu’un autre maître émet en même temps. Il perd l’arbitrage, il arrête d’émettre. 16

4.4. EXEMPLE D’ARBITRAGE

 Le premier octet est transmis normalement, il n’y a pas de conflit, les deux maîtres envoient les mêmes données.  Sur le 3ème bit de l’octet suivant, le maître n°2 envoie un 1 et lit un 0 sur SDAR, il perd l’arbitrage et arrête d’émettre. Il devient esclave.  Le maître n°1 ne voit aucun conflit et continue d’émettre normalement, comme si de rien n’était.

17

4.5. SYNCHRONISATION MAÎTRE & ESCLAVE  Dans le cas des esclaves lents, le maître peut s’impatienter et perdre la main avec l’esclave avec qui il dialogue.  Sur la figure suivante, l’esclave qui n’a pas fini son travail (exemple d’un convertisseur CAN) ne donne pas son accord assez rapidement, le maître annule le transfert.  Il faut trouver un moyen pour synchroniser ces deux circuits qui ne travaillent pas manifestement à la même vitesse.

18

SYNCHRONISATION MAÎTRE & ESCLAVE

 Après l’octet, l’esclave force SDA à 0 (acquittement) et SCL à 0 et il démarre sa conversion.  Le maître voit que SCL est forcé à 0 par l’esclave, il relâche SCL et SDA et se met dans une boucle d’attente.  Lorsque l’esclave a terminé sa conversion, il relâche la ligne SCL.  Le maître voyant SCL à 1 et SDA à 0 va lire le résultat de la conversion. 19