18 0 1MB
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