Logique séquentielle
Définition
Un système logique est qualifié de séquentiel lorsque au moins une de ses sorties dépend des entrées, mais aussi des états antérieurs du système.
Un système combinatoire est un opérateur logique, qui à un vecteur d’entrée \(\vec E\), associe un et un seul vecteur de sortie \(\vec S=f(\vec E)\).
Pour un système séquentiel, à un état du vecteur d’entrée \(\vec E\), peuvent correspondre plusieurs états du vecteur de sortie . Il faut tenir compte d’un autre vecteur \(\vec X\) composé de variables d’état du système : \(\vec S=g(\vec E+\vec X)\).
Exemple : commande d’une lampe par plusieurs interrupteurs :
-
- logique combinatoire : un circuit électrique « va et vient » à 2 interrupteurs inverseurs bistables :
-
- logique séquentielle : des interrupteurs monostables et un télérupteur qui change l’état de la sortie
Ceci introduit la notion de mémoire du système : le système tient compte de ses états antérieurs.
Mémoire en technologie électrique
Le relai électrique
Fonctionnement : lorsque la bobine est parcourue par un courant électrique, elle crée un flux magnétique, qui attire la palette. Le contact de puissance se ferme.
Schéma normalisé :
L’équation logique est combinatoire : \(R = r\)
Ce contacteur est dit monostable car son unique état stable est ouvert : dès que la bobine n’est plus alimentée, l’interrupteur s’ouvre.
Mémoire à déclenchement prioritaire
On peut réaliser une mémoire à l’aide d’un relais : par auto-alimentation de la bobine, c’est à dire en alimentant la bobine \(R\) à travers l’interrupteur \(r\), on réalise un contacteur bistable :
L’équation logique est : \(L=\bar b \cdot \left(a+r\right)\)
Mémoire à enclenchement prioritaire
Mémoire en technologie électronique
Il existe différents circuits logiques élémentaires, appelés verrous et bascules, permettant de mémoriser des bits.
En électronique les opérateurs logiques (NON, ET, OU, …) sont réalisés par des circuits se comportant comme des portes logiques NON-OU ou NON-ET.
Chacun de ces deux opérateurs est qualifié de complet, car il permet à lui seul de réaliser tous les autres opérateurs logiques (voir activité sur Information binaire et Variables booléennes)
Exemple : la bascule D
L’entrée \(D\) correspond au bit à mémoriser. Pour effectuer la mémorisation, il faut activer le bit de validation \(V\). La sortie \(Q\) prend alors la valeur de \(D\) à l’instant de la validation, lorsque \(V\) passe de 0 à 1.
On parle de front montant de \(V\) :
Tant que \(V\) reste à 0, \(Q\) garde la valeur mémorisée, quelle que soit la valeur de \(D\).
On utilise principalement la bascule D (D pour Data) en donnant à \(V\) un signal d’horloge. Ainsi la valeur de l’entrée est recopiée sur la sortie à chaque front d’horloge.
Cette bascule permet d’assurer un état de sortie stable entre deux fronts d’horloge, et ainsi d’ignorer toute valeur transitoire apparaissant sur son entrée au cours d’un cycle d’horloge.
Version interactive :
Les autres bascules : https://fr.wikipedia.org/wiki/Bascule_(circuit_logique)
Programmation séquentielle d’un système
Diagrammes états-transitions
Plusieurs langages graphiques existent. Ils sont basés sur les notions :
- d’états : définissent l’état du système et décrivent les éventuelles actions sur la PC
- de transitions : permettent de faire passer le système d’un état à un autre et comportent les conditions nécessaires pour cela.
Langages de programmation
Les mêmes notions peuvent également être codées sous la forme d’algorithmes dans les langages utilisés pour programmer les microcontrôleurs, comme C++, Python, …
Voir Types et Variables
Voir Les Structures Algorithmiques