Le microcontrôleurCH3) Le... · 2019-12-01 · Le microcontrôleur, son marché Au cours de la fin...
Transcript of Le microcontrôleurCH3) Le... · 2019-12-01 · Le microcontrôleur, son marché Au cours de la fin...
Le microcontrôleurLa logique programmée
Le microcontrôleurLa logique programmée
Le microprocesseur (du µC) exécute séquentiellement les instructions
codées en binaire et présentent dans la mémoire programme
Le microcontrôleurLa logique programmée
Le microprocesseur (du µC) exécute séquentiellement les instructions
codées en binaire et présentent dans la mémoire programme,
Il y a donc un temps de traitement et rares sont les µC capables de gérer
du multi-thread
Le microcontrôleur, le besoin
Le microcontrôleur, le besoin
Le microcontrôleur, le besoin
Le microcontrôleur, le besoin
Le microcontrôleur, la structure
Le microcontrôleur, la structure
Un objet technique, intégrant de l’électronique, fait souvent
apparaître des fonctions ayant pour rôle le traitement
d’informations : opérations arithmétiques (addition,
multiplication...) ou logiques ( ET, OU...) entre plusieurs
signaux d’entrée permettant de générer des signaux de sortie.
Ces fonctions peuvent être réalisées par des circuits intégrés
analogiques ou logiques. Mais, lorsque l’objet technique devient
complexe, et qu’il est alors nécessaire de réaliser un ensemble
important de traitements d’informations, il devient plus simple
de faire appel à une structure à base de microcontrôleur.
Structure d’un système technique
Structure d’un système technique
Le microcontrôleur, les boitiers
Le microcontrôleur, descriptionUn microcontrôleur se présente sous la forme d’un circuit intégré réunissant tous les éléments d’une structure à
base de microprocesseur. Voici généralement ce qu’on trouve à l’intérieur d’un tel composant :
- un microprocesseur (C.P.U.).
- de la mémoire de donnée (RAM et EEPROM).
- de la mémoire programme (ROM, OTPROM, UVPROM ou EEPROM).
- des interfaces parallèles pour la connexion des entrées / sorties.
- des interfaces séries pour le dialogue avec d’autres unités.
- des timers pour générer ou mesurer des signaux avec une grande précision temporelle.
- des convertisseurs analogique-numérique pour le traitement de signaux analogiques.
avantages : - encombrement réduit
- circuit imprimé peu complexe
- faible consommation
- coût réduit
Le microcontrôleur, son marché
Au cours de la fin des années 90, l’utilisation des microprocesseurs nécessitait une carte complète (des composants mémoires + des composants d’E/S + …. Cette structure devenait compliquée d’autant plus que les µP devenaient de plus en plus puissants: utilité de cette puissance?????Des constructeurs ont donc décidé de créer un composant unique qui rassemble dans le même boitier tous les composants utiles: des mémoires + des composants d’E/S et évidemment, un petit µP
Le microcontrôleur, les constructeurs
• Mototola,• Microchip, (PIC)• Atmel, (Attiny…, AT90S…., ARM Cortex,….)• NXP,• Cypress,• Texas Instrument• Samsung
Le microcontrôleur, organisation fonctionnelle
Le microcontrôleur, exemple du PIC 16F877
Le microcontrôleur, exemple du PIC 16F877
Le microcontrôleur, exemple du PIC 16F877High performance RISC CPUOnly 35 single word instructions to learnAll single cycle instructions except for program branches which are two cycleOperating speed: DC - 20 MHz clock input
DC - 200 ns instruction cycleUp to 8K x 14 words of FLASH Program Memory, Up to 368 x 8 bytes of Data Memory (RAM),Up to 256 x 8 bytes of EEPROM Data MemoryInterrupt capability (up to 14 sources)Direct, indirect and relative addressing modesPower-on Reset (POR)Power-up Timer (PWRT) and Oscillator Start-up Timer (OST)Watchdog Timer (WDT) with its own on-chip RC oscillator for reliable operationProgrammable code protectionPower saving SLEEP modeSelectable oscillator optionsLow power, high speed CMOS FLASH/EEPROM technologyIn-Circuit Serial Programming (ICSP) via two pinsIn-Circuit Debugging via two pinsWide operating voltage range: 2.0V to 5.5V - High Sink/Source Current: 25 mA
Le microcontrôleur, exemple du PIC 16F877
bit timer/counter with 8-bit prescaler-bit timer/counter with prescaler,can be incremented during SLEEP via external crystal/clockbit timer/counter with 8-bit periodregister, prescaler and postscaler
Two Capture, Compare, PWM modules- Capture is 16-bit, max. resolution is 12.5 ns- Compare is 16-bit, max. resolution is 200 nsPWM max. resolution is 10-bit
bit multi-channel Analog-to-Digital converterSynchronous Serial Port (SSP) with SPI (Master mode) and I2C(Master/Slave)Universal Synchronous Asynchronous Receiver Transmitter (USART/SCI) with 9-bit address detectionParallel Slave Port (PSP) 8-bits wide, withexternal RD, WR and CS controls (40/44-pin only)
out detection circuitry forBrown-out Reset (BOR)
Le microcontrôleur, exemple du PIC 16F877
Le microcontrôleur, exemple du PIC 16F877
Le microcontrôleur, Le processeurCPU: Central Process Unit
Un microprocesseur exécute séquentiellement les instructions stockées dans la mémoire programme. Il est capable
d’opérer sur des mots binaires dont la taille, en bits, est celle du bus de données. Il est constitué de registres
(mémoires de un ou plusieurs octets où le microprocesseur vient lire ou écrire des données) :
- un ou plusieurs registres (accumulateurs) contenant temporairement les opérandes (valeurs traitées par les
instructions) ainsi que les résultats des opérations.
- des registres auxiliaires permettant de relayer les accumulateurs.
- des registres d’index pour les différents modes d’adressage des données.
- un compteur programme pointant l’adresse de la prochaine instruction à exécuter, sa taille est celle du bus des
adresses.
- un registre code condition indique certaines particularités du résultat de la dernière opération effectuée (retenu,
zéro,...).
- des registres de configuration des périphériques.
Le microcontrôleur, les mémoires programmes (ROM: Read Only Memory)
Cette mémoire contient les instructions du programme que doit exécuter le microprocesseur. Ce type de mémoire
(appelée mémoire morte), est uniquement accessible en lecture. Sa programmation nécessite une procédure particulière
et un matériel adéquate.
Il en existe différents types selon leur mode de programmation :
- de la ROM dont le contenu est programmé lors de sa fabrication.
- de la PROM (Programmable ROM) programmable électriquement une seule fois par le développeur (appelée
aussi OTPROM, One Time Programmable ROM).
- de la EPROM (Erasable PROM) programmable électriquement et effaçable aux Ultra-Violet (appelée aussi
UVPROM).
- de la EEPROM (Electrically EPROM) programmable et effaçable électriquement.
Le microcontrôleur, les mémoires de données
Cette mémoire permet de mémoriser temporairement les données générées par le microprocesseur pendant les
différentes phases du traitement numérique (résultats d’opérations, états des capteurs...). Ces mémoires sont
accessibles en écriture et en lecture.
On en trouve 2 types :
- de la mémoire vive (RAM: Random Access Memory) volatile (données perdues en cas de coupure
de l’alimentation) ayant un temps de lecture et écriture assez court (quelques ns).
- de la mémoire morte (EEPROM) non-volatile (données conservées en cas de coupure de
l’alimentation) ayant un temps d’écriture assez élevé (quelques ms) par rapport au temps de lecture
qui est assez faible (quelques ns).
- De la mémoire Flash: La mémoire flash est une mémoire à semi-conducteurs, non volatile et réinscriptible, c'est-à-dire une mémoire
possédant les caractéristiques d'une mémoire vive mais dont les données ne se volatilisent pas lors d'une mise hors tension. Ainsi la mémoire flash
stocke les bits de données dans des cellules de mémoire, mais les données sont conservées en mémoire lorsque l'alimentation électrique est coupée.
(cçm)
Le microcontrôleur, l’interface parallèle
Ce type d’interface est répartie sur plusieurs « ports » (maximum 8 bits), permet de prendre en compte
des états logiques appliqués en entrée (état de capteurs) ou de générer des signaux binaires en sortie
(commande d’actionneurs). Les broches de ces ports peuvent donc être configurées en entrée ou en
sortie, avec différentes options (résistances de rappel, etc…). La configuration ainsi que l’état logique de
ces broches est obtenue par des opérations d’écriture ou de lecture dans différents registres associés à
chaque port. On trouve généralement :
- un registre de direction pour une configuration soit en entrée ou soit en sortie.
- un registre de donnée recopiant les états logiques de chaque broche de port.
- un registre d’option permettant plusieurs configurations en entrée ou en sortie ou autre.
Le microcontrôleur, l’interface parallèle
Ce type d’interface est répartie sur plusieurs « ports » (maximum 8 bits), permet de prendre en compte
des états logiques appliqués en entrée (état de capteurs) ou de générer des signaux binaires en sortie
(commande d’actionneurs). Les broches de ces ports peuvent donc être configurées en entrée ou en
sortie, avec différentes options (résistances de rappel, etc…). La configuration ainsi que l’état logique de
ces broches est obtenue par des opérations d’écriture ou de lecture dans différents registres associés à
chaque port. On trouve généralement :
- un registre de direction pour une configuration soit en entrée ou soit en sortie.
- un registre de donnée recopiant les états logiques de chaque broche de port.
- un registre d’option permettant plusieurs configurations en entrée ou en sortie ou autre.
Le microcontrôleur, l’interface série
Ce type d’interface permet au microcontrôleur de communiquer avec d’autres systèmes à base de microprocesseur.
Les données envoyées ou reçues se présentes sous la forme d’un succession temporelle (sur un seul bit) de valeurs
binaires images d’un mots. Il y a 2 types de liaison série : synchrone et asynchrone.
Liaison série synchrone (USART: Universal Synchronous & Asynchronous Receiver Transmitter) :
Dans ce dispositif la transmission est synchronisé par un signal d’horloge émis par l’unité maître : les informations
binaires transitent sur un seul fil (dans les deux sens) au rythme du signal d’horloge.
Bus I2CBus CAN
Le microcontrôleur, l’interface sérieCe type d’interface permet au microcontrôleur de communiquer avec d’autres systèmes à base de microprocesseur.
Les données envoyées ou reçues se présentes sous la forme d’un succession temporelle (sur un seul bit) de valeurs
binaires images d’un mots. Il y a 2 types de liaison série : synchrone et asynchrone.
Liaison série asynchrone (UART: Universal Asynchronous Receiver Transmitter) :Ce dispositif ne possède pas de signal d’horloge de synchronisation. Les unités en liaison possèdent chacune une
horloge interne cadencée à la même fréquence. Lorsqu’une unité veut émettre un mot binaire, elle génère un front
descendant sur sa ligne émettrice. A la fin de l’émission de ce mot, la ligne repasse au niveau haut. C’est le principe
du protocole de transmission de donnée RS232 utilisé en informatique notamment par les modems externes.
Bus 1-wire
Le microcontrôleur, l’interface sérieCe type d’interface permet au microcontrôleur de communiquer avec d’autres systèmes à base de microprocesseur.
Les données envoyées ou reçues se présentes sous la forme d’un succession temporelle (sur un seul bit) de valeurs
binaires images d’un mots. Il y a 2 types de liaison série : synchrone et asynchrone.
Liaison série asynchrone (UART: Universal Asynchronous Receiver Transmitter) :Ce dispositif ne possède pas de signal d’horloge de synchronisation. Les unités en liaison possèdent chacune une
horloge interne cadencée à la même fréquence. Lorsqu’une unité veut émettre un mot binaire, elle génère un front
descendant sur sa ligne émettrice. A la fin de l’émission de ce mot, la ligne repasse au niveau haut. C’est le principe
du protocole de transmission de donnée RS232 utilisé en informatique notamment par les modems externes.
Bus 1-wire
Adresse sur 64 bits → 264=1,844674407×10¹⁹
esclaves….
Le microcontrôleur, Le CAN (Convertisseur Analogique -> Numérique (ou ADC)
Le CAN intégré dans les microcontrôleurs est généralement du type “Approximations successives. Il possède
plusieurs entrées multiplexées accessibles via les broches des ports de l’interface parallèle. Le CAN possède
normalement 2 registres :
- un registre de données contenant le résultat de la conversion,
- un registre de contrôle permettant de lancer et de surveiller la conversion.
Le microcontrôleur, Le CAN (Convertisseur Analogique -> Numérique (ou ADC)
Le CAN intégré dans les microcontrôleurs est généralement du type “Approximations successives. Il possède
plusieurs entrées multiplexées accessibles via les broches des ports de l’interface parallèle. Le CAN possède
normalement 2 registres :
- un registre de données contenant le résultat de la conversion,
- un registre de contrôle permettant de lancer et de surveiller la conversion.
10 bits → 210 valeurs → 0 à
1023
⚫ 0V→ 0
⚫ 5V → 1023
⚫ Donc, produit en croix...
Le microcontrôleur, Les timers
Le Timer permettent de réaliser les fonctions suivantes :
- génération d’un signal périodique.
- génération d’une impulsion calibrée.
- temporisation.
- comptage d'événements.
Plusieurs registres associés au Timer permet de configurer les différents modes décrits précédemment.
Le microcontrôleur, Le watchdog
Ce dispositif est un système « anti-plantage » du microcontrôleur. Il s’assure qu’il n’y ait pas d'exécution prolongée
d’une même suite d’instruction.
Un compteur rechargeable se décrémente régulièrement au rythme de la fréquence d’horloge. Si aucun
rechargement n’est effectué avant qu’il n’atteigne la valeur “0” un Reset est généré relançant ainsi le
microcontrôleur au début du programme. Il faut donc penser à recharger régulièrement ce chien de garde par
programme lorsqu’il est activé.
Le microcontrôleur, Les signaux d’horlogeLe signal d’horloge permet de cadencer le fonctionnement du microcontrôleur. Ce dernier intègre généralement une
porte à trigger de Schmitt afin de réaliser un oscillateur. Pour l’obtenir, on place un quartz entre les deux broches
“OscIn” et “OscOut” comme indiqué sur le schéma suivant :
OU
OU
Le microcontrôleur, Le circuit d’initialisation conseillé
The PIC16F87X differentiates between
various kinds of RESET:
• Power-on Reset (POR)
•MCLR Reset during normal operation
•MCLR Reset during SLEEP
• WDT Reset (during normal operation)
• WDT Wake-up (during SLEEP)
• Brown-out Reset (BOR)
Les microcontrôleurs: le raz de marée ArduinoOpen Source!!!
3,5€
1,5€
Faible puissance
Les microcontrôleurs: le raz de marée Arduino
Versions améliorées
Les microcontrôleurs: le raz de marée Arduino
IoT