Vous êtes sur la page 1sur 133

TD Informatique Industrielle IUT Troyes

Cours 1 - La numration
I - Dfinitions I-1) Expression gnrale La base b d'un systme de numration reprsente le nombre d'units d'un certain rang, ncessaires pour former une unit de rang immdiatement suprieur. L'ensemble Bb =[0,1,2....b-1], soit b caractres (chiffres en base 10) quantifie le nombre d'units d'un rang quelconque. Tout nombre en base b s'crit Nb=an......a1a0a-1....am et s'exprime en base 10 l'aide de la base b : (E-1) N10 = an.bn + an-1.bn-1+.....+a0.b0 + a-1.b-1 + ..... + am bm

On peut aussi l'exprimer en base b l'aide de la base 10 : (E-2) Nb = an.(10)bn + an-1.(10)bn-1+.....+a0.(10)b0 + a-1.(10)b-1 + ..... + am .(10)bm

o ai est un chiffre de base b positionn au rang i. n et m sont les rangs extrmes. n>0 pour la partie entire et m<0 pour la partie fractionnaire. b est un nombre crit en base 10 et bi exprime le poids du rang i. Remarque : (10)b=(b)10 et d'autre part ai est compris entre 0 inclu et (b)10 exclu. I-2) Rappels : la numration dcimale. La base b=10, donc Bb=[0,1,....,9]. Ici N10 et Nb sont confondus. Soient quelques exemples : N10=(5807)10=(5.103+8.102+0.101+7.100)10=(5000+800+7)10 N10=(4,75)10=(4.100+7.10-1+5.10-2)10=(4+0,7+0,05)10 II - Systme de numration binaire. II-1) Expression Ce systme cr par Leibnitz (17e s) utilise la base 2 donc Bb=[0,1]. Chaque nombre se prsente ainsi : N2=(100,11)2=(1.1022+0.1021+0.1020+1.102-1+1.102-2)2 A partir de l'quivalence b=(2)10=(10)2 , il vient : N2=(100,11)2=(1.22+0.21+0.20+1.2-1+1.2-2)2 Numration binaire : N10 = an.2n + an-1.2n-1+.....+a0.20 + a-1.2-1 + ..... + am .2m II-2) Conversion Binaire-Dcimal Mthode : partir de l'quivalence donne ci-dessus, la conversion de N2 s'obtient en dcomposant le nombre en une somme de termes selon l'expression (E-1). Exemple : N2=(100,11)2 -> N10=1.22+1.2-1+1.2-2=(4+0,5+0,25)10=(4,75)10 II-3) Conversion Dcimal-Binaire. Mthode : On effectue une suite de divisions successives du nombre N10 par la base b, les restes obtenus constituant chaque rang le caractre ai du nombre N2. Exemple : N10 = (14)10.

TD Informatique Industrielle IUT Troyes

14 bit le moins significatif (LSB)

2
2

Autre prsentation quotients 14 7 3 1


0 restes rang 0 1 1 rang 3

0 7

1 3

2 1 1
1 0

bit le plus significatif (MSB)

Donc (14) = (1110) 10 2

Conversion par dcomposition en puissance de 2 (cas des petits nombres) (14)10 = (0.16) + (1.8) + (1.4) +(1.2) (+0.1) = (01110)2. II-4) Cas des nombres fractionnaires. Mthode : On effectue une suite de multiplications successives de N10 par la base b, de la partie fractionnaire seulement, la partie entire des rsultats obtenus constituant chaque rang le caractre ai du nombre N2. Exemple : N10 = (0,3)10. Autre reprsentation 0,3 mul x 2 x2 parties 0,3 entires rang -1 quotients -1 0,6 0 0 0 , 6 rang 1,2 1 x2 0,4 0 1 1 , 2 -> 0,2 rang -2 0,8 rang -4 0 x2 0,4 rang -3 0 (0,3) = (0,01001...) 2 x2 10 0,8 rang -4 0
etc.... Remarque : cette conversion ne s'arrte pas car dans la reprsentation binaire, on ne peut exprimer exactement tous les nombres fractionnaires de N10. Il faut donc se limiter un format en respectant la prcision dcimale souhaite (ex 10-5).

II-5) Prcision fractionnaire. Pour un nombre donn en base 10, avec une prcision de 10-n prs, on effectue une conversion binaire telle que l'unit du rang du dernier chiffre obtenu soit gale ou infrieure celle du dernier rang donn en base 10. Donc pour la base 2 : 1.2-m 1.10-n log10 2-m log1010-n Soit m n/log102 = n. 3,32 Prenons un exemple. Soit (0,3)10 10-4 prs. m 4.3,32 soit 13,28, c'est dire 14 chiffres aprs la virgule. En binaire : (0,3)10 = (0,01001100110001)2. II-6) Utilisation pour la longueur de conversion dcimale-binaire. Ce rsultat peut tre utilis dans la dtermination du format du nombre binaire quivalent (occupation et longueur des registres binaires). En effet, si N10 a une longueur de n chiffres et si N2 a une longueur de m chiffres, pour des nombres entiers on a : m 3,32 n Exemples : (32)10 = (100000)2 n= 2 m=6 m/n=3 (500)10 = (111110100)2 n=3 m=9 m/n=3 (64)10 = (1000000)2 n=2 m=7 m/n=3,5 Dans ce dernier cas, le registre binaire sera de longueur directement suprieure (3.32 n)

TD Informatique Industrielle IUT Troyes

III - Autres systmes de numrations. III-1) Systme de numration octale. La base est b=8 et l'ensemble B8 = [0,1,2,...7]. Il y a quivalence entre : b=810=108=(1000)2 et 8n=23n Expression : N8=(13257)8=(1.1084+3.1083+2.1082+5.1081+7.1080)8 ou encore : N8=(265,42)8=(2.1082+6.1081+5.1080+4.108-1+2.108-2) Conversion : partir des relations d'quivalence ci-dessus donne (5807)10 pour le premier et (181,53125)10 pour le deuxime. Conversion dcimale octale : La mthode est analogue celle employe pour la conversion dcimale binaire. On pourra aussi utiliser des tables de conversion. Exemple : Nombre entier div 8 (5807) 725 90 11 1 7 5 2 3 Nombre fractionnaire x8 0,83 6,64 5,12 0,96 7,68 0 6 5 0 7

(5807) =(13257) 8 10

(0,83) = (0,6507) 8 10

Remarque : 1) cette base qui est une puissance de 2 n'utilise souvent pas plus de chiffres qu'en dcimal. 2) La prcision fractionnaire est ici m n/log108 = 1,1.n III-2) Systme de numration hexadcimale. La base est b=16 et l'ensemble Bb=[0,1,2....9,A,B,C,D,E,F]. Chaque lettre a une quivalence dcimale (voir tableau). Expression : Relations d'quivalence : b=1610=1016=208=(10000)2 et 16n=24n N16=(16AF)H = (1.10163 + 6.10162 + A.10161 +F.10160) N16 = (B5,23)H = (B.10161 + 5.10160 + 2.1016-1 + 3.1016-2). Conversion hexadcimal-dcimal : Une premire mthode consiste utiliser l'expression (E-1). On trouve ainsi (5807)10 et (181,137)10 pour les nombres proposs ci-dessus. Numration hexadcimale : N2 = an.16n + an-1.16n-1+.....+a0.160 + a-1.16-1 + ..... + am .16m Une deuxime mthode consiste utiliser un tableau de conversion permettant une rapidit de calcul ainsi qu'une simplification de celui-ci. Exemple : (A37F)H = (A000 +0300 +0070 + 000F)H = (40960 + 768 + 112 + 15)10 = (41855)10.

TD Informatique Industrielle IUT Troyes

Nombres entiers hexadcimaux 1 2 3 4 5 6 7 8 9 A B C D E F 10 11 12 13 14 1E 20 32 40 64 FF 100 12C 1F4 200 3E8 FFF 1000

Equivalents en base 10 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 30 32 50 64 100 255 256 300 500 512 1000 4095 4096

nombres fractionnaires hexadcimaux 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 0,A 0,B 0,C 0,D 0,E 0,F 0,FFF FFF....

Equivalents en base 10 0,0625 0,125 0,1875 0,25 0,3125 0,375 0,4375 0,5 0,5625 0,625 0,6875 0,75 0,8125 0,875 0,9375 0,999 999

Conversion dcimale hexadcimale : la mthode est toujours la mme, mais il faut convertir les restes des divisions ou les parties entires des produits en hexadcimal lorsqu'ils sont compris entre 10 et 15. Exemple :

Nombre entier 16 5807 362 22 1 F A 6

Nombre fractionnaire x 16 O , 66 0 , 10 , 56 A 8 , 96 8 15 , 36 F 5 , 76 5

N = (16AF) 16 16

N = (0,A8F5) 16 16

Une autre mthode consiste utiliser le tableau de conversion. N10 = (5807)10 = (5000 + 800 + 7)10 N16 = (1388 + 0320 + 0007)16 = (16AF)16 l'addition est faite ici en hexadcimal. On peut aussi passer par le binaire. Remarques : 1) La base tant aussi une puissance de 2 mais qui ne ncessite cependant autant ou moins de caractres que la base dix pour la mme quantit d'units.

TD Informatique Industrielle IUT Troyes 2) La prcision fractionnaire est m n/log1016 = 0,83.n. Dans l'exemple (0,66)10 est 10-2 prs m 1,66 donc N16 = (0,A9)16 III-3) Conversions entre systmes de numration (2, 8 ou 16). N8 -> N16 On remplace chaque caractre de rang i de N8 par son quivalent binaire. Exemple : (23,76)8 = (010 011,111 110)2. N16 -> N2 mme mthode. Exemple : (A8)16 = (1010 1000)2. N2 -> N8 On remplace chaque groupe de 3 bits par son quivalent octal. Exemple : (101,110 010 1)2 = (5,624)8. N2 -> N16 mme mthode mais par groupe de 4 bits de N2. Exemple : (0111 1010,1001 11)2 = (7A,9C)H. Applications : Ces conversions entre systmes servent : - crire sous forme condense des mots de 8, 16 et 32 bits dans les programmes, - convertir rapidement les nombres dcimaux en binaire (passage par N16 ou N8), - effectuer des oprations.
HEXADECIMAL ----> DECIMAL 1000 2000 3000 4000 5000 6000 7000 8000 9000 A000 B000 C000 D000 E000 F000 4096 8192 12288 16384 20480 24576 28672 32768 36864 40960 45056 49152 53248 57344 61440 0100 0200 0300 0400 0500 0600 0700 0800 0900 0A00 0B00 0C00 0D00 0E00 0F00 256 512 768 1024 1280 1536 1792 2048 2304 2560 2816 3072 3328 3584 3840 0010 0020 0030 0040 0050 0060 0070 0080 0090 00A0 00B0 00C0 00D0 00E0 00F0 16 32 48 64 80 96 112 128 144 160 176 192 208 224 240 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

DECIMAL ---> HEXADECIMAL 10000 20000 30000 40000 50000 60000 2710 4E20 7530 9C40 C350 EA60 1000 2000 3000 4000 5000 6000 7000 8000 9000 03E8 07D0 0BB8 0FA0 1388 1770 1B58 1F40 2328 100 200 300 400 500 600 700 800 900 0064 00C8 012C 0190 01F4 0258 02BC 0320 0384 10 20 30 40 50 60 70 80 90 000A 0014 001E 0028 0032 003C 0046 0050 005A

TD Informatique Industrielle IUT Troyes

IV - Exercices. 1) Trouver le nombre reprsent par ces bouliers. Les crire dans leur base et en base 10. b3 b2 b1 b3 b2 b1 b0

b0

boules utilises

2) On dnombre en base 10 des lments d'un ensemble. Ces nombres crits en base b sont nots Nb. Dans quelle base sont-ils crits ? Soit 19 lments ----> Nb = (201)b ---> base = ? Soit 170 lments ---> Nb = (442)b ---> base = ? 3) On compte en base b un ensemble de chaussures. Le nombre de paires est : Nb = (352)b. Le nombre de chaussures est : Nb = (724)b. Dcouvrir dans quelle base s'est fait le dnombrement et quel est le nombre de chaussures exprim en base 10. 4) Etude de conversions : * Exprimer N2, N10, N8 pour N16 = (ABCD)16 ; (10)16 ; (A07F)16 ; (F6,B8)16 ; (0,B2F)16. * Exprimer N2, N16, N8 pour N10= 105 ; 29 ; 35 ; 14625 ; 123,312. * Exprimer N10 pour N8 = (476)8 ; (350,32)8 ; (0,327)8.

TD Informatique Industrielle IUT Troyes

Cours 2 - Reprsentation des nombres.


Un nombre est reprsent en format fixe par l chiffres dans sa base. Il s'crit donc : Nb = anan-1.......a1a0 avec l = n+1. La quantit de nombres de l chiffres qu'il est possible de reprsenter s'appelle : la capacit de reprsentation. C'est : C = N10max + reprsentation du zro soit C=Nmax+1 = bl et en exprimant l (le format) : l=logbC=Ln(C)/Ln(b) (sera arrondie la valeur suprieure)

Soient quelques exemples : - La longueur des mots binaires tant l=11, quelle est la capacit de reprsentation C ? C=211=2048 (=2K) - Quelle doit tre la longueur d'un mot binaire pour avoir une capacit de reprsentation C=64 kilo ? b=2 l=Ln(C)/Ln(2) soit 15,9 bits => l=16 bits. - Si C = 10 Mga, quelle doit tre la longueur des mots binaires crits en base 16 (hexadcimal) ? b=16, l=5,8 soit l=6 caractres hexa (ou 3 octets). I - Reprsentation des entiers positifs. L'ensemble des entiers positifs donns en format fixe est N=[0,1,2,3,.....,Nmax]. Sa reprsentation circulaire est : Nmax 0 1 2 Pour une capacit de reprsentation C donne 3 .. .. l'utilisation de l'opration INC (incrmentation . . de +1) est possible. Mais on constate que Nmax +1 = 0. Cala signifie que pour le format considr, il y a dpassement. Celui-ci tant marqu par un indicateur V=1 (Overflow) DEC INC

- Dans l'utilisation de l'opration DEC (dcrmenter), on remarque que 0-1 = Nmax. Il faut alors prendre en compte la retenue dans l'opration suivante (C=1, Carry). Exercice : Montrer que pour l=8 en binaire la somme de A=16010 (soit A0H) et de B=12710 (soit 7FH) est 3210 et V=1. II - Reprsentation des entiers relatifs. L'ensemble des entiers relatifs donns en format fixe est : N = [-Nmax,...,-1,0,1,.....,+Nmax]. Il est donc ncessaire de coder le signe algbrique. Pour cela, plusieurs reprsentations sont possibles. II-1) reprsentation par bit de signe et valeur absolue. Si le nombre s'crit Nb = (s an-1.....a1 a0 )b alors s reprsente le signe et an-1...a0 la valeur absolue. Le bit d'ordre n est alors rserv au signe et vaut 1 si s signe - et 0 si s signe +. Reprsentation circulaire :

TD Informatique Industrielle IUT Troyes

..

Nmax 0 1 2 3

..

. Cette reprsentation : -ncessite un traitement spar du signe et de la valeur absolue dans les oprations arithmtiques, -possde deux reprsentations du zro : -0 = 10000000 +0 = 00000000

<0

>0

-1

-0

+Nmax

Exemples : Si b=2, l=8 => C=256. (+13)10 = (00001101)2 = (0D)H (-13)10 = (10001101)2 = (8D)H +Nmax = (01111111)2 = (7F)H = (+127)10 -Nmax = (11111111)2 = (FF)H = (-127)10 II-2) Reprsentation par le complment restreint de N (complment 1). Dans cette reprsentation, le signe est trait avec la valeur. Il est cependant reprsent par le bit de poids fort. Le complment restreint CR N = (2l-1)10 - N10 avec (2l-1) plus grand nombre que l'on puisse reprsenter avec le format de l bits. Il s'obtient donc en inversant chaque bit de N2 sans oublier le bit de poids fort (signe).

Donc -N2 s'crit N2


Reprsentation circulaire : . . -1 -0 0 1 2 3 Exemple : Si l=8 et b=2 C=256. Alors Nmax=(127)10=(7F)H Si B10=75, alors -75=CRB=255-75=180 et A10=100 Dans ce cas A-B=(100-75)=100+180, c'est gal 255+25=25 rsultat positif. (-75)10=(01001011)2 ;(-75)10=(10110100)2=/N2

..

<0

>0

+Nmax Nmax Remarques : - Il y a deux reprsentations du zro +0 : (00)H et -0 (FF)H. - les instructions INC et DEC ne sont pas utilisables partout. - Connatre le signe d'un rsultat est parfois complexe : par exemple, (-75)10 =(180)10, (-25)10 = (230)10 (-75-25)=(180+230)=(410)10=(255+155)=155 (>127) d'o 255-155=(100)=>(-100). II-3) Reprsentation par le complment vrai de N (complment deux). On le dfinit comme tant la valeur : Cv N = (2l)10-N10 = CRN + 1

TD Informatique Industrielle IUT Troyes

Il s'obtient donc en ajoutant 1 au complment restreint. Le premier bit reste toujours le bit de signe.

Donc -N s'crit N +1
2 2 Reprsentation circulaire -1 0 1 2 3 .. .. .

DEC <0

INC >0

Le demi-cercle s'obtient (pour les nombres ngatifs) en dcalant (INC) d'un pas de faon superposer +0 et -0. Il y a donc un seul zro et il est possible d'utiliser les oprateurs INC et DEC.

Nmax-1 +Nmax Exemples de reprsentation Valeur algbrique dcimale -127 -105 -15 -12 -3 -2 -1 0 +1 +2 +3 +12 +15 +105 +127 Reprsentation des nombres par : Bit de signe et valeur absolue 1111 1111 1110 1001 1000 1111 1000 1100 1000 0011 1000 0010 1000 0001 0000 0000 0000 0001 0000 0010 0000 0011 0000 1100 0000 1111 0110 1001 0111 1111 Complment restreint 1000 0000 1001 0110 1111 0000 1111 0011 1111 1100 1111 1101 1111 1110 1111 1111 0000 0000 0000 0001 0000 0010 0000 0011 0000 1100 0000 1111 0110 1001 0111 1111 Complment vrai 1000 0001 1001 0111 1111 0001 1111 0100 1111 1101 1111 1110 1111 1111 0000 0000 0000 0001 0000 0010 0000 0011 0000 1100 0000 1111 0110 1001 0111 1111

Exemples : N10 = 75 -> (01001011)2 N10 = -75 -> (10110101)2 100 -75 =25 50 -75 -25 01100100 -01001011 00011001 00110010 -01001011 11100111 01100100 +10110101 1 00011001 lecture directe du rsultat 00110010 +10110101 11100111 le rsultat est en complment deux : 256231=25

Remarques : 1) Pour effectuer une soustraction, il suffit de faire une addition avec le complment deux. Le rsultat se lit directement en complment deux : - si le signe est + la lecture est directe, - si le signe est - on convertit le rsultat en recherchant le complment deux de celui-ci.

TD Informatique Industrielle IUT Troyes

2) Il existe une autre mthode pour obtenir le complment vrai. On examine le nombre binaire en commenant par le bit de poids faible. On conserve les zros s'il y en a jusque et y compris le premier 1 rencontr. On complmente ensuite les autres bits. III - Reprsentation des nombres fractionnaires. La situation de la virgule dans les nombres fractionnaires se fait sur des conventions suivant sa position l'intrieur de celui-ci. Elle n'est cependant pas reprsente. III - 1) Virgule place un rang fixe quelconque. Dans cette convention, la virgule est place de faon immuable. Exemple de reprsentation : (l=8) position conventionnelle de la virgule

a 7 a...............................a 2 6 signe partie entire

a a0 1 Partie fractionnaire

Exemples : (+14,75)10 = +(1110,11)2 -> (00111011)2 (-7,5)10 = -(0111,1)2 -> (1110010)2=Cv N2 (le complment vrai est pris sur tous les bits) (+20)10 = +(10100)2 -> (01010000)2 (+0,25)10 = +(0,01)2 -> (00000001)2 Remarque : Dans cette convention, il existe des limites aux dimensions des parties entire et fractionnaire (ici 5 et 2 bits). D'autre part, on n'utilise pas dans certains cas les bits significatifs. III - 2) virgule situe droite du dernier rang. Dans cette convention, on ramne tous les nombres fractionnaires des entiers en les multipliant par (210)n, c'est dire 102n. Reprsentation (l=9) position conventionnelle de la virgule. a 1 a 0 facteur de cadrage C

7 Signe

........................ 6 nombre entier obtenu

Le but de cette convention est de ne conserver que la partie significative du nombre. Afin de pouvoir faire la lecture de celui-ci, il est ncessaire d'associer ce nombre un facteur de cadrage (d'chelle) qui n'est autre que c = n (+, - ou 0). Exemples : (reprsentation sur 8 bits) -(+14,75)10 = +(1110,11)2=(111011.(10)2-2)2 -->(00111011)2 et C=-2. Cela signifie que la virgule relle se trouve 2 rangs gauche de la virgule conventionnelle. - (+328)10 = (101001000)2 = (1010010.102) -->(01010010)2 et C=2 : virgule relle 2 rangs droite. - (-0,656)10 --> (+0,656)10 = (0,101001)2 = (101001.10-6)2 donc --> (00101001)2 ; il vient : (-0,656)10 --> (11010111)2 et C=-6 : virgule six rangs gauche. Remarque : Le facteur de cadrage peut tre modifi pour conserver certains bits significatifs.

10

TD Informatique Industrielle IUT Troyes

III-3) Virgule situe droite du bit de signe. Dans cette convention, on ramne tous les nombres fractionnaires un nombre fractionnaire infrieur un (0,101101....) en les multipliant par 210n (102n).

Reprsentation (l=8) position conventionnelle de la virgule.

a7 Signe

a1 a 0 Nombre fractionnaire obtenu

a 6 ..............................

facteur de cadrage C

Le facteur de cadrage est choisi tel que le premier bit derrire la virgule soit 1. Exemples : - (+14,75)10 = (1110,11)2 = (0,111011.104)2 -->(01110110)2 et C=4. La virgule est situe 4 rangs droite de la virgule conventionnelle. - (+328)10 = (101001000)2 = (0,101001.109)2 -->(01010010)2 et C=9. la virgule est au 9 rang droite. -(-0,3125)10 --> (+0,3125)10 = (0,0101)2 = (0,101.10-1)2 donc --> (01010000)2 et C=-1. (-0,3125)10 --> (1011000)2 c'est dire (0,11.10-1)2 pour la partie fractionnaire qui se normalise par : (11100000)2 et C'=C-1=-2 (nouveau facteur de cadrage). La virgule est ici place 2 rangs gauche de la virgule conventionnelle. Remarque : Dans cette convention, on peut modifier, si c'est ncessaire, le facteur de cadrage afin d'utiliser au mieux tous les bits significatifs. On dit alors que l'on travaille en virgule flottante III-4) Norme ANSI IEEE standard 754 pour la reprsentation des rels. III-4-a) Simple prcision.
31 S signe exposant biais (8 bits) E 22 M mantisse (23 bits) 0

type float du langage C (compilateur 16 bit sur IBM PC). valeur : (-1)signx1,M22.....M0x2(E-127)

III-4-b) Double prcision.


63 S signe exposant biais (11 bits) E 51 M mantisse (52 bits) 0

type double du langage C. valeur : (-1)signx1,M51.....M0x2(E-1023)

IV - Exercices. 1) Dans un micro-ordinateur une variable entire simple est reprsente sur 2 octets. Quelle est la capacit de reprsentation ? 2) Reprsenter en binaire sur 8 bits les nombres (+98)10 et (-98)10 dans les trois conventions de reprsentation. Les crire en hexadcimal.

11

TD Informatique Industrielle IUT Troyes

3) Une calculatrice travaille en binaire sur un format de 12 bits avec la convention du complment vrai et donne ses rsultats en hexadcimal. Quelles sont en base 10 les nombres quivalents aux rsultats suivants : (B46)16 ; (07F)16 ; (FF8)16. 4) A partir des conventions des nombres entiers et fractionnaires, donner les reprsentations binaire et hexadcimale dans un format de 8 bits, des nombres +(48,625)10 puis -(48,625)10 reprsents par le complment vrai. 5) -a- Pour un systme de numration dans la base b de l chiffres de longueur, quelle est la capacit de reprsentation. -b- le cot de la reprsentation est environ : p=b.l ; pour une capacit C donne, quelle est la base de reprsentation la moins coteuse ? -c- comparer par rapport cette base thorique le cot de la base 2, puis 3, 4, 10, 16, pour une capacit de 65536. 6) Pour effectuer des oprations arithmtiques, on utilise la mthode du complment vrai sur des nombres de 2 chiffres s'crivant D1D0. a)Le format tant donn, D1D0 est un nombre dont l'criture est comprise entre 00 et 99. Si CVN = 100N, le signe du nombre N dpend de D1. Si D1 (> ou =)5 alors N<0 ; si D1 <5 N>0. Reprsenter de -10 +10 les nombres signs. Quelles sont les valeurs de -Nmax et + Nmax. b) Effectuer 7+3 ; 7-3 ; 3-7 ; -3-7. Expliquer vos rsultats. c) Effectuer 40-25 ; 33-48;-15-12;15-15. 7) Si on effectue l'addition de 2 nombres signs N1 et N2 de signes respectifs s1 et s2, le rsultat possde un signe s3. A partir des tats 0 ou 1 des 3 variables s1,s2 et s3, donner l'tat du calcul sachant qu'il y a 8 combinaisons possibles. Etats possibles : signe rel du rsultat : positif N=0, ngatif N=1 Dbordement V=1 Il y aura donc deux variables d'tat N et V = f(s1,s2,s3). Donner les quations de N et V. Proposer un schma NANDs.

12

TD Informatique Industrielle IUT Troyes

Cours 3 - Les Codes


I - Dfinitions Un code binaire est une convention permettant de traduire une donne quelconque en une grandeur ne comportant que des 0 et des 1. Il adapte le langage humain au langage de la machine lectronique et inversement. La numrotation binaire, bien connue, est un code permettant de transformer les nombres dcimaux en nombres binaires et inversement : c'est le code binaire naturel (CBN). Il convient pour effectuer des oprations arithmtiques sur des nombres base 10, mais on peut avoir pratiquer sur des nombres d'autres oprations (mise en mmoire, comptage, transmission), et dans ce cas, le code binaire naturel n'est pas forcment le meilleur procd utiliser. On peut aussi avoir traiter des donnes quelconques autres que des nombres (lettres de l'alphabet, ordre de tlcommande...). La numration binaire est alors carrment impossible. On devra donc utiliser des codes particuliers, ainsi que des oprations permettant de passer d'un code l'autre. donnes (utilisateur clavier ) grandeur binaire code 1 grandeur binaire codage ---------------------------------------> transcodage ---------------------------------------> dcodage ----------------------------------------> grandeur binaire grandeur binaire code 2 langage comprhensible l'utilisateur (visu.....)

Exemple : Tlcommande d'une maquette de bateau. On dispose de 4 commandes : marche avant, bbord, marche arrire, tribord. Pour simplifier le systme de tlcommande, on choisit de n'utiliser que 2 bits pour transmettre les ordres la maquette. a x voie SM } sens codage transcodage b dcodage moteur M de c en en SG } gouvernail d code B G y transmission code A o o o o AV AR B T clavier abcd AV 0001 AR 0010 B 0100 T 1000 En absence d'ordre

xy M SM G SG 00 1 1 0 X 01 1 0 0 X 10 0 X 1 1 11 0 X 1 0 AV ou AR : M=0 B ou T : G=0

M=0 moteur arrt M=1 moteur marche G=0 gouvernail centre G=1 bbord/tribord SG : sens gouvernail

II - Diffrents types de codes Il existe un certain nombre de codes qui possdent chacun leurs particularits et qui correspondent une application prcise.

13

TD Informatique Industrielle IUT Troyes

- codes arithmtiques qui permettent de faire les calculs : codes pondrs, codes dcimaux, codes auto-complments. - codes alphanumriques qui n'ont aucune proprit arithmtique mais qui servent reprsenter des lettres, des chiffres, des signes typographiques. Code tlgraphique international ASCII (American Standard Code for Information Interchange). - codes de position mcanique {code adjacent sans rgime transitoire parasite } - codes de transmission codes dtecteurs d'erreur, codes autocorrecteurs. II-1) Codes arithmtiques * codes pondrs : chaque bit de ces codes reprsente un poids dont l'quivalent en base 10 de chaque combinaison est donn par la somme des poids de tous les bits de la combinaison gaux 1. Chacune des combinaisons un quivalent dcimal, suprieur d'une unit celui de la combinaison prcdente. * codes dcimaux : ce sont des codes 10 combinaisons reprsentants les 10 chiffres dcimaux. Ils comportent au moins 4 bits et ils sont par consquent redondants (toutes les combinaisons binaires ne sont pas utilises). Exemple :
dcimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 code binaire naturel 8421 (poids) 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Dcimal Code Binaire (DCB) plutt appel Binary Coded Decimal (BCD) (poids) 8421 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 Non cod Non cod Non cod Non cod Non cod Non cod

Les codes dcimaux servent l'affichage ou l'impression des nombres. Pour entrer ou sortir en machine un nombre dcimal, on le transcode en passant par le code BCD. (172)10 ---------------->(0001 0111 0010)BCD -----------------> (10101100)2 L'arithmtique en code BCD est complique (voir addition plus loin dans le poly). II-2) Codes de position : (rflchis ou reflex) Une position angulaire thta analogique est transforme en grandeur numrique au moyen d'un disque cod li la pice dont on veut reprer le mouvement. Le disque est divis en p couronnes correspondant p bits et reprant ainsi 2p positions ; chaque couronne prsente des parties soit opaques et transparentes (lecture optique) soit conductrices et isolantes (lecture lectrique). A chaque position du disque correspond alors un nombre binaire.

14

TD Informatique Industrielle IUT Troyes

partie transparente
4 0110 5 0111 6 0101 Le numro binaire correspondant ne peut tre que 0111 ou 0101 soit 5 ou 6 4 0100

partie opaque photo capteur GRAY

5 0101 6 0110

BINAIRE NATUREL

On peut bien sr coder ainsi un dplacement linaire avec une plaque forme de pistes parallles. Le code le plus utilis est le code Gray. Il existe aussi des codes (BDR . BDR xs 3) o les chiffres dcimaux sont cods sparment et juxtaposs (code qui se prte mieux l'affichage). Dans ces codes, un seul bit change d'tat la fois quand on passe d'une combinaison la suivante, de faon limiter les erreurs.

En binaire naturel on obtient 0100 ou 0101 ou 0110 ou 0111 soit 4 ou 5 ou 6 ou 7.


Dcimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Gray 0000 0001 0011 0010 0110 0111 0101 0100 1100 1101 1111 1110 1010 1011 1001 1000 -------Bin. Dec. Refl. 0000 0000 0000 0001 0000 0011 0000 0010 0000 0110 0000 0111 0000 0101 0000 0100 0000 1100 0000 1101 0001 1101 0001 1100 0001 0100 0001 0101 0001 0111 0001 0110 0001 0010 0001 0011 0001 0001 0001 0000 0011 0000 BDR xs 3 0010 0010 0010 0110 0010 0111 0010 0101 0010 0100 0010 1100 0010 1101 0010 1111 0010 1110 0010 1010 0110 1010 0110 1110 0110 1111 0110 1101 0110 1100 0110 0100 0110 0101 0110 0111 0110 0110 0110 0010 0111 0110

Ces codes ne sont pas pondrs. Ils sont cycliques si un seul bit change d'tat entre la dernire combinaison et la premire. (Les codeurs angulaires sont obligatoirement cycliques). II-3) Codes dtecteurs Dans la transmission d'une grandeur numrique peuvent se glisser des erreurs (1 transform en 0 ou 0 en 1) quelque soit le moyen de transmission (bande magntique, carte perfore, procds optiques) S'il peut se produire une erreur sur un bit (probabilit d'erreur p : ex 1/10000 ; p = 10-4), il est beaucoup plus rare que deux erreurs se produisent simultanment (probabilit p2 ). En partant de ce principe, on utilisera pour transmettre les donnes, des codes dont toutes les combinaisons ont une caractristique commune : - chaque combinaison ne comprend par exemple que 2 bits gaux un et tous les autres zro. - chaque combinaison contient un nombre pair de 1. Les combinaisons reues qui n'ont pas cette caractristique n'appartiennent pas au code et sont donc errones. Ces codes sont tous redondants. Exemples : code "2 parmi 5 "

code BCD + bit de parit

15

TD Informatique Industrielle IUT Troyes

dcimal, pondr (sauf 0) On ajoute 1 cinquime bit de telle sorte redondance : 22 que chaque combinaison contienne un (32 combinaisons. 10 utiles) nombre pair de 1.
63210 0 1 2 3 4 5 6 7 8 9 00110 00011 00101 01001 01010 01100 10001 10010 10100 11000 poids

8421 0
0000 0 0001 1 0010 1 0011 0 0100 1 0101 0 0110 0 0111 1 1000 1 1001 0

poids (dernire colonne : bit de parit)

Soit transmettre (4)10 dans les 2 codes prcdents : (4)10 01010 (4)10 01001 Quel que soit le bit sur lequel se produit l'erreur, la combinaison n'appartient pas au code. Nbre de 1 3 1 3 1 3 erreur sur A la rception du code, on vrifie la parit. Si elle est correcte le mot est valid. (Voir TP : codeur de Hamming). Codes autocorrecteurs : Quand on sait qu'on a une erreur dans un mot, il est intressant de la localiser pour pouvoir la corriger : il suffit alors d'inverser le bit fautif). On obtient ainsi une transmission parfaite. On construit ces codes en ajoutant aux bits d'informations des bits de "contrle". Nombre de 1 impair impair impair impair imapair

Erreur sur

11010 00010 01110 01000 01011

11001 00001 01101 01011 01000

II-4)Codes alphanumriques : Ils n'ont aucune proprit arithmtique mais ils servent coder des chiffres, des lettres et des signes. On travaille par comparaison et non par calcul. Exemple : code tlgraphique international N5 (dit code ASCII) Chaque symbole y est reprsent par 8 bits (dont 1 de parit) prcds d'un signal de dbut (START) et d'un signal de fin (STOP). START 1 2 3 4 5 6 7 8 STOP

9,9 ms

symbole 9,9ms Parit

2x9,9 ms

Ce code est utilis par les rseaux informatiques assurant les connexions entre les ordinateurs et les organes priphriques (claviers, visu., imprimantes).

16

TD Informatique Industrielle IUT Troyes

Le Baud tant l'inverse de la dure d'un signal lmentaire, le code ASCII fonctionne une vitesse de 1/0,0099 = 110 bauds.

III - Exercice Construire un code dcimal pondr 6421.

17

TD Informatique Industrielle IUT Troyes

Cours 4 : Le langage ABEL


I - Le langage ABEL (spcifications) I-1) Caractres valides a -z lettres minuscules A - Z lettres majuscules 0 - 9 chiffres <espace> <tabulation> ! @ # $ ? _ = [ { } ` ~ \ | , I-2) Identificateurs Ce sont des noms qui identifient les composants, les broches les signaux d'entre et de sortie.... Il peuvent avoir jusqu' 31 caractres de long. Il existe comme dans tout langage des identificateurs rservs ou mots-clefs : case goto property declarations if state device in (obsolete) state_diagram else istype test_vectors enable (obsolete) library then end macro title endcase module trace endwith node truth_table equations options when flag (obsolete) pin with fuses I-3) Constantes Constantes .C. .D. .F. .K. .P. .SVn .U. .X. .Z. I-4) Blocs Ce sont des caractres ASCII se trouvant entre des accolades : { ceci est un bloc } I-5) Commentaires Les commentaires commencent par des guillemets et finissent soit par des autres guillemets soit par une fin de ligne. I-6) Nombres Toutes les oprations en ABEL invoquant des valeurs numriques sont faites avec une prcision de 32 bits. Nom de la base base symbole binary 2 ^b octal 8 ^o description entre d'horloge bas-haut-bas (monostable) front descendant d'une entre horloge signal d'entre ou de sortie flottant entre d'horloge haut-bas-haut (monostable) prchargement dans un registre n variant de 2 9. Commande l'entre pour une tension de 2 9 front d'horloge montant valeur indtermine calculer valeur trois tat.

+ ] <

& ; >

* : .

( ' /

) " ^

+ %

18

TD Informatique Industrielle IUT Troyes

decimal hexadecimal

10 16

^d (par dfaut) ^h

I-7) Chanes de caractres Les chanes de caractres sont des caractres ASCII entours par des apostrophes : 'ceci est une chane' I-8) Oprateurs expressions et quations Les oprateurs logiques sont : Oprateur description ! non ou complment 1 & et # ou $ ou exclusif !$ identit (non ou exclusif)

priorit 1 2 3 3 3

Les oprateurs arithmtiques peuvent permettre de dfinir des oprations arithmtiques entre plusieurs membres d'une expression. Oprateur exemple description priorit -A ngation ou complment deux 1 A-B soustraction 3 + A+B addition 3 * A*B multiplication 2 / A/B division entire non signe 2 % A%B reste de la division (oprateur modulo) 2 << A<<B dcalage gauche de A de B bits 2 >> A>>B dcalage droit de A de B bits. 2 Les oprateurs relationnels sont : oprateur description == galit != diffrent < infrieur <= infrieur ou gal > suprieur >= suprieur ou gal

priorit 4 4 4 4 4 4

Les oprateurs d'affectation sont de deux sortes : = affectation combinatoire := affectation squentielle. Tous les oprateurs sont associatifs gauche-droite. On peut utiliser des parenthses pour changer la priorit. I-9) Les ensembles Une ensemble est une collection de signaux et constantes qui oprent comme un seul. Un ensemble est reprsent comme une liste de signaux et constantes spares par des virgules et entours par des crochets. [B7,B6,B5,B4,B3,B2,B1,B0] est un ensemble de huit signaux. On peut raliser des oprations sur les ensembles condition qu'ils aient le mme nombre d'lments. Exemples : Addr = [A15,A14,A13]; "dclaration d'ensemble (A13 est considr comme le poids faible) chip_sel = Addr==[1,0,1]; est quivalent chip_sel=A15 & !A14 & A13 ou chip_sel = Addr==5; Il existe une dclaration simplifie lorsque les broches sont numrotes : Addr = [a15..a0] dclare 16 entres de a0 a15. I-10) La structure de programme

19

TD Informatique Industrielle IUT Troyes

M0DULE Le module donne un nom au module et indique si des arguments sont utiliss.

OPTIONS les options contrlent la compilation du fichier source utilisant les options de la ligne de commande TITRE Le titre peut tre utilis pour donner un titre ou une description du module

FICHIER SOURCE ABEL-HDL


Module source Options '-trace wave' Title 'Exemple de fichier source par truc much Declarations dev1 DEVICE 'p16r4' ; in1, in2, in3, clk pin ; all, none, other pin istype 'reg' ; out = [all, none, other]; @Message 'Declaration completed' Equations out.clk = clk; none := in1 & in2 & in3 ; other := (in1 & !in2 & in3) # (in1 & !in2 & in3) # (in1 & !in2 & !in3) # (!in1 & in2 & in3) # (!in1 & in2 & !in3) # (!in1 & !in2 & in3) ; Test_Vectors ([in1, in2, in3, clk] -> [all, none, other]) [1 , 1 , 1 , .c.] -> [1, 0 , 0]; [0 , 1 , 1 , .c.] -> [0, 0 , 1]; [1 , 0 , 0 , .c.] -> [0, 0 , 1]; [1 , 0 , 1 , .c.] -> [0, 0 , 1]; [0 , 0 , 0 , .c.] -> [0, 1 , 0]; End source DECLARATIONS Les dclarations associent des noms avec des circuits des broches des noeuds des constantes des macros et des ensembles. DIRECTIVES Les directives permettent des manipulations avances du fichier source et du compilateur et peut tre place n'importe o c'est utile dans le fichier.

EQUATIONS Vous pouvez utiliser Equations State_Diagrams, des Truth_Tables pour decrire une conception logique

TEST_VECTORS Les vecteurs de tests sont utiliss en simulation pour s'assurer que le travail de conception est conforme ce qu'on en attend

END On finit le module avec cette directive. I-11) Les points extensions Il s'agit de mettre un caractre point suivi d'une extension qui a une signification dtermine. On donne quelques unes de ces extensions pour la bascule D la bascule RS et la bascule JK ci-aprs. Celles de la D Latch et de la bascule T ne seront pas dtailles.

20

TD Informatique Industrielle IUT Troyes

.OE D .CLK .FB .PIN Point-extensions dans une architecture inverse .OE .RE .D .CLK .PR .Q .PIN .OE .AR .R .CLK .S .AP .Q .PIN Point-extensions dtailles Pour une architecture en bascule RS I-12) Les macros R
CLEAR

.OE Q Q .CLK .FB .PIN Point-extensions dans une architecture non inverse D Q Q

RESET

Q Q Point-extensions dtailles Pour une architecture en bascule D

PRESET

.OE .AR Q .J .CLK .K .AP .Q .PIN Point-extensions dtailles Pour une architecture en bascule JK J
CLEAR

S PRE Q

K PRE Q

Des exemples seront plus parlant qu'un grand discours. Nand3 MACRO (A,B,C) {!(?A & ?B & ?C)} ; s'utilise comme : D = Nand3(Clock,Helle,Busy) ; syntaxe : id_macro MACRO [(arg_faux [,arg_faux]...)] { bloc } ; Remarque : une macro dans un langage est toujours du remplacement de texte par du texte (et ceci avant la compilation). Cela a des consquences sur les priorits. Par exemple : Y1 macro { B # C } alors X1 = A & Y1 s'interprtera A & B # C donc (A & B) # C (ce qui peut surprendre !)

II) Applications Nous donnons un ensemble de programmes destins la comprhension des notions que nous venons d'exposer.

21

TD Informatique Industrielle IUT Troyes

II-1) Passage table de vrit -> quations La compilation de ce fichier exo1.abl que l'on vous demande de raliser donne : out = ( B & C # !A & B ) que l'on interprte comme : out = B. C + A.B " : est le dbut d'un commentaire qui se termine en fin de ligne istype 'com' : signifie sortie combinatoire II-2) Simulation Notre but est de comprendre comment sont interprtes les lignes de la table de vrit non spcifies. Nous avons 3 entres, il devrait donc y avoir 8 spcifications (8 = 23). La partie test_vectors est destine la simulation : on lui demande de simuler le rsultat pour toutes les possibilits sur les entres (8 lignes) et le .X. signifie qu'on lui demande de calculer la sortie. Il est possible de mettre des 0 ou des 1 la place des .X. pour vrifier un rsultat.
_

MODULE EXO1 title 'exercice 1 par LeProf' "entres A,B,C pin; "sortie out pin istype 'com'; truth_table ( [A, B, C] -> out) [0, 1, 0] -> 1; [0, 1, 1] -> 1; [1, 1, 1] -> 1; [1, 1, 0] -> 0; end
MODULE EXO2 title 'exercice 2' A,B,C pin; "entres out pin istype 'com'; "sortie truth_table ( [A, B, C] -> out) [0, 1, 0] -> 1; [0, 1, 1] -> 1; [1, 1, 1] -> 1; [1, 1, 0] -> 0; test_vectors ( [A, B, C] ->out) [0, 0, 0] -> .X.; [0, 0, 1] -> .X.; [0, 1, 0] -> .X.; [0, 1, 1] -> .X.; [1, 0, 0] -> .X.; [1, 0, 1] -> .X.; [1, 1, 0] -> .X.; [1, 1, 1] -> .X.; end MODULE EXO4 title 'exercice 4' A,B,C pin; "entres out pin istype 'com'; "sortie equations out = !A&B&C # A&B&C; test_vectors ( [A, B, C] ->out) [0, 0, 0] -> .X.; [0, 0, 1] -> .X.; [0, 1, 0] -> .X.; [0, 1, 1] -> .X.; [1, 0, 0] -> .X.; [1, 0, 1] -> .X.; [1, 1, 0] -> .X.; [1, 1, 1] -> .X.; end MODULE EXO5 title 'exercice 5' A,B,C pin; "entres out1,out2 pin istype 'com'; "sortie truth_table ( [A, B, C] -> [out1, out2]) 0 -> [ 1 , 0 ]; "entres spcifies 2 -> [ 1 , 1 ]; "par des chiffres 4 -> [ 0 , 1 ]; " en base 10 7 -> [ 0 , 0 ]; test_vectors ( [A, B, C] ->[out1, out2]) [0, 0, 0] -> .X.; [0, 0, 1] -> .X.; [0, 1, 0] -> .X.; " ajoutez vos vecteurs tests ici [1, 1, 1] -> .X.; end

II-3) Introduction des quations logiques On programme maintenant directement des quations logiques avec les oprateurs : NON : ! (priorit 1) ET : & (priorit 2) OU : # (priorit 3) OU EXCLUSIF : $ (priorit 3) IDENTITE : !$ (priorit 3) affectation combinatoire : = Une compilation pourra simplifier ces quations.

II-4) Plusieurs sorties. Nous avons amlior notre manire de programmer de diffrentes manires : dfinition de nom : X et Xs spcification d'une entre par des chiffres en base 10. On peut faire de mme pour les sorties et on peut aussi changer de base avec ^h (hexadcimal), ^b (binaire), ^o (octal), ^d (dcimal). Les vecteurs tests peuvent aussi tre spcifis avec des chiffres.

II-5) Mthode SI-ALORS (voir TD 5)

22

TD Informatique Industrielle IUT Troyes

TD1 - Logique et algbre de Boole.


La logique utilise les lois de l'algbre de Boole, philosophe et mathmaticien anglais (1815-1864). L'algbre de Boole est applicable l'tude des systmes binaires, c'est dire possdant deux tats s'excluant mutuellement : c'est le cas des circuits logiques, base des systmes numriques. L'tude de ces systmes (analyse et synthse des machines numriques) est l'objectif premier de ce cours. I - Dfinitions. - Les tats logiques sont reprsents par {0,1} ou par une rponse en tout ou rien {FALSE,TRUE} - Une variable boolene (ou variable logique) est une grandeur, reprsente par un symbole qui peut prendre les valeurs 0 et 1 suivant certaines conditions. - Une fonction logique est reprsente par des groupes de variables relies par des oprateurs logiques : il existe trois oprateurs lmentaires (runion : OU (OR), intersection : ET (AND) &, complment : NON (NOT) ). Les variables de sortie sont fonction des variables d'entre et sont boolenes, nous parlerons de logique combinatoire.

y= F(a,b)

y= a.b

y= a+b

&
b b

>1

y= a

b fonction entres

sortie

ET

OU

NON

II - Reprsentation des fonctions logiques - Table de vrit : Une fonction logique sera dfinie par sa table de vrit. C'est un tableau comportant les valeurs des variables d'entre et faisant correspondre celle de la fonction (variable de sortie).Elle donne tous les cas de situation d'entre. Pour viter les oublis, les combinaisons des valeurs logiques sont donnes dans l'ordre binaire (Code Binaire Naturel). Deux fonctions qui ont la mme table de vrit sont identiques. - Diagramme de Wenn : Chaque variables logiques divisent l'espace en deux sous-espaces :celui o la variable est vraie (1) et son complment, celui o elle est fausse (0).Ce type de diagramme sera peu employ. - Diagramme de Karnaugh : c'est un tableau drivant du diagramme de Wenn et de la table de vrit. Chaque ligne de la table de vrit est reprsente par une case dont les coordonnes (lignes, colonne) sont des combinaisons de variables d'entre. a b 0 1 2 3 0 0 0 1 1 0 1 1 y 0 0 0 1 Diagramme de Wenn b 1 0 1 y Diagramme de Karnaugh Tableau de Karnaugh a b 0 0 0 y=F(a,b) y=a.b a 0 1

Table de vrit

- Logigrammes : ce sont des schmas logiques reprsentant les fonctions dsires, ils utilisent des oprateurs lmentaires (ET, OU, NON, ET-NON, OU-NON, OU-EXCLUSIF), ils sont ralisables physiquement avec des circuits lectriques, lectroniques ou pneumatiques plus ou moins complexes, c'est la concrtisation des machines numriques.

23

TD Informatique Industrielle IUT Troyes

- Chronogrammes : ce sont des graphiques reprsentant l'volution des variables d'entre et de sortie (signaux logiques) en fonction du temps. La bonne interprtation de ces signaux est fondamentale pour le technicien qui disposera d'un oscilloscope la mise au point du montage. fem a b a b Logigramme & a y=a.b 1 0 b 1 a b schma lectrique 0 y y=a.b a1 0 1 b 0 y1 0 chronogrammes

t t t

III - Fonctions lmentaires. a, b, y appartiennent {0,1},y=f(a,b) III-1) Fonction d'une variable - Fonction identit ou OUI : y=a ay a 01 00 01 11 a y

a 1

y=a

y=a

a CE(0,1) - Fonction complment ou NON : y = /a (se lit " a barre") (not y=!a en langage ABEL)
_

(not le plus souvent a avec une barre par dessus a )


a y

0 1 1 0

a 01 10 a y

1
y=1

y=a

y=a

- Fonction vrai: y=1 quelque soit a.


ay

01 11

a 01 1 1

a 1 y =1 ex: dfaut au +Vcc

- Fonction faux: y=0 quelque soit a. (les deux fonctions vrai et faux existent dans les circuits programmables UAL, car elles ont un sens en arithmtique). ex: dfaut la masse ay a 0 1 y=0 a 00 0 0 0 10 y =0 III-2) Fonction de deux variables : f(a,b) - Fonction OU: ("addition" logique, runion) aby 000 011 101 111 a b 01 001 1 1 1y b a a E b a+ y=a+b =a pour a=0: pour a=1: y a b >1 y a b y y= a+b =a U b =a V b (y=a#b en ABEL)

complter en cours: - lment neutre

24

TD Informatique Industrielle IUT Troyes

- lment absorbant - idempotence - complment - commutativit

a + =1 a+a= a + /a = a+b=

- Fonction ET: ("produit" logique, intersection) y= a.b (y = a&b en ABEL) y=A B=A B a a ab y b 01 a y a 00 0 0 00 b 101 01 0 b y a b & y 10 0 E 11 1 b y=a.b - lment neutre - lment absorbant - idempotence - complment - commutativit a . =a a . =0 a.a= a . /a = a.b= pour a=0:

pour a=1:

- Fonction OU-NON : (NOR) (NI) ab 00 01 10 11 y 1 0 0 0 b a 01 01 0 10 0 y a

(y = !(a#b) en ABEL)

y=a+b=a.b
a a b b y a b >1 y a b y

E b - Fonction ET-NON : (NAND) (ON) (y = !(a&b) en ABEL) y =a . b = a + b a a a ab y b 01 a 01 1 00 1 a 01 1 11 0 b y y 10 1 b E 11 0 b b

a b

&

Les oprateurs OU-NON et ET-NON sont trs importants, car ce sont des oprateurs complets, ils permettent la synthse de toutes les fonctions eux seuls, ce n'est pas le cas du ET ni du OU.

- Fonction OU-EXCLUSIF : (X-OR) y = a b


ab 00 01 10 11 y 0 1 1 0 a b 01 00 1 11 0 y b a

(y = a$b en ABEL)
a b b y =1 a b y

y = /a.b + a./b =(a + b).(/a + /b) a a E a b b va & vient y

Le OU-EXCLUSIF joue un rle trs important en arithmtique ( 1/2 additionneur). - Fonction IDENTITE : c'est le complment du OU-EXCLUSIF, son emploi en temps qu'oprateur est rare. Il est not y = a !$ b en langage ABEL.

25

TD Informatique Industrielle IUT Troyes

ab 00 01 10 11

y 1 0 0 1

a b 01 01 0 10 1 y b

y =/a./b + a.b = (/a+b).(a+/b) a a a E b b y b

y =a
a b

b
y a b y

va & vient

=1

- Les 16 fonctions 2 variables d'entre: y=f(a,b) (voir TD) : 1, 0, a, /a, b, /b, a.b, /a.b, a./b, /a./b, a+b, /a+b, a+/b, /a+/b, a b, /(a b) IV - Exercice : les 16 fonctions F(a,b) variables d'entres n b a 0 0 0 1 0 1 2 1 0 3 1 1 DK 0 0 1 1 Expression F Complment /F symbole Ansi Equivalent d'aprs /F symbole normalis variables d'entres n b a 0 0 0 1 0 1 2 1 0 3 1 1 DK 0 0 1 1 Expression F Complment /F symbole Ansi Equivalent d'aprs /F symbole normalis Intersection (ET) 1 1 0 0 0 2 0 1 0 0 3 0 0 1 0 4 0 0 0 1 5 1 1 0 0 Non 6 1 0 1 0 Dilemmes 7 1 0 0 1 8 0 1 1 0

Runion (OU) 9 1 1 1 0 10 1 1 0 1 11 1 0 1 1 12 0 1 1 1 13 0 1 0 1

Oui 14 0 0 1 1

Permanent 15 1 1 1 1 16 0 0 0 0

26

TD Informatique Industrielle IUT Troyes

TD 2 - Les fonctions Boolennes.


Le but ultime de la logique est de matrialiser l'aide de composants des fonctions boolennes. Avant d'apprendre le faire, il nous faut apprendre manipuler ces fonctions.

I - Dfinitions. Une fonction boolenne est une fonction qui un ensemble de variables d'entres boolennes fait correspondre une variable boolenne. Elle se reprsente en gnral comme une association de sommes (ou logique ou conjonction) et de produits (et logique ou disjonction). Si l'expression est une somme de produits, la forme est dite disjonctive. Par exemple : /a.b.d+a./b+b.c (not !a & b & d # a & !b # b & c en langage ABEL) Si l'expression est un produit de sommes, le forme est dite conjonctive. Par exemple : (/a+c+/d).(a+b).(/c+d) (not (!a#c#!d)&(a#b)&(!c#d) en ABEL) Une fonction boolenne est dite sous forme normale ou canonique si chaque terme contient toutes les variables. /a./b./c+a.b.c+a./b.c : est sous forme normale disjonctive, (/a+/b+/c).(a+b+c).(/a+b+c) : est sous forme normale conjonctive. Lorsqu'une fonction boolenne n'est pas sous forme normale, elle est dite sous sa forme simplifie. II - Les reprsentations. II-1) Table de vrit . Cette reprsentation a t dfinie prcdemment, elle suffit dfinir compltement la fonction raliser. Si nous ne dfinissons que les cas o la fonction est vraie, implicitement les combinaisons manquantes seront celles o la fonction est fausse et rciproquement. Pour les besoins d'un automatisme une table peut ne pas tre complte, les combinaisons non utilises pourront tre remplaces par 0 ou 1 au choix du concepteur en vue d'une meilleure simplification. Ces cas seront reprs par la lettre phi () ou par la lettre X. n 0 1 2 3 4 5 6 7 cba 000 001 010 011 100 101 110 111 0 1 1 1 0 0 1 1 f y0 y1 y2 y3 y4 y5 y6 y7 n=cba =a.1+b.2+c.4 f= y1+y2+y3+y6+y7 f={1,2,3,6,7} 1 f={0,4,5} 0

Remarque : En langage ABEL une table de vrit s'crit comme ci-contre. Il s'agit ici d'une fonction de 3 variables d'entres A, B et C et d'une variable de sortie : out. II -2) Reprsentation numrique.

truth_table ( [A, B, C] -> out) [0, 1, 0] -> 1; [0, 1, 1] -> 1; [1, 1, 1] -> 1; [1, 1, 0] -> 0;

27

TD Informatique Industrielle IUT Troyes

Si nous affectons chaque variables un poids binaire, nous effectuerons la runion des combinaisons o F=1, nous crirons F = {1,2,3,6,7}1, nous pouvons aussi dfinir le complment /F = {0,4,5}0. II-3) Changement de reprsentation. * Lecture des 1 de la table de vrit: nous obtenons la premire forme canonique. Cette prsentation de l'quation est bien adapte la synthse avec des ET/OU ou des ET-Non. f= y1+y2+y3+y6+y7 f= c.b.a + c.b.a + c.b.a + c.b.a + c.b.a * Lecture des 0 de la table de vrit : nous obtenons la deuxime forme canonique. Cette prsentation de l'quation est bien adapte la synthse OU/ET ou OU-Non. f={0,4,5}0 f=y0+y4+y5 f=y0+y4+y5 =y0.y4.y5

f = c.b.a . c.b.a . c.b.a f=(c+b+a).(c+b+a).(c+b+a)

III - Exercices. 1) Donnez les expressions boolennes reprsentes par : u x a S2 S1 y v b c w z x a b & c 1 a b c S4 S1 >1 y z a b c u & & & a b c S2 v & w & & &

S3

S3

S5

S6

Hors TD

Ecrire ensuite ces expressions en utilisant la syntaxe ABEL. 2) Exprimer les quations suivantes sous la forme canonique disjonctive (somme de produits) : y1 = a+b, y2 = a.b.c + /a.b 3) Mme question, mais sous forme conjonctive (produit de somme) : y3 = a+b+/a./b.c, y4 = (a+b+c).(/a+b). Indication : on peut utiliser les zros de la table de vrit. 4) Soient les trois fonctions boolennes : F1 = (/a.b+a./b)./c + (/a./b+a.b).c F2 = a./b + b./c + c./a + a.b.c F3 = (a+b+c).(a+b+/c).(a+/b+/c).(a+/b+c).(/a+b+c).(/a+/b+c). a) Ecrire les tables de vrit correspondantes (dont une avec la syntaxe ABEL). b) Ecrire ces fonctions sous formes canoniques disjonctives et conjonctives. c) Donner les reprsentations numriques de ces fonctions.

28

TD Informatique Industrielle IUT Troyes

TD 3 - Simplification des fonctions logiques.


Les formes canoniques ne sont pas adaptes la synthse directe des fonctions, seules quelques technologies (rseaux programmables, ... ) utilisent ces prsentations. Il faut simplifier ces fonctions pour en obtenir une forme minimale et donc minimiser les cots de production. Pour simplifier une expression, il existe des mthodes algbriques et des mthodes graphiques. I - Tableaux de Karnaugh. L'emploi de ce tableau est possible jusqu' six variables, au del il ne reste que les mthodes algbriques, c'est un outil puissant et c'est souvent le plus rapide. a ba 00 01 11 10 f y0 y1 y3 y2 b 0 1 0 1 d 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 cba 000 001 010 011 100 101 110 111 000 001 010 011 100 101 110 111 f y0 y1 y2 y3 y4 y5 y6 y7 y8 y9 yA yB yC yD yE yF b.a d.c 00 01 11 10 00 y0 y4 yC y8 01 y1 y5 yD y9 11 y3 y7 yF yB 10 y2 y6 yE yA

a.b a.b y0 y1 a.b y2 a.b y3

2 variables:4 cases

cba 000 001 010 011 100 101 110 111

f y0 y1 y2 y3 y4 y5 y6 y7

b.a c

00 01 11 10 y1 y5 y3 y7 y2 y6

0 y0 1 y4

4 variables:16 cases

3 variables:_8 cases

Appliqu l'expression f=b+a./c, cela donne le rsultat ci-contre. La simplification s'opre de la faon suivante : - Faire des regroupements de cases les plus grands possibles (intersections premires) - Runir ces intersections en ne conservant que ceux qui sont indispensables (liminer les consensus).

cba 000 001 010 011 100 101 110 111

f 0 1 1 1 0 0 1 1

b.a 00 c 0 1 0 0

01 1 0

11 1 1

10 1 1

f={1,2,3,6,7} f=b + a.c

Le rsultat est sous la forme de somme de produit, car nous avons port notre raisonnement sur les 1. Si nous travaillons sur les 0, nous travaillons avec le complment de f, par la complmentation du rsultat et l'emploi de De Morgan, le rsultat sera sous la forme d'une somme de produit. Le choix d'une des deux mthodes dpend du nombre de 1 et de 0 dans le tableau. Les regroupement de cases ne peuvent se faire que si l'adjacence algbrique existe, ces cases doivent tre en ligne ou en carr.

29

TD Informatique Industrielle IUT Troyes

Exemple : f(a,b,c) ={3,4,5,7} solution par les 1 : f=(3,7)+(5,7)+(4,5) (5,7)est redondant (consensus) f = a.b + c.b solution par les 0 : f = a.b + b.c f = a.b + b.c = a.b . b.c = (a+b).(b+c) rsolution algbrique : f(a,b,c) = {3,4,5,7} = a.b.c + a.b.c + a.b.c + a.b.c f = a.b.(c+c) +b.c.(a+a) = a.b + b.c = (a+b).(b+c) Exercice : soit f(a,b,c,d) = {2,6,E} dfini par les 1 et f = {5,D} dfini par les 0, le reste n'est pas dtermin. Reprsentez le tableau de Karnaugh, rsoudre par les 1 et par les 0. d 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 cba 000 001 010 011 100 101 110 111 000 001 010 011 100 101 110 111 f b.a 00 01 11 10 c 0 1 0 1 0 1 1 1 0 0

L'expression est biforme en a, le groupe (5,7) est bien le consensus de b.

b.a d.c 00 01 11 10 00 01 11 10

II - Mthodes algbriques. II-1) Emploi des thormes de l'algbre de Boole : Le tableau ci-dessous rsume les principaux thormes de l'algbre de Boole que l'on utilisera cette anne.

En rsum et retenir :
1) Elment neutre 2) Elment absorbant 3) Idempotence 4) Complment 5) Commutativit 6) Associativit 7) Distributivit a) ET a.1=a a.0=0 a.a=a a./a=0 a.b=b.a a.(b.c)=(a.b).c=a.b.c a.(b+c)=a.b+a.c b) OU a+0=a a+1=1 a+a=a a+/a=1 a+b=b+a a+(b+c)=(a+b)+c=a+b+c a+(b.c)=(a+b).(a+c)

30

TD Informatique Industrielle IUT Troyes

8) Relations diverses

9) De Morgan 10) Fonction biforme 11) Consensus 12) Consensus gnralis

a.(a+b)=a a.(/a+b)=a.b a./(a+b)=0 a./(a.b)=a./b /(a.b)=/a+/b a.b=/(/a+/b) a.b+/a.c=(a+c).(/a+b) a.b+/a.c+b.c=a.b+/a.c a.b+/a.c+b.c.d=a.b+/a.c

a+(a.b)=a a+(/a.b)=a+b a+/(a.b)=1 a+/(a+b)=a+/b /(a+b)=/a./b a+b=/(/a./b) (a+b).(/a+c)=a.c+/a.b (a+b).(/a+c).(b+c)=(a+b).(/a+c) (a+b).(/a+c).(b+c+d)=(a+b).(/a+c)

dualit
Il est important de remarquer la dualit entre le OU et le ET, en transposant les ET avec les OU et les 1 avec les 0. Exercice : vrifiez chaque relation sur un Tableau de Karnaugh ou algbriquement. Distributivit, liminer les redondances, emploi judicieux de De Morgan, consensus, fonction biforme carre, adjonction d'lment neutres et mise en facteur, tenir compte ventuellement de la nature des portes servant la ralisation, ...., voir TD. II-2) Mthode du consensus Il faut prendre tour tour chaque variable, rechercher ses consensus s'ils existent, nous pouvons supprimer les termes contenant ces consensus. Le rsultat final est l'apparition d'intersections premires, ...voir TD. III - Exercices. 1) Vrifiez avec les tableaux de Karnaugh les thormes de distributivit. 2) Simplifiez : y1= a .b.c + a.c + (a+b). c y2 = b.c + a.c + a.b +b y3 = (a./b+c)(a+/b).c y4 = (a.c+b./c).(a+/c).b y5 = (!a&b#a&!b)&(a&b#!a&!b) HORS TD
_ _ _ _ _ _

3) Complmentez puis simplifiez : A = a.b + b.c+ a.c


_ _ _ _ _ _

B = c . d + a . b + c. d + a. b

y6 = a.b.c + a.b. c + a .b. c + a. b .c y7=a./b./c + a.b./c + a.b.c + a.b./c

31

TD Informatique Industrielle IUT Troyes

TD4 - Ralisation des circuits.


Selon les technologies lectroniques (TTL,CMOS, ECL,...), nous rencontrerons plus frquemment des ET-Non ou des OU-Non, car une version peut tre plus facile raliser, ou bien elle peut tre plus rapide. D'autre part, les montages sont souvent trs complexes et doivent raliser de grande quantit d'oprations en une seconde ; il est donc ncessaire d'conomiser le nombre des fonctions et d'amliorer si possible la rapidit. Selon les technologies la rapidit de rsolution d'une porte varie de quelques 100 ns quelques 1ns, la mise en pratique des technologies rapides est difficile. Notre objectif est de rsoudre de faon optimale les schmas. I - Synthse avec la structure ET/OU. Aprs simplification algbrique ou par Karnaugh, la fonction doit tre mise sous forme de somme de produit (pas ncessairement canonique). Les schmas ainsi obtenus possdent au maximum trois couches de circuits. Cela est important pour minimaliser le temps de propagation.

synthse ET/OU
a b c d e f g 1 2 e.f.g 3 couches c.d

synthse ET/OU
a b

a.b y=a.b+c.d+e.f.g

c d e f g 1

& &

a.b y=a.b+c.d+e.f.g
c.d

>1

&
2

e.f.g 3 couches

II - Synthse ET-Non. La structure prcdente amne naturellement celle ET-Non. Le thorme de De Morgan permet cette transformation. Le montage reste constitu de trois couches.

synthse ET-Non
u

v
w

y >1

u v w

1 1 1 &

a b c d e f

a.b

&
y=a.b + c.d +e.f.g

& 1
1 2

c.d

&

y = u + v + w = u.v.w

De Morgan

&
e.f.g 3 couches

32

TD Informatique Industrielle IUT Troyes

REMARQUE : Il est important de passer par une forme " somme de produit " simplifie, pas ncessairement canonique (car pas simplifie). Il ne faut pas partir d'une expression quelconque et chercher supprimer les OU par un emploi abusif de De Morgan.

y=a.(b+c)+d
quation type somme de produits construction ET-Non emploi systmatique de DE Morgan pour supprimer les OU

y=a.b + a.c + d y=a.b . a.c . d a b c & y & & a b c d

y = a.(b + c) . d y = a . (b . c) . d 1 & & & y

1 & 1 1 2 1 2 3 4 2 couches 4 couches 4portes (2 ou 3 entres) 6 portes (2 entres) d OUI III - Portes ET-Non limites par le nombre d'entre. Lorsqu'on choisit un circuit intgr, il comporte plusieurs portes du mme type (ex. en TTL :le 7400 possde 4 portes deux entres). Parfois, il n'est plus possible de raliser la synthse en trois couches, on travaillera alors sur des groupes de termes gaux au nombre d'entre des portes choisies.
portes ET-Non 2 entres:
2 entres 3 entres

NON

1 & &
4 couches
6 portes 2 entres

&
( ).( )

&
( ).( ).( )

y = a . b + a . c + d = (a . b + a . c) . (d)

& 1

&

y = (( a . b ) . (a . c)) . (d)

IV - Synthse avec la structure OU/ET. C'est la mthode duale de celle ET/OU. Aprs simplification algbrique ou par Karnaugh, la fonction doit tre mise sous forme de produit de somme (pas ncessairement canonique). Les schmas ainsi obtenus possdent au maximum trois couches de circuits. Cela est important pour minimaliser le temps de propagation.

synthse OU/ET
a b c d e f g
1

>1
y=(a + b + c).(d + e).( f + g)
y

>1 1 >1
2

&

3 couches

V - Synthse OU-Non. La structure prcdente amne naturellement celle OU-Non. Le thorme de De Morgan permet cette transformation. Le montage reste constitu de trois couches.

33

TD Informatique Industrielle IUT Troyes

synthse OU-Non
u v w y u v w

1 1 1 >1

&

a b c d
e

y = (a + b + c) .(d + e) . (f + g)

>1
y

>1 >1

>1

y=u.v.w =u + v + w De Morgan

f g
1

3 couches

y=a.(b + c.d)
quation type produit de somme emploi systmatique de De Morgan pour supprimer les ET

REMARQUE : Il est important de passer par une forme "produit de somme" simplifie, pas ncessairement canonique (car pas simplifie). Il ne faut pas partir d'une expression quelconque et chercher supprimer les ET par un emploi abusif de De Morgan.

construction OU-Non

y = a . (b + c.d) = a + (b + c.d)
y=a.(b+ c.d)=a.(b+c).(b+d)

y = a + (b + c + d)

1 >1 >1
1 2 couches 4 portes (2 ou 3 entres) 2 1

>1

1 >1 1 1
2

>1
3 4

>1

4 couches
6 portes (2 entres)

OUI
VI - Portes OU-Non limites par le nombre d'entre

NON

Lorsqu'on choisit un circuit intgr, il comporte plusieurs portes du mme type (ex. en TTL :le 7402 possde 4 portes deux entres). Parfois, il n'est plus possible de raliser la synthse en trois couches, on travaillera alors sur des groupes de termes gaux au nombre d'entre des portes choisies.

portes OU-Non 2 entres :


y = a . (b + c.d) = (a) +(b+ c.d)
a b

1 1 1 >1

>1

>1

y = (a) + ((b) +(c.d))


y = (a) + ((b) + ((c)+(d)))

4 couches 6 portes (2 entres)

VII - Optimisations

34

TD Informatique Industrielle IUT Troyes


Optimisation des fonctions ET-Non
b a

&
a c

1 &

&

b a b c

& &
z b c

& & & &

&

mettre en commun des termes

mettre en commun des ET-Non en utilisant a.b = a. a.b ex : z = a.b + a.b.c = a.b . b + a . a.b . c
(thorme 8-4a)

faire apparaitre un ET-Non

&
w

a
w=a.b + a.c

& 1 &

= a . (b + c) =a. b.c

b c

&

&

Optimisation des fonctions OU-Non


b a

>1
a c

1 >1

>1

b a b c

>1 >1
z b c

>1 >1 >1 >1

>1

mettre en commun des termes

mettre en commun des ET-Non en utilisant a+b = a+ a+b ex : z = (a+b).(a+b+c) = (a+b + b).(a + a+b + c) (thorme 8-4b)

faire apparaitre un ET-Non

>1
w

a
w = (a + b ).(a + c)

>1 1 >1

= a + (b . c) =a+ b+c

b c

>1

>1

VIII - Exercices
1) Elaborez les schmas ET-Non puis OU-Non en 3 couches maxi. et optimum en nb. de portes : solution : ET-Non OU-Non 1: y= a.(b+c) 3 3 2 4 2: y= a.b + /c 3: y= /a.b + a.c 4 4 4: y= /a.b +a./b 4 5 5: y= ((/a+b).(a+c) + b.c).(a+b+c) 4 4 6: y= /a.b./c + a./b.c 5 7 7: y= !a&(c# b&d) 4 3 8: y= (!a#!b)&(c#d) 4 5 9: y= /a.b + a./b.c 4 6 10:y= a.(/b+/c) + /b.c 4 5 11:y= /A.E0 + A.E1 (multiplexeur) 4 4 12:y= a./b + a.c + b./c 4 4 13:y= /a.b + a./b + a.c 5 5 14:y= a./c + b./c 4 2 15:y= (/a+b).(a+/b) 5 4 2) Ralisez avec des ET-Non 2 entres seulement: 1: y= a.b + b.c + c.d 2: y= a.b.c 3: y= a+b+c

12 11 10 9 8 14 Vcc 13 3 1 2 4

1 2 3 4 5 6 7 Gnd TTL: 7400 (brochage ci-dessus) cmos: 4011(autre brochage)

35

TD Informatique Industrielle IUT Troyes

TD 5 - Mthode du SI-ALORS.
Nous avons appris jusqu' prsent simplifier, et raliser de manire matrielle les fonctions logiques. Malheureusement, dans les problmes concrets, les fonctions logiques ne sont pas souvent donnes directement par des quations logiques. Nous allons donc maintenant examiner comment passer d'un cahier des charges des fonctions logiques. I - Prsentation du tableau SI-ALORS I-1) Table de vrit Nous avons dj eu l'occasion de parler des tables de vrit. Ici, nous allons nous contenter de remarquer qu'une table de vrit peut tre vue sous un autre angle. Par exemple crire : a 0 0 .... b 0 1 ... s 0 1 ... peut s'interprter : SI a=0 et b=0 ALORS s=0 SI a=0 et b=1 ALORS s=1.....

Nous concluons : une table de vrit est quivalente une quation boolenne, une table de vrit est quivalente une liste de conditions SI ... ALORS ... Nous nous demandons : Si nous appelons une table de vrit un tableau dans lequel ne figurent que des uns et zros, est-il possible d'inventer un tableau dans lequel figurent des uns, des zros et des variables ? I-2) Tableau SI-ALORS Un tableau SI-ALORS sera un tableau compos de deux parties : une partie condition (SI) et une partie conclusion (ALORS). La partie conditions pourra tre compose par des quations boolennes quelconques ayant comme variables les entres (et les entres seulement), mais pour simplifier nous prendrons par la suite cette partie comme celle d'une table de vrit c'est dire ne comportant que des uns et zros. La partie conclusion sera compose d'quations boolennes simples (du genre s=1) ou sorties en fonction des entres. D'autre part lorsqu'aucune spcification n'est faite pour certaines entres, il sera suppos que la sortie est alors nulle, sauf dans le cas o la sortie est spcifie zro. Exemple : SI ALORS Soit un circuit comprenant comme entre e1 et e2 et comme sortie s. e1 e2 s Une quation SI pourrait tre e1=e2, une quation ALORS pourrait tre s=1. 1 1 1 (On suppose naturellement que si la condition n'est pas vrifie la sortie sera s=0) D'un tableau SI-ALORS, il est toujours possible de trouver une quation boolenne. Donner ici une mthode systmatique pour passer d'un tableau SI-ALORS une quation boolenne serait trop long et fastidieux. Nous allons plutt donner les exemples les plus courants que l'on rencontrera par la suite. II - Exemples Les entres seront notes e1, e2, ... ei et la sortie s. Les exemples gnraliseront la table de vrit par ordre de difficult croissante. SI ALORS (les =1 ne sont pas crits par simplification) Equation logique (E.L.) e1 e2 s SI e1.e2 alors s donne s=e1.e2 1 1 1 (Si la condition n'est pas vrifie s=0)

36

TD Informatique Industrielle IUT Troyes

Dans cet exemple on a tout simplement une table de vrit. Abordons les problmes plus difficiles: SI ALORS e3 e2 e1 s La difficult est qu'ici il faut simplifier algbriquement. 0 1 1 e4+/e5 E.L. : s=(e4+/e5)(e1.e2./e3)+(/e4+e5)(e1.e2.e3)+ /e5(e1./e2.e3) 1 1 1 /e4+e5 Doit ventuellement se simplifier. 1 0 1 /e5 La grande nouveaut est l'apparition d'quations logiques dans la partie ALORS. Remarques IMPORTANTES : un tableau SI-ALORS est parfois utilis pour dcrire des circuits un peu compliqus. Il est quand mme SI appel table de vrit (truth table) par les fabricants e3 e2 e1 de composants. Tout circuit un peu compliqu (plus 1 0 0 de 5 entres) ne peut qu'tre dcrit par ce genre de 0 1 1 tableau. Nous utiliserons par la suite la convention montre ci-contre pour tous les tableaux SI-ALORS : les conditions SI porteront toujours sur des entres "spciales" dessines de bas en haut. Elles sont parfois appeles entres de programmation. III - Tables SI-ALORS et le langage ABEL Il est possible de spcifier des tables SI-ALORS avec Abel mais on ne peut pas le faire l'intrieur d'une table de vrit. Il faut spcifier cela l'aide des quations. Par exemple : Vous pouvez constater ci-contre la MODULE EXO6 title 'exercice 6 : MUX 2 vers 1' facilit avec laquelle on spcifie e1,e2,A pin;"entrees une table SI-ALORS l'aide de la out pin istype 'com'; "sorties structure when ...then...else. Notez que le test de l'galit se fait X=.X.; equations comme en langage C par when !A then out=e1; l'oprateur ==. else out=e2;
test_vectors ( [A, e1, e2] ->out) [0, 0, 0] -> X; " ajoutez vos vecteurs ici [1, 1, 1] -> X; end

ALORS s e5 s=e5 e4 s=e4 e1 e2 e3

MODULE EXO7 title 'exercice 7 : MUX 4 vers 1 par la methode du SI ALORS' e0,e1,e2,e3,A,B pin;"entrees out pin istype 'com'; "sorties selecteur = [B, A]; equations when selecteur==0 then out=e0; when selecteur==1 then out=e1; when selecteur==2 then out=e2; when selecteur==3 then out=e3; end

37

TD Informatique Industrielle IUT Troyes

Le langage Abel permet de spcifier des quations grce des oprateurs relationnels permettant ainsi en une seule ligne de spcifier beaucoup de donnes. Nous vous donnons cicontre des spcifications que l'on vous demande de comprendre. Ce n'est pas proprement parler la mthode du SI-ALORS prsente plus haut mais ce genre de spcifications est trs utile.

module M6809A title '6809 memory decode Jean Designer Data I/O Corp Redmond WA' A15,A14,A13,A12,A11,A10 pin 1,2,3,4,5,6; ROM1,IO,ROM2,DRAM pin 14,15,16,17; H,L,X = 1,0,.X.; Address = [A15,A14,A13,A12, A11,A10,X,X, X,X,X,X, X,X,X,X]; equations !DRAM = (Address <= ^hDFFF); !IO = (Address >= ^hE000) & (Address <= ^hE7FF); !ROM2 = (Address >= ^hF000) & (Address <= ^hF7FF); !ROM1 = (Address >= ^hF800); test_vectors (Address -> [ROM1,ROM2,IO,DRAM]) ^h0000 -> [ H, H, H, L ]; ^h4000 -> [ H, H, H, L ]; ^h8000 -> [ H, H, H, L ]; ^hC000 -> [ H, H, H, L ]; ^hE000 -> [ H, H, L, H ]; ^hE800 -> [ H, H, H, H ]; ^hF000 -> [ H, L, H, H ]; ^hF800 -> [ L, H, H, H ]; end M6809A

IV - Exercices. Nous allons montrer d'abord avec les trois premiers exercices (un seul sera trait), que pour certains problmes pratiques l'utilisation de la mthode SI-ALORS se rduit l'utilisation d'une table de vrit. 1) Une socit est compose de 4 actionnaires ayant les nombres suivants d'actions : A=60 , B=100, C=160, D=180. Nous dsirons construire une machine voter automatiquement, tenant compte dans le rsultat du poids en actions de chaque personne. La machine dispose de quatre boutons poussoirs (A, B, C, D). Le rsultat sera un voyant (V) qui s'allumera si la majorit pondre appuie sur les boutons. Aprs une tude de V = f (A,B,C,D) , construire une machine avec des ET-Non. 2) Une automobile dispose de 4 commandes de feux : v veilleuses, c croisement, r route, a antibrouillards, qui prennent l'tat 1 si on les actionne. Les phares concerns (V,C,R,A) sont l'tat 1 (allums) selon la logique suivante : - les feux V, C, R, A ne peuvent tre allums ensembles, - les feux de croisement sont prioritaires sur ceux de route et d'antibrouillard, - les antibrouillards sont prioritaires sur ceux de route, - les veilleuses peuvent tre allumes seules, mais l'allumage des autres entrane celui des veilleuses. Donnez les tables de vrit et DK de V,C,R,A et les schmas ET-Non, puis OU-Non, puis ET-Non 2 entres seulement. 3) Dans une usine de briques, la qualit de celles-ci se fait selon quatre critres : Poids P, longueur L, largeur l, hauteur H, (0 : pas correct ,1: correct) Les briques sont classes en quatre catgories: *** A : le poids et 2 dimensions au moins sont corrects. ** B : seul le poids est mauvais OU le poids est correct mais au moins deux dimensions sont fausses. * C : le poids est incorrect et une dimension seulement est incorrecte. D: refus: les autres cas. Faites l'tude des DK et des schmas ET-Non. Le quatrime exercice et les suivants montrent, par contre, que dans certains cas la mthode du SIALORS est beaucoup plus efficace.

38

TD Informatique Industrielle IUT Troyes

4) Un multiplexeur (composant sur lequel nous E0 reviendrons plus tard) ralise une fonction E1 complexe pouvant tre schmatise ci-dessous : E2 E3 C1 C2

a) Combien de lignes comporterait une table de vrit dcrivant ce composant ? b) Montrer qu'un tableau SI-ALORS de 4 lignes peut dcrire ce composant. c) En dduire l'quation logique de ce multiplexeur. 5) Unit logique : il s'agit d'introduire la notion de fonction programmable. Etablir la nature des huit fonctions F(A,B) programmables selon a, b, c. X S UL Y Y S Y =1 abc a b c a b c X X =1 & =1 S

Montrer qu'une prsentation en SI-ALORS convient bien ce genre de problme. Ecrire le programme ABEL correspondant. 6) Le circuit intgr TTL 7487 est un gnrateur de fonctions. Quelle est la nature des fonctions programmables ? A1 A2 A3 Y1 Ai Yi

87

Y2 Y3

Ai & =1 Yi

A4 B C Y4 B C

4X

1 B C

4X

Mettre les rsultats dans un tableau SI-ALORS.

39

TD Informatique Industrielle IUT Troyes

NOM : Groupe : Novembre 1995

Devoir surveill n1 d'informatique industrielle (extraits)


Dure 2 heures FEUILLE REPONSE n1 Exercice 1. On donne l'expressions : S1=(A.B./C.D + C./D)(/B./A+ D) 1) Remplir le tableau de Karnaugh ci-dessous

3) Donner la forme conjonctive canonique Rponse : S1 =

BA 00 01 11 10 DC 00 01 11 10 S1
2) Donner la forme simplifie disjonctive. Rponse : S1 = Exercice 2. On donne le schma en OU-NON suivant :

4) Donner la forme conjonctive simplifie Rponse : S1 = 5) Ecrire la fonction S1 sous forme numrique par les 1 avec A poids faible et D poids fort Rponse : S1 =

a b c

>1 >1 >1 >1 >1 Y

3) Ecrire la fonction Y sous forme disjonctive canonique en fonction de a,b,c Rponse : Y = 4) Ecrire la fonction Y sous forme disjonctive simplifie. Rponse : Y = 5) Raliser un schma en NANDS (3 couches maxi) correspondant la fonction Y Rponse : schma raliser ci-dessous

1) Ecrire Y en fonction de a, b et c : Rponse : Y = 2) Remplir le tableau de Karnaugh ci-dessous :

ba 00 01 11 10 c 0 1 Y

Exercice 3. Soit la fonction boolenne de 5 variables : Z = a.b.c + a.d+ b.c.d.e + a. d. e 1) Simplifier de manire algbrique cette fonction boolenne. Rponse : 2) Passer ensuite la fonction Z sous forme conjonctive l'aide de la distributivit de l'addition par rapport la multiplication. Rponse : NOM :
_ _ _ _ _ _

40

TD Informatique Industrielle IUT Troyes

Prnom : Groupe : FEUILLE DE REPONSE N2 Exercice 4 (cours). On rappelle que le passage de la base 10 avec une prcision fractionnaire de 10-x vers la base 2 avec une prcision fractionnaire de 2-n au moins aussi bonne se fait avec n >3,32.x 1) Quelle est la prcision fractionnaire de 37,8 Dtail de calcul de 37,8 en base 2 : Rponse : 2) calculer ce nombre en base 2. Rponse : 3) Reprsenter -1 en complment deux sur 4 bits. Rponse :

Exercice 5. (Mthode du SI-ALORS) On veut raliser une unit logique programmable dont le schma fonctionnel est donn ci-contre. Son fonctionnement est dcrit par la table SI-ALORS dtaille ci-dessous SI a 0 0 1 1 b 0 1 0 1 ALORS S= e1.e2 /(e1.e2) e1+e2 /(e1+e2)

e1 e2 a b

1) Donner l'quation de S=f(a,b,e1,e2) sous forme disjonctive. Rponse :

ba 00 01 11 10 e2e1 00 01 11 10 S e1 Y =1 e2 b S

2) remplir le tableau de Karnaugh ci-contre correspondant S=f(a,b,e1,e2). 3) En dduire une quation simplifie sous forme disjonctive. Rponse :

4) Combien de portes ET-NON faut-il pour un schma trois couches ? Rponse : 5) On prfre raliser le circuit l'aide d'un OU-EXCLUSIF et de portes ET-NON comme indiqu ci-contre. En vous aidant de la table SI-ALORS d'un OU-EXCLUSIF utilise en TP et TD, crire l'quation simplifie Y=f(a,e1,e2) et complter le schma ci-contre l'aide d'un schma en ETNON. Rponse : Y =

41

TD Informatique Industrielle IUT Troyes

Cours 5 - Circuits de transcodage.


Le codage dsigne l'ensemble des codeurs (2n entres, n sorties), des dcodeurs (n entres, 2n sorties) et des transcodeurs (p entres et k sorties, k et p quelconques). Ils transforment une information prsente leurs entres sous une forme donne (code 1) en une information prsente leurs sorties sous une autre forme (code 2). I - Ralisation d'un circuit de transcodage. Quand le circuit n'existe pas tout fait, on le calcule et on le ralise selon les mthodes apprises prcdemment. Exemple : Transcodeur binaire/Gray Gray/binaire.
Code binaire n 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 B3 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 B2 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 B1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 B0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 Code gray G3 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 G2 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 G1 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 G0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 B2 B3
B1 B0 G0 G1 G2 G3

=1 =1 =1 =1 =1 =1
G0 G1 G2 G3

B0 B1

B2 B3

II - Circuits existants. On trouve dans le commerce quelques types de circuits dont l'emploi en grand nombre justifie une fabrication en srie. Nous allons en prsenter quelques uns. On trouvera tous les autres dans les catalogues de feuilles de donnes des fabricants. Exemples : Dcodeurs : Binaire/dcimal -->74154 BCD/Dcimal -->7442 Exces 3/Dcimal -->7443 Exces 3 Gray/Dcimal -->7444 Transcodeurs : BCD/Binaire -->74184 Binaire/BCD -->74185 BCD/7 segments -->7447 Codeurs : Dcimal/Binaire -->74148

Exemple : dcodeurs d'affichage 7447. L'afficheur lumineux 7 segments (TIL 302) est un circuit intgr form de 7 diodes luminescentes en forme de btonnets permettant de reprsenter tout chiffre de 0 9.

42

TD Informatique Industrielle IUT Troyes

a f g e d c b

Ka 1 Kf 2 + 3 4 5 Kp 6 Ke 7 e p f

a b g c d

14 13 12 11 10 9

+ Kb

Entres

Kg Kc +

8 Kd

1 2 3 6 7 8 9 10 11 13 14

fonctions cathode a cathode f +5V


cathode du pt.

L'allumage d'un segment se fait donc par une mise zro de la cathode (K) qui joue le rle d'entre, l'anode (+) tant + 5V.

cathode e cathode d +5V cathode c cathode g cathode b +5V

TIL 302
A B C D

If

+Vcc Uf

7447

a b c d e f g

+Vcc

Uf 1,2 V Vcc = 5 V If = 10 200 mA R = (Vcc-Uf)/If = 330

Il existe d'autres circuits dcodeurs 7 segments 4511 et 4543 en CMOS.

43

TD Informatique Industrielle IUT Troyes

Cours 6 - Multiplexage - Demultiplexage.


I - Dfinitions. Un multiplexeur est un circuit ralisant un aiguillage de l'une des entres vers une sortie unique. E0 E1 S E2 E3 C1 C0 S SI Deux reprsentations C1=0.C0=0 0 0 E0 possibles du 0 1 E1 fonctionnement C1=0.C0=1 1 0 E2 C1=1.C0=0 1 1 E3 La sortie s'exprime directement C1=1.C0=1 en fonction des entres ALORS S=E0 S=E1 S=E2 S=E3

C1 C0

S=E0C1C0+E1C1C0+E2C1C0+E3C1C0 La position de l'interrupteur est fixe par une commande n (2 entiers => n lments binaires de commande) On a une entre validation V : V=1 multiplexage, V=0 S=0

Un dmultiplexeur est un circuit qui distribue l'information d'entre vers l'une des sorties slectionne. S0 S1 E0 S2 S3 C1 C0 Do A D1 A B D2 A B D3 A B V
Do A B D1 A B D2 AB D3 A B V

Si l'entre est toujours gale 1, le dmultiplexeur fonctionne comme un dcodeur binaire. Schmas
D A A S B A B A B B S0=D si BA=00 S1=D si BA=01 S2=D si BA=10 S3=D si BA=11

& &

D A B & & B A B B & &

S0=D si BA=00 S1=D si BA=01 S2=D si BA=10 S3=D si BA=11

& & &

Utilisation : si l'on envoie distance les informations issues d'un grand nombre de sources diffrentes, on multiplexe ces informations pour les transmettre en srie sur une seule ligne. A l'autre extrmit, il faut dmultiplexer. adresse adresse R0 Rcepteur E0 R1 parallle E1 transmission srie . R2 Emission . . parallle . . dmultiplexeur En . multiplexeur Rn Avec la structure prcdente, on trouve commercialiss : - multiplexeur simple 8 (ou 16 entres) -> 74151 - (74150) - double multiplexeur 2x4 entres et 2 sorties ->74153

44

TD Informatique Industrielle IUT Troyes

- quadruple multiplexeur 4x2 entres et 4 sorties -> 74157 Pour les dmultiplexeurs, on emploie des dcodeurs avec entre sur la validation. - dcodeur binaire/dcimal -> 74139 1 entre et 4 sorties, -> 74138 1 entre et 8 sorties II - Application particulires. * Transformation parallle/srie : R0 1 0 1 1 1 0 1 0 D0 D1 D2 D3 D4 D5 D6 D7 H t t t t t 1 2 3 4 5 6 7 1 2 3 t t 1 0 1 1 1 0 1 0

Mult. 8/1

A B

A B C H R0 Compteur binaire n

C 0

* Gnrateur de fonction logique combinatoire ( 1ere forme canonique).


1 0 1 x y 0 1 0 D0 D1 D2 D3 D4 D5 D6 D7

Mult. 8/1

Mult. 8/1

S = ABCD + ABCD + ABCD + ... ... + ABCD. S= A + B + C + D => emploi en ou exclusif.

S=ABC + ABC +xABC A B C + yABC + ABC A BC D BCD

45

TD Informatique Industrielle IUT Troyes

Cours 7 - Paramtres lectriques et temporels.


Le but de ce cours est de dgager l'utilit pratique des paramtres lectriques et temporels pour la ralisation de systmes. Nous passons en revue pour cela, les familles logiques, les potentiels d'entre et de sortie et les temps de retard. I - Familles et sous familles. Il existe aujourd'hui essentiellement quatre familles logiques : TTL (Transistor Transistor Logic), ECL (Emitter Coupled Logic), CMOS (Complementary Metal Oxide Semi Conductor), GaAs (Arsniure de Gallium). Elles se caractrisent essentiellement par leur vitesses de fonctionnement : une vitesse leve correspond gnralement une consommation leve. I-1) TTL. Famille la plus dveloppe, fonctionne en mode bloqu-satur. TTL L (Low Power) TTL LS (Low Power Schottky) TTL ALS ( Advanced Low Power Schottky) : boitier 4 NAND consomme 1,9 mA au maximum sous 5 V, et une porte commute en 11 ns. I-2) ECL Fonctionne en rgime linaire. ECL 10KH : boitier 4 NOR consomme 23 mA sous -5,2V les portes ayant un retard de 1,55 ns au maximum. I-3) CMOS Emploie des transistors effet de champ. Famille HC fonctionne pour une plage de tension 2 6 V : boitier 4 NAND consomme 20 microA au repos sous 4,5 V et les portes commutent en 25 ns. La consommation croit avec le frquence d'utilisation. Le temps de retard diminue si la tension d'alimantation croit : 125 ns pour 2 V et 21 ns pour 6 V. Famille HCT fonctionne sous 5V (compatible TTL) II - Paramtres lectriques. II-1) Niveaux d'entre et de sortie. Les sigles suivants dfinissent les niveaux d'entre et de sortie : - VIH (High Level Input Voltage) : tension d'entre au niveau haut, - VIL (Low Level Input Voltage) : tension d'entre au niveau bas, - VOH (High Level Output Voltage) : tension de sortie au niveau haut, - VOL (Low Level Output Voltage) : tension de sortie au niveau bas.
Niveau d'entre
V e

Plage du 1
en entre

Plage du 1
Niveau de sortie en sortie

5V

VS 5V

3V 2V VIHmin

VOHmin

0,8 V

VILmax
0,5 V temps

VOLmax
temps

Plage du 0 en entre.

Plage du 0 en sortie Niveaux d'entre et de sortie d'une porte

46

TD Informatique Industrielle IUT Troyes

Comme la sortie d'une porte alimente l'entre d'une autre porte, il faut que la plage de reconnaisance en entre soit plus large que la plage de variation du signal de sortie de faon disposer d'une marge de scurit.

II-2) Immunit aux bruits


5V & 1 2

VOH(1)

VIH(2) VIL(2)
VOL(1)

immunit pour le 1

immunit pour le 0

II-3) Courants de sortie et d'entre. Les sigles suivants dsignent les courants d'entre et de sortie. - IIH (High Level Input Current) : courant d'entre au niveau haut, - IIL (Low Level Input Current) : courant d'entre au niveau bas, - IOH (High Level Output Current) : courant de sortie au niveau haut, - IOL (Low Level Output Current) : courant de sortie au niveau bas.
VOH & IIL 1 IIL & & VOH IOH IIH & IIH 1

IOL

Sens des courants absorbs et fournis par des portes TTL

L'entrance (fan-in) vaut 1 pour une NAND. La sortance (fan-out) est le nombre maximal d'entres qu'une sortie peut alimenter : c'est le plus petit des rapports IOH/IIH ou IOL/IIL L'assemblage des circuits suit une rgle trs simple : il suffit que la sortance d'un circuit soit suprieur ou gale la somme des entrances des circuits qu'il commande.
E=4 E=2 E=1 E=1 & S=20 E=2 D PRE CLK CLR Entrances et sortances de circuits. Q S=20 S=20

E=4

II-4) Courant de court-circuit. Il est not IOS (Short Circuit Output Current) est fourni par une sortie, normalement l'tat 1, mais force l'tat 0 par un court-circuit la masse (peut tre destructif) . Pour une TTL ALS il vaut 140 mA (contre 400 micro normalement).

47

TD Informatique Industrielle IUT Troyes

III - Paramtres temporels. Deux paramtres caractrisent le retard d'un circuit : - tPHL (propagation delay time, high to low level), temps de propagation pour la transition descendante du signal de sortie, - tPLH (propagation delay time, low to high leval), temps de propagation pour la transition ascendante du signal de sortie.
E : entre S : sortie

tPHL Temps de propagation

tPLH

La porte 74LS00A (NAND) et l'inverseur 74ALS04B ont les valeurs extrmes : tPHLmax = 8 ns, tPHLmin = 2 ns, tPLHmax = 11 ns et tPLHmin = 3 ns. IV - Exercices. 1)Dans un montage (ALS), une porte P alimente un circuit C dont l'entrance est de 4 charges ALS. Pour obtenir un temps de calcul meilleurs, on conserve la porte P en technologie ALS et l'on remplace le circuit C par son quivalent en technologie AS. Ce circuit AS prsente des courants IIH et IIL de 20 microA et -1,5 mA respectivement. Vrifier le bon fonctionnement du montage. 2) Dans le schma ci-dessous, les variables d'entre passent de dcb=100 (F=1) dcb=110 (F=0). Combien de temps met cette fonction pour passer de 1 0. (Rponse min 7 ns, max 27 ns)
b 1 & c d 1 & F

Fonction 6 inverseurs 4 Nand 2E 3 Nand 3E 2 Nand 4E 1 Nand 8E 4 And 2E 4 Nor 2E 3 Nor 3E 4 0r 2E 6 tampons

Numro 74ALS04B 74ALS00A 74ALS10A 74ALS20A 74ALS30A 74ALS08 74ALS02 74ALS27 74ALS32 74ALS34

tPLH (ns) min max 11 3 11 3 2 11 3 11 3 10 14 4 12 3 15 4 14 3 15 4

tPHL (ns) min 2 2 2 3 3 3 3 3 3 1 max 8 8 10 10 12 10 10 9 12 10

48

TD Informatique Industrielle IUT Troyes

Cours 8 - Portes collecteur ouvert, trois tats, trigger de schmitt.


Le but de ce TD est de prsenter des portes ayant des particularits sur leur sorties ou sur leurs entres. I - Portes sortie collecteur ouvert. I-1) Nous prsentons brivement sur le schma ci-dessous les diffrentes sorties possibles :
VCC R

V ext VCC

collecteur ouvert totem-ple


Sortie Sortie

Boitier Sortie

charge externe

Commande d'une charge externe La porte collecteur ouvert commande une charge alimente soit sous 5 V (diode lectroluminescente par exemple), soit sous une tension externe leve, avec un courant important (relais fonctionnant sous 30 V ). I-2) mise en parallle des sorties. L'intrt essentiel de tels circuits rside en fait dans la possibilit de relier entre elles les sorties de plusieurs portes collecteur ouvert. Le point commun donne la fonction ET.
VCC R Sortie x Sortie y pc x s s b b y s b s b pc s s s b x y pc 0 0 0 1

lectrique s (satur) b (bloqu)

0 0 0 1 1 0 1 1 logique

symbole

pc=x & y

Fonction ET cabl avec collecteur ouvert


VCC

>1

>1

&
>1 >1

Equivalance des deux montages


I-3) paramtres lectriques et temporels. - VOH : la tension de sortie au niveau haut est beaucoup plus leve que celle d'une porte standard ; elle est gale VCC soit 5 V (contre 3 V). Ceci permet de commander des circuits ayant des tensions d'entre VIH leves, - IOH : le courant de sortie au niveau haut n'est pas fourni comme pour une porte standard, mais absorb. Il vaut 0,1 mA (au lieu de 0,4 mA). - il n'y a pas de courant court-circuit, - tPLH, tPHL : les temps de commutation sont beaucoup plus levs (54 et 28 ns contre 11 et 8 ns). Les autres paramtres sont identiques. II - Porte sortie 3 tats.

49

TD Informatique Industrielle IUT Troyes

Les portes standards ne permettent pas la mise en parallle de leurs sorties. La solution collecteur ouvert a l'inconvnient d'avoir des temps de commutation trop levs. Une autre solution consiste utiliser des portes sortie trois tats : deux de basse impdance (0 et 1) et un de haute impdance. Dans ce troisime tat, tout se passe comme si les sorties taient dconnectes. Il existe de nombreuses applications de ce type de portes, surtout lorsqu'un BUS runi en parallle plusieurs portes. Nous aurons l'occasion d'en voir des exemples concrets dans les TD sur le microprocesseur. Par exemple, le circuit 74 ALS 1244A comporte huit tampons trois tats, rpartis en deux groupes identiques placs sous la dpendance d'une entre de validation /G. 2A1 2A2 2A3 2A4 2G 1A1 1A2 1A3 1A4 1G 74 ALS 1244 2Y1 2Y2 2Y3 2Y4
A G G 1 0 0

1Y1 1Y2 1Y3 1Y4


A Y X Z (haute impdance) O 0 (basse impdance) 1 1 (basse impdance)

Tampon octal 3 tats Les paramtres lectriques et temporels sont identiques sauf : - IOb, IOh : courants de sortie aux niveaux bas et haut : 16 mA absorbs et 15 mA fournis, contre 8 mA absorbs et 0,4 mA fournis. - VOH : tension de sortie au niveau haut. Cette valeur dpend de l'importance du courant fourni IOH ; pour une faible valeur (0,4 mA) on retrouve le VOH d'une porte standard. - ICC courant consomm plus important que celui d'une porte standard (20 mA au lieu de 3 mA) - tPLH, tPHL : temps de propagation lgrement plus levs que pour une porte standard( 14 ns au lieu de 11 ns). - tPZH, tPZL, tPHZ, tPLZ : ces nouveaux paramtres caractrisent le temps de passage de l'tat bloqu vers les tats de basse impdance (O ou 1) et inversement. Rgles d'utilisation : - Le point commun d'un groupement de portes trois tats ne doit pas servir commander un autre circuit quand toutes les sorties sont dans l'tat haute impdance. - A un instant donn, une seule sortie se trouve en basse impdance dans un groupement de portes trois tats. Le court-circuit entre les trois tats s'appelle conflit de bus. III - Portes entres trigger de schmitt. Si le signal d'entre d'une porte standard a des temps de monte et de descente trop long, la sortie oscille. Les portes entres trigger de schmitt vitent ce dfaut

Symboles pour trigger de Schmitt

Par rapport une porte standard, quatre nouveaux paramtres caractrisent les entres : - VT+ et VT- : seuils de basculement haut et bas, qui remplacent VIH et VIL, - IT+ et IT- : courants d'entre aux seuils haut et bas.

50

TD Informatique Industrielle IUT Troyes

TD 6 - La fonction mmoire.
Nous allons maintenant nous intresser des fonctions plus complexes que les fonctions combinatoires : les fonctions squentielles. Ces dernires sont caractrises par le fait qu'une mme combinaison des entres peut donner des sorties diffrentes. En fait les sorties dpendent de l'tat prcdent. I - Mmoire RS. I-1) Principe de fonctionnement. Ce circuit mmorise une information lmentaire (0 ou 1). Il possde une entre S (Set) pour la mise 1, une entre R (Reset) pour la mise 0, et une sortie Q donnant l'tat de l'information mmorise.
Mise 1 Mise 0 S R Sortie Entres R S 0 0 0 1 1 0 1 1 Etat futur Q 1 0 X fonction ralise mmoire Mise 1 Mise 0 priorit

En l'absence de demande (R=S=0), la sortie maintint son tat antrieur. Avec les deux commandes contradictoires (R=S=1), la sortie de la bascule dpend de la faon dont elle est ralise : - si elle vaut 1, on parle de mmoire S prioritaire, - si elle vaut 0, on parle de mmoire R prioritaire, - si elle vaut l'tat prcdent, on parle de mmoire mmoire prioritaire. I-2) Exemples de bistable RS.
R 1 Q S & Q

&

A noter que la deuxime sortie de ces montages est le complment /Q de l'autre sortie Q, sauf dans le cas R=S=1. On vitera donc de la noter /Q. I-3) Mthodes d'tudes. Ces circuits peuvent s'tudier, comme dans le cas du combinatoire, l'aide des tableaux de Karnaugh (ou de tables de vrits). Mais ceux-ci tant caractriss par un bouclage, une variable prsentant l'tat prcdent doit y figurer. Ils sont caractriss par une quation de rcurrence.
R 1 y 1 S Y R 0 0 0 1 1 S 0 0 1 0 1 y 0 1 0 0 0 Y 0 1 1 0 0 y RS 00 01 11 10 0 0 0 0 1 0 0 1 1 1 Y Tableau de Karnaugh Y=R.S+Ry Equation de rcurrence.

table de vrit

Une autre mthode consiste les caractriser par des fonctions de commutation : epsilon : enclenchement (mise 1) delta : dclenchement (mise zro) mu : mmoire (reste dans l'tat prcdent. II - La mmoire D. La mmoire D (D latch) possde une entre d'horloge CLK (clock), une entre de donne D (Data) et une sortie Q donnant l'tat de l'information mmorise.

51

TD Informatique Industrielle IUT Troyes

Donne Horloge

D CLK

Sortie Q

Entres CLK D X 0 0 1 1 1

Etat futur Q q 0 1

Fonction ralise Maintien Mise 0 Mise 1

III - La mmoire RST. Une entre T supplmentaire est ajoute la mmoire RS servant synchroniser les commandes R et S : si T=0 les entres R et S sont inhibes, si T=1 les commandes sont identiques la RS. IV - Exercices. Exercice 1. Pour une RS mmoire prioritaire, complter ce chronogramme. R t S t Y t Exercice 2. Les deux mmoires RS suivantes sont actives par des niveaux 0 : R S Q1 R Q 1 & & S R & S Dterminer la nature des priorits, dessiner les en schma crois. Exercice 3. Complter ce chronogramme pour une D latch.
T 1 t 0 D 1 t 0 Q 1 t 0

R T S

R T S

& &

R' Q S'

Q2 &

t 9 3 8

Exercice 4. Raliser une mmoire D avec une RST. Exercice 5. Raliser une mmoire D autour d'une RS ET-NON, en n'utilisant que 4 portes.

52

TD Informatique Industrielle IUT Troyes

TD 7 - Les bascules.
I - Fonction bascule. Pour leur volution ces circuits sont pulss par des signaux d'horloge. Ils fonctionnent sur des fronts montants ou descendants. La fonction BASCULE est telle que la sortie l'instant n+1 est le complment de ce qu'elle tait l'instant n prcdent. Dans ces fonctions pulses, le temps est repr par l'indice n, car il est maintenant discret. Les diagrammes suivants prcisent la nature d'une bascule. H
Q 0 1 H

diagramme d'volution

Q
chronogrammes

schma fonctionnel

II - Comptage. La bascule est la fonction de base des compteurs, trois bascules correspondant trois variables d'tat pouvant prendre 8 valeurs selon les combinaisons binaires. Si nous employons des bascules front descendant, nous obtenons un compteur, et avec des fronts montants un dcompteur.
COMPTAGE Q1 H H Q1 Q2 Q3 Q Q2 Q Q3 n 0 1 Q 2 3 t 4 5 6 7 0 000 001 010 011 100 101 110 111 1 H H H Q1 Q2 Q3 Q DECOMPTAGE Q1 Q Q2 Q3 Q t n 0 1 2 3 4 5 6 7 0 000 001 010 011 100 101 110 111 Q3 Q2 Q1 1 H

Q3 Q2 Q1

III - Les diffrentes bascules. Toutes les fonctions ayant une horloge travaillant sur des fronts s'appellent "bascules". Elles ne possdent pas toutes ce mode de commutation, mais elles peuvent toutes tre cbles en bascule. Ces circuits possdent les fonctions de commutation des mmoires (enclenchement, dclenchement et mmoire). La bascule JK rassemble toutes ces fonctions en plus de la fonction bascule.

+ +
0 1

Il ya quatre modes de commutation, donc en plus de l'horloge, deux entres seulement suffisent pour programmer le mode de commutation dsir (ce sera la JK).Si il n'y a qu'une commande, seuls deux modes de commutation seront possibles (ce sera le cas de la D, et de la T). Si il n'y a aucune commande, seule le basculement est possible: voir ci-dessus. La JK permet de raliser les autres.

IV - Bascule JK. C'est la bascule la plus complte, elle utilise les quatre modes de commutation. Elle dispose de deux entres de prslection du mode de commutation. Il existe diffrentes technologies de JK que nous tudierons dans un prochain chapitre. Nous considrerons ici, seulement la bascule front positif ou ngatif.

53

TD Informatique Industrielle IUT Troyes

J K + + 0 + + =J.K + J.K = J + =J.K + J.K = K + =J.K + J.K = K + =J.K + J.K = J JK Q(n) 0 1 00 0 1 01 0 0 11 1 0 10 1 1 J 0 K volution sur H Equation de rcurrence : Q(n+1)=J.Q(n) + K.Q(n) Q(n+1)=(K+Q(n)).(J+Q(n)) 1 + H Clk J 1 K J K Q Q 0 0 0 1 1 0 1 1

Q(n+1) Q(n) 0 1 Q(n)

D'aprs la table de vrit, vrifier chaque reprsentation et interprtation. V - Bascule T. Cette bascule n'est pas commercialise sous forme de C.I., mais on la retrouve dans certaines macrocellules de circuits programmables. Elle peut tre ralise l'aide d'une JK. Elle utilise le mode mmoire et le mode bascule, donc une seule entre (T) permet la slection du mode de commutation. T T Q(n+1) 1 0 T 1 T 0 Q(n) 0 T Evolution sur H Ralisation d'une bascule T : T T Q T J Q 1 Q(n) Evolution sur H

H H Q Q K clk clk Ces bascules seront utilises dans certaines techniques de synthse. VI - Bascule D. Cette bascule est ralise en C.I., elle est trs utilise dans certaines technologies, o sa fabrication est plus facile que celle de la JK (ECL, certains rseaux programmables). Elle ne doit pas tre confondue avec la mmoire D niveau (chapitre prcdent). Elle utilise deux modes de commutation, l'enclenchement et le dclenchement. Une seule entre (D) suffit pour choisir ce mode.

54

TD Informatique Industrielle IUT Troyes


0 1

Q(n+1)
0 1 D


Q
Q D
0

D
1

0 1 D H clk

Evolution sur H

D Evolution sur H

Remarque : A partir d'une rflexion gnrale sur les quatre modes de commutation, nous voyons qu'avec une JK, nous pouvons raliser les autres bascules (B, T, D), ce sera l'objectif d'un prochain exercice. Avec les trois autres et un environnement combinatoire, nous pouvons aussi raliser n'importe quelle autre bascule. VII - Exercices 1) Complter les chronogrammes suivants pour des bascules front montant :
H 1 0 J 1 0 K 1 0 Q 1 t t t

bascule
JK 0 D 1 0

bascule
D 0 T 1 0

Q 1 t

bascule
T 0

Q 1 t

2) Nous disposons d'une bascule JK, la transformer avec d'ventuelles portes logiques en bascules B,D, T. 3) Nous disposons d'une bascule D, la transformer en B, T, JK. 4) Nous dsirons raliser la bascule suivante : E - si E=0 Q=0, - si E=1 Q(n+1)=/Q(n) (/q : complment logique de q)

55

TD Informatique Industrielle IUT Troyes

Proposer une ralisation autour d'une JK puis d'une D. 5)Vrifier que le montage suivant ralise une JK :

Q J H K 1 h & 1 B Q

56

TD Informatique Industrielle IUT Troyes

TD 8 - Les registres.
Deux applications des bascules sont importantes : construction des registres et des compteurs. La proprit principale des registres est leur possibilit de stocker des donnes ; la proprit principale des compteurs est leur possibilit de compter, c'est dire de dcrire une squence de nombres. Nous allons nous intresser maintenant aux registres. Un des plus connu est le registre dcalage. Sa principale application est de stocker des donnes qui arrivent, ou qui doivent tre envoyes sous forme de squence de bits. Ce registre est une machine squentielle trs simple, constitu de bascules et de portes inverseuses. Pourtant, dans la plupart des machines squentielles une partie combinatoire consquente est ncessaire. I - Registres I-1)Dfinitions. Un registre est une association de mmoires unitaires, avec laquelle il est possible d'effectuer les 3 oprations fondamentales suivantes : enregistrer un instant donn une information constitue d'une suite quelconque de 0 et 1 (mot binaire) : c'est la fonction criture (WRITE) ou chargement (LOAD) conserver ce mot en mmoire aussi longtemps que ncessaire : fonction mmorisation (STORAGE) restituer le mot enregistr la demande : fonction lecture (READ). D'autres types de circuits permettent d'effectuer ces mmes oprations, mais sur plusieurs mots qui sont alors classs et identifis l'aide d'une adresse : ce sont les mmoires actives (ACTIVES MEMORIES) appeles aussi R.A.M (RANDOM ACCES MEMORIES). Il existe aussi des mmoires mortes R.O.M (READ ONLY MEMORIES) pour lesquelles la fonction criture a t ralise une fois pour toutes lors de la fabrication. I-2) Structures des registres. La structure d'un registre dpendra du mode, srie ou parallle, utilis : pour y crire l'information, pour la lire ensuite. On distinguera donc, des registres : criture et lecture en parallle, (registre tampon, BUFFER REGISTER) criture et lecture en srie, (registre dcalage, SHIFT REGISTER) criture en parallle et lecture en srie, (PARALLEL IN- SERIAL OUT) criture en srie et lecture en parallle. (SERIAL IN - PARALLEL OUT) I-3) Ecriture d'un mot dans un registre. Quelle que soit la structure du registre chaque bit du mot est toujours crit et gard en mmoire grce une fonction D. I-3-a) criture en parallle peut se faire de 2 manires : - soit sur l'entre D des bascules (entre synchrone),

57

TD Informatique Industrielle IUT Troyes

1
D Cp S Q

0
D Cp S Q

1
D Cp S Q

Mot crire : 101

Ordre d'criture

- soit sur les entres de forage (entres asynchrones).


SET Ordre
criture & & &

Mot crire

D Cp

S Q

D Cp

S Q

D Cp

S Q

Ncessite un RAZ avant le SET

RAZ

I-3-b) criture en srie Pour crire en srie un mot de 3 bits (par exemple), dans un registre de 3 bascules, il faut 3 ordres d'criture. Il faut donc : que la premire bascule recopie chaque ordre d'criture la valeur logique prsente sur l'entre srie du registre, que la seconde recopie chaque ordre d'criture l'tat dans lequel la premire, juste avant cet ordre, la troisime bascule recopie de la mme manire les tats successifs de la seconde.
Mot crire

1
D S Q Cp Q

Q1 D Cp S Q

Q2

D Cp

S Q

Q3

Es = Entrs srie

Impulsions de synchro

I-4) Lecture d'un mot contenu dans un registre. I-4-a) lecture en parallle
D Cp R S Q1 D Cp R S Q Q2 D Cp R S Q Q3

Ordre de lecture L1

& L2

& L3

&

58

TD Informatique Industrielle IUT Troyes

I-4-b) lecture en srie simple.


Entre srie 0 D Cp S Q Q1 D Cp S Q Q2 D Cp S Q Sortie srie Q3 Q

1
R Q R

1
Q R

Ordres de lecture

I-4-c) lecture en srie rptitive. Dans les deux exemples prcdents, le mot contenu dans le registre se trouve, aprs lecture en srie, remplac par un autre (000 dans l'exemple choisi). Il est donc dtruit. Registre dcalage circulaire :
Entre srie Q1 D Cp S Q D Cp S Q Q2 D Cp S Q

Sortie srie

1
R Q

1
R Q R

0
Q

Q3

Ordres de lecture

II - Exercices. 1) Donner le schma complet d'un registre de 3 mmoires criture et lecture en parallle, ralis avec des mmoires D de type LATCH. Prcisez l'allure du signal de commande d'criture. Peut-on raliser un registre criture et lecture srie avec des mmoires D ? 2) Donner le schma d'un registre de 3 bascules criture et lecture en srie ralis avec des bascules JK. 3) Donner la liste des 5 modes de fonctionnement du registre de dcalage 74194. La seule entre asynchrone du 74194 qui est prioritaire sur toutes les autres entres est __________. Quel est l'effet d'une impulsion d'horloge quand le registre 74194 est dans l'tat d'attente passive ? Il faut _______ impulsion(s) d'horloge pour le chargement parallle de 4 bits dans le 74194. L'entre DSR est en fonctionnement pour S0 = _____ (0) (1) et S1 = _____(0) (1). Le 74194 est activation par _________ (front positif d'impulsion) (impulsion).

59

TD Informatique Industrielle IUT Troyes

4 - BIT BIDIRECTIONAL UNIVERSAL SHIFT REGISTER

54/74 SERIES "194"

FUNCTIONAL DESCRIPTION The functional characteristic of the "194" 4-Bit Bidirectional Shift Register are indicated in the Logic Diagram and Thruth Table. The register is fully synchronous, with all operations taking place in less 20 nanoseconds (typical) for the 54/74 and 54LS/74LS, and 12 ns (typical) for 54S/74S, making the device especially useful for implementing very high speed CPUs, or for memory buffer register. The "194" design has special logic features which increase the range of application. The synchronous operation of the device is determined by two Mode Select inputs, S0 and S1. As shown in the mode Select Table, data can be entered and shifted from the left to right (shift right, Q0 ->Q1, etc.) or ; right to left (shift left ,Q3 -> Q2, etc.) or, parallel data can be entered loading all four bits of the register simultaneously. When both S0 and S1 are LOW, existing data is retained in a hold (do nothing) mode. The first and last stage provide D-type serial data inputs (DSR,DSL) to allow multistage shift right or shift left data transfers without interfering with parallel load operation. Mode Select and Data inputs on the 54S/74S194 and 54LS/74LS194A are edge triggered, responding only to the LOW-to-Hight transition of the clock (CP). MODE SELECT - FUNCTION TABLE OPERATING INPUTS MODE CP MR S1 S0 DSR DSL Dn Reset (clear) X L X X X X X Hold (do nothing) X H l(b) l(b) X X X Shift Left H h l(b) X l X Shift Left H h l(b) X h X Shift Right H l(b) h l X X Shift Right H l(b) h h X X Parallel Load H h h X X dn

Q0 L q0 q1 q1 L H d0

OUTPUTS Q1 Q2 L L q1 q2 q2 q3 q2 q3 q0 q1 q0 q1 d1 d2

Q3 L q3 L H q2 q2 d3

SIGNETICS

H = HIGH voltage level h = HIGH voltage level one setup time prior to the LOW-to-HIGH clock transition L = LOW voltage level l = LOW voltage level one setup time prior to the LOW-to-HIGH clock transition dn (qn) = Lower case letters indicate the state of the referenced inputs (or outputs) one setup time prior to the LOW-to-HIGH clock transition X = Don't care = LOW-to-HIGH clock transition NOTES b. the HIGH-to-LOW transition of the SO and S1 inputs on the 54/74194 should only take place while CP is HIGH for conventional operation.

Therefore, the only timing restriction is that the mode Control and selected Data Inputs must be stable one setup time prior to the positive transition of the clock pulse. The four parallel inputs (D0 - D3) are D-type inputs. data appearing on D0-D3 inputs when S0 and S1 are HIGH is transfered to the Q0 - Q3 outputs respectively following the next LOW-to-HIGH transition of the clock. When LOW, the asynchronous Master reset (/MR) overrides all the other input conditions and forces the Q outputs LOW.

60

TD Informatique Industrielle IUT Troyes

S1 1 (10) 1 1 S0 1 (9) DSR (2) & &

D0 (3)

D1 (4)

D2 (5)

D3 (6)

& >1 1

&

&

& >1

&

&

&

& >1

&

&

&

& >1

&

&

DSL (7)

S Q0 CP R R 0

S Q1 CP R R 1

S Q2 CP R R 2

S Q3 CP R R 3

CP (11) MR (1) 1

1 Q0 (15) Q1 (14) Q2 (13) Q3 (12)

4) Donner le schma d'un registre de 3 bits, programmable, criture et lecture en srie par dcalage droite ou gauche, circulaire ou non. Prvoir 2 entres de programmation P1et P2, et donner le code de programmation choisi. Utiliser des bascules D synchrones front montant. Indications : on a encore ici une bonne illustration de l'utilisation de la mthode du SI-ALORS.

61

TD Informatique Industrielle IUT Troyes

TD 9 - Les compteurs synchrones


I - Analyse des machines pulses franchissement synchrone. Les compteurs sont des machines squentielles simplifies car elles ne disposent pas en gnral d'entre (sauf l'horloge H). Ils disposent de n sorties qui sont souvent, directement les variables d'tat c'est dire des sorties de bascules D.
Q1 Q2 Q3 Q4

Machine pulse synchrone

Machine sans entre (sauf H).

I-1) Analyse d'un compteur synchrone de type registre en anneau. On a 4 variables (A,B,C,D) donc 16 tats. Mais combien de cycles ? D

A Q Q D Q Q

B D Q Q

C D Q Q

D Da=/D Db=A Dc=B Dd=C

n = D C B A en Hexa. Da n DCBA 1 0 0000

H 0 A B C D (Necessit d'une initialisation)

n 2

DCBA 0010

Da 1

H A B C D

On a donc rempli deux tableaux diffrents : un pour chaque cycle. En gnral le nombre de cycles peut tre quelconque et on mettra pour cela tous les cycles dans un mme tableau tout simplement en prenant soin de les sparer par des traits horizontaux. C'est ce que l'on fera dans l'exercice suivant. I-2) Analyse d'un systme ayant plusieurs cycles. Remplir le tableau et le diagramme d'volution ci-dessous.

62

TD Informatique Industrielle IUT Troyes

A H n DCBA 0 0000 1 0001 Da 0 0 H D Q Q D Q

C D Q Q D Q Q

D Da=D Db=A Dc=B Dd=C

I-3) Gnrateur de chiffres pseudo-alatoires. Nous faisons Da = C $ D (Notation ABEL du ou exclusif). A H n DCBA 0 0000 1 0001 Da 0 0 H =1 D Q Q D Q Q D Q Q D Q Q B C D Da=C$D Db=A Dc=B Dd=C

I-4) Mthode d'analyse d'un systme quelconque. Pour chaque tat (actuel) nous recherchons quel sera l'tat futur ?

63

TD Informatique Industrielle IUT Troyes

A >1 Da Qa Db Qb

Da = Db =

2 variables -> 4 tats. Qa H Alors tat Da futur H t A Qb

Si tat actuel 0 1 2 3

Db

I-5) Montage avec JK. Cette mme mthode peut s'appliquer aux montages JK. A B Ja Qa Jb Qb 3 Ka Qa Kb Qb 2 1

SI n 0 B A Jb Kb

Alors Ja Ka a B A n b

H t A

1 2 3 B

II - Synthse des compteurs synchrones. Il s'agit de rechercher les lois de commande des entres afin de prslectionner la fonction de commutation dsire. Il s'agit donc d'une recherche de type combinatoire. la synthse JK pourrait paratre plus complique qu'avec des D. Mais ces bascules offrant plus de possibilits amnent des schmas plus simples. Exemple de structure pour deux variables d'tat :

64

TD Informatique Industrielle IUT Troyes

A Ka Ja

B Kb Jb C A Da

B Db C A B

K H

Q H

Synthse JK : recherche de A fonctions

D : recherche de 2 fonctions.

Synthse d'un compteur modulo 4. Note : le terme modulo provient de l'arithmtique entire, o le modulo est le reste de l'opration de division (ex: 18 modulo 4 = 2). Il en est de mme pour un compteur : 18 impulsions compter en partant de 0 l'entre d'un compteur par 4, il arrivera l'tat 2. On a besoin de 4 tats pour raliser cela donc de 2 bascules. Commenons par la synthse en JK : H 0 1 0 A 3 1

A B 0 0 1

A B 0 0 1

A B 0 0 1

A B 0 0 1

1 J Q J Q

K Ralisez le mme compteur modulo 4 avec deux bascules D.

65

TD Informatique Industrielle IUT Troyes

H 0 0 A 3 1 1

A B 0 0 1

A B 0 0 1

1 D Q D

Vous devez constater une complication du schma par rapport aux JK. III - Exercices. 1) Ralisez la synthse d'un diviseur de frquence par trois JK et D. Un diviseur de frquence n'est pas un compteur, il sert en lectronique pour l'laboration de frquence. Vous pouvez choisir les cycles que vous voulez. Il n'y a pas de considration concernant l'tat initial. Par contre toutes les phases devront tre connexes. 2) Ralisez un gnrateur de signaux carrs dphass de 90 (en quadrature) 3) Raliser un gnrateur de signaux triphass (120). Le rapport cyclique sera de 1/2. Montrer qu'il faut ncessairement 6 tats pour le raliser. 4) Nous allons tudier une machine possdant une entre autre que H. Nous appellerons cette entre C. Si C= 0 on a le cycle : 0 3 C A

1 2 Si C=1 on a le cycle : Les changements de cycle selon C se feront en synchronisme avec l'horloge. Dans cet exercice, il est important de travailler avec le diagramme des phases et non pas avec les chronogrammes qui sont trop complexes. IV - Limitation en frquence des compteurs synchrones.

Ce montage ralise un compteur binaire modulo 16. Il est limit en frquence par les temps de propagation (tp) des portes et des bascules.

A 1 1 H J Q J K Q Q

& J

C & Q J Q

K Q

K Q

K Q

66

TD Informatique Industrielle IUT Troyes

Pour un temps tp moyen de 20 ns par porte et par bascule, quelle serait la frquence maximum applicable en entre pour un fonctionnement correct. Mme question pour le schma ci-dessous : A 1 B & C & J Q J Q J Q J Q D

1 H

Gnralisation et conclusion : .... ? V - Initialisation d'un compteur. Pour initialiser (premire phase) ou pour viter des cycles parasites, il faut parfois imposer les conditions de dpart par un forage asynchrone en utilisant les R et S des bascules : ici : dpart A=0, B=1. Proposez un schma RC pour avoir une initialisation la mise sous tension sur les /R et /S. Init R A B

S VI - Forage asynchrone des compteurs synchrones ( rtroaction). Ce type de montage se rencontre parfois dans la pratique, pour des cas simples. Il est cependant dconseill de l'employer. Exemple : transformer un compteur modulo 16 en diviseur de frquence par 12 (comptage de 0 11). SI (n=12) ALORS n := 0 A B C D F C H Compteur modulo 16 R Pourquoi cette simplification ? n = 12 si /A./B.C.D = 1 R = F(A,B,C,D) R=C.D

67

TD Informatique Industrielle IUT Troyes

H A B C D R

10 11

Exemple d'application complexe : le diviseur programmable. Le nombre N est cod en binaire, il peut varier. F Diviseur programmable n N VII - Compteurs et le langage ABEL. Il y a trois manires de spcifier un fonctionnement squentiel de type compteur : quations de rcurrences (equations) diagramme de transition (state_diagram) tables de vrits (truth_table) Nous donnons ci-dessous un exemple pour lequel il y a une partie squentielle et une partie combinatoire. MODULE EXO8 title 'exercice 8 compteur binaire 4 etats' ck pin; "entree horloge PARTIE COMMUNE q1,q0 pin istype 'reg'; "sorties sequentielles out pin istype 'com'; "sortie combinatoire AUX TROIS PROGRAMMES X=.X.; Xs=[X,X,X]; etat = [q1, q0]; outs=[q1,q0,out]; front =.c.; equations equations equations etat.clk = ck; "declare qui etat.clk = ck; etat.clk = ck; "est horloge out = q1 $ q0; "combinatoire truth_table (etat.fb:>etat->out) etat := etat + 1; "equation state_diagram etat 0 :> 1 -> 0; "specification "sequentielle state [0,0] : goto [0,1]; 1 :> 2 -> 1; "decimale out = q1 $ q0; "equation state [0,1] : goto [1,0]; 2 :> 3 -> 1; "combinatoire state [1,0] : goto [1,1]; 3 :> 0 -> 0; state [1,1] : goto [0,0]; test_vectors (ck -> outs) front -> Xs; PARTIE COMMUNE front -> Xs; front -> Xs; AUX TROIS PROGRAMMES front -> Xs; front -> Xs; end N cod en binaire F/N F Dcompteur synchrone prpositionnable F/N

68

TD Informatique Industrielle IUT Troyes

Remarques : Notez que lors de la spcification par table de vrit, la partie combinatoire se spcifie sur l'tat prsent (not .fb). La spcification par diagramme d'tat pourrait elle aussi se faire en dcimal. Les quations de rcurrence pourraient tre dtailles sous la forme : q1 := ..... et q0 := ... qui seraient des quations logiques. Le + utilis ici n'est pas un OU logique mais bel et bien une addition binaire. Il est bien vident que la spcification par diagramme d'tat est la plus simple : "s'ecrit tout simplement : etat = [q1, q0]; "q0 poids faible car a droite ..... equations etat.clk = ck; state_diagram etat state 0 : goto 2; state 2 : goto 3; state 3 : goto 1; state 1 : goto 0;

0 1 3 2

Remarque : On ne peut pas se passer de la partie equations ! qui renseigne ABEL sur l'horloge.

69

TD Informatique Industrielle IUT Troyes

TD 10 - Compteurs asynchrones.
Nous allons dans ce cours examiner rapidement le comptage asynchrone. Il est caractris par le fait que toutes les bascules utilises n'ont pas une horloge commune. Nous allons d'abord nous intresser l'analyse de ces compteurs sur des circuits existants, puis nous proposerons titre d'exercice un problme de synthse. Ce problme ne sera rsolu en TD que si le temps le permet. I - Analyse de circuits existants. I -1) Prsentation gnrale : le compteur binaire.
1 J CLK K
Q 1

1 J CLK K
Q

Q0
Q

Q1
Q

J CLK K

Q
Q

Q2

Compteur asynchrone avec bascules JK

On a souvent besoin de compteurs modulo N c'est dire comptant entre 0 et N-1. Pour raliser un tel compteur il existe deux solutions : - un bouclage asynchrone, - un conditionnement des entres des bascules. I-2) Le compteur 7493. Ce circuit est compos de 4 bascules JK. Il possde 4 commandes : 2 horloges et 2 commandes de remise 0. Si l'on n'utilise que l'entre A d'horloge on aura un compteur modulo2. En utilisant l'entre d'horloge B et les sorties QB, QC, QD on a un compteur modulo 8.
1 Horloge A 1 R0(1) RO(2) & Horloge B QA QB J Q 1 1 J Q CLK K B 1 1 J CLK K C Q 1 1 J Q CLK K D

CLK A K

QC

QD

I-3) Le compteur 7490. Ce circuit est compos d'un diviseur par 2 et d'un diviseur par 5. Par mise en cascade, il permet une division par 10. Le cycle 10 positions est diffrent suivant l'ordre de la mise en cascade. Le cycle ayant un rapport cyclique de 1/2 est appel Bi-quinaire, et l'autre comptage BCD. Il comprend d'autre part une entre de mise 0 et une entre de mise 9.
R9(1) R9(2) Horloge A Horloge B R0(1) RO(2) & QA QB QC QD & J Q CLK Q K J Q CLK Q K 1 J Q CLK Q K 1

& S Q CLK Q R

70

TD Informatique Industrielle IUT Troyes

II - Exercice. A l'aide de la structure interne du 7490 ci-dessus, on vous demande de remplir les deux tableaux des squences. Trouver lequel correspond au comptage BCD et lequel au Bi-quinaire ? Etat 0 1 2 3 4 5 6 7 8 9 III - Synthse. Raliser la synthse asynchrone du compteur ci-dessous. H Q0 Q1 Q2 Q3 Sorties QD QC QB QA Etat 0 1 2 3 4 5 6 7 8 9 Sorties QD QC QB QA

Remplir les tableaux de Karnaugh et en dduire le schma. Q3Q2 00 01 11 10 Q3Q2 00 01 11 10 Q3Q2 00 01 11 10 00 00 00 01 01 01 11 11 11 10 10 10 JO J1 J2 Q1Q0 Q1Q0 Q1Q0 Q3Q2 00 01 11 10 Q3Q2 00 01 11 10 Q3Q2 00 01 11 10 00 00 00 01 01 01 11 11 11 10 10 10 KO K1 K2 J Q CLK K Q J Q CLK Q K J Q CLK K Q Q3Q2 00 01 11 10 00 01 11 10 J3 Q1Q0 Q3Q2 00 01 11 10 00 01 11 10 K3 J Q CLK K Q

71

TD Informatique Industrielle IUT Troyes

NOM : Prnom :

(31 Janvier 1996)

Devoir Surveill d'informatique industrielle n2


Feuille Rponse n1
Exercice n1. On dsire raliser la synthse d'un compteur sur 3 bits caractris par le chronogramme ci-dessous. On dsire utiliser 3 bascules JK pour raliser ce compteur. Complter les diagrammes de transition (ou d'volution) puis les tableaux de Karnaugh.
H QA QB

QC

Diagramme de transition de la JK
J K Q(n+1) j

Diagramme de transition complter Qc,Qb,Qa

000
Table de vrit

Diagramme d'volution A COMPLETER

QbQa 00 01 11 10 Qc 0 1 Jc QbQa Qc 00 01 11 10 0 1 Kc

QbQa 00 01 11 10 Qc 0 1 Jb QbQa Qc 00 01 11 10 0 1 Kb

QbQa 00 01 11 10 Qc 0 1 Ja QbQa Qc 00 01 11 10 0 1 Ka

72

TD Informatique Industrielle IUT Troyes

NOM : Prnom :
En dduire les quations Jc = Kc = Jb = Kb = Ja = Ka = Complter le schma ci-contre y compris le signal d'horloge : la synthse sera faite avec les portes de votre choix.

Feuille rponse n2

J a Qa Clk

Jb Qb
Clk

Jc Qc
Clk

Ka Qa

Kb Qb

Kc Qc

Exercice 2. On souhaite effectuer la conversion d'un mot de donnes de 8 bits arrivant par le bus de donnes B1 sous forme parallle, en un mot de donnes 8 bits repartant sous forme srie sur B2. Pour cela on utilise le montage dcrit par la figure 1.
+VCC
7476
Q CLK K Q S J R Q CLK K Q S J R

Vcc &

Fs1
Q CLK K Q S J R

Fs2

H
DSa

7491 SRG8
CP

B2
Q

Vcc

Q & 1D

2
A 0 B C1 2 0 1 2 3 4 74151 5 6 7 EN

DSb

FIGURE 1
B1 8

D0 D1 D2 D3 D4 D5 D6 D7

MUX 8/1
Y Y

Fc 1

1) La transformation du mot parallle en srie est assure par le multiplexeur 8 vers 1 (CI3 - doc 1). La slection des donnes est assure par le compteur/dcompteur Fs1. a) A quoi servent les entres S et R des bascules JK de la figure 1 ? Appelle-t-on cela des entres synchrones ou asynchrones. Prcisez le front d'horloge actif en H. Rponse : b) Analyser le schma de la fonction fs1 (figure 1)et donner les quations des entres J et K de chaque bascule. Rponse : J0 = K0 = J1 = K1 = J2 = K2 =

73

TD Informatique Industrielle IUT Troyes

NOM : Prnom :

Feuille rponse n3

c)Remplir la table de vrit ci-dessous dfinissant le cycle de fonctionnement de fs1 puis prcisez la fonction de comptage obtenue. Etat actuel Entres Etat futur Rponse type de comptage : Q2 Q1 Q0 K2 J2 K1 J1 K0 J0 Q2 Q1 Q0 type : modulo :

d) Reprsenter l'volution temporelle des sorties Q0 Q1 Q2 du compteur/dcompteur sur le chronogramme figure 2.


H Q0 Q1 Q2

sortie compteur/ dcompteur

Y sortie MUX
Q0 Q1 Q7

sortie registre

FIGURE 2
2) On entre sur le bus de donnes B1 un mot binaire D7D6....D0 gal (10111010)2. a) Analyser le schma de la fonction Fc1 puis prciser le rle et le niveau d'activation de l'entre /G des entres C, B, A. Rponses : b) Si Q0=A, Q1=B et Q2=C, complter sur le chronogramme de la figure 2 la reprsentation de l'volution temporelle de la sortie Y. 3) La mmorisation du mot binaire apparaissant en Y ncessite le registre dfini par la fonction Fs2 sur le schma figure 1. a) Donner la table de vrit CP D Q(n+1) j : mode de la sortie Q en fonction de D et CP pour la bascule D 1 S Q & dfinie ci-contre en prcisant le front actif de l'horloge sur CP et les modes de Table de vrit CP fonctionnements obtenus. R Q 1 En dduire le graphe d'volution (graphe des tats ou graphe de transitions)

Diagramme d'volution

74

TD Informatique Industrielle IUT Troyes

NOM : Prnom : Feuille rponse n4


b) En exploitant la documentation du 7491 (doc 3) prciser de quel type de registre il s'agit et sa dnomination anglaise. Rponses :

c) Si Cp = H, reprsenter sur la figure 2 l'volution temporelle des sorties Q0, Q1 et Q7 de ce registre. Prciser le nombre d'impulsions d'horloge H ncessaire pour obtenir sur B2, la sortie complte du mot binaire entr sur B1. Rponse :

Exercice 3. (mmoire) On utilisera la notation habituelle qui consiste utiliser les minuscules pour les variables avant changement d'tat et les majuscules pour les variables aprs changement. Complter tableau de Karnaugh Equation simplifie de Y sous forme disjonctive Rponse : RS 00 01 11 10

Une fonction mmoire est dcrite par son schma : R 1 & S >1 Y

0 1 Y
Faire un schma crois en Nands

sous forme conjonctive Rponse :

Quelle est la priorit ? Rponse :

Faire un schma crois en NORs

75

TD Informatique Industrielle IUT Troyes

TD11 - Le GRAFCET (outil de description)


I - Systme automatis I-1) Gnralits. Un systme automatis se dcompose en deux parties dpendantes : la partie oprative est le processus automatiser la partie commande est l'automatisme qui en fonction des entres (information externe venant de la partie oprative, consignes extrieures, etc.....) labore en sortie des ordres externes destins la partie oprative ou des lments extrieurs .

partie oprative

partie commande

practionneurs machine capteurs

U.C dialogues traitement

communication autres parties


I-2) La dmarche de conception d'un systme automatis de production. analyse besoins 1 exploitation 9 maintenance intgration du 8 S.A.P intgration P.C 7 test P.C 6

spcifications du S.A.P 2 spcifications P.C 3 conception P.C 4 ralisation de la commande 5

SAP : systme automatis de production. PC partie commande. Pendant la dmarche de conception, l'information sur l'automatisme est affine, des outils de reprsentation (grafcet, gemma,....) sont utiliss permettant la communication entre les diffrents intervenants impliqus dans le processus depuis la phase de conception jusqu' l'exploitation. II - Description par GRAFCET.

76

TD Informatique Industrielle IUT Troyes

Le grafcet permet de reprsenter par affinements successifs le comportement de la partie commande d'un systme automatis de production selon les souhaits du concepteur. II-1) Exemple : description progressive d'un systme automatis de perage :

perage 1 serrage 2 pice


pice serre demande oprateur SERRAGE

3 4

PERCAGE pice pere DESSERRAGE pice libre

Vue globale

Le niveau global reprsente le point de vue de l'utilisateur, il dcrit les interactions du systme sur le produit : aprs avoir effectu la mise en place de la pice l'oprateur demande le perage(tat 1) au reu de cette information la partie commande donne l'ordre de serrage (tat 2) aprs contrle du bon serrage de la pice l'ordre de perage est alors donn (tat 3) le perage termin l'ordre de desserrage est donn (tat 4) l'automatisme revient en position initiale (tat 1)

1
demande oprateur

1
SERRAGE PIECE

demande oprateur SORTIR VERIN SERRAGE PIECE

pice serre ROTATION BROCHE PERCAGE 3 pice pere RECUL FORET retour effectu DESSERRAGE PIECE desserrage effectu

pice serre ALIMENTER MOTEUR BROCHE 3 AVANCER VERIN BROCHE pice pere

4 5

4 5

RECULER VERIN BROCHE retour effectu RENTRER VERIN SERRAGE PIECE desserrage effectu

Vue du concepteur

Vu au niveau de la commande

Le concepteur du procd dcrit les diffrentes actions effectues par la partie oprative. Le grafcet vu au niveau de la commande concerne l'automaticien .Il dcrit tous les ordres que l'quipement de commande doit mettre pour obtenir les effets dsirs. C'est ce grafcet que nous retenons pour concevoir le programme de l'automate, le cblage de la commande . II-2) Diffrents niveaux de spcification. Reprenons l'exemple prcdent.

77

TD Informatique Industrielle IUT Troyes

Ce grafcet ne prsume pas des choix technologiques (capteurs, practionneurs,...) de la partie oprative ni de la partie commande.

1 2
demande oprateur SORTIR VERIN SERRAGE PIECE

pice serre ALIMENTER MOTEUR BROCHE 3 AVANCER VERIN BROCHE pice pere

4 5

RECULER VERIN BROCHE retour effectu RENTRER VERIN SERRAGE PIECE desserrage effectu

Vu au niveau de la commande
Si nous effectuons les choix techniques suivants: Capteurs : demande oprateur pice serre pice perce retour effectu desserrage effectu Actionneurs : mouvement de serrage mouvement de descente rotation fort

: bouton poussoir d : capteur fin de course a1 : capteur fin de course b1 : capteur fin de course bo : capteur fin de course ao

: vrin double effet command par un distributeur 5/2 bistable a + =serrage a- =desserrage : vrin simple effet command par un distributeur monostable b+ =descente broche : moteur lectrique command par contacteur r

Le grafcet tenant compte des contraintes oprationnelles devient :

78

TD Informatique Industrielle IUT Troyes

1 d 2 a1 3 b1 4 bo 5 ao
III - Le GRAFCET ( rgles d'tablissement). III-1) Etapes. Une tape est reprsente par un carr. Elle peut avoir deux tats : tat actif (une marque l'intrieur du carr) tat inactif Rgle 1 : La situation initiale d'un grafcet caractrise le comportement de la partie commande vis vis de la partie oprative et correspond aux tapes actives au dbut du fonctionnement de la partie commande . ... convergence en OU

a+ r b+

a-

1 inactive
Remarques :

1 active

1 initiale

cas gnral

1
..... divergence en OU

la situation initiale peut n'tre obtenue qu'une seule fois la mise sous tension on peut utiliser plusieurs tapes initiales :

79

TD Informatique Industrielle IUT Troyes

GRAF1

1
1 a 2 b 3 c 4 d

GRAF2 a

10 e 11

2 b 3 c 4

=1

III-2) Transitions. Une transition est reprsente par un trait horizontal. A chaque transition est associe une rceptivit. Une transition est valide lorsque toutes les tapes immdiatement prcdentes relies cette transition sont actives.

simple

jonction ET distribution ET

jonction ET distribution ET

paralllisme structural Rgle 2 : l'volution de la situation d'un grafcet correspondant au franchissement d'une transition ne peut se faire : que lorsque cette transition est valide et que la rceptivit associe cette transition est vraie . Lorsque ces deux conditions sont runies, la transition devient franchissable et elle est obligatoirement franchie. Rgle 3 : Le franchissement d'une transition provoque : la dsactivation de toutes les tapes immdiatement prcdentes relies cette transition . l'activation de toutes les tapes suivantes relies cette transition . exemples :

80

TD Informatique Industrielle IUT Troyes

3 (a+b).c 4

a.(b+c)

10

11

Rgle 4 : plusieurs transitions simultanment franchissables sont simultanment franchies exemple : montrer que ces deux reprsentations sont quivalentes

4 h.X11 5

11 h.X4 12

11

h 12

Rgle 5 : si au cours du fonctionnement de l'automatisme une mme tape doit tre simultanment active et dsactive, elle reste active. exemple :
1 a .b

2 a 3 a transition sur front GRAF3

III-3) Graphe des tats. Le graphe des tats est une reprsentation "dveloppe" du GRAFCET : c'est le GRAFCET quivalent avec une restriction : il y a toujours un et un seul jeton dans ce GRAFCET. Pour le distinguer du GRAFCET on le reprsente l'aide d'tapes rondes (ce sont des tats). Exemple : on donne ci-dessous le graphe des tats du GRAFCET not GRAF1 du texte.

1 d 4 c 3

a 2 b

81

TD Informatique Industrielle IUT Troyes

IV - EXERCICES. EXERCICE 1 : Etablir le graphe des tats des grafcet not GRAF2 et GRAF3 dans le texte. EXERCICE 2 : on considre le grafcet suivant, complter le chronogramme

a b c
a 2 b 3 c

X1 X2 X3

Quel est le nombre d'tats possibles ? Tracer un graphe des tats . EXERCICE 3 : On donne les deux grafcets ci-dessous :

1 a 2 b 3 d 4 f 11 g 10 e 4 b.c 3

1 a 2 b 10 c 11 e 12 f d

Tracer le graphe des tats. Quel est le nombre d'tats possibles dans les deux cas ? Que se passe-t-il si l'on remplace la transition /b.c par c ? Commenter. Que se passe-t-il si l'on remplace la convergence en ET par une convergence en OU ? EXERCICE 4 : respect de la syntaxe

82

TD Informatique Industrielle IUT Troyes

1 a 2

1 a

3 b 4

1 a

3 b

1 a

b 4 2 5 4 2

b 2

Trouver les erreurs de syntaxe et rtablir la forme correcte . EXERCICE 5 :

D1 G1 A1 D2 G2 A2 B2 B1

Les deux chariots C1 et C2 sont supposs initialement en position de rfrence ( A1 pour C1, A2 pour C2). Chacun des deux chariots effectue un aller et retour ds rception de la consigne (m). Un nouveau dpart n'est possible que si les chariots sont revenus en position de rfrence.

A1 A2 B1 B2 m

D1 D2 G1 G2

flot des donnes (schma fonctionnel)


1 Reprsenter le grafcet en utilisant le paralllisme structural 2 Construire une variante de ce grafcet en remarquant que l'on peut transformer les deux tapes de synchronisation en tapes initiales (voir le principe ci-dessous)

m principe

3 Construire une autre variante en utilisant deux grafcets spars. 4 Reprsenter partir du grafcet de la question 2 le graphe des tats. 5 Montrer que la solution ci-dessous relve d'une erreur de conception.

83

TD Informatique Industrielle IUT Troyes

10 X5 2 B1 3 A1 G1 D1

20 m.X10 5 B2 6 A2 G2 D2

EXERCICE 6 : Utilisation de temporisations. Exemple : X27 27 action B 4s/X27 28 X28 a) On veut faire la slection d'une impulsion longue (> 3s) : l'action sur un bouton poussoir (BP) doit tre maintenue pendant un temps minimum de trois secondes pour provoquer une action B. b) Mme exercice pour une impulsion courte (< 1s). EXERCICE 7 : squences simultanes. Plateau tournant 3 postes poste 1 : chargement vacuation poste 2 : perage poste 3 : taraudage. 4s/X27 action B 4s

cy/cy

auto

dcy

Faire le GRAFCET de cette machine trois postes : les trois oprations doivent se faire en mme temps afin de gagner du temps (le GRAFCET restera descriptif, on ne dtaillera pas les oprations de perage, taraudage et chargement-vacuation). Il est demand de prvoir deux fonctionnements possibles : automatique (marche continue sans appui sur dcy) cycle par cycle (il faut appuyer sur dcy pour dmarrer chaque cycle). Pour simplifier, on supposera : Lors de l'arrt on laissera le plateau dans l'tat : sans le vider. Lors d'un dpart on supposera le plateau comme laiss par un arrt, c'est dire prt recevoir les actions chargement/vacuation, perage et taraudage.

84

TD Informatique Industrielle IUT Troyes

TD12 - GRAFCET (synthse matrielle non programme)


I - Voir le GRAFCET comme une description de machine squentielle Les GRAFCETs faisant l'objet d'une synthse doivent comporter certaines restrictions. Certaines sont obligatoires, d'autres sont conseilles pour simplifier la synthse : - pas d'utilisation de variable temporises (obligatoire), - non utilisation de transition sur front (conseille). La synthse matrielle d'un GRAFCET est une opration plus ou moins simple suivant la mthode utilise. Nous allons maintenant en prsenter trois. Les circuits matrialisant des GRAFCETs seront appels des squenceurs. II - Gnralits Avant de commencer raliser la synthse, un nombre de concepts important est dfinir, ainsi que les manires de les crire : crire les conditions d'activations ACi, une par tape, en fonction des variables d'tapes et des entres crire les conditions de dsactivation Di, une par tape, en fonction des entres en considrant que l'on est dans l'tape xi. Vient ensuite l'criture des quations de rcurrences : tat xi+ est fonction de l'tat antrieur xi et des conditions d'activation-dsactivation, avec deux possibilits : pour une tape initiale : xi+= ACi + /Di.xi+I. pour une tape normale : xi+= (ACi + /Di.xi)./I I est une entr spciale destine initialiser le GRAFCET. Exemple : AC1=x3.e4+x4.e3 D1=e1+/e1=1 AC2=x1.e1 D2=e2 a1 a2 1 D3=e4 AC3=x2.e2 D4=e3 AC4=x1./e1 e1 e1 x1+ =x3.e4+x4.e3+I x2+ =(x1.e1+x2./e2)./I a4 a3 x3+ =(x2.e2+x3./e4)./I x4+ =(x1./e1+x4./e3)./I 2 4 e2 3 e4 a3 e3 En syntaxe ABEL cela donne : x1: =x3&e4#x4&e3#I x2: =(x1&e1#x2&!e2)&!I x3: =(x2&e2#x3&!e4)&!/I x4: =(x1&!e1+x4&!e3)&!I

III - Mthode asynchrone On associe une mmoire RS chaque tape. La quatrime rgle de franchissement impose de prendre des mmoires S prioritaire. L'tat logique des sorties de la bascule reflte alors l'tat actif ou non de l'tape correspondante. Cette mthode consiste laborer les ACi l'aide de circuits combinatoires et les amener sur le SET des mmoires, laborer les Di l'aide de la sortie des mmoires, ceci pour viter les alas de fonctionnement, et les amener sur les RESET des mmoires.

85

TD Informatique Industrielle IUT Troyes

Par exemple : R S QI R S QJ

I C K

C & R S QK

IV - Mthodes synchrones Il existe au moins deux mthodes synchrones, une simple qu'il est absolument ncessaire de connatre, et une plus complique que nous ne ferons que signaler. IV-1) Mthode d'activation-dsactivation synchrone Cette mthode est connatre parfaitement. Elle reprend pour l'essentiel la mthode asynchrone, savoir une bascule (et non plus une mmoire) par tape. Les bascules utilises seront videmment des bascules D. L'ide gnrale est d'laborer pour chaque tape : xi+ = ACi + /Di.xi Chaque xi sera amen sur l'entre D de la bascule correspondante. En fait si l'on veut fouiller un peu plus il faut prvoir une entre I destine au marquage initial et les relations implanter par de la circuiterie combinatoire sont : xi+ = ACi + /Di.xi + I pour les tapes initiales, xi+ = (ACi + /Di.xi )./I pour les tapes ordinaires. Exemple : (pour le GRAFCET de la page prcdente).

& & I & & e1 e2 e3 e4 & & & &

x1 D Q H D Q H D Q H D Q H x4 x2

a1 a2 a3 a4 1

x3

clk Remarques : Cette mthode de synthse est simple mais pas compltement adapte aux circuits programmables squentiels puisqu'elle ncessite beaucoup de bascules (1 par tape) et peu de

86

TD Informatique Industrielle IUT Troyes

combinatoire. Les circuits programmables comportent en gnral au contraire beaucoup de portes combinatoires et peu de bascules. Ceci n'est plus forcment vrai pour les circuits modernes. On peut se demander quel est l'intrt d'ajouter l'entre d'initialisation I. En fait il faut bien comprendre que dans cette synthse nous laissons de ct un nombre important d'tats. Il faut bien prvoir un moyen de revenir un tat connu si par hasard on se retrouve dans un tat non prvu (par exemple 3 jetons dans le GRAFCET ci-dessus ! IV-2) Mthode optimise en nombre de bascules Il est clair que : un systme de n bascules comporte 2n tats, un GRAFCET de m tapes comporte 2m tats au maximum, mais bien souvent beaucoup moins. On en conclut que souvent m<<n. Il est possible dans une synthse d'utiliser bien moins de bascules que d'tapes. Pour cela, il suffit de : compter les tats du GRAFCET et d'en dduire ainsi le nombre de bascules ncessaire, coder les tats et dfinir un graphe d'volution ou graphe d'tat, implanter ce graphe. Exemple : Nous allons donner un exemple complet maintenant. 1 e1 2 e2 3 5 e4 4 e3 Assignation Etats Codes 1 000 2,4 001 3,4 010 2,5 011 3,5 100 Rappel des quations de rcurrences (ne sont pas utilles pour cette synthse) x1+ = x3.x5.e4+x1./e1+I x2+ = (x1.e1+x2./e2)./I x3+ = (x2e2+/(x5e4)x3)/I x4+ = (x1e1+e3x4)/I x5+ = (x4e3+/(x3e4)x5)/I

SYNTHESE OPTIMISEE (Bascules D) Etat initial Condition


Q2Q1Q0 000 000 001 001 001 001 010 010 011 011 100 100 e1 e1 e2.e3 e2.e3 e3.e2 e3.e2 e3 e3 e2 e2 e4 e4

Etat futur
Q2+Q1+Q0+ 001 000 001 010 011 100 100 010 100 011 000 100

Equations : Q2+ =Q0Q1Q2e3e2+Q0Q1Q2e3+Q0Q1Q2e2+Q0Q1Q2e4 Q1+ =Q0Q1Q2e2e3+Q0Q1Q2e3e2+Q0Q1Q2e3+ Q0Q1Q2e2 Q0+ =Q0Q1Q2e1+Q0Q1Q2e2e3+Q0Q1Q2e3e2+Q0Q1Q2e2

La gestion de l'initialisation doublerait la taille du tableau. On peut cependant directement faire intervenir cette initialisation dans les quations de rcurrence : &!I ici pour toutes les quations car initialis (000)2. V - Exercices 1) Raliser la synthse des trois GRAFCETs ci-dessous : mthode d'activation dsactivation synchrone ( une bascule par tape). Remarquer la notation d'une action conditionnelle. 2) Raliser une synthse optimise de ces trois GRAFCET.

87

TD Informatique Industrielle IUT Troyes

1 e1 2 e2 3 a3 e3 a4

a1 a2

a1 a2 e1

1 e1 2 e2 3 a4 a3 4

a1 a2

e1 4 a3 e4 2 e2 3 a3 a4 4 N a5

e4 e1 e3 5 e4 e5 5 e4 e3./e4 a4 6 e5 a5

5 e5

C a4

C a4

88

TD Informatique Industrielle IUT Troyes

TD 13 - Logique programmable et ABEL


I - Prsentation de la logique programmable I-1) Les conventions de reprsentation des PALs Nous vous proposons ci-dessous un schma logique de deux fonctions F1 et F2 dans les deux conventions, habituelle et propre aux PALs.
A B B C C Rseau ET A

F1 F2 Schma classique

F1 F2 Rseau OU

Avec circuit programmable

Nous donnons titre d'exemple le contenu d'une PAL 16 R4 ci-dessous. Le R dsigne registered. 4 veut donc dire qu'il y a 4 sorties squentielles (sur bascules D). Le 16 veut dire qu'il y a possibilit de raliser 16 entre.

PLA 16 R4

I-2) Notre GAL 20V8

89

TD Informatique Industrielle IUT Troyes

Nous allons nous intresser maintenant un autre type de PAL les GAL de srie V (pour versatile) qui veut dire que les sorties peuvent tre programmes. Ce qui caractrise ce genre de composant est la notion de macro-cellule comme montre sur la figure ci-dessous. Une telle cellule est configurable l'aide de bits internes locaux (appels SLnx) et globaux (appels SGn) o n dsigne le numro du bit et x le numro de la macro-cellule. Elle est constitue d'autre part par des multiplexeurs qui peuvent permettre plusieurs configurations de la macro-cellule ces derniers tant dtermins par les 2 bits SG1 et SL0x. To Adjacent 1 1 1 1 Macrocell OE PALCE20V8 Macrocell 1 0 Vcc 0 0 0 X 0 1 1 0 SL0x
1 1 0 X D SL1x CLK Q Q 1 0 1 1 0 X From Adjacent Pin 1 0

SG1

I/0x

SL0x *SG1 *In macrocell MC0 and MC7, SG1 is replaced by /SG0 on the feedback multiplexer.

II - Exercices 1) Trouver l'aide du schma de la macro-cellule de la GAL 20V8 tous les schmas quivalents possibles. Donner la liste des configurations impossibles pour 2 macro-cellules distinctes (bits globaux incompatibles). 2) On donne un programme ainsi que le schma quivalent associ. module exo2 Clk pin 1; Toggle pin 2; !Ena pin 11; Qout pin 16 istype 'reg'; equations !Qout := Qout.FB & Toggle; Qout.CLK = Clk; Qout.OE = Ena; test_vectors([Clk,!Ena,Toggle] -> Qout) [.c.,0,0]->.X.; [.c.,0,1]->.X.; [.c.,0,1]->.X.; [.c.,0,1]->.X.; [.c.,0,1]->.X.; [.c.,1,1]->.X.; [.c.,0,1]->.X.; [.c.,1,1]->.X.; [.c.,0,1]->.X.; end 1 Toggle Clk a) Donner l'ensemble des rsultats des vecteurs tests prsents dans le programme. (Sorties possibles 0, 1, Z) b) Compltez les schmas ci-dessous : numro des broches et fusibles non grills pour les deux architectures 16 R8 et 20v8. Dans ce dernier cas, on vous demande de corriger le programme pour la dclaration des broches et de rflchir d'abord la valeur des bits internes. & D Q Ena 1 Qout

Vcc

I/07 I13

I/O5 I/04

I/O3 I/02

I/01

I12 0E

I/O6

I/O0

GAL 20 V8
CLK I1 I2 I3 I4 I5 I6 I7 I8 I9 I10 GND

90

TD Informatique Industrielle IUT Troyes

16R8

1 1 0 X 1 0

PALCE20V8 Macrocell
SL01

OE Vcc

1 1 0 0

1 0 0 1

To Adjacent Macrocell

SG1 D SL11 CLK Q Q

1 1 0 X 1 0

I/01

1 0 1 1 0 X

SL01 *SG1 *In macrocell MC0 and MC7, SG1 is replaced by /SG0 on the feedback multiplexer.

From Adjacent Pin

Remarque : Il est possible d'utiliser une sortie en entre (pattes I/Oi) mais il faut absolument crire une quation qui oblige la sortie a tre en tat haute impdance. Out.oe=0; "par exemple

91

TD Informatique Industrielle IUT Troyes


32 33 34 35 24 25 26 27 20 21 22 23 28 29 30 31 36 37 38 39
1 0

0123

4567

16 17 18 19 8 9 10 11 12 13 14 15

1 I1 2 0 1 2 3 4 5 6 7 I2 3 8 9 10 11 12 13 14 15 I3 4

I13 23
OE Vcc
1 1 1 0 0 0 0 1

SG0
1 1 0 X 1 0

SL07 SG1
D Q Q 1 0 1 1 0 X
1 1 0 X 1 0

I/O7 22

SL17

*SG1 SL07
1 1 0 X 1 0

SL06 SG1

OE Vcc

1 1 1 0 0 0 0 1

1 1 0 X

Q Q

I/O6 21

1 0

SL16

1 0 1 1 0 X

*SG1 SL06

1 1 0 X 1 0

SL05 SG1

OE Vcc

1 1 1 0 0 0 0 1

I4 5

16 17 18 19 20 21 22 23
1 1 0 X 1 0

1 1 0 X

Q Q

I/O5 20

1 0

SL15

1 0 1 1 0 X

*SG1 SL05

I5 6

24 25 26 27 28 29 30 31

SL04 SG1

OE Vcc

1 1 1 0 0 0 0 1

1 1 0 X

Q Q

I/O4 19

1 0

SL14

1 0 1 1 0 X

*SG1 SL04
1 1 0 X 1 0

32 33 34 35 36 37 38 39 I6 7

SL03 SG1

OE Vcc

1 1 0 0

1 0 0 1

1 1 0 X

I/O3 18

Q Q

1 0

SL13

1 0 1 1 0 X

*SG1 SL03
1 1 0 X 1 0

40 41 42 43 44 45 46 47 I7 8

SL02 SG1

OE Vcc

1 1 1 0 0 0 0 1

1 1 0 X

I/O2 17

Q Q

1 0

SL12

1 0 1 1 0 X

*SG1

SL02

1 1

48 49 50 51 52 53 54 55 I8 9

0 X 1 0

SL01 SG1

OE Vcc

1 1 1 0 0 0 0 1

1 1 0 X

Q Q

I/O1 16

1 0

SL11

1 0 1 1 0 X

*SG1

SL01

1 1

I9 10 I10 11

56 57 58 59 60 61 62 63

0 X 1 0

SL00 SG1

OE Vcc

1 1 1 0 0 0 0 1

1 1 0 X

I/O0 15

Q Q

1 0

SL10

1 0 1 1 0 X

*SG1 SL00

I12 14 OE/I11 13

1 0

SG0

92

TD Informatique Industrielle IUT Troyes

1 1 0 X 1 0

PALCE20V8 Macrocell
SL0x

OE Vcc

1 1 0 0

1 0 0 1

To Adjacent Macrocell

SG1 D SL1x CLK Q Q

1 1 0 X 1 0

I/0x

1 0 1 1 0 X

SL0x *SG1 *In macrocell MC0 and MC7, SG1 is replaced by /SG0 on the feedback multiplexer.

From Adjacent Pin

SG1=1 SL0=0 SL1=0


OE
D CLK Q Q

SG1=1 SL0=0 SL1=1


OE
D CLK Q Q

SG1=1 SL0=1 SL1=0

SG1=1 SL0=1 SL1=1

SG1=0 SL0=0 SL1=0


VCC

SG1=0 SL0=0 SL1=1


VCC

Dedicated Input

SG1=0 SL0=1

patte I/O adjacente

93

TD Informatique Industrielle IUT Troyes

ETUDE D'UN PAL 16X4 (spcialis pour opration arithmtique


4567

C1

C1

C0 I
S1

DQ HQ B1 H

A1

1) La cellule de base d'un PAL destin l'arithmtique est donne ci-contre. Exprimer les valeurs logiques des fils internes 8, 9, 10 et 11 (voir schma) en fonction de A1 et B1 : 8= 9= 10 = 11 = A quoi sert I ? Quels fils internes utiliser pour raliser un ou exclusif ? ................. A1.......... ? B1.................. ? 2) Le PAL 16X4 est en fait form par 4 cellules comme ci-contre. On dsire montrer qu'une telle cellule permet d'implanter sur ce PAL un addition-neur binaire : (C'1 S'1)2 = (A1)2 + (B1)2 + (C0)2 Remplir les tableaux de Karnaugh ci-dessous A1B1 C0 00 01 11 10 0 1 S1 A1B1 C0 00 01 11 10 0 1 C1

8 9 10 11

En dduire les quations : S'1 = /C'1 = S'1 sera exprim l'aide de OU exclusifs, tandis que /C'1 sera exprim sous forme canonique simplifie. Dessiner les fusibles non grills sur la figure ci-dessus. On rappelle : /A1./B1=(/A1+/B1)(/A1+B1)(A1+/B1) A quoi servent les bascules D dans l'opration arithmtique ralise par le PAL ?

IV - COMPLEMENT : PROGRAMMATION D'UN GRAFCET EN ABEL Nous donnons maintenant un exemple complet de GRAFCET exprim dans le langage ABEL. Nous utilisons ici des macros ce qui n'est pas obligatoire mais rend le programme plus lisible parce que plus proche des quations de rcurrences dj rencontres.
MODULE EXO12 title 'exercice 12' exo12 device 'P20V8'; clock,e1,e2,e3,e4,I pin 1,2,3,4,5,6; "entrees x1,x2,x3,x4,x5 pin 15,16,17,18,19 istype 'reg';

1 e1 4 e3 5 e2 x5 x6 x4

x1 /e1*e4 2 e2 3 e3 x3 x2 x6

"sorties sequentielle x6 pin 20 istype 'com'; "sortie combinatoire AC1 macro {x5&e2#x3&e3};"activation tape 1 AC2 macro {x1&!e1&e4};"activation tape 2 AC3 macro {x2&e2};"activation tape 3 AC4 macro {x1&e1};"activation tape 4 AC5 macro {x4&e3};"activation tape 5 D1 macro {e1#!e1&e4}; "desactivation "etape1 D2 macro {e2}; "desactivation etape 2 D3 macro {e3}; "desactivation etape 3 D4 macro {e3}; "desactivation etape 4 D5 macro {e2}; "desactivation etape 5 equations [x1,x2,x3,x4,x5].clk = clock; "obligatoire x1 := AC1 # !(D1) & x1 # I; "etape initiale x2 := AC2 & !I # !(D2) & x2 & !I; "etape 2 x3 := AC3 & !I # !(D3) & x3 & !I; "etape 3 x4 := AC4 & !I # !(D4) & x4 & !I; "etape 4 x5 := AC5 & !I # !(D5) & x5 & !I; "etape 5 x6 = x5 # x2; "equation combinatoire end

94

TD Informatique Industrielle IUT Troyes

TD 14 - GRAFCET : Synthse programme.


Nous allons aborder maintenant l'implantation programme d'un GRAFCET. Cette implantation peut se faire sur des architectures simples (mmoire ROM + registre) comme sur des architectures plus complexes (automate programmable). Affinons la terminologie : une architecture sera qualifie de simple si elle fait appel au plus un registre ou un compteur. Le but de ce TD est d'tudier l'implantation sur architectures simples. L'implantation sur automate programmable sera tudie en TP. I - Bien comprendre l'architecture. Avant de commencer de rsoudre un problme de synthse, il est naturellement important de bien comprendre le fonctionnement de l'architecture. Il nous faut d'abord rappeler le fonctionnement d'une mmoire. I-1) Mmoires. Il existe plusieurs sortes de mmoires : RAM, ROM, EPROM.... Nous en donnons un schma fonctionnel ci-dessous.
Cellule A0 A1 dcodeur A m-1 plan mmoire Mot 0 Mot 1 0110 Mot 2 Logique de contrle Circuit d'entre-sortie Mot 2 1111 m -1 BUS DONNEES MSB bit n-1 LSB bit 0 Adresses 0000 0001 0010 1 0 1 0 0 0 0 1

Commandes

R.A.M

BUS DONNEES

Exercice : Quelle est la largeur du bus de donnes, du bus d'adresse. On positionne le bus d'adresse 0000, quelle valeur retrouvera-t-on sur le bus de donnes lors d'une lecture. On positionne l'adresse 0110 en criture avec 00001111 sur le bus de donnes. Que se passe-t-il ? Chaque cellule a un numro appel adresse. n cellules donc adresses de 0 n-1. Chaque cellule contient k bits (donc 2k valeurs possibles). Les adresses contiennent m bits donc 2m cellules directement adressables. Le nombre de bits d'adresse ne dpend que du nombre de cellules adressables et non de leur taille. I-2) Analyse. Nous allons commencer par un travail d'analyse sur un schma, en vue d'une comprhension de l'architecture. Pour le schma ci-dessous, dessiner les chronogrammes des sorties en fonction des entres. Essayer de faire le diagramme de transition pour ce schma.

95

TD Informatique Industrielle IUT Troyes

A4 A3 A2 A1 A0
PROM 32x8 01 02 03 04 05 06 07 08 h

E1

63 S081

1D 2D 3D 4D 5D 6D 7D 8D 0C CLK
Registre 74ALS574

1Q 2Q 3Q 4Q 5Q 6Q 7Q 8Q

Adresses 00000 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111

1010 1010 0000 0000 1000 1000 0011 0111 1100 1100 1000 1000 1111 1111 0110 0110 0

C h

E A B C F

II - Synthse (mmoire plus registre). La synthse consiste partir d'un problme brut, trouver le GRAFCET puis raliser une architecture matrielle et enfin remplir la mmoire. Nous allons commencer par donner un exemple complet avec optimisation :
1 e1 2 e2 3 5 e4 4 e3 x1+ = x3x5e4+x1/e1 x2+ = x1e1+x2/e2 x3+ = x2e2+/(x5e4)x3 x4+ = x1e1+e3x4 x5+ = x4e3+/(x3e4)x5 Assignation Etats Codes 000 1 2,4 001 010 3,4 2,5 011 100 3,5

SYNTHESE REGISTRE PLUS MEMOIRE ADRESSES EtatInitial Condition e1 e2 e3 e4 Q2Q1Q0 1XXX 000 0XXX 000 X00X 001 X10X 001 X01X 001 X11X 001 XX1X 010 XX0X 010 X1XX 011 X0XX 011 XXX1 100 XXX0 100 CONTENU Etat futur Q2+Q1+Q0+ 001 000 001 010 011 100 100 010 100 011 000 100

Passons maintenant aux exercices. 1) On veut raliser l'automatisme simplifi suivant :

96

TD Informatique Industrielle IUT Troyes

Un chariot est l'arrt en A. Si l'on appuie sur le bouton D de dpart, le chariot se dplace en marche avant jusqu'au point B et revient en marche arrire. Il s'arrte lorsqu'il arrive en A. Le cycle peut alors recommencer. 1-a) Dcrire cet automatisme l'aide d'un GRAFCET. 1-b) On donne l'architecture ci-dessous, en dduire le contenu de la mmoire. Pour cela on remplira le tableau donn en commenant par coder chaque tape. Puis pour chaque tape il faut trouver l'tat futur dans les deux cas : volution ou pas. 1-c) Remarquer que ce tableau permet une synthse rapide en remplaant la mmoire par un circuit combinatoire (et ventuellement le registre par deux bascules D) : quelles sont les quations implanter?
A B D Adresse Q1 Q2 A B D Sorties Q'1=Q1+ Q'2=Q2+

A4 A3 A2 A1 A0 PROM 32x8

E1 63 S081

01 02 03 04 05 06 07 08 h

1D 2D 3D 4D 5D 6D 7D 8D 0C CLK
Registre 74ALS574 1Q 2Q 3Q 4Q 5Q 6Q 7Q 8Q

III - Synthse compteur plus mmoire. La synthse prcdente prsente l'inconvnient de ncessiter des mmoires trop importantes. Nous allons voir que l'utilisation d'un compteur et d'une mmoire permet de supprimer ce problme. Notre nouvelle architecture est constitue au minimum de deux parties : - une mmoire contenant les instructions proprement dites. - un compteur programme pouvant : * rester dans une mme position en attente d'un vnement extrieur, * s'incrmenter pour passer l'instruction suivante, * s'initialiser zro, * modifier son contenu (fonction LOAD) pour permettre un saut dans un programme Format d'une instruction : champ opration : ensemble d'lments binaires qui viennent commander la fonction du compteur champ adresse : adresse de condition + adresse de branchement, champ action : sorties... III-1) Squenceur enchanement squentiel C'est le systme le plus simple, constitu d'un compteur et d'une mmoire programme. Le champ opration ne contient qu'un seul bit, le reste tant pour les sorties. Si ce bit est 0, on a un enchanement squentiel, s'il est 1 c'est une remise zro (RAZ). Le langage associ cette architecture peut tre rsum par le tableau : Bit I0 0 1 Instruction NEXT-ST sortie END-ST sortie

Remarque : ce langage est simple mais sa smantique manque de clart cause du fait que chaque instruction ralise en fait deux oprations X et ST !

97

TD Informatique Industrielle IUT Troyes

INIT Code opration I0=0 1 1 1 I0 1 I1=1 1 On dsire raliser un gnrateur des signaux A,B et C reprsents ci-contre. Donner le contenu de la PROM sachant qu'il s'agit d'une PROM 32x8 (63S081). Champ opration Sorties Champ action I0=0 Mmoire INIT Horloge Clear >1 Compteur

Adresse

C t 5 4 6 7 3 cycle 1 0 5 4

III-2) Squenceurs enchanement conditionnel Dans le squenceur prcdent, il n'y a aucune condition logique autorisant le passage d'une tape une autre. Or la plupart des squenceurs ne doivent quitter une tape que si la condition de franchissement est vrifie. => code opration : 1er bit comme plus haut, 2eme bit permettant de choisir entre l'enchanement conditionnel ou squentiel, champ adresse de condition (li au multiplexeur) Le langage associ cette architecture peut tre rsum par le tableau : Bit I0 0 1 0 Bit I1 1 X 0 Instruction NEXT-ST sortie END-ST sortie NEXT-IF condition ST sortie

Remarque : ce langage est simple mais sa smantique manque de clart cause du fait que chaque instruction ralise en fait deux oprations X et ST. De plus ici la dernire instruction possde deux oprandes. Ce que l'on recherche c'est une architecture pouvant supporter un langage avec un oprateur et 0 ou 1 oprande au plus.

98

TD Informatique Industrielle IUT Troyes

INIT

Horloge compteur
EN >1 Clear

MUX

>1 INIT

C1 1 C2
C C

Adresse n
Mmoire k I 0 Champ Opration I 1 Champ Adresse Champ action

n-1

Adresse de condition

1 M

Arret Dplacement vers Exercice : Avec la mme PROM que l'exercice prcdent, donner son contenu pour le montage ci-dessus et le cahier des charges ci-contre.

la droite

B
3 A Dplacement vers la gauche

4
1

Arret

III-3) Squenceur avec branchement inconditionnel Un branchement inconditionnel ressemble au GOTO du basic.
Horloge

C1

MUX

>1 INIT

compteur EN CLEAR LOAD

Adresse C n Mmoire

k
I Adresse de condition 0 Champ Opration I 1 Champ Adresse Champ action

I0 I1 1 x branchement

Condition inconditionnel

branchement

0 0 enchainement conditionnel

0 1 enchainement inconditionnel

Bit I0 0 1 0

Bit I1 1 X 0

Instruction NEXT-ST sortie JMP adresse ST sortie NEXT-IF condition ST sortie

99

TD Informatique Industrielle IUT Troyes

Pour prsenter un intrt, il faut en gnral l'associer un squenceur avec branchement conditionnel. III-4) Squenceur avec branchement conditionnel L'objectif est de pouvoir prendre des dcisions en fonction de l'tat du systme command. Il correspond la structure de contrle de choix dans les langages volus : le IF .. THEN .. ELSE du pascal.
Horloge compteur INIT >1 LOAD CLEAR

MUX

I0=0

IF condition JMP adresse ELSE NEXT ST sortie END-ST sortie Remarque : la premire instruction manque vraiment de claret !!!!

I0=1
Adresse

C n Mmoire

k
I Adresse de condition de branchement 0 Champ Opration Champ Adresse Champ action

La partie concernant l'enchainement n'est pas reprsente

Condition

branchement

IV - Exercice Pour chacun des GRAFCETs prsents, dimensionner le multiplexeur et la mmoire, puis remplir cette dernire l'aide d'un langage que l'on dfinira.
Horloge 1 1 a 2 b 3 c GRACET 1 GRAFCET 2 s3 s2 b s1 2 a s2 c.b 3 s4 4 s3 e d 5 s3 6 s4 f g s1 C1 MUX 1 INIT Cn k I2 & Mmoire I1 IO Champ Action 1 EN Clear Load Compteur

m Adresse

Adresse condition

Adresse branchement

100

TD Informatique Industrielle IUT Troyes

NOM : Prnom : Groupe :

Avril 1996

DS Informatique Industrielle n3 (extraits)


PROBLEME II On donne le GRAFCET ci-dessous. GRAFCET donn Graphe des tats complter ( voir question 1)

{1}
1 a

{2,12}
12 c C B b./c 14

2 b 3

13

1) La notation {2,12} dsigne l'tat pour lequel l'tape 2 et l'tape 12 sont actives en mme temps. Complter le graphe des tats en page prcdante. 2) Combien d'tats comporte ce GRAFCET ? Rponse :

3) Conclusion sur ce grafcet. Rponse : 4) Complter le graphe des tats pour le nouveau grafcet corrig ci-dessous :

101

TD Informatique Industrielle IUT Troyes

GRAFCET donn

Graphe des tats complter

1 a

2 b 3

A B

12 c 13 d

B b./c 14 d
{2,13} {3,13}

15 d

{2,15} {3,15}

5) Ecrire les quations de rcurrence correspondant au nouveau GRAFCET que l'on vient de complter. On utilisera une entre I d'initialisation. Rponse :

6) On dsire raliser ce grafcet en utilisant une bascule D par tape (synthse non optimise) : dfinir les entres de fce : fonction combinatoire d'entre. faire le schma correspondant l'quation de rcurrence de x2 seulement. donner le schma de fcs complet : fonction combinatoire de sortie.

D1 Clk D2 Clk D3 Clk

Q1

Q2

Q3

D12 Q12 Clk D13 Q13 Clk D14 Q14 Clk fce D15 Q15 Clk fcs

PROBLEME III : implantation de GRAFCET sur GAL 20V8

102

TD Informatique Industrielle IUT Troyes

1) Recherche de GRAFCET. On donne le programme ABEL MODULE EXO3 exo3 device 'P20V8'; clock,e1,e2,e3,I pin 1,2,3,4,5; "entrees x1,x2,x3 pin 19,20,21 istype 'reg'; act pin 22 istype 'com'; "sortie combinatoire AC1 macro {x3&e3};"activation tape 1 AC2 macro {x1&e1};"activation tape 2 AC3 macro {x2&e2};"activation tape 3 D1 macro {e1}; "desactivation etape 1 D2 macro {e2}; "desactivation etape 2 D3 macro {e3}; "desactivation etape 3 equations [x1,x2,x3].clk = clock; "obligatoire x1 := AC1 # !(D1) & x1 # I; "etape initiale x2 := AC2 & !I # !(D2) & x2 & !I; "etape 2 x3 := AC3 & !I # !(D3) & x3 & !I; "etape 3 act = x1 # x3; "equation combinatoire end 2) Vecteurs Tests On ajoute au programme ci-dessus les vecteurs tests ci-dessous. Que donneront ces vecteurs tests ? Donnes Rponses Dessiner le GRAFCET correspondant

Test_vectors ([clock,e1,e2,e3,I]->[x1,x2,x3,act]) [.c.,0,0,0,1]->[.X.,.X.,.X.,.X.]; [.c.,0,0,0,0]->[.X.,.X.,.X.,.X.]; [.c.,1,0,0,0]->[.X.,.X.,.X.,.X.]; [.c.,0,1,0,1]->[.X.,.X.,.X.,.X.]; [.c.,0,0,0,0]->[.X.,.X.,.X.,.X.]; [.c.,1,0,0,0]->[.X.,.X.,.X.,.X.]; [.c.,0,0,0,0]->[.X.,.X.,.X.,.X.]; [.c.,0,1,0,0]->[.X.,.X.,.X.,.X.]; [.c.,0,0,0,0]->[.X.,.X.,.X.,.X.]; [.c.,0,0,1,0]->[.X.,.X.,.X.,.X.]; [.c.,0,0,0,0]->[.X.,.X.,.X.,.X.];
3) Donner les quations pour ce GRAFCET : de rcurrence de l'tape 2 de sortie de l'action act Rponses pour les quations de rcurrence : x2+ = act = On vous demande d'implanter ces deux quations sur la GAL 20V8 de la page suivante en donnant les fusibles non grills (croix) ainsi que la valeur des bits internes correspondants ci-dessous. Rponses ici pour les bits internes : SG1 = SG1 = SL05 = SL07 = SL15 = SL17 = <-- pour x2 <-- pour act

103

TD Informatique Industrielle IUT Troyes

4) Graphe d'tat et programme ABEL correspondant. Pour le GRAFCET trouv on vous demande de reprsenter dans le tableau ci-dessous son graphe d'tat puis de complter la partie du programme ABEL en state_diagram correspondant ce graphe d'tat pour les deux transitions manquantes (donc en laissant de ct les tats inutiliss) et sans optimiser. Graphe d'tat : rponse : Partie du programme ABEL correspondant state_diagram([x1,x2,x3]) state [1,0,0] : if e1 then [0,1,0] else [1,0,0];

end

0123

4567

8 9 10 11

12 13 14 15

16 17 18 19 20 21 22 23
1 0

I1 2 0 1 2 3 4 5 6 7 I2 3 8 9 10 11 12 13 14 15 I3 4

I13 23
OE Vcc
1 1 1 0 0 0 0 1

SG0
1 1 0 X 1 0

SL07 SG1
D Q Q
1 0 1 1 0 X 1 1 0 X 1 0

I/O7 22

SL17

*SG1 SL07
1 1 0 X 1 0

SL06 SG1

OE Vcc

1 1 0 0

1 0 0 1

1 1 0 X

Q Q

1 0

I/O6 21

SL16

1 0 1 1 0 X

*SG1 SL06

1 1 0 X 1 0

SL05 SG1

OE Vcc

1 1 0 0

1 0 0 1

16 17 18

1 1 0 X

19 20 21
22 23

Q Q

1 0

I/O5 20

SL15

1 0 1 1 0 X

I4 5
1 1

*SG1 SL05

I5 6

24 25 26 27 28 29 30 31

0 X 1 0

SL04 SG1

OE Vcc

1 1 0 0

1 0 0 1

1 1 0 X

I/O4 19

Q Q

1 0

SL14

1 0 1 1 0 X

*SG1 SL04

Ajouter sur la figure ci-dessus l'affectation (ou nom symbolique) des broches utilises par ABEL pour les entres / sorties.

104

TD Informatique Industrielle IUT Troyes

TD 15 - Les oprations arithmtiques.


I - Addition binaire. I-1) Principe :
A

Pour le systme binaire, on dfinit l'addition comme pour le systme dcimal, en utilisant la table d'addition ci-contre.

B 0 1 10

0 0 1 10

1
1 10 11

10
10 11

Selon ce principe, l'addition de 2 bits a et b donne : - 1 bit S de somme (SUM en anglais) - 1 bit C de retenue (Carry). Recherchons leurs expressions

100

a b 0 1 0 1 0 1 1 0 S b 0 1 0 1 0 0 0 1 C

On peut donc raliser cette addition sur un bit l'aide des schmas logiques ci-dessous :

Le rsultat (C,S) s'crit donc en fonction de a et b : S=/ab+a/b = a $ b C=a.b

S ADD 1 bit C

a b

=1 &
C b

& & &


ab

a.ab

&
b.ab

S=a $ b

DEMI ADITIONNEUR

C'est un demi-additionnneur, en effet de faon plus gnrale l'addition s'effectue sur des nombres quelconques donc comportant plus de 2 bits.
Exemple : Retenues 100 0 11 1 0 11 0 0 1 0 1 2 addition Carry in (Cin) est la retenue de l'addition des bits de rang prcdent (r-1). Carry out (Cout) sera la retenue de l'addition des bits du rang (n). out S r

L'addition s'effectue donc sur 3 bits et donne un bit de somme et un bit de retenue. Etablissons les expressions de Sn et Cout. Table de vrit C in a n 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 bn 0 1 0 1 0 1 0 1 C out 0 0 0 1 0 1 1 1 Sn 0 1 1 0 1 0 0 1

A +B CS

C in + an +b n =C

ab in 0 1

00 0 0

01 0 1

11 1 1

10 0 1 C out

ab 00 in 0 1 0 1

01 11 1 0 0 1

10 1 0 S n

Cout = a.b+ Cin.a+Cin.b=a.b+/a.b.Cin+a./b.Cin

Sn =(a $ b) $ Cin

La ralisation de l'additionneur complet ncessite deux demi-additionneurs et peut se faire selon ces deux schmas :
retenue prcdente C in C in a n bn ADD C out retenue suivante a b
=1 & =1 & >1

S n Cout

ADDITIONNEUR
105

TD Informatique Industrielle IUT Troyes

Remarque : Dans les additionneurs intgrs, on cherche minimiser le nombre de couches d'oprateurs logiques, c'est dire le temps de rponse du circuit complet. On utilise pour cela d'autres critures de Sn et Cout. I- 2) Addition parallle retenue en cascade : Additionneur retenue propage : Ce circuit utilise n additionneurs complets. L'addition s'effectue sur les n bits simultanment mais en reportant la retenue de chaque calcul sur l'entre Cin de l'entre de l'additionneur suivant. Tout se passe comme si la retenue se propageait d'tage en tage.
a0 b0 a1 b1 a2 b2 a3 b3 C in a b ADD C out S C in a b ADD C out C3 (dpassement) S C in a b ADD C out S C in a b ADD C out S s0 s1 S2 s3

ADDITIONNEUR A RETENUE PROPAGEE Remarque : 1) Si pour un additionneur le temps T'p de calcul de la retenue vaut 2tp pour les n tages, le rsultat ne s'affichera compltement (C3 incluse) qu'au bout d'un temps T=2.n.tp (ici 8 tp), celui-ci pouvant tre trs long si n est grand. 2) Dans une reprsentation circulaire il y a dpassement C3=1 si la somme S>2n. Additionneur retenue anticipe :
b3 b2 b1 a3 Calcul de R3 Rn b2 b1 b0 a2 a1 a0 Rn b1 b0 a1 a0 Rn b0 a0 Calcul de Rn R0 b0 a 0 Add S0 b1 a1 Add S1 Calcul de R2 b3 a3 Add S3 a2 a1 b0 a0 R 3

* Pour un additionneur complet de 1 bit nous avons vu que Cout=ab+(a+b)Cin ceci signifie que : - Si a=b=1 Cout=1 quel que soit Cin, il y a gnration systmatique d'une retenue Cout et l'on dfinit donc G=a.b (terme de gnration) - Si l'un des deux bits a ou b est 1 et que Cin=1, il y a propagation de la retenue Cin et l'on dfinit P=a+b (terme de propagation). Dans ces conditions, les quations de l'additionneur deviennent : Cout = G + P.Cin et S=(a xor b) xor Cin.

Calcul de R1 b2 a2 Add

S2

* le raisonnement s'applique pour un additionneur de deux nombres de 4 bits : - Pour chaque rang, on cre les deux termes Gi et Pi.ri-1 en posant R=Cout et r=Cin
Pour chaque bit : RO=G0+P0.r0 R1=G1+P1r1=G1+P1G0+P1P0r0 car r1=R0 R2=G2+P2.r2 =G2+P2G1+P2P1G0+P2P1P0.r0 R3=G3+P3.r3 avec r3=R2 =G3+P3G2+P3P2G1+P3P2P1G0+P3P2P1P0r0 Shma a
&

bi

C in

>1

=1 =1

Pi

- Pour chaque additionneur, on effectue le calcul de la retenue Ri-1 et pour cela on leur associe un gnrateur de retenue anticipe (GRA).

106

TD Informatique Industrielle IUT Troyes

Remarque : En observant la structure interne (page prcdente), on constate que le calcul de Ri ne se fait qu' travers 3 couches d'oprateurs seulement. C'est sur ce principe qu'est ralis le 7483, additionneur 4 bits. II - La soustraction. II-1) Principe (rappel) Exemple: * En binaire comme en arithmtique dcimale, la A soustraction A-B s'effectue en ajoutant (10)2 au chiffre de rang i (si ncessaire) puis en retranchant - B 1 de report (retenue) au chiffre b de rang suivant. =D
(+10) (+10)

1100 1011 - 1001 1101


(+1) (+1) (+1) (+1)

report

0010 1110

* Pour calculer la diffrence D, on utilise la Exemple : mthode du complment vrai et on effectue donc 0101 0101 1011 1011 une somme. A 0101 -0 1 0 1 <=> +1 0 1 1 A-B=D <=> A+CVB=S avec CVB=CRB+1 - B - 1011 Le rsultat de cette dernire opration est toujours = D 1 0110 0110 01010 =D donn en complment vrai dans un format fixe. S retenue retenue S - si la dernire retenue de l'addition est 1 D=S=+0110 D=-C S = - 0110 alors D=S ; on nglige celle-ci et D est V positif. - si celle-ci est gale 0 alors D=-CVS, on Remarque : A n'est pas reprsent en complment recherche le complment vrai en ngligeant vrai. la dernire retenue. Remarque : le 4eme bit ( partir de la droite) donne le signes dans une reprsentation de nombre sign s=0 S>0 et s=1 S<0. Seuls les 3 premiers bits ont un sens. II-2) Soustraction parallle par complment vrai Nous prsentons ci-dessous l'aide d'un schma le principe du calcul.

107

TD Informatique Industrielle IUT Troyes

A0 A1 A A2 A3 BO B B1 B2 B3

1 1 1 1

Cin a0 S0 a1 ADD a2 S1 a3 4bits S2 b0 b1 S3 b2 b3 Cout

d'0 d'1 d'2 d'3 * Le principe de l'opration est identique, l'addition se fait sur chaque bit mais en utilisant des additionneurs parallles. 1er niveau : recherche de la somme et du signe A-B=A+B+1=D' s=1 signe + s=0 signe 2eme niveau : dcomplmentation du rsultat. si s=1 (D' $ 0)plus 0 plus Cin -> D'=D si s=0 D = (D' $ 1)plus 0 plus Cin D=D'+1=C D' V

D'

1
1 si ngatif

d'0

=1

d'1
D'

=1
=1 =1

d'2 d'3

Cin a0 S0 b0 ADD a1 S1 b1 4bits S2 a2 b2 S3 a3 b3 Cout

d0
d1 d3 d4 D

RAU 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 1 0 1 1 1 0 1 0 1 0 0 Cin a Add1 b D'

Exemple

A = 0011 A B = 1101 -B =D ' s=C =0 3 1 + 0 + D' = D

1 Cin =s 0 a Add2 1 b

D= (-)

0 1 0 0 1 0

0 1 1 0 1 0

II-3) Addition/soustraction en complment vrai.


E
A0 A1 A2 A3 B0 B1 B2 B3 a0 a1 a2 a3 C in S0 S1 S2 S3 S' 0 S' 1 S'2 S' 3 S' La slection de l'opration se fait grce l'entre E - Si E=0 alors S=A+B+Cin=A+B c'est une addition - Si E=1 S=A+C B+Cin=A+C B V R c'est une soustraction et le rsultat est en complment vrai. La valeur de s dtermine le signe du rsultat : - s=1 rsultat positif, lecture directe S=S' - s=0 rsultat ngatif, il faut rechercher S=C V S'

=1 =1 =1

b0 b1 b2 b3 C out

=1

&

III - Exercices - Additionneurs / Soustracteurs. 1) Construire un additionneur 1 bit partir de deux demi-additionneurs.

108

TD Informatique Industrielle IUT Troyes

2) Si le temps de propagation travers une porte est tp, calculer en fonction de tp le temps de propagation d'un additionneur 4 bits retenue propage puis le temps de propagation d'un additionneur 4 bits retenue anticipe. 3) On dsire additionner deux chiffres cods BCD dont la somme est =A+B. On dispose d'additionneurs binaires 4 bits effectuant la somme (S)2=(A)2+(B)2. a) Si on additionne A et B et que S<10 on a alors =S. Si S>=10, on constate que =S+n. Fixez-vous A et B, calculez S puis et dterminez la valeur de n. Justifiez ce rsultat. b) Soit D le circuit de dtection de S>=10. Recherchez l'quation de D. On dispose de 2 additionneurs binaires et de portes NAND. Proposez un schma tel que =A+B pour S<10 et que =A+B+n pour S>=10. c) En prenant ensuite un exemple dont la somme est suprieure 15 montrez qu'un circuit combinatoire doit tre ajout pour la retenue finale. 4) Etablir la table de vrit des fonctions Di (diffrence) et ci+1 d'un soustracteur de nombres non signs partir de ai, bi et ci. Comparer Di avec la fonction Si d'un additionneur. 5) Les mots "addition parallle" se retrouvent dans le cours. Il h existe une autre version d'additionneur ralisant une addition srie : On donne ci-dessous deux shmas d'additionneur srie. h On vous demande combien de cycles d'horloge faut-il pour raliser une opration complte sur n bits ?
an-1 a .... Reg. R 1 bn-1 b .... Reg. R 2 0 Ss a ADD 0 Ss b C in Q M Q RAZ 1 bit C out D h S h E s Reg R3

Sn-1

Schma d'un additionneur srie : Additionneur srie deux registres :

an-1 a .... h Reg. R 1 bn-1 b .... h Reg. R 2 Es S n-1

0 Ss 0 Ss S0 a ADD b C in 1 bit C out D M Q Q S

Proposer le schma d'un soustracteur srie par complment vrai.

109

TD Informatique Industrielle IUT Troyes

TD 16 - Comparaison, multiplication et calculette


I - Comparaison. A partir d'un soustracteur, il est relativement ais de concevoir un comparateur qui indiquera sur 3 fils de sorties soit A<B, soit A=B, soit A>B. Dans le premier cas en effet la retenue de gauche sera 0, dans le dernier elle sera 1 et dans le cas A=B la soustraction de tous les bits de A et de B ne donnera que des 1 et 0 de retenue. Il est naturellement possible d'implanter directement les quations logiques de comparaison, sans passer par la soustraction. Le comparateur 7485 utilis en TP (tachymtre) est un comparateur 4 bits binaire ou BCD.

4-BIT MAGNITUDE COMPARATOR


DESCRIPTION The "85" is an expandable 4-bit Magnitude Comparator. It compares two 4-bit binary weighted words (A0-A3) and (B0-B3) where A3 and B3 are the most significant bits. The expansion inputs IA>B, IA=B, IA<B are treated as the least significant inputs for comparison purposes. The three active HIGH outputs are "A greater than B" (A>B) "A equals B" (A=B), and "A less than B" (A<B). These devices can be cascaded to almost any length. TRUTH TABLE
COMPARING INPUTS A3,B3 A3>B3 A3<B3 A3=B3 A3=B3 A3=B3 A3=B3 A3=B3 A3=B3 A3=B3 A3=B3 A3=B3 A3=B3 A3=B3 A3=B3 A2,B2 X X A2>B2 A2<B2 A2=B2 A2=B2 A2=B2 A2=B2 A2=B2 A2=B2 A2=B2 A2=B2 A2=B2 A2=B2 A1,B1 X X X X A1>B1 A1<B1 A1=B1 A1=B1 A1=B1 A1=B1 A1=B1 A1=B1 A1=B1 A1=B1 A0,B0 X X X X X X A0>B0 A0<B0 A0=B0 A0=B0 A0=B0 A0=B0 A0=B0 A0=B0

54/74 SERIES "85"

FEATURES LOGIC SYMBOL Magnitude comparison of any binary words 10 12 13 15 Serial or parallel expansion A0 A1 A2 A3 without extra gating 2 IA<B Use 54S/74S85 for very 3 IA=B high speed comparisons 4 IA>B
A>B Vcc = pin 16 GND = pin 8

11 14

B0 B1 B2 B3

A=B

A<B

CASCADING INPUTS IA>B IA<B IA=B X X X X X X X X H L L X H L X X X X X X X X L H L X H L X X X X X X X X L L H H L L

OUTPUTS A>B H L H L H L H L H L L L L H A<B L H L H L H L H L H L L L H A=B L L L L L L L L L L H H L L

SIGNETICS
II - Multiplication Pour imaginer un multiplieur binaire il faut analyser les lois d'obtention du rsultat partir des valeurs multiplier. En dcimal, la multiplication ncessite trois oprations : - multiplication chiffre par chiffre ncessitant la connaissance des tables de multiplications,

110

TD Informatique Industrielle IUT Troyes

- dcalage des rsultats successifs, - addition des rsultats partiels. II-1) Table de multiplication binaire ( un bit). Elle se rsume 0x0=0 0x1=0 1x0=0 1x1=1 Elle est identique la fonction ET. II-2) Ralisation d'un multiplieur de deux nombres 3 bits A2 En implantant directement la "structure" mme des oprations de multiplication, il est facile de concevoir un circuit permettant de multiplier A et B, chacun de ces nombres ayant 3 bits. Avec les dcalages, il est facile d'imaginer que la rsultat se fera sur 6 bits. B0 B1 & B2 & + S5 S4 + & + S3 & + & + S2 S1 S0 & + & A1 & A0 &

II-3) Circuit intgr. Le circuit TTL 74274 est un multiplieur 4 bits bas sur ces principes. Il possde 8 bits de sortie protgs par des portes Trois tats commandes par des broches /G1 et /G2.

III - Architectures d'une calculette simple Il nous faut commencer par dcrire la ressource c'est dire l'ensemble des circuits lectroniques commands par le squenceur.

111

TD Informatique Industrielle IUT Troyes

- Unit arithmtique pouvant raliser les oprations LDA, ADDC, SUBC RIEN. La commande "b" ncessite donc au moins 2 bits. - C registre de retenue (Carry) ; commande "c" 1 bit. - ACC registre dcalage 7x4 bits permettant un dcalage gauche, droite une remise zro. Donc sa commande "a" comprend au moins 2 bits. - RE identique ci-dessus sauf commande "d". - AFF 7 afficheurs ayant comme fonctionnalit : extinction, affichage, clignotement (dpassement) Sa commande "e" comprend donc au moins 2 bits. - Le squenceur permettant la scrutation du clavier et l'excution des microcommandes "a", "b", "c", "d", "e".

ACC A6 AFF A5 A4 A3 A2 A1 A0 4 a Cin A

C c

Cout

UA
4 E6 4
E5

RE

4
E4

4
E3

4
E2

4
E1

4 4
E0

e B d b

(chiffre)

7 4 1 0

8 5 2 CE

9 6 3 C

+ -

micro-commandes a b c d e

Squenceur
=

+ -

CLAVIER

IV - Exercices 1) Exercice sur la soustraction BCD. Puis addition/soustraction pour l'UAL de la calculette. 2) Exercice sur la multiplication BCD. Peut-on faire simplement une modification de la calculette pour la faire multiplier ?

112

TD Informatique Industrielle IUT Troyes

TD 17 - CEI 1131-3 : Le langage IL et LD


La norme CEI 1131-3 (Fvrier 1993) normalise 5 langages : SFC (Sequentiel Function Chart) plus connu en France sous le nom de GRAFCET, LD (Ladder Diagramm) langage contact, ST (Structured Text) IL (Instruction List) FBD (Function Block Diagram) I - Architecture mmoire plus compteur plus UAL

Mmoire donnes
Registre donnes adresse donnes
Ecriture Lecture B0 B1 000 001 010 I1,0 I1,1

Carte d'entre

I10 I11 I12 etc..

Unit Logique
OP

Registre Instructions

Carte de sortie

O00 O01 O02 etc..

horloge

L A =

I1,1 I1,2 O0,0

Acc.

Mmoire programme

Compteur Programme PC

IM
EP

Automate programmable
II - Langage IL II-1) La norme 1131-3 (Extraits choisis)

NOP

COP OPDE

Il existe deux langages littraux : ST et IL. Ces deux langages ont des lments communs II-1-a) Elments communs (p226 de la norme) Les lments littraux dfinis l'article 2 doivent tre communs aux langages littraux (IL et ST) dfinis dans le prsent article. En particulier, les lments de structuration des programmes suivants doivent tre communs aux langages littraux : TYPE...END_TYPE VAR...END_VAR VAR_INPUT...END_VAR VAR_OUTPUT...END_VAR VAR_IN_OUT...END_VAR VAR_EXTERNAL...END_VAR FUNCTION...END_FUNCTION

113

TD Informatique Industrielle IUT Troyes

FUNCTION_BLOCK...END_FUNCTION_BLOCK PROGRAM...END_PROGRAM STEP...END_STEP INITIAL_STEP...END_STEP TRANSITION...END_TRANSITION ACTION...END_ACTION II-1-b) Langage IL (Liste d'instructions) (p226 de la norme) Le prsent paragraphe dfinit la smantique du langage IL (Liste d'instructions) dont la syntaxe formelle est donne un peu plus loin. Instructions Comme l'indique le Tableau 1, une liste d'instructions est compose d'une suite d'instructions. Chaque instruction doit dbuter sur une nouvelle ligne et doit contenir un oprateur accompagn de modificateurs optionnels et, si cela est ncessaire pour l'opration considre, un ou plusieurs oprandes spars par des virgules. Les oprandes peuvent tre choisis parmi les reprsentations de donnes dfinies en 2.2 pour les libells et en 2.4 pour les variables. L'instruction peut tre prcde d'une tiquette d'identification suivie de deux points (:). Si un commentaire tel que dfini en 2.1.5 est prsent, il doit constituer le dernier lment d'une ligne. Des lignes vides peuvent tre insres entre les instructions. Tableau 1 - Exemples de champs d'instructions Etiquette START: Oprateur LD ANDN ST Oprande %IX1 %MX5 %QX2 Commentaire (* BOUTON POUSSOIR *) (* NON INHIBEE *) (* MARCHE VENTILATEUR *)

Oprateurs, modificateurs et oprandes (p228 de la norme) Les oprateurs standards ainsi que leurs modificateurs et oprandes autoriss doivent tre tels qu'numrs dans le tableau 2. ...... ..... Le modificateur "N" indique une ngation boolenne de l'oprande. Par exemple l'instruction ANDN %IX2 est interprte de la manire suivante : resultat := resultat AND NOT %IX2 Le modificateur parenthse gauche "(" indique que l'valuation de l'oprateur est diffre jusqu' ce qu'un oprateur parenthse droit ")" soit rencontr ; par exemple la squence d'instructions suivante: AND( %IX1 OR %IX2 ) doit tre interprte de la manire suivante : resultat := resultat AND (%IX1 OR %IX2) Le modificateur "C" indique que l'instruction donne ne doit tre excute que si le rsultat faisant l'objet de l'valuation en cours a la valeur boolenne 1 (ou la valeur boolenne 0 si l'oprateur est combin avec le modificateur "N"). Tableau 2 - Oprateurs de liste d'instructions (p 230 de la norme) N 1 2 3 Oprateur LD ST S R Modificateur N N Note 3 Note 3 Oprande Note 2 Note 2 BOOL BOOL Smantique Rendre le rsultat courant gal l'oprande Mmoriser le rsultat l'emplacement de l'oprande Positionner l'oprande boolen 1 Remettre l'oprande boolen 0

114

TD Informatique Industrielle IUT Troyes

4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

AND & OR XOR ADD SUB MUL DIV GT GE EQ NE LE LT JMP CAL RET

N, ( N, ( N, ( N, ( ( ( ( ( ( ( ( ( ( ( C, N C, N C, N

BOOL BOOL BOOL BOOL Note 2 Note 2 Note 2 Note 2 Note 2 Note 2 Note 2 Note 2 Note 2 Note 2 LABEL NAME

21 ) NOTES 1 Se reporter au texte prcdent pour toute explication relative aux modificateurs et l'valuation des expressions. 2 Ces oprateurs doivent tre soit surchargs soit saisis comme dfini en 2.5.1.4. Le rsultat courant et l'oprande doivent tre du mme type 3 Ces oprations sont effectues si et seulement si le rsultat courant a la valeur boolenne 1 4 Le nom du bloc fonctionnel est suivi par une liste d'arguments entre parenthses, tels que dfinis en 3.2.3. 5 Lorsqu'une instruction JMP est contenue dans une construction ACTION...END_ACTION l'oprande doit tre une tiquette l'intrieur de la mme construction Fonctions et blocs fonctionnels (p 230 de la norme) Les fonctions doivent tre lances en inscrivant le nom de la fonction dans le champ oprateur. Le rsultat courant doit tre utilis comme premier argument de la fonction. Si ncessaire les arguments supplmentaires doivent tre fournis dans le champ oprande. La valeur renvoye par une fonction, aprs excution correcte d'une instruction RET ou lorsque la fin physique d'une fonction est atteinte doit devenir le "rsultat courant". Les blocs fonctionnels peuvent tre lancs sous condition ou inconditionnellement l'aide de l'oprateur CAL (Appel) figurant dans le tableau 2. Comme l'illustre le tableau 3, ce lancement peut prendre trois formes. Les oprateurs d'entre indiqus dans le tableau 4 peuvent tre utiliss conjointement la caractristique 3 du tableau 3. Tableau 3 - Caractristiques du lancement de bloc fonctionnel en langage IL (p 232) N 1 Description / exemple CAL avec liste d'entres CAL C10 (CU := %IX10, PV:=15) 2 CAL avec entres de charge/mmoire LD 15 ST C10.PV LD %IX10 ST C10.CU CAL C10 3 Utilisation d'oprateurs d'entre: LD 15 PV C10 LD %IX10 CU C10 NOTE - Une dclaration telle que VAR C10 : CTU; END_VAR est suppose dans les

AND boolen AND boolen OR boolen OR exclusif boolen Addition Soustraction Multiplication Division Comparaison : > Comparaison : >= Comparaison : = Comparaison : <> Comparaison : <= Comparaison : < Saut vers l'tiquette Appel d'un bloc fonctionnel (Note 4) Retour d'une fonction appele ou d'un bloc fonctionnel Evaluation d'une opration diffre

115

TD Informatique Industrielle IUT Troyes

exemples ci-dessus Dure (p 52 de la norme) Les donnes relatives la dure doivent tre dlimites gauche par le mot clef T#, TIME#, t# ou time#. La reprsentation des donnes relatives la dure, en termes de jours, heures, minutes, secondes et millisecondes, ou toute combinaison de ces derniers, doit tre pris en charge conformment au tableau 5. L'unit de temps la moins significative peut tre crite en notation relle sans exposant. Les units des libells peuvent tre spars par des caractres de soulignement. Le "dpassement" de l'unit la plus significative d'un libell de temps est permis; par exemple la notation T#25h_15m est permise. Les units de temps, comme par exemple secondes, millisecondes, etc. peuvent tre reprsentes en majuscules et en minuscules. Tableau 5 - Caractristique de libells de temps N Description de la caractristique Libells de temps sans caractres de soulignement : Prfixe court Prfixe long Libells de temps avec caractre de soulignement : Prfixe court Prfixe long Exemples T#14ms T#14.7s T#14.7m T#14.7h t#14.7d t#25h15m t#5d14h12m18s3.5ms TIME#14ms time#14.7s

1a 1b

2a 2b

t#25h_15m t#5d_14h_12m_18s_3.5ms TIME#25h_15m time#5d_14h_12m_18s_3.5ms

Types de donnes lmentaires (p 56 de la norme) Les types de donnes lmentaires, le mot clef relatif chaque type de donne, le nombre de bits par lment d'information, et la plage de valeurs relative chaque type de donnes lmentaire doivent tre tels que dfinis dans le tableau 6. Tableau 6 - Types de donnes lmentaires N Mot clef Type de donne 1 BOOL Boolen 2 SINT Entier court 3 INT Entier 4 DINT Entier double 5 LINT Entier long 6 USINT Entier cour non sign 7 UINT Entier non sign 8 UDINT Entier double non sign 9 ULINT Entier long non sign 10 REAL Nombre rel 11 LREAL Rels longs 12 TIME Dure 13 DATE Date (uniquement) 14 TIME_OF_DAY ou TOD Heure du jour (uniquement) 15 DATE_AND_TIME ou DT Date et heure du jour 16 STRING Cordon de caractres de longueur variable 17 BYTE Cordon de bits de longueur 8 18 WORD Cordon de caractres de longueur 16 19 DWORD Cordon de caractres de longueur 32 20 LWORD Cordon de caractres de longueur 64 NOTES 1 La longueur de ces donnes dpend de l'application concerne. Bits 1 8 16 32 64 8 16 32 64 32 64 Note 1 Note 1 Note 1 Note 1 Note 1 8 16 32 64 Etendue Note 8 Note 2 Note 2 Note 2 Note 2 Note 3 Note 3 Note 3 Note 3 Note 4 Note 5 Note 6 Note 6 Note 6 Note 6 Note 7 Note 7 Note 7 Note 7 Note 7

116

TD Informatique Industrielle IUT Troyes

2 L'tendue des valeurs, relatives des variables de ce type de donne, est comprise entre (2**(Bits-1)) et (2**(Bits-1))-1. 3 L'tendue des valeurs, relatives des variables de ce type de donne, est comprise entre 0 et 2**(Bits)-1. 4 L'tendue des valeurs, relatives des variables de ce type de donne, doit tre telle que dfinie dans la norme CEI 559 pour le format virgule flottante largeur binaire. 5 L'tendue des valeurs, relatives des variables de ce type de donne, doit tre telle que dfinie dans la norme CEI 559 pour le format virgule flottante double largeur binaire. 6 L'tendue des valeurs, relatives des variables de ce type de donne, dpend de l'application concerne. 7 Une tendue numrique de valeurs ne s'applique pas ce type de donne. 8 Les valeurs que peut prendre variables de ce type de donne doivent tre 0 et 1, correspondant respectivement aux mots cls FAUX et VRAI. Remarques : on peut se demander qui a traduit aussi mal cette norme !!!!! Pour les n 18, 19 et 20, il s'agit de cordon de bits (Bit string) et non pas de cordon de caractres Le mot cordon n'est d'ailleurs pas appropri on parle plutt habituellement de chane. Dans la note 8 sont traduits des mots cls ce qui est impossible !!!! Les oprandes sont : (Tableau 7 p70 de la norme) N Prfixe Signification Emplacement d'entre I 1 Emplacement de sortie Q 2 Emplacement de mmoire M 3 Taille d'un seul bit X 4 Taille d'un seul bit Aucun 5 Taille d'un octet (8bits) B 6 Taille d'un mot (16 bits) W 7 Taille d'un double mot (32 bits) D 8 Taille d'un mot long (Quad) (64 bits) L 9 NOTES 1 Sauf dclaration contraire, le type de donne d'une variable directement adressable, de la taille d'un "seul bit" doit tre BOOL. 2 Les organismes nationaux de normalisation peuvent publier des tables de traduction de ces prfixes. On peut rsumer le langage IL par sa description formelle : sa grammaire (p 292 de la norme). REGLES DE PRODUCTION: instruction_list ::= instruction {instruction} instruction ::= [[label':'] (il_operation | il_fb_call)] EOL label ::= identifier il_operation ::= il_operator [' ' il_operand_list] il_operand_list ::= il_operand {',' il_operand} il_operand ::= [identifier ':='] (constant | variable) il_fb_cal ::= 'CAL' ['C'['N']] fb_name ['(' il_operand_list ')'] il_operator ::= ('LD' | 'ST ') ['N'] | 'S' | 'R' | ('AND' | 'OR' | 'XOR') ['N']['('] | ('ADD' | 'SUB' | 'MUL' | 'DIV') ['('] |('GT' | 'GE' | 'EQ' | 'LT' | 'LE') ['('] |('JMP' | 'RET') ['C' ['N']] |'S1' | 'R1' | 'CLK' | 'CU' | 'CD' | 'PV' |'IN' | 'PT' | ')' |function_name identifier ::= (lettre - ('_'(lettre | chiffre))) {['_'](lettre | chiffre)}

117

TD Informatique Industrielle IUT Troyes

II -2) Exemple du TSX 37 (Telemecanique) instructions de tests : LD, LDN, LDR, LDF, AND, ANDN, ANDR, ANDF, OR, ORN, ORR, ORF, XOR, XORN, XORR, XORF, AND(, AND(N, AND(R, AND(F, OR(, OR(N, OR(R, OR(F. On peut donc utiliser des parenthses avec ventuellement des modificateurs : N, F (Falling edge), R (Rising edge) des blocs entre crochets [ et ]. Remarque : Dans la norme 1131-3 n'apparaissent pas les modificateurs R et F mais des blocs fonctionnels de dtection de front montants et de fonts descendants (p140 de la norme). On pourrait expliquer LDR, LDF, ANDR, ANDF ... comme fonctions prdfinies par Telemecanique. Mais il ne peut en tre de mme pour AND(R, ... Il semblerait que Telemcanique ait pris quelques libert ici. instructions d'actions : ST, STN, R, S instructions de contrles : JMP, JMPC, JMPCN, SRn, RET, RETC, RETCN, END, ENDC, ENDCN, HALT (END ... HALT n'apparaissent pas dans la norme 1131-3 et SRn s'appelle CAL) On dispose de trois instructions de manipulation de pile: MPS (Memory PuSh) stocke l'accumulateur sur la pile MRD (Memory ReaD) lit le sommet de la pile MPP (Memory PoP) lit en dstockant le sommet de la pile Ces instructions sont hors norme 1131-3 et on ne peut pas considrer qu'il s'agit de fonctions car ils ne satisfont pas la rgle de la norme (p 84) : "Les fonctions ne doivent comporter aucune information concernant les tats internes, c'est dire que le lancement d'une fonction dote des mmes arguments (paramtres d'entre) doit toujours donner la mme valeur" Quand aux blocs fonctionnels ils doivent satisfaire la rgle (norme p 118) " Toutes les valeurs des variables de sortie et des variables internes ncessaires de cette structure de donnes doivent persister, d'un bloc fonctionnel au suivant; par consquent, il n'est pas toujours ncessaire que le lancement du mme bloc fonctionnel ayant les mmes arguments (paramtres d'entre) aboutissent aux mmes valeurs de sortie" Le problme c'est que selon la norme l'appel se fait alors avec un CAL (voir II-1-b ci-dessus) Les oprandes sont : des entres notes %I1.0, %I1.1, ..... (avec le signe %) des sorties notes %Q2.0, %Q2.1,.... (avec le signe %) des bits internes nots %M0, %M1.... (avec le signe %) des bits systmes nots %Si .... (avec le signe %) S0 est le bit systme de reprise froid et S1 le bit systme de reprise chaud. des bits extraits de mots nots MWi:Xk (kime bit du ime mot) des bits de bloc de fonction. II - 3) Programmation de GRAFCETs en langage IL Il existe deux mthodes pour rsoudre ce problme. A noter que des atelier comme ISaGRAF qui se disent conforme la norme ne proposent pas la deuxime mthode ci-dessous. Premire mthode : on utilise les quations de rcurrence. 1 I1.0 2 I1.1 3 I1.2 LD %S1 (*M0 == tape 1 *) OR(%M2 (*M2 == tape 3 *) AND %I1.2 ) S %M0 R %M2 LD %M1 (*M1 == tape 2*) AND %I1.1 S %M2 R %M1 ....

Deuxime mthode : des lments prdefinis existent : construction STEP ... END_STEP ou INITIAL_STEP ... END_STEP construction TRANSITION ... END_TRANSITION (TRANSITION FROM et TO)

118

TD Informatique Industrielle IUT Troyes construction ACTION ...END_ACTION Exemples : (tirs de la norme p 160) Langage IL STEP STEP7 : A(N);END_STEP (*action A normale *) TRANSITION FROM STEP7 TO STEP 8 : LD %IX2.4 AND %IX2.3 END_TRANSITION STEP STEP8 : B(S);END_STEP (* action SET B*) STEP STEP7 : A(N);B(L,t#10s); END_STEP TRANSITION FROM (STEP7,STEP8) TO STEP 9 : LD %IX2.4 AND %IX2.3 END_TRANSITION STEP STEP9 : B(S);A(N);END_STEP (*deux actions*) Langage ST STEP STEP7 : END_STEP TRANSITION FROM STEP7 TO STEP 8 : := %IX2.4 & %IX2.3; END_TRANSITION STEP STEP8 : END_STEP

IV - Exercices Exercice 1 L'tat interne d'un automate de style TSX37 est donn ci-contre. Donnez sur les schmas suivants l'ensemble des modifications lors du droulement du programme complet. S0 bit systme de reprise froid S1 bit systme de reprise chaud op oprde Q0,-I0,-I0,00 0 I0,01 1 I0,02 0

1 Q0,00 0 2 LD %I0,01 Q0,01 0 3 OR %I0,02 Q0,02 0 4 ST %Q0,01 END

S0 1

bits U.L.

bits

2 Acc Rponse : Compteur Programme

119

TD Informatique Industrielle IUT Troyes

op

oprde

Q0,--

I0,-I0,00 0 I0,01 1 I0,02 0

op

oprde

Q0,--

I0,-I0,00 0 I0,01 1 I0,02 0

1 Q0,00 2 LD %I0,01 Q0,01 3 OR %I0,02 Q0,02 4 ST %Q0,01 END

1 Q0,00 2 LD %I0,01 Q0,01 3 OR %I0,02 Q0,02 4 ST %Q0,01 END

S0 U.L.

bits

bits

S0 U.L.

bits

bits

Acc Compteur Programme op oprde 1 Q0,00 2 LD %I0,01 Q0,01 3 OR %I0,02 Q0,02 4 ST %Q0,01 END Compteur Programme op oprde

Acc

Q0,--

I0,-I0,00 0 I0,01 1 I0,02 0

Q0,--

I0,-I0,00 0 I0,01 1 I0,02 0

1 Q0,00 2 LD %I0,01 Q0,01 3 OR %I0,02 Q0,02 4 ST %Q0,01 END

S0 U.L.

bits

bits

S0 U.L.

bits

bits

Acc Compteur Programme Exercice 2 Compteur Programme

Acc

Le langage IL admet l'utilisation de parenthses. Modifier l'architecture de l'exercice prcdent pour pouvoir excuter un programme avec parenthses. Ne pas oublier que l'on peut faire plusieurs niveaux de parenthses. Exercice 3 La norme 1131-3 prvoit certains blocs fonctionnels prdfinis : R_TRIG entre CLK et sortie Q dtection de front montant F_TRIG entre CLK et sortie Q dtection de front descendant CTU entres CU,R boolens compteur (ne fonctionnant pas sur front!) entre PV INT (valeur maximale) sortie Q boolenne sortie CV INT (valeur en cours) 1) Raliser en IL un compteur de 0 10 sur front. 2) Refaire le programme en utilisant les spcificits telemecanique.

120

TD Informatique Industrielle IUT Troyes

Exercice 4 Programmer le rseau ci-dessous avec le langage IL et l'imbrication de parenthses %I1.1 %I1.2 %I1.3 %I1.4 %I1.5 %I1.6 %I1.7 %I1.8 %I1.4 Ladder Diagram %M10 Exercice 5 Questions 1) Reprendre le GRAFCET ci-contre et le programmer en langage IL en utilisant un bit mmoire par tape. 2) Programmer ce GRAFCET avec les STEP... END_STEP etc.. 3) Montrer que ce dernier genre de programme ncessite une architecture comme ci-dessous %Q2.3 %Q2.0 Programmer le rseau ci-dessous avec le langage IL et les instructions de pile. %I1.1 %I1.2 %I1.3 %M0 %M1 %Q2.1 %Q2.2 %Q2.0

1 I1,0 2 I1,2 3 Q0,1 4 Q0,3 I1,1 . /I1,2 Q0,2 I1,2 I1,3 5 Q0,1 I1,3

Architecture interne du TSX 37 mmoire op oprde Q0,00 Q0,01 Q0,02 Q0,-I0,00 I0,01 I0,02 I0,-X0 X1 X2 X Xf Xf0 Xf1 Xf2

bits S1 Compteur Programme U.L.

bits Compteur Etape Courante

bits

bits

Acc

121

TD Informatique Industrielle IUT Troyes

TD 18 - CEI 1131-3 Langage SFC et ST


SFC (Sequentiel Function Chart) est un langage de programmation graphique qui ressemble au GRAFCET. La programmation des actions et transitions doit tre examine. I) Programmation des actions Norme CEI 848 (1988) complte par 1131-3 (1993) I-1) Gnralits sur les actions Ordre (action) dtaille : La section a contient une lettre symbole ou une combinaison de lettres symboles dcrivant comment le signal binaire de l'tape sera trait. La section b contient une dclaration symbolique ou littrale dcrivant l'ordre ou l'action. La section c indique le numro de rfrence du signal de fin d'excution correspondant NOTES 1. La section b doit tre au moins deux fois plus grande que les sections a et c. 2. Les sections a et c ne sont spcifies que si ncessaire. I-2) Les diffrentes actions Le niveau 2 d'une tape SFC est la description dtaille des actions excutes quand l'tape est active. Cette description est ralise l'aide des structures littrales du SFC, et des autres langages, tels que le ST (Structured Text). Voici les diffrents types d'action : I-2-a) Actions boolennes Une action boolenne consiste assigner une variable boolenne le signal d'activit d'une tape (drapeau d'tape). La variable boolenne doit tre interne ou de sortie. Elle est force chaque fois que le signal d'activit de l'tape change d'tat. Voici la syntaxe des actions boolennes non mmorises: <variable_bool> (N); <variable_bool> ; / <variable_bool> ; copie le signal d'activit de l'tape dans la variable mme effet (l'attribut N est optionnel) copie l'inverse logique du signal d'activit de l'tape dans la variable

D'autres types d'actions consistent forcer la variable ( faux ou vrai) quand l'tape devient active. Voici la syntaxe de ces actions : <variable_bool> (S) ; <variable_bool> (R) ; force la variable TRUE quand le signal d'activit de l'tape prend l'tat TRUE force la variable FALSE quand le signal d'activit de l'tape prend l'tat TRUE

On peut trouver les qualificatifs d'action suivants : Nant, N, R, S, L, D, P, SD, DS et SL (Norme p172). La variable boolenne doit tre INTERNE ou de SORTIE. La programmation SFC suivante reprsente le comportement indiqu dans le chronogramme:

122

TD Informatique Industrielle IUT Troyes

10

Actions boolennes

10.X BDirect /BInvert BSet BReset

Equivalent ST STEP 10: BDIRECT(N); /BINVERT; BSET(S); BRESET; END_STEP

BDirect(N); /Binvert; BSet(S); BReset(R);

I-2-b) Actions impulsionnelles Une action impulsionnelle est une liste d'instructions ST ou IL, excute une seule fois quand l'tape devient active. Les instructions sont crites selon la syntaxe SFC suivante : ACTION (P) : (* Enoncs ST *) END_ACTION ; Voici le chronogramme d'une action de type P :

Activit tape Excution


I-2-c) Actions non mmorises Une action normale (ou non mmorise) est une liste d'instructions ST ou IL, excute chaque cycle pendant toute la dure d'activit de l'tape. Les instructions sont crites selon la syntaxe SFC suivante : ACTION (N) : (* Enoncs ST *) END_ACTION ; I-2-d) Actions SFC Une action SFC est une squence fille SFC, lance ou tue selon les volutions du signal d'activit de l'tape. Une action SFC peut tre dcrite avec les qualificatifs d'action N (Non mmorise), S (Set), ou R (Reset). Voici la syntaxe des actions SFC : <progr_fils> (N) ; lance la squence fille quand l'tape devient active, et la tue lorsque l'tape redevient inactive <progr_fils> ; mme effet (l'attribut N est optionnel) <progr_fils> (S) ; lance la squence fille quand l'tape devient active. rien n'est fait lorsque l'tape redevient inactive <progr_fils> (R) ; tue la squence fille quand l'tape devient active. rien n'est fait lorsque l'tape redevient inactive La squence SFC spcifie dans l'action doit tre un programme SFC fils du programme en cours d'dition. I-2-e) Appel de fonction ou de bloc fonctionnel Les sous-programmes, fonctions ou blocs fonctionnels (crits en ST, IL, LD ou FBD), ou les fonctions ou blocs fonctionnels "C" peuvent tre directement appels depuis un bloc d'action, selon la syntaxe suivante : Pour les sous-programmes, fonctions ou fonctions "C": ACTION (P) :

123

TD Informatique Industrielle IUT Troyes

<resultat> := <sous_programme> ( ) ; END_ACTION; ou ACTION (N) : <resultat> := <sous_programme> ( ) ; END_ACTION; Pour les blocs fonctionnels crits en "C" ou en ST, IL, LD, FBD: ACTION (P) : Fbinst(in1, in2); result1 := Fbinst.out1; result2 := Fbinst.out2; END_ACTION; ou ACTION (N) : Fbinst(in1, in2); result1 := Fbinst.out1; result2 := Fbinst.out2; END_ACTION; Vous trouverez la syntaxe dtailles de ces appels dans le chapitre concernant le langage ST. Exemple d'appel de sous-programme dans un bloc d'action : (* Appel de sous-programme dans une action SFC*)
1
ACTION (P) : Init:=SPInit(); END_ACTION;

I-2-f) Convention IL La programmation en IL (Instruction List) peut tre directement insre dans un bloc d'action, selon la syntaxe suivante : NORME 1131-3 ACTION (P) : (* ou N *) <instruction> <instruction> .... END_ACTION; ISaGRAF ACTION (P) : (* ou N *) #info=IL <instruction> <instruction> .... #endinfo END_ACTION; (* Programme SFC et action programme en IL *) ACTION (P) : 1 #info=IL LD False ST led1 ST led2 #endinfo END_ACTION;

(* Programme SFC et action programme en IL *) ACTION (P) : 1 LD False ST led1 ST led2 END_ACTION;

I-3) Exemples dtaills de qualificatifs d'action

124

TD Informatique Industrielle IUT Troyes

18.X 18 c ORDRE "A" c

Ordre non mmoris

Ordre "A"

20 c

S ORDRE "A"

Action mmorise 20.X c Action "A" 20.X S 25.X R ACTION "A"

25 k

R ORDRE "A"

25.X k

18 c

D ORDRE "A" T#5s

18.X c

Ordre non mmoris mais retard 18.X 5s 0s Ordre "A" 5s

Ordre "A" Ordre non mmoris mais retard 10.X 5s 0s 5s & Ordre "A"

10 b

L T#5s ORDRE "A"

10.X b

Ordre "A"

20 c

SD ORDRE "A" T#5s

Ordre mmoris et retard 20.X 25.X 20.X S 25.X R 5s 5s 0s Ordre "A"

25 k

R ORDRE "A"

Ordre "A"

20 c

DS ORDRE "A" T#5s

Ordre retard et memoris 20.X 25.X 20.X 5s 0s 25.X 5s S R


Ordre

"A"

25 k

R ORDRE "A"

Ordre "A"

125

TD Informatique Industrielle IUT Troyes

20 c

SL ORDRE "A" T#5s

Ordre memoris et limit dans le temps 20.X 25.X 20.X S 25.X R 5s 5s 0s &
Ordre

"A"

25 k

R ORDRE "A"

Ordre "A"

Forme 1 10 b Forme 2 10 b Forme 1 10 b Forme 2 10 b d 10.X 25.X d Ordre "A" R ORDRE "A" k SC ORDRE "A" si "d" d b d Ordre "A" C ORDRE "A" si "d" 10.X

Ordre conditionnel

10.X d &

Ordre "A"

C ORDRE "A"

Ordre mmoris conditionnel

SC ORDRE "A"

10.X S 25.X R d

&

Ordre "A"

25

Drapeau d'tape. A une tape repre par *** on associe une variable d'tape not ***.X Temps coul pour une tape : ***.T On notera l'quivalence des deux notations ci-dessous : L ACTION_1 t#10s P ACTION_2 N ACTION_3 DN1 STEP S8: ACTION_1(L,t#10s,DN1); ACTION_2(P); ACTION_3(N); END_STEP

II) Conditions attaches aux transitions A chaque transition est attache une expression boolenne, qui conditionne le franchissement de la transition. Les conditions sont gnralement dcrites en langage ST. C'est le niveau 2 de la transition. Mais d'autres conventions d'criture sont autorises :

126

TD Informatique Industrielle IUT Troyes

II-1) Convention ST Vous pouvez utiliser le langage ST (Structured Text) pour dcrire la condition attache une transition. L'expression doit tre du type boolen et doit tre termine par un point virgule, selon une des syntaxes suivantes : TRANSITION FROM XXX TO XXX < expression_booleenne > ; < expression_booleenne > ; END_TRANSITION XXX dsigne une tape ou plusieurs tapes alors entre parenthses. L'expression peut tre une valeur constante TRUE ou FALSE, une variable boolenne interne ou d'entre, ou une combinaison de variables reprsentant une grandeur boolenne. Voici un exemple de transition programme en ST : (* Programme SFC avec conditions programmes en ST *)

1
Run & not erreur II-2) Convention LD Le langage LD (schma relais) peut tre utilis pour dcrire une condition associe une transition. Le schma est alors compos d'un seul chelon contenant un seul relais. La valeur du relais reprsente la valeur de la transition. Voici un exemple de transition programme en LD:

Run

Erreur

Run

Erreur
ISaGRAF

NORME 1131-3 II-3) Convention IL

Le langage IL (Instruction List) peut directement tre utilis pour programmer la condition d'une transition, selon la syntaxe suivante : NORME 1131-3 TRANSITION FROM XXX TO XXX <instruction> <instruction> .... END_TRANSITION ISaGRAF #info=IL <instruction> <instruction> .... #endinfo

La valeur contenue dans le rsultat courant (registre IL) la fin de la squence programme indique le rsultat de la condition attache la transition : rsultat courant = 0 condition = FALSE rsultat courant <> 0 condition = TRUE Voici un exemple de condition programme en IL : (* Programme SFC avec transitions programmes en IL *)

127

TD Informatique Industrielle IUT Troyes

TRANSITION FROM 1 TO 2: LD Run &N Erreur END_TRANSITION

III) Exercices 1) On dsire grer un feu de carrefour simple 2 voies. On a une entre jour nuit, et 6 sorties (2 x vert, orange, rouge) et on ne dispose pas de bit spcial type SY6 (1 Hz). Raliser un GRAFCET qui ralise ce problme. S'il est vrai qu'un programme SFC sert en gnral dcrire une commande d'une machine de production, la norme 1131-3 peut faire voluer les choses. Les cibles vises par les programmes vont s'tendre de l'automate programmable aux microcontrleurs. ISaGRAF propose un atelier logiciel pouvant gnrer du C. Les parties opratives seront alors des circuits lectroniques. 2) On peut reprendre le problme du tachymtre. Le schma de principe est donn dans la page suivante. On suppose que l'on communique avec la partie oprative par : - l'entre capteur qui donne les impulsions venant du photocapteur, - 8 sorties (1 digits). a) L'affichage se faisant sur 4 digits il faudra multiplexer (voir figure ci-aprs). On suppose comme en TP que l'on a une roue perce de 60 trous pour un tour et qu'ainsi il suffit de compter le nombre de trous qui passent en une seconde et d'afficher le rsultat pour avoir la vitesse en tour par minutes. Le multiplexage de l'affichage se fait toutes les 20 ms. Le compteur est suppos respecter la norme 1131, c'est dire qu'il est actif sur niveau (et non sur front) et qu'il compte en entier. Utiliser donc la transformation INT_TO_BCD de la norme pour l'affichage. On demande d'crire un programme SFC dcrivant le squencement de ce tachymtre. b) Ajouter ensuite la possibilit de dclencher le relais si la vitesse dpasse une valeur pouvant tre programme. La programmation de cette vitesse se fait en appuyant sur SW1 et SW3 pour incrmenter et sur SW2 et SW3 pour dcrmenter. L'appui sur SW3 seul permet uniquement de consulter la valeur de cette vitesse maximale. L'incrmentation (ou la dcrmentation) se fait d'abord lentement puis de plus en plus vite au fur et mesure que le temps pendant lequel on appuie augmente.

128

TD Informatique Industrielle IUT Troyes

X1000
CR13 LTS-36P 10 A 9 B 8 C 5 D 4 E 2 F 3 G 7 DP COMS

X100
CR13 LTS-36P 10 A 9 B 8 C 5 D 4 E 2 F 3 G 7 DP COMS

X10
CR13 LTS-36P 10 A 9 B 8 C 5 D 4 E 2 F 3 G 7 DP COMS

X1
CR13 LTS-36P 10 A 9 B 8 C 5 D 4 E 2 F 3 G 7 DP COMS

C1 m 100 F P30 P31 P20 P33 P34 P35 P36 P37 RP1 18 75W VSSOUT1 17 IN1 OUT1 16 IN1 OUT1 15 IN1 OUT1 14 IN1 OUT1 13 IN1 OUT1 12 IN1 OUT1 11 IN1 OUT1 10 IN1 SUB U2 UDN2585A

R18 10 k

01 2N7000

VCC R17 10 k

02 2N7000

VCC R16 10 k

03 2N7000

VCC R15 10 k 03 2N7000

C1 m 100 F C2

VCC 28 11

U1 87C752

VCC R9 4,7k VCC R13 10 k R10 4,7k CR9

VDD P3.7 25 P3.6 26 XTAL1P3.5 27 22pF X1 VCC P3.4 1 12 Mhz C3 10 P3.3 R13 XTAL2P3.2 2 22pF C4 10 k 9 P3.1 4 VCC + 5 RST 24 PWM P3.0 10mF 23 22 6 P0.3 T0 21 7 P0.2 INT1 20 8 SDA INT0 17 SCL ADC4 ADC3 16 19 AVCC VREF ADC2 15 C6 ADC1 14 100nF 18 AVSS ADC0 13 12 VSS

SW1 TEMP VCC PSI

1N4148 SW2 CR10 1N4148 CR11 SW3 1N4148 CR12 1N4148 VCC VEE VDD 4 3 2 1 J3 J3 J3 J3

1 J1 4 J1 5 J1 6 J1 2 J1 3 J1 SETPOINT SWITCHING

CR5 1N4002 SETPOINT

K1 TQ2E-5V

05 2N7000 R14 10k VCC +8 VOLTS VCC +8 VOLTS U7 +8 VOLTS R11 4NB5 GROUND220 6 1 5 2 J2 1 4 3 J2 2

R12 4,7k

SPEEDMETER INPUT

129

TD Informatique Industrielle IUT Troyes

TABLE DES MATIERES


Cours 1 - La numration .................................................................................................................... 1 I - Dfinitions ......................................................................................................................... 1 I-1) Expression gnrale............................................................................................ 1 I-2) Rappels : la numration dcimale. ...................................................................... 1 II - Systme de numration binaire. ....................................................................................... 1 II-1) Expression ......................................................................................................... 1 II-2) Conversion Binaire-Dcimal............................................................................... 1 II-3) Conversion Dcimal-Binaire............................................................................... 1 II-4) Cas des nombres fractionnaires. ........................................................................ 2 II-5) Prcision fractionnaire........................................................................................ 2 II-6) Utilisation pour la longueur de conversion dcimale-binaire. .............................. 2 III - Autres systmes de numrations. .................................................................................... 3 III-1) Systme de numration octale. ......................................................................... 3 III-2) Systme de numration hexadcimale.............................................................. 3 III-3) Conversions entre systmes de numration (2, 8 ou 16). .................................. 5 IV - Exercices. ....................................................................................................................... 6 Cours 2 - Reprsentation des nombres. ............................................................................................. 7 I - Reprsentation des entiers positifs. ................................................................................... 7 II - Reprsentation des entiers relatifs.................................................................................... 7 II-1) reprsentation par bit de signe et valeur absolue................................................ 7 II-2) Reprsentation par le complment restreint de N (complment 1)................... 8 II-3) Reprsentation par le complment vrai de N (complment deux).................... 8 III - Reprsentation des nombres fractionnaires. .................................................................... 10 III - 1) Virgule place un rang fixe quelconque........................................................ 10 III - 2) virgule situe droite du dernier rang. ............................................................ 10 III-3) Virgule situe droite du bit de signe................................................................ 11 III-4) Norme ANSI IEEE standard 754 pour la reprsentation des rels...................... 11 IV - Exercices. ....................................................................................................................... 11 Cours 3 - Les Codes .......................................................................................................................... 13 I - Dfinitions. ........................................................................................................................ 13 II - Diffrents types de codes. ................................................................................................ 13 II-1) Codes arithmtiques. ......................................................................................... 14 II-2) Codes de position : (rflchis ou reflex). ............................................................ 14 II-3) Codes dtecteurs. .............................................................................................. 15 II-4)Codes alphanumriques :.................................................................................... 16 III - Exercice. ......................................................................................................................... 17 Cours 4 : Le langage ABEL................................................................................................................ 18 I - Le langage ABEL (spcifications) ...................................................................................... 18 I-1) Caractres valides .............................................................................................. 18 I-2) Identificateurs. .................................................................................................... 18 I-3) Constantes.......................................................................................................... 18 I-4) Blocs................................................................................................................... 18 I-5) Commentaires. ................................................................................................... 18 I-6) Nombres. ............................................................................................................ 18 I-7) Chanes de caractres. ....................................................................................... 19 I-8) Oprateurs expressions et quations................................................................... 19 I-9) Les ensembles. ................................................................................................... 19 I-10) La structure de programme. .............................................................................. 19 I-11) Les points extensions. ....................................................................................... 20 I-12) Les macros. ...................................................................................................... 21 II) Applications....................................................................................................................... 21 II-1) Passage table de vrit -> quations ................................................................. 22 II-2) Simulation.......................................................................................................... 22 II-3) Introduction des quations logiques.................................................................... 22 II-4) Plusieurs sorties................................................................................................. 22 II-5) Mthode SI-ALORS ........................................................................................... 22 TD1 - Logique et algbre de Boole..................................................................................................... 23 I - Dfinitions. ........................................................................................................................ 23

130

TD Informatique Industrielle IUT Troyes

II - Reprsentation des fonctions logiques.............................................................................. 23 III - Fonctions lmentaires. .................................................................................................. 24 III-1) Fonction d'une variable ..................................................................................... 24 III-2) Fonction de deux variables : f(a,b) ................................................................... 24 IV - Exercice : les 16 fonctions F(a,b) .................................................................................... 26 TD 2 - Les fonctions Boolennes........................................................................................................ 27 I - Dfinitions. ........................................................................................................................ 27 II - Les reprsentations. ......................................................................................................... 27 III - Exercices. ....................................................................................................................... 28 TD 3 - Simplification des fonctions logiques....................................................................................... 29 I - Tableaux de Karnaugh. ..................................................................................................... 29 II - Mthodes algbriques. ..................................................................................................... 30 II-1) Emploi des thormes de l'algbre de Boole :.................................................... 30 II-2) Mthode du consensus....................................................................................... 31 III - Exercices. ....................................................................................................................... 31 TD4 - Ralisation des circuits............................................................................................................. 32 I - Synthse avec la structure ET/OU..................................................................................... 32 II - Synthse ET-Non. ......................................................................................................... 32 III - Portes ET-Non limites par le nombre d'entre................................................................ 33 IV - Synthse avec la structure OU/ET. ................................................................................. 33 V - Synthse OU-Non. ........................................................................................................ 33 VI - Portes OU-Non limites par le nombre d'entre. ............................................................. 34 VII - Optimisations. ................................................................................................................ 34 VIII - Exercices ...................................................................................................................... 35 TD 5 - Mthode du SI-ALORS............................................................................................................ 36 I - Prsentation du tableau SI-ALORS ................................................................................... 36 I-1) Table de vrit.................................................................................................... 36 I-2) Tableau SI-ALORS ............................................................................................. 36 II - Exemples. ........................................................................................................................ 36 III - Tables SI-ALORS et le langage ABEL............................................................................. 37 IV - Exercices. ....................................................................................................................... 38 Devoir surveill n1 d'informatique industrielle................................................................................... 40 Cours 5 - Circuits de transcodage. ..................................................................................................... 42 I - Ralisation d'un circuit de transcodage.............................................................................. 42 II - Circuits existants. ............................................................................................................. 42 Cours 6 - Multiplexage - Demultiplexage............................................................................................ 44 I - Dfinitions. ........................................................................................................................ 44 II - Application particulires.................................................................................................... 45 Cour 7 - Paramtres lectriques et temporels. ................................................................................... 46 I - Familles et sous familles. .................................................................................................. 46 I-1) TTL. .................................................................................................................... 46 I-2) ECL .................................................................................................................... 46 I-3) CMOS................................................................................................................. 46 II - Paramtres lectriques..................................................................................................... 46 II-1) Niveaux d'entre et de sortie.............................................................................. 46 II-2) Immunit aux bruits ........................................................................................... 47 II-3) Courants de sortie et d'entre............................................................................. 47 II-4) Courant de court-circuit...................................................................................... 47 III - Paramtres temporels. .................................................................................................... 48 IV - Exercices. ....................................................................................................................... 48 Cours 8 - Portes collecteur ouvert, trois tats, trigger de schmitt. ....................................................... 49 I - Portes sortie collecteur ouvert. ....................................................................................... 49 II - Porte sortie 3 tats. ....................................................................................................... 49 III - Portes entres trigger de schmitt. ................................................................................. 50 TD 6 - La fonction mmoire. .............................................................................................................. 51 I - Mmoire RS. ..................................................................................................................... 51 I-1) Principe de fonctionnement................................................................................. 51 I-2) Exemples de bistable RS. ................................................................................... 51 I-3) Mthodes d'tudes. ............................................................................................. 51 II - La mmoire D. ................................................................................................................. 51

131

TD Informatique Industrielle IUT Troyes

III - La mmoire RST. ............................................................................................................ 52 IV - Exercices. ....................................................................................................................... 52 TD 7 - Les bascules. .......................................................................................................................... 53 I - Fonction bascule. .............................................................................................................. 53 II - Comptage. ....................................................................................................................... 53 III - Les diffrentes bascules. ................................................................................................. 53 IV - Bascule JK...................................................................................................................... 53 V - Bascule T......................................................................................................................... 54 VI - Bascule D. ...................................................................................................................... 54 VII - Exercices ....................................................................................................................... 55 TD 8 - Les registres............................................................................................................................ 57 I - Registres ........................................................................................................................... 57 I-1)Dfinitions............................................................................................................ 57 I-2) Structures des registres....................................................................................... 57 I-3) Ecriture d'un mot dans un registre. ...................................................................... 57 I-4) Lecture d'un mot contenu dans un registre. ......................................................... 58 II - Exercices. ........................................................................................................................ 59 TD 9 - Les compteurs synchrones ...................................................................................................... 62 I - Analyse des machines pulses franchissement synchrone. ............................................ 62 I-1) Analyse d'un compteur synchrone de type registre en anneau............................. 62 I-2) Analyse d'un systme ayant plusieurs cycles....................................................... 62 I-3) Gnrateur de chiffres pseudo-alatoires............................................................ 63 I-4) Mthode d'analyse d'un systme quelconque. ..................................................... 63 I-5) Montage avec JK. ............................................................................................... 64 II - Synthse des compteurs synchrones................................................................................ 64 III - Exercices. ....................................................................................................................... 66 IV - Limitation en frquence des compteurs synchrones. ....................................................... 66 V - Initialisation d'un compteur............................................................................................... 67 VI - Forage asynchrone des compteurs synchrones ( rtroaction)....................................... 67 VII - Compteurs et le langage ABEL. ..................................................................................... 68 TD 10 - Compteurs asynchrones....................................................................................................... 70 I - Analyse de circuits existants.............................................................................................. 70 I -1) Prsentation gnrale : le compteur binaire. ...................................................... 70 I-2) Le compteur 7493. .............................................................................................. 70 I-3) Le compteur 7490. .............................................................................................. 70 II - Exercice. .......................................................................................................................... 71 III - Synthse. ........................................................................................................................ 71 Devoir Surveill d'informatique industrielle n2 .................................................................................. 72 TD11 - Le GRAFCET (outil de description) ........................................................................................ 76 I - Systme automatis.......................................................................................................... 76 I-1) Gnralits. ........................................................................................................ 76 I-2) La dmarche de conception d'un systme automatis de production................... 76 II - Description par GRAFCET. .............................................................................................. 76 III - Le GRAFCET ( rgles d'tablissement). .......................................................................... 79 III-1) Etapes. ............................................................................................................. 79 III-2) Transitions. ....................................................................................................... 80 III-3) Graphe des tats............................................................................................... 81 IV - EXERCICES. .................................................................................................................. 82 TD12 - GRAFCET (synthse matrielle non programme)................................................................. 85 I - Voir le GRAFCET comme une description de machine squentielle .................................. 85 II - Gnralits....................................................................................................................... 85 III - Mthode asynchrone ....................................................................................................... 85 IV - Mthodes synchrones ..................................................................................................... 86 IV-1) Mthode d'activation-dsactivation synchrone .................................................. 86 IV-2) Mthode optimise en nombre de bascules ...................................................... 87 V - Exercices ......................................................................................................................... 87 TD 13 - Logique programmable et ABEL............................................................................................ 89 I - Prsentation de la logique programmable.......................................................................... 89 I-1) Les conventions de reprsentation des PALs ...................................................... 89 I-2) Notre GAL 20V8.................................................................................................. 89

132

TD Informatique Industrielle IUT Troyes

II - Exercices ......................................................................................................................... 90 IV - COMPLEMENT : PROGRAMMATION D'UN GRAFCET EN ABEL ................................. 94 TD 14 - GRAFCET : Synthse programme. .................................................................................... 95 I - Bien comprendre l'architecture. ......................................................................................... 95 I-1) Mmoires............................................................................................................ 95 I-2) Analyse............................................................................................................... 95 II - Synthse (mmoire plus registre). .................................................................................... 96 III - Synthse compteur plus mmoire. .................................................................................. 97 III-1) Squenceur enchanement squentiel............................................................ 97 III-2) Squenceurs enchanement conditionnel ....................................................... 98 III-3) Squenceur avec branchement inconditionnel .................................................. 99 III-4) Squenceur avec branchement conditionnel ..................................................... 100 IV - Exercice.......................................................................................................................... 100 DS Informatique Industrielle n3 ........................................................................................................ 101 TD 15 - Les oprations arithmtiques................................................................................................. 105 I - Addition binaire. ................................................................................................................ 105 I-1) Principe :............................................................................................................. 105 I- 2) Addition parallle retenue en cascade : ........................................................... 106 II - La soustraction. ................................................................................................................ 107 II-1) Principe (rappel)................................................................................................. 107 II-2) Soustraction parallle par complment vrai........................................................ 107 II-3) Addition/soustraction en complment vrai. ......................................................... 108 III - Exercices - Additionneurs / Soustracteurs........................................................................ 108 TD 16 - Comparaison et multiplication.et calculette............................................................................ 110 I - Comparaison.................................................................................................................... 110 II - Multiplication .................................................................................................................... 110 II-1) Table de multiplication binaire ( un bit)............................................................. 111 II-2) Ralisation d'un multiplieur de deux nombres 3 bits ........................................... 111 II-3) Circuit intgr................................................................................................................. 111 III - Architectures d'une calculette simple............................................................................... 111 IV - Exercices ........................................................................................................................ 112 TD 17 - CEI 1131-3 : Le langage IL et LD .......................................................................................... 113 I - Architecture mmoire plus compteur plus UAL .................................................................. 113 II - Langage IL ....................................................................................................................... 113 II-1) La norme 1131-3 (Extraits choisis) ..................................................................... 113 II -2) Exemple du TSX 37 (Telemecanique)............................................................... 118 II - 3) Programmation de GRAFCETs en langage IL.................................................. 118 IV - Exercices ........................................................................................................................ 119 TD 18 - CEI 1131-3 Langage SFC et ST ............................................................................................ 122 I) Programmation des actions ................................................................................................ 122 I-1) Gnralits sur les actions .................................................................................. 122 I-2) Les diffrentes actions ........................................................................................ 122 I-3) Exemples dtaills de qualificatifs d'action.......................................................... 124 II) Conditions attaches aux transitions.................................................................................. 126 II-1) Convention ST ................................................................................................... 127 II-2) Convention LD ................................................................................................... 127 II-3) Convention IL..................................................................................................... 127 III) Exercices ......................................................................................................................... 128 TABLE DES MATIERES.................................................................................................................... 130

133

Vous aimerez peut-être aussi