2.6.1 L`adressage des Entrées/Sorties 2.6.2 La programmation des

publicité
2.6 - LES ÉCHANGES D'ENTRÉE-SORTIE DANS LES SYSTÈMES A BASE
DE MICROPROCESSEURS ET MICROCONTRÔLEURS
2.6.1 L'adressage des Entrées/Sorties
Chaque périphérique est pourvu d'une adresse spécifique
Deux philosophies d'adressage:
1- Adressage direct : Les périphériques sont adressés distinctement des positions
mémoires
2- Adressage des périphériques comme des positions mémoires
FFFF
FFFF
Mém.
FF
0000
E/S
00
Mémoire
(1)
0000
E/S
(2)
Remarque :
En mode 1, 4 signaux : écriture, lecture en mémoire et écriture, lecture sur
périphérique
4 instructions
En mode2,
2 signaux ; lecture, écriture
2 instructions
2.6.2 La programmation des entrées/sorties parallèles et séries
Mode parallèle :
Exemple : liaison centronics
Transmission de données par une liaison parallèle (8 ou 16-bit)
Rapide
Faibles distances
Mode série :
Exemple: liaison RS-232
Transmission bit par bit
Plus lente
Longues distances
Deux types : Synchrone
Asynchrone
Trois modes : Simplex, Half Duplex, Duplex
2.6.3 Les trois stratégies d'échange
Le mode programmé (mode scrutation)
Sauvegarde
du contexte
Passage au sousprogramme de
service
Restitution du
contexte
Oui
A
Le périphérique 1 a-t-il quelque
chose à communiquer ?
Non
Non
Le périphérique 2 a-t-il quelque
chose à communiquer ?
Oui
A
Non
Le périphérique 3 a-t-il quelque
chose à communiquer ?
Oui
A
Non
Mode programmé
Mode interruption
(Cas d'urgence)
Demande
Int. autorisée
CPU
E/S
BUS
Vers périphérique
Mode Accès direct mémoire (DMA)
Relier directement le périphérique à la mémoire sans intervention de la CPU
Très grande vitesse de transfert de données
Trois techniques :
DMA par arrêt du microprocesseur
DMA par vol de cycle
DMA multiplexé
2.6.4 LES E/S SÉRIES
2.6.4.1 Transmission série Asynchrone et synchrone
Transmission asynchrone :
Les mots sont transmis isolés dans le temps, le mot est borné par un bit start et un
ou deux bits stop, on ajoutera parfois un bit de parité. (rendement faible)
Transmission synchrone:
Les mots sont transmis sous forme d'une trame de mots successifs, borné par des
caractères de départ start et de fin stop. (rendement meilleur)
2.6.4.2 La norme RS232C
Introduction
Les liaisons séries permettent la communication entre deux systèmes numériques en limitant le
nombres de fils de transmission.
La liaison série aux normes RS-232C est utilisée dans tous les domaines de l'informatique (ex :
port de communication com1 et com2 des PC, permettant la communication avec des
périphériques tels que modem et souris). Elle est de type asynchrone, c'est à dire qu'elle ne
transmet pas de signal horloge.
La liaison RS-232C est une spécification électrique et mécanique uniquement. La manière de
transférer les données doit être définie par un protocole.
La norme RS-232C a connu plusieurs évolutions et améliorations (ex: RS-422, RS-423, RS-485).
Le schéma fonctionnel est le suivant :
Le terme "RS-232C" se réfère à un ensemble de spécifications relatives à ce type d'interface. La
norme RS-232C a été conçue par l'Association des Industries Électroniques (AIE).
Les ingénieurs de l'AIE n'étant pas assurés quant aux types d'équipement qui seraient développés
dans le futur, ont préféré laisser disponible un grand nombre de lignes afin que la norme RS-232C
soit aussi flexible que possible.
De nos jours, la plupart de ces lignes ne sont pas utilisées par les micro-ordinateurs.
La figure suivante montre le brochage (affectations des broches) d'un connecteur RS-232C. Celui
qui est représenté ici est un connecteur "DB-25" est le type le plus usuel.
Le "DB-25" a 25 broches, mais certaines interfaces sérielles utilisent un connecteur plus petit DB9, possédant 9 broches. Dans les cas les plus fréquents, seulement sept de ces lignes sont utilisées.
Toutefois, notons qu'un système RS-232C peut fonctionner en n'utilisant que 3 lignes.
Brochage du connecteur DB-25
Remarque:
Une des difficultés consiste donc à savoir comment à été conçu l'équipement qui vous intéresse.
Est-il configuré comme un DTE ou comme un DCE ?
Voici comment procéder:
(Les indications sont données pour un connecteur 25 broches)
A l'aide d'un voltmètre, placez la pointe de touche noire sur la broche 7. Mesurez les tensions
entre cette broche et les broches 2 et 3. Si la valeur de tension obtenue pour la broche 2 est plus
négative que celle de la broche 3, cela signifie que l'on est configuré en DTE, sinon on est en
DCE.
La transmission série nécessite un minimum de 2 fils comportant les trames de données en
émission (Tx) et en réception (Rx).
L'adaptation des données se fait à l'aide d'un circuit adaptateur de ligne
(ex : MAX232), qui transforme les niveaux logiques issus du système numérique en niveaux
logiques compatibles avec les normes RS-232C et vice versa.
Avant adaptation :
Après adaptation :
Les niveaux logiques sont les suivants :
niveau 0 = 0 V
niveau 1 = 5 V
Les niveaux logiques sont les suivants :
niveau 0 = +12 V
niveau 1 = -12 V
Configuration minimale:
Dans une liaison RS-232C, une extrémité est désignée comme "Equipement Terminal de
Données" ou ETD (DTE), et l'autre est appelée "Equipement de Communication de Données" ou
ECD (DCE). Les diverses lignes de la liaison sont nommées par rapport à l'ordinateur. Par
exemple, la ligne 2 est nommée "TRANSMISSION DE DONNÉES" parce qu'elle transporte le
signal qui est émis à partir de l'ordinateur. Dans un système ordinateur/modem, l'ordinateur est le
terminal (ETD) ou terminal de données, et le modem est le communicateur ou (ECD).
Dans l'interface la plus simple possible, les trois lignes clés sont reliées aux points 2, 3, et 7 sur le
connecteur RS-232C. Cela est illustré par la figure 5. La ligne 2 transporte les "données
transmises" du terminal au communicateur. La ligne 3 transporte les "données reçues" du
communicateur au terminal. La ligne 7 est une masse pour les deux lignes précitées.
Liaison RS-232C sur trois fils
"Poignée de main"
La figure suivante montre une interface RS-232C plus complexe. Ce diagramme est spécifique au
type d'interface qui peut être utilisé pour relier l'ordinateur à un modem. Cette interface comporte
les trois lignes montrées sur la figure précédente à savoir:
1. - Masse (ligne 7),
2. - Transmission de données (ligne 2),
3. - Réception de données (ligne 3).
La plupart des autres lignes sont utilisées pour le contrôle de la "poignée de main" entre
l'ordinateur et le modem.
Les concepteurs ont voulu s'assurer que l'ordinateur n'enverrait pas de caractères tant que le
modem n'est pas prêt. Par exemple, la ligne 20 est le "Terminal de Données Prêt" (DTR) et la
ligne 6 est le "Prêt à recevoir" (DSR). Au début de la "poignée de main", l'ordinateur met la ligne
DTR au niveau haut pour signaler au modem "Je suis prêt à envoyer,. Et vous?" Quand le modem
est prêt, il répondra en mettant la ligne DSR au niveau haut. L'ordinateur n'enverra pas de
données tant que les deux lignes sont "vrai".
Un autre type de "poignée de main" utilise la ligne 4 qui équivaut à la "Demande d'Émission"
(RTS), et la ligne 5 ou "Prêt à envoyer" (CTS). Pour commencer ce cycle de "poignée de main",
l'ordinateur met au niveau haut la ligne "Demande d'Émission". Si le modem est prêt, il fera de
même pour la ligne "Prêt à Envoyer".
Quelques liaisons RS-232C n'utilisent pas ce contrôle matériel de la "poignée de main"; celle-ci
est contrôlée de façon logicielle. Les codes spéciaux de contrôle sont envoyés de long en large sur
les lignes de données. (Vous vous rappellerez que, avec le contrôle matériel de la "poignée de
main", les signaux de contrôle sont envoyés sur des lignes de contrôle séparées).
Un protocole commun de "poignée de main" est appelé "XON/XOFF". L'ordinateur et le DCE
échangent les caractères "DC1" et "DC3". Sur certaines tables ASCII, "DC1" est codé comme
CTRL-Q (code hexadécimal 11) et "DC3" est codé comme CTRL-S (code hexadécimal 13). A
chaque instant, ces caractères spéciaux apparaissent dans la file des données, l'ordinateur ou le
modem détectent les caractères et agissent sur eux.
A n'importe quel moment où les données sont envoyées à travers des lignes téléphoniques, des
erreurs de transmission peuvent s'y glisser. Un autre protocole de "poignée de main" appelé "X
Modem" utilise les caractères ASCII "ACK" et "NAK" pour surveiller la transmission et le
contrôle d'erreur.
Dans ce protocole, un long fichier est envoyé comme une série de "blocs". Chaque bloc est
précédé d'un caractère de "Début de Texte", et terminé par un caractère de "Fin de Texte". Le
caractère de "Début De texte" est abrégé STX, mais il peut aussi être codé comme CRTL-A (code
hexadécimale 02). Le caractère de "Fin De texte" est abrégé ETX. Il peut aussi être codé comme
CTRL-B (code hexadécimal 03). Au bout de chaque bloc, un code spécial de vérification d'erreur
est inclus. Pour chaque bloc, l'ordinateur calcule ce code de vérification d'erreur, basé sur les
données à envoyer dans ce bloc.
Le code de vérification d'erreur est transmis, avec le reste du bloc. S'il n'y a aucune erreur de
transmission, le code de vérification d'erreur s'harmonise avec l'information reçue dans le bloc, et
le modem reconnaît que le bloc a été reçu correctement. Si tout s'est bien déroulé, le modem
envoie en retour un code de reconnaissance (ACK, CTRL-F, $06).
A n'importe quel moment où le code de vérification d'erreur ne s'harmonise pas avec l'information
dans le bloc, le modem n'envoie pas le code de reconnaissance (NAK, CTRL-O, $15). Cela
indique à l'ordinateur de transmettre à nouveau ce bloc.
Certaines autres lignes RS-232C peuvent être utilisées sur certaines interfaces. La ligne 8 est
"Porteuse Détectée". Quand le modem réalise une connexion sur la ligne téléphonique, il devrait
détecter la porteuse qui est toujours présente quand la ligne téléphonique est active.
En mettant la ligne 8 "vrai", le modem peut indiquer à l'ordinateur qu'il a détecté la porteuse. La
ligne 12 peut être employée comme un indicateur de vitesse. Le modem peut mettre cette ligne au
niveau haut quand il passe à une vitesse de fonctionnement élevée.
La ligne 22 est "Sonnerie Détectée". Certains modems utilisent la ligne 22 pour indiquer qu'ils
ont réalisé la connexion intégrale à la ligne téléphonique, et le téléphone sonne à l'autre bout du
fil.
Liaison complète RS-232C
Protocole de transmission :
Afin que les éléments communicants puissent se comprendre, il est nécessaire d'établir un
protocole de transmission. Ce protocole devra être le même pour les deux éléments afin que la
transmission fonctionne correctement.
Paramètres rentrant en jeu :
• Longueur des mots : 7 bits (ex : caractère ascii) ou 8 bits
• La vitesse de transmission : les différentes vitesses de transmission son réglables
à partir de 110 bauds (bits par seconde) de la façon suivante : 110 bds, 150 bds,
300 bds, 600 bds, 1200 bds, 2400 bds, 4800 bds, 9600 bds.
• Parité : le mot transmis peut être suivi ou non d'un bit de parité qui sert à détecter
les erreurs éventuelles de transmission. Il existe deux types de parité.
parité paire : le bit ajouté à la donnée est positionné de telle façon que le nombre des
états 1 soit paire sur l'ensemble donné + bit de parité
ex : soit la donnée 11001011 contenant 5 état 1, le bit de parité paire est positionné à 1,
ramenant ainsi le nombre de 1 à 6.
parité impaire : le bit ajouté à la donnée est positionné de telle façon que le nombre des
états 1 soit impaire sur l'ensemble donné + bit de parité
ex : soit la donnée 11001001 contenant 5 état 1, le bit de parité paire est positionné à 0,
laissant ainsi un nombre de 1 impaire..
• Bit de start : la ligne au repos est à l'état logique 1 pour indiquer qu'un mot va
être transmis la ligne passe à l'état bas avant de commencer le transfert. Ce bit
permet de synchroniser l'horloge du récepteur.
• Bit de stop : après la transmission, la ligne est positionnée au repos pendant 1, 2
ou 1,5 périodes d'horloge selon le nombre de bits de stop.
Format des trames :
Le bit de start apparaît en premier dans la trame puis les données (poids faible en premier), la
parité éventuelle et le (les) bit(s) de stop.
exemple :
Soit à transmettre en parité paire, avec 2 bits de stop, le caractère B dont le codage ascii est
1000010(2) la trame sera la suivante :
Contrôle de flux :
Matériel (CTS/RTS)
Dans les explications suivantes, l'équipement qui envoie les données sera appelé l'émetteur et
celui qui les reçoit le récepteur, quand bien même ils sont en fait émetteur et récepteur.
L'émetteur envoie des données. Le récepteur les stocke dans une mémoire tampon. Lorsque cette
mémoire atteint un seuil de remplissage défini, le récepteur supprime son signal CTS (passage au
1 logique). L'émetteur arrête immédiatement d'envoyer des données.
Le récepteur continue de traiter les données qu'il a dans sa mémoire tampon. Lorsque sa mémoire
tampon arrive au seuil espace libre suffisant, il remet le signal CTS (passage au 0 logique).
L'émetteur se remet à envoyer des données.
Le cycle recommence jusqu'à ce que toutes les données aient été envoyées.
Logiciel (XON/XOFF)
Dans les explications suivantes, l'équipement qui envoie les données sera appelé l'émetteur et
celui qui les reçoit le récepteur, quand bien même ils sont en fait émetteur et récepteur.
L'émetteur envoie des données. Le récepteur les stocke dans une mémoire tampon. Lorsque cette
mémoire atteint un seuil de remplissage défini, le récepteur envoie le code XOFF ( caractère de
code décimal 17) à l'émetteur. L'émetteur arrête immédiatement d'envoyer des données.
Le récepteur continue de traiter les données qu'il a dans sa mémoire tampon. Lorsque sa mémoire
tampon arrive au seuil espace libre suffisant, il envoie le code XON (caractère de code décimal
19) à l'émetteur. L'émetteur se remet à envoyer des données.
Le cycle recommence jusqu'à ce que toutes les données aient été envoyées.
Les normes RS-422A, RS-423, RS485, appleTalk (lignes balancées)
Au fil des années, les concepteurs ont trouvé quelques inconvénients avec les interfaces utilisant
la norme RS-232C:
L'interface RS-232C présente une limitation de vitesse; ce qui s'érige en problème dès qu'un
équipement rapide est utilisé.
De plus, l'interface RS-232C ne fonctionne pas correctement quand les câbles dépassent une
longueur de 15 mètres, et les lignes de la RS-232C sont également sensibles au "bruit" électrique.
Dans l'objectif de pallier à ces insuffisances, l'AIE a introduit la norme RS-422A.
Sur plusieurs plans, une interface RS-422A est similaire à la RS-232C. Par exemple, la plupart
des lignes de contrôle sont identiques et les niveaux de tension sont les mêmes. La particularité de
la norme RS-422 réside dans la manière dont sont gérées les lignes de transmission et de
réception des signaux. Vous vous rappellerez que dans une interface RS-232C, il y a deux lignes;
une pour la transmission des données, une autre pour leur réception. Ces deux signaux utilisent la
masse (ligne 1) comme référence.
La norme RS-422A utilise les fluctuations entre les lignes de transmission et de réception. Les
signaux transmis et reçus sont réellement gérés par deux lignes plutôt qu'une. La différence de
potentiel se mesure entre ces deux lignes plutôt qu'entre une ligne et la masse. L'avantage d'un tel
modèle est que les deux lignes subissent le bruit de la même façon; de la sorte, le bruit ne
déforme pas le signal. Par exemple, si un bruit impulsionnel engendre un changement de +1 V sur
une de ces lignes, il engendrera également +1 V sur l'autre ligne. La différence de potentiel entre
les deux lignes reste la même. Les circuits RS-422 utilisent des connecteurs DB-37, avec 37
broches.
Circuits d'interface
Les données "parallèles" sur le bus de données de l'ordinateur doivent être converties en une suite
de données "série".
Les niveaux de tension, à l'intérieur de l'ordinateur, sont compatibles TTL (+5v et 0v) et doivent
par conséquent être convertis aux niveaux de tension +12v et -12v conventionnels pour la liaison
RS-232C.
Examinons le première étape de cette conversion de données "parallèles" en données "série".
L'opération est assurée par un circuit intégré appelé "Récepteur/Emetteur Universel Asynchrone"
ou UART.
Il existe certaines différences de dénomination pour ce type de circuit. Un circuit intégré similaire
est appelé "Adaptateur d'Interface de Communications Asynchrones" ou ACIA. Dans un
ordinateur de type MACINTOSH, le circuit intégré qui réalise cette conversion est appelé UART
d'entrée/sortie.
Parfois, un seul circuit intégré peut gérer deux ports série distincts.
La figure suivante montre le schéma bloc simplifié d'un UART. A gauche, les tampons de
données de l'UART sont reliés à huit lignes de données dans l'ordinateur. Quand ce dernier veut
envoyer un caractère vers l'extérieur par l'intermédiaire de l'UART, il active le circuit intégré au
moyen des lignes de sélection du circuit. La ligne de lecture/écriture est maintenue au niveau bas,
et l'ordinateur est autorisé à "écrire" un caractère dans un espace mémoire temporaire de l'UART
appelé "registre".
Les sept ou huit bits de ce caractère sont chargés en même temps dans le registre au format
parallèle. Le caractère est alors codé en une série de bits "0" et "1", représentant le code ASCII du
caractère.
Quand tous les signaux de synchronisation des échanges sont corrects (Demande d'émission, Prêt
à envoyer, etc...), les circuits émetteurs envoient le caractère vers l'extérieur, bit par bit.
La conversion se déroule en sens inverse lorsque l'UART reçoit un caractère. Les bits du
caractère reçu sont stockés bit par bit dans un autre registre. Quand l'UART est activé, et que la
ligne de lecture/écriture est au niveau haut, les bits sont envoyés, au format parallèle, aux huit
lignes du bus de données de l'ordinateur.
L'UART offre un large éventail de possibilités. Il peut, par exemple, être programmé pour des
fonctionnements à diverses vitesses - 300 bps, 600 bps, 1200 bps, et plus. La vitesse de
transmission est contrôlée par un nombre stocké dans un emplacement mémoire, au sein de
l'UART, appelé "registre".
Pour changer la vitesse de transmission, l'ordinateur active le circuit intégré et inscrit une
nouvelle valeur dans ce registre. D'autres registres assurent d'autres fonctions telles que la
longueur des mots, type de parité, le nombre de bits d'arrêt, etc...
Structure de base d'un circuit UART
Signaux sur les lignes téléphoniques
Après que l'UART ait réalisé cette conversion, un ensemble circuits internes au "modem"
convertissent les signaux RS-232C en une série de tons audibles qui peuvent être envoyés sur la
ligne téléphonique. Ces circuits reçoivent également des signaux acoustiques en provenance de la
ligne téléphonique, les convertissent en signaux RS-232C, et les envoient à l'ordinateur.
De nos jours, la plupart des modems possèdent des connecteurs qui peuvent se brancher
directement sur le réseau téléphonique. Ces modems sont dits à "couplage direct".
Sur les anciens modèles de modems, le combiné téléphonique devait être présent. Ces modems
étaient "à couplage acoustique".
Les ingénieurs en informatique devaient trouver le moyen d'envoyer l'information numérique sur
ce réseau téléphonique analogique. Le système devait être aussi rapide et fiable aussi possible.
Comme les ordinateurs devenaient de plus en plus rapide et traitaient de plus gros volumes de
données, les ingénieurs ont commencé par développer des méthodes pour la transmission
d'informations numériques sur le réseau téléphonique.
Modulation de fréquence
La norme 103 de la société de téléphone "BELL" a été le premier système de ce type. Un modem
utilisant cette norme peut traiter des données à près 300 bits par seconde (ou 300 bauds). Parce
que chaque caractère requiert 10 bits ou plus, la réelle vitesse de transmission est d'environ 30
caractères par seconde.
Les données numériques sont converties en une série de tons acoustiques, et ces tons sont
envoyés sur la ligne téléphonique. Les circuits indiquent la différence entre un "1" et un "0" par le
changement de la fréquence du signal de sortie analogique (Figure 11A). Ainsi, la fréquence est
utilisée pour indiquer un changement d'un "1" à un "0," d'où le nom de "modulation de
fréquence".
Sous cette norme, le modem utilise diverses gammes de tons, suivant qu'il est "appelant" ou
"répondeur". Les fréquences de fonctionnement de cette norme sont les suivantes:
Modem
Appelant
transmission
réception
Répondeur
transmission
réception
Bit
Fréquence (Hz)
"1"
1270
"0"
1070
"1"
2225
"0"
2025
"1"
2225
"0"
2025
"1"
1270
"0"
1070
Tous ces tons sont dans la plage de fréquences de 1070 à 2225 Hz; ce qui signifie qu'elles sont
audibles.
(A) Modulation de
fréquence
Modulation de phase
différentielle
Méthodes de transmission du modem
9600 bps et au-delà
Les modems récents utilisent des techniques de compression des données, en plus de la
modulation d'amplitude en quadrature, pour atteindre un taux de transmission de 33600 bps. De
nos jours, il y a plusieurs "normes" concurrentes pour les modems de vitesses supérieures à 9600
bps. Lorsque vous configurez une interface utilisant des modems de vitesses supérieures à 9600
bps, vous devez être certains que les modems aux deux extrémités de la ligne sont compatibles.
Ces techniques de transmission à haute vitesse utilisent le câble coaxial, ou des fibres optiques
pour le transfert à grande vitesse d'informations numériques.
2.6.5 INTERFACES PARALLÈLES
2.6.5.1 Principe:
Exemple de liaison parallèle, sur 8 bits
2.6.5.2 Interface périphérique programmable PPI 8255:
Présentation:
L'un des circuits programmables les plus courants est le circuit Interface périphérique
programmable PPI Intel 8255.
Il dispose de 4 groupes (de 4 ou 8 lignes) d'entrées/sorties.
Circuit PPI 8255
Constitution interne du 8255
Programmation du PPI 8255
Modes de Contrôle
LE 8255 permet 3 modes de fonctionnement différents (modes 0, 1 et 2)
Mode 0: Ports A et B sont configurés en entrée ou en sortie et le
port C est divisé en deux groupes de 4-bits qui sont configurés en
entrée ou en sortie.
Mode 1: Même chose que mode 0, sauf que le port C est utilisé
pour le handshaking et le contrôle.
Mode 2: Port A est bidirectionnel (entrée et sortie) et Port C est
utilisé pour le handshaking. Port B n'est pas utilisé.
Ce qui donne 24 lignes commandables.
Les configurations se font par l'écriture d'un mot de commande dans un registre de
contrôle à l'adresse : adresse de base +3
Les ports A, B et C sont, respectivement, aux adresses : adresse de base, adresse de base+1,
adresse de base +2.
8255 CONFIGURATION DES MODES
CONTROL WORD
(HEX)
CONTROL WORD
(DECIMAL)
PORT
A
PORT
B
PORT
C
80
128
OUT
OUT
OUT
82
130
OUT
IN
OUT
85
133
OUT
OUT
IN
87
135
OUT
IN
IN
88
136
IN
OUT
OUT
8A
138
IN
IN
OUT
8C
140
IN
OUT
IN
8F
143
IN
IN
IN
2.6.5.3 Le PIA 6821 (Adaptateur d'interface périphérique)
Le PIA est l'équivalent du PPI de Intel chez Motorola.
2.6.5.4 Interface CENTRONICS
La commande d'une imprimante se fait en mode série ou en mode parallèle. En mode
parallèle le câble et les connecteurs sont plus complexes et la distance est limitée par la
nature de la liaison et des données (TTL).
Fabriquant d'imprimantes la société Centronics a imaginé une liaison parallèle appelée de
son nom et qui s'est imposée comme norme.
Principe
Les données sont transmises sur 8 fils en parallèle.
Lorsqu'elles sont émises par le micro-ordinateur, celui-ci émet un ordre d'acquisition vers
l'imprimante, c'est le signal STROBE (une synchronisation).
L'imprimante répond par un signal BUZY.
Dès qu'elle a terminé, elle émet un signal pour indiquer que cette acquisition s'est faite
ACKNOWLEDGE, et qu'elle est disponible pour la donnée suivante.
Principe de l'échange en "poignée de main" entre le microprocesseur et l'imprimante
Dialogue entre le microprocesseur et l'imprimante
Connexion Centronics
Liaison micro-ordinateur à imprimante en mode parallèle
(connexion type Centronics pour l'IBM PC)
Exemple typique de connexion d'une imprimante parallèle à un microcontrôleur
Liaison parallèle entre une imprimante parallèle et un microcontrôleur MC68HC11, à
l'aide d'un circuit PIA 6821.
2.6.5.5 Commande de clavier
Clavier 16 touches
La commande d'un clavier relève, elle aussi, d'un mode de liaison parallèle.
On procède par un "balayage" des touches. Une des techniques est la suivante :
Exemple un clavier 16 touches, on utilise un mot de 8 bits, scindé en 2 groupes de 4-bits.
Le clavier est organisé en 4 lignes par 4 colonnes.
Corriger : porte NOR
et non pas NAND
Il n'y a aucun contact entre les colonnes et les rangées, au repos. C'est la touche qui
provoque le contact.
Au départ les 4-bits sortant sont à 1, les bits 4 à 7 restent à 0 (des résistances de rappel au
0).
Si une touche est pressée : la ligne correspondante passe à 1, la porte NOR (et non pas
NAND sur la figure) passe de 1 à 0 et provoque une demande d'interruption.
Le microprocesseur va émettre vers le circuit d'E/S des mots binaires chargés de balayer
les colonnes : 0001, puis 0010, puis 0100 et 1000, cette séquence s'interrompe aussitôt
qu'une touche pressé a été détectée (à chaque attaque d'une colonne par 1, les bits 4 à 7
sont lus jusqu'un bit à 1 soit détecté.
Le processus s'arrête dès que la touche pressée a été localisée par sa colonne et sa ligne.
Clavier de l'IBM PC
La scrutation des touches se fait en mode parallèle, mais la liaison clavier à unité centrale
se fait en mode série.
Les touches du clavier (83, 105, ..) sont scrutés via deux ensembles électroniques:
- l'interface située sur la carte unité centrale,
- l'électronique intégrée au clavier (exemple microprocesseur 8048).
Le connecteur d'accès à l'unité centrale est de type DIN à 5 broches.
Remarque : Problème du régime transitoire dans la lecture d'une touche :
Dans la pratique la connexion entre une ligne et une colonne ne se fait pas de manière idéale. Un
contact ne donne pas un niveau logique franc et stable mais il peut osciller pendant un court laps
de temps (2 à 20ms). Il faut donc attendre ( une dizaine de ms) que la connexion donne un niveau
logique stable pour prendre en compte la touche activée. La figure suivante montre sur un
chronogramme ces zones d'instabilités.
Zones d'instabilité lors de l'activation d'une touche.
2.6.5.6 Commande d'un moteur pas à pas
Introduction:
Le moteur pas à pas est un transducteur électromécanique que l'on associe à une logique de
commande.
Sa résolution est le nombre de pas par tour, correspondant à un nombre égal de déplacements
angulaires, provoqués par des impulsions.
Avantage par rapport au moteur classique : On peut connaître sa position au nombre de pas près !
Il existe trois types de moteur pas à pas:
•
•
•
Moteur à aimant permanent
Moteur à reluctance variable
Moteur hybride
Le moteur à aimant permanent:
Il est composé de deux parties :
Le rotor qui est la partie mobile, il comporte un nombre pair de pôles à aimant permanent
magnétisé dans le sens radial.
Le stator qui est la partie fixe, composé d'encoches comportant 2, 3, 4 enroulements
électriques.
Remarque : Il existe deux catégories de moteurs pas à pas:
•
•
Bipolaires
Unipolaires
Le moteur pas à pas bipolaire :
Deux enroulements au stator avec courants bidirectionnels (voir schéma précèdent).
Le moteur pas à pas unipolaire :
Quatre enroulements au stator avec sens des courants unidirectionnels.
Remarque : Les deux enroulements ne sont jamais excités ensembles.
Les moteurs pas à pas à réluctance variable:
Le rotor est constitué d'un nombre impair de pôles non magnétisés, la position du rotor
est déterminée par la réluctance des tôles, le rotor suit les lignes de champs.
Le moteur hybride:
C'est une combinaison du moteur à aimant permanent et à reluctance variable. Le rotor
est cylindrique magnétisé dans le sens axial à structures dentées (décalées les unes par
rapport aux autres).
Comparaison des différents types:
Modes d'excitation des phases:
Pour un moteur bipolaire:
1-Pas entier une phase excitée :
Remarque : Les courants dans les phases sont bidirectionnels, cela nécessite donc un circuit
capable d'inverser le sens du courant dans un enroulement (L298).
2-Pas entier, deux phases excitées :
Remarque : Dans ce mode de fonctionnement le couple est deux fois plus important.
3-Micro pas, une phase excitée puis deux :
Remarque : Le couple est irrégulier dans ce mode de fonctionnement.
Changement de sens :
Pour changer le sens de rotation du rotor il faut inverser l'ordre d'excitation des phases.
Commande des moteur pas à pas :
La commande de ces moteurs est souvent confiée à deux circuits spécialisés intégrants
pour l'un la partie séquentielle (L297) et pour l'autre la partie puissance (L298), parfois
un seul et même circuit intègre les deux fonctions et suffit à piloter le moteur. Deux
signaux sont nécessaires, un pour le sens (0 = sens horaire, 1= sens anti-horaire), l'autre
étant un signal d'horloge synchrone sur fronts montants ou descendants suivant les
circuits.
Pour faire tourner le moteur, il faut réaliser successivement l'alimentation des bobinages
avec les polarités convenables. Comme à l'habitude il va falloir faire un compromis entre
diverses solutions.
Le micro-ordinateur, moyennant un programme (et une charge) relativement important
est tout à fait capable de prendre en charge la commandes: le sens de rotation, le nombre
de pas et la vitesse. La carte à des amplificateurs placés entre les fils de données du bus
de l'Interface et les bobinages du moteur.
D'un autre côté, il serait confortable de disposer d'une carte d'interface pour moteurs pas à
pas à laquelle il suffirait de donner trois commandes: le sens de rotation, le nombre de
pas et la vitesse. La carte d'interface risque alors de devenir complexe et par conséquent
chère.
Au titre du compromis, la commutation des bobinages du moteur est confiée à l'interface,
les ordres d'avance et de sens de rotation seront du ressort du micro-ordinateur.
Description du circuit de commande
Pour la commutation correcte des tensions sur les bobinages du moteur, RTC diffuse un
circuit intégré SAA 1027 (figure).
Ce circuit alimente directement le moteur pas à pas à partir de signaux de commande
relativement simples:
R qui donne le sens de rotation.
T qui fait tourner le moteur d'un pas à chaque front positif.
S qui bloque le moteur et rend le circuit SAA 1027 insensible aux autres
commandes quand
S=0.
Les connexions d'un SAA 1027 sont donc les suivantes:
Borne 2 (S) reliée au + 12 V fourni par le circuit intégré 7812.
Borne 12 et 5 reliées à la masse.
Bornes QI,2,3,4 reliées aux enroulements du moteur.
Borne 14 reliée à une constante de temps 100 Ω/0.1 mFd.
Borne 4 (Vb) reliée au 12 V par 270 Ω.
Borne 13 (Vd) reliée au 12 V par une diode Zener de 5,1 V, afin d'augmenter
légèrement le couple.
Il est possible de prévoir deux circuits SAA 1027. Il ne reste plus qu'à fournir les signaux
convenables aux entrées T et R de ces deux circuits à partir des commandes délivrées par
le micro-ordinateur.
Les entrées S et T des circuits SAA 1027 nécessitent des signaux électriques variant entre
0 et 12 V ce qui interdit de les raccorder directement à des circuits TTL alimentés sous 5
V. L'adaptation entre 5 et 12 V est réalisée par des inverseurs à collecteurs ouverts type
7406 ou 7416 chargés par des résistances de 10 kΩ.
Les commandes venant du micro-ordinateur se présentent sur les fils de données D0 à D3
Ces commandes sont présentées aux quatre bascules type D des circuits 74LS74 qui
prennent en compte les états des fils D0 à D3 quand le fil d'écriture connecté a leur entrée
d'horloge effectue sa transition positive.
Comme l'ordre d'écriture consiste en une impulsion négative, son front positif est
obligatoirement précédé d'un front négatif. Ce front négatif arme le monostable 74LS123
ce qui libère les mémoires de commande de pas. On remarque que les mémoires de
commandes de sens ne sont pas connectées au monostable. A sa retombée, le monostable
remet ou ne remet pas à zéro la bascule (cela dépend de la donnée que lui a fait prendre
en compte l'impulsion d'écriture) ce qui provoque ou ne provoque pas une demande de
pas. Le chronogramme est donné sur la figure suivante.
.
Exemple d'application :
Téléchargement