• Aucun résultat trouvé

Exemple : contrˆ ole d’un thermocouple

Dans le document ARCHITECTUREDES ORDINATEURS (Page 112-118)

5.4 Les coprocesseurs

6.1.1 Exemple : contrˆ ole d’un thermocouple

Le syst`eme de la figure 6.2 est constitu´e d’un processeur et de deux unit´es p´eriph´eriques :

− Une unit´e d’entr´ee constitu´ee d’un dispositif de mesure de temp´erature (thermocouple muni d’une logique `a seuil) d´elivrant une tension de 5 V si la temp´erature d´epasse un seuil donn´e, 0 V sinon ;

− Une unit´e de sortie r´eduite `a une diode ´electroluminescente qui devra s’allumer lorsque la temp´erature d´epasse le seuil en question et ce, sous contrˆole de l’ordinateur.

Bus Processeur

Unité périphérique :

diode Unité

d'échange

Unité périphérique : thermocouple

Figure6.2 : Dispositif de contrˆole

Le processeur utilis´e pour commander ce dispositif est dot´e d’un bus de donn´ees bidirectionnel de 8 bits et d’un bus d’adresses de 16 bits. Il dispose

par ailleurs d’un registre accumulateur d´esign´e par A. On suppose que les seuls travaux que doit ex´ecuter l’ordinateur sont la lecture du thermocouple et la commande d’allumage ou d’extinction de la diode selon l’organigramme de lafigure6.3.

Lecture état du thermocouple

Commande de la diode

Figure6.3 : Organigramme du traitement

Lorsque le processeur ex´ecute un programme, les bus d’adresses, de donn´ees et de contrˆole voient leur ´etat ´evoluer au cours du temps. L’ex´ecution d’une op´eration d’´ecriture ou de lecture (en m´emoire ou sur d’autres dispositifs) se fait par pr´esentation :

− sur le bus de donn´ees : de la valeur de ladonn´eeque l’on veut transf´erer,

− et sur le bus d’adresses : de l’adresse de l’unit´e de sortie ou d’entr´ee.

Suuposons que l’adresse de l’unit´e d’entr´ee est 140C16 et celle de l’unit´e de sortie 140D16. L’accumulateur contient la donn´ee 3216. Si le processeur ex´ecute une instruction de rangement de l’accumulateur `a l’adresse 140C16, l’´etat des bus de donn´ees et d’adresses est, pendant un temps tr`es court, le suivant :

Bus de donn´ees

Num´ero de ligne 7 6 5 4 3 2 1 0 Etat de la ligne 0 0 1 1 0 0 1 0 Bus

d’adresses

Num. ligne 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Contenu 0 0 0 1 0 1 0 0 0 0 0 0 1 1 0 0

Un diagramme des temps d’une instruction d’´ecriture est donn´efigure 6.4. On y trouve l’horloge du processeur, le bus de donn´ees, le bus d’adresse et la ligne d’´ecriture du bus de contrˆole. Cette derni`ere sert `a valider toute op´eration d’´ecriture engendr´ee par l’ex´ecution d’une instruction d’´ecriture (en m´emoire ou vers un autre dispositif de sortie).

Bus d'adresses Signal d'horloge

Bus de données Commande d'écriture en mémoire M'

Adresse valide Donnée valide

Figure6.4 : Diagramme des temps

Les adresses sont utilis´ees pour s´electionner l’unit´e d’entr´ee-sortie choisie.

Seul le chiffre (A0) de poids faible les diff´erencie :

− entr´ee : 140C (hexa) = 0001 0100 0000 1100

− sortie : 140D(hexa) = 0001 0100 0000 1101 On d´ecode les 15 bits de poids fort (sch´ema6.5).

Décodage de 0001 0100 0000 110 A0

A1 A15

A0 S'

Figure6.5 : D´ecodage d’adresse

Les s´elections seront suppos´ees toujours se faire par le “niveau logique” 0.

La sortie du d´ecodeur fournira un 0 (S) lorsque la configuration ad´equate se trouve en entr´ee. Cela nous donne les tableaux de Karnaugh des s´elections d’entr´eeSe et de sortieSs:

S S

Se 0 1 Ss 0 1

A0 0 0 1 A0 0 1 1

1 1 1 1 0 1

Table 6.1: Tableaux de Karnaugh des s´elections.

d’o`u : Se=S+A0 etSs=S+A0 et le sch´ema de d´ecodage des adresses (fig.6.6).

La s´election de la sortie se fait de fa¸con fugitive lorsque s’ex´ecute l’instruction d’´ecriture.

Α0

Figure6.6 : Sch´ema de s´election

Bus d'adresses

Figure6.7 : Commande de la diode

Or la diode ´electroluminescente doit rester allum´ee, ou ´eteinte, en fonction de l’´etat du thermocouple. On va utiliser un ´el´ement de m´emoire, ici une bascule J-K maˆıtre-esclave, pour commander cette lampe. L’information `a m´emoriser ´etant 0 ou 1, une seule ligne du bus suffira. Choisissons D0. Le chargement de la bascule utilise les lignes de commande d’´ecriture en m´emoire et de s´election de sortie. On remarque sur le sch´ema6.7 que la commande de chargement (front descendant de M+DS) intervient lorsque la donn´ee est valide sur le bus de donn´ees (figure 6.8).

M' DS'

Figure6.8 : Chargement de la bascule de commande

L’adaptation des signaux ´electriques concerne aussi bien l’entr´ee que la sor-tie. L’unit´e d’entr´ee d´elivrant des niveaux de tension 0 V ou 5 V, il n’y a pas de probl`eme de compatibilit´e. On peut en effet supposer que le microprocesseur travaille sur ces niveaux de tension ou qu’il y a une adaptation de tension qui permet d’utiliser de tels niveaux. Pour le dispositif de sortie, l’adaptation se fera par interposition d’un transistor mont´e en collecteur ouvert. En effet, si la diode ´electroluminescente ´etait directement aliment´ee `a partir du micropro-cesseur, ou d’une porte logique quelconque, de technologie TTLpar exemple, ce dispositif pourrait ˆetre d´etruit. L’intensit´e du courant `a fournir serait en effet trop forte pour ses circuits de sortie. Il est donc n´ecessaire d’introduire un

´el´ement capable fournir l’´energie requise pour alimenter cette diode. On peut utiliser un transistor mont´e selon le sch´ema 6.9.

5V

0V

Transistor Diode

électroluminescente 270 Ω

10 kΩ E

A

Figure6.9 : Montage du transistor

Ce transistor fonctionne comme un interrupteur command´e `a partir de son entr´eeE (labasedu transistor). Lorsque la tension en entr´ee est suffisante (ici 5 V), le transistor devientpassantousatur´e(interrupteur ferm´e). Le potentiel au pointAest mis `a une valeur proche de 0 V. L’intensit´e qui traverse la diode devient suffisante pour que celle-ci s’´eclaire. Dans le cas contraire, le transistor est dit bloqu´e (interrupteur ouvert). Le potentiel au point A est de 5 V et aucun courant ne passe dans la diode qui reste ´eteinte.

Donc, si l’on veut allumer (resp. ´eteindre) la diode, il faudra charger l’accumulateur avec une valeur paire (resp. impaire) et l’envoyer sur les lignes de donn´ees du bus. La ligne D0 (bit de poids faible) prendra ainsi les valeurs 0 ou 1.

Pour allumer la diode, deux instructions sont n´ecessaires :

− la premi`ere, qui charge l’accumulateur avec une valeur impaire pour que D0 prenne la valeur 1,

− la seconde, qui transf`ere le contenu de l’accumulateur `a l’adresse 140D16. La s´election de l’unit´e d’entr´ee se fait comme pour l’unit´e de sortie.

Consid´erons le cas plus g´en´eral d’une unit´e d’entr´ee et d’une unit´e de sortie accessibles, `a partir d’un bus de donn´ees bidirectionnel et d’un bus d’adresses, selon le sch´ema6.10.

U.E.

Sortie

U.E.

Entrée Bus d'adresses Bus de données

Figure6.10 : Le bus et les unit´es d’entr´ee et de sortie

Chaque unit´e ´etant accessible `a partir du mˆeme bus de donn´ees, il y a risque de d´et´erioration de l’unit´e d’entr´ee lorsqu’on effectue (entre autres) une op´eration d’´ecriture vers l’unit´e de sortie. Les informations vont en effet se trouver pr´esentes sur les sorties de l’unit´e d’entr´ee. La solution adopt´ee utilise des portes trois ´etats. Lorsque l’unit´e d’entr´ee n’est pas s´electionn´ee (adress´ee), ses sorties sont mises en ´etat haute imp´edance.

Dans le cas pr´esent, le sch´ema de montage utilisera une telle porte trois

´etats (figure6.11).

Commande haute impédance (sélection d'adresse)

Dispositif d'entrée Bus de

données

Figure6.11 : La porte trois ´etats

On notera qu’il en est de mˆeme pour les “sorties” de la m´emoire mise en

´etat haute imp´edance lorsque celle-ci n’est pas adress´ee.

La lecture de l’´etat du thermocouple se fait par chargement de l’accumulateur avec le contenu de l’adresse 140C16.

debut:

mov A,(140CH) ; lecture de l’etat du thermocouple.

; Le bit est a 0 si la temperature est

; inferieure au seuil choisi,

; a 1 sinon

mov (140DH),A ; commande de la diode

; (seul le bit 0 est actif) jmp debut

On peut d´ej`a noter ici la mauvaise utilisation du processeur. Un disposi-tif ne d´etectant que les changements d’´etat du thermocouple et avertissant le processeur de ces changements pourrait certainement lib´erer ce dernier pour d’autres tˆaches. On reviendra sur ce point dans le paragraphe traitant des interruptions.

J Décodeur K

A0

A1 à A15

Entrée DE' DS'

Bus de contrôle

Bus de données 5V

Sortie Diode

0V M'

D0

Bus d'adresses Interface

OU OU

OU

Thermo-couple

D0

M'

Figure6.12 : Sch´ema de montage

Dans le document ARCHITECTUREDES ORDINATEURS (Page 112-118)