Jacques BOUQUET
Professeur d’électronique à Arras
Pierre MAYÉ
Professeur agrégé de physique
Ingénieur en électronique
et électromécanique
Enseignant en BTS d’électronique
et d’électrotechnique à Arras
Électronique
numérique
en 26 fiches
© Dunod, Paris, 2010
ISBN 978-2-10-055548-2
ISSN 1778 4514
© Dunod – La photocopie non autorisée est un délit.
Table des matières
Fiche 1
Algèbre binaire
1
Fiche 2
Principes d’une minimisation
7
Fiche 3
Symboles graphiques normalisés
12
Fiche 4
Introduction aux circuits logiques programmables
17
Fiche 5
Circuits logiques programmables en logique combinatoire
24
Fiche 6
Description VHDL d’un circuit combinatoire
29
Fiche 7
Systèmes logiques séquentiels
36
Fiche 8
Description VHDL d’un circuit séquentiel
44
Fiche 9
Paramètres électriques des circuits logiques
48
Fiche 10
Architecture d’un microcontrôleur
54
Fiche 11
Mémoires
60
Fiche 12
Compteurs
66
Fiche 13
Liaison parallèle
73
Fiche 14
Liaison série
77
Fiche 15
Liaison I2C
84
Fiche 16
Algorithmes et algorigrammes
89
Fiche 17
Notions d’algorithmique
93
Fiche 18
Langage de programmation C
99
Fiche 19
Langage assembleur
105
Fiche 20
Développement de microcontrôleur avec MPLAB
114
Fiche 21
Numérisation des signaux
116
Fiche 22
Convertisseur analogique-numérique
122
Ta b l e d e s m a t i è r e s
III
IV
Fiche 23
Convertisseur numérique-analogique
128
Fiche 24
Filtres numériques
133
Fiche 25
Codage en bande de base
139
Fiche 26
Modulations numériques
147
Électronique numérique en 26 fiches
FICHE
Algèbre binaire
I
1
Définitions
Une variable binaire ou logique, couramment nommée bit, ne prend que deux états
notés 1 et 0, ce qui s’exprime par :
x = 0 si x =
/ 1 et x = 1 si x =
/ 0
Si on note la variable vraie et x (x barre) la variable complémentée, on a :
quand x = 0, alors x = 1 et quand x = 1, alors x = 0
II Fonctions logiques
•
Fonctions logiques de base (Fig. 1.1)
Elles suffisent à l’écriture et la réalisation de toute fonction logique d’un nombre
quelconque de variables.
E
ET
(AND)
Produit logique
A
OU inclusif
(OR)
Somme logique
A
Équation logique
1
S
&
S
B
B
≥ 1
S
Table de vérité
E
0
1
=
(S égale E barre,
ou E complémenté)
S
1
0
=
(S égale A et B)
=
A
0
0
1
1
B
0
1
0
1
S
0
0
0
1
= +
(S égale A ou B )
=
A
0
0
1
1
B
0
1
0
1
S
0
1
1
1
!
NON
(Inverter)
Complémentation
Symbole
!
© Dunod – La photocopie non autorisée est un délit.
Fonction
Figure 1.1 Fonctions logiques de base
FICHE 1 – Algèbre binaire
1
•
Autres fonctions logiques courantes (Fig. 1.2)
Fonction
Symbole
NON-ET
(NAND)
A
NON -OU
(NOR)
A
OUI
(buffer)
E
OU exclusif
(XOR)
A
&
Équation logique
S
B
≥ 1
S
1
S
= 1
S
B
B
IDENTITÉ
(OU exclusif
complémenté)
(XNOR)
A
= 1
S
B
Table de vérité
=
(S égale A et B,
barre, A et B,
complémenté)
A
0
0
1
1
B
0
1
0
1
S
1
1
1
0
= +
(S égale A ou B,
barre, A ou B,
complémenté)
A
0
0
1
1
B
0
1
0
1
S
1
0
0
0
E
0
1
=
(S égale E )
S
0
1
= ⊕
(S égale A ou
exclusif B )
A
0
0
1
1
B
0
1
0
1
S
0
1
1
0
= ⊕
(S égale A ou
exclusif
complémenté B )
ou
.
=
(S égale A
identique B )
A
0
0
1
1
B
0
1
0
1
S
1
0
0
1
Figure 1.2 Autres fonctions logiques courantes
III Propriétés des fonctions logiques
de base
•
Règles de priorité
Dans une équation logique la complémentation a la plus forte priorité, puis vient la
fonction ET, et la fonction OU. L’utilisation de parenthèses dans les équations
logiques permet de s’affranchir de ces priorités : ce sont les opérations à l’intérieur
des parenthèses qui deviennent prioritaires.
2
Électronique numérique en 26 fiches
1
•
Tableau des propriétés des fonctions logiques de base (Fig. 1.3)
Commutativité
Associativité
Distributivité
Idempotence
Élément neutre
Élément
absorbant
Complémentation
Involution
Fonction OU
a+b=b+ a
a + ( b + c ) = ( a + b) + c
a ( b + c) = a b + a c
a+ a= a
a+ 0= a
Fonction ET
a b=b a
a ( b c ) = ( a b) c
a + ( b c ) = ( a + b ) ( a + c)
a a= a
a 1=a
a+1= 1
a 0=0
a+ a= 1
a a=0
a =a
Figure 1.3 Propriétés des fonctions logiques de base
•
Règles de De Morgan
Première règle : Le complément d’un produit de variables est égal à la somme de
leurs compléments :
a·b =a+b
Deuxième règle : Le complément d’une somme de variables est égal au produit de
leurs compléments :
a+b =a·b
•
Propriétés induites
© Dunod – La photocopie non autorisée est un délit.
a + a · b = a + b car a + a · b = a · (a + b) = a · a + a · b = a · b = a + b
a+a·b =a
(a + b) · (a + c) = a + b · c
a·b+a·c =a·b+a·c+b·c
IV Définition d’une fonction logique
quelconque
•
Fonction logique quelconque complètement définie
Une fonction de n variables binaires est complètement définie si sa valeur est
connue pour chacune des 2n combinaisons possibles des variables. La table de vériFICHE 1 – Algèbre binaire
3
té d’une telle fonction comportera donc 2n lignes. Un exemple de table de vérité
d’une fonction F de trois variables a, b et c est donné ci-dessous (Fig. 1.4).
a
0
0
0
0
1
1
1
1
b
0
0
1
1
0
0
1
1
c
0
1
0
1
0
1
0
1
F
0
1
1
0
1
0
0
0
Figure 1.4 Table de vérité d’une fonction complètement définie
•
Fonction logique quelconque partiellement définie
Dans ce cas la valeur de la fonction n’est pas déterminée pour toutes les combinaisons des variables. Une valeur indéterminée est notée X ou Ø dans la table de
vérité. Pour les cas indéterminés, on peut imposer une valeur 0 ou 1 à cette fonction, dans le but de faciliter sa synthèse. Un exemple d’une telle fonction est donné
ci-après (Fig. 1.5).
g
0
0
0
0
1
1
1
1
h
0
0
1
1
0
0
1
1
i
0
1
0
1
0
1
0
1
J
0
1
1
X
X
0
X
X
Figure 1.5 Table de vérité d’une fonction partiellement définie
•
Fonctions ou termes produits, mintermes
Pour chacune des combinaisons des variables on définit une fonction égale au ET
entre les variables vraies ou complémentées. Pour une fonction de trois variables
a, b et c, il y a huit fonctions, ou termes produits, ce sont les mintermes :
P0 = a · b · c
P1 = a · b · c
4
Électronique numérique en 26 fiches
1
P2 = a · b · c
P3 = a · b · c
P4 = a · b · c
P5 = a · b · c
P6 = a · b · c
P7 = a · b · c
•
Fonctions ou termes sommes, maxtermes
De même, pour chacune des combinaisons des variables on définit une fonction
égale au OU entre les variables vraies ou complémentées. Pour une fonction de
trois variables a, b et c, il y a huit fonctions, ou termes sommes, ce sont les maxtermes :
S0 = a + b + c
S1 = a + b + c
S2 = a + b + c
S3 = a + b + c
S4 = a + b + c
S5 = a + b + c
© Dunod – La photocopie non autorisée est un délit.
S6 = a + b + c
S7 = a + b + c
•
Formes canoniques des fonctions logiques
Une fonction logique peut s’écrire sous forme de somme de produits de variables
vraies ou complémentées, ou sous forme de produit de sommes de variables vraies
ou complémentées.
On obtient la première forme canonique en réunissant par des fonctions OU tous
les termes produits, ou mintermes, pour lesquels la fonction vaut 1.
Ainsi, de la table de vérité (Fig. 1.4) on tire une équation logique donnant F :
F =a·b·c+a·b·c+a·b·c
La deuxième forme canonique s’obtient en réunissant par des fonctions ET tous les
termes sommes, ou maxtermes, pour lesquels la fonction vaut 0.
FICHE 1 – Algèbre binaire
5
Ainsi, de la table de vérité (Fig. 1.4) on tire une deuxième équation logique donnant
F:
F(a + b + c) · (a + b + c) · (a + b + c) · (a + b + c) · (a + b + c)
Ta b l e d e v é r i t é e t f o r m e s c a n o n i q u e s
1. Écrire la table de vérité d’une fonction logique F de trois variables a, b et c, telle
que cette fonction soit égale à 1 si un nombre pair ou nul de variables est au niveau 1.
2. Tirer de cette table de vérité les deux formes canoniques de cette fonction.
Solution
1. La table de vérité s’obtient immédiatement :
a
0
0
0
0
1
1
1
1
b
0
0
1
1
0
0
1
1
c
0
1
0
1
0
1
0
1
F
1
0
0
1
0
1
1
0
2. La première forme canonique est obtenue en réunissant par des fonctions OU les
mintermes pour lesquels F = 1 :
F =a·b·c+a·b·c+a·b·c+a·b·c
La deuxième forme canonique est obtenue en réunissant par des fonctions ET les maxtermes pour lesquels F = 0 :
F = (a + b + c) · (a + b + c) · (a + b + c) · (a + b + c)
6
Électronique numérique en 26 fiches
Principes
d’une minimisation
I
FICHE
2
Introduction
La minimisation consiste à simplifier l’expression d’une fonction logique dans le but
d’optimiser le nombre de composants, ou portes, nécessaires à sa réalisation.
L’expression obtenue est la forme minimale.
II Simplification analytique
© Dunod – La photocopie non autorisée est un délit.
Il convient d’abord de tirer de la table de vérité la forme canonique comportant le
moins de termes. Pour réaliser une simplification analytique on utilise les propriétés
des fonctions logiques (cf. fiche 1).
Présentons la méthode sur un exemple (Fig. 2.1).
a
0
0
0
0
1
1
1
1
b
0
0
1
1
0
0
1
1
c
0
1
0
1
0
1
0
1
S
0
0
0
1
0
1
1
1
Figure 2.1 Exemple de table de vérité
L’équation tirée de la table de vérité s’écrit :
S =a·b·c+a·b·c+a·b·c+a·b·c
Comme a · b · c = a · b · c + a · b · c + a · b · c , nous pouvons transformer l’expression de la fonction :
S = (a · b · c + a · b · c) + (a · b · c + a · b · c) + (a · b · c + a · b · c)
FICHE 2 – Principes d’une minimisation
7
Après regroupement des termes et factorisation, nous obtenons :
S = b · c · (a + a) + a · c · (b + b) + a · b · (c + c)
Or, a + a = 1, b + b = 1 et c + c = 1.
Nous en déduisons une forme minimale :
S =b·c+a·c+a·c
Cette méthode repose beaucoup sur l’intuition. Sa mise en œuvre devient difficile et
fastidieuse lorsque le nombre de variables est grand. On lui préfère alors la méthode
graphique qui utilise les tableaux de Karnaugh.
III Simplification au moyen
des tableaux de Karnaugh
•
Principe
Cette méthode de simplification consiste à mettre en évidence graphiquement les
groupements de termes produits qui ne diffèrent que par l’état d’une seule variable
d’entrée (termes adjacents).
•
Description des tableaux de Karnaugh
Un tableau de Karnaugh est une autre forme de la table de vérité. Il est organisé en
colonnes et lignes dont les intersections donnent une case qui représente un des
termes produits de la fonction. Pour une fonction de n variables, le tableau
comportera 2n cases. On écrit dans chaque case la valeur correspondante de la
fonction : 0 ou 1, et si cette valeur est indéterminée, ∅ ou X.
Les tableaux de Karnaugh sont bien adaptés pour la représentation de fonctions de
quatre variables au plus.
•
Construction des tableaux de Karnaugh
Lignes et colonnes sont repérées par une combinaison des variables, sous forme littérale et par valeurs. La construction du tableau de Karnaugh est telle que les lignes
et les colonnes successives sont repérées par des combinaisons adjacentes. Les
tableaux de Karnaugh couramment utilisés concernent des fonctions de deux
(Fig. 2.2), trois (Fig. 2.3), ou quatre variables (Fig. 2.4).
8
Électronique numérique en 26 fiches
2
b
F
a
0
1
0
1
Figure 2.2 Organisation du tableau de Karnaugh
pour une fonction F de deux variables a et b
bc
F
a
00
01
11
10
0
1
Figure 2.3 Organisation du tableau de Karnaugh
pour une fonction F de trois variables a, b et c
cd
F
00
01
11
10
00
ab
10
11
01
© Dunod – La photocopie non autorisée est un délit.
Figure 2.4 Organisation du tableau de Karnaugh
pour une fonction F de quatre variables a, b, c et d
•
Passage de la table de vérité au tableau de Karnaugh
Il suffit de reporter dans chaque case du tableau de Karnaugh la valeur de la variable
de sortie correspondant à chaque combinaison des variables d’entrée (Fig. 2.5).
a
0
0
0
0
1
1
1
b
0
0
1
1
0
0
1
c
0
1
0
1
0
1
0
F
0
1
0
1
1
1
0
1
1
1
0
bc
a
F
00
01
11
10
0
0
1
1
0
1
1
1
0
0
Figure 2.5 Transformation d’une table de vérité en tableau de Karnaugh
FICHE 2 – Principes d’une minimisation
9
•
Utilisation des tableaux de Karnaugh
L’équation est obtenue en procédant à des groupements de cases adjacentes. Les
règles à respecter sont :
– le nombre de cases groupées doit être égal à une puissance de 2 ;
– le nombre de cases entrant dans un groupement doit être le plus grand possible ;
– une case peut être incluse dans plusieurs groupements ;
– une case contenant un état indéterminé peut être incluse dans les groupements.
•
Exemple d’utilisation d’un tableau de Karnaugh
Les groupements mis en évidence (Fig. 2.6) donnent les deux termes produits a · b
et a · b. Une équation de F est donc :
F =a·b+a·b
bc
a
bc
F
00
01
11
10
0
0
1
1
0
1
1
1
0
0
a
F
00
01
11
10
0
0
1
1
0
1
1
1
0
0
Figure 2.6 Définition des groupements
Ta b l e a u d e K a r n a u g h d ’ u n e f o n c t i o n
de quatre variables
1. Écrire le tableau de Karnaugh d’une fonction R
de 4 variables w, x, y et z définie par la table de
vérité ci-contre.
2. En déduire une équation de R.
10
Électronique numérique en 26 fiches
w
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
x
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
y
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
z
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
R
1
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
2
Solution
1. On transpose la table de vérité dans un tableau de Karnaugh :
yz
wx
R
00
01
11
10
00
1
0
0
1
01
1
0
1
1
11
1
0
1
1
10
1
0
0
1
2. On fait apparaître deux groupements :
yz
wx
yz
R
00
01
11
10
R
00
01
11
10
00
1
0
0
1
00
1
0
0
1
01
1
0
1
1
01
1
0
1
1
11
1
0
1
1
11
1
0
1
1
10
1
0
0
1
10
1
0
0
1
wx
Premier groupement: x . y
Deuxième groupement : z
© Dunod – La photocopie non autorisée est un délit.
L’équation de la fonction est obtenue par la réunion des deux groupements :
R =z+x·y
FICHE 2 – Principes d’une minimisation
11
FICHE
3
Symboles graphiques
normalisés
La norme NF C 03-212 ou CEI 617-12-1991 définit la représentation graphique des
circuits logiques.
I
•
Formation des symboles
Symbole élémentaire
La représentation graphique d’un circuit logique est formée d’un cadre rectangulaire complété d’un symbole distinctif. Les entrées se trouvent à gauche et les sorties à droite (Fig. 3.1).
Symbole de l’opérateur
Entrées
Sorties
Cadre
Figure 3.1 Symbole élémentaire
•
Association de symboles
On peut associer plusieurs symboles en parallèle (Fig. 3.2) ou en cascade (Fig.
3.3).
Figure 3.2 Associations de symboles en parallèle
12
Électronique numérique en 26 fiches
3
Figure 3.3 Associations de symboles en cascade
•
Cadre des entrées communes
Des cadres peuvent être surmontés d’un bloc des entrées communes où arrivent des
signaux qui agissent sur chacun des opérateurs (Fig. 3.4).
Cadre des
entrées
communes
A
A
B
B
C
C
Figure 3.4 Cadre des entrées communes
•
Cadre des sorties communes
Si la sortie d’un opérateur est affectée par l’ensemble des autres sorties, elle apparaît dans le cadre des sorties communes placé en-dessous des opérateurs concernés
(Fig. 3.5).
X
© Dunod – La photocopie non autorisée est un délit.
A
B
Y
C
Z
A
X
B
Y
Z
Cadre des
sorties
communes
C
Figure 3.5 Cadre des sorties communes
•
Notation de dépendance
Les entrées et les sorties associées à un chiffre sont liées par une relation de dépendance aux entrées et aux sorties portant ce même chiffre. Le type de dépendance
est précisé par une lettre (Fig. 3.6).
FICHE 3 – Symboles graphiques normalisés
13
Lettre
Type de
dépendance
Lettre
Type de
dépendance
G
V
N
S
R
ET
OU
Négation
Mise à 1
Mise à 0
Z
A
C
EN
M
Interconnexion
Adresse
Commande
Validation
Mode
Figure 3.6 Types de dépendance
II Symboles distinctifs
•
Symboles distinctifs des opérateurs
Différents symboles sont placés dans les cadres pour définir les opérateurs (Fig.
3.7). Ils peuvent être associés, la fonction principale étant écrite en premier.
Symbole
Signification
1
OUI
L'opérateur NON utilise ce symbole complété
par le symbole de négation en sortie
ET
OU
OU exclusif
Seuil logique
m et seulement m
Opérateur ayant un courant de sortie maximal
plus élevé que les autres
Hystérésis
&
≥1
=1
≥m
=m
2K
2K + 1
Parité
Imparité
Monostable redéclenchable
Monostable
1
G
Astable
Figure 3.7 Symboles distinctifs des opérateurs
•
Symboles distinctifs des connexions
Les entrées, sorties et autres connexions peuvent être associées à différents symboles (Fig. 3.8).
14
Électronique numérique en 26 fiches
3
Signification
Symbole
Négation logique en entrée
Négation logique en sortie
Polarité logique en entrée
Polarité logique en sortie
Entrée dynamique
Entrée avec hystérésis
Entrée de validation (enable )
EN
Sortie à courant amplifié
Sortie à circuit ouvert de type L (collecteur ou
drain ouvert)
Sortie à circuit ouvert de type H
Sortie trois états
Entrée d’une bascule D
(même principe pour les autres bascules
avec R, S,J et K)
Entrée de comptage
D
+m
Entrée de décomptage
m
Entrée de retenue
CI
Sortie de retenue
CO
© Dunod – La photocopie non autorisée est un délit.
CT = m
Entrée imposant un contenu (si m = 0, utiliser R)
Figure 3.8 Symboles distinctifs des connexions
L’indication directe de polarité logique consiste à donner directement la relation
entre l’état logique interne et le niveau logique externe à un accès d’opérateur
logique grâce à la présence ou à l’absence du symbole de polarité. Dans ce cas, le
symbole de négation logique ne doit pas être utilisé.
La présence de l’indicateur de polarité logique signifie que le niveau bas L de la
grandeur physique correspond à l’état logique 1. L’absence de cet indicateur signifie que le niveau haut H correspond à l’état 1.
•
Abréviations distinctives d’opérateurs
Les opérateurs sont désignés par des abréviations (issues de mots anglais) dont
nous donnons quelques exemples (Fig. 3.9).
FICHE 3 – Symboles graphiques normalisés
15
Abréviation
Signification en anglais
Traduction en français
ALU
CLK
CPU
CTR
CTRDIV
DMX
MEM
MUX
PLA
Arithmetic logic unit
Clock
Computer unit
Counter
Counter divider
Demultiplexer
Memory
Multiplexer
Programmable logic array
REG
UART
Register
Universal asynchronous
receiver-transmitt er
Unité arithméti que et logique
Horloge
Microcalculateur
Compteur
Compteur diviseur
Démultiplexeur
Mémoire
Multiplexeur
Réseau logique
programmable
Registre
Émetteur -récepteur
asynchrone universel
Figure 3.9 Quelques abréviations d’opérateurs
Lecture de symboles
Donner la signification des différents symboles ci-dessous (Fig. 3.10).
A
S
&
≥1
B
C
S
H
Q
1S
C1
&
R
D
1R
(a)
(b)
CTR3
H
0
CT
R
CT = 0
Q0
Q1
2
Q2
(c)
Figure 3.10 Exemples de symboles
Solution
Le symbole (a) est celui d’un circuit combinatoire qui correspond à l’équation logique
S = A · B + C · D.
Le symbole (b) est celui d’une bascule RS synchrone active sur les fronts montants de
l’horloge H. Le triangle à l’intérieur du symbole en face de H indique que cette entrée
est dynamique (active sur les fronts). En l’absence de symbole de polarité logique,
c’est le front montant qui est actif. Le numéro 1 sur les entrées 1S et 1R montre que
leur action est commandée (lettre C et numéro 1) par l’horloge.
Le symbole (c) est celui d’un compteur (CTR) à trois sorties en binaire naturel. Il possède une entrée de remise à zéro (CT = 0) qui force le contenu à 0 lorsque son état
logique est 1.
16
Électronique numérique en 26 fiches
Introduction
aux circuits logiques
programmables
I
•
FICHE
4
Présentation
Définition
Un circuit logique programmable, ou PLD (Programmable Logic Device) est un
composant logique dont la fonction est définie, puis fixée par l’utilisateur lors
d’une opération appelée programmation qui peut être définitive ou temporaire.
Ces composants existent sous diverses appellations commerciales qui recouvrent
des technologies différentes ou font référence à certains fabricants.
© Dunod – La photocopie non autorisée est un délit.
•
Structure de base des circuits logiques programmables
La structure d’un circuit logique programmable peut découler de la forme « somme
logique de produits logiques » que peut prendre une fonction logique. Elle se compose dans ce cas de quatre couches :
– la première reçoit en entrée des variables logiques et fournit en sortie ces mêmes
variables, vraies et complémentées ;
– la deuxième réalise les produits logiques qui apparaissent dans l’expression de la
fonction logique : c’est le réseau ou la matrice des ET d’entrée ;
– la troisième réalise la somme logique de ces produits logiques : c’est le réseau ou
la matrice des OU de sortie ;
– la quatrième couche constitue la structure de sortie. Sous sa forme la plus complète elle fournit la valeur vraie et complémentée de la fonction logique, permet
la logique trois états, et introduit une fonction mémorisation avec une bascule, de
type D en général.
Les variables issues de la structure de sortie sont ajoutées aux variables d’entrée de
la première couche, ce qui permet de réaliser des fonctions logiques combinatoires
qui comportent de nombreuses variables d’entrée, et des fonctions logiques
séquentielles.
FICHE 4 – Introduction aux circuits logiques programmables
Openmirrors.com
17
•
Convention de représentation
Les entrées des opérateurs sont organisées en bus. La représentation utilise habituellement une croix pour indiquer qu’une connexion entre une entrée d’opérateur
et une sortie d’un autre opérateur, ou une variable, est programmable. Un point
indique une connexion non programmable, permanente. La programmation consiste à valider ou non les connexions programmables, au moyen d’un appareil : le programmateur. Lorsqu’il ne doit pas avoir connexion d’une entrée à une variable,
l’entrée est portée au niveau logique neutre de l’opérateur.
Les schémas suivants (Fig. 4.1) représentent des opérateurs OU à quatre entrées.
Chacune des entrées est connectée à l’une des quatre variables a, b, c, d.
a b c d
a b
≥1
c d
Q1
≥1
Q2
Figure 4.1 Convention de représentation
II Différentes structures
•
Première structure : la mémoire à lecture seule (Fig. 4.2)
Dans cette structure le réseau des ET d’entrée est fixe et joue le rôle de décodeur
d’adresse, alors que le réseau des OU de sortie est programmable : c’est une
mémoire à lecture seule, programmable.
Les bits a et b forment les adresses, les bits S1, S2, S3 et S4 les données. CE est un
signal de validation des sorties.
Quand elle n’est pas programmée, cette mémoire satisfait les équations suivantes :
Q1 = a · b
Q2 = a · b
Q3 = a · b
Q4 = a · b
S1 = S2 = S3 = S4 = Q 1 + Q 2 + Q 3 + Q 4 , quand CE = 0
Les sorties S1, S2, S3 et S4 sont dans l’état haute impédance quand CE = 1.
18
Électronique numérique en 26 fiches
4
Selon la technologie, ce type de mémoire est programmable une seule fois, car non
effaçable (PROM en technologie bipolaire, programmation par destruction de
fusibles), ou reprogrammable car effaçable, soit par exposition à un rayonnement
ultraviolet (technologie MOS EPROM), soit électriquement (technologie MOS
EEPROM).
CE
1
1
a
b
1
≥1
1
≥1
1
≥1
&
&
&
© Dunod – La photocopie non autorisée est un délit.
EN
S1
EN
S2
EN
S3
EN
S4
≥1
&
Q1
Q2
Q3
Q4
Figure 4.2 Structure d’une mémoire à lecture seule
•
Deuxième structure : le PAL (Programmable Array Logic) (Fig. 4.3)
Le réseau des ET d’entrée est programmable, le réseau des OU de sortie est fixe.
L’équation des variables de sortie S1, S2, S3 et S4 a la forme d’une somme logique
de produits logiques, ces produits pouvant être choisis par programmation.
Quand il n’est pas programmé, ce PAL satisfait les équations suivantes :
FICHE 4 – Introduction aux circuits logiques programmables
Openmirrors.com
19
Q1 = Q2 = Q3 = Q4 = a · b · a · b
S1 = Q 1 + Q 2
S2 = Q 2 + Q 3
S3 = Q 3 + Q 4
S4 = Q 1 + Q 4
≥1
1
a
b
1
≥1
1
≥1
1
≥1
&
&
&
&
S1
S2
S3
S4
Q1
Q2
Q3
Q4
Figure 4.3 Structure d’un PAL
•
Troisième structure : le PLA (Programmable Logic Array) (Fig. 4.4)
Le réseau des ET d’entrée et le réseau des OU de sortie sont programmables.
Quand il n’est pas programmé, ce PLA satisfait les équations suivantes :
Q1 = Q2 = Q3 = Q4 = a · b · a · b
S1 = S2 = S3 = S4 = Q 1 + Q 2 + Q 3 + Q 4
20
Électronique numérique en 26 fiches
4
≥1
1
a
b
≥1
1
1
≥1
1
≥1
&
&
&
&
S1
S2
S3
S4
Q1
Q2
Q3
Q4
Figure 4.4 Structure d’un PLA
© Dunod – La photocopie non autorisée est un délit.
•
Structure de la cellule de sortie programmable (OLMC) d’un PAL (Fig. 4.5)
La cellule de sortie est configurable par l’utilisateur. Les possibilités sont :
– la sortie reproduit celle de l’opérateur OU ;
– la sortie est complémentaire de l’opérateur OU ;
– la sortie est celle de l’opérateur OU, mémorisée par une bascule D ;
– la sortie est complémentaire de l’opérateur OU, mémorisée par une bascule D ;
– la sortie est en haute impédance, la broche correspondante peut être utilisée en
entrée, qui s’intègre dans le réseau d’entrée.
La cellule de sortie est configurable par l’utilisateur. Les possibilités sont :
– la sortie reproduit celle de l’opérateur OU ;
– la sortie est complémentaire de l’opérateur OU ;
– la sortie est celle de l’opérateur OU, mémorisée par une bascule D ;
– la sortie est complémentaire de l’opérateur OU, mémorisée par une bascule D ;
– la sortie est en haute impédance, la broche correspondante peut être utilisée en
entrée, qui s’intègre dans le réseau d’entrée.
FICHE 4 – Introduction aux circuits logiques programmables
Openmirrors.com
21
EN
f0
0
G
f1
1
0
3
0
1
EN
1
Broche
entrée/
sortie
2
Data in
1D
Horloge
C1
3
G1
0
Data
out
1
Figure 4.5 Structure de la cellule de sortie programmable (OLMC)
Choix d’un circuit logique programmable
On souhaite utiliser un circuit logique programmable pour réaliser un circuit séquentiel possédant douze entrées et cinq sorties et un circuit combinatoire ayant trois
entrées et une sortie.
On dispose des trois circuits suivants :
– PAL 16R8,
– GAL 16V8,
– GAL 22V10.
Rechercher et consulter sur Internet les notices de ces trois composants pour
répondre aux questions suivantes.
1. Quel circuit peut convenir pour l’application envisagée ? Justifier.
2. Quels sont les avantages des GAL par rapport aux PAL ?
3. Que signifient les chiffres et les lettres qui forment la dénomination de ces trois
circuits ?
22
Électronique numérique en 26 fiches
4
Solution
© Dunod – La photocopie non autorisée est un délit.
1. Le PAL 16R8 ne convient pas car il n’a pas de sorties combinatoires. Le GAL 16V8
ne peut pas non plus être utilisé ici car il ne dispose que de huit entrées et de huit
entrées-sorties, ce qui est insuffisant pour l’application envisagée qui comporte un
total de quinze entrées et six sorties.
Le GAL 22V10 convient car il dispose de douze entrées et de dix entrées-sorties, ce
qui suffit pour notre cas.
2. Les PAL ne peuvent être programmés qu’une seule fois alors que les GAL sont
reprogrammables autant que l’on veut. De plus, la consommation des GAL est plus
faible.
3. Les deux premiers chiffres indiquent le nombre total de broches d’entrée ou d’entrée-sortie.
La lettre précise le type de sortie : R (registred) correspond à des sorties séquentielles
et V (versatile) à des sorties universelles, c’est-à-dire soit combinatoires, soit séquentielles.
Les deux derniers chiffres donnent le nombre de broches configurables en sorties.
Par exemple, le GAL 22V10 comporte 22 broches d’entrée ou d’entrée-sortie et 10
broches configurables en sorties, ce qui donne 22 – 10 = 12 entrées pures.
FICHE 4 – Introduction aux circuits logiques programmables
Openmirrors.com
23
FICHE
I
5
Circuits logiques
programmables
en logique combinatoire
Introduction
Trois types de circuits permettent de coder des fonctions combinatoires :
– les multiplexeurs,
– les mémoires,
– les réseaux logiques programmables.
II Codage par multiplexeur
Un multiplexeur est un circuit qui possède n entrées d’adresse, 2n entrées d’information, ou de donnée, et une sortie. Un multiplexeur à deux entrées d’adresse et donc
quatre entrées de donnée (Fig. 5.1) est décrit par l’équation logique suivante :
S = A 1 · A 0 · I0 + A 1 · A 0 · I1 + A 1 · A 0 · I2 + A 1 · A 0 · I3
où les Ai sont les adresses, les I j sont les données et S est la sortie.
A0
0
A1
1
I0
0
I1
1
I2
2
I3
3
G
0
3
MUX
S
Figure 5.1 Multiplexeur
24
Électronique numérique en 26 fiches
5
Les niveaux logiques appliqués sur les entrées I0 , I1 , I2 et I3 détermineront la fonction
logique S réalisée entre les variables A0 et A1 . Il y a 16 fonctions réalisables (Fig. 5.2)
3
2
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
Fonction S
0
1
0
1
0
1
1
0
0
1
0
+
1
0
1+
0
+
1
+
0
1
.
0
0
1
1
=
0
1
0
=
0
1
+
0
1
1
1
+
+
1
0
0
Figure 5.2 Fonctions réalisables
© Dunod – La photocopie non autorisée est un délit.
III Codage par mémoire
Une mémoire (Fig. 5.3) est équivalente à une table de correspondance : à un mot
d’adresse en entrée on fait correspondre un mot de donnée en sortie. On peut donc
mémoriser des tables de vérité et réaliser ainsi des fonctions logiques quelconques.
Les bits du mot d’adresse seront assimilés aux variables d’entrée d’une fonction (ou
circuit) logique et chacun des bits du mot de donnée donnera la valeur correspondante de la variable de sortie d’une fonction (ou circuit) logique (Fig. 5.4).
A0
MEM
0
A1
1
A2
2
0
A
3
A
S
Figure 5.3 Mémoire
FICHE 5 – Circuits logiques programmables en logique combinatoire
Openmirrors.com
25
=
2
1
2
1
0
S
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
0
0
0
+
2
1
0
+
2
1
0
Figure 5.4 Table de vérité
IV Codage par réseau logique
Il est basé sur la forme canonique « somme logique de produits logiques ». Un réseau
logique réalise des produits logiques au moyen d’un réseau d’interconnexion programmable. Ces produits logiques constituent les entrées d’un opérateur OU qui exécute une somme logique. (Fig. 5.5)
≥1
1
I0
S
1
1
I1
1
&
&
Figure 5.5 Réseau logique
L’équation logique d’un réseau à deux entrées I0 , I1 et une sortie S est, lorsqu’il n’est
pas encore programmé :
S = I0 · I0 · I1 · I1 + I0 · I0 · I1 · I1
26
Électronique numérique en 26 fiches
5
La programmation consiste à éliminer des connexions dans le réseau d’interconnexion
de manière à réaliser la fonction souhaitée.
Par exemple, en supprimant la connexion de I0 et de I1 du premier terme, et en outre
la connexion de I0 et de I1 du deuxième terme, on obtient la fonction OU exclusif :
S = I0 · I1 + I0 · I1 = I0 ⊕ I1
≥
S
I0
I1
© Dunod – La photocopie non autorisée est un délit.
Figure 5.6 Élimination des connexions
Réseau logique
Indiquer la programmation à effectuer sur un réseau logique à trois entrées A, B, C
et deux sorties S1 et S2 pour obtenir l’équation logique :
S1 = A · B · C + A · B · C + A · B · C
Pour simplifier le schéma, les inverseurs permettant de passer de A, B, C à A, B , C
ne seront pas représentés.
Solution
On élimine les connexions nécessaires pour d’obtenir la fonction désirée (Fig. 5.7).
FICHE 5 – Circuits logiques programmables en logique combinatoire
Openmirrors.com
27
A A B
S1
≥1
S2
C C
&
&
&
&
Figure 5.7 Réseau logique
28
≥1
Électronique numérique en 26 fiches
Description VHDL
d’un circuit
combinatoire
I
FICHE
6
Présentation
Le langage de description VHDL (Very hight speed integrated circuit Hardware
Description Language) est un langage de description du comportement d’un circuit
logique. C’est un langage de haut niveau : il fait abstraction de l’objet pour lequel il
est utilisé. Le langage VHDL est standardisé depuis 1987 par la norme IEEE1076 de
l’Institute of Electrical and Electronics Engineers.
Le langage VHDL est utilisé en particulier pour développer les circuits logiques programmables. Un outil de développement permet la programmation d’un circuit
logique programmable à partir d’un fichier VHDL.
© Dunod – La photocopie non autorisée est un délit.
II Structure d’une description VHDL
La description VHDL d’un circuit combinatoire est composée de deux parties :
– l’entité (entity) qui permet de définir les entrées et les sorties du composant, leurs
noms et leurs types ;
– l’architecture (architecture) qui permet de définir le comportement du circuit.
Prenons l’exemple le plus simple qui soit : la description d’un inverseur :
library ieee;
use ieee.std_logic_1164.all;
entity INVERSEUR is
port (
E: in std_logic; -- entree
S: out std_logic ); -- sortie
end INVERSEUR;
architecture ARCH_INVERSEUR of INVERSEUR is
begin
S <= not E;
end ARCH_INVERSEUR;
FICHE 6 – Description VHDL d’un circuit combinatoire
Openmirrors.com
29
La description commence par la déclaration des bibliothèques : le mot library
indique l’utilisation d’une bibliothèque et le mot use permet l’accès aux fonctions
qu’elle contient.
La définition de l’entité est annoncée par le mot entity. L’utilisateur donne un nom à
l’entité : nous avons choisi ici INVERSEUR. Le mot port permet de définir le nom,
le mode et le type des signaux des entrées et des sorties.
À côté des définitions de l’entrée et de la sortie, nous avons placé un commentaire,
annoncé par un double tiret (- -).
Les quatre modes possibles sont :
– in : entrée ;
– out : sortie ;
– inout : entrée-sortie ;
– buffer : sortie servant d’entrée interne.
Parmi les nombreux types possibles, citons :
– bit : signal binaire (0 ou 1) ;
– bit_vector : bus ;
– std_logic : variable logique standard qui, en dehors des valeurs 0 et 1, peut
prendre un état haute impédance (Z) et un état indéterminé (-) ;
– std_logic_vector : le bus correspondant.
L’utilisation de ces deux derniers types, présents dans la bibliothèque standard IEEE
doit être signalée au début par :
library ieee;
use ieee.std_logic_1164.all;
Quand la description VHDL est destinée à l’implantation dans un circuit logique programmable, un logiciel place les différents blocs qui correspondent à la structure.
L’affectation des broches d’entrée et de sortie peut être automatique ou peut se faire
manuellement. Dans ce cas, les numéros sont précisés dans l’entité.
La définition de l’architecture est annoncée par le mot architecture. Le symbole <=
correspond à une affectation inconditionnelle : la grandeur S prend la valeur de not E.
Le symbole not correspond à l’opérateur logique complément.
Les symboles des opérateurs logiques élémentaires sont assez naturels (Fig. 6.1).
Symbole
Opérateur
and
or
nand
nor
xor
Et
Ou
Non et
Non ou
Ou exclusif
Figure 6.1 Opérateurs logiques
30
Électronique numérique en 26 fiches
6
Remarque. Le langage VHDL ne fait pas de distinction entre majuscules et minuscules. Nous avons choisi d’écrire en minuscules les mots
du langage et en majuscules les noms attribués par l’utilisateur, mais c’est
un choix parmi d’autres.
Décodage d’adresse
Un système assez ancien utilise un décodeur d’adresse en logique câblée. Afin de le
moderniser, il est décidé d’intégrer dans un circuit logique programmable complexe
(CPLD) l’ensemble de la logique du système. Le développement du circuit est effectué en langage VHDL.
L’étude demandée porte uniquement sur les deux sorties DTACK LENT et VPA
situées sur le schéma décodage d’adresse (Fig. 6.2).
1. Compléter le bloc fonctionnel ci-dessous (Fig. 6.3) en faisant apparaître les
signaux d’entrée nécessaires pour obtenir les sorties.
VPA
AS
CPLD
DTACK_LENT
© Dunod – La photocopie non autorisée est un délit.
Figure 6.3 Bloc fonctionnel
2. Établir l’équation logique des sortie VPA et DTACK LENT.
3. Compléter le fichier VHDL et le schéma du composant (Fig. 6.4) permettant la
programmation et l’affectation des signaux aux différentes broches.
Fichier VHDL :
library IEEE;
use IEEE.std_logic_1164.all;
entity decodeur is port (
fc0,
.
.
.
:in std_logic;
rw, lds:in std_logic;
s1:out std_logic;
.
.
.
.
.
:out std_logic;
attribute pin_numbers of decodeur : entity is
“ fc0:2
fc1: . .
fc2: . .
as :9
a23 :
“ dtack_lent:42
vpa: . . “ &
.
.
“ &
FICHE 6 – Description VHDL d’un circuit combinatoire
Openmirrors.com
31
“ lds:20
rw:21
s1:24 “ ;
end decodeur;
architecture arch_decodeur of decodeur is
begin
vpa
.
.
.
.
.
.
.
.
dtack_lent .
.
.
.
.
.
.
s1 <= rw or lds;
end arch_decodeur;
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Figure 6.4 Schéma du CPLD
4. Quels sont les avantages et les inconvénients procurés par l’utilisation de circuits
logiques programmables ?
32
Électronique numérique en 26 fiches
6
Solution
1. Le bloc fonctionnel est complété par les entrées A23, FC0, FC1 et FC2 qui interviennent dans les expressions des sorties (Fig. 6.5).
VPA
AS
CPLD
A23
FC0
FC1
FC2
DTACK _LENT
Figure 6.5 Bloc fonctionnel complété
2. Les équations logiques des sorties se lisent directement sur le schéma du décodeur
d’adresse :
VPA = A23.AS.FC0.FC1.FC2
DTACK LENT = AS.A23 = AS + A23
© Dunod – La photocopie non autorisée est un délit.
3. Le fichier VHDL est complété par l’indication des entrées Fc1, Fc2 et AS et de la
sortie VPA , par l’attribution des broches manquantes et par la définition des expressions de VPA et de DTACK_LENT correspondant aux équations logiques :
library IEEE;
use IEEE.std_logic_1164.all;
entity decodeur is port (
fc0, fc1,fc2, as:in std_logic;
rw, lds:in std_logic;
s1:out std_logic;
vpa:out std_logic;
attribute pin_numbers of decodeur : entity is
“ fc0:2
fc1:3
fc2:4
as:9
a23:14 “&
“ dtack_lent:42 vpa:43 “&
“ lds:20
rw:21
s1:24 “;
end decodeur;
architecture arch_decodeur of decodeur is
begin
vpa <= (not a23) and not (as and fc0 and fc1 and fc2)
dtack_lent <= as or a23
s1 <= rw or lds;
end arch_decodeur;
FICHE 6 – Description VHDL d’un circuit combinatoire
Openmirrors.com
33
Remarquons que cet énoncé ne fait pas le même choix que celui que nous avons adopté dans l’exemple quant à l’utilisation des majuscules et des minuscules : nous avons
signalé que ce choix est arbitraire pour le langage VHDL.
Le schéma du composant est complété par l’entrée AS et la sortie DTACK LENT
(Fig. 6.6).
22
FC0
FC1
FC2
AS
2
3
4
5
6
8
9
14
A23
LDS
R/W
15
16
17
18
20
21
IO0
44
C
-
C
-
43
IO31
IO1
IO30
IO2
IO29
IO3
IO28
IO4
IO26
IO6
IO25
IO7
IO24
IO8
IO23
IO22
IO9
IO10
IO21
IO11
IO20
IO12
IO18
IO14
IO17
IO16
IO15
10
32
33
35
13
VPP
I0
42
41
40
38
37
36
VPA
DTACK_LENT
31
30
29
28
26
25
24
S1
11
I2
I3
SDO -IO19
ISDI -O27
I4-CLK1
I1-CLK0
G
N
-
1
G
N
-
12
G
N
-
23
G
N
-
IO5 -SCLK
IO13 -SMODE
27
39
7
19
34
Figure 6.6 Schéma du CPLD complété
4. Les avantages des circuits logiques programmables sont :
– l’intégration d’une quantité importante de cellules logiques programmables,
– la vitesse de traitement.
34
Électronique numérique en 26 fiches
© Dunod – La photocopie non autorisée est un délit.
6
Figure 6.2 Décodeur d’adresse
FICHE 6 – Description VHDL d’un circuit combinatoire
Openmirrors.com
35
FICHE
I
•
7
Systèmes logiques
séquentiels
Présentation
Définition
Dans un système logique séquentiel une notion de mémoire intervient. L’état actuel
du système dépend non seulement de l’état actuel des entrées, mais aussi de l’état
antérieur dans lequel se trouvait le système, état matérialisé par des variables
internes.
•
Système logique séquentiel asynchrone
Un système logique séquentiel est dit à fonctionnement asynchrone si une modification de ses entrées a une conséquence directe sur ses sorties, après un retard dû
au temps de propagation des opérateurs utilisés (Fig. 7.1).
Variables de
sortie
Variables
d’entrée
Logique
combinatoire
Variables
internes
Mémoire
Figure 7.1 Système logique séquentiel asynchrone
•
Système logique séquentiel synchrone
Dans le cas d’un système synchrone une modification des entrées n’est répercutée
sur les sorties qu’après une validation par un signal de synchronisation, le signal
d’horloge (Fig. 7.2).
36
Électronique numérique en 26 fiches
7
Horloge
Entrées
Bloc
combinatoire
État
futur
Mémoire
État actuel
Bloc
combinatoire
Sorties
Figure 7.2 Système logique séquentiel synchrone
•
Modes de commande du système
Les entrées du système peuvent être commandées soit par des niveaux logiques,
soit par des impulsions, c’est-à-dire le passage momentané d’un niveau à un autre.
Lors de la commande par niveaux, c’est la combinaison des niveaux logiques sur
les entrées qui détermine l’évolution du système : s’il y a n entrées, il y aura 2n possibilités. Lors de la commande par impulsion, comme il ne peut pas y avoir par
définition deux impulsions simultanées, il n’y a que n possibilités.
II Machines à états
•
Définition
Une machine à états (FSM pour Finite State Machine) est un système séquentiel
qui peut se trouver dans un nombre fini d’états.
© Dunod – La photocopie non autorisée est un délit.
•
Structure
L’architecture générale est celle d’un système séquentiel synchrone. La mémoire,
appelée registre d’état, contient l’état actuel du système. Elle est constituée de n
bascules synchrones. Le nombre maximal d’états possibles est 2n .
•
Machine de Moore
Dans une machine de Moore (Fig. 7.3), l’état des sorties est déterminé à partir de
l’état actuel de la machine, résultant de l’état actuel des entrées et de l’état antérieur de la machine. C’est le vecteur d’état, constitué de variables internes, et
mémorisé, qui permet de prendre en compte l’état antérieur de la machine.
FICHE 7 – Systèmes logiques séquentiels
Openmirrors.com
37
Entrées
Bloc
combinatoire
Bloc
combinatoire
Sorties
Vecteur
d’état
Mémoire
Figure 7.3 Machine de Moore
•
Machine de Mealy
Dans une machine de Mealy (Fig. 7.4), l’état des sorties est déterminé non seulement à partir de l’état actuel de la machine, matérialisé par le vecteur d’état, mais
aussi de l’état actuel des entrées.
Entrées
Bloc
combinatoire
Bloc
combinatoire
Sorties
Vecteur
d’état
Mémoire
Figure 7.4 Machine de Mealy
III Diagramme d’état
•
Notions de base
Un diagramme d’état est l’outil de description privilégié d’une machine à états. Il
utilise deux symboles graphiques (Fig. 7.5) :
– les états (contenus possibles du registre d’état) sont représentés par des cercles ;
– les transitions (possibilités de passage d’un état à l’autre) par des arcs orientés.
38
Électronique numérique en 26 fiches
7
A
Transition
État
Figure 7.5 États et transitions
Une transition peut être inconditionnelle, c’est-à-dire que si le système est dans
l’état source considéré, la transition se produit lors du front actif d’horloge suivant.
On peut donner comme exemple un système possédant deux états A et B et qui
change d’état à chaque front actif d’horloge (Fig. 7.6).
A
B
Figure 7.6 Transitions inconditionnelles
Le plus souvent, une transition est conditionnelle, c’est-à-dire que quand le système est dans l’état source, la transition se produit lors du front actif d’horloge suivant si une condition sur les entrées est vérifiée. Prenons un exemple (Fig. 7.7). À
partir d’un état A, une transition peut conduire à un état B ou une autre transition
peut conduire à un état C selon la valeur d’une entrée E.
E =0
B
© Dunod – La photocopie non autorisée est un délit.
A
C
E =1
Figure 7.7 Transitions conditionnelles
Il peut y avoir maintien d’un état pour certaines valeurs d’entrée. Dans ce cas, l’arc
orienté qui représente la transition se referme sur le même cercle (Fig. 7.8).
A
E =1
Figure 7.8 Maintien d’un état
FICHE 7 – Systèmes logiques séquentiels
Openmirrors.com
39
•
Cas des machines de Moore
Dans une machine de Moore, les sorties évoluent après l’activation de la transition.
Les valeurs des sorties sont indiquées à côté des cercles (Fig. 7.9).
A
B
S0 = 0
S1 = 0
E =0
S0 = 0
S1 = 1
Figure 7.9 Valeurs des sorties pour une machine de Moore
•
Cas d’une machine de Mealy
Dans une machine de Mealy, les sorties évoluent après l’évolution des entrées. Les
valeurs des sorties sont indiquées à côté des arcs orientés (Fig. 7.10).
A
B
E =0
S0 = 0
S1 = 1
Figure 7.10 Valeurs des sorties pour une machine de Mealy
Système de serrage automatique
L’exercice porte sur un système de serrage automatique de boulons. La fonction principale FP6 permet de réaliser une mesure relative de l’angle de rotation de l’axe de
serrage de la broche.
Les deux signaux A et B issus des deux capteurs angulaires placés sur l’axe de rotation de la broche de serrage contiennent deux informations : sens de rotation et évolution de l’angle de rotation.
L’information sens de rotation est contenue dans le décalage entre les deux signaux
A et B (Fig. 7.11).
L’évolution de l’angle de rotation est donnée par la succession des fronts en A et B
de sorte que l’apparition de chaque front corresponde à une rotation d’un degré de
l’axe de rotation dans le sens du serrage ou du desserrage (Fig. 7.12).
Au sein de la fonction secondaire FS6.2, il existe deux signaux caractéristiques nommés INC et DEC. Chaque impulsion sur l’un de ces signaux correspond respectivement à une incrémentation ou une décrémentation de la mesure de l’angle de serrage.
Les chronogrammes ci-dessous (Fig. 7.13) représentent l’allure de ces signaux en
fonctions des deux entrées NA et NB.
40
Électronique numérique en 26 fiches
7
A
A
t
t
B
B
t
t
Sens de serrage
Sens de desserrage
Figure 7.11 Information sens de rotation
A
t
B
© Dunod – La photocopie non autorisée est un délit.
t
+ 1°
+ 1°
+ 1°
- 1°
- 1°
- 1°
- 1°
Figure 7.12 Information évolution de l’angle de rotation
Le chronogramme noté « États » représente les différents états de la machine à états
qui permet de générer les signaux INC et DEC.
De façon simpliste on peut dire qu’un état correspond à une action ou un événement.
Par exemple, faire évoluer une sortie correspond à une action et nécessite un changement d’état, c’est-à-dire, le passage d’un état avec sa propre action à un autre état.
De même, un changement significatif d’une (ou de plusieurs des) entrée(s) correspond à un événement et implique, pour être pris en compte, un changement d’état.
Le diagramme d’états ci-dessous (Fig. 7.14) est une autre représentation des chronogrammes précédents tenant compte de tous les cas possibles de changement de sens
de rotation de la broche de serrage.
FICHE 7 – Systèmes logiques séquentiels
Openmirrors.com
41
Changement de sens
CLK
NA
NB
INC
DEC
États
S1
S2
S3
S4
S5
S6
S7
S8
S1
S9
S10
Serrage
Figure 7.13 Chronogrammes
Figure 7.14 Diagramme d’états
42
Électronique numérique en 26 fiches
S11
S12
Desserrage
S13
S14
S15
S16
7
Le diagramme donné utilise la syntaxe du langage ABEL :
– ! pour le complément,
– & pour l’opérateur logique ET,
– ; pour la fin d’une équation.
1. Le diagramme d’états comporte deux cercles d’évolution du diagramme. Quelle
est la relation entre ces deux cercles et le sens de rotation de la broche ?
2. Dans ces conditions, à quoi correspondent les transitions entre les deux cercles ?
3. En fonction du nombre d’états du diagramme précédent, déterminez le nombre de
bascules nécessaires à sa synthèse (transformation du diagramme d’états en un
schéma structurel).
Solution
© Dunod – La photocopie non autorisée est un délit.
1. Le cercle du centre de S1 à S8 correspond au sens de serrage tandis que le cercle
extérieur de S9 à S16 correspond au sens de desserrage.
2. Les transitions S1 et S16 entre les deux cercles correspondent aux différentes possibilités de changement de sens.
3. Un système possédant N états exige un nombre n de bascules tel que 2n > N . Pour
16 états, il faut donc au minimum 4 bascules.
FICHE 7 – Systèmes logiques séquentiels
Openmirrors.com
43
FICHE
I
8
Description VHDL
d’un circuit
séquentiel
Instructions du mode séquentiel
La structure de la description VHDL d’un système séquentiel est la même que pour un
circuit combinatoire : l’entité puis l’architecture. La différence essentielle est que les
descriptions des systèmes séquentiels utilisent des processus.
•
Définition d’un processus
Un processus (process) est une suite d’instructions exécutées séquentiellement,
c’est-à-dire les unes à la suite des autres. L’exécution d’un processus est déclenchée par un changement d’état sur une variable dont le nom est défini dans la liste
de sensibilité lors de la déclaration du processus. L’affectation des sorties se fait à
la fin du processus.
•
Structures utilisées dans un processus
Un processus utilise principalement :
– l’assignation conditionnelle :
if (condition) then (instruction)
else (instruction)
end if;
– l’assignation sélective :
case (variable) is
when “00” => (instruction)
when “01” => (instruction)
when others => (instruction)
end case;
44
Électronique numérique en 26 fiches
8
II Exemples de descriptions VHDL
de circuits séquentiels
•
Compteur 4 bits
Un premier exemple est la description VHDL d’un compteur 4 bits :
© Dunod – La photocopie non autorisée est un délit.
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
use ieee.std_logic_unsigned.all;
entity COMPT_4 is
port (
CLOCK : in std_logic;
Q : out std_logic_vector(3 downto 0));
end COMPT_4;
architecture ARCH_COMPT_4 of COMPT_4 is
signal Q_INTERNE : std_logic_vector(3 downto 0));
begin
process (CLOCK)
begin
if (CLOCK =’1’ and CLOCK’event) then
Q_INTERNE <= Q_INTERNE + 1;
end if;
end process;
Q <= Q_BUS_INTERNE;
end ARCH_COMPT_4;
Les bibliothèques définies permettent de disposer des fonctions de conversion de
types qui sont nécessaires ici car l’incrémentation du compteur se fait en ajoutant
1 à la valeur décimale entière associée à la sortie Q qui est en binaire.
Pour incrémenter Q, on définit un signal interne Q_INTERNE car ce signal est utilisé à la fois comme entrée et comme sortie pour l’incrémentation.
Le déclenchement du processus se fait sur un changement d’état de l’horloge
(CLOCK) qui est la seule variable définie dans la liste de sensibilité.
L’incrémentation du signal interne se produit lors des fronts montants du signal
CLOCK. À la fin, le signal interne est affecté à la sortie Q.
•
Bascule T
Un second exemple est la description VHDL d’une bascule T :
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
FICHE 8 – Description VHDL d’un circuit séquentiel
Openmirrors.com
45
use ieee.std_logic_unsigned.all;
entity BASCULE_T is
port (
D,CLK : in std_logic;
S : out std_logic);
end BASCULE_T;
architecture ARCH_BASCULE_T of BASCULE_T is
signal Q_INTERNE : std_logic;
begin
process (CLK)
begin
if (CLK’event and CLK =’1’) then
if (D =’1’) then
Q_INTERNE <= not (Q_INTERNE);
end if;
end if;
end process;
Q <= Q_INTERNE;
end ARCH_BASCULE_T;
On retrouve les mêmes principes que dans l’exemple précédent avec, en particulier, l’utilisation d’une variable interne.
Bascule D
On considère la description VHDL d’une bascule D :
library ieee;
use ieee.std_logic_1164.all;
entity BASCULE_D is
port (
D, CLK, CLR:in std_logic;
Q, QBAR : out std_logic);
end BASCULE_D;
architecture ARCH_BASCULE_D of BASCULE_D is
signal Q_INTERNE :std_logic;
begin
Q <= Q_INTERNE;
QBAR <= not Q_INTERNE;
process (CLK, CLR)
begin
if (CLR = ‘1’) then
Q_INTERNE <= ‘0’;
elsif (CLK’event and CLK = ‘1’) then
Q_INTERNE <= D;
end if;
46
Électronique numérique en 26 fiches
8
end process;
end ARCH_BASCULE_D;
1. Quels sont les signaux d’entrée et de sortie ?
2. De quel type sont ces signaux ?
3. Quelle est la liste de sensibilité du processus ?
4. Quel est le front actif de l’horloge ?
5. Quel est le rôle de l’entrée CLR ? À quel niveau est-elle active ?
6. Donner le symbole normalisé de cette bascule.
Solution
1. Les signaux d’entrée sont D, CLK et CLR et les signaux de sortie Q et QBAR.
2. Ces signaux sont du type std_logic : variable logique standard qui, en dehors des
valeurs 0 et 1, peut prendre un état haute impédance (Z) et un état indéterminé (–).
3. La liste de sensibilité est formée de CLR et CLK.
4. L’horloge est active sur le front montant :
elsif (CLK’event and CLK = ‘1’) then
Q_INTERNE <= D;
5. CLR est une entrée de mise à zéro active au niveau haut :
if (CLR = ‘1’) then
Q_INTERNE <= ‘0’;
6. Le symbole normalisé de la bascule est donné ci-dessous (Fig. 8.1).
Q
© Dunod – La photocopie non autorisée est un délit.
D
CLK
CLR
Figure 8.1 Symbole normalisé de la bascule D
FICHE 8 – Description VHDL d’un circuit séquentiel
Openmirrors.com
47
FICHE
I
•
9
Paramètres
électriques
des circuits logiques
Paramètres statiques
Tension d’alimentation
Un circuit logique a besoin d’une alimentation continue pour lui fournir l’énergie
nécessaire à son fonctionnement. La tension d’alimentation est habituellement
appelée VCC pour un circuit à base de transistors bipolaires et VD D pour un circuit
à base de transistors MOS.
Selon les cas, la tension d’alimentation autorisée pour un circuit logique est soit
une valeur donnée, avec une certaine tolérance (par exemple VCC = 5 V à 5 % près),
soit un intervalle plus large (par exemple 3 V ≤ VD D ≤ 18 V).
L’alimentation doit en général être régulée. Des condensateurs de découplages sont
souvent nécessaires pour éviter les variations de tension d’alimentation lors des
pics de courant qui se produisent lors des commutations. Leur nécessité, leur
nombre et leur emplacement sont spécifiés dans les notices techniques des composants. Pour être efficace, un condensateur de découplage doit être implanté au plus
près de la borne d’alimentation d’un circuit intégré.
•
Niveaux de tension
La tension de sortie VO d’un circuit logique dépend de l’état logique de la sortie,
mais aussi des conditions de fonctionnement (tension d’alimentation, courant débité, etc.). Le constructeur garantit une plage de valeurs pour les tensions de sortie à
l’état bas VO L et à l’état haut VO H , avec une tension d’alimentation VCC fixée et
des courants de sortie ne dépassant pas une valeur spécifiée :
– 0 ≤ VO L ≤ VO Lmax si la sortie est à l’état bas ;
– VO H min ≤ VO H ≤ VCC si la sortie est à l’état haut.
Une tension de sortie comprise entre VO Lmax et VO H min ne se rencontre donc
jamais en fonctionnement normal. Si tel était le cas, cela signifierait que le circuit
est défectueux ou que les intensités des courants dépassent les limites autorisées.
48
Électronique numérique en 26 fiches
9
La tension VI appliquée à l’entrée d’un circuit logique est interprétée comme correspondant un état bas ou un état haut selon que sa valeur se trouve dans l’une ou
l’autre des plages spécifiées par le constructeur :
– 0 ≤ VI L ≤ VI Lmax correspond à un état bas ;
– VI H min ≤ VI H ≤ VCC correspond à un état haut.
Pour que les informations issues d’une sortie de circuit logique soient comprises
par l’entrée d’un autre circuit logique, il faut :
VI Lmax ≥ VO Lmax
et
VI H min ≤ VO H min
Il faut assurer ces inégalités avec une marge de sécurité tenant de la présence éventuelle de parasites. Les écarts VI Lmax – VO Lmax et VO H min – VI H min sont appelés
marges de bruit à l’état bas et à l’état haut (Fig. 9.1).
Sortie
VCC
Entrée
État haut
État haut
VOH min
Marge de bruit
à l’état haut
VIHmin
État
indéterminé
Marge de bruit
à l’état bas
VOLmax
VILmax
État bas
État bas
0
© Dunod – La photocopie non autorisée est un délit.
Figure 9.1 Niveaux de tension et marges de bruit
•
Courants
Pour les différents courants, on adopte la convention de signe suivante :
– l’intensité d’un courant entrant dans une broche est positive ;
– l’intensité d’un courant sortant d’une broche est négative.
La valeur absolue de l’intensité I O du courant dans une sortie de circuit logique ne
doit pas dépasser un maximum pour que les niveaux de tension définis précédemment soient respectés. En général, cette valeur maximale n’est pas la même à l’état
haut et à l’état bas. On définit donc un courant de sortie à l’état bas I O L et un courant de sortie à l’état haut I O H . Les courants de sortie dépendent essentiellement de
la charge du circuit logique : les valeurs spécifiées ne sont que des limites à ne pas
dépasser.
F I C H E 9 – Pa ra m è t r e s é l e c t r i q u e s d e s c i r c u i t s l o g i q u e s
Openmirrors.com
49
Une entrée de circuit logique est parcourue par un certain courant I I dont la valeur
n’est pas la même à l’état haut et à l’état bas. On définit donc un courant d’entrée
à l’état bas I I L et un courant d’entrée à l’état haut I I H . Les courants d’entrée
dépendent essentiellement du circuit logique lui-même : les valeurs spécifiées sont
donc des indications sur le courant demandé par une entrée. Toutefois, ces courants
ne sont pas connus avec précision : il faut donc prendre le cas le plus défavorable,
c’est-à-dire celui qui correspond au courant dont l’intensité a la valeur absolue la
plus grande qui puisse être observée.
Pour qu’une sortie de circuit logique puisse commander l’entrée d’un autre circuit
logique, il faut que les sens des courants demandés par l’entrée correspondent au
sens des courants qui peuvent être fournis par la sortie, aussi bien à l’état bas qu’à
l’état haut, et que :
|I O L | ! |I I L |
•
et
|I O H | ! |I I H |
Sortie à collecteur ouvert ou à drain ouvert
Une sortie à collecteur ouvert comporte un transistor bipolaire fonctionnant en
commutation : l’état bas correspond au transistor saturé et l’état haut au transistor
bloqué. Une résistance de rappel (appelée aussi résistance de tirage) est indispensable pour fixer la tension à l’état haut (Fig. 9.2).
VCC
VCC
R
R
Figure 9.2 Sortie à collecteur ouvert
Quand la sortie est à l’état bas, un courant de valeur maximale I O L peut traverser
le transistor. Par contre, à l’état haut, le transistor est bloqué et ne peut donc fournir aucun courant. Seul un courant de fuites I O H est présent.
Une sortie à drain ouvert est l’équivalent d’une sortie à collecteur ouvert, mais avec
un transistor MOS.
50
Électronique numérique en 26 fiches
9
•
Sortie trois états
Une sortie trois états se comporte comme une sortie ordinaire quand elle est activée, mais elle possède un troisième état particulier, souvent appelé haute impédance et noté Z, où la sortie est désactivée, c’est-à-dire qu’elle se comporte pratiquement comme un circuit ouvert. Dans ce dernier, la sortie n’est parcourue que par
un faible courant de fuite qui dépend du niveau appliqué par le reste du système :
I O Z L à l’état bas et I O Z H à l’état haut.
II Paramètres dynamiques
•
Temps de propagation
L’action d’un signal sur une entrée se traduit sur une sortie avec un certain retard :
c’est le temps de propagation. Cette durée n’est pas forcément la même pour les
fronts montants et les fronts descendants. On définit donc le temps de propagation
du niveau haut au niveau bas t P H L et le temps de propagation du niveau bas au
niveau haut t P L H (Fig. 9.3). La tension Vre f est une référence fixée.
Entrée
Vref
Sortie
© Dunod – La photocopie non autorisée est un délit.
Vref
tpHL
tpLH
Figure 9.3 Temps de propagation
•
Temps d’activation et de désactivation (sorties trois états)
Une sortie trois états activée comporte des temps de propagation comme une sortie ordinaire. Par contre, lors de l’activation ou de la désactivation, de nouvelles
durées doivent être définies (Fig. 9.4) :
– le temps d’activation à l’état haut t P Z H ;
– le temps d’activation à l’état bas t P Z L ;
– le temps de désactivation de l’état haut t P H Z ;
– le temps de désactivation de l’état bas t P L Z .
F I C H E 9 – Pa ra m è t r e s é l e c t r i q u e s d e s c i r c u i t s l o g i q u e s
Openmirrors.com
51
VO H
Z
Z
Z
VO L
tpHZ
tpZH
tpZL
tpLZ
Figure 9.4 Temps d’activation et de désactivation
Remarque Par convention, on indique l’état haute impédance sur les
chronogrammes par un niveau intermédiaire entre les états bas et haut. Il
ne s’agit là que d’une représentation symbolique qui ne correspond pas à
une valeur de tension : la sortie concernée subit le niveau de tension
imposé par le reste du circuit.
•
Temps de prépositionnement et de maintien (circuits séquentiels)
On considère un circuit possédant une entrée qui est prise en compte lors du front
actif suivant de l’horloge. Le temps de prépositionnement tsu (set up time) est la
durée minimale pendant laquelle la donnée présente sur l’entrée doit être stable
avant le font actif du signal d’horloge. Le temps de maintien th (hold time) est la
durée minimale pendant laquelle la donnée présente sur l’entrée doit rester stable
après le font actif du signal d’horloge (Fig. 9.5).
Entrée
Vref
tsu
th
Horloge
Vref
Figure 9.5 Temps de prépositionnement et de maintien
52
Électronique numérique en 26 fiches
9
Sor ties trois états
Un bus relie dix sorties trois états et quatre entrées de circuits logiques.
Les paramètres électriques des sorties trois états sont :
IOL = 24 mA ; IOH = – 2,6 mA ; IOZL = – 20 µA ; IOZH = 20 µA
et ceux des entrées sont :
IIL = – 0,4 mA ; IIH = 20 µA
1. Combien de sorties trois états peuvent-elles être activées en même temps ?
Pourquoi ?
2. Quelle condition y-a-t-il sur les courants si le bus est à l’état bas ? Est-elle remplie
avec les valeurs numériques données ?
3. Quelle condition y-a-t-il sur les courants si le bus est à l’état haut ? Est-elle remplie avec les valeurs numériques données ?
Conclure.
Solution
© Dunod – La photocopie non autorisée est un délit.
1. Une seule sortie trois états peut être activée à un instant donné, sinon, il y aurait
conflit entre les différentes sorties qui voudraient imposer leur niveau de tension.
2. À l’état bas, le courant dans chacune des quatre entrées est IIL (négatif donc sortant)
et le courant dans chacune des neuf sorties non activées est IOZL (négatif donc sortant).
Tous ces courants se referment dans la sortie activée. Le courant IOL de la sortie active (entrant, donc positif) doit être supérieur à la somme des valeurs absolues des courants des entrées et des sorties à l’état haute impédance :
I O L ! 4|I I L | + 9|I O Z L |
On a IOL = 24 mA et 4|I I L | + 9|I O Z L | = 4 × 0,4 + 9 × 0,02 = 1,78 mA. L’inégalité
est donc vérifiée avec une marge importante.
3. À l’état haut, le courant dans chaque entrée est IIH (positif donc entrant) et le courant dans chacune des sorties non activées est IOZH (positif donc entrant). Tous ces courants se referment dans la sortie activée. Le courant IOH de la sortie active (sortant,
donc négatif) doit avoir une valeur absolue supérieure à la somme des courants des
entrées et des sorties à l’état haute impédance :
|I O H | ! 4I I H + 9I O Z H
On a |I O H | = 2,6 mA et 4I I H + 9I O Z H = 4 × 0,02 + 9 × 0,02 = 0,26 mA.
L’inégalité est donc vérifiée avec une marge importante.
Les conditions sont remplies pour que le branchement ne pose aucun problème électrique.
F I C H E 9 – Pa ra m è t r e s é l e c t r i q u e s d e s c i r c u i t s l o g i q u e s
Openmirrors.com
53
FICHE
I
10
Architecture
d’un microcontrôleur
Présentation
Un microcontrôleur est un circuit intégré rassemblant un microprocesseur et d’autres
composants tels que de la mémoire et des périphériques. Il permet de réaliser des montages sans nécessiter l’ajout de composants annexes. Les avantages des microcontrôleurs sont :
– un faible encombrement,
– un circuit imprimé relativement simple,
– un coût modeste,
– une bonne fiabilité
– une bonne rapidité,
– une faible consommation.
II Description
•
Structure générale
Un microcontrôleur est composé au minimum des éléments suivants :
– un microprocesseur (CPU pour Central Processing Unit, unité centrale),
– une horloge (avec éventuellement un quartz externe),
– de la mémoire,
– des interfaces parallèles pour la connexion des entrées et des sorties.
Ces différents éléments sont reliés par un ou plusieurs bus.
Deux architectures différentes existent :
– la structure de Von Neumann qui utilise une mémoire unique pour le programme
et les données (Fig. 10.1) ;
– la structure de Harvard où la mémoire pour le programme est séparée de la
mémoire pour les données (Fig. 10.2).
Les types exacts de mémoires dépendent du modèle de microcontrôleur. Les interfaces disponibles varient également. Outre les ports parallèles, on peut trouver :
54
Électronique numérique en 26 fiches
1
0
CPU
Mémoire
Bus
E/S
Figure 10.1 Structure de Von Neumann
Bus d'instruction
CPU
Mémoire de
programme
Mémoire de
données
E/S
Bus de données
© Dunod – La photocopie non autorisée est un délit.
Figure 10.2 Structure de Harvard
– des interfaces série RS232 ou I2C pour la communication ;
– des compteurs (timers) permettent de générer des impulsions ou de mesurer des
durées avec une grande précision ;
– des convertisseurs analogique-numérique pour le traitement de signaux analogiques ;
– des modules de modulation de largeur d’impulsion (PMW, pulse-width modulation) pour la commande de charges de puissance comme les moteurs, etc.
•
Microprocesseur
Il exécute les instructions présentes dans la mémoire de programme de façon
séquentielle. Il est constitué des éléments suivants :
– une unité arithmétique et logique (UAL ou ALU pour Arithmetic Logic Unit) qui
effectue les opérations ;
– un séquenceur qui commande le fonctionnement du microprocesseur ;
– un décodeur d’instruction qui détermine la tâche à exécuter ;
FICHE 10 – Architecture d’un microcontrôleur
Openmirrors.com
55
– un compteur ordinal qui génère l’adresse de l’instruction à exécuter ou de la donnée à traiter ;
– un ou plusieurs registres accumulateurs qui contiennent temporairement les opérandes et les résultats ;
– différents registres associés aux périphériques.
Le processeur peut être à jeu d’instructions complexe (CISC pour Complex
Instruction Set Computer) ou à jeu d’instructions réduit (RISC pour Reduced
Instruction Set Computer).
•
Horloge
Le signal d’horloge cadence le fonctionnement du microprocesseur. Il est produit
par un oscillateur à quartz qui est souvent formé d’un circuit actif interne (inverseur et résistance) et d’un quartz et de condensateurs externes (Fig. 10.3).
R
Microcontrôleur
1
C2
Q
C1
Figure 10.3 Horloge
Il existe également des horloges totalement internes. Plus la fréquence d’horloge
est élevée, plus le processeur travaille vite.
•
Mémoire de programme
Elle contient les instructions du programme. C’est une mémoire morte dont le type
exact dépend du modèle de microcontrôleur (voir la fiche 11 pour des précisions
sur les différentes catégories de mémoires) :
– ROM, dont le contenu est programmé par son constructeur ;
– PROM, inscrite par l’utilisateur grâce à un programmateur ;
– EPROM ou UVPROM, programmable par l’utilisateur et pouvant être effacée
par un rayonnement ultraviolet ;
– EEPROM, programmable et effaçable électriquement ;
– flash, programmable et effaçable électriquement, mais plus rapide.
56
Électronique numérique en 26 fiches
1
0
•
Mémoire de données
Elle contient les données utilisées par le microprocesseur et elle est accessible en
lecture et en écriture. On en trouve deux catégories (voir la fiche 11 pour des précisions sur les différents types de mémoires) :
– RAM, mémoire volatile (les données sont perdues quand l’alimentation est coupée) dont les temps de lecture et d’écriture sont courts ;
– EEPROM, mémoire non volatile (les données sont conservées quand l’alimentation est coupée) ayant un temps de lecture court, mais un temps d’écriture beaucoup plus long.
•
Interfaces parallèles
Elles peuvent être configurées soit en entrées, soit en sorties, ce qui leur permet de :
– prendre en compte des états logiques représentant des informations externes,
comme les résultats de mesure par des capteurs ;
– générer des états logiques destinés à la commande d’actionneurs.
Les interfaces parallèles sont regroupées en plusieurs ports d’entrées/sorties. La
configuration et les états logiques des différentes broches sont définis dans des
registres associés aux ports.
•
Interfaces série
Une interface série permet de communiquer avec d’autres systèmes. On rencontre
principalement une liaison RS232 (voir la fiche 14) ou une liaison I2C (voir la
fiche 15).
© Dunod – La photocopie non autorisée est un délit.
•
Convertisseur analogique-numérique
Il permet de prendre en compte des informations analogiques, par exemple des
résultats issus de capteurs. Il utilise la méthode des approximations successives
(voir la fiche 22).
•
Convertisseur numérique-analogique
Il permet de produire un signal analogique (tension) à partir des états logiques
internes.
•
Compteur (timer)
Il sert à différentes fonctions :
– comptage d’événements,
FICHE 10 – Architecture d’un microcontrôleur
Openmirrors.com
57
– temporisation,
– génération d’une impulsion calibrée,
– génération d’un signal périodique.
•
Chien de garde (watchdog)
Cette structure vérifie le bon déroulement du programme.
•
Bus
On distingue trois types de bus :
– le bus d’adresses,
– le bus de données,
– le bus de commande.
III Exemple : les microcontrôleurs PIC
•
Familles de microcontrôleurs PIC
Parmi les nombreuses références disponibles, nous prendrons comme exemple les
microcontrôleurs PIC de Microchip. Ce sont des microcontrôleurs à architecture
Harvard : les mémoires de programme et de données sont séparées. Ils utilisent des
processeurs RISC, c’est-à-dire employant un jeu d’instructions réduit, ce qui accélère l’exécution du programme.
Il existe trois familles de PIC :
– base-line : les instructions sont codées sur 12 bits,
– mid-range : les instructions sont codées sur 14 bits,
– high-end : les instructions sont codées sur 16 bits.
•
Identification des PIC
Un PIC est identifié par un numéro. Considérons par exemple le modèle 16F84.
Les deux premiers chiffres (qui peuvent être 12, 14, 16, 17, 18) précisent la famille : 16 pour mid-range. Un L peut éventuellement suivre ces chiffres pour indiquer
une plage de tension étendue. La lettre suivante donne le type de mémoire de programme : F signifie mémoire flash (ce serait C pour EPROM ou CR pour PROM).
Les deux chiffres suivants forment un numéro d’identification. Il peut ensuite y
avoir deux chiffres après un tiret indiquant la fréquence maximale du quartz (10
pour 10 MHz).
58
Électronique numérique en 26 fiches
1
0
•
Description du PIC 16F84
Le PIC 16F84 possède les caractéristiques principales suivantes :
– 35 instructions,
– 1024 mots de 14 bits de mémoire flash pour le programme,
– 68 octets de RAM,
– 64 octets d’EEPROM,
– 13 entrées-sorties (2 ports de 5 et 8 entrées-sorties),
– 1 compteur de 8 bits.
PIC 16F84A
Consulter la documentation technique du PIC 16F84A sur le site Internet de son
constructeur, Microchip (www.microchip.com).
1. Quel est le nombre de bits de ce microcontrôleur ?
2. Quel est le type de mémoire de programme ? Comment repère-t-on cette information sur le numéro du composant ? Sur combien de bits sont codées les instructions ?
Quelle est la capacité de cette mémoire (en mots puis en kilobits) ? Quel est le
nombre de cycles d’effacement et d’écriture possible ?
3. Quels sont les types de mémoire de données ? Sur combien de bits sont codées les
données ? Quelle est la capacité de ces mémoires (en octets puis en bits) ? Quel est
le nombre de cycles d’effacement et d’écriture possible pour la mémoire morte ?
4. Quel est le nombre de bornes d’entrées-sorties ?
© Dunod – La photocopie non autorisée est un délit.
Solution
1. Le PIC 16F84A est un microcontrôleur 8 bits.
2. La mémoire de programme est du type flash (mémoire effaçable électriquement).
C’est la signification de la lettre F dans le numéro du PIC. Les instructions sont codées
sur 14 bits. La capacité de cette mémoire est de 1 024 mots, soit 1 024 × 14 =
14 336 bits. Le nombre maximal cycles d’effacement et d’écriture est de 10 000.
3. Les mémoires de données sont d’une part une RAM (mémoire vive) et d’autre part
une EEPROM (mémoire programmable et effaçable électriquement). Les données sont
codées sur 8 bits. La capacité de la RAM est de 68 octets, soit 68 × 8 = 544 bits.
La capacité de l’EEPROM est de 64 octets, soit 64 × 8 = 512 bits. 10 000 000 cycles
d’effacement et d’écriture sont possibles.
4. Le composant possède 13 bornes d’entrées-sorties réparties sur deux ports.
FICHE 10 – Architecture d’un microcontrôleur
Openmirrors.com
59
FICHE
I
•
11
Mémoires
Présentation
Définition
Une mémoire est un dispositif destiné à stocker des informations.
•
Mode d’accès
On distingue :
– les mémoires à accès aléatoire où chaque mot a une adresse donnée et pour lesquelles il est possible d’accéder à une information quelconque en un temps
constant ;
– les mémoires à accès séquentiel où les informations sont écrites les unes derrière les autres et pour lesquelles l’accès à un mot dépend de sa position.
II Paramètres caractéristiques
•
Capacité
Elle représente la quantité d’informations qui peut être stockée. La capacité peut
s’exprimer en bits, en octets (8 bits) ou en mots (de 16 ou 32 bits). Compte tenu
des valeurs importantes des capacités, on utilise surtout les multiples de ces unités : kilobit, mégabit, kilooctet, mégaoctet... Traditionnellement, un kilobit (symbole Kb, avec un K majuscule) vaut 210 = 1 024 bits et un kilooctet (symbole Ko)
correspond à 210 = 1 024 octets. Un mégabit (symbole Mb) vaut 220 = 1 048 576
bits et un mégaoctet (symbole Mo) correspond à 220 = 1 048 576 octets.
Remarque Les définitions traditionnelles ne respectent pas les normes
en usage pour les autres unités. Normalement, un kilobit (symbole kb,
avec un k minuscule) vaut 1 000 bits et un kilooctet (symbole ko) correspond à 1 000 octets. Pour éviter les confusions, la CEI (Commission Électrotechnique Internationale) a défini en 1998 des préfixes binaires : kibi
60
Électronique numérique en 26 fiches
1
1
pour 210, mébi pour 220, etc. Ainsi un kibioctet (symbole Kio avec K
majuscule) correspond à 210 octets et un mébioctet (symbole Mio) correspond à 220 octets. Force est de constater que ces appellations sont peu
utilisées.
La capacité est liée au nombre de lignes d’adresse. Considérons par exemple une
mémoire qui stocke les données sous forme d’octets et qui possède 15 lignes
d’adresses. Cela correspond à 215 adresses différentes, donc à 32 × 210 octets. La
capacité de cette mémoire est donc de 32 Ko, soit 32 × 8 = 250 Kb.
•
Temps d’accès
C’est la durée nécessaire à une opération de lecture ou d’écriture, c’est-à-dire le
temps qui s’écoule entre l’instant où l’opération est demandée et l’instant où l’opération est terminée.
•
Temps de cycle
C’est la durée minimale entre deux accès successifs.
© Dunod – La photocopie non autorisée est un délit.
III Cycle de fonctionnement
De façon simplifiée, une mémoire pouvant être lue et écrite comporte les connexions
suivantes (Fig. 11.1) :
– les entrées d’adresses ;
– les entrées et les sorties de données ;
– une entrée de choix entre lecture et écriture (R/W pour read/write) ;
– une entrée de sélection du circuit (CS pour chip select).
Adresses
Mémoire
Données
R/W
CS
Figure 11.1 Connexions d’une mémoire
Une opération de lecture ou d’écriture s’effectue avec les étapes suivantes :
– la sélection de l’adresse ;
– le choix entre lecture et écriture (niveau appliqué sur R/W) ;
– la sélection du circuit (niveau appliqué sur CS) ;
– la lecture ou l’écriture de la donnée.
FICHE 11 – Mémoires
Openmirrors.com
61
L’ensemble de ces opérations forment un cycle de lecture ou d’écriture (Fig. 11.2).
Les chronogrammes font apparaître le temps d’accès ta et le temps de cycle tc.
tc
Adresse
Lecture
Sélection
Sortie
ta
Figure 11.2 Cycle de lecture
IV Mémoires mortes
Une mémoire morte permet de conserver les informations en permanence, même
quand l’alimentation est coupée.
•
Mémoire à lecture seule (ROM pour Read Only Memory)
Elle est inscrite par le constructeur au moment de sa fabrication. L’utilisateur n’a
aucune action sur son contenu, il ne peut que lire cette mémoire. Les ROM ne peuvent être utilisées que pour des grandes séries puisqu’elles nécessitent une commande spéciale chez le fabricant.
•
Mémoire à lecture seule programmable par l’utilisateur (PROM pour
Programmable Read Only Memory)
Les informations sont inscrites par l’utilisateur grâce à un dispositif adapté, le programmateur, qui coupe des fusibles présents dans le composant. Une PROM peut
être utilisée pour des petites séries ou des prototypes, mais elle n’est programmable
qu’une seule fois.
62
Électronique numérique en 26 fiches
1
1
•
Mémoire à lecture seule programmable et effaçable par un rayonnement
ultraviolet (EPROM pour Erasable Programmable Read Only Memory ou
UVPROM)
C’est une mémoire programmable dont les informations peuvent être effacées
grâce à une exposition à un rayonnement ultraviolet. Pour cela, le boîtier est muni
d’une fenêtre transparente. L’EPROM doit être démontée pour être effacée. Il n’est
pas possible de ne modifier qu’une partie de la mémoire. Après effacement, la
mémoire peut être reprogrammée.
•
Mémoire à lecture seule programmable et effaçable électriquement
(EEPROM pour Electrical Erasable Programmable Read Only Memory)
C’est une mémoire programmable dont les informations peuvent être effacées
grâce à l’application d’impulsions de tension. Il n’est pas nécessaire de démonter
une EEPROM pour l’effacer. La modification peut être partielle. Après effacement,
la mémoire peut être reprogrammée.
•
Mémoire flash
C’est une mémoire effaçable électriquement dont l’écriture est plus rapide que
celle des EEPROM. On ne peut cependant effacer que l’ensemble du contenu.
© Dunod – La photocopie non autorisée est un délit.
V Mémoires vives
Une mémoire vive (RAM pour Random Access Memory) permet de conserver les
informations de façon temporaire, les données n’étant pas conservées quand l’alimentation est coupée. C’est une mémoire volatile à accès aléatoire. Elle est utilisée en lecture et en écriture, son contenu pouvant être modifié sans restriction.
•
RAM statique (SRAM pour Static Random Access Memory)
Les informations sont mémorisées par des bascules et elles sont conservées tant
que l’alimentation est présente. Ces mémoires sont rapides, mais de capacité
limitée.
•
RAM dynamique (DRAM pour Dynamic Random Access Memory)
Les informations sont mémorisées par des condensateurs. Il faut procéder à un
rafraîchissement périodique à cause des courants de fuites. Ces mémoires disposent d’une plus grande capacité, mais elles sont plus lentes.
FICHE 11 – Mémoires
Openmirrors.com
63
•
NOVRAM
C’est l’association dans un même boîtier d’une RAM et d’une EEPROM. Quand
le circuit est alimenté, c’est la RAM qui fonctionne, permettant au système de
bénéficier de son temps d’accès très court. Quand l’alimentation est coupée, le
contenu de la RAM est transféré dans l’EEPROM. On obtient ainsi une mémoire
non volatile présentant une bonne rapidité.
•
RAM ferroélectrique (FRAM pour Ferroelectric Random Access Memory)
Les matériaux ferroélectriques présentent une polarisation rémanente qui peut être
inversée par l’application d’un champ électrique extérieur. On utilise cette propriété pour réaliser des mémoires RAM non volatiles. La structure ressemble à
celle d’une DRAM classique, mais le diélectrique des condensateurs est une mince
couche de matériau ferroélectrique.
Mémorisation des données
d’une bouée de signalisation maritime
Le système considéré est une bouée de signalisation maritime. L’étude porte sur une
partie de la fonction FS38 : mémoriser les données du feu. Cette fonction permet de
sauvegarder les données du feu recueillies par le microcontrôleur (tension et courant
(U, I) de la batterie et l’information « état du feu »), dans une mémoire à accès série
par bus I2C.
On utilise un circuit FM24CL64 dont on donne un extrait de la notice (Fig. 11.3).
FM24CL64
64Kb Serial 3V FRAM Memory
A0
1
8
VDD
Features
A1
2
7
WP
64K bit Ferroelectric Nonvolatile RAM
• Organized as 8,192 x 8 bits
• Unlimited Read/Write Cycles
• 45 year Data Retention
• NoDelay™ Writes
• Advanced High-Reliability Ferroelectric Process
A2
3
6
SCL
VSS
4
5
SDA
Fast Two-wire Serial Interface
• Up to 1 MHz maximum bus frequency
• Direct hardware replacement for EEPROM
• Supports legacy timing for 100 kHz & 400 kHz
Pin Names
A0-A2
SDA
SCL
WP
VSS
VDD
Function
Device Select Address
Serial Data/address
Serial Clock
Write Protect
Ground
Supply Volt age
Figure 11.3 Extrait de la notice du circuit FM24CL64
1. Préciser la technologie utilisée pour cette mémoire.
2. Donner sa capacité en Kbits, puis en octets.
3. Donner le rôle des broches : A0, A1, A2, SDA, SCL, WP.
64
Électronique numérique en 26 fiches
1
1
Solution
© Dunod – La photocopie non autorisée est un délit.
1. Le circuit utilisé est du type FRAM (Ferroelectric RAM). C’est une mémoire non
volatile faisant appel aux propriétés ferroélectriques d’une mince couche déposée
entre deux électrodes, ce qui permet de conserver l’information grâce au phénomène
de rémanence.
2. La notice du circuit indique que sa capacité est de 64 Kbits. Cela correspond à
64
= 8 Koctets, soit 8 × 1 024 = 8 192 octets.
8
3. La notice du circuit précise le rôle des différentes broches :
– A0, A1 et A2 : sélection du circuit ;
– SDA : passage série des données et des adresses ;
– SCL : entrée d’horloge de synchronisation ;
– WP : protection en écriture.
FICHE 11 – Mémoires
Openmirrors.com
65
FICHE
I
•
12
Compteurs
Présentation
Définition
Un compteur est un circuit séquentiel qui permet de dénombrer des impulsions
appliquées à une entrée appelée horloge. Le nombre obtenu est disponible sur les
sorties dans un code donné (Fig. 12.1).
Horloge
Compteur
Sorties
12.1 Compteur
•
Bornes disponibles
En plus de l’entrée d’horloge et des sorties, un compteur peut comporter les bornes
suivantes :
– une entrée de remise à zéro (CT = 0 ou CLR pour CLeaR) qui permet de placer
les sorties à 0 et dont l’effet peut être synchrone (action sur un front d’horloge)
ou asynchrone (action indépendante de l’horloge) ;
– une entrée de validation (EN pour ENable) qui autorise ou non le comptage ;
– des entrées de préchargement (DA, DB,...) qui font commencer le comptage à
une valeur quelconque ;
– une entrée de choix entre le comptage et le décomptage (U/D pour Up/Down) ;
– une sortie de fin de comptage (CO pour Carry Output) indiquant la fin du cycle
de comptage ;
– une sortie de fin de décomptage (BO pour Borrow Output) indiquant la fin du
cycle de décomptage.
66
Électronique numérique en 26 fiches
1
2
•
Symbole
Le symbole d’un compteur (Fig. 12.2) fait apparaître :
– une partie inférieure comportant à gauche les sorties et éventuellement à droite
des entrées de préchargement ;
– une partie supérieure comportant l’horloge, la remise à zéro et éventuellement
d’autres entrées de commande.
Remise à
zéro
Horloge
C
CTRn
CT = 0
Q0
Q1
Sorties
Qn – 1
Figure 12.2 Symbole d’un compteur
•
Capacité
C’est le nombre maximal d’impulsions qui peuvent être comptées avant un retour
à l’état de départ.
© Dunod – La photocopie non autorisée est un délit.
•
Applications
L’application de base est le comptage d’événements. Par exemple, il est souvent
nécessaire de compter des pièces sur une chaîne de fabrication. Un capteur envoie
une impulsion à chaque passage et un compteur dénombre ces impulsions (Fig.
12.3).
Passage
de pièces
Compteur
Capteur
Impulsions
Nombre
de
pièces
Figure 12.3 Compteur de pièces
Un compteur peut aussi être utilisé pour mesurer une durée ou pour obtenir une division de fréquence : il s’agit d’obtenir des impulsions de fréquence f/N à partir d’impulsions de fréquence f.
FICHE 12 – Compteurs
Openmirrors.com
67
II Classification
Les compteurs peuvent être classés selon plusieurs critères.
•
Codage
La sortie peut être codée de différentes façons :
– code binaire naturel ;
– code décimal ;
– code DCB, etc.
•
Sens de comptage
On distingue :
– les compteurs pour lesquels la valeur de sortie augmente en fonction du temps ;
– les décompteurs pour lesquels la valeur de sortie diminue en fonction du temps.
•
Mode de basculement
On distingue :
– les compteurs asynchrones ;
– les compteurs synchrones.
Les différences entre ces deux types de compteurs sont détaillées dans les paragraphes suivants.
•
Étendue des valeurs de sortie
Il s’agit de l’ensemble des valeurs que peut prendre la sortie. L’étendue des valeurs
de sortie est limitée par le nombre de bits, mais toutes les valeurs possibles pour un
nombre de bits fixé ne sont pas obligatoirement utilisées.
Quand la sortie d’un compteur peut prendre N états différents, on parle de compteur modulo N.
•
Séquence de comptage
On distingue :
– les compteurs à cycle complet qui utilisent toutes les combinaisons possibles en
sortie ;
– les compteurs à cycle incomplet qui n’utilisent pas toutes les combinaisons possibles en sortie.
Un compteur modulo N avec n bits a un cycle incomplet si N < 2n.
68
Électronique numérique en 26 fiches
1
2
III Compteurs asynchrones
•
Définition
Ce sont des compteurs où seul le premier étage reçoit le signal d’horloge, chaque
étage étant commandé par le précédent. Ils utilisent le code binaire naturel.
•
Fonctionnement
Prenons comme exemple un compteur binaire asynchrone trois bits à cycle complet. Il s’agit d’un compteur modulo 8.
Les différents états du compteur peuvent être indiqués dans une table de comptage
(Fig. 12.4).
État
Q2
Q1
Q0
0
1
2
3
4
5
6
7
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
Figure 12.4 Table de comptage d’un compteur binaire asynchrone trois bits
à cycle complet
© Dunod – La photocopie non autorisée est un délit.
Un diagramme des états permet de représenter graphiquement le fonctionnement
(Fig. 12.5).
0
1
2
3
7
6
5
4
Figure 12.5 Diagramme des états d’un compteur binaire asynchrone trois bits
à cycle complet
L’évolution temporelle des sorties par rapport à l’horloge est indiquée par les chronogrammes (Fig. 12.6).
FICHE 12 – Compteurs
Openmirrors.com
69
H
Q0
Q1
Q2
Figure 12.6 Chronogrammes d’un compteur binaire asynchrone trois bits
à cycle complet
•
Propriétés
Les compteurs asynchrones sont les plus simples, mais ils présentent plusieurs
inconvénients :
– ils ne peuvent compter ou décompter qu’en binaire naturel ;
– ils sont assez lents car les durées de propagation de chaque étage s’ajoutent, ce
1
qui conduit à une fréquence d’horloge maximale f max =
pour un compteur à
nt p
étages présentant chacun une durée de propagation tp ;
– les temps de propagation peuvent également faire apparaître des états transitoires
sans signification entre deux états stables (Fig. 12.7).
tp
tp
Figure 12.7 États transitoires
IV Compteurs synchrones
•
Définition
Ce sont des compteurs dont tous les étages sont commandés par le même signal
d’horloge.
•
Propriétés
Les compteurs synchrones sont plus complexes que les compteurs asynchrones,
mais ils présentent plusieurs avantages :
70
Électronique numérique en 26 fiches
1
2
– ils peuvent utiliser n’importe quel code en sortie ;
– il n’y a pas de cumul des temps de propagation, ce qui conduit à une fréquence
1
d’horloge maximale plus élevée f max = ;
tp
– la durée des phases d’instabilité est limitée.
Capteur de distance à ultrasons
Un capteur de distance utilise un émetteur et un récepteur d’ultrasons placés au
même point. Pour une impulsion ve émise, le récepteur délivre une impulsion vr
d’amplitude Vcc = 5 V (Fig. 12.8). La durée ∆t séparant les fronts montants de ces
impulsions est proportionnelle à la distance d à mesurer : ∆t = kd, k étant une
constante.
Tc
ve
vs
t
∆t
t
© Dunod – La photocopie non autorisée est un délit.
Figure 12.8 Signal émis et signal reçu
À ces impulsions de tension, il est possible de faire correspondre des signaux
logiques notés Ve et Vr dont l’évolution temporelle suit l’allure décrite précédemment. La période des impulsions (d’émission et de réception) est une constante Tc.
Les signaux logiques ainsi définis sont appliqués à un compteur associé à un registre
parallèle 5 bits (Fig. 12.9), tous les composants logiques étant alimentés sous la
même tension Vcc.
Q0
S0
H
Registre
Compteur
Ve
Start
Vr
Stop
RAZ
Q4
Transfert
S4
Figure 12.9 Compteur et registre
FICHE 12 – Compteurs
Openmirrors.com
71
Le compteur compte avec une fréquence fixe (signal H) de période TH. Le comptage
débute lors de l’apparition d’un front montant sur la broche « start » et s’arrête lors
de l’apparition d’un front montant sur la broche « stop ». Les signaux logiques de
sortie, Q0 à Q4, représentent alors un mot numérique image de la durée de comptage,
Q0 représentant le poids le plus faible et Q4, le poids le plus fort.
Le registre qui suit permet de retranscrire sur chaque sortie Sk la valeur de l’entrée
correspondante Qk (k variant de 0 à 4) lors de l’apparition d’un front montant sur sa
broche « transfert ». Le compteur est remis à zéro lors de l’apparition d’un front descendant sur sa broche RAZ : ses sorties Q0 à Q4 sont alors remises à zéro.
Les durées des impulsions Ve et Vr sont très faible devant la période d’horloge TH. Le
mot numérique de sortie sera représenté sous la forme S = [S4 S3 S2 S1 S0], sa conversion en nombre entier non signé étant appelée SN.
1. Déterminer la plus petite valeur SNmin et la plus grande valeur SNmax mesurables
du nombre entier SN.
2. Quelle relation doit-on imposer entre Tc et TH afin d’obtenir une valeur numérique
unique pour toute distance d et éviter ainsi toute ambiguïté dans la mesure ?
3. Déterminer l’expression de la constante k en fonction de la distance maximale dmax
et de Tc.
Application numérique : calculer k pour dmax = 10 cm et Tc = 1 ms.
Solution
1. La plus petite valeur du nombre entier SN est obtenue quand le compteur n’a pas eu
le temps de compter une seule impulsion et que le mot numérique de sortie est alors
[0 0 0 0 0], ce qui donne SNmin = 0.
La plus grande valeur du nombre entier SN est obtenue quand le compteur est plein et
que le mot numérique de sortie est [1 1 1 1 1], ce qui donne SNmax = 25 – 1 = 31.
2. Pour obtenir une valeur numérique unique pour toute distance d, il faut assurer la
condition Tc < 25 TH.
3. La distance maximale dmax correspond à une durée ∆t égale à Tc. La relation de proportionnalité s’écrit dans ces conditions : Tc = k dmax. On en déduit l’expression de la
Tc
.
constante : k =
dmax
1 × 10−3
= 10−2 s . m–1.
L’application numérique conduit à : k =
10 × 10−2
72
Électronique numérique en 26 fiches
Liaison parallèle
I
•
FICHE
13
Présentation
Principe
Dans une liaison parallèle, N bits (8, 16, 32, voire plus) sont envoyés simultanément sur N voies différentes. Il faut N + 1 fils (N fils de données et un fil de masse)
pour la transmission (Fig. 13.1).
Récepteur
Émetteur
GND
Figure 13.1 Liaison parallèle sur 8 bits
© Dunod – La photocopie non autorisée est un délit.
•
Propriétés
La liaison parallèle présente l’intérêt de la simplicité. C’est aussi théoriquement la
liaison la plus rapide puisque les N bits sont envoyés en même temps. Toutefois, le
cadencement des processeurs avec des fréquences de plus en plus grandes a fait
perdre de l’intérêt à la liaison parallèle.
La masse de cuivre nécessaire est beaucoup plus importante que pour une liaison
série, ce qui augmente considérablement le coût. La transmission sur plusieurs
conducteurs proches (câbles en nappe) peut être source de perturbations.
Les liaisons parallèles sont en général réservées à des transmissions à courte distance. On ne les rencontre que dans quelques domaines :
– les connexions entre composants sur les cartes électroniques ;
– les liaisons Centronics ;
– les bus d’instrumentation IEEE488 (ou GPIB) ;
– les interfaces de transmission rapide SCSI.
FICHE 13 – Liaison parallèle
Openmirrors.com
73
II Liaison Centronics
Cette interface était utilisée pour la communication entre un micro-ordinateur et une
imprimante avant la généralisation des liaisons USB (Centronics est un constructeur
d’imprimantes, créateur de l’interface qui porte son nom). Elle peut aussi être
employée pour piloter des entrées-sorties numériques.
•
Description
Une liaison Centronics comporte huit fils de données (D0 à D7), un fil de masse et
plusieurs fils de contrôle dont trois ont un rôle essentiel dans le processus de transmission :
– STR (strobe, validation) ;
– ACK (acknowledge, acquittement) ;
– BUSY (occupation).
•
Protocole de communication
L’échange des informations se fait suivant la procédure de la poignée de main
(handshake) qui correspond à un dialogue entre l’émetteur et le récepteur destiné
à vérifier que la transmission est possible puis à confirmer son bon déroulement :
– l’émetteur vérifie que le récepteur n’est pas occupé en regardant si le signal
BUZY est à 0 ;
– il envoie une donnée de huit bits ;
– il prévient le récepteur qu’il a envoyé une donnée en appliquant une impulsion
au niveau bas d’au moins 0,5 µs sur le fil STR ;
– le récepteur passe alors en mode occupé en mettant le signal BUSY à 1 pendant
au plus 1 ms, empêchant ainsi tout nouvel envoi de données ;
– il envoie un signal d’acquittement (accusé de réception de la donnée) en mettant
le fil ACK à 0 pendant 0,5 µs au maximum ;
– il remet ensuite le signal BUSY à 0 pour indiquer qu’il est à nouveau disponible.
III Bus IEEE488 (GPIB)
•
Description
Le bus GPIB (General Purpose Interface Bus : bus d’interface d’usage général) a
été développé en 1965 par Hewlett-Packard sous le nom de HPIB avant de se
répandre comme bus d’instrumentation. La norme IEEE488 (IEEE : Institute of
Electrical and Electronic Engineers) a ensuite précisé les contraintes mécaniques
et électriques du bus en 1978 (IEEE488-1) puis certaines règles du protocole en
1987 (IEEE488-2).
74
Électronique numérique en 26 fiches
1
3
Le bus IEEE488 permet de connecter entre différents dispositifs : ordinateur, instruments de mesure, etc. (quinze appareils au maximum). Il comporte un contrôleur qui supervise les échanges, un émetteur (talker) qui envoie des informations,
et des récepteurs (listeners) qui reçoivent les informations. Un même appareil peut
avoir plusieurs fonctions. Chaque instrument possède une adresse.
•
Lignes du bus
Le bus comporte huit fils de données, huit fils de commande et huit fils de masse.
La longueur maximale de la liaison est de 20 m et le débit maximal de transfert
peut aller de 1 Mo/s à 8 Mo/s. L’échange des informations se fait suivant la procédure de la poignée de main (handshake).
Les huit fils de commandes se décomposent en :
• trois fils pour la procédure de handshake (Fig. 13.2) :
– DAV (DAta Valid) : cette ligne indique quand les données sont stables et peuvent être acceptées par les instruments ;
– NDAC (Not DAta Accept) : cette ligne indique si un instrument a accepté ou
non un message ;
– NRFD (Not Ready For Data) : cette ligne indique si un instrument est prêt ou
non à recevoir un message.
Donnée
© Dunod – La photocopie non autorisée est un délit.
NRFD
DAV
NDAC
Figure 13.2 Procédure de poignée de main
• cinq fils de gestion :
– ATN (ATtentioN) : quand le contrôleur active cette ligne, tous les instruments
attendent une commande tandis que lorsqu’il la désactive, seuls les récepteurs
reçoivent des données ;
– IFC (InterFace Clear) : le contrôleur active cette ligne pour que les instruments
réinitialisent leur interface GPIB ;
FICHE 13 – Liaison parallèle
Openmirrors.com
75
– REN (Remote ENable) : quand cette ligne est activée, les instruments sont sous
le contrôle du bus tandis quand elle est désactivée, les appareils ne répondent
qu’à leurs boutons de commande ;
– EOI (End Of Identify) : l’émetteur peut utiliser cette ligne pour signaler la fin
d’un message ;
– SRQ (Service ReQuest) : cette ligne est activée par un instrument pour demander l’attention du contrôleur.
Protocole Centronics
1. Tracer des chronogrammes des signaux STR, BUZY et ACK lors de la transmission d’un caractère par une liaison Centronics.
2. Préciser les signaux qui sont transmis de l’émetteur vers le récepteur et ceux qui
font le trajet inverse.
Solution
1. Il suffit de suivre la description du protocole donnée plus haut (Fig. 13.3).
Donnée
STR
BUZY
ACK
Figure 13.3 Chronogrammes du protocole Centronics
2. Les données et le signal STR sont transmis de l’émetteur vers le récepteur tandis
que les signaux BUZY et ACK proviennent de récepteur.
76
Électronique numérique en 26 fiches
Liaison série
I
•
FICHE
14
Présentation
Principe
Dans une liaison série, les données sont envoyées successivement, bit par bit. Il
suffit de deux fils (un fil de signal et un fil de masse) pour la transmission (Fig.
14.1).
TX
RX
Récepteur
Émetteur
GND
TX : broche d’émission, RX : broche de réception
Figure 14.1 Liaison série
© Dunod – La photocopie non autorisée est un délit.
•
Liaison synchrone ou asynchrone
Dans une liaison synchrone, l’émetteur et le récepteur sont cadencés à la même
horloge. Les bits sont envoyés successivement sans séparation des caractères.
Dans une liaison asynchrone, les bits sont émis de façon irrégulière. Chaque caractère est précédé d’une information indiquant le début de sa transmission (bit de
début de mot appelé souvent bit de start) et est suivi d’une information indiquant
la fin de sa transmission (bit(s) de fin de mot appelés souvent bit(s) de stop). Un
bit de vérification de la parité peut être présent pour détecter une éventuelle erreur
de transmission (Fig. 14.2).
D
Donnée
P
F
D : bit de début, P : bit de parité, F
Figure 14.2 Émission d’un caractère par une liaison asynchrone
FICHE 14 – Liaison série
Openmirrors.com
77
•
Sens de liaison
Il existe trois modes d’exploitation d’une liaison :
– simplex : les données circulent dans un seul sens, de l’émetteur vers le récepteur ;
– semi-duplex (ou half-duplex) : les données circulent dans un sens ou dans l’autre,
mais pas en même temps ;
– duplex intégral (ou full-duplex) : les données circulent simultanément dans les
deux sens.
II Norme RS232
•
Présentation
La norme RS232 a été définie en 1969 par l’EIA (Electronic Industries Alliance).
Ses caractéristiques fonctionnelles ont été reprises sous l’appellation V24 par
l’UIT (Union Internationale des Télécommunications ou en anglais International
Telecommunication Union, ITU). Elle définit les caractéristiques d’une liaison
série asynchrone. La communication s’effectue point à point (un émetteur et un
récepteur).
•
Niveaux électriques
L’état logique 1 correspond à une tension inférieure à – 3 V et l’état logique 0 à
une tension supérieure à 3 V. On rencontre souvent les valeurs – 12 V et 12 V.
•
Protocole
Les caractères utilisent 7 ou 8 bits (poids faible en premier) avec ou sans bit de
parité. Ils commencent par un bit de start à l’état logique 0 et se terminent par un
ou deux bits de stop à l’état logique 1 (Fig. 14.3).
Bit de
start
Donnée
LSB
Parité
MSB
0 1 0 0 0 0 1
Bits de
stop
Signal
binaire
12 V
Tension
– 12 V
Figure 14.3 Exemple : transmission du caractère 1000010 avec bit de parité paire
78
Électronique numérique en 26 fiches
1
4
Un bit de parité paire prend une valeur telle que le nombre de bits à 1 (données et
parité) soit pair. Un bit de parité impaire prend une valeur telle que le nombre de
bits à 1 (données et parité) soit impair.
•
Longueur maximale du câble
La longueur maximale de la liaison dépend du débit binaire :
Débit (bps)
Longueur (m)
19 200
15,2
9600
152
4800
305
2400
915
Remarque Les valeurs des longueurs maximales comportent trois
chiffres significatifs, mais il ne faut pas se méprendre sur leur précision :
il ne s’agit que d’estimations qui correspondent à la conversion de données
d’origine anglo-saxonne, initialement exprimées en pieds (50, 100, ...).
•
Utilisation
Les liaisons RS232 ont été largement utilisées avec les ordinateurs : ce sont les
ports série aujourd’hui supplantés par les ports USB. Les liaisons RS232 restent
cependant très utilisées dans l’industrie pour relier des automates, des appareils de
mesure, etc.
© Dunod – La photocopie non autorisée est un délit.
III Norme RS485
La norme RS485 définit les caractéristiques d’une liaison série asynchrone de type différentiel qui permet un débit élevé (10 Mbps) sur une distance importante (1 200 m).
Le support physique est une paire torsadée. Une liaison différentielle limite l’influence des parasites extérieurs (Fig. 14.4).
Tx(+)
Rx(+)
Tx(+)
Récepteur
Émetteur
Tx(–)
Rx(–)
Tx(+) et Tx(– ) : broches d’émission,
Rx(+) et Rx( –) : broches de réception
Figure 14.4 Liaison RS485
FICHE 14 – Liaison série
Openmirrors.com
79
La communication s’effectue en mode multipoint (interconnexion de plusieurs émetteurs et récepteurs). La liaison fonctionne en semi-duplex.
La norme RS485 ne définit pas le protocole de communication.
Bouée de signalisation maritime
Le système considéré est une bouée de signalisation maritime déjà rencontrée dans
la fiche 11. L’exercice porte sur la communication série RS232 entre le poste de
contrôle (ordinateur) et la balise radio de télécontrôle.
Il s’agit d’analyser la fonction FS33 « Adapter les signaux de la liaison RS232 » qui
permet une mise au niveau des tensions à la norme RS232 (Fig. 14.5). Les entrées
sont les signaux RXA (tension bipolaire), TX (tension unipolaire) et Cmd _ICL :
commande de mise en fonction du circuit. Les sorties sont les signaux RX (tension
unipolaire) et TXA (tension bipolaire).
CMD_ICL
100nF
3
4
5
C9
100nF
TX
11
10
12
9
C1+
V+
C1-
C38
10µF
2
C7
C2+
VC2-
CONN-D9
6
J10
100nF
TTL1
RS1
TTL2
RS2
TTL3
RS3
TTL4
RS4
15
RX
C6
100nF
ICL3232IB
14
5
9
4
8
3
7
2
6
1
VSS
7
13
8
RXA
1
TXA
C8
18
IC9
VSS
VSS
Figure 14.5 Schéma structurel de la fonction FS33
1. Donner les principales caractéristiques technologiques de cette liaison (synchrone,
asynchrone, organisation d’un octet transmis).
2. Évaluer la distance maximale d’utilisation (dizaine, centaine ou millier de mètres),
préciser son débit maximal.
3. La tension CMD_ICL vaut 3,3V. Consulter la documentation technique du circuit
ICL3232 sur le site Internet de son fabricant, Intersil (www.intersil.com).
a) Préciser la tension en sortie TXA pour un niveau logique 0 en entrée TX.
b) Préciser la tension en sortie TXA pour un niveau logique 1 en entrée TX.
c) Quels sont les rôles des condensateurs C8, C9, C6 et C7 associés au ICL3232 ?
80
Électronique numérique en 26 fiches
1
4
4. Analyse de relevés
La configuration de la liaison RS232 est la suivante : 1 bit de stop, 1 bit de parité
paire, 8 bits de données.
Le signal RXA relevé sur le connecteur J10 est donné sur le chronogramme ci dessous, qui représente la transmission de deux octets (Fig. 14.6).
Rappel sur la liaison RS232 : la ligne au repos est au niveau logique 1, le bit de start
est un passage au niveau logique 0.
a) Repérer sur le chronogramme de RXA, pour le premier octet transmis. Les intervalles de temps correspondant aux :
– bit de start,
– 8 bits de données (1er bit transmis D0),
– bit de parité paire,
– bit de stop.
Stop
TeK
M Pos: 5.700ms
RXA
OV
CH1 5.00V
M 2.50ms
CH1
© Dunod – La photocopie non autorisée est un délit.
Figure 14.6 Chronogramme du signal RXA
b) Représenter le chronogramme du signal RX sur la broche 9 du circuit IC9.
c) Préciser les valeurs en hexadécimal des deux données transmises.
Solution
1. La liaison série RS232 est une transmission série de type asynchrone. L’octet à
transmettre est envoyé bit par bit (poids faible en premier). Comme il n’y a pas d’horloge commune entre l’émetteur et le récepteur, des bits supplémentaires sont indispensables au fonctionnement : bit de début de mot (start), bit(s) de fin de mot (stop).
D’autre part, l’utilisation éventuelle d’un bit de parité permet la détection d’erreurs
dans la transmission.
2. La distance maximale d’utilisation dépend du débit binaire. Elle est d’environ 15 m
pour un débit de 19 200 bps.
FICHE 14 – Liaison série
Openmirrors.com
81
3.a) La documentation du circuit ICL3232 montre que le 0 logique correspond à une
tension positive dont la valeur est supérieure ou égale à + 5 V (Fig. 14.7).
µ
µ
The ICL32XX maintain the RS-232 ±5V minimum transmitter output voltages even at high data rates
Figure 14.7 Extrait de la notice du circuit ICL3232
3.b) Le 1 logique correspond à une tension négative dont la valeur est inférieure ou
égale à – 5 V.
3.c) Comme l’indique la notice du circuit (Fig. 14.8), les condensateurs C6 et C8 sont
utilisés pour le doubleur de tension tandis que C7 et C9 font partie de l’inverseur de
tension (convertisseurs à pompe de charge).
VCC
+
0.1 µF
+
C1+
VCC
V+
C1
C1I C L32XX
+
C2
V-
C2+
+
C3
Pin Descriptions
P IN
C4
+
C2TIN
ROUT
EN
VCC
TOUT
RIN
1000pF
V+
FUNCTION
Internally generated positive transmitter supply (+5.5 V).
V-
Internally generated negative transmitter supply (-5.5 V).
C1
External capacitor (voltage doubler) is connected to this lead.
C1-
External capacitor (voltage inverter) is connected to this lead.
C2+
External capacitor (voltage inverter) is connected to this lead.
C2-
External capacitor (voltage inverter) is connected to this lead.
5K
SHDN OR
FORCE OFF
Figure 14.8 Extrait de la notice du circuit ICL3232
4.a) Les différents bits sont repérés sur le chronogramme du signal RXA (Fig. 14.9).
82
Électronique numérique en 26 fiches
1
4
Stop
TeK
RXA
Bit de start
M Pos: 5.700ms
Bit de parité
Donnée
Bit de stop
D01D1D3 D4 D5 D6D7
OV1*
1 0 0 1 01 0 0
M 2.50ms
CH1 2.50V
Stop
TeK
CH1
M Pos: 10.00ms
RX
OV1*
CH1 1.00V
M 2.50ms
CH1
© Dunod – La photocopie non autorisée est un délit.
Figure 14.9 Chronogramme du signal RXA
4.b) Le chronogramme du signal RX est tracé en dessous de celui du signal RXA.
4.c) Le premier octet correspond à une valeur binaire 0010 1001, c’est-à-dire à 29 en
hexadécimal. Le second octet correspond à une valeur binaire 1010 1000, c’est-à-dire
à A8 en hexadécimal.
FICHE 14 – Liaison série
Openmirrors.com
83
FICHE
I
•
15
Liaison I2C
Présentation
Origine
Le bus I2C (Inter Integrated Circuit) a été développé au début des années 1980 par
Philips pour relier différents circuits électroniques de ses produits grand public. De
nombreux constructeurs ont ensuite adopté ce type de liaison.
•
Caractéristiques
Le bus I2C utilise trois fils :
– un fil pour les données (SDA) ;
– un fil pour l’horloge (SCL) ;
– un fil de masse (référence des potentiels).
Il s’agit d’une liaison série synchrone et bidirectionnelle transmettant des mots de
huit bits. Le débit est de 100 kb/s en mode standard, de 400 kb/s en mode rapide
et de 1 Mb/s en mode très rapide. Les applications du bus I2C concernent donc des
domaines où une grande rapidité n’est pas nécessaire.
Les entrées et les sorties sont en collecteur ouvert ou en drain ouvert pour éviter
les conflits électriques. Les lignes SDA et SCL doivent donc être munies de résistances de rappel qui imposent un niveau haut au repos. Le nombre de circuits reliés
est limité par la charge capacitive maximale des lignes qui vaut 400 pF.
Le bus I2C assure la communication entre un maître (par exemple un microcontrôleur)
et un esclave (par exemple une mémoire, un convertisseur numérique-analogique, etc.)
identifié par une adresse (Fig. 15.1). Plusieurs maîtres et plusieurs esclaves peuvent être
branchés sur le bus, mais le dialogue se fait entre un maître et un esclave.
VDD
Rp
Rp
Maître
Esclave
SDA
SCL
Figure 15.1 Maître et esclave
84
Électronique numérique en 26 fiches
1
5
II Protocole
•
État de repos
Quand aucune communication n’est en cours, le bus est au repos, les circuits branchés sont à l’état haute impédance (SDA et SCL à 1) et les résistances de rappel
imposent une tension égale à la tension d’alimentation
•
Prise de contrôle du bus
Pour pouvoir communiquer sur le bus, le circuit qui va devenir le maître doit en
prendre le contrôle. C’est alors lui qui impose le signal d’horloge. Le bus doit être
au repos avant la prise de contrôle : SDA et SCL à 1.
•
Condition de début et condition de fin
La transmission commence par une transition de l’état 1 à l’état 0 sur SDA alors
que SCL est à l’état 1 (condition de début) et se termine par un passage de l’état 0
à l’état 1 sur SDA alors que SCL est à l’état 1 (condition de fin) (Fig. 15.2).
SDA
SCL
© Dunod – La photocopie non autorisée est un délit.
Condition de
début
Condition de
fin
Figure 15.2 Condition de début et condition de fin
•
Transmission d’un octet
La transmission se fait par mots de huit bits envoyés successivement. L’émetteur
commence par envoyer le bit de poids le plus fort D7 sur SDA. Il valide la donnée en
appliquant un niveau 1 sur SCL. Quand SCL revient à l’état 0, l’émetteur envoie le
bit suivant D6 sur SDA, et ainsi de suite jusqu’à la transmission complète de l’octet.
•
Acquittement
À la fin de la transmission d’un octet, l’émetteur libère la ligne SDA (c’est-à-dire
que sa sortie passe à l’état haute impédance). Le récepteur doit imposer un niveau
0 pour signaler que la réception s’est déroulée correctement. C’est le bit d’acquittement (acknowledge).
FICHE 15 – Liaison I2C
Openmirrors.com
85
•
Transmission d’une adresse
Chaque esclave possède une adresse codée sur sept bits A6 à A0. La transmission
de l’adresse se fait sur un octet au format suivant :
– D7 à D1 : 7 bits d’adresse ;
– D0 : bit R/W, un état 0 indique une transmission (écriture, write) et un état 1
indique une demande de donnée (lecture, read).
Dans le cas particulier d’une mémoire, il faut au moins deux octets : le premier est
l’adresse du circuit et les autres correspondent à l’adresse interne.
•
Écriture d’une donnée
La trame comporte (Fig. 15.3) :
– la condition de début,
– l’envoi de l’adresse,
– le choix du mode écriture (R/W à 0),
– le transfert des données,
– la condition de fin.
0
S
Adresse
R/W
A
Donnée
État imposé par l'émetteur
A
Donnée
A
P
S condition de début
A bit d'acquittement
P condition de fin
État imposé par le récepteur
Figure 15.3 Écriture d’une donnée
•
Lecture d’une donnée
La trame comporte (Fig. 15.4) :
– la condition de début,
– l’envoi de l’adresse,
– le choix du mode lecture (R/W à 1),
– le transfert des données,
– la condition de fin.
1
S
Adresse
R/W
A
État imposé par l'émetteur
État imposé par le récepteur
Donnée
A
S condition de début
A bit d'acquittement
P condition de fin
Figure 15.4 Lecture d’une donnée
86
Électronique numérique en 26 fiches
Donnée
A
P
1
5
Mémorisation des données d’une bouée
de signalisation maritime
Le système considéré est une bouée se signalisation maritime déjà rencontrée dans
les fiches 11 et 14. L’étude porte sur la deuxième partie de la fonction FS38 : mémoriser les données du feu. Cette fonction permet de sauvegarder les données du feu
recueillies par le microcontrôleur (tension et courant (U, I) de la batterie et l’information « état du feu »), dans une mémoire à accès série par bus I2C (Fig. 15.5).
VDD
R10
4,7 kΩ
R9
4,7 kΩ
Microcontrôleur
PIC 16LF877
Mémoire
FM24CL64
SDA
SCL
Figure 15.5 Liaison I2C entre le microcontrôleur et la mémoire
© Dunod – La photocopie non autorisée est un délit.
1. Donner les principales caractéristiques de ce type de bus.
2. Quel est le rôle des résistances R9, R10 connectées sur les fils SCL et SDA ?
3. Justifier les valeurs de ces résistances, sachant que les caractéristiques électriques
des sorties du microcontrôleur sont IOL = 1mA et VOLmax = 0,4 V.
4. Consulter la documentation technique de la mémoire FM24CL64 sur le site
Internet de son fabricant, Ramtron (www.ramtron.com). Repérer sur le chronogramme (Fig. 15.6) les champs : adresse MSB, données, adresse de IC6, adresse
LSB.
By Master
Start
S
By FM24CL64
Stop
A
A
A
AP
Acknowledge
Figure 15.6 Chronogramme
FICHE 15 – Liaison I2C
Openmirrors.com
87
Solution
1. Le bus I2C est une liaison série synchrone et bidirectionnelle qui convient à toutes
les applications où la vitesse n’est pas un critère primordial.
Le bus I2C utilise trois fils :
– un fil pour les données (SDA) ;
– un fil pour l’horloge (SCL) ;
– un fil de masse.
2. R9 et R10 sont des résistances de rappel indispensables car la sortie des composants
I2C est à drain ouvert pour permettre le branchement de plusieurs circuits sur les
mêmes fils.
3. Pour maintenir un niveau de tension correspondant à un état bas, il faut que la tension de sortie reste inférieure à VOLmax malgré la circulation d’un courant pouvant
atteindre IOL. Cela impose une valeur minimale pour les résistances R9 et R10 :
Rmin =
3,3 − 0,4
VD D − VO Lmax
=
= 2,9 kΩ
IO L
1
La valeur choisie pour les résistances (4,7 kΩ) est bien supérieure à ce minimum, avec
une marge de sécurité suffisante.
4. La documentation technique de la mémoire FM24CL64 nous fournit le chronogramme correspondant à la lecture d’un octet (Fig. 15.7).
Start
By Master
S
Stop
Address & Data
Slave Address
0 A
Address MSB
A
Address LSB
A
Data Byte
By FM24CL64
Acknowledge
Figure 15.7 Extrait de la documentation de la mémoire FM24CL64
Les différents champs peuvent ainsi être repérés (Fig. 15.8).
Adresse de
IC6
By Master
Adresse
MSB
Adresse
LSB
Start
S
Stop
A
A
Acknowledge
By FM24CL64
Figure 15.8 Chronogramme complété
88
Données
Électronique numérique en 26 fiches
A
AP
A
P
FICHE
Algorithmes
et algorigrammes
I
16
Algorithme
Un algorithme est la description d’une suite finie d’actions qui permettent d’aboutir à
un résultat déterminé. Il est décrit avec une notation indépendante des langages de
programmation.
II Algorigramme
C’est une représentation graphique de l’algorithme qui utilise un certain nombre de
symboles définis par la norme ISO 5807, Traitement de l’information – Symboles de
documentation et conventions applicables aux données, aux organigrammes de programmation et d’analyse, aux schémas des réseaux de programmes et des ressources
de système, qui date de 1985 (Fig. 16.1).
© Dunod – La photocopie non autorisée est un délit.
Symboles de traitement
Symboles auxiliaires
Symbole général
Opération ou groupe
d'opération sur des
données, instructions,
etc. pour laquelle il
n'existe aucun symbole
normalisé
Fonction ou sousprogramme
Portion de programme
considérée comme une
simple opération
Entrée-sortie
Mise à disposition d'une
information à traiter ou
enregistrement d'une
information traitée
Renvoi
Symbole utilisé deux fois
pour assurer la continuité
lorsqu'une partie de ligne
de liaison n'est pas
représentée
Début, fin, interruption
Début, fin ou interruption
d'un algorigramme
Symboles de test
NON
OUI
Branchement
Exploitation de conditions
variables impliquant le
choix d'une voie parmi
plusieurs
Figure 16.1 Principaux symboles utilisés dans les algorigrammes
FICHE 16 – Algorithmes et algorigrammes
Openmirrors.com
89
Les différents symboles sont reliés entre eux par des lignes de liaison. Le sens général
des lignes est de haut en bas et de gauche à droite. Lorsque le sens ainsi défini n’est
pas respecté, des flèches indiquent le sens utilisé (Fig. 16.2).
Sens particulier
(de bas en haut)
TEST
Sens général
(de haut en
bas)
OUI
NON
Figure 16.2 Lignes de liaison
Un algorigramme permet une visualisation commode du programme qui va être réalisé. Cependant, il n’est pas adapté à un problème complexe. La description par algorigramme devient vite lourde à manipuler et elle ne conduit pas à une bonne structuration du programme.
Mesure de période
L’exercice porte sur un dispositif de mesure de niveau de carburant dans un réservoir
d’avion. Le principe en a été étudié dans l’ouvrage Électronique analogique de la
même collection : le niveau est détecté par un capteur capacitif (fiche 2) puis l’information est transformée en fréquence (fiche 14). Il s’agit ici de mesurer la période
correspondante grâce à un microcontrôleur.
Le temporisateur programmable (timer) du microcontrôleur est configuré en compteur 16 bits (TL0 : octet de poids faible, TH0 : octet de poids fort). Dès sa validation
et tant qu’il reste validé, il compte les périodes d’horloge du microcontrôleur dont la
fréquence est celle du quartz (Fquartz = 12 MHz) divisée par 12 (Fig. 16.3).
Timer
Oscillateur
(Fquartz)
Diviseur par
12
TH0
(8 bits)
12 MHz
Figure 16.3 Mesure de la période
90
Électronique numérique en 26 fiches
TL0
(8 bits)
1
6
Le sous-programme de mesure, appelé dans la boucle du programme principal exécuté par le microcontrôleur est organisé de la façon suivante (Fig. 16.4).
Sélectionner capteur
Initialiser compteur à N
Valider timer
Autoriser interruptions INT0
COMPTEUR
OUI
>0?
NON
Interdire interruptions IN0
Dévalider timer
Calculer période
© Dunod – La photocopie non autorisée est un délit.
Figure 16.4 Sous-programme de mesure
COMPTEUR est une variable permettant le décompte des périodes chronométrées.
N est le nombre de périodes à chronométrer. Les interruptions INT0 se produisent,
lorsqu’elles sont autorisées, sur les fronts descendants du signal au point P7 (signal
provenant du capteur sélectionné) (Fig. 16.5).
Durée de la mesure N impulsions
P7
t
Interdire les
interruptions INT0
RAZ timer
Autorisation des interruptions
Valeur numérique atteinte
par timer
Figure 16.5 Signal au point P7
FICHE 16 – Algorithmes et algorigrammes
Openmirrors.com
91
Proposer un algorigramme du programme d’interruption sachant que celui-ci doit :
– assurer la mise à zéro de TIMER lors du premier front sur INT0 (choisissez un test
portant sur la valeur de COMPTEUR),
– gérer la variable COMPTEUR.
Solution
Le programme d’interruption teste la valeur du compteur en la comparant à N et décrémente le compteur (Fig. 16.6).
Début interruption
Test du nombre de
périodes
COMPTEUR =
N?
NON
OUI
Initialisation
Décrémentation de la
valeur du compteur
Mise à 0 du timer
COMPTEUR = COMPTEUR – 1
Fin interruption
Figure 16.6 Programme d’interruption
92
Électronique numérique en 26 fiches
Notions
d’algorithmique
I
FICHE
17
Langage de description d’algorithme
Un langage de description d’algorithme permet de décrire un algorithme en utilisant
un langage proche du langage naturel et indépendant des langages de programmation.
Il conduit à une définition claire et précise des opérations à effectuer et il est facilement transcrit dans un langage de programmation structurée. Le langage de description d’algorithme ne fait pas l’objet de normalisations et diffère donc selon les auteurs
Il Construction d’un algorithme
© Dunod – La photocopie non autorisée est un délit.
•
Programmation structurée
L’écriture d’un programme passe par les étapes suivantes :
– énoncer clairement et complètement le problème à résoudre ;
– faire intervenir des mécanismes de suite qui permettent d’aboutir au résultat ;
voulu à partir des données : c’est la formalisation ;
– structurer ce formalisme à l’aide de schémas de programme (voir plus loin). On
obtient alors l’algorithme ;
– traduire le mécanisme de suite à l’aide de variables. On obtient alors le programme ;
– analyser les résultats pour déceler d’éventuelles erreurs et en situer le niveau.
•
Présentation de l’algorithme
– Données : ce sont les paramètres sur lesquels l’algorithme va opérer.
– Initialisations : c’est la définition des conditions de départ de l’algorithme. Les
initialisations sont déduites de la formalisation.
– Corps : c’est la description des actions réalisées par l’algorithme.
– Résultats : c’est l’énoncé des résultats obtenus.
FICHE 17 – Notions d’algorithmique
Openmirrors.com
93
•
Analyse descendante
Le principe est d’isoler les problèmes en résolvant les plus généraux avant de descendre aux particuliers.
On suppose a priori solubles les problèmes de niveau inférieur : on résoudra effectivement ces problèmes lorsque ceux du niveau supérieur seront entièrement résolus.
III Schémas de programme
Il y en a trois :
– la séquence,
– l’alternative,
– l’itération.
•
Séquence
C’est une suite d’opérations, ou d’instructions, à exécuter sans condition.
•
Alternative
Elle est de la forme :
si < condition >
alors < faire ceci >
sinon < faire cela >
fin si
< condition > est une expression logique qui peut être vraie ou fausse.
<faire ceci>, <faire cela> peuvent être une séquence courte ou un appel à une procédure, c’est-à-dire une demande d’exécution d’une séquence plus longue et externe.
On peut emboîter ou mettre en cascade des alternatives :
si < condition 1 >
alors si < condition 2 >
alors < faire ceci >
sinon < faire cela >
fin si
sinon < faire autre chose >
fin si
La généralisation de l’alternative mène au schéma de choix :
choisir selon cas
cas 1 < faire traitement 1 >
cas 2 < faire traitement 2 >
cas 3 < faire traitement 3 >
...
cas n < faire traitement n >
autrement < faire traitement n+1 >
fin cas
94
Électronique numérique en 26 fiches
1
7
•
Itération
C’est la structure de boucle, dans laquelle on répète une séquence. Une boucle doit
avoir :
– une initialisation,
– au moins un critère d’arrêt réalisable.
On utilise deux types de boucles :
– la boucle à exécution inconditionnelle (itération arithmétique) qui consiste en la
répétition d’une séquence un nombre prédéterminé de fois.
pour i allant de n1 à n2 par pas de j
faire < ceci et cela >
fin pour
i est l’indice de boucle.
n1 est la valeur initiale de l’indice de boucle.
n2 est la valeur finale de l’indice de boucle.
j est la valeur de l’incrément de l’indice de boucle.
– la boucle à exécution conditionnelle (itération logique) : l’entrée dans la boucle,
ou la sortie de la boucle, est soumise à une condition.
© Dunod – La photocopie non autorisée est un délit.
Tant que < condition >
Faire < plein de choses>
Fin tant que
La condition est testée avant l’entrée :
on peut ne pas entrer dans la boucle
Répéter
Faire < tout cela >
Jusqu’à < condition>
La condition est testée avant la sortie :
on exécutera la boucle au moins une fois
Remarques Il ne faut pas sortir d’une itération par une alternative.
Il ne faut pas entrer dans une itération ailleurs qu’à son début.
Les boucles conditionnelles doivent comporter un traitement menant à
la réalisation de la condition (critère d’arrêt).
C o nv e r s i o n e n s u i t e d e c a r a c t è r e s A S C I I
Convertir un nombre binaire codé sur 16 bits, non signé, en une suite de caractères
ASCII représentatifs de son équivalent en décimal. Chaque zéro non significatif sera
remplacé par le caractère blanc (espace).
Exemples :
$FFFF = 65535 en décimal, soit la suite de codes ASCII :
$36
$35
$35
$33
$35
FICHE 17 – Notions d’algorithmique
Openmirrors.com
95
$0210 = 528 en décimal, soit la suite de codes ASCII :
$20
$20
$35
$32
$38
Écrire un algorithme qui résout ce problème.
Solution
Il y a trois tâches à exécuter pour parvenir au résultat :
– trouver les chiffres qui composent l’équivalent décimal du nombre à convertir,
– convertir un chiffre en son code ASCII,
– remplacer les zéros non significatifs par des espaces (caractères blancs).
1re tâche : trouver les chiffres qui composent l’équivalent décimal du nombre à convertir en caractères ASCII (conversion binaire-décimal)
Remarque
Par commodité, on écrit le nombre binaire en hexadécimal.
HEXA est le nombre binaire, codé sur 16 bits. En décimal on peut écrire :
0 ! HEXA ! 65535.
On pourra donc écrire HEXA en décimal au moyen de 5 chiffres au maximum, soit :
H E X A = a4 .104 + a3 .103 + a2 .102 + a1 .101 + a0 .100
On appellera, par commodité :
a4 DMILLE
a3 MILLE
a2 CENT
a1 DIX
a0 UNITE
Il vient donc :
DMILLE = partie entière du quotient HEXA/104
Pour déterminer MILLE, il faut retrancher DMILLE x 104 à HEXA (on obtient le reste
de la division entière précédente), puis effectuer la division entière de ce reste par 103.
On procède de la même façon pour CENT et DIX. UNITE sera le reste de la dernière
division entière. On obtient ainsi un premier algorithme, sous forme de séquence.
Données
Nombre à convertir
Initialisations
Affecter à HEXA la valeur du nombre à convertir
Corps de l’algorithme
Début
Calculer la partie entière du quotient HEXA/104
Affecter ce résultat à DMILLE
96
Électronique numérique en 26 fiches
1
7
© Dunod – La photocopie non autorisée est un délit.
Calculer le reste de la division entière HEXA/104
Affecter ce résultat à RESTE_1
Calculer la partie entière du quotient RESTE_1/103
Affecter ce résultat à MILLE
Calculer le reste de la division entière RESTE_1/103
Affecter ce résultat à RESTE_2
Calculer la partie entière du quotient RESTE_2/102
Affecter ce résultat à CENT
Calculer le reste de la division entière RESTE_2/102
Affecter ce résultat à RESTE_3
Calculer la partie entière du quotient RESTE_3/10
Affecter ce résultat à DIX
Calculer le reste de la division entière RESTE_3/10
Affecter ce résultat à UNITE
Fin
Résultats
DMILLE = chiffre des dizaines de millier
MILLE = chiffre des milliers
CENT = chiffre des centaines
DIX = chiffre des dizaines
UNITE = chiffre des unités
On peut réécrire le corps de cet algorithme en utilisant un opérateur d’affectation (=)
et en remarquant qu’on peut n’utiliser qu’une seule variable RESTE :
Début
DMILLE = partie entière de (HEXA/104)
RESTE = reste de la division entière (HEXA/104)
MILLE = partie entière de (RESTE/103)
RESTE = reste de la division entière (RESTE/103)
CENT = partie entière de (RESTE/102)
RESTE = reste de la division entière (RESTE/102)
DIX = partie entière de (RESTE/10)
UNITE = reste de la division entière (RESTE/10)
Fin
2e tâche : convertir un chiffre en son code ASCII
On peut appliquer deux méthodes : soit on ajoute $30 au code binaire du chiffre codé
sur un octet, soit on force à 1 les bits 4 et 5 de l’octet concerné.
L’algorithme peut s’écrire :
Données
Pile contenant le code binaire des valeurs de DMILLE, MILLE, CENT, DIX et
UNITE.
FICHE 17 – Notions d’algorithmique
Openmirrors.com
97
Initialisations
AdressePile à HautdePile
Corps de l’algorithme
Répéter
Forcer à 1 les bits 4 et 5 de l’octet situé à l’adresse AdressePile
Incrémenter AdressePile
Jusqu’à AdressePile=BasdePile
Résultats
Pile contenant le code ASCII des chiffres DMILLE, MILLE, CENT, DIX et
UNITE.
3e tâche : “Effacer” les zéros non significatifs à gauche, ce qui revient à les remplacer par un espace donc de forcer à 0 le bit 5.
Il faut remplacer les zéros à gauche dans deux cas :
• ce zéro est tout à fait à gauche ;
• ce zéro est à droite d’un zéro déjà effacé, sauf si c’est celui des unités.
L’algorithme peut s’écrire :
Données
Pile contenant le code ASCII des valeurs de DMILLE, MILLE, CENT, DIX et
UNITE.
Initialisations
Pointeur = HautdePile
Bas = BasdePile
Corps de l’algorithme
Si (octet à l’adresse Pointeur = $30)
Alors Début
Forcer à 0 le bit 5 de l’octet à l’adresse Pointeur
Tant que (Pointeur > Bas – 2) et (octet à l’adresse Pointeur + 1 = $30
Si (octet à l’adresse pointeur = $20)
Alors Début
Forcer à 0 le bit 5 de l’octet à l’adresse Pointeur + 1
Incrémenter Pointeur
Fin
Fin Si
Fin Tant que
Fin
Fin Si
Résultats
Pile contenant le code ASCII des caractères à afficher.
Remarque
Tant que (Pointeur > Bas – 2) doit se comprendre Tant que (Pointeur + 1 > Bas – 1)
98
Électronique numérique en 26 fiches
Langage
de programmation C
I
FICHE
18
Introduction
C est un langage de programmation d’usage général qui possède les outils nécessaires
à une programmation structurée.
Un programme écrit en C se décompose en fonctions qui travaillent sur des variables.
Il doit obligatoirement comporter au moins une fonction, la fonction main.
C’est un langage compilé : le programme source, écrit à l’aide d’un éditeur de texte,
est traduit par le compilateur qui en fait un fichier objet exécutable par le processeur
de la machine de destination.
© Dunod – La photocopie non autorisée est un délit.
II Compilation
Le compilateur procède en quatre étapes. La première met en forme le code source.
Elle est effectuée par le préprocesseur. La deuxième étape, la compilation, traduit le
code source mis en forme en code assembleur, puis vient la phase d’assemblage, la
troisième étape, pendant laquelle le code assembleur est traduit en langage machine
dont le code est rangé dans un fichier objet composé de plusieurs parties. La quatrième étape consiste à réunir les différentes parties obtenues dans un unique fichier au
moyen de l’éditeur de liens.
III Composants de base du C
On trouve sept groupes de composants :
– les identificateurs : leur rôle est de donner un nom à une entité du programme ;
– les mots-clefs : ce sont des mots réservés pour le langage lui-même. Les spécificateurs de stockage, les spécificateurs de type, les qualificateurs de type, les instructions de contrôle constituent les principales catégories de mots-clefs ;
– les constantes : ce sont des valeurs qui apparaissent littéralement dans le code
source ;
– les chaînes de caractères : ce sont des suites de caractères, tels que les chiffres et
les lettres ;
FICHE 18 – Langage de programmation C
Openmirrors.com
99
– les opérateurs : ce sont des symboles qui indiquent des opérations telles que l’affectation d’une valeur à une variable, une opération arithmétique, etc. ;
– les signes de ponctuation : la virgule qui permet de séparer des entités dans une
énumération ;
– les commentaires : il s’agit de texte informatif destiné aux lecteurs et usagers du
programme.
IV Structure d’un programme C
Dans un programme C, on appelle expression une suite de composants de base. Suivie
d’un point virgule, une expression devient une instruction. Plusieurs instructions mises
entre une accolade ouvrante { et une accolade fermante } forment une instruction composée, ou bloc, équivalent à une instruction unique.
Une instruction composée d’un spécificateur de type et d’une liste d’identificateurs
séparés par une virgule est une déclaration.
Un programme C se présente ainsi :
– les directives au préprocesseur ;
– les déclarations de variables externes ;
– la fonction principale, appelée main, composée de déclarations de variables
internes et d’instructions ;
– les fonctions secondaires.
V Types prédéfinis
Le C est un langage typé : toute variable, constante ou fonction est d’un type précis,
qui détermine la façon dont elle est représentée en mémoire. Les types de base en C
sont les caractères, les entiers et les flottants (nombres réels).
VI Constantes
Une constante est une valeur qui apparaît littéralement dans le code source d’un programme. Il y a quatre types de constantes : entier, flottant, caractère et énumération.
VII Opérateurs
Il y a :
– l’opérateur d’affectation ;
– les opérateurs arithmétiques ;
100
Électronique numérique en 26 fiches
1
8
– les opérateurs relationnels ;
– les opérateurs logiques booléens ;
– les opérateurs logiques bit à bit ;
– les opérateurs d’affectation composée ;
– les opérateurs d’incrémentation et de décrémentation ;
– l’opérateur virgule ;
– l’opérateur conditionnel ternaire ;
– l’opérateur de conversion de type ;
– l’opérateur adresse.
VIII Instructions de branchement
conditionnel
Elles permettent de choisir les instructions à exécuter à partir du résultat d’un test
effectué sur une expression. Il y a le branchement conditionnel, et le branchement
multiple.
IX Boucles
© Dunod – La photocopie non autorisée est un délit.
Elles permettent de répéter une série d’instructions, autant de fois qu’il est nécessaire
pour réaliser une condition. La condition peut être testée soit avant de commencer à
exécuter la série d’instructions, soit après l’avoir exécutée une fois.
X Instructions de branchement non
conditionnel
Il y en a deux : break qui permet d’interrompre le déroulement d’une boucle et de
continuer l’exécution du programme à la première instruction qui suit la boucle et
continue qui permet de passer au tour de boucle suivant, sans exécuter le reste des instructions de la boucle.
XI Fonctions d’entrées-sorties
La fonction d’écriture formatée convertit la donnée à sortir selon le format particulier
choisi et la fonction de saisie formatée permet de saisir des données au clavier et de
les ranger à un endroit spécifié. D’autres fonctions permettent respectivement de lire
et écrire des caractères. Ces fonctions d’entrées-sorties sont dites non formatées.
FICHE 18 – Langage de programmation C
Openmirrors.com
101
XII Types composés
Ils sont construits à partir des types prédéfinis. Il y a :
– le tableau, ensemble fini d’éléments du même type ;
– la structure, suite finie d’éléments de types différents ;
– les champs de bits, c’est une structure particulière ;
– l’union, ensemble de variables de types différents ;
– l’énumération, c’est un type défini par la liste des valeurs qu’il peut prendre.
XIII Pointeur
C’est une variable qui contient l’adresse d’une autre variable. Un pointeur permet l’accès indirect à une variable.
XIV Variables
Une variable est un emplacement dans la mémoire vive (RAM) dont le contenu peut
être lu et écrit. La taille de cet emplacement sera fonction du type de la variable qu’il
doit contenir. On distingue les types simples dont la taille va de un octet (type char) à
douze octets (type long double), les types tableaux qui regroupent plusieurs variables
de type simple, les types construits, créés à partir d’un type existant et les type pointeurs qui permettent d’accéder indirectement à une autre variable.
XV Fonctions
Les fonctions sont des suites d’actions à effectuer, décrites par des instructions. Elles
reçoivent des paramètres et peuvent retourner un résultat.
Mémorisation des données d’une bouée
de signalisation maritime
On reprend l’étude de la liaison I2C commencée dans l’exercice de la fiche 15 et on
s’intéresse ici à l’aspect logiciel.
La partie du programme à étudier permet de configurer la liaison I2C, ainsi que les
modes lecture et écriture d’une donnée dans la mémoire.
On demande de :
– compléter l’espace commentaire des lignes de programme,
– compléter les chronogrammes du signal SDA répondant au programme d’écriture
dans la mémoire,
102
Électronique numérique en 26 fiches
1
8
– écrire une ligne de programme permettant la lecture d’un mot à une adresse
donnée.
Consulter les pages 25 et 29 du document « MPLAB C18 C Compiler Librairies »,
de référence DS51297D sur le site Internet du constructeur du microcontrôleur,
Microchip (www.microchip.com).
1. Commenter les lignes de programme ci-dessous (compléter les espaces en
pointillés)
OpenI2C (MASTER, SLEW_OFF);//...........................
SSPAD = 39;
While (1)
{
EEByteWrite (0xA0, 0x3C, 0x00, 0xE5);//.......................
}
2. Compléter le datagramme SDA ci-dessous (Fig. 18.1) pour l’instruction suivante :
EEByteWrite (0xA0, 0x3C, 0x00, 0xE5)
S
A
A
A
AP
Figure 18.1 Datagramme à compléter
3. Quel est le rôle du bit A (acknowledge) ?
Solution
© Dunod – La photocopie non autorisée est un délit.
1. On utilise deux extraits du document technique (Fig. 18.2 et 18.3).
Les lignes de programme complétées sont :
OpenI2C (MASTER, SLEW_OFF); //Mode maître, mode 100 kHz
SSPAD = 39;
While (1)
{
EEByteWrite (0xA0, 0x3C, 0x00, 0xE5); // Écriture a l’adresse $3C00
de la donnée $E5
}
2. Le datagramme est complété (Fig. 18.4) avec :
$A0 %1010 0000 (adresse de IC6)
$3C %0011 1100 (adresse MSB de la donnée)
$00 %0000 0000 (adresse LSB de la donnée)
$E5 %1110 0101 (valeur de la donnée)
3. Le bit d’acquittement (acknowledge) est envoyé par le composant esclave pour indiquer qu’il a bien reçu les données. La fin de réception d’un octet est signalée par la
mise à 0 de ce bit.
FICHE 18 – Langage de programmation C
Openmirrors.com
103
Figure 18.2 Extrait du document technique de Microchip (p. 25)
Figure 18.3 Extrait du document technique de Microchip (p. 29)
Adresse de
IC6
Adresse
MSB
Adresse
LSB
Données
S 1 0 1 0 0 0 0 0 A 0 0 1 1 1 1 0 0 A 0 0 0 0 0 0 0 0 A1 1 1 0 0 1 0 1 A P
Figure 18.4 Datagramme complété
104
Électronique numérique en 26 fiches
Langage assembleur
I
•
FICHE
19
Généralités
Introduction
Un assembleur est un programme qui traite les instructions d’un programme source écrit en langage d’assemblage pour en faire un programme objet en langage
machine exécutable.
On utilise un cross-assembleur lorsque le programme source est écrit et édité sur
une machine, l’hôte, alors que l’exécutable est destiné à une autre machine, la
cible. Par exemple, l’hôte est un ordinateur PC et la cible un système construit
autour d’un microcontrôleur.
© Dunod – La photocopie non autorisée est un délit.
•
Langage d’assemblage
Le langage symbolique utilisé pour écrire le programme source qui sera traité par
l’assembleur est appelé langage d’assemblage. C’est un ensemble de symboles
mnémoniques qui représentent toutes les instructions provenant du jeu d’instructions du microprocesseur, des directives pour l’assembleur, des noms symboliques,
des opérateurs et des symboles spéciaux.
Le programmeur écrit le programme source avec un éditeur de texte simple afin de
produire un fichier ASCII qui pourra être traité par l’assembleur. Il doit respecter
un format et une syntaxe propre au microprocesseur qui équipe le système sur
lequel sera exécuté le programme objet.
•
Processus d’assemblage
L’assembleur exécute deux passes. Durant la première, le programme source est lu
afin d’établir une table des symboles. Pendant la seconde passe, le fichier objet est
créé (assemblé) en tenant compte de la table des symboles. C’est durant la seconde passe qu’est produit le listing du programme source.
Chaque instruction source est traitée complètement avant la lecture de la suivante.
Pendant ce processus, l’assembleur examine le champ étiquette (ou label), le
champ opération et le champ opérande. Il vérifie la validité du code opération,
insère le code machine correspondant dans le fichier objet et exécute les directives
d’assemblage.
FICHE 19 – Langage assembleur
Openmirrors.com
105
Toute erreur détectée par l’assembleur est signalée par un message qui précède la ligne
qui la contient. Si le fichier listing n’est pas produit, un message d’erreur est affiché
pour indiquer que l’assemblage ne s’est pas déroulé normalement.
II Programmes en langage
d’assemblage
•
Introduction
Les programmes écrits en langage d’assemblage sont constitués d’une suite d’instructions source. Chaque instruction source est composée d’une suite de caractères
ASCII qui se termine par un retour chariot (obtenu par la touche Entrée ou Retour).
•
Format des instructions sources
Toute instruction source peut contenir jusqu’à quatre champs : le champ étiquette
(ou le caractère * dans le cas d’une ligne de commentaire), le champ opération, le
champ opérande et le champ commentaire.
Champ étiquette
Il peut se présenter sous trois formes :
– une étoile (*) comme premier caractère dans le champ étiquette indique que
le reste de l’instruction source est un commentaire. Les commentaires sont
ignorés par l’assembleur et sont imprimés dans le listing source pour information ;
– un espace ou une tabulation en première position du champ étiquette indique
que ce champ est vide. La ligne n’a pas d’étiquette et n’est pas un commentaire ;
– un symbole constitué de 1 à 15 caractères dont le premier se trouve en première position du champ étiquette constitue l’étiquette. Les caractères admis
sont : les lettres minuscules et majuscules (a à z, sans accent), les chiffres 0 à
9, les trois caractères spéciaux suivants, le point (.), le dollar ($), et le souligné (_). Le premier caractère ne peut être ni le dollar ni un des chiffres.
L’assembleur fait la distinction entre les majuscules et les minuscules.
Un symbole ne peut se trouver qu’une seule fois dans le champ étiquette. Dans le
cas contraire, chaque référence à ce symbole sera marquée par un message
d’erreur.
À l’exception de quelques directives, la valeur du compteur de programme correspondant à l’instruction ou la donnée en cours d’assemblage est affectée à l’étiquette. La valeur affectée à l’étiquette est absolue. On peut utiliser les deux
106
Électronique numérique en 26 fiches
1
9
points (:) pour terminer une étiquette. Ils ne feront pas partie de l’étiquette et ne
serviront qu’à séparer l’étiquette du reste de la ligne.
Une étiquette peut se trouver seule sur une ligne. Dans ce cas, l’assembleur interprète cela en affectant à l’étiquette la valeur actuelle du compteur de programme.
La table des symboles peut contenir au moins 2 000 symboles de 8 caractères. Ce
nombre sera réduit si la longueur des symboles est plus grande.
© Dunod – La photocopie non autorisée est un délit.
Champ opération
Le champ opération vient après le champ étiquette dont il doit être séparé par au
moins un caractère espace. Il doit contenir un mnémonique valable ou une directive d’assemblage. Les lettres majuscules de ce champ sont transformées en minuscules avant la vérification de la validité du mnémonique. Ainsi NOP, Nop et nop
sont reconnus comme le même mnémonique.
Il y a deux types de données valides dans ce champ :
– code opération (Opcode)
Il doit correspondre à une instruction de la machine. Le code opération comporte le nom du registre associé à l’instruction. Ces noms de registre doivent
être séparés du code opération par un ou plusieurs espaces. Dans ces conditions, clra signifie mettre à 0 l’accumulateur A, mais clr a signifie mettre à 0
l’emplacement mémoire identifié par l’étiquette a.
– directive
C’est un code opération spécial connu de l’assembleur et qui permet de
contrôler le processus d’assemblage (voir directives d’assemblage).
Champ opérande
L’interprétation du champ opérande dépend du contenu du champ opération. Le
champ opérande, s’il est nécessaire, doit suivre le champ opération et doit être précédé par un espace au moins. Le champ opérande peut contenir un symbole, une expression ou une combinaison de symboles et d’expressions séparés par des virgules.
Syntaxe de l’opérande pour le microcontrôleur M68HC11
Format de l’opérande
Mode d’adressage
Pas d’opérande
<expression>
#<expression>
<expression>,X
<expression>,Y
<expression1> <expression2>
<expression1> <expression2> <expression3>
><expression>
<<expression>
Inhérent ou accumulateur
Direct, étendu ou relatif
Immédiat
Indexé avec le registre X
Indexé avec le registre Y
Mise à un ou à zéro de bit
Test de bit et branchement
Étendu
Direct en page 0
Note : les parenthèses () sont utilisées pour distinguer des éléments optionnels alors que les crochets triangulaires <> indiquent qu’une expression est insérée. Ces caractères sont utilisés pour clarifier la présentation et
ne font pas partie du programme source. Tous les autres caractères sont significatifs et doivent être utilisés
quand c’est indiqué.
FICHE 19 – Langage assembleur
Openmirrors.com
107
Les opérandes des instructions de manipulation de bit sont séparés par des espaces.
<expression1> identifie l’opérande et peut indiquer soit un adressage direct, soit un
adressage indexé. Dans ce dernier cas, <expression1> est suivi de ,X ou ,Y.
<expression2> est le masque. C’est un octet dans lequel chaque bit mis à 1 indique
qu’il est concerné par l’instruction de manipulation de bit. Il doit être codé par le
programmeur. <expression3> indique le déplacement utilisé pour le branchement
(adressage relatif). Le symbole > devant une expression force l’adressage étendu
alors que le symbole < force l’adressage direct en page 0.
Expressions. Une expression est une combinaison de symboles, de constantes,
d’opérateurs algébriques et de parenthèses. Elle détermine une valeur qui doit être
utilisée comme opérande. Les expressions peuvent être constituées de symboles,
de constantes ou du caractère * qui signifie « valeur actuelle du compteur de programme » reliés entre eux par un des opérateurs : + - * / % & | ^
Opérateurs. Ce sont ceux utilisés également par le langage C :
Opérateur
Signification
+
–
*
/
%
&
|
^
Addition
Soustraction
Multiplication
Division
Reste de la division
ET bit à bit
OU bit à bit
OU exclusif bit à bit
Les expressions sont évaluées de gauche à droite et il n’y a pas possibilité d’utiliser de parenthèses. Les calculs utilisent des entiers en complément à 2.
Symboles. Chaque symbole est associé à une valeur entière codée sur 16 bits utilisée à la place du symbole lors de l’évaluation de l’expression. L’astérisque * utilisé dans une expression représente la valeur du compteur de programme (adresse
du premier octet d’une instruction).
Constantes. Les constantes représentent des données dont la valeur ne change pas
pendant l’exécution du programme. Il y a cinq façons de représenter des
constantes : sous forme décimale, hexadécimale, binaire, octale ou ASCII. Le programmeur indique le format utilisé au moyen de préfixes.
108
Préfixe
Format
$
Hexadécimal
%
Binaire
@
Octal
‘
ASCII
Électronique numérique en 26 fiches
1
9
Les constantes sans préfixe sont considérées comme étant du format décimal.
L’assembleur convertit les constantes en binaire et les affiche en hexadécimal dans
le fichier listing.
Une constante décimale est constituée d’une chaîne de chiffres (0 à 9). Sa valeur
doit se trouver dans l’intervalle 0-65535, bornes comprises.
Une constante hexadécimale comprend au maximum quatre caractères pris dans
l’ensemble des chiffres (0 à 9) et le sous-ensemble (A à F) des lettres et précédés
par le caractère $. Sa valeur doit se situer dans l’intervalle $0000- $FFFF, bornes
comprises.
Une constante binaire est constituée d’au maximum seize caractères pris dans le
sous-ensemble des chiffres (0 1) précédés du signe %.
Une constante octale comprend au plus six chiffres, pris parmi 0, 1, 2, 3, 4, 5, 6 et
7) et précédés de @. Sa valeur doit se situer dans l’intervalle @0-@177777, bornes
comprises.
Un caractère ASCII peut être utilisé comme constante dans les expressions, s’il est
précédé par une apostrophe. Si plusieurs caractères suivent l’apostrophe, seul le
premier est pris en compte et codé par l’assembleur. Il n’y a pas de message d’erreur.
Champ commentaire
C’est le dernier champ de l’instruction source. Il est optionnel et doit être séparé
du champ opérande, ou du champ opération s’il n’y a pas d’opérande, par au moins
un espace. Il peut contenir tout caractère ASCII imprimable. Il est ignoré de l’assembleur et apparaît dans le fichier listing dans un but de documentation.
© Dunod – La photocopie non autorisée est un délit.
•
Fichiers produits par l’assembleur
Il y en a deux : le fichier listing et le fichier objet. Le fichier listing, qui est un
fichier texte, peut être composé du listing du fichier source assemblé, de la table
des symboles et de la table des références croisées. Le fichier objet est au format
Motorola S-Record (S1 S9).
Une ligne du fichier listing du source assemblé se présente comme ceci :
Numéro de ligne Adresse Octets du code objet [Nombre de cycles] Ligne source
Numéro de ligne est un nombre décimal de 4 chiffres, utilisé dans les références
croisées.
Adresse est la valeur en hexadécimal de l’adresse du premier octet du code objet
de l’instruction.
Octets du code objet est le résultat, en hexadécimal, de l’assemblage du code opération et de l’opérande associé. S’il y a plus que six octets, les octets supplémentaires sont listés sur les lignes suivantes, sans adresse.
Nombre de cycles est optionnel. Il donne le nombre de cycles nécessaire pour exécuter l’instruction et n’est présent que si l’option c a été activée.
FICHE 19 – Langage assembleur
Openmirrors.com
109
Ligne source est la copie de la ligne du programme source.
La table des symboles sera sortie si l’option s a été activée. Elle se présente comme
une succession de lignes comportant :
Symbole Adresse
Symbole provient du champ étiquette du programme source. Adresse est l’adresse en hexadécimal de l’emplacement référencé par le symbole.
La table de références croisées sera sortie si l’option cre a été activée. Elle se présente comme une succession de lignes comportant :
Symbole Adresse Emplacement1 Emplacement2 Emplacement3 ...
Symbole et Adresse ont la même définition que celle donnée pour la table des
symboles. Emplacement1 est le numéro de la ligne où le symbole a été défini,
Emplacement2 Emplacement3 et les suivants indiquent les numéros des lignes
où le symbole est utilisé.
III Directives d’assemblage
•
Introduction
Les directives d’assemblage sont des instructions données au programme assembleur, plutôt que des instructions à traduire en code objet. Ce paragraphe décrit les
différentes directives qui peuvent être utilisées par l’assembleur. On utilisera les
notations suivantes :
– ( ) : les parenthèses signalent un élément optionnel
– XYZ : les noms des directives sont en lettres majuscules
– < > : les noms des éléments sont en lettres minuscules. Ils sont contenus dans les
crochets triangulaires. Tout ce qui n’est pas entre crochets doit être spécifié tel
quel. Par exemple, l’élément syntaxique (<nombre>,) exige une virgule si l’élément optionnel <nombre> est choisi. On utilisera les éléments suivants par la
suite :
<commentaire>
Champ de commentaire
<étiquette>
Étiquette d’une instruction
<expression>
Expression pour l’assembleur
<nombre>
Constante numérique
<chaîne>
Chaîne de caractères ASCII
<délimiteur>
Délimiteur de chaîne
<option>
Option de l’assembleur
<symbole>
Symbole de l’assembleur
110
Électronique numérique en 26 fiches
1
9
•
BSZ (Block Storage of Zero)
(<étiquette>) BSZ <expression> (<commentaire>)
La directive BSZ (ou ZMB) impose à l’assembleur de réserver un bloc d’octets et
d’assigner à chacun de ces octets la valeur 0. Le nombre d’octets est donné par
<expression> qui ne doit ni contenir de symbole défini plus loin dans le programme ou de symbole non défini, ni être nul sous peine de provoquer une erreur à l’assemblage.
•
EQU (EQUate symbol to a value)
(<étiquette>) EQU <expression> (<commentaire>)
La directive EQU assigne la valeur de <expression> à l’étiquette. On ne peut pas
redéfinir l’étiquette ailleurs dans le programme. <expression> ne peut contenir de
symbole défini plus loin dans le programme (Phasing error) ou de symbole non
défini.
•
FCB (Form Constant Byte)
(<étiquette>) FCB <expression> (,<expression>,....,<expression>) (<commentaire>)
La directive FCB peut avoir un opérande ou plusieurs qui sont alors séparés par des
virgules. La valeur de chaque opérande est tronquée à 8 bits puis est rangée dans
un octet du programme objet. L’opérande peut être une constante numérique, une
constante caractère, un symbole ou une expression.
© Dunod – La photocopie non autorisée est un délit.
•
FCC (Form Constant Character string)
(<étiquette>) FCC <délimiteur> <chaîne> <délimiteur> (<commentaire>)
On utilise la directive FCC pour stocker en mémoire une chaîne de caractères. Le
premier octet est stocké à l’adresse courante; L’étiquette se voit assigner la valeur
de l’adresse du premier octet de la chaîne. Tout caractère imprimable peut se trouver dans la chaîne qui est enfermée entre deux délimiteurs identiques. Le délimiteur est le premier caractère ASCII imprimable autre que l’espace situé après la
directive FCC.
•
FDB (Form Double Byte constant)
(<étiquette>) FDB <expression> (,<expression>,....,<expression>) (<commentaire>
La directive FDB peut avoir un opérande ou plusieurs qui sont alors séparés par des
virgules. La valeur codée sur 16 bits de chaque opérande est rangée dans deux
FICHE 19 – Langage assembleur
Openmirrors.com
111
octets consécutifs du programme objet. Le rangement commence à l’adresse courante et l’assembleur assigne à l’étiquette la valeur de l’adresse courante.
•
FILL (FILL memory)
(<étiquette>) FILL <expression>,<expression> (<commentaire>
La directive FILL indique à l’assembleur d’initialiser une zone mémoire avec une
valeur constante. La première expression donne la valeur de la constante et la
deuxième expression donne le nombre d’octets successifs à initialiser. La première expression doit se trouver dans la gamme de valeurs 0-255. Les deux expressions ne peuvent comporter ni de symbole défini plus loin dans le programme ni
de symbole non défini.
•
OPT (assembler output OPTions)
(<étiquette>) OPT <option>(,<option>,...,<option>) (<commentaire>)
La directive OPT sert à fixer le format du fichier de sortie. Les options définies par
cette directive sont prioritaires sur celles définies sur la ligne de commande qui a
lancé l’assembleur. Les options doivent être écrites en caractères minuscules.
c
Autorise l’affichage du nombre de cycles dans le listing. Le nombre total de
cycles nécessaire à l’exécution de l’instruction sera affiché après le dernier
octet de l’instruction, entre crochets rectangulaires.
cre Autorise l’édition d’une table de référence croisée à la fin du fichier listing.
Cette option doit être spécifiée avant le premier symbole dans le fichier source.
l
Édite le listing à partir de ce point. Le format du listing est donné en annexe.
Noc Interdit l’affichage du nombre de cycles nécessaire à l’exécution de l’instruction. C’est une valeur par défaut.
Nol N’édite plus de listing à partir de ce point. C’est une valeur par défaut.
S
•
Édite une table des symboles à la fin du fichier listing.
ORG (set program counter to ORiGin)
(<étiquette>) ORG <expression> (<commentaire>)
La directive ORG remplace le contenu du compteur de programme par celle donnée par <expression>. Les instructions suivantes seront assemblées dans les emplacements mémoire situés à partir de la nouvelle adresse contenue dans le compteur
de programme. S’il n’y a pas de directive ORG dans un programme source, le
compteur de programme est initialisé à la valeur 0. <expression> ne peut contenir
ni de symbole défini plus loin dans le programme ni de symbole non défini.
112
Électronique numérique en 26 fiches
1
9
•
PAGE (top of PAGE)
(<étiquette>) PAGE
Cette directive provoque un saut de page dans le fichier listing.
•
RMB (Reserve Memory Bytes)
(<étiquette>) RMB <expression> (<commentaire>)
La directive RMB réserve un nombre d’octets égal à la valeur de <expression>.
Ces octets ne sont pas initialisés à une valeur donnée. <expression> ne peut contenir ni de symbole défini plus loin dans le programme ni de symbole non défini. On
utilise cette directive pour réserver une zone de « brouillon ».
•
ZMB (Zero Memory Bytes)
(<étiquette>) ZMB <expression> (<commentaire>
© Dunod – La photocopie non autorisée est un délit.
La directive ZMB (ou BSZ) impose à l’assembleur de réserver un bloc d’octets et
d’assigner à chacun de ces octets la valeur 0. Le nombre d’octets est donné par
<expression> qui ne doit ni contenir de symbole défini plus loin dans le programme ou de symbole non défini, ni être nul sous peine de provoquer une erreur à l’assemblage.
FICHE 19 – Langage assembleur
Openmirrors.com
113
FICHE
I
20
Développement
de microcontrôleur
avec MPLAB
Présentation
Un environnement de développement est nécessaire pour développer une application
utilisant un microcontrôleur. Dans le cas des PIC, ce rôle est joué par l’environnement
de développement MPLAB de Microchip, disponible gratuitement sur le site Internet
du constructeur (www.microchip.com). Avec les outils qu’il intègre on peut :
– écrire les fichiers contenant le code source ;
– compiler, assembler et lier les fichiers sources ;
– déboguer le code exécutable à l’aide d’un simulateur et d’un émulateur temps
réel ;
– faire des mesures temporelles avec le simulateur ou l’émulateur ;
– visualiser les variables ;
– programmer les PIC.
Le logiciel permet la saisie du programme puis sa vérification. Le simulateur autorise
l’affichage de l’état des registres et des variables en temps réel, l’exécution en mode
pas à pas, la mise en place de points d’arrêts, etc. Le langage de base de la programmation est l’assembleur, mais il possible d’ajouter des modules afin de pouvoir programmer en langage C.
II Procédure
•
Créer un projet
Un projet contient, sous forme de fichiers, toutes les informations nécessaires pour
construire une application : choix du processeur, outils logiciels utilisés, nom du
projet et fichier source.
114
Électronique numérique en 26 fiches
2
0
•
Écrire et sauvegarder les fichiers source
À l’aide de l’éditeur intégré il faut saisir le texte des fichiers en respectant la syntaxe de l’assembleur puis le sauvegarder dans un fichier dont l’extension est .asm.
Ce fichier est alors ajouté au projet.
•
Construire le projet
La construction du projet provoque l’appel de la procédure d’assemblage. En cas
de problème dû à une erreur de syntaxe, la position de la ligne de programme en
erreur est signalée. Quand l’assemblage est terminé le fichier debug est chargé. Ce
fichier sera utilisé pour simuler le comportement du programme.
•
Simuler le comportement du programme
Il faut configurer le simulateur puis exécuter le programme. Une fenêtre d’observation montre l’évolution des variables et du contenu des registres utilisés dans le
programme. Il est possible d’insérer des points d’arrêt de façon à visualiser le
contenu des registres et les variables à un moment donné de l’exécution du programme. Un mode particulier, le mode Trace, permet d’enregistrer les actions du
programme pour visualiser leur effet ensuite. On peut créer des stimuli qui simulent l’influence de l’environnement sur le programme.
•
Programmer un composant
© Dunod – La photocopie non autorisée est un délit.
MPLAB permet la programmation de composants in situ. Le module ICD2 est
nécessaire.
FICHE 20 – Développement de microcontrôleur avec MPLAB
Openmirrors.com
115
FICHE
I
21
Numérisation
des signaux
Chaîne de traitement numérique
Une chaîne de traitement numérique comporte autour d’un calculateur (Fig. 21.1) :
– un dispositif d’acquisition comprenant un échantillonneur-bloqueur, souvent précédé d’un filtre anti-repliement, et un convertisseur analogique-numérique ;
– un dispositif de restitution comprenant un convertisseur numérique-analogique et
un filtre de lissage.
Filtre anti-repliement
Échantillonneur-bloqueur
Convertisseur analogique-numérique
Calculateur
Convertisseur analogique-numérique
Filtre de lissage
Figure 21.1 Organisation d’une chaîne de traitement numérique
Les deux opérations essentielles qui apparaissent dans la numérisation d’un signal
sont l’échantillonnage (effectué par l’échantillonneur-bloqueur) et la quantification
(réalisée par le convertisseur analogique-numérique).
116
Électronique numérique en 26 fiches
2
1
II Échantillonnage
•
Définition
L’échantillonnage d’un signal analogique consiste à prélever ses valeurs (appelées
échantillons) à des intervalles de temps réguliers avec une cadence suffisante pour
ne pas perdre d’information.
1
L’échantillonnage est caractérisé par sa période Te ou par sa fréquence Fe =
Te
•
Spectre d’un signal échantillonné
Le spectre d’un signal échantillonné est constitué par la répétition périodique le
long de l’axe des fréquences du spectre du signal de départ, avec une période égale
à la fréquence d’échantillonnage.
Remarque Il ne faut pas s’étonner du fait que la période soit égale à une
fréquence. Le mot période est pris ici au sens mathématique et la grandeur considérée dans le spectre est une fonction de la fréquence.
•
Théorème de Shannon
La reconstitution d’un signal à partir de ses échantillons n’est possible que si la fréquence d’échantillonnage Fe est strictement supérieure au double de la fréquence
maximale du spectre du signal :
Fe > 2 Fmax
© Dunod – La photocopie non autorisée est un délit.
Ce résultat constitue le théorème de Shannon.
Exemple La fréquence d’échantillonnage utilisée pour les cédés audio
est de 44,1 kHz. Comme la bande des audiofréquences s’étend de 20 Hz
à 20 kHz, le théorème de Shannon est bien respecté puisque la fréquence
d’échantillonnage minimale vaut 2 × 20 = 40 kHz. Le choix de la valeur
exacte 44,1 kHz n’est dû qu’à des raisons historiques liées aux premiers
enregistrements numériques sur vidéocassettes.
La fréquence d’échantillonnage minimale, 2fmax, est appelée fréquence de Nyquist.
Remarque Quand la condition de Shannon est respectée, il n’y a pas de
perte d’information lors de l’échantillonnage. Toutefois, pour retrouver le
signal de départ, il faudrait disposer d’un filtre passe-bas idéal. En pra-
FICHE 21 – Numérisation des signaux
Openmirrors.com
117
tique, il faut donc une fréquence d’échantillonnage un peu supérieure à la
fréquence de Nyquist, avec une marge plus ou moins grande selon le filtre
passe-bas utilisé.
•
Repliement
Si la condition de Shannon n’est pas respectée, les motifs adjacents du spectre
périodique se mélangent : c’est le phénomène de repliement du spectre.
•
Filtre anti-repliement
Pour éviter que des composantes indésirables du signal ne provoquent un phénomène de repliement, il faut les éliminer avant l’échantillonnage. C’est le rôle du
filtre anti-repliement : il s’agit d’un filtre passe-bas élimant les fréquences supéFe
rieures à .
2
Fe
En
La fréquence de coupure d’un filtre anti-repliement idéal doit être égale à
2
pratique, il suffit que le filtre atténue suffisamment les composantes de fréquences
Fe
supérieures à
pour que leur amplitude reste inférieure au quantum du conver2
tisseur analogique-numérique utilisé.
III Quantification
La quantification consiste à remplacer la tension u par une tension Nq multiple d’une
quantité élémentaire, le quantum q. Deux méthodes peuvent être utilisées :
– la troncature, méthode la plus simple, qui associe le nombre N à une tension u
comprise entre Nq et (N + 1)q ;
– l’arrondi, méthode la plus précise, qui associe le nombre N à une tension u com!
"
"
!
1
1
q et N +
q.
prise entre N −
2
2
La quantification conduit à une erreur d’autant plus faible que le quantum est petit.
Tr a i t e m e n t d ’ u n é l e c t r o c a r d i o g r a m m e
Le système étudié est un appareil d’acquisition et de traitement d’un électrocardiogramme. La différence de potentiel qui apparaît entre des électrodes placées sur le
corps humain est amplifiée par un amplificateur d’instrumentation. Le signal obtenu
est ensuite numérisé.
1. Choix de la fréquence d’échantillonnage
118
Électronique numérique en 26 fiches
2
1
Il s’agit de déterminer la fréquence d’échantillonnage et de mettre en évidence les
précautions à prendre pour assurer une prise correcte d’échantillons portant sur la
tension vs(t) issue de l’amplificateur d’instrumentation.
L’information utile du signal ECG est comprise dans la bande de fréquence
[0 ; Fmax] avec Fmax = 100 Hz.
a) Relever la fréquence du signal ucard(t) de l’ECG (Fig. 21.2). Exprimer cette fréquence en battements par minute.
0.5
R
Amplitude (mV)
0.4
Excitation des
ventricules
0.3
0.2
0.1
Désexcitation des
ventricules
Excitation des
oreillettes
T
P
0
Q
– 0.1
S
– 0.2
0
0.2
0.4
1
0.8
0.6
1.2
1.4
1.6
1.8
2
Temps (s)
© Dunod – La photocopie non autorisée est un délit.
Figure 21.2 Signal ECG en fonction du temps
b) Comparer cette fréquence à celle de la première raie de fréquence non nulle du
spectre de vs(t) (Fig. 21.3). Quel nom particulier donne-t-on à cette composante ?
Amplitude (V)
0,1
0
1
2
3
f (Hz)
Figure 21.3 Spectre d’amplitude du signal ECG amplifié vs(t) (détail de 0 à 3 Hz)
FICHE 21 – Numérisation des signaux
Openmirrors.com
119
Amplitude Vsb (f)
c) D’après la condition de Shannon, à partir de quelle fréquence Femin est-il possible
d’échantillonner vs(t) sans altérer le signal ECG ?
Femin est la fréquence minimale à partir de laquelle l’échantillonnage est correct. Pour
des raisons technologiques, la fréquence d’échantillonnage retenue est Fe = 448 Hz.
2. Conséquence d’une prise d’échantillons sans filtre anti-repliement
On considère deux composantes parasites issues de la tension secteur, de fréquence
f1 = 150 Hz et f2 = 400 Hz. On donne le spectre avant (Fig. 21.4) et après échantillonnage (Fig. 21.5).
f1 = 150 Hz
f2 = 400 Hz
0
100
224
300
Fréquence (Hz)
400 448
Amplitude Vsb (f)
Figure 21.4 Spectre d’amplitude de la tension vs(t) bruitée avant échantillonnage
f1 = 298 Hz
f1 = 150 Hz
f2 = 48 Hz
0
100
f2 = 400 Hz
224
300
448
Fréquence (Hz)
Figure 21.5 Spectre d’amplitude de la tension vs(t) bruitée après échantillonnage
a) Les fréquences f1 et f2 vérifient-elles la condition de Shannon ?
b) Justifier la présence de raies aux fréquences f 1" = 298 Hz et f 2" = 48 Hz.
120
Électronique numérique en 26 fiches
2
1
3. Filtre anti-repliement
a) Pour une fréquence d’échantillonnage de 448 Hz, montrer que la fréquence minimale susceptible de se replier sur le spectre utile de vs(t) vaut 348 Hz.
b) Pour la fréquence d’échantillonnage choisie, quelle doit être la valeur de la fréquence de coupure du filtre anti-repliement ?
La bande passante du filtre anti-repliement est-elle compatible avec l’occupation
spectrale du signal ECG ?
© Dunod – La photocopie non autorisée est un délit.
Solution
1.a) La période du signal ucard(t) étant Tcard = 1 s, sa fréquence est fcard = 1 Hz, ce qui
correspond à 60 battements par minute.
1.b) Cette fréquence est identique à celle de la première raie du spectre : 1 Hz. Celleci correspond au fondamental du signal.
1.c) La condition de Shannon impose une fréquence d’échantillonnage minimale
Femin = 2 Fmax, ce qui donne : Femin = 2 × 100 = 200 Hz.
2.a) Pour respecter la condition de Shannon, les fréquences doivent être inférieures à
Fe
= 224 Hz. C’est le cas pour la première fréquence, f1 = 150 Hz, mais pas pour la
2
seconde, f2 = 400 Hz.
2.b) Le phénomène de repliement du spectre fait apparaître une composante de fréquence f’ = Fe – f pour chaque fréquence f. Pour les deux composantes parasites de
fréquence f1 = 150 Hz et f2 = 400 Hz, cela donne f’1= 448 – 150 = 298 Hz et f’2 = 448
– 400 = 48 Hz.
3.a) La fréquence minimale fm susceptible de se replier dans le spectre utile est telle
que Fe – fm = Fmax, ce qui conduit à : fm = Fe – Fmax, soit : fm = 448 – 100 = 348 Hz.
448
Fe
=
3.b) La fréquence de coupure du filtre anti-repliement est fc = , soit : fc =
2
2
224 Hz. La bande passante du filtre anti-repliement est compatible avec l’occupation
spectrale du signal ECG puisque fc > Fmax.
FICHE 21 – Numérisation des signaux
Openmirrors.com
121
FICHE
I
•
22
Convertisseur
analogiquenumérique
Présentation
Définition
Un convertisseur analogique-numérique (Fig. 22.1) est un dispositif qui transforme
un signal analogique u en un mot numérique de n bits, a1, a2,... an.
a1
a2
u
a3
an
Figure 22.1 Symbole d’un convertisseur analogique-numérique
Le circuit réalise une quantification et un codage. La quantification consiste à remplacer la tension u par une tension Nq multiple d’une quantité élémentaire, le quantum q, fixé par une tension de référence Vr :
Vr
2n
Le nombre N de quantums correspondant à la tension u est tel que :
q
|u − N q| !
2
Le codage consiste à convertir la valeur décimale N en un mot binaire de n bits, a1,
a2,... an.
q=
•
Caractéristique de transfert
La caractéristique de transfert d’un convertisseur analogique-numérique donne les
mots binaires de sortie en fonction de la tension appliquée à l’entrée (Fig. 22.2).
122
Électronique numérique en 26 fiches
2
2
Nous avons considéré pour le tracé un convertisseur analogique-numérique 3 bits
afin de bien visualiser les différents paliers.
N
111
110
101
100
011
010
001
000
u
0
q
2q
3q
4q
5q
6q
7q
8q
Figure 22.2 Caractéristique de transfert d’un convertisseur analogique-numérique
•
Bruit de quantification
La différence entre la tension u à convertir et la valeur approchée Nq est l’erreur de
q q
quantification. Celle-ci est comprise entre − et . Tout se passe comme si la ten2 2
sion u était superposée à une tension parasite appelée bruit de quantification.
© Dunod – La photocopie non autorisée est un délit.
•
Convertisseur unipolaire et convertisseur bipolaire
Les convertisseurs que nous avons étudiés jusqu’à présent sont qualifiés d’unipolaires car la tension d’entrée est positive. Il existe également des convertisseurs bipolaires pour lesquels la tension d’entrée peut prendre des valeurs positives et négatives.
La sortie utilise soit un code binaire décalé, soit un code complément à 2.
II Paramètres caractéristiques
•
Pleine échelle
C’est l’étendue Up des tensions qui peuvent être converties. Elle est fixée par la
tension de référence. L’intervalle des valeurs possibles est [0, Up] pour un conver"
!
Up Up
pour un convertisseur bipolaire.
tisseur unipolaire et − ,
2 2
FICHE 22 – Conver tisseur analogique-numérique
Openmirrors.com
123
•
Résolution
C’est la variation minimale de tension d’entrée qui provoque un changement de
mot numérique en sortie (c’est-à-dire le quantum), rapportée à la pleine échelle.
Elle s’exprime en pourcentage et ne dépend que du nombre de bits du convertisseur. Par abus de langage, on caractérise souvent la résolution par le nombre de
bits.
•
Durée de conversion
C’est la durée nécessaire pour obtenir un mot numérique en sortie qui correspond
au signal analogique d’entrée. Pour connaître la fréquence maximale de conversion
possible, il faut calculer la période minimale en ajoutant à la durée de conversion
le temps nécessaire à la remise à zéro du convertisseur.
III Principaux types
•
Convertisseur à rampe
La tension à convertir est transformée en durée grâce à la génération d’une ou plusieurs rampes. Un compteur permet ensuite de convertir le temps en un nombre. Ce
principe, utilisé dans certains voltmètres numériques, conduit à des durées de
conversion élevées. Les convertisseurs à rampe sont d’un coût modeste.
•
Convertisseur à approximations successives
Il compare la tension à convertir à des tensions de référence successives. Ce principe concilie une bonne précision et une rapidité correcte. Il est très utilisé comme
convertisseur analogique-numérique associé à un capteur.
•
Convertisseur parallèle (ou flash)
Il compare simultanément la tension à convertir à une série de seuils. L’avantage
est la grande rapidité, l’inconvénient étant une plus grande complexité qui entraîne un prix plus élevé.
Banc de test pour lunettes
Un banc de test pour lunettes est un dispositif d’aide et de conseil pour la vente de
lunettes de soleil (Fig. 22.3).
Après avoir disposé la paire de lunettes sur le banc, le cycle de test peut commencer.
Sept sources lumineuses allant de l’ultraviolet à l’infrarouge éclairent successive-
124
Électronique numérique en 26 fiches
2
2
ment les lunettes. Après détection et traitement du rayonnement transmis, un écran
indique le coefficient de transmission dans chaque bande de longueur d’onde et
donne un conseil d’utilisation pour les lunettes considérées.
A2A1A0
FP1 Gestion
de la mesure et
commande de
l'affichage
Informations
pour
l’opticien et
le client
FP2
Affichage
DATA BSY
CLK CST
FREQ
LAMP
UIM1
FP3
Émissions des
rayonnements
FP4 Réception
des
rayonnements
et amplification
Lunettes
UIM2
FP5
Adaptation,
sélection et
conversion
Figure 22.3 Schéma fonctionnel simplifié
© Dunod – La photocopie non autorisée est un délit.
L’étude porte sur la fonction FP5, « Adaptation, sélection et conversion ». La tension
UIM1 est filtrée par un filtre sélectif centré sur 1,6 kHz. Un circuit spécialisé calcule
sa valeur efficace UAMP1. La tension UIM2 est simplement amplifiée pour donner
UAMP2. Le signal LAMP permet de sélectionner UAMP1 ou UAMP2 pour les convertir
en binaire en vue du traitement par FP1.
Les questions portent sur le traitement de UIM2 (Fig. 22.4). Un extrait de la documentation du circuit intégré AD7896 est fourni en annexe.
+5 V
UIM2
VCC
+
+
2
+5 V
IC4 : A
8
3
1
UAMP2
1
8
VIN
R7
33 k
k
4
P7
50 k
BSY
2
VDD
CONVST
7
3
AGND
DGND
6
4
SCLK
SDATA
5
R8
6,8 k
BSY
CST
DATA
CLK
IC12
AD7896AN
Figure 22.4 Schéma partiel de FP5
FICHE 22 – Conver tisseur analogique-numérique
Openmirrors.com
125
1. Donner l’expression littérale de UAMP2 en fonction de UIM2 et des éléments du
montage. On donne UIM2 = 200 mV. À quelle valeur doit-on régler P7 pour obtenir
UAMP2 = 2 V ?
2. Le circuit IC12 est un convertisseur analogique-numérique à sortie série. Il fournit
à FP1 un mot binaire « DATA » image de la lumière transmise par les lunettes.
a) Quelles sont les limites autorisées pour UAMP2 ?
b) Quelle est la plus petite tension détectable par IC12 ? Donner le résultat avec
quatre chiffres significatifs.
3. Déterminer le mot binaire DATA correspondant à une tension UAMP2 = 0,2 V.
4. On veut acquérir une donnée toutes les 100 µs. Calculer la fréquence du signal
CLK pour ce fonctionnement à partir de la documentation du circuit AD7896, en particulier les chronogrammes fournis (Fig. 22.5).
Annexe : documentation du circuit intégré AD7896
Convertisseur analogique-numérique 12 bits à sortie série
Temps de conversion : 8 µs ;
Tension d’alimentation VDD : 2,7 V à 5 V
Tension d’entrée : 0 à VDD ;
Puissance dissipée faible : 9 mW
Numéro
de broche
Symbole
1
2
3
4
VI N
VDD
AGND
SCLK
5
SDATA
6
7
8
DGND
CONVST
BUSY
Description
Entrée analogique, de 0 à VDD
Tension d'alimentation de 2,7 V à 5 V
Masse analogique
Entrée horloge série. Une horloge doit être appliquée à cette entrée
pour obtenir une donnée en sortie. Quand la conversion est terminée
(8 µs après le front descendant de CONVST), il faut appliquer 16
périodes d’horloge sur SCLK pour obtenir la donnée SDATA.
Sortie de s données en série. C’est un nombre de 12 bits émis en
série. Le poids le plus fort (DB11) est émis en premier, suivi de DB10,
et jusqu’au poids le plus faible DB0. En fait, 16 bits sont émis :
d’abord 4 zéros puis les 12 bits du nombre. L’opération de lecture doit
prendre foin au minimum 400 ns avant une nouvelle conversion.
Masse logique
Début de conversion
Sortie permettant de savoir si une conversion est en cours
CONVST
BUSY
SCLK
400 ns min
tconvert = 8 µs
4 zéros
SDATA
11 10 9
Figure 22.5 Chronogrammes
126
Électronique numérique en 26 fiches
1 0
2
2
© Dunod – La photocopie non autorisée est un délit.
Solution
1. Le montage formé par IC4:A, R7, R8 et P7 est un amplificateur non inverseur. Son
U AM P2
amplification est définie par A =
et s’exprime en fonction des éléments du
U I M2
R7 + P7
montage par : A = 1 +
. Nous en déduisons l’expression littérale de UAMP2 en
R8
$
#
R7 + P7
U I M2 . La
fonction de UIM2 et des éléments du montage : U AM P2 = 1 +
R8
valeur à laquelle il faut régler le potentiomètre P7 est alors :
#
$
U AM P2
P7 =
− 1 R8 − R7
U I M2
$
#
2
− 1 × 6,8 − 33 = 28,2 kΩ.
soit numériquement : P7 =
0,2
2.a) La tension UAMP2 est appliquée à l’entrée du convertisseur analogique-numérique. Sa valeur doit donc être comprise entre 0 et VDD = 5 V.
2.b) La plus petite tension détectable par le convertisseur analogique-numérique est le
Vr
quantum qui s’exprime par : q = n . Le circuit intégré AD7896 étant un convertis2
5
seur 12 bits, nous obtenons : q = 12 = 1,221 mV.
2
3. La valeur décimale N de la grandeur de sortie correspondant à une tension d’entrée
200
U AM P2
= 164. La conversion en binaire donne :
UAMP2 est : N =
, soit : N =
q
1,221
10100100.
4. Les chronogrammes fournis montrent que 16TC L K = 100 − 8 − 0,4 = 91,6 µs
donc : TC L K = 5,1 µs et f C L K = 1 175 kHz.
FICHE 22 – Conver tisseur analogique-numérique
Openmirrors.com
127
FICHE
I
•
23
Convertisseur
numériqueanalogique
Présentation
Définition
Un convertisseur numérique-analogique (Fig. 23.1) est un dispositif qui transforme
une information numérique codée sur n bits, a1, a2,... an, en un signal analogique u
(en général une tension) :
!a
a2
an "
1
u=
+
+ . . . + n Vr
2
4
2
Vr est une tension de référence (interne ou appliquée au convertisseur) qui fixe
l’échelle de la tension de sortie.
a1
a2
u
a3
an
Figure 23.1 Symbole d’un convertisseur numérique-analogique
La plus petite variation de tension de sortie provoquée par un changement de mot
binaire à l’entrée est le quantum :
Vr
q= n
2
La tension de sortie du convertisseur peut aussi s’exprimer avec le quantum :
u = (a1 2n−1 + a2 2n−2 + . . . + an )q
•
Caractéristique de transfert
La caractéristique de transfert d’un convertisseur numérique-analogique donne la
tension de sortie en fonction des mots binaires placés à l’entrée (Fig. 23.2). Nous
128
Électronique numérique en 26 fiches
2
3
avons considéré pour le tracé un convertisseur numérique-analogique 3 bits afin de
bien visualiser les points.
u
7q
6q
5q
4q
3q
2q
q
111
110
101
100
011
010
001
000
N
Figure 23.2 Caractéristique de transfert d’un convertisseur numérique-analogique
•
Convertisseur unipolaire et convertisseur bipolaire
© Dunod – La photocopie non autorisée est un délit.
Les convertisseurs que nous avons étudiés jusqu’à présent sont qualifiés d’unipolaires car la tension de sortie est positive. Il existe également des convertisseurs
bipolaires pour lesquels la tension de sortie prend des valeurs positives et négatives.
II Paramètres caractéristiques
•
Pleine échelle
Pour un convertisseur unipolaire, la valeur maximale Up de la tension de sortie est
appelée pleine échelle. Elle est atteinte quand tous les bits sont égaux à 1 :
#
$
1
U p = 1 − n Vr = Vr − q
2
Les convertisseurs ayant en général au moins 8 bits, la pleine échelle Up est pratiquement égale à la tension de référence Vr :
U p ≈ Vr
Dans le cas d’un convertisseur bipolaire, la pleine échelle est la différence entre le
maximum et le minimum de la tension de sortie.
FICHE 23 – Conver tisseur numérique-analogique
Openmirrors.com
129
•
Résolution
C’est la variation minimale de tension de sortie que l’on peut obtenir compte tenu
du nombre de bits imposé à l’entrée, rapportée à la pleine échelle. Elle s’exprime
en pourcentage et ne dépend que du nombre de bits du convertisseur :
1
q
= n
r=
Up
2 −1
Quand on peut confondre la pleine échelle Up avec la tension de référence Vr, la
formule se simplifie :
1
r≈ n
2
•
Durée de conversion
C’est la durée nécessaire pour que la tension de sortie atteigne la pleine échelle à
un demi-quantum près, en partant de 0.
•
Précision
C’est la l’écart maximal entre la valeur réelle de la tension de sortie et sa valeur
théorique, exprimée en pourcentage de la pleine échelle.
III Principaux types
•
Convertisseur à résistances pondérées
Il utilise autant de branches que de bits, chacune étant constituée d’un interrupteur
commandé (transistor en commutation) et d’une résistance pondérée permettant de
fixer un courant dépendant du poids de chaque bit. La somme de ces courants est
ensuite convertie en tension.
Le principe du convertisseur numérique-analogique à résistances pondérées est
simple, mais sa réalisation est délicate car il faut disposer de résistances de grande
précision dans une large gamme de valeurs. Ce n’est possible que pour un petit
nombre de bits.
•
Convertisseur à réseau R-2R
Il utilise pour chaque bit des cellules élémentaires toutes identiques, formée de
deux résistances dont les valeurs sont dans un rapport 2 et d’un interrupteur commandé. Plusieurs variantes existent (convertisseurs en échelle, en échelle inversée
ou à sources de courant).
130
Électronique numérique en 26 fiches
2
3
Le principe du convertisseur numérique-analogique à réseau R-2R est un peu plus
compliqué, mais sa réalisation ne pose pas de problème car il suffit de disposer de
résistances de grande précision dont les valeurs sont seulement dans un rapport 2,
ce qui est réalisé facilement dans les circuits intégrés. La plupart des convertisseurs
numérique-analogique disponibles font appel à cette technique.
•
Convertisseur à condensateurs commutés
Il utilise la commutation de condensateurs à la place des résistances. Les échanges
de charges obtenus conduisent à un résultat similaire.
C o nv e r t i s s e u r 8 b i t s
© Dunod – La photocopie non autorisée est un délit.
On considère un convertisseur numérique analogique 8 bits dont la tension de référence est Vr = 5 V.
1. Quel est le nombre de mots binaires différents qui peuvent être convertis ? Préciser
l’étendue des variations du nombre décimal correspondant à l’entrée.
2. Calculer le quantum q.
3. Calculer la pleine échelle Up.
4. En déduire la résolution r (exprimée en pourcentage).
5. Donner la valeur de la tension de sortie qui correspond à l’entrée 00100110
6. Tracer la caractéristique de transfert. Que peut-on en dire ?
7. Tracer les 8 premiers points de cette caractéristique.
Solution
1. Le nombre de mots binaires différents est 2n, c’est-à-dire 28 = 256 pour un convertisseur 8 bits. Le nombre décimal correspondant à l’entrée peut aller de 0 à 255.
Vr
2. Le quantum est donné par la formule q = n , ce qui donne pour ce convertisseur :
2
5
q = 8 = 19,5 mV.
2
#
#
$
$
1
1
3. La pleine échelle est U p = 1 − n Vr , soit ici : U p = 1 − 8 × 5 = 4,98 V .
2
2
Comme nous l’avons signalé dans les rappels, la pleine échelle est très proche de la
tension de référence lorsque le convertisseur possède au moins 8 bits.
0,0195
q
= 0,392 %. Un
4. La résolution est définie par r =
, ce qui donne : r =
4,98
Up
calcul direct avec la formule approchée conduit pratiquement au même résultat :
1
r ≈ 8 = 0,390 %.
2
!a
a2
an "
1
+
+ . . . + n Vr , la valeur de la tension de sor5. En utilisant la formule u =
2
4
2
tie qui correspond à l’entrée 00100110 est :
FICHE 23 – Conver tisseur numérique-analogique
Openmirrors.com
131
u=
#
0 0 1
0
0
1
1
0
+ + +
+
+
+
+
2 4 8 16 32 64 128 256
$
× 5 = 0,742 V
6.
La caractéristique de transfert est tracée avec la formule
!a
a2
an "
1
+
+ . . . + n Vr (Fig. 23.3). On pourrait penser que cette caractérisu=
2
4
2
tique est un segment de droite, mais ce n’est pas le cas, il s’agit de 256 points distincts.
Toutefois, ces points sont trop rapprochés pour que l’on puisse les distinguer sur cette
représentation.
u
255 q
11111111
00000000
N
Figure 23.3 Caractéristique de transfert (vue globale)
7. En ne faisant apparaître que les 8 premiers points, on constate que la caractéristique
n’est pas un segment de droite, mais qu’elle est bien formée de points distincts (Fig.
23.4).
u
7q
6q
5q
4q
3q
2q
q
00000111
00000110
00000101
00000100
00000011
00000001
00000010
00000000
N
Figure 23.4 Caractéristique de transfert (premiers points)
132
Électronique numérique en 26 fiches
Filtres numériques
I
•
FICHE
24
Présentation
Définition
Un filtre numérique est un système utilisé pour modifier le spectre d’un signal
numérique.
•
Équation aux différences
Elle relie le signal de sortie (yn ) au signal d’entrée (xn ). Sa forme générale est :
yn = a0 xn + a1 xn−1 + a2 xn−2 + . . . − (b1 yn−1 + b2 yn−2 + . . .)
•
Transmittance
La transmittance H(z) d’un filtre numérique est le rapport de la transformée en z du
signal de sortie et de la transformée en z du signal d’entrée :
© Dunod – La photocopie non autorisée est un délit.
H (z) =
Y (z)
X (z)
Méthode Pour obtenir la transmittance en z d’un filtre numérique, il suffit de prendre la transformée en z de l’équation aux différences en utilisant les deux propriétés suivantes :
– la linéarité :
Z (αxn + βyn ) = αZ (xn ) + βZ (yn )
– le théorème du retard qui affirme que pour tout signal numérique causal (c’est-à-dire tel que sn = 0 pour n < 0) :
Z (sn−k ) = z −k Z (sn )
•
Structure
La réalisation d’un filtre numérique est décrite par sa structure : c’est un schéma
qui représente l’équation aux différences à partir de trois éléments de base (Fig.
24.1) : l’opérateur de décalage, l’additionneur-soustracteur (qui peut posséder un
FICHE 24 – Filtres numériques
Openmirrors.com
133
nombre quelconque d’entrées) et l’opérateur de multiplication par une constante.
Si les entrées de l’additionneur-soustracteur ne comportent pas de signes + et –, il
est sous-entendu que l’opération à effectuer est une addition. Il existe d’autres
variantes pour ces symboles.
xn
xn-1
z-1
un
k
xn
+
kx n
+
un – vn + wn
–
Décalage
vn
+
wn
Constante
multiplicative
Additionneur-soustracteur
Figure 24.1 Éléments de base d’une structure
•
Stabilité
Un filtre numérique est stable si sa réponse impulsionnelle converge vers 0. Un critère permet de savoir si un système est stable à partir de sa transmittance : il faut
que tous ses pôles aient un module strictement inférieur à 1.
II Filtres numériques non récursifs
•
Définition
La valeur de la sortie, yn , ne dépend que des valeurs de l’entrée, xn , xn−1 , xn−2 , ...,
c’est-à-dire que l’équation aux différences est de la forme :
yn = a0 xn + a1 xn−1 + a2 xn−2 + . . .
•
Propriétés
La réponse impusionnelle d’un filtre non récursif est composée d’un nombre fini
d’échantillons. On qualifie ainsi ce type de filtre de RIF (réponse impulsionnelle
finie). Du fait de cette propriété, un filtre récursif est toujours stable.
III Filtres numériques récursifs
•
Définition
La valeur de la sortie, yn , dépend des valeurs de l’entrée, xn , xn−1 , xn−2 , ... et des
valeurs précédentes de la sortie, yn−1 , yn−2 , ..., c’est-à-dire que l’équation aux différences est de la forme :
yn = a0 xn + a1 xn−1 + a2 xn−2 + . . . − (b1 yn−1 + b2 yn−2 + . . .)
134
Électronique numérique en 26 fiches
2
4
•
Propriétés
La réponse impusionnelle d’un filtre récursif est composée d’une infinité d’échantillons. On qualifie ce type de filtre de RII (réponse impulsionnelle infinie). Un
filtre récursif n’est pas toujours stable. Il faut donc appliquer le critère de stabilité
donné précédemment.
© Dunod – La photocopie non autorisée est un délit.
Moyenneur numérique
L’exercice porte sur le traitement du signal issu d’un capteur de niveau de carburant
dans le réservoir d’un avion. Le capteur a été étudié dans l’ouvrage Électronique analogique de la collection Express BTS.
Le réservoir en mouvement autour d’une position moyenne que l’on considère
comme horizontale engendre sur le capteur des variations de niveau qu’il faut éliminer par traitement numérique.
Ce traitement se fait en deux étapes :
– moyennage avec sous-échantillonnage par 100, c’est à dire que l’on conserve une
valeur moyennée pour 100 valeurs acquises ; cette partie du traitement permet d’éliminer les variations rapides du signal ;
– moyennage sur 16 échantillons résultats de la première étape ; cette partie assure
l’élimination des variations plus lentes du signal dues au mouvement du réservoir.
Nous n’étudierons que la seconde partie du traitement numérique.
1. Étude temporelle du filtre numérique
Pour mettre en évidence l’effet de moyennage, nous étudierons un algorithme simplifié de moyenne sur 4 échantillons :
1
yn = (xn + xn−1 + xn−2 + xn−3 )
4
où xn−m représente l’échantillon d’entrée retardé de m périodes d’échantillonnage et
yn l’échantillon de sortie à l’instant nTe.
a) Représenter une structure de réalisation de cet algorithme avec les opérateurs élémentaires : addition ou soustraction, multiplication par une constante et mémorisation (retard de Te).
b) De quel type de filtre numérique s’agit-il et quelle est sa propriété fondamentale
relative à la stabilité ?
c) Pour déterminer la réponse à un échelon d’entrée (xn = 1 si n ! 0, sinon xn = 0),
calculer yn pour – 1 " n " 5 et tracer la courbe yn en fonction de n.
d) Déduire de l’allure de la courbe, en justifiant votre réponse, la nature du filtrage
réalisé.
e) Une variation non significative du niveau de liquide dans le réservoir peut être
assimilée à une entrée impulsionnelle : xn = 1 pour n = 0, sinon xn = 0. Calculer yn
pour – 1 " n " 5 et tracer la courbe yn en fonction de n.
f) Justifier l’intérêt de ce type d’algorithme par rapport à l’objectif désiré.
FICHE 24 – Filtres numériques
Openmirrors.com
135
2. Étude fréquentielle du filtre numérique
Y (z)
.
X (z)
b) En effectuant le changement de variable z = ejωTe avec ω pulsation du signal d’entrée et Te période d’échantillonnage, établir la fonction de transfert isochrone T .
a) Établir la fonction de transfert en z de ce filtre : T (z) =
c) T peut s’écrire T = 0,5[cos(1,5ωTe ) + cos(0,5ωTe )]e−j1,5ωTe . En déduire le
module de la fonction de transfert |T | .
d) Montrer que l’argument de la transmittance de ce filtre, ϕ = arg T , s’exprime par
1
f
<
ϕ = −1,5ωTe dans le domaine de fréquences tel que
pour lequel
Fe
4
cos(1,5ωTe ) + cos(0,5ωTe ) > 0 .
e) En déduire l’expression du retard τ introduit par ce filtre dans la transmission des
informations.
f) Préciser le domaine de fréquences utile en relation avec l’échantillonnage.
Solution
1.a) Une structure possible consiste à obtenir xn−1 , xn−2 et xn−3 par des opérateurs
retard, puis en faire la somme par un opérateur additionneur et enfin, multiplier le
1
résultat par avec un opérateur multiplication par une constante (Fig. 24.2). L’énoncé
4
demande une structure de réalisation : il existe en effet d’autres solutions que celle qui
est proposée, en effectuant les opérations dans un ordre différent.
z -1
xn
z -1
xn-1
0,25
xn -3
z -1
yn
+
xn-2
Figure 24.2 Structure de réalisation du filtre
1.b) Il s’agit d’un filtre non récursif : la valeur de la sortie yn ne dépend que des valeurs
d’entrée xn , xn−1 , xn−2 ,... Un filtre non récursif est toujours stable.
1.c) Pour déterminer la réponse à un échelon, on remplace les valeurs de l’entrée dans
l’équation aux différences. Les résultats sont consignés dans le tableau suivant :
n
xn
yn
136
–1
0
1
2
3
4
0
1
1
1
1
1
1
0
0,25
0,5
0,75
1
1
1
Électronique numérique en 26 fiches
5
2
4
Ces valeurs permettent de tracer la courbe yn en fonction de n (Fig. 24.3).
yn
1
0,8
0,6
0,4
0,2
-1
0
1
2
3
4
n
5
Figure 24.3 Réponse indicielle du filtre
1.d) Le filtre est passe-bas car il laisse passer le continu et sa réponse indicielle ne présente pas de front.
1.e) Pour déterminer la réponse à une impulsion, on remplace les valeurs de l’entrée
dans l’équation aux différences. Les résultats sont consignés dans le tableau suivant :
© Dunod – La photocopie non autorisée est un délit.
n
xn
yn
–1
0
1
2
3
4
0
1
0
0
0
0
5
0
0
0,25
0,25
0,25
0,25
0
0
Ces valeurs permettent de tracer la courbe yn en fonction de n (Fig. 24.4).
yn
0,3
0,2
0,1
-1
0
1
2
3
4
5
n
Figure 24.4 Réponse impulsionnelle du filtre
FICHE 24 – Filtres numériques
Openmirrors.com
137
1.f) L’influence d’une perturbation est réduite d’un facteur 4.
2.a) Pour passer de l’équation aux différences à la transmittance en z, la première étape
consiste à prendre la transformée en z des deux membres de l’équation en tenant
compte de la linéarité de la transformation et du théorème du retard :
1
Y (z) = [X (z) + z −1 X (z) + z −2 X (z) + z −3 X (z)]. La seconde étape consiste à divi4
ser les deux membres de la formule obtenue par X (z) afin de faire apparaître la transY (z)
1
= (1 + z −1 + z −2 + z −3 ) .
mittance : T (z) =
X (z)
4
2.b) La transmittance isochrone s’obtient à partir de la transmittance en z en rempla1
çant z par ejωTe , ce qui donne : T = (1 + e−jωTe + e−2jωTe + e−3jωTe .
4
2.c) Le module d’un produit est égal au produit des modules des différents facteurs.
Par ailleurs, le module d’un nombre réel est égal à sa valeur absolue et le module d’une
exponentielle d’imaginaire pur est égal à 1. En appliquant ces propriétés à la formule
donnée par l’énoncé, T = 0,5[cos(1,5ωTe ) + cos(0,5ωTe )]e−j1,5ωTe (qui n’est pas à
démontrer), nous obtenons : | T | = 0,5|cos(1,5ωTe ) + cos(0,5ωTe )| .
Il ne faut pas oublier la valeur absolue car cos(1,5ωTe ) + cos(0,5ωTe ) n’est pas toujours positif.
2.d) L’argument d’un produit est égal à la somme des arguments des différents facteurs. Par ailleurs, l’argument d’un nombre réel positif est nul et l’argument d’une
exponentielle d’imaginaire pur est égal à son exposant.
En appliquant ces propriétés à la formule donnée par l’énoncé, nous obtenons bien :
ϕ = −1,5ωTe puisque cos(1,5ωTe ) + cos(0,5ωTe ) > 0 dans le domaine de fréquence
considéré.
Remarques • L’énoncé nous donne une forme de transmittance propice
au calcul du module et de l’argument. Ce résultat aurait pu être démontré
en cherchant à factoriser e−j1,5ωTe .
• Dans le domaine de fréquence où cos(1,5ωTe ) + cos(0,5ωTe ) < 0 ,
l’argument devient ϕ = −1,5ωTe + π car l’argument d’un nombre réel
négatif vaut π.
2.e) Si un filtre introduit un retard τ, l’argument de sa transmittance est ϕ = −ωτ. Par
identification avec l’argument obtenu ici, ϕ = −1,5ωTe , nous obtenons τ = 1,5ωTe .
Fe
2.f) Le théorème de Shannon impose la condition f <
pour obtenir un échan2
tillonnage correct.
138
Électronique numérique en 26 fiches
FICHE
Codage en bande
de base
I
•
25
Introduction
Organisation d’une transmission numérique
Un signal numérique est constitué d’une suite d’éléments binaires (0 ou 1). Pour le
transmettre, il faut le traduire en grandeur physique adaptée au canal de transmission : c’est le but du codage en bande de base réalisé par l’émetteur. Le récepteur
permet de retrouver le signal numérique à partir de la grandeur physique transmise (Fig. 25.1). Dans une transmission en bande de base, le signal ne subit pas de
transposition de fréquence.
Signal
numérique
émis
Émetteur
Canal de
transmission
Récepteur
Signal
numérique
réçu
© Dunod – La photocopie non autorisée est un délit.
Figure 25.1 Organisation d’une transmission numérique
Cette configuration minimale peut être complétée par un codage de source et un
codage de canal. Le codeur de source, placé juste après la source de signal numérique profite des redondances souvent présentes dans le message pour réduire sa
longueur. Le codeur de canal, placé ensuite, ajoute des informations permettant de
détecter et corriger les erreurs de transmission. Cette opération est réalisée par le
décodeur de canal qui suit le récepteur. Le décodeur de source placé ensuite permet de retrouver le signal initial.
•
Débit binaire
L’intervalle de temps nécessaire à la transmission de chaque élément binaire a une
durée TB fixée, appelée durée d’un bit. Le débit binaire D est l’inverse de la durée
d’un bit :
1
D=
TB
D s’exprime en bits par seconde (symbole bps).
FICHE 25 – Codage en bande de base
Openmirrors.com
139
•
Taux d’erreur binaire
Le taux d’erreur binaire (TEB) est le rapport entre le nombre de bits reçus erronés
et le nombre total de bits transmis.
•
Codage binaire et codage M-aire
Le signal numérique peut être transmis bit par bit : ce type de codage est qualifié
de binaire. La séquence binaire peut aussi être convertie en suite de symboles
constitués chacun de n bits. Il existe alors M = 2n symboles différents : ce type de
codage est qualifié de M-aire.
Exemple Le code 2B/1Q, utilisé notamment dans les RNIS (réseaux
numériques à intégration de services), emploie des symboles de 2 bits : il
est donc quaternaire (M = 4). Aux symboles 00, 01, 11 et 10 correspondent les niveaux de tension – 3A, – A, A et 3A.
•
Rapidité de modulation
L’intervalle de temps nécessaire à la transmission de chaque symbole a une durée
TS fixée, appelée durée d’un symbole. La rapidité de modulation est le nombre de
symboles transmis par seconde et son unité est le baud (symbole Bd). C’est l’inverse de la durée d’un symbole :
1
R=
TS
Les unités bit par seconde et baud correspondent à des grandeurs de même dimension
(l’inverse d’un temps). La distinction sert à identifier facilement la quantité considérée :
débit binaire ou rapidité de modulation.
La rapidité de modulation et le débit binaire sont liés :
R=
D
D
=
n
log2 M
où log2 est le logarithme de base 2.
Dans le cas d’un codage binaire, la rapidité de modulation s’exprime par le même
nombre que le débit binaire (mais pas avec la même unité).
II Exemples de codes
•
Code NRZ
Le codage NRZ (No Return to Zero) est le plus simple : le 0 logique est codé par
un niveau de tension A (positif ou négatif) et le 1 par un niveau symétrique – A.
140
Électronique numérique en 26 fiches
2
5
L’intérêt est de ne pas utiliser de niveau nul qui pourrait être confondu avec une
absence de signal.
Le codage NRZ est utilisé par exemple pour les liaisons série RS232 et pour les
bus CAN rencontrés dans le domaine de l’automobile. L’état haut ne correspond
pas toujours au 1 logique. Par exemple, une liaison RS232 utilise souvent un
niveau + 12 V pour le 0 logique et un niveau – 12!V pour" le 1.
1
L’encombrement spectral est approximativement 0,
(pour 90 % de la puisTb
sance). Le spectre présentant un maximum à la fréquence nulle, le canal de transmission doit laisser passer le continu. Il est impossible de récupérer l’horloge car
la densité spectrale s’annule à la fréquence 1/Tb.
L’inconvénient majeur du codage NRZ réside dans la difficulté de synchronisation
du récepteur quand le signal ne présente pas de transition lors d’une longue
séquence de 1 ou 0. Dans certains cas, cet inconvénient peut être évité par des artifices : sur le bus CAN, on utilise la méthode du bourrage de bits (bit stuffing) en
imposant un changement d’état au bout de cinq bits identiques consécutifs.
•
Code RZ
© Dunod – La photocopie non autorisée est un délit.
Dans le codage RZ (Return to Zero), le 0 logique est codé par un niveau de tension
nul et le 1 par une tension qui prend une valeur A pendant la moitié de la durée d’un
bit et qui revient à zéro pendant l’autre moitié.
"
!
2
(pour 95 % de la puissance). Le
L’encombrement spectral est à peu près 0,
Tb
signal possède une composante continue et il faut donc que le canal de transmission laisse passer le continu. Le spectre comporte une raie à la fréquence 1/Tb, ce
qui permet de récupérer le rythme de l’horloge à partir du signal transmis.
•
Code Manchester
Le codage Manchester résout le problème des longues séquences de 1 ou 0 en
imposant des transitions placées au milieu de l’intervalle élémentaire correspondant à la durée d’un bit : le 0 logique est représenté par un front montant du signal
et le 1 logique correspond à un front descendant (ou parfois l’inverse).
Le codage Manchester est utilisé par exemple dans "les réseaux
Ethernet.
"
2
L’encombrement spectral est approximativement 0,
. La densité spectrale
Tb
s’annulant à la fréquence nulle, il est possible d’utiliser un canal de transmission
qui ne laisse pas passe le continu (par exemple parce qu’il comporte des transformateurs de liaison). La récupération du rythme de l’horloge est possible.
FICHE 25 – Codage en bande de base
Openmirrors.com
141
Comparaison de deux codes en bande
de base
Le débit binaire est D = 1200 bits par seconde.
1. Codage NRZ (No Return to Zero)
Ce codage est défini par :
– état 1 : niveau + VD,
– état 0 : niveau – VD, avec VD = 2,5 V.
a) Exprimer la durée d’un bit TB en fonction du débit binaire D.
b) sN(t) représente le signal de sortie du système de codage NRZ pour une séquence
de données binaires présentes à l’entrée. Compléter la courbe de sN2(t) (Fig. 25.2).
Données
binaires
1
0
1
0
1
0
TN1 = 2 TB
FN1 = 600 Hz
s N 1(t )
2,5 V
t
– 2,5 V
Données
binaires
1
1
1
0
0
0
s N 2(t )
t
TB
Figure 25.2 Codage NRZ
c) Sachant que les données binaires correspondent à une séquence périodique
111 000 111 000, etc., exprimer la période TN2 en fonction de TB et en déduire la fréquence FN2.
d) En supposant que l’on émette une très longue série de 1, quelles sont les caractéristiques du signal électrique obtenu (forme, valeur moyenne, fréquence) ?
142
Électronique numérique en 26 fiches
2
5
2. Codage Manchester
Ce codage est défini par :
– état 1 : front montant pendant la durée d’un bit (TB),
– état 0 : front descendant pendant la durée d’un bit (TB).
a) sM(t) représente le signal de sortie du système de codage Manchester pour une
séquence de données binaires présentes à l’entrée. Compléter les courbes de sM1(t) et
sM1(t) (Fig. 25.3).
Données
binaires
1
0
1
0
1
0
s M1(t )
2,5 V
t
– 2,5 V
Données
binaires
1
1
1
1
1
1
s M2(t )
t
© Dunod – La photocopie non autorisée est un délit.
TB
Figure 25.3 Codage Manchester
b) Exprimer les deux périodes TM1 et TM2 des signaux en fonction de TB. En déduire
les fréquences FM1 et FM2 correspondantes.
3. Spectres des codes NRZ et Manchester
On a représenté la DSP (Densité Spectrale de Puissance) relative des signaux aléatoires codés NRZ et Manchester (Fig. 25.4). L’encombrement spectral pourra être
assimilé à la largeur du premier lobe de la DSP.
a) Estimer graphiquement l’encombrement spectral dans chaque cas : BNRZ pour le
codage NRZ et BMAN pour le codage Manchester.
b) Le critère de choix pour la carte étudiée est de minimiser l’encombrement en fréquence. Quel est le codage le plus adapté ?
FICHE 25 – Codage en bande de base
Openmirrors.com
143
c) Si les critères de choix avaient été : la DSP doit être minimale en basse fréquence
et avoir un certain niveau à la fréquence d’horloge (1200 Hz), quel codage serait le
plus approprié ? Justifier la réponse.
1
0,9
NRZ
DSP relative
0,8
0,7
0,6
0,5
0,4
Manchester
0,3
0,2
0,1
0
600
0
1200
1800
2400
Fréquence (Hz)
3000
3600
Figure 25.4 Spectres des signaux NRZ et Manchester
Solution
1.a) Le débit binaire est défini à partir de la durée d’un bit TB par D =
1
, ce qui
TB
1
.
D
1.b) Le signal sN2(t) vaut VD = 2,5 V quand la donnée binaire est 1 et – VD = – 2,5 V
quand la donnée binaire est 0 (Fig. 25.5).
conduit à : TB =
Données
binaires
1
1
1
0
0
0
s N2(t )
t
TB
Figure 25.5 Signal codé NRZ
144
Électronique numérique en 26 fiches
2
5
1.c) La séquence répétant un motif de six bits 111 000, la période est TN2 = 6TB. La
1
1
D
1 200
=
= , soit : FN2 =
= 200 Hz.
fréquence correspondante est FN2 =
TN 2
6TB
6
6
1.d) Si la séquence est une longue suite de 1, le signal sN2(t) reste toujours à la valeur
VD = 2,5 V. Il s’agit donc d’un signal continu de valeur moyenne 2,5 V. La fréquence
n’est pas définie puisque le signal n’est pas périodique, mais dans les spectres, on
place le continu à la fréquence nulle.
2.a) Le signal sM(t) présente un font montant au milieu d’un intervalle correspondant
à la durée d’un bit lorsque la donnée binaire est 1 et un front descendant quand la donnée binaire est 0 (Fig. 25.6).
2.b) Pour sM1(t), la période est TM1 = 2TB et la fréquence correspondante
1
1
D
1 200
FM1 =
= 600 Hz. Pour sM2(t), la période est
=
= , soit FM1 =
T M1
2TB
2
2
1
1
=
= D, soit FM2 = 1 200 Hz.
TM2 = TB et la fréquence correspondante FM2 =
T M2
TB
Données
binaires
1
0
1
0
1
0
2,5 V
s M1(t )
t
© Dunod – La photocopie non autorisée est un délit.
– 2,5 V
Données
binaires
1
1
1
1
1
1
s M 2(t)
t
Figure 25.6 Signal codé Manchester
FICHE 25 – Codage en bande de base
Openmirrors.com
145
3.a) L’encombrement spectral correspond à la largeur du lobe principal de la courbe
de la DSP, soit : BNRZ = 1200 Hz pour le codage NRZ et BMAN = 2 400 Hz pour le codage Manchester (Fig. 25.7).
1
0,9
NRZ
0,8
DSP relative
0,7
0,6
0,5
0,4
BNRZ
Manchester
0,3
BMAN
0,2
0,1
0
0
600
1200
1800
2400
Fréquence (Hz)
3000
3600
Figure 25.7 Encombrement spectral
3.b) Le codage le mieux adapté est le NRZ puisque son encombrement en fréquence
(1200 Hz) est inférieur à celui du Manchester (2 400 Hz).
3.c) Le codage le mieux adapté est le Manchester car sa DSP tend vers 0 aux basses
fréquences (alors qu’elle est maximale pour le codage NRZ) et qu’elle présente une
valeur élevée à 1 200 Hz (alors qu’elle est nulle pour le codage NRZ).
146
Électronique numérique en 26 fiches
FICHE
Modulations
numériques
I
•
26
Introduction
Définition
Dans une modulation numérique, les signaux numériques modulent une porteuse
sinusoïdale pour obtenir un signal adapté au canal de transmission. Pendant un
intervalle élémentaire, un paramètre de la porteuse prend une valeur caractéristique
du symbole à transmettre. Comme en modulation analogique, le paramètre à modifier peut être :
– l’amplitude,
– la fréquence,
– la phase.
© Dunod – La photocopie non autorisée est un délit.
•
Modulation binaire et modulation M-aire
Le signal numérique peut être transmis bit par bit, avec un paramètre qui ne prend
que deux valeurs : ce type de modulation est qualifiée de binaire. La séquence
binaire peut aussi être convertie en suite de symboles constitués de n bits, avec un
paramètre qui prend M valeurs. Il existe alors M = 2n symboles différents : ce type
de modulation est qualifié de M-aire.
II Modulation par déplacement
de fréquence
•
Définition
Dans la modulation par déplacement de fréquence (FSK pour Frequency Shift
Keying), les données binaires font varier la fréquence d’une porteuse sinusoïdale.
•
Modulation par déplacement de fréquence à deux états
Pour une modulation par déplacement de fréquence à deux états (BFSK pour
Binary Frequency Shift Keying), la fréquence du signal modulé peut prendre deux
valeurs, f0 et f1 selon le symbole d’un bit à transmettre :
FICHE 26 – Modulations numériques
Openmirrors.com
147
Symbole
Fréquence
0
f0
1
f1
Les deux fréquences sont symétriques par rapport à la fréquence de la porteuse fp
(obtenue en l’absence de signal modulant) :
f0 = f p − ! f
f1 = f p + ! f
! f est appelé excursion en fréquence.
L’indice de modulation h est défini par le rapport de l’écart entre les deux fréquences à la rapidité de modulation R :
h=
| f1 − f0|
R
Il existe deux types de modulation par déplacement de fréquence :
– la modulation à phase discontinue pour laquelle le signal présente des discontinuités à l’instant des transitions ;
– la modulation à phase continue pour laquelle le signal évolue sans discontinuité
à l’instant des transitions.
La modulation à phase discontinue présente l’avantage de la simplicité, mais elle
occupe une bande de fréquence plus large que la modulation à phase continue.
•
Applications
La modulation FSK a été utilisée dans les premières générations de modems. Elle
est aujourd’hui employée dans les applications de télémesure qui ne nécessitent
pas de hauts débits.
•
Modulation à déplacement minimal
La modulation à déplacement minimal (MSK pour Minimum Shift Keying) est une
modulation FSK binaire à phase continue avec un indice de modulation h = 0,5.
Son intérêt est de concentrer la densité spectrale de puissance autour de la fréquence de la porteuse. La phase varie continûment et linéairement par intervalles.
Un 0 fait varier la phase de – 90° et un 1 la fait varier de + 90°.
Le téléphone mobile GSM utilise une variante de modulation MSK appelée GMSK
(Gaussian Minimum Shift Keying) pour laquelle le signal en bande de base est filtré par un filtre passe-bas gaussien afin de réduire l’encombrement spectral du
signal modulé.
148
Électronique numérique en 26 fiches
2
6
III Modulation par saut de phase
•
Définition
Dans la modulation par saut de phase (MDP ou PSK pour Phase Shift Keying), les
données binaires font varier la phase d’une porteuse sinusoïdale.
•
Modulation par saut de phase à deux états
Dans la modulation de phase à deux états (MDP2 ou BPSK pour Binary Phase
Shift Keying), la phase peut prendre deux valeurs selon le symbole d’un bit à transmettre :
Symbole
Phase
0
0
1
π
On représente cela par un diagramme de constellation (Fig. 26.1). Pour cela, on
place dans un plan deux points, correspondant aux symboles 0 et 1. La distance
d’un point à l’origine donne l’amplitude et l’angle que fait la direction du point par
rapport à l’axe des abscisses donne la phase. L’axe des abscisses est appelé I
(Inphase, en phase) et l’axe des ordonnées est nommé Q (Quadrature).
Q
1
0
© Dunod – La photocopie non autorisée est un délit.
I
Figure 26.1 Diagramme de constellation
•
Modulation par saut de phase à quatre états
Dans la modulation de phase à quatre états (MDP4 ou QPSK pour Quadrature
Phase Shift Keying), la phase peut prendre quatre valeurs selon le symbole de deux
bits à transmettre :
Symbole
00
01
10
11
Phase
0
π
2
π
π
−
2
FICHE 26 – Modulations numériques
Openmirrors.com
149
Le diagramme de constellation comporte quatre points (Fig. 26.2).
Q
01
00
I
10
11
Figure 26.2 Diagramme de constellation
•
Applications
La modulation par saut de phase est la technique la plus utilisée. Elle est employée
aussi bien pour les réseaux locaux ou les modems que pour les transmissions par
satellite : télévision, systèmes de positionnement (GPS)...
Modulation FSK
Une balise maritime transmet des informations numériques au poste central en utilisant une modulation FSK.
Les signaux émis ont les caractéristiques suivantes :
– Type de modulation : BFSK (Binary Frequency Shift Keying)
– Fréquence de la porteuse : Fp = 151,650 MHz
– Excursion en fréquence : ∆F = 2,5 kHz
– Largeur d’un canal : Bcanal = 12,5 kHz
– Débit binaire : D = 1 200 bps (bits par seconde)
Les porteuses adjacentes sont à 12,5 kHz de la porteuse étudiée.
L’encombrement en fréquence B f1 d’un signal modulé FSK est estimé par la relation
(dérivée de la règle de Carson) : B f1 = 2(R + ∆F) où R est la rapidité de modulation.
La fréquence basse FL correspond à un niveau logique 0.
La fréquence haute FH correspond à un niveau logique 1.
1. Donner les valeurs des deux fréquences FH et FL.
2. En modulation BFSK, R = D, calculer l’encombrement en fréquence B f1 du signal
FSK
3. Indiquer sur un axe de fréquence gradué (Fig. 26.3) :
– les limites des canaux (barres verticales),
– les porteuses Fpp et Fps des deux canaux adjacents,
150
Électronique numérique en 26 fiches
2
6
– les deux fréquences FH et FL,
– l’encombrement en fréquence du signal modulé calculé précédemment (on le
représentera par une zone hachurée).
2,5 kHz
f
Fp
Canal précédent
Porteuse Fpp
Canal suivant
Porteuse Fps
Figure 26.3 Axe des fréquences
4. Le spectre du signal modulé a été relevé (Fig. 26.4). Repérer sur cette courbe l’emplacement de la porteuse et les limites du canal (le jour de la mesure, les canaux adjacents n’étaient pas occupés).
– 20
GOOD WILL GSP-810
– 30
– 40
– 50
– 60
– 70
– 80
© Dunod – La photocopie non autorisée est un délit.
– 90
– 100
[dBm]
CF – 151 650MHZ
SPAN – 5KHZ/DIV
Figure 26.4 Spectre du signal modulé
Solution
1. La fréquence haute est FH = Fp + ∆F, ce qui donne numériquement : FH = 151,650
+ 2,5 × 10–3 = 151,6525 MHz.
La fréquence basse est FL = Fp – ∆F, soit : FL = 151,650 – 2,5 × 10–3 = 151,6475 MHz.
Compte tenu du faible écart existant entre les différentes fréquences, il faut donner des
résultats avec un nombre de chiffres significatifs suffisant.
2. Comme R = D en modulation BFSK, la formule de l’encombrement spectral donnée par l’énoncé, B f1 = 2(R + ∆F) devient : B f1 = 2(D + ∆F). L’application numérique
FICHE 26 – Modulations numériques
Openmirrors.com
151
conduit à : B f1 = 2(1 200 + 2 500) = 7 400 Hz. Il faut remarquer que bien que D et ∆F
n’aient pas la même unité, la formule est homogène : le bit par seconde ou le hertz sont
tous les deux des unités de grandeurs qui correspondent à l’inverse d’un temps.
3. Les différentes grandeurs demandées par l’énoncé sont indiquées sur l’axe des fréquences (Fig. 26.5).
12,5 kHz
7,4 kHz
2,5 kHz
Fpp = Fp – 12,5
Fp
Fpp = Fp + 12,5
f
Figure 26.5 Axe des fréquences complété
4. La fréquence de la porteuse, 151,650 MHz, correspond au milieu du canal dont la
largeur est de 12,5 kHz (Fig. 26.6).
12,5 kHz
– 20
GOOD WILL GSP-810
– 30
– 40
– 50
– 60
– 70
– 80
– 90
– 100
[dBm]
CF – 151 650MHZ
SPAN – 5KHZ/DIV
Figure 26.6 Emplacement de la porteuse et limites du canal
152
Électronique numérique en 26 fiches
Index
A
C
abréviations 15
accès
aléatoire 60
séquentiel 60
adresse 61
affectation
des broches 30
inconditionnelle 30
algorigramme 89
algorithme 89, 93
alimentation 48
alternative 94
architecture 29, 44
arrondi 118
assembleur 105
assignation
conditionnelle 44
sélective 44
cadre 12
des entrées communes 13
des sorties communes 13
capacité 60, 67
caractéristique de transfert 122, 128
cellule de sortie programmable 21
chaîne de traitement numérique 116
chien de garde 58
circuit logique programmable 17
CISC 56
codage 122
binaire 140
de canal 139
de source 139
en bande de base 139
M-aire 140
Manchester 141
NRZ 140
RZ 141
codeur
de canal 139
de source 139
commentaire 30
compilateur 99
compilation 99
complément 3
comptage 66
compteur 66
4 bits 45
modulo N 68
ordinal 56
compteurs asynchrones 69
synchrones 70
condensateur de découplage 48
condition de début 85
de fin 85
connexion non programmable 18
connexions programmables 18
convertisseur
analogique-numérique 122
© Dunod – La photocopie non autorisée est un délit.
B
bande de base 139
bascule D 46
bascule T 45
baud 140
bit(s) 1, 60
d’acquittement 85
de début de 77
de parité impaire 79
de parité paire 79
de start 77
de vérification de la parité 77
de stop 77
boucle 95
à exécution conditionnelle 95
à exécution inconditionnelle 95
branchement conditionnel 101
bruit de quantification 123
bus 58, 75
bus GPIB 74
bus I2C 84
Index
Openmirrors.com
153
bipolaire 123, 129
numérique-analogique 128
unipolaire 123, 129
courant
d’entrée 50
de sortie 49
cycle
complet 68
de lecture ou d’écriture 62
incomplet 68
D
débit binaire 139
décodeur
d’instruction 55
de canal 139
de source 139
décomptage 66
dépendance 13
description VHDL 29, 44
diagramme
d’état 38
de constellation 149
des états 69
directives d’assemblage 110
DRAM 63
duplex 78
durée d’un bit 139
durée de conversion 124, 130
E
échantillonnage 116, 117
échantillons 117
écriture 57, 61
EEPROM 63
entité 44
entrée de remise à zéro 66
entrée de validation 66
environnement de développement 114
EPROM 63
équation aux différences 133
erreur de quantification 123
esclave 84
état(s) 38
bas 49
haut 49
haute impédance 52
154
Électronique numérique en 26 fiches
logique 48
logique interne 15
F
filtre
anti-repliement 118
non récursif 134
numérique 133
récursif 135
fonction(s)
complètement définie 4
logique 1
partiellement définie 4
combinatoires 24
d’entrées-sorties 101
forme canonique 5
forme minimale 7
FRAM 64
fréquence d’échantillonnage 117
fréquence d’horloge 70
fréquence de Nyquist 117
FSK 147
H
haute impédance 51
horloge 54, 56, 66
I
I2C 84
impulsions 37
indication directe de polarité logique 15
interfaces 54
interfaces parallèles 57
interfaces série 57
itération 95
K
kibioctet 61
kilobit 60
kilooctet 60
L
langage
compilé 99
d’assemblage 105
de description d’algorithme 93
de description du comportement 29
VHDL 29
lecture 57, 61
liaison
asynchrone 77
Centronics 74
différentielle 79
parallèle 73
série 77
synchrone 77
liste de sensibilité 44
© Dunod – La photocopie non autorisée est un délit.
M
machine
à états 37
de Mealy 38, 40
de Moore 37, 40
maintien d’un état 39
maître 84
marge de sécurité 49
marges de bruit 49
matrice des ET d’entrée 17
matrice des OU de sortie 17
maxtermes 5
mébioctet 61
mégabit 60
mégaoctet 60
mémoire 25, 54, 60
à lecture seule 18
de données 57
de programme 56
flash 63
morte 62
vive 63
microcontrôleur 54
microprocesseur 54
minimisation 7
mintermes 4
mnémonique 107
mode d’accès 60
modulation
à déplacement minimal 148
binaire 147
M-aire 147
numérique 147
par déplacement de fréquence 147
par saut de phase 149
mot
binaire 122
d’adresse 25
de donnée 25
MPLAB 114
multiplexeur 24
N
niveau logique externe 15
niveaux logiques 37
norme IEEE1076 29
norme IEEE488 74
norme ISO 5807 89
norme NF C 03-212 12
norme RS232 78
norme RS485 79
NOVRAM 64
numérisation 116
O, P
octets 60
opérateur 100
opérateurs logiques élémentaires 30
oscillateur à quartz 56
PAL 19
paramètres électriques 48
paramètres statiques 48
PIC 58
PLA 20
PLD 17
pleine échelle 123, 129
poignée de main 74
pointeur 102
porteuse 147
précision 130
préfixes binaires 60
priorité 2
processus 44
programmation 27
programmation structurée 93
programme C 100
PROM 62
PSK 149
Q, R
quantification 116, 118, 122
quantum 118, 128
Index
Openmirrors.com
155
quartz 56
RAM 63
rapidité de modulation 140
rayonnement ultraviolet 63
récupération du rythme 141
registre d’état 37
registres 56
registres accumulateurs 56
règles de De Morgan 3
repliement du spectre 118
représentation graphique 12
réseau logique 26
résistance de rappel 50
résistance de tirage 50
résolution 124, 130
RIF 134
RII 135
RISC 56
ROM 62
S
semi-duplex 78
séquence 94
séquenceur 55
signal d’horloge 36
simplex 78
sortie
à collecteur ouvert 50
à drain ouvert 50
trois états 51
spectre d’un signal échantillonné 117
SRAM 63
stabilité 134
structure de Harvard 54
structure de Von Neumann 54
symbole(s) 12, 14
distinctifs des connexions 14
distinctifs des opérateurs 14
en parallèle 12en cascade 12
système
logique séquentiel 36
logique séquentiel asynchrone 36
logique séquentiel synchrone 36
séquentiel 44
156
T
table de comptage 69
table de vérité 4, 9
tableau de Karnaugh 8
taux d’erreur binaire 140
temps
d’accès 61, 62
d’activation 51
de cycle 61, 62
de désactivation 51
de maintien 52
de prépositionnement 52
de propagation 51
tension
d’alimentation 48
de référence 122, 128
de sortie 48
termes
adjacents 8
produits 4
sommes 5
théorème de Shannon 117
tolérance 48
transformée en z 133
transitions 38
conditionnelles 39
inconditionnelles 39
transmittance 133
transmittance en z 133
troncature 118
type des signaux 30
types 100
U, V
unité arithmétique et logique 55
variable
binaire 1
complémentée 1
internes 36
vecteur d’état 37
VHDL 29