• Aucun résultat trouvé

Systèmes embarqués

N/A
N/A
Protected

Academic year: 2022

Partager "Systèmes embarqués"

Copied!
48
0
0

Texte intégral

(1)

Julien VILLEMEJANE

Systèmes embarqués

ETI

http://hebergement.u-psud.fr/villemejane/

(2)

2

Monde numérique

Communication inter-système

Réseau de terrain dans un véhicule

EITI – Microcontroleurs / Julien Villemejane

Injecteur

Calculateur Freins

Vitesse G

Ord Bord

GPS

Portable Tableau

Vitesse

CAN / SPI / I2C D

CAN / Ethernet

WiFi / Bluetooth

(3)

Systèmes intelligents

Vidéos d’introduction

- Capteurs intelligents / SICK

- ZED Camera / Stereolabs – IOGS/503

(4)

4 EITI – Microcontroleurs / Julien Villemejane

Systèmes intelligents

Piloter des systèmes

Interagir rapidement avec l’environnement

Capteurs intelligents

(5)

5 EITI – Microcontroleurs / Julien Villemejane

Systèmes intelligents

Piloter des systèmes

Interagir rapidement avec l’environnement

Capteurs intelligents

Microcontroleurs

Entrées / Sorties spécifiques

Architecture spécifique (ROM, RAM, CPU, modules)

Calculs « simples » numériques

Grande réactivité

(6)

Microcontroleurs

(7)

7 EITI – Microcontroleurs / Julien Villemejane

Microcontroleurs

Pour tout contrôler

Structure d’un microcontroleur

(8)

8 EITI – Microcontroleurs / Julien Villemejane

Microcontroleurs

Pour tout contrôler

Structure d’un microcontroleur

Large choix de composants

Modules déjà existants (ADC, PWM...)

Grande réactivité

Facilité de mise en oeuvre

(9)

9 EITI – Microcontroleurs / Julien Villemejane

Microcontroleurs

Quelques constructeurs

(10)

10 EITI – Microcontroleurs / Julien Villemejane

Microcontroleurs

Exemple d’un PIC16F887

http://learn.mikroe.com/ - PIC16F887

(11)

11 EITI – Microcontroleurs / Julien Villemejane

Microcontroleurs

Configuration / Utilisation

Variables globales / locales (idem au C)

Registres = zones mémoires particulières

Entrées / Sorties

Modules internes

CAN / CNA

PWM

Oscillateur interne

Timers

Microchip - PIC16F1503

(12)

12 EITI – Microcontroleurs / Julien Villemejane

Microcontroleurs

Configuration / Utilisation

Registre OSCCON

Configuration de l’oscillateur interne

Microchip - PIC16F1503

(13)

13 EITI – Microcontroleurs / Julien Villemejane

Microcontroleurs

Configuration / Utilisation

Registre OSCCON

Configuration de l’oscillateur interne

Exemple :

OSCCONbits.IRCF = 0b101 ;

Microchip - PIC16F1503

(14)

14 EITI – Microcontroleurs / Julien Villemejane

Microcontroleurs

Programmation

Utilisation du langage C

(15)

15 EITI – Microcontroleurs / Julien Villemejane

Microcontroleurs

Programmation

Utilisation du langage C vers assembleur Microchip 16F

COMPILATION

(16)

16 EITI – Microcontroleurs / Julien Villemejane

Microcontroleurs

Fonctionnement embarqué

Téléversement sur le microcontroleur

Fonctionnement autonome / embarqué

(17)

Exemples d’applications

(18)

18 EITI – Microcontroleurs / Julien Villemejane

Exemples d’applications

Maximum intensité

Comment trouver la source lumineuse la plus intense ?

EDF

(19)

19 EITI – Microcontroleurs / Julien Villemejane

Exemples d’applications

Maximum intensité

Comment trouver la source lumineuse la plus intense ?

EDF

Système de photodétection

Renvoie une tension proportionnelle à l’intensité lumineuse perçue

(20)

20 EITI – Microcontroleurs / Julien Villemejane

Exemples d’applications

Maximum intensité

Comment trouver la source lumineuse la plus intense ?

EDF

Système de photodétection

Renvoie une tension proportionnelle à l’intensité lumineuse perçue

Système de rotation

(21)

21 EITI – Microcontroleurs / Julien Villemejane

Exemples d’applications

Maximum intensité

Comment trouver la source lumineuse la plus intense ?

EDF

Système de photodétection

Renvoie une tension proportionnelle à l’intensité lumineuse perçue

Système de rotation / servomoteur

Se positionne à un angle donné à partir d’un rapport cyclique

(22)

22 EITI – Microcontroleurs / Julien Villemejane

Exemples d’applications

Maximum intensité

Comment trouver la source lumineuse la plus intense ?

EDF

Système de photodétection

Renvoie une tension proportionnelle à l’intensité lumineuse perçue

Système de rotation / servomoteur

Se positionne à un angle donné à partir d’un rapport cyclique

Traitement numérique

Modifie l’angle du servomoteur en fonction de la luminosité reçue

Détecte le maximum

TRAITEMENT

(23)

23 EITI – Microcontroleurs / Julien Villemejane

Exemples d’applications

Maximum intensité

Comment trouver la source lumineuse la plus intense ?

EDF

Système de photodétection

Renvoie une tension proportionnelle à l’intensité lumineuse perçue

Système de rotation / servomoteur

Se positionne à un angle donné à partir d’un rapport cyclique

Traitement numérique

Modifie l’angle du servomoteur en fonction de la luminosité reçue

Détecte le maximum

TRAITEMENT

Conversion A/N

Convertit une tension en grandeur numérique CAN

(24)

24 EITI – Microcontroleurs / Julien Villemejane

Exemples d’applications

Maximum intensité

Comment trouver la source lumineuse la plus intense ?

EDF

Système de photodétection

Renvoie une tension proportionnelle à l’intensité lumineuse perçue

Système de rotation / servomoteur

Se positionne à un angle donné à partir d’un rapport cyclique

Traitement numérique

Modifie l’angle du servomoteur en fonction de la luminosité reçue

Détecte le maximum

TRAITEMENT

Conversion A/N

Convertit une tension en grandeur numérique CAN

(25)

25 EITI – Microcontroleurs / Julien Villemejane

Exemples d’applications

Maximum intensité

Comment trouver la source lumineuse la plus intense ?

Traitement numérique

Modifie l’angle du

servomoteur en fonction de la luminosité reçue

Détecte le maximum

Acquisition donnée capteur Stockage donnée / angle Modification angle servomoteur

(26)

26 EITI – Microcontroleurs / Julien Villemejane

Exemples d’applications

Maximum intensité

Comment trouver la source lumineuse la plus intense ?

Traitement numérique

Modifie l’angle du

servomoteur en fonction de la luminosité reçue

Détecte le maximum

Position initiale

Acquisition donnée capteur Stockage donnée / angle

Modification angle servomoteur

Dernière position ? OUI NON

(27)

27 EITI – Microcontroleurs / Julien Villemejane

Exemples d’applications

Maximum intensité

Comment trouver la source lumineuse la plus intense ?

Traitement numérique

Modifie l’angle du

servomoteur en fonction de la luminosité reçue

Détecte le maximum

Déterminer les E/S

Capteur sur AN1 / RA1 (E)

Bouton poussoir sur RA2 (E)

Servomoteur sur PWM1 / RC5 (S) PIC16F1503

Position initiale

Acquisition donnée capteur Stockage donnée / angle

Modification angle servomoteur

Dernière position ?

Position intensité max OUI

NON

(28)

28 EITI – Microcontroleurs / Julien Villemejane

Exemples d’applications

Maximum intensité

Comment trouver la source lumineuse la plus intense ?

Traitement numérique

Modifie l’angle du

servomoteur en fonction de la luminosité reçue

Détecte le maximum

BP = 1 ? Position initiale

Acquisition donnée capteur Stockage donnée / angle

Modification angle servomoteur

Dernière position ?

Position intensité max NON

OUI

OUI NON

(29)

29 EITI – Microcontroleurs / Julien Villemejane

Exemples d’applications

Maximum intensité

Comment trouver la source lumineuse la plus intense ?

Traitement numérique

Modifie l’angle du

servomoteur en fonction de la luminosité reçue

Détecte le maximum

PIC16F1503

BP = 1 ? Position initiale

Acquisition donnée capteur Stockage donnée / angle

Modification angle servomoteur

Dernière position ?

Position intensité max NON

OUI

OUI NON

(30)

30 EITI – Microcontroleurs / Julien Villemejane

Exemples d’applications

Maximum intensité

Comment trouver la source lumineuse la plus intense ?

Traitement numérique

Modifie l’angle du

servomoteur en fonction de la luminosité reçue

Détecte le maximum

Déterminer les E/S

Capteur sur AN1 / RA1 (E)

Bouton poussoir sur RA2 (E)

Servomoteur sur PWM1 / RC5 (S) PIC16F1503

BP = 1 ? Position initiale

Acquisition donnée capteur Stockage donnée / angle

Modification angle servomoteur

Dernière position ?

Position intensité max NON

OUI

OUI NON

(31)

31 EITI – Microcontroleurs / Julien Villemejane

Exemples d’applications

Maximum intensité

Comment trouver la source lumineuse la plus intense ?

Traitement numérique

Modifie l’angle du

servomoteur en fonction de la luminosité reçue

Détecte le maximum

Déterminer les E/S

Capteur sur AN1 / RA1 (E)

Bouton poussoir sur RA2 (E)

Servomoteur sur PWM1 / RC5 (S) PIC16F1503

Initialisation des E/S

BP = 1 ?

Initialisation du CAN Initialisation du PWM

Position initiale

Acquisition donnée capteur Stockage donnée / angle

Modification angle servomoteur

Dernière position ?

Position intensité max NON

OUI

OUI NON

(32)

32 EITI – Microcontroleurs / Julien Villemejane

Exemples d’applications

Maximum intensité

Comment trouver la source lumineuse la plus intense ?

Capteur sur AN1 / RA1 (E) Bouton poussoir sur RA2 (E) Servomoteur sur PWM1 /

RC5 (S) Initialisation des E/S

BP = 1 ?

Initialisation du CAN Initialisation du PWM

Position initiale

Acquisition donnée capteur Stockage donnée / angle

Modification angle servomoteur

Dernière position ?

Position intensité max NON

OUI

OUI NON

void initES(){

TRISAbits.TRISA1 = 1;

TRISAbits.TRISA2 = 1;

TRISCbits.TRISC5 = 0;

ANSELA = 0;

ANSELC = 0;

ANSELAbits.ANSEL1 = 1;

return;

}

void initCAN(){

ADCON1bits.ADCS = 0b111;

ADCON1bits.ADFM = 0;

ADCON0bits.CHS = 0b00001;

ADCON0bits.ADON = 1;

return;

}

(33)

33 EITI – Microcontroleurs / Julien Villemejane

Exemples d’applications

Vitesse moteur

Comment afficher la vitesse de rotation d’un moteur ?

(34)

34 EITI – Microcontroleurs / Julien Villemejane

Exemples d’applications

Vitesse moteur

Comment afficher la vitesse de rotation d’un moteur ?

Codeur incrémental

http://stephane.genouel.free.fr/

(35)

35 EITI – Microcontroleurs / Julien Villemejane

Exemples d’applications

Vitesse moteur

Comment afficher la vitesse de rotation d’un moteur ?

Codeur incrémental

http://stephane.genouel.free.fr/

RAPIDE LENT

(36)

36 EITI – Microcontroleurs / Julien Villemejane

Exemples d’applications

Vitesse moteur

Comment afficher la vitesse de rotation d’un moteur ?

Codeur incrémental

Comment mesurer la vitesse ?

(37)

37 EITI – Microcontroleurs / Julien Villemejane

Exemples d’applications

Vitesse moteur

Comment afficher la vitesse de rotation d’un moteur ?

Codeur incrémental

Comment mesurer la vitesse ?

ΔT ΔT

N1 N2

(38)

38 EITI – Microcontroleurs / Julien Villemejane

Exemples d’applications

Vitesse moteur

Comment afficher la vitesse de rotation d’un moteur ?

Codeur incrémental

Comment mesurer la vitesse ?

ΔT ΔT

N1 N2 Incrémenter compteur

Front montant ? OUI

NON Initialiser compteur

(39)

39 EITI – Microcontroleurs / Julien Villemejane

Exemples d’applications

Vitesse moteur

Comment afficher la vitesse de rotation d’un moteur ?

Codeur incrémental

Comment mesurer la vitesse ?

ΔT ΔT

N1 N2 Incrémenter compteur

Front montant ? OUI

NON Initialiser compteur

Comment compter des impulsions sur un temps donné ?

Fonction de type pause / délai bloquante !!!

Fonctionnement séquentiel !

DELAI

(40)

40 EITI – Microcontroleurs / Julien Villemejane

Exemples d’applications

Vitesse moteur

Comment afficher la vitesse de rotation d’un moteur ?

Codeur incrémental

Comment mesurer la vitesse ?

ΔT ΔT

N1 N2

Utilisation d’un module timer

Génère une interruption à des instants paramétrables (horloge)

Incrémenter compteur Front montant ?

OUI

NON Initialiser compteur

TMR TMR

(41)

41 EITI – Microcontroleurs / Julien Villemejane

Exemples d’applications

Vitesse moteur

Comment afficher la vitesse de rotation d’un moteur ?

Codeur incrémental

Comment mesurer la vitesse ?

ΔT ΔT

N1 N2

Utilisation d’un module timer

Génère une interruption à des instants paramétrables (horloge)

Incrémenter compteur Front montant ?

OUI

NON Initialiser compteur

Stocker valeur compteur Convertir / Afficher Initialiser compteur

TMR TMR

(42)

42 EITI – Microcontroleurs / Julien Villemejane

Exemples d’applications

Module TIMER0 - PIC16F1503

(43)

43 EITI – Microcontroleurs / Julien Villemejane

Exemples d’applications

Module TIMER0 - PIC16F1503

(44)

44 EITI – Microcontroleurs / Julien Villemejane

Exemples d’applications

Vitesse moteur

Comment afficher la vitesse de rotation d’un moteur ?

Comment compter les fronts montants ?

ΔT ΔT

N1 N2 Incrémenter compteur

Front montant ? OUI

NON Initialiser compteur

Stocker valeur compteur Convertir / Afficher Initialiser compteur

TMR TMR

(45)

45 EITI – Microcontroleurs / Julien Villemejane

Exemples d’applications

Vitesse moteur

Comment afficher la vitesse de rotation d’un moteur ?

Comment compter les fronts montants ?

Stocker valeur compteur Convertir / Afficher Initialiser compteur

ΔT ΔT

N1 N2

TMR TMR

INT INT INT INT INT

Utilisation des interruptions externes

Génère une interruption sur un changement d’état (montant ou/et descendant)

Incrémenter compteur Front montant ?

OUI

NON Initialiser compteur

(46)

46 EITI – Microcontroleurs / Julien Villemejane

Exemples d’applications

Vitesse moteur

Comment afficher la vitesse de rotation d’un moteur ?

Comment compter les fronts montants ?

Utilisation des interruptions externes

Génère une interruption sur un changement d’état (montant ou/et descendant)

Stocker valeur compteur Convertir / Afficher Initialiser compteur

ΔT ΔT

N1 N2

TMR TMR

INT INT INT INT INT Incrémenter compteur

(47)

47 EITI – Microcontroleurs / Julien Villemejane

Exemples d’applications

Vitesse moteur

Comment afficher la vitesse de rotation d’un moteur ?

Comment compter les fronts montants ?

Fonctionnement temps réel

Tout passe par des interruptions !!!

Stocker valeur compteur Convertir / Afficher Initialiser compteur

ΔT ΔT

N1 N2

TMR TMR

VIDE

INT INT INT INT INT Incrémenter compteur

(48)

Microcontroleur PIC16F

Références

Documents relatifs

Désignons par M un point de ce cercle 5 les deux tangentes menées de ce point à la conique sont à angle droit5 par suite, si Ton mène les deux droites isotropes qui se croi- sent

(5 ? ), (6') et (7') donnera comme celle de § a et de b* entre (5 ) f (6), (7), la relation (8) qui est ainsi l'équation différentielle non-seulement des ellipses, mais

Un polygone régulier est un polygone dont tous les côtés ont la même longueur et dont tous les angles ont la même mesure.

Contrairement au cas des tableaux de taille fixe, il n’existe pas de moyen simple pour exprimer la valeur littérale d’un vecteur dont les éléments n’ont pas tous la même

Cyclohexanone (CAS 108-94-1) 3 Ne peut pas être classé quant à la cancérogénicité pour l’homme. Silice amorphe sublimée (CAS 112945-52-5) 3 Ne peut pas être classé quant à

La mesure d’un angle inscrit est égale à la moitié de celle de l’angle au centre qui intercepte le même arc de cercle. ̂

Un angle géométrique peut se nommer par le nom de trois points

L’analyse ethnographique du processus de mise à disposition des données publiques au sein d’une collectivité territoriale française révèle toutefois l’impensé de ce