BTS | Mathématiques | Groupements B2, B3
Un technicien en automatismes programme un automate programmable industriel (API) pour commander un convoyeur de tri de pièces. La sortie « moteur en marche » doit être activée lorsque : le capteur de présence pièce est actif ET la sécurité porte n'est pas déclenchée, OU lorsqu'un mode test forcé est sélectionné par l'opérateur. Formaliser ce cahier des charges en équation logique, simplifier l'expression et la câbler sur un circuit numérique sont des compétences directement issues de l'algèbre de Boole. Ce chapitre fournit toutes les bases nécessaires à ces tâches.
Une algèbre de Boole est un ensemble \(B = \{0,\,1\}\) muni de trois opérations :
Ces opérations satisfont un ensemble d'axiomes garantissant la cohérence du calcul logique. En électronique numérique, \(0\) correspond à un niveau bas (environ 0 V) et \(1\) à un niveau haut (environ 3,3 V ou 5 V selon la technologie).
| a | b | \(a + b\) |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
| a | b | \(a \cdot b\) |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
| a | \(\bar{a}\) |
|---|---|
| 0 | 1 |
| 1 | 0 |
La priorité des opérations est : NON > ET > OU (comme en arithmétique classique : négation > produit > somme).
Pour tout \(a, b, c \in \{0,1\}\) :
| Nom | ET (\(\cdot\)) | OU (\(+\)) |
|---|---|---|
| Éléments neutres | \(a \cdot 1 = a\) | \(a + 0 = a\) |
| Éléments absorbants | \(a \cdot 0 = 0\) | \(a + 1 = 1\) |
| Idempotence | \(a \cdot a = a\) | \(a + a = a\) |
| Complémentarité | \(a \cdot \bar{a} = 0\) | \(a + \bar{a} = 1\) |
| Involution | \(\overline{\bar{a}} = a\) | |
| Commutativité | \(a \cdot b = b \cdot a\) | \(a + b = b + a\) |
| Associativité | \((a \cdot b) \cdot c = a \cdot (b \cdot c)\) | \((a+b)+c = a+(b+c)\) |
| Distributivité | \(a \cdot (b+c) = a b + a c\) | \(a + bc = (a+b)(a+c)\) |
| Absorption | \(a(a+b) = a\) | \(a + ab = a\) |
Les théorèmes de De Morgan permettent de distribuer une négation sur une opération logique :
$$\overline{a \cdot b} = \bar{a} + \bar{b} \qquad \text{(NON d'un ET = OU des NON)}$$ $$\overline{a + b} = \bar{a} \cdot \bar{b} \qquad \text{(NON d'un OU = ET des NON)}$$Généralisation à \(n\) variables :
$$\overline{a_1 \cdot a_2 \cdots a_n} = \bar{a}_1 + \bar{a}_2 + \cdots + \bar{a}_n$$ $$\overline{a_1 + a_2 + \cdots + a_n} = \bar{a}_1 \cdot \bar{a}_2 \cdots \bar{a}_n$$Simplifier \(S = \overline{(A + B) \cdot C}\).
$$S = \overline{(A+B) \cdot C} = \overline{A+B} + \bar{C} = \bar{A}\bar{B} + \bar{C}$$Puis vérifier les cas limites : si \(A=0,\,B=0,\,C=1\) alors \(S=1\cdot 1+0=1\) ✓
Une fonction booléenne de \(n\) variables est une application \(f : \{0,1\}^n \to \{0,1\}\).
Pour \(n\) variables, la table de vérité comporte \(2^n\) lignes.
Elle peut être représentée par :
Somme de mintermes — FND (Forme Normale Disjonctive)
Le minterme \(m_i\) est le produit de toutes les variables, chacune complémentée ou non selon le rang binaire \(i\). On écrit la fonction comme somme des mintermes où \(f=1\).
Numérotation : le rang \(i\) est la valeur décimale de la combinaison des variables. Ex. \((A,B,C)=(1,0,1)\) donne \(i=5\), minterme \(m_5 = A\bar{B}C\).
Produit de maxtermes — FNC (Forme Normale Conjonctive)
Le maxterme \(M_i\) est la somme de toutes les variables. On écrit la fonction comme produit des maxtermes où \(f=0\).
Ex. \((A,B,C)=(0,1,0)\) donne \(i=2\), maxterme \(M_2 = A+\bar{B}+C\).
Soit \(f(A,B,C)\) définie par la table :
| N° | A | B | C | f |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 1 |
| 1 | 0 | 0 | 1 | 0 |
| 2 | 0 | 1 | 0 | 1 |
| 3 | 0 | 1 | 1 | 0 |
| 4 | 1 | 0 | 0 | 1 |
| 5 | 1 | 0 | 1 | 1 |
| 6 | 1 | 1 | 0 | 0 |
| 7 | 1 | 1 | 1 | 1 |
FND : \(f = m_0 + m_2 + m_4 + m_5 + m_7 = \bar{A}\bar{B}\bar{C} + \bar{A}B\bar{C} + A\bar{B}\bar{C} + A\bar{B}C + ABC\)
FNC : \(f = M_1 \cdot M_3 \cdot M_6\)
Simplifier \(f = AB + A\bar{B} + \bar{A}B\).
$$f = A(B + \bar{B}) + \bar{A}B = A \cdot 1 + \bar{A}B = A + \bar{A}B$$ $$= (A + \bar{A})(A + B) = 1 \cdot (A + B) = A + B$$Simplifier \(g = \overline{A\bar{B}} \cdot \overline{\bar{A}B}\).
$$g = (\bar{A} + B)(A + \bar{B})$$ $$= \bar{A}A + \bar{A}\bar{B} + BA + B\bar{B} = 0 + \bar{A}\bar{B} + AB + 0 = \bar{A}\bar{B} + AB$$C'est la fonction XNOR : \(g = \overline{A \oplus B}\).
Le tableau de Karnaugh est une grille représentant la table de vérité, où les cases voisines ne diffèrent que d'un seul bit (code Gray). Il est cyclique : les bords opposés sont adjacents.
Les groupes (implicants) de \(2^k\) cases à 1 adjacentes correspondent à des termes simplifiés. Plus le groupe est grand, moins il contient de variables.
| \(\bar{B}\ (B{=}0)\) | \(B\ (B{=}1)\) | |
|---|---|---|
| \(\bar{A}\ (A{=}0)\) | 0 | 1 |
| \(A\ (A{=}1)\) | 1 | 1 |
Groupe de 2 : \(\{(0,1),(1,1)\} \Rightarrow B\) | Groupe de 2 : \(\{(1,0),(1,1)\} \Rightarrow A\)
Résultat : \(f = A + B\)
On dispose A en ligne, B et C en colonnes en code Gray : 00, 01, 11, 10.
| A \ BC | 00 | 01 | 11 | 10 |
|---|---|---|---|---|
| \(A=0\) | 1 | 0 | 0 | 1 |
| \(A=1\) | 1 | 1 | 1 | 1 |
Groupe de 4 (ligne bas + coins gauches/droits) : \(A\) | Groupe de 4 (colonne 00 + 10) : \(\bar{C}\)
Résultat : \(f = A + \bar{C}\)
Variables AB en lignes, CD en colonnes, chacun en code Gray.
| AB \ CD | 00 | 01 | 11 | 10 |
|---|---|---|---|---|
| 00 | 1 | 1 | 0 | 1 |
| 01 | 0 | 1 | 0 | 0 |
| 11 | 0 | 1 | 0 | 0 |
| 10 | 1 | 1 | 0 | 1 |
Groupe de 4 (colonne 01 entière) : \(\bar{C}D\) | Groupe de 4 (coins) : \(\bar{B}\bar{D}\)
Résultat : \(f = \bar{C}D + \bar{B}\bar{D}\)
Une porte logique est un composant électronique réalisant une fonction booléenne élémentaire sur un ou plusieurs bits. Elle est caractérisée par son symbole normalisé (norme CEI 60617 ou norme américaine MIL) et sa table de vérité.
\(S = A \cdot B\)
| A | B | S |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
\(S = A + B\)
| A | B | S |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
\(S = \bar{A}\)
| A | S |
|---|---|
| 0 | 1 |
| 1 | 0 |
\(S = \overline{A \cdot B}\)
| A | B | S |
|---|---|---|
| 0 | 0 | 1 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
\(S = \overline{A + B}\)
| A | B | S |
|---|---|---|
| 0 | 0 | 1 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 0 |
\(S = A \oplus B = A\bar{B} + \bar{A}B\)
| A | B | S |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
Les portes NAND et NOR sont dites universelles : toute fonction logique peut être réalisée en n'utilisant que l'un ou l'autre type.
| Fonction | Avec NAND | Avec NOR |
|---|---|---|
| NOT \(A\) | \(\overline{A \cdot A}\) | \(\overline{A + A}\) |
| AND \(AB\) | \(\overline{\overline{A \cdot B}}\) | \(\overline{\overline{A+A}+\overline{B+B}}\) |
| OR \(A+B\) | \(\overline{\bar{A} \cdot \bar{B}}\) | \(\overline{\overline{A+B}}\) |
Un circuit combinatoire est un circuit logique dont les sorties dépendent uniquement des valeurs présentes des entrées, sans mémoire d'états passés. Il est entièrement caractérisé par sa table de vérité.
Additionne deux bits \(A\) et \(B\). Sorties : somme \(S\) et retenue sortante \(C_{out}\).
$$S = A \oplus B \qquad C_{out} = A \cdot B$$| A | B | S | \(C_{out}\) |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | 1 |
Réalisation : 1 porte XOR + 1 porte AND.
Additionne trois bits : données \(A\), \(B\) et retenue entrante \(C_{in}\).
$$S = A \oplus B \oplus C_{in}$$ $$C_{out} = AB + (A \oplus B) \cdot C_{in}$$On peut cascader des additionneurs complets pour additionner des mots de \(n\) bits (additionneur ripple-carry).
Compare deux bits \(A\) et \(B\). Trois sorties :
$$S_{=}\ :\ A=B \quad\Rightarrow\quad S_{=} = \overline{A \oplus B} = AB + \bar{A}\bar{B}$$ $$S_{>}\ :\ A>B \quad\Rightarrow\quad S_{>} = A\bar{B}$$ $$S_{<}\ :\ A<B \quad\Rightarrow\quad S_{<} = \bar{A}B$$Un multiplexeur \(2^n\)-vers-1 (MUX) aiguille une des \(2^n\) entrées de données vers la sortie unique, selon le code présent sur les \(n\) entrées de sélection.
MUX 2-vers-1 : \(S = \overline{SEL} \cdot I_0 + SEL \cdot I_1\)
MUX 4-vers-1 : \(S = \bar{S}_1\bar{S}_0 I_0 + \bar{S}_1 S_0 I_1 + S_1\bar{S}_0 I_2 + S_1 S_0 I_3\)
Applications : aiguillage de bus, conversion parallèle-série, réalisation de fonctions logiques quelconques.
Un décodeur \(n\)-vers-\(2^n\) active exactement une sortie parmi \(2^n\) selon le code binaire de \(n\) bits en entrée.
Décodeur 2-vers-4 (toutes sorties actives à 1) :
$$Y_0 = \bar{A}\bar{B},\quad Y_1 = \bar{A}B,\quad Y_2 = A\bar{B},\quad Y_3 = AB$$Applications : sélection de mémoire, afficheur 7 segments, démultiplexage.
Un circuit séquentiel possède une mémoire : ses sorties dépendent des entrées actuelles et de l'état passé. La bascule (flip-flop) est l'élément de mémorisation 1 bit fondamental.
On distingue :
Entrées : \(S\) (Set = forcer \(Q=1\)), \(R\) (Reset = forcer \(Q=0\)). Sorties : \(Q\) et \(\bar{Q}\).
| S | R | \(Q_{n+1}\) | Commentaire |
|---|---|---|---|
| 0 | 0 | \(Q_n\) | Mémorisation (pas de changement) |
| 0 | 1 | 0 | Reset : mise à 0 |
| 1 | 0 | 1 | Set : mise à 1 |
| 1 | 1 | Interdit | Contradiction : Q = Q_bar = 1 |
Amélioration de la RS : l'état \(J=K=1\) est redéfini comme basculation (toggle) au lieu d'être interdit.
| J | K | \(Q_{n+1}\) | Commentaire |
|---|---|---|---|
| 0 | 0 | \(Q_n\) | Mémorisation |
| 0 | 1 | 0 | Reset |
| 1 | 0 | 1 | Set |
| 1 | 1 | \(\bar{Q}_n\) | Basculement (toggle) |
Équation caractéristique : \(Q_{n+1} = J\bar{Q}_n + \bar{K}Q_n\)
Une seule entrée de donnée \(D\). Sur le front actif de l'horloge (généralement montant ↑), la sortie copie l'entrée.
$$Q_{n+1} = D$$| D | CLK | \(Q_{n+1}\) |
|---|---|---|
| 0 | ↑ | 0 |
| 1 | ↑ | 1 |
| X | bas ou haut (pas de front) | \(Q_n\) (mémorisation) |
Applications : registres à décalage, mémoires vives SRAM, verrous.
Si \(T=1\), la sortie bascule à chaque front d'horloge actif. Si \(T=0\), mémorisation.
$$Q_{n+1} = T \oplus Q_n$$| T | \(Q_n\) | \(Q_{n+1}\) |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
Applications : compteurs binaires, diviseurs de fréquence (une bascule T avec \(T=1\) divise la fréquence par 2).
| Bascule | Entrées | Équation | Particularité |
|---|---|---|---|
| RS | S, R | Set ou Reset de Q | S=R=1 interdit |
| JK | J, K | \(Q_{n+1}=J\bar{Q}+\bar{K}Q\) | J=K=1 → toggle |
| D | D | \(Q_{n+1}=D\) | Transparente/synchrone |
| T | T | \(Q_{n+1}=T\oplus Q\) | Diviseur de fréquence |