Systèmes Embarqués en Informatique Industrielle
Systèmes Embarqués en Informatique Industrielle
Informatique Industrielle
Temps réel
12/18/2020
2 Programme
Généralités
Systèmes à processeurs
Système Arduino : Le Microprocesseur ATMEGA 2560
del’arduino MEGA
Capteurs et actionneurs
Les communications
La conception des systèmes temps réels
12/18/2020
3 Chap 1 Généralités sur
l’informatique industrielle
Informatique industrielle
Informatique embarqué
Principe
Câblage
Informatisation
12/18/2020
4
L'informatique industrielle
12/18/2020
8
5
L'informatique industrielle
Domaines d'applications :
Alarme, automobile, aviation, instrumentation, médicale, téléphonie mobile,
terminaux de paiement pour carte bancaire ...
12/18/2020
9
Image fournie par Microchip
L'informatique industrielle
6
Applications :
Automates, robotique,
Mesures de grandeurs physiques,
Systèmes temps-réel,
Systèmes embarqués.
12/18/2020
10
7 Processeurs et informatique
industrielle
Le processeur est au cœur des traitements de
l’informatique industrielle; c’est généralement un circuit
intégré programmable responsable de traiter les données
en entrée pour délivrer les informations en sortie.
Types de processeurs
GPP : x68, ARM, PowerPC,
ASIP : µC, DSP, GPU
SPP : réalisé en logique cablée ou par PLD ou par VLSI
12/18/2020
Les différents systèmes programmables
8
Les circuits spécialisés ou ASIP (Application Specific Instruction PROCESSOR) :
Les circuits spécialisés sont des circuits spécialisés dès leur conception pour une application
donnée.
Avantages : Inconvénients :
Très rapide Faible modularité
Consommation moindre Possibilité d'évolution limité
Optimisé pour une application Coût 12/18/2020
11
9
Informatique industrielle
Différences avec l’informatique traditionnelle :
• Embarquée doit être autonome et sûre
– Contrôle de l’énergie (éteindre ce qui ne sert pas ou plus, mise en veille …)
– Reprise en cas d’erreur (détection d’erreur, sauvegarde d’état, reprise en un point sûr)
– Auto contrôles (au démarrage, à temps perdu)
– Etats de mise en sécurité (arrêter totalement ou partiellement le système)
• Industrielle
– Travaille avec des phénomènes réels
• Imprécision des mesures ( image du système faussée)
• Imprécision du modèle (mal connu ou trop complexe approché)
• Délais à respecter (à faire immédiatement, après ou avant un temps donné)
• Intervention humaine parfois impossible ou trop lente
• Grandes quantités de données mais éphémères (on ne stocke pas)
– Risques élevés
• Mise en danger des personnes, de l’environnement, etc.
• Détérioration du système lui-même
• 1.2 Types :
– Mobile (smartphones, tablettes, liseuses, GPS, …)
• Accès à des ressources sur réseau (3G, wifi, Bluetooth)
• Accès à l’énergie facile (chargeur)
• Très orientée utilisateur (interface)
• Ressemble beaucoup à de l’informatique classique (sauf pour les interfaces)
– Industrielle (microcontrôleurs)
• Parfois énergie très limitée
• Rôle de l’utilisateur faible (écran LCD, boutons) ou inexistant
• Centrée sur des systèmes physiques ou sur la robotique
• Réseaux spécialisés (CAN)
Au lieu de :
On risque d’avoir :
CPU Contrôleurs
de
périphériques Microcontrôleur
• Système réel
– Caractéristiques (ce qu’il doit faire, ce qu’il peut faire)
– Temps de réaction
– Limites (sécurité)
• Contrôleurs de périphériques + CPU = microcontrôleur
– Capacités (ce qu’il peut faire)
– Vitesse (du CPU et des contrôleurs de périphériques)
– Limites (valeurs minimales et maximales, précision des mesures et des calculs)
CPU Contrôleurs
de
périphériques
capteurs
Contrôleurs
de
périphériques
actionneurs
Adaptation de puissance
• Adaptation de niveau : l’information produite par un capteur peut être transmise par un
signal électrique de valeur trop faible ou trop élevée pour le contrôleur de périphériques
(il existe des CI prévus pour ça)
• Microcontrôleur
– Modèle (puissance, vitesse, prix, disponibilité, consommation)
– Contrôleurs de périphériques (nombre, types, précision, limites)
• Capteurs
– Nombre et placement (image du système suffisante)
– Type (précision, sensibilité, fiabilité, limites, prix, type de connexion)
• Actionneurs
– Nombre et placement (modification du système possible)
– Type (précision, sensibilité, fiabilité, limites, prix, type de connexion)
• Logique
– Ordre des traitements (précédence)
– Durée des traitements (respect du temps réel)
– Priorités des traitements (urgence)
• Sécurité
– Cas d’utilisation liées à la sécurité
– Limites (du système réel et du système informatique)
– Pannes (du système réel, des capteurs, des actionneurs)
Informations produites :
• Commandes d’actionneurs
– Numérique (1 ou plusieurs bits, ex : marche/arrêt)
– Analogique (En pratique rarement utilisé, ex : vitesse)
– Temporelle (durée pendant laquelle un bit reste à 0 ou à 1 + période
ex : positionnement d’un servomoteur)
• Temps
– Délais
– Rythme de prélèvement des mesures
– Temps mesurés entre événements
• Auto contrôlé
– On agit sur un actionneur et on contrôle la réaction du système par un capteur.
– Exemple :
• Contrôle de vitesse d’un moteur :
– On met le moteur à 5000 tr/min
– On a un capteur de vitesse couplé au moteur et on vérifie qu’il soit bien à 5000 tr/min
– Si ce n’est pas le cas on ajuste sa commande de vitesse jusqu’à y arriver
– Cas d’utilisation :
• On a besoin de précision
• La commande est critique (sécurité, panne)
• Problème :
– Comment ajuster la consigne ?
• Solutions :
– Ajuster très peu pour arriver petit à petit à la bonne valeur
• Marche bien mais risque de mettre beaucoup de temps si la valeur
mesurée est loin de la valeur voulue
– Ajuster au mieux rapidement
• Ajuster la consigne plus ou moins en fonction de l’éloignement entre la
valeur mesurée et la valeur voulue mais risque d’oscillations
– Formule :
e = écart entre la valeur mesurée et la valeur voulue
consigne = Kp * e + Ki * (somme des e) + Kd (e - eprec)
Kp, Ki et Kd sont des coefficients constants à déterminer
– Vision mathématique :
– L’écart est une fonction du temps : e(t)
– La consigne est aussi une fonction du temps : c(t)
– La formule est donc :
c(t) = Kp * e(t) + Ki * ∫ e(t).dt + Kd * de(t)/dt
• ATTENTION :
Il est important de faire les mesures à intervalles réguliers
sinon les sommes et les différences entre écarts ne veulent rien dire
• Méthodes de détermination
– On peut les déterminer par calcul mais cela suppose de connaître les équations régissant le
fonctionnement du système réel
• En général elles sont difficiles à trouver (pour une voiture ça dépend des temps
d’accélération du moteur selon son régime actuel, du poids de la voiture, des frottements
de l’air, du revêtement de la route, de l’état des pneus, de la pente …)
Rappels
historique
2019-2020 5
Chapitre 2 : Rappel généraux sur les
processeurs
2019-2020 5
Le microprocesseur
Architecture interne (1)
Bus d’adresses
Microprocesseur
Unité de
Accumulateur
Unité de Programme
traitement commande
Registre
Mémoire
d’état
Données
Bus de données
6
Le microprocesseur
Architecture interne (2)
Bus d’adresses
Microprocesseur
Accumulateur PC
Accumulateur
Programme
Registre
d’état
Registre
Mémoire
d’état Bloc logique
de commande
Décodeur
d’instruction
Données
Bus de données
7
Le microprocesseur
Unité de commande
Elle permet de séquencer le déroulement des instructions.
8
Le microprocesseur
Unité de traitement
Elle exécute les instructions.
Microprocesseur
L’accumulateur : C’est un registre de travail qui
sert à stocker le résultat des opérations réalisées
Accumulateur par L’UAL.
Accumulateur
Registre L’Unité Arithmétique et Logique (UAL) est un
d’état circuit complexe qui assure les fonctions logiques
Registre
d’état
(ET, OU, comparaison, décalage, etc…) ou
arithmétique (addition, soustraction…).
Le registre d'état : Chacun des bits de ce
registre dépend du résultat de la dernière
opération effectuée par l’UAL. Exemple : Bit de
retenue (carry : C), débordement (overflow : OV
ou V), Zéro (Z) ...
9
Le traitement des instructions
Résumé
1
2
CPU Mémoire
4
2019-2020 10
L’architecture
Von Neuman
Mémoire
Programme
CPU BUS
&
données
Un seul chemin d'accès à la mémoire
Un bus de données (programme et données),
Un bus d’adresse (programme et données)
Architecture des processeurs d’usage général
Goulot d'étranglement pour l'accès à la mémoire
2019-2020 11
L’architecture
Harvard
Mémoire
programme
CPU
Mémoire
donnée
2019-2020 13
Chapitre 1 : Rappel généraux sur les
processeurs
2019-2020 14
Le traitement des instructions
Organisation d’une instruction
Le microprocesseur ne comprend qu’un certain
nombre d’instructions qui sont codées en binaire. Une
instruction est composée de deux éléments :
Le code opération : C’est un code binaire qui correspond à l’action à
effectuer par le processeur
Le champ opérande : Donnée ou bien adresse de la donnée.
2019-2020 15
Le traitement des instructions
Exemple d’instruction
Instruction Addition :
Accumulateur = Accumulateur + Opérande
Correspond à l’instruction ADD A,#2
Instruction (16 bits)
Code opératoire (5 bits) Champ opérande (11 bits)
ADD A #2
11001 000 0000 0010
2019-2020 16
Le traitement des instructions
Phase 1 : Recherche de l’instruction en mémoire
Rapporter moi les
ordres
Ordres :
écrits sur ce parchemin 1. Attaquer camp
!!! romain
2. Organiser banquet
Outils :
1. Menhir, Potion
magique
Unité de traitement Unité de commande 2. Sanglier
2019-2020 17
Le traitement des instructions
Phase 2 : Décodage et recherche de l’opérande
Rapportez moi les
outils
Ordres :
écrits sur ce parchemin 1. Attaquer camp
!!! romain
2. Organiser banquet
Outils
:1. Menhir, Potion
2. magique
Sanglier
Unité de traitement Unité de commande
2019-2020 18
Le traitement des instructions
Phase 3 : Exécution de l’instruction
On va commencer par
attaquer
le camps Romain Ordres :
1. Attaquer camp
avec des menhir et de romain
la potion !!! 2. Organiser banquet
Outils :
1. Menhir, Potion
magique
Unité de traitement Unité de commande 2. Sanglier
2019-2020 19
Le traitement des instructions
Déroulement
Bus d’adresses
Microprocesseur
Accumulateur PC
Accumulateur
Programme
Registre
d’état
Registre
Mémoire
d’état Bloc logique
de commande
Décodeur
d’instruction
Données
Bus de données
20
Le traitement des instructions
Les architectures RISC et CISC (1)
L’ architecture CISC
(Complex Instruction Set Computer)
L’architecture RISC
(Reduced Instruction Set Computer)
2019-2020 21
Chapitre 1 : Rappels généraux sur les
processeurs
2019-2020 22
Les modes d’adressages
Adressage immédiat
Adressage direct
Adressage indirect
Exemple : ADDA #4
ALU
Mémoire
Adresses Contenu
0x00 0………………..
110 1101
Accumulateur
0x01 0………………..
100 0101
0………………..
010 1111
Compteur Ordinal adrs 1 1 0ADDA
1 0101
adrs + 2 …………………
1………………..
010 1101
…………………
0011 1000
1…………………
100 0101
1…………………
010 1001
………………….
0111 1010
2019-2020 24
Les modes d’adressages
Direct
Accumulateur
0x01 0………………..
100 0101
0………………..
010 1111
Compteur Ordinal adrs 1 1 0ADDA
1 0101
adrs + 2 …………………
1010 1101
adresseX 0xxxx
0 1 1 xxxx
1000
1…………………
100 0101
1…………………
010 1001
………………….
0111 1010
2019-2020 25
Les modes d’adressages
Indirect
Accumulateur
0x01 0………………..
100 0101
0………………..
010 1111
Compteur Ordinal adrs 1 1 0ADDA
1 0101
adrs + 2 …………………
1010 1101
@adresseX 0 adresseX
011 1000
1…………………
100 0101
adresseX xxxxx
1 0 1 0 xxxxxx
1001
………………….
0111 1010
2019-2020 26
Chapitre 1 : Rappel généraux sur les
processeurs
2019-2020 27
Exemple d’exécution (1)
Le compilateur génère aussi un fichier assembleur, représentant le code
et les emplacements mémoire qui seront utilisés.
2019-2020 28
Exemple d’exécution (2)
À l’infini
PORTC
2019-2020 29
Le jeu d’instruction du PIC16F
D’après la datasheet :
Quelles sont les trois grandes catégories d’instruction du PIC16F877A?
2019-2020 31
Définition d’un microcontrôleur
Un microcontrôleur est un circuit qui intègre un maximum
de fonctions dans un même boitier. L’intégration de ces
fonctions dans le même environnement permet de créer
des applications plus simplement.
2019-2020 32
Ventes de microcontrôleurs
2019-2020 33
Ventes de microcontrôleurs
2019-2020 33
AJD
RAM
Microprocessor
Program
Memory
Oscillator
0 -40MHz
<l--
Microcontroller
Définition d’un microcontrôleur
Avantages
Cout réduit
Encombrement moindre
Fiabilité
2019-2020 35
Définition d’un microcontrôleur
Contenu
La structure interne d'un microcontrôleur comporte
typiquement :
Une unité de calcul et de commande
Mémoire ROM
Mémoire RAM
Un contrôleur d’interruption
Un compteur/temporisateur (timer)
Des entrées/sorties parallèles (ports)
Un UART (port série)
2019-2020 36
Définition d’un microcontrôleur
Exemple : Microcontrôleur PIC 16F877
2019-2020 37
Définition d’un microcontrôleur
Les mémoires (1)
ROM memory :
Aussi appelé (à juste titre) program memory.
C’est une mémoire Flash qui contient le
programme à exécuter.
EEPROM memory
C’est une mémoire similaire à la mémoire programme. On s’en sert
surtout pour stocker des constantes.
2019-2020 38
Définition d’un microcontrôleur
Les mémoires (2)
RAM memory :
General Purpose Register : Mémoire RAM classique, utiliser pour
stocké des variables. Exemple :
int i;
i++; // incrémentation de i depuis la RAM
2019-2020 39
Définition d’un microcontrôleur
Les mémoires (3)
2019-2020 40
Cadencement du microcontrôleur
Schéma du pic 16F877
2019-2020 42
Cadencement du microcontrôleur
Les cadencements possibles
Quartz
Très bonne Stabilité (10 ppm)
Résonateur céramique
Stabilité ( 0.5%)
Moins couteux que le quartz
43
Les timers
Mode compteur ou temporisateur (1)
Un timer est le nom courant de compteur / temporisateur .
45
Les timers
Mode compteur ou temporisateur (2)
En pratique, on visualise la valeur de départ, puis la valeur
d’arrivée. La valeur de comptage est la différence des deux
valeurs.
2019-2020 46
Les timers
Utilisation d’un prescaler
2019-2020 47
Les ports d’entrée / Sortie
Ce sont des ports parallèles. Ils permettent de recueillir des
informations ou de piloter des modules sur l’environnement
extérieur. Ils sont souvent bidirectionnels (configurable en
entrée ou sortie).
2019-2020 49
Les ports d’entrée / Sortie
Quelles sont les ports d’E/S de ce microcontrôleur?
2019-2020 50
TRISA (B, C, D, E)
PORTA (B, C, D, E)
Pins
...
..
...
..
~
RJW !XI RIWCx) R/W(XI RIWCx) R/W(X) RIWCxl RIWCx) R/W(X) Featu-
PORTS! RB7 RB6 RBS RB4 RB3 RB2 RB1 RBO Bit
name ea 11« 111 111 111 IIN 111 111
1 8 5 14 3 2 11 0
TRISB TRISB7 TRISB6 TRISBS TRISB4 TRISB3 TRISB2 TRISB1 TRISBO Bit name
1118 1115 11114 1113 IIN2 1111 1
Les ports d’entrée / Sortie
Les sorties logiques
2019-2020 52
Les ports d’entrée / Sortie
1. Sortie trois états
Fonctionnement
T1 T2 Sortie
Bloqué Bloqué Etat haute impédance
Bloqué Saturé "0"
Saturé Bloqué "1"
Saturé Saturé non utilisé
Des sorties trois états peuvent être reliées entres elles mais il
faut bien veiller à ce que une seule impose un niveau (haut ou
bas) et que les autres sorties soit en haute impédance.
2019-2020 53
Les ports d’entrée / Sortie
2. Sortie collecteur ouvert (1)
Fonctionnement
T2 S
Saturé "0"
Bloqué Dépend du montage
2019-2020 54
Les ports d’entrée / Sortie
2. Sortie collecteur ouvert (2)
"1"
"0" Vi
Vseuil- Vseuil+
2019-2020 56
Les ports d’entrée / Sortie
Bouton poussoir :
Led :
Donner la valeur de la résistance sachant qu’une led
rouge à une tension de 1,5V et qu’il faut 10 mA pour
avoir un éclat correct.
2019-2020 57
Les ports d’entrée / Sortie
Cas du PIC16F877
D’après la datasheet :
Combien possède t on de bits d’E/S pour le PORTA,
B, C, D et E?
2019-2020 58
La liaison série
La liaison série USART (Universal Synchronous Asynchronous
Receiver Transmitter ) est le mode le plus rependu pour
communiquer (et aussi le plus vieux).
60
La liaison série
Connexions (1)
Une liaison série permet de transmettre des données
sur un nombre limité de fils. Cette liaison peut être
Half duplex (liaison synchrone) ou full duplex (liaison
asynchrone).
2019-2020 61
La liaison série
Connexions (2)
2019-2020 62
La liaison série
USART Transmit bloc register
2019-2020 63
La liaison série
USART receive bloc register
2019-2020 64
La liaison série
D’après la datasheet :
Pourquoi avons-nous une corrélation entre le fait
d’être synchrone/Asynchrone et full duplex / half
duplex?
2019-2020 65
Chapitre 3 : Les microcontrôleurs
2019-2020 66
Le Watchdog (1)
Si je reçoit rien,
j’appuie sur le
67
RESET!!!
Le Watchdog (2)
MICROCONTROLEUR
68
Le Watchdog
Cas du PIC16F877
D’après la datasheet :
2019-2020 69
MCU ATMEGA328P et ARDUINO
µcontrôleur
4
Arduino existe en plusieurs versions :
5
MCU ATMEGA328P et ARDUINO
6
MCU ATMEGA328P et ARDUINO
●
ATmega 48 ;
● ATmega 88 ;
● ATmega 168 ;
● ATmega 328 ;
Avantages :
Difficultés :
10
L’interface matérielle du Microcontroleur : Arduino et AVR
11
L’interface matérielle du Microcontroleur : Arduino et AVR
11
Résumé des la connectique ATMEGA 328P-PU
●
1 alimentation pour les E/S numérique;
●
9 entrées / sorties numériques;
●
1 alimentation + référence pour les E/S analogique;
●
6 entrées / sorties analogiques;
●
1 entrée + 1 sortie oscillateur (20 Mhz);
●
1 ''port'' série (Universal Asynchronous Receiver Transmitter);
●
3 lignes pour mettre à jour le micrologiciel (BIOS);
12
●
1 ligne pour le RESET.
Système Arduino AVR ATMEGA 328
100
2019-2020 18/12/2020
101 LES E/S AVEC ARDUINO
2019-2020 18/12/2020
102 Caractéristiques Electriques
des E/S Arduino
Note : les broches analogiques peuvent être utilisées en
tant que broches numériques : elles sont numérotées en
tant que broches numériques de 14 à 19.
2019-2020 18/12/2020
103
Le premier système embarqué
Apollo Guidance Computer (AGC)
Chap Capteurs
Actionneurs et contrôleurs de
périphériques
• Moyens :
– Mécanique (contact, résistance ou capacité variable)
– Piézoélectrique (tension induite par la déformation d’un cristal)
– Effet Hall (tension induite par un champ magnétique)
– Capacitif (tactile ou chimique)
– Rayonnement (radio, infrarouge, laser)
– Ultra sons (puissance, temps de propagation)
– Lumière (phototransistor ou photorésistance)
– Chimique (électrodes)
• Moyens
– Mécanique et magnétique (moteur, électroaimant)
– Piézoélectrique (vibreur)
– Emission de rayonnements (radio, infrarouge, laser)
– Lumière (DEL, écran)
• Limites
– Un capteur de température supporte-t-il une température de 100°? De 1000°?
– Un servomoteur peut-il soulever une charge de 500 g ? De 10 Kg ?
• Prix
– Très lié à la précision, la sensibilité, la fiabilité et les limites. Par exemple on trouve des servomoteurs à
4€ et d’autres à 2000€
• Type d’information envoyée/reçue
– Numérique
– Analogique
– Temporelle
• Connexion
– Directe
– Par connexion spécialisé (SPI, I2C, I2S)
Informatique embarquée et temps réel –
12/18/2020
110
Contrôleurs de périphériques
• Sorties (actionneurs)
– Numériques
• Lignes binaires en sortie (écriture 0 ou 1)
– Analogiques
• Convertisseurs N/A : entier de 0 à N → tension de V1 à V2
– Temporelles
• Lignes binaires en sortie avec choix de période et durée du 0 ou du 1
• Communication
– Avec des capteurs ou des actionneurs
• Bus de données spécialisés (SPI, I2C, I2S)
• Energie
– Mise hors tension de périphériques
– Détection de baisse d’alimentation
• Temps
– 2 Timers sur 8 bits (très limités)
– 4 Timers sur 16 bits
• Energie
– Possibilité d’allumer/éteindre chaque contrôleur de périphérique
individuellement
• Communication
– 4 USART (série asynchrone) ou SPI (Serial Peripheral Interface)
– 1 I2C (Inter-Integrated Circuit)