المدرسة الوطـنيـّة للمـهـندسيـن بسوسـة Ingénieur en électronique industrielle
Ecole Nationale d’Ingénieurs de Sousse 2 ème année
Microcontrôleurs et
Programmation II
Le langage C pour les PICs
(contrôleur d'interface périphérique)
Safa AMEUR
[email protected]
ENISo, Septembre 2021
Introduction sur les microcontrôleurs
I – INTRODUCTION
Les différents systèmes programmables: Partie 1
1. Les circuits spécialisés ou 2. Les systèmes en logique 3. Les systèmes micro-programmés :
ASIC (Application Specific programmée: Ils sont connus Les micro-contrôleurs sont typiquement
Integrated Circuit) sous la désignation de PLD des systèmes micro-programmés. Un
Les circuits spécialisés sont des (programmable logic device, micro-contrôleur est un : « Circuit
circuits spécialisés dès leur circuit logique programmable) intégré comprenant essentiellement un
conception pour une - FPGA (field-programmable microprocesseur, ses mémoires, et des
application donnée. Exemples : gate array, réseau de portes éléments personnalisés selon
- DSP (Digital Signal Processing), programmables), l'application. »
- co-processeur arithmétique, - PAL (programmable array
- processeur 3-D, logic, réseau logique
- contrôleur de bus, ... programmable),
- Etc…
Avantages:
- Mise en oeuvre simple
- Coûts de développement réduits
Inconvénients:
- Plus lent
- Utilisation sous optimale
2
S. Ameur, Microcontrôleurs et programmation II, EI 3.1 © ENISo – Septembre. 2021
Introduction sur les microcontrôleurs
II – MICROPROCESSEUR ET MICROCONTROLEUR
Partie 1
Il y a une différence fondamentale entre un
microprocesseur et un microcontrôleur :
le microcontrôleur intègre dans un même
boîtier, un microprocesseur, de la mémoire,
et des interfaces entrées/sorties.
le microprocesseur se présente sous la
forme d’un boîtier qui nécessite des
éléments externes, comme de la mémoire
et des circuits d’interfaces.
Source: cours Microcontrôleurs, ISET Nabeul
Ils sont présents dans la plupart des systèmes
Il en existe de nombreux modèles : électroniques embarqués ou dédiés à une
68HC11 de Motorola, application unique (exemple : téléphone
8051 de Intel, portable).
les ARM qui sont très utilisés en électronique
embarquée
et les PIC de Microchip.
3
S. Ameur, Microcontrôleurs et programmation II, EI 3.1 © ENISo – Septembre. 2021
Introduction sur les microcontrôleurs
III – GENERALITES SUR LES PIC
1. Trois grandes familles
Partie 1
- Base-Line (mots d’instructions de 12 ou 14 bits comme les 12Cxxx, 12Fxxx),
- Mid-Range (mots de 14 bits comme le 16F628, 16F877, etc.),
- High-End (mots de 16 bits).
2. Identification
Prenons l’exemple du PIC : PIC16F877A-I/P., 07514KQ
- Les 2 premiers chiffres indiquent la catégorie du PIC : 16 = Mid-Range.
- F indique que la mémoire programme est de type FLASH ; on retrouve CR pour ROM (ROM :
Read Only Memory) et C pour EPROM (EPROM : Erasable ROM) ou EEPROM EEPROM : Electrical
Erasable ROM).
- 877A indique le modèle du PIC.
Parfois, un suffixe supplémentaire comme 20 est indiqué. Il s’agit de la fréquence d’horloge maximale. 20
pour 20 MHz.
- I est la gamme de température industrielle (-40°C à +85°C).
- P est le type de boîtier PDIP, boîtier 40 broches Plastique DIL (Dual In Line).
- 07 est l’année de fabrication 2007
-51, la semaine 51, donc fin décembre.
-4KQ est un code de traçabilité.
4
S. Ameur, Microcontrôleurs et programmation II, EI 3.1 © ENISo – Septembre. 2021
Introduction sur les microcontrôleurs
3. Architecture interne
Partie 1
Tous les microcontrôleurs utilisent l’une des 2 architectures nommées Harvard et Von Neumann.
Elles représentent les différentes manières d’échange de données entre le CPU (microprocesseur interne) et
la mémoire
3.1. Architecture Von Neumann
L’architecture VON NEUMANN employée par la plupart des
microcontrôleurs actuels (INTEL80XX, Motorola HC05, HC08
et HC11, ou ZILOG Z80) est basée sur un bus de données
unique. Celui-ci véhicule les instructions et les données.
1 bloc mémoire et 1 bus de données sur 8 bits (1 octet).
Toutes les données sont échangées sur ce bus qui,
surchargé, rend la communication très lente.
Source: cours Microcontrôleurs, ISET Nabeul
5
S. Ameur, Microcontrôleurs et programmation II, EI 3.1 © ENISo – Septembre. 2021
Introduction sur les microcontrôleurs
3.2. Architecture Harvard
Partie 1
L’architecture HARVARD utilisée par les microcontrôleurs PIC
est basée sur deux bus de données. Un bus est utilisé pour
les données et un autre pour les instructions.
Exp: MICROCHIP PIC
2 blocs mémoire distincts et 2 bus différents : 1 bus 8 bits
pour communiquer avec la RAM, 1 bus 14 bits pour
communiquer avec la ROM, qui contient le programme.
Source: cours Microcontrôleurs, ISET Nabeul
6
S. Ameur, Microcontrôleurs et programmation II, EI 3.1 © ENISo – Septembre. 2021
Introduction sur les microcontrôleurs
4. Jeu d’instructions
Partie 1
Toutes les instructions compréhensibles par les microcontrôleurs forment ce que l’on appelle le jeu d’instructions.
On distingue 2 types :
Composants dits RISC (Reduced Instructions Set Computer), par exemple les PIC. Dans ce cas, le
microcontrôleur reconnaît et exécute seulement des opérations simples (addition, soustraction, etc.) et
des opérations plus complexes sont réalisées en les combinant. Tous les PIC Mid-Range ont un jeu de 35
instructions
Composants dits CISC (Complex Instructions Set Computer), les microcontrôleurs de ce type possèdent 200
instructions différentes et peuvent réaliser de nombreuses opérations à grande vitesse. Les instructions sont
plus complexes.
7
S. Ameur, Microcontrôleurs et programmation II, EI 3.1 © ENISo – Septembre. 2021
Introduction sur les microcontrôleurs
IV – PIC 16F877A
1. Synoptique simplifié
La mémoire FLASH de 8k x 14bits
Partie 1
permet de stocker le programme (les
instructions).
La mémoire vive (RAM) de 368
octets est utilisée pour le stockage
temporaire des données et résultats.
L’horloge génère le signal qui Le CPU exécute les instructions du
cadence l’exécution des instructions. programme (codées sur 14 bits),
traite et produit des opérations sur
des informations numériques.
La mémoire morte (EEPROM) de
256 octets permet de conserver des Les ports (A – E) bidirectionnels
données très utiles de manière semi- permettent de communiquer avec
permanente. l’extérieur ; les lignes de chaque port
peuvent être programmées en
Les timers (3), modules entrée ou en sortie.
programmables dont les fonctions Le CAN convertisseur
sont : astable (signaux périodiques), analogique/numérique 10 bits – 8
monostable (impulsion), compteur, entrées disponibles de 0 à 5V ; les
signaux PWM (commande de résultats des conversions sont
moteurs à courant continu). stockés dans des registres internes.
8
S. Ameur, Microcontrôleurs et programmation II, EI 3.1 © ENISo – Septembre. 2021
Introduction sur les microcontrôleurs
2. Brochage physique des différentes versions de µC
Partie 1
9
S. Ameur, Microcontrôleurs et programmation II, EI 3.1 © ENISo – Septembre. 2021
Introduction sur les microcontrôleurs
3. Synoptique complet
Du PIC 16F877a
Partie 1
1
0 S. Ameur, Microcontrôleurs et programmation II, EI 3.1 © ENISo – Septembre. 2021
Introduction sur les microcontrôleurs
4. Les éléments de choix d’un µC
4.1. Architecture
Partie 1
- ALU (8, 16, 32, 64 bits)
- Structure du processeur (Harvard, Von Neumann)
- Type de processeur (RISC, CISC) 4.3. Caractéristiques électriques :
- Taille des mémoires programme et donnée - Fréquence d’horloge
- Nombre de ports d’entrée/sortie - Tensions d’alimentation
- Consommation d’énergie, modes
4.2. Fonctionnalités faible consommation d’énergie, etc.
- Fonctions analogiques : CAN, CNA, Comparateur, etc.
- Fonctions de timing : Timer, Watchdog, etc.
- Fonctions de communication : UART (Communication série), 4.4. Caractéristiques physiques :
USB, I2C, etc. - Type de boîtier : DIL, PLCC, etc.
- Facilité de programmation : In-Circuit Serial Programming,
Self Programming, etc.
1
1 S. Ameur, Microcontrôleurs et programmation II, EI 3.1 © ENISo – Septembre. 2021
Introduction sur les microcontrôleurs
V – LA PROGRAMMATION
Partie 1
Le microcontrôleur exécute le programme chargé dans sa mémoire FLASH. Les mots binaires (sur 14 bits
pour le PIC16F877A) sont considérés par le CPU comme une commande.
Source: cours Microcontrôleurs, ISET Nabeul
1
2 S. Ameur, Microcontrôleurs et programmation II, EI 3.1 © ENISo – Septembre. 2021
Introduction sur les microcontrôleurs
V – LA PROGRAMMATION
Partie 1
Mais programmer en binaire ou même en hexadécimal est impossible. Les programmeurs utilisent des
langages comme l’assembleur ou le C, qui utilise des abréviations.
Le passage de ce code plus lisible en code binaire prêt à être mis en mémoire s’appelle la compilation.
Remarque : L’assembleur est un
langage bas niveau étroitement lié au
Source: cours Microcontrôleurs, ISET Nabeul
type de microcontrôleur.
1
3 S. Ameur, Microcontrôleurs et programmation II, EI 3.1 © ENISo – Septembre. 2021
Introduction sur les microcontrôleurs
V – LA PROGRAMMATION
Partie 1
Le C est un langage de plus haut niveau que l’assembleur et permet en théorie d’être portable, donc de
s’adapter à n’importe quel microcontrôleur.
Source: cours Microcontrôleurs, ISET Nabeul
1
4 S. Ameur, Microcontrôleurs et programmation II, EI 3.1 © ENISo – Septembre. 2021
Le compilateur MicroC et le simulateur ISIS
Partie 2
1
5 S. Ameur, Microcontrôleurs et programmation II, EI 3.1 © ENISo – Septembre. 2021