Beruflich Dokumente
Kultur Dokumente
Polycopié de cours
DÉVELOPPEMENT D’APPLICATIONS
EMBARQUÉES À BASE DE ST7
Appareils ménagers,
Appareils numériques
Transport
Réseaux et télécommunication
Contrôle de processus industriels
Systèmes d'alarme
Ordinateurs, tablettes…
Systèmes embarqués à microcontrôleurs. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI
5
Orientés contrôle :
Fonctionnelles :
Réaliser des fonctions simples nécessitant très peu de
calcul (appareils ménagers) ou complexes pouvant
nécessiter l’utilisation d’architectures parallèles.
Assurer un fonctionnement logique déterministe : les
mêmes entrées doivent produire les mêmes effets.
Temporelles :
Réaliser des fonctions en temps réel stricte (systèmes
orientés contrôle : durée prévisible et déterministe) en
relâché/souple (systèmes orientés traitement du signal
ou d’image : dégradation des performances).
Systèmes embarqués à microcontrôleurs. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI
8
4 Architectures :
Multitâche coopératif : boucles de traitement dont
chacune, lors de son exécution, rend la main au
SO pour l'exécution d'une autre.
Circuits précaractérisés
Circuits élémentaires : cellules standards (logique),
cellules compilées (ROM, RAM), mégacellules
(µproc., interface série ou //…).
Systèmes embarqués à microcontrôleurs. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI
17
Oscillateur
Interface
Actionneu
de sortie
r
Système hôte
Source [5]
Unité centrale
Oscillateur
Interface de
commande
Circuit
d’alimentation
Unité de traitement
spécialisée : Décodeur
MP3, ADC, ampli
Oscillateur
Interface-
carte SD
Source [4]
Lentilles
Préprocesseur Coprocesseur
CCD
Digital
Analogique CCD traitement pixels
analogique
digital
Codeur Multiplexeur
décodeur Microcontrôleur Accumulateur
JPEG
Contrôleur Contrôleur
DMA Affichage
Flash
EEPROM plus rapide et dont l'effacement est plus
global (total ou par bloc).
Temps d'accès (60 à 200 ns), Temps de
programmation (100µs par octet), Temps
d'effacement global (1s).
Coût moins élevé, Capacité importante.
Peut remplacer un disque dur (des cartes de n Go
sont disponibles sur le marché).
Sont des :
Mémoires vives (RAM : Random Access Memory)
volatiles, à accès aléatoire et assez rapides (quelques ns).
Mémoires mortes (en général EEPROM) dont la lecture
est assez rapide (des ns) et l’écriture assez lente (des ms).
Contiennent les données temporaires.
Sont de petites tailles dans les microcontrôleurs.
2 types d’architectures :
Von Neumann
Cas de ST7…
Harvard
Cas de ST6, ST9…
0000h
Espace
mémoire de
1 seul espace d’adressage pour données RAM
Non utilisé
le programme et les données.
Espace
mémoire de
Conséquence programme
de l'espace d'adressage.
FF0h
Protection de l’espace Vecteurs de
programme contre les reset et
d’interruptions FFFh
destructions accidentelles.
Systèmes embarqués à microcontrôleurs. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI
32
0…0 2000H
Mémoire 1 0 0 1
1…1 3FFFH
0…0 4000H
Mémoire 2 0 1 0
1…1 5FFFH
0…0 8000H
Mémoire 3 1 0 0
1…1 9FFFH
Entrées :
Senseurs/Capteurs (température, microphone,
caméra…)
Mécanismes de commande (clavier, interrupteurs,
levier...)
Sorties :
Eléments de signalisation (Ecran, Led, haut-
parleur...)
Actionneurs (moteurs…)
Systèmes embarqués à microcontrôleurs. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI
40
Interfaces réseau
Réseaux locaux 1-wire CAN (33 kbps), Ethernet
(10/100/1000 Mbps) , RS-485 (35 Mbps).
Interfaces radio
WiFi / IEEE 802.11a/b/g (54 kbit/s), Cellulaire –
GPRS (9.05–21.4 kbps), Bluetooth / IEEE
802.15.1 (2.0 : 3 Mbps).
Systèmes embarqués à microcontrôleurs. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI
45
Microcontrôleur (μc)?
Circuit intégré logique (transistors) programmable.
Possède des circuits d’interface intégrés avec le
monde extérieur.
Système complet (microprocesseur + mémoires +
interfaces d’E/S + périphériques intégrés).
Utilité : Produire des systèmes programmables
(intelligents) utilisant des applications
domestiques ou industrielles (faible puissance
de calcul+peu de composants)
Systèmes embarqués à microcontrôleurs. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI
52
Encombrement réduit.
Fiabilité (circuit imprimé peu complexe).
Faible consommation (technologies
d’intégration MOS, CMOS et HCMOS).
Coût réduit.
Environnement de programmation et de
simulation évolués.
ROM/EPROM/Flash
Constructeur
Architecture
Référence
EEPROM
Vitesse
Timer
RAM
8051 Intel 12 MHZ 128 o 4Ko - 2 -
16C71 Microchip 20 MHZ 36 o 1Ko*14 - 1 RISC
6805 S2 Motorola 4 MHZ 64 o 1Ko - 2 -
68HC11A1 Motorola 8 MHZ 256 o - 512 o 1 Etendu
AT90S8515 Atmel 20 MHZ 512 o 4Ko 512 o 3 RISC
ST6265 ST 8 MHZ 128 o 4Ko 64 o 2 -
ST72251 ST 16 MHZ 36 o 1Ko*14 - 2 RISC
Répartis en 16 packages.
1 CPU 8 bits,
RAM (128 à 5Ko), ROM/OTP/Flash (1 à 60Ko : mémoire
programme), EPROM (4 Ko), EEPROM (128 octets),
1 pile,
1 chien de garde numérique,
1 timer 16 bits,
1 convertisseur analogique numérique (A/D converter),
2 interfaces série : asynchrone (SCI) & synchrone (SPI),
1 oscillateur interne RC,
1 I²C (interface entre le µc et le bus série I²C : convertit un mot
parallèle en série ou l'inverse),
1 CAN(Controller Area Network: intégrer le µC dans un réseau CAN)
1 USB…
Systèmes embarqués à microcontrôleurs. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI
59
Recherche
Charger le contenu du PC dans le registre d'adresse
mémoire qui est relié au bus d'adresse;
Demander à la mémoire de lire la donnée et de la
placer sur le bus de données (signal read memory);
Transférer la valeur lue dans le registre d'instruction
et incrémenter ensuite PC.
Décodage
Traduire le code en une séquence de commandes et
envoyer les signaux correspondants à l'UAL.
Exécution : Recherche des opérandes en
mémoire + exécution de l'opération.
Systèmes embarqués à microcontrôleurs. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI
69
.Main
…
BSET Control_reg, #IT_enable ; autorise l'interruption
RIM ; met le bit I à 0
…
.Int_routine
…
BRES Status_reg, #IT_flag ; sinon la même interruption
; sera appelée infiniment
IRET ; Retour de l'interruption
Systèmes embarqués à microcontrôleurs. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI
86
Le registre MISCR/Prédivision
Les ports d’E/S
Le Watchdog
Les Timers
Le ADC
Résultat ?
= (Tension analogique à l'entrée / Tension d'alimentation
de référence) * 255
La tension à convertir doit être comprise entre 0V et VR
(5V ou 5.5 V).
Si > VR, résultat = 255.
Si < 0V, résultat = 0.
Temps de conversion ? 8 µs à la vitesse max (16MHz/2).
= 32 * Période de l’horloge du convertisseur.
= 64 * Période de l’horloge interne.
Systèmes embarqués à microcontrôleurs. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI
108
Emulateur
Carte électronique branchée sur la maquette de
l’application.
Possède un connecteur compatible avec le µc à émuler
+ connexion (en général RS232) branchée au PC.
Piloté par un logiciel, il remplace le µc pour détecter les
bugs éventuels du programme.
Vérification rapide, coût élevé.
Simulateur
Logiciel qui reproduit le fonctionnement d’un µc.
- coûteux, - efficace pour des applications avec E/S et
temporisation.
Systèmes embarqués à microcontrôleurs. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI
111
L'assembleur (asm.exe)
Génère à partir des sources des .obj +Un .lst (si –li).
L'éditeur de liens (lyn.exe)
Génère à partir des .obj les fichiers :
.cod : fichier exécutable
.grp : définition de la mémoire et du programme utilisés.
.map : fichier de paramètres et de mapping (@ de segments,
variables et informations pour le débogage).
.sym : table des symboles.
OBSEND
Génère à partir du .cod un fichier de format
héxadécimal au choix (ex : .s19 motorola).
Systèmes embarqués à microcontrôleurs. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI
113
Instructions arithmétiques
Fonctions arithmétiques classiques.
ADD, ADC, SUB, MUL, SBC.
Instructions logiques
Opérations logiques.
AND, OR, XOR, CPL, NEG.
Instructions d'incrémentation/décrémentation
INC, DEC.
Systèmes embarqués à microcontrôleurs. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI
115
Instructions de comparaison
Réalisation des comparaisons.
CP, TNZ (saut si négatif et zéro), BCP (bits).
A l'issue de ces opérations les indicateurs “Z” et
“C” sont positionnés.
Edition
Utiliser un éditeur de texte comme EDIT.COM.
Choisir un nom de fichier avec l'extension ".asm".
Format du code source en assembleur
1ère ligne réservée pour spécifier le chemin du fichier
"*.tab".
ex : c:\st7tools\asm\st7\
Toute autre ligne a en général la syntaxe suivante :
[label[:]] [opcode] [operand] [;comment]
début : ld A, #$12 ;charge 12h dans l'accumulateur
Systèmes embarqués à microcontrôleurs. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI
119
TITLE "titre"
Indique le titre du projet de programmation dans le
listing.
MOTOROLA
Adopte la représentation des nombres de Motorola
(% : binaire; ~ : octal; $ : hexadécimal).
Autres : Intel, Texas, Zilog.
#INCLUDE "fich_asm"
Inclut un autre fichier assembleur.
Systèmes embarqués à microcontrôleurs. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI
121
BYTES
Définit la longueur des labels qui suivent comme
égale à un octet (en page zéro).
Autres : WORDS (2 octets : mémoire étendu),
LONGS (label doit être défini par EQU).
Pour changer la longueur par défaut, faire suivre le
label d'un suffixe .b, .w ou .l.
Systèmes embarqués à microcontrôleurs. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI
122
SEGMENT
[nom] SEGMENT [@_Départ] [Option_combin] 'Classe'
Attribue un bloc d'instructions ou de données à un
segment.
@_Départ : Byte (placement libre), Word (multiple de
2), Long (*4), Para (*16), 64 (*64), 128 (*128), Page
(*256), 1K (*1024), 4K (*4096).
Option_combin : aucun (mis à la suite des autres
segments), AT @_départ-@_fin, Common (superposé
à ceux de mêmes nom et classe).
Classe (zone d'espace mémoire) : ROM, RAM0, RAM,
Stack, IO.
Systèmes embarqués à microcontrôleurs. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI
123
;***************************************************
;* DEFINITION DE SYMBOLES *
;***************************************************
#define bit5 5 ; Bit correspondant au pin 5.
#define bit3 3 ; Bit correspondant au pin 3.
;***************************************************
;* R0M SEGMENT *
;***************************************************
WORDS ; La longeur des adresses ci_dessous est 16 bits.
segment 'rom'
Systèmes embarqués à microcontrôleurs. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI
128
;Code du programme**********************************
;**************************************************
;* ROUTINE PRINCIPALE MAIN *
;**************************************************
.main
; Initialisation
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
BRES PCDDR,#bit5 ;Pin 5 du Port C en entrée
BRES PCOR ,#bit5 ;Sans pull-up ni interruption.
; Boucle principale~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.loop
LD A,PCDR
AND A,#%00100000; Masquage de tous les bits sauf le bit 5.
RRC A ; Rotation à droite 2 fois pour obtenir
RRC A ; le bit 5 sur le bit 3.
LD PBDR,A ; Copie l'état de PC5 sur le port B.
NOP ; Attente pendant 2 cycles (0.5 µs
; pour un quartz de 8 MHZ).
JP loop ;Retour à loop.
***************************************************
;* SOUS-ROUTINES D'INTERRUPTION *
;**************************************************
; Routine dummy
.dummy
IRET ; Sous-routine vide qui retourne à main.
;**************************************************
;* SEGMENT DES VECTEURS D'INTERRUPTION *
;**************************************************
segment 'vectit'
;**************************************************
;* MAPPING DES VECTEURS D'INTERRUPTION *
;**************************************************
DC.W dummy ;FFE0-FFE1h location
DC.W dummy ;FFE2-FFE3h location
Systèmes embarqués à microcontrôleurs. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI
131
st7/
;*************************************************
; TITLE: ST72251.ASM
; AUTHOR: PPG Microcontroller Applications Team
; DESCRIPTION: ST72251 Register and memory mapping
;**************************************************
BYTES ; following addresses are 8 bit length
;**************************************************
segment byte at 0-71 'periph'
;**************************************************
;**************************************************
; I/O Ports registers
;**************************************************
.PCDR DS.B 1 ; port C data register
.PCDDR DS.B 1 ; port C data direction register
Systèmes embarqués à microcontrôleurs. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI
133
; SPI registers
;**************************************************
.SPIDR DS.B 1 ; SPI data register
.SPICR DS.B 1 ; SPI control register
.SPISR DS.B 1 ; SPI status register
;**************************************************
; Watchdog register
;**************************************************
.WDGCR DS.B 1 ; watchdog register
reserved1 DS.B 3 ; unused
;**************************************************
; I2C registers
;**************************************************
.I2CCR DS.B 1 ; i2c control register
.I2CSR1 DS.B 1 ; i2c status register 1
Systèmes embarqués à microcontrôleurs. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI
135
;**************************************************
; ADC registers
;**************************************************
;**************************************************
; TITLE: ST72251.INC
; AUTHOR: PPG Microcontroller Applications Team
; DESCRIPTION: ST72251 Register and memory mapping
;**************************************************
EXTERN PCDR.b ; port C data register
EXTERN PCDDR.b ; port C data direction register
EXTERN PCOR.b ; port C option register
EXTERN PBDR.b ; port B data register
EXTERN PBDDR.b ; port B data direction register
EXTERN PBOR.b ; port B option register
EXTERN PADR.b ; port A data register
EXTERN PADDR.b ; port A data direction register
EXTERN PAOR.b ; port A option register
;**************************************************
Systèmes embarqués à microcontrôleurs. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI
141
; Miscellaneous registers
;**************************************************
EXTERN MISCR.b ; miscellaneous register
;**************************************************
; SPI registers
;**************************************************
EXTERN SPIDR.b ; SPI data register
EXTERN SPICR.b ; SPI control register
EXTERN SPISR.b ; SPI status register
;**************************************************
; Watchdog register
;**************************************************
EXTERN WDGCR.b ; watchdog register
;**************************************************
Systèmes embarqués à microcontrôleurs. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI
142
; I2C registers
;**************************************************
EXTERN I2CCR.b ; i2c control register
EXTERN I2CSR1.b ; i2c status register 1
EXTERN I2CSR2.b ; i2c status register 2
EXTERN I2CCCR.b ; i2c clock control register
EXTERN I2COAR1.b ; i2c own add register 1
EXTERN I2COAR2.b ; i2c own add register 2
EXTERN I2CDR.b ; i2c data register
;**************************************************
; timer A registers
;**************************************************
EXTERN TACR2.b ; timer A control register 2
EXTERN TACR1.b ; timer A control register 1
EXTERN TASR.b ; timer status register
Systèmes embarqués à microcontrôleurs. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI
143
; timer B registers
;**************************************************
EXTERN TBCR2.b ; timer B control register 2
EXTERN TBCR1.b ; timer B control register 1
EXTERN TBSR.b ; timer B status register
EXTERN TBIC1HR.b ; timer B input capture 1 high register
EXTERN TBIC1LR.b ; timer B input capture 1 low register
EXTERN TBOC1HR.b ; timer B output compare 1 high
register
EXTERN TBOC1LR.b ; timer B output compare 1 low register
EXTERN TBCHR.b ; timer B counter high register
EXTERN TBCLR.b ; timer B counter low register
EXTERN TBACHR.b ; timer B alternate counter high register
EXTERN TBACLR.b ; timer B alternate counter low register
EXTERN TBIC2HR.b ; timer B input capture 2 high register
Systèmes embarqués à microcontrôleurs. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI
145
;**************************************************
; ADC registers
;**************************************************
EXTERN ADCDR.b ; adc data register
EXTERN ADCCSR.b ; adc control status register
Créer un projet :
File>New workspace...>Create workspace and project
Désigner les noms et emplacements du workspace
ainsi que le toolset et le µcontrôleur utilisé.
Ajouter les fichiers nécessaires à “Source Files”,
“Include Files” et “External Dependencies” (bouton
droit>Add Files to Folder).
Modifier la configuration (settings) si nécessaire.
Compiler et commencer le débogage
Workspace (.stw), Projet (.stp), Debug et Release (.exe).
Systèmes embarqués à microcontrôleurs. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI
147