• Aucun résultat trouvé

Epaisseur de grille en nmEpaisseur de grille en nm

N/A
N/A
Protected

Academic year: 2022

Partager "Epaisseur de grille en nmEpaisseur de grille en nm"

Copied!
151
0
0

Texte intégral

(1)

Microcontrôleurs Microcontrôleurs

Christian Dupaty

(2)

Sommaire Sommaire

SAM SAM1 1A : A :

Introduction Introduction

Numération binaire Numération binaire

Systèmes microprogrammés Systèmes microprogrammés

Technologie des microcontrôleurs Technologie des microcontrôleurs

Les outils de développement Les outils de développement

Notion d’algorithmie, programmation structurée Notion d’algorithmie, programmation structurée

Programmation en assembleur Programmation en assembleur

Périphériques parallèles, séries, TIMER, UART Périphériques parallèles, séries, TIMER, UART

Mise en œuvre des interruptions Mise en œuvre des interruptions

Projet technique en binôme Projet technique en binôme

15:42 2

C.Dupaty EMSE SAM1A

(3)

Objectifs Objectifs

Être capable de concevoir un programme Être capable de concevoir un programme simple en langage assembleur pour

simple en langage assembleur pour microcontrôleur INTEL

microcontrôleur INTEL 8051 8051

Analyse, algorigrammes, programmation Analyse, algorigrammes, programmation

Analyse, algorigrammes, programmation Analyse, algorigrammes, programmation structurée, jeux d’instructions, modes

structurée, jeux d’instructions, modes d’adressage

d’adressage

Mise en œuvre de l’outil de développement Mise en œuvre de l’outil de développement KEIL pour

KEIL pour 8051 8051 et du simulateur et du simulateur PROTEUS/ISIS

PROTEUS/ISIS

(4)

Evaluation Evaluation

Test écrit individuel de Test écrit individuel de 1 1h h30 30 . (coef . (coef 3 3))

Connaissances théoriques Connaissances théoriques

Rédaction d’un programme en assembleur Rédaction d’un programme en assembleur

Soutenance orale et individuel du Soutenance orale et individuel du

Soutenance orale et individuel du Soutenance orale et individuel du

dossier du projet technique réalisé en dossier du projet technique réalisé en binône. (coef

binône. (coef 1 1))

Autonomie, implication, vérification de la connaissance du Autonomie, implication, vérification de la connaissance du dossier.

dossier.

15:42 C.Dupaty EMSE SAM1A 4

(5)

Conditions d’apprentissage Conditions d’apprentissage

8 8 séances de cours / TP ( séances de cours / TP (24 24h) h)

Mise à disposition des logiciels de Mise à disposition des logiciels de développement KEIL uVISION

développement KEIL uVISION2 2 et et

ISIS/PROTEUS pour le travail personnel.

ISIS/PROTEUS pour le travail personnel.

ISIS/PROTEUS pour le travail personnel.

ISIS/PROTEUS pour le travail personnel.

Ponctualité et assiduité indispensable Ponctualité et assiduité indispensable

En cas d’absence non justifiée En cas d’absence non justifiée pas pas d’examen de rattrapage.

d’examen de rattrapage.

(6)

Ressources Ressources

Cours SAM Cours SAM1 1A EMSE A EMSE

WWW.infineon.com WWW.infineon.com Products Products -- Microcontrollers Microcontrollers -- C

C500 500 -- C C517 517A A

WWW.keil.com WWW.keil.com Evaluation software Evaluation software -- C C51 51 ( ( 8051 8051 ) ) – Tools

Tools

WWW.phytec.de WWW.phytec.de English version English version – – Products Products – Microcontrollerboards

Microcontrollerboards -- Kitcon C Kitcon C517 517A A Microcontrollerboards

Microcontrollerboards -- Kitcon C Kitcon C517 517A A

« « Microcontrôleurs Microcontrôleurs 8051 8051 et et 8052 8052 » de Bernard Odant » de Bernard Odant chez DUNOD

chez DUNOD

« « Les microcontrôleurs SAB Les microcontrôleurs SAB 80 80C C515 515 / / 80 80C C535 535 et leurs et leurs programmation

programmation » de H. Ezzedine & M. Abed chez » de H. Ezzedine & M. Abed chez MASSON

MASSON

Mise en œuvre et application du microcontrôleur Mise en œuvre et application du microcontrôleur 8051

8051 « « de P. Kauffman chez MASSON de P. Kauffman chez MASSON

15:42 C.Dupaty EMSE SAM1A 6

(7)

Planing Planing

S S1 1 : Cours pages chap : Cours pages chap1 1--chap chap10 10, début TP , début TP1 1

S S2 2 : TP : TP1 1 outil de développement, simulateur, exercices gestion, outil de développement, simulateur, exercices gestion, mémoire, ports parallèles

mémoire, ports parallèles

S S3 3 : TP : TP2 2 utilisation avancée du simulateur, gestion d’une table, utilisation avancée du simulateur, gestion d’une table, opérations +

opérations +--*/, présentation de VSM (ISIS, uVision */, présentation de VSM (ISIS, uVision2 2))

S S4 4 : Cours pages chap : Cours pages chap 11 11, TP , TP3 3 : interruptions (INT : interruptions (INT0 0, , 1 1) )

S S4 4 : Cours pages chap : Cours pages chap 11 11, TP , TP3 3 : interruptions (INT : interruptions (INT0 0, , 1 1) )

S S5 5 : Cours TIMER : Cours TIMER 0 0,,1 1 chap chap 12 12, TP , TP4 4 : production de signaux, : production de signaux, comptage, PWM

comptage, PWM

S S6 6 : Cours TIMER : Cours TIMER 2 2 chap chap 15 15, fonction capture TP , fonction capture TP5 5 : mesure de : mesure de durées, de périodes

durées, de périodes

S S7 7 : Cours communications, TP : Cours communications, TP6 6 sur simulateur sur simulateur

S S8 8 : Bilan, révisions, présentation et début des projets. : Bilan, révisions, présentation et début des projets.

(8)

1 1

15:42 C.Dupaty EMSE SAM1A 8

(9)

Microprocesseurs VS Microprocesseurs VS

Microcontrôleurs Microcontrôleurs

Microprocesseurs, ex :PENTIUM, AMD, Microprocesseurs, ex :PENTIUM, AMD, 68000 68000

Microcontrôleurs , ex : Microcontrôleurs , ex : 8051 8051, , 68 68HC HC11 11, PIC , PIC18 18, , AVR, ST

AVR, ST6 6 … …

(10)

Microcontrôleurs

Microcontrôleurs -- Avantages Avantages

Faible cout Faible cout

Reconfigurable (modification du programme) Reconfigurable (modification du programme)

Fiabilité, tout est sur la même puce Fiabilité, tout est sur la même puce

(processeur, mémoires, périphériques) (processeur, mémoires, périphériques)

Faible consommation Faible consommation

15:42 C.Dupaty EMSE SAM1A 10

(11)

Domaines d’emplois:

Domaines d’emplois:

Petits automatismes

Petits automatismes

(12)

Domaines d’emplois:

Domaines d’emplois:

Traitement numérique du signal Traitement numérique du signal

(Digital Signal Processor) (Digital Signal Processor)

CD EMSE CAN-CNA Acquisition,

conditionnement Echantillonnage

Conversion analogique- numérique

Codage, Enregistrement

Lecture Decodage Conversion Numérique – Analogique Conditionnement Amplification

(13)

Caractéristiques uP/uC Caractéristiques uP/uC

Petits automatismes Informatique industrielle

Fréquences 4 à 40MHz 400MHz à 4.0GHz

Puissance de calcul faible Très élevé

Mémoire vive RAM : 1KO RAM : 512MO ROM : 1MO

Mémoire programme ROM FLASH: 64 KO Disque dur

Intégration des périphériques

Maximum minimum

consommation faible Elevé

prix 2€ à 50€. 200€ à 1000€

Composant utilisé Microcontrôleur 8/16 Microprocesseur 32/64

(14)

Eléments de numération Eléments de numération

binaire binaire

Les origines des calculateurs Les origines des calculateurs

15:42 C.Dupaty EMSE SAM1A 14

0110010011011011110101100010010001010110001001011000111100101

(15)

Le BIT : 0 ou 1 Le BIT : 0 ou 1

En électronique numérique toutes les En électronique numérique toutes les opérations s’effectue en base

opérations s’effectue en base 2 2

Aux deux états logiques sont associés deux Aux deux états logiques sont associés deux tensions :

tensions : tensions : tensions :

En logique « En logique « positive positive » » 0 0 0 0v et v et 1 1 1 1v à v à 5 5v v

En logique « En logique « négative négative » » 1 1 0 0v et v et 0 0 1 1v à v à 5 5v v

(16)

Interrupteur électronique Interrupteur électronique

Ces deux états électriques dépendent de la conduction Ces deux états électriques dépendent de la conduction ou du blocage d’un composant électronique

ou du blocage d’un composant électronique

Ex : Fonction Booléenne NON, l’inverseur Ex : Fonction Booléenne NON, l’inverseur

1

S=1

0 E=0

E=1 S=0

15:42 C.Dupaty EMSE SAM1A 16

(17)

AVANT AVANT

TUBE TRIODE ( TUBE TRIODE (Lee Lee De Forest

De Forest en en 1906 1906.) .)

(18)

1940

1940 Z Z3 3, COLOSSUS , COLOSSUS

Inventés par Konrad Zuse et Arnold Lynch

Ordinateurs électromécaniques (commutateurs à relais) fréquence du processeur : 5,33 Hz

puissance réelle : 20 Flops

15:42 C.Dupaty EMSE SAM1A 18

(19)

Premier Ordinateur Premier Ordinateur ELECTRONIQUE

ELECTRONIQUE– – ENIAC ENIAC 1946 1946

17 468 tubes à vide, 7 200 diodes à cristal, 1 500 relais, 70 000 résistances, 10 000 condensateurs et environ 5 millions de joints soudés à la main. Son poids est de 30 tonnes.

5 000 additions simples ou 357 multiplications ou 38 divisions par seconde.

(20)

L’invention du Transistor

L’invention du Transistor 1947 1947

15:42 C.Dupaty EMSE SAM1A 20

(21)

Principes du MOS Principes du MOS

Le transistor MOS se Le transistor MOS se comporte comme un comporte comme un

interrupteur « presque » interrupteur « presque » parfait

parfait

MOS : Metal Oxyde MOS : Metal Oxyde Semiconductor

Semiconductor

G

S

D

(22)

Caractéristiques MOS Caractéristiques MOS

15:42 C.Dupaty EMSE SAM1A 22

(23)

Coupe MOS

Coupe MOS

(24)

Premier Circuit Integre

Premier Circuit Integre 1958 1958

Texas Instruments fabrique le premier CI : Texas Instruments fabrique le premier CI :

un inverseur à deux transistors un inverseur à deux transistors

15:42 C.Dupaty EMSE SAM1A 24

(25)

Explosion technologique :

Explosion technologique : 1961 1961

inverseur

(26)

INTEL

INTEL 4004 4004 le premier le premier uProcesseur :

uProcesseur : 1971 1971

15 novembre 1971

108KHZ 2300 Transistors (valeur actuelle $20000) technologie 10um (10000nm)

15:42 C.Dupaty EMSE SAM1A 26

(27)

2002 2002

2007 PENTIUM 4

44 Millions 44 Millions

de transistors

(28)

2008 2008

Processeur INTEL ITANIUM

Process 130nm

6MB de RAM CACHE 6MB de RAM CACHE

410 Millions de transistor

Cheveux humain 100 µm Virus Amoeba 15 µm

Globule rouge 7 µm Virus du SIDA 100 nm

15:42 C.Dupaty EMSE SAM1A 28

(29)

La loi de Moore La loi de Moore

Le nombre de transistors intégrés sur une même

(30)

Technologie Technologie

Caractéristiques

Caractéristiques 1999 1999 2001 2001 2004 2004 2008 2008

Process (nm) Process (nm) Drain

Drain--Source Source

180

180 130 130 90 90 60 60 Transistors par

Transistors par puce (Millions) puce (Millions)

24

24 48 48 135 135 539 539 Fréquences de

Fréquences de bus

bus

1200

1200 1600 1600 2000 2000 2700 2700 Nombres de

Nombres de couches

couches

9

9 7 7 8 8 9 9

15:42 C.Dupaty EMSE SAM1A 30

(31)

Evolution Evolution

70nm

30nm

2004

2007

2009

20nm

(32)

Epaisseur de grille / technologie Epaisseur de grille / technologie

E p a is s e u r d e g ri ll e e n n m E p a is s e u r d e g ri ll e e n n m

Technologie en nm

15:42 C.Dupaty EMSE SAM1A 32

(33)

Epaisseur de grille

Epaisseur de grille

(34)

Tension d’alimentation Tension d’alimentation

15:42 C.Dupaty EMSE SAM1A 34

(35)

CEM CEM

Couplage capacitif :

Du au champ électrique entre deux conducteur de potentiels différents

Couplage inductif :

Du aux variations du champ magnétique lié aux variations de courant

Dépend de la fréquence

(36)

Les effets de la CEM Les effets de la CEM

Agresseur

Victime

BRUIT Victime

Agresseur

Victime

RETARD

15:42 C.Dupaty EMSE SAM1A 36

(37)

Fabrication de masse

Fabrication de masse

(38)

Coût des équipements Coût des équipements

Lithoraphie par Ultra Violets

15:42 C.Dupaty EMSE SAM1A 38

(39)

Technologie et calcul binaire Technologie et calcul binaire

L’évolution technologique a permis la L’évolution technologique a permis la mise en œuvre de l’algèbre de

mise en œuvre de l’algèbre de Georges Boole (

Georges Boole (1815 1815--1864 1864) à ) à

travers la logique combinatoire et travers la logique combinatoire et travers la logique combinatoire et travers la logique combinatoire et séquentielle.

séquentielle.

Construction de machines d’états Construction de machines d’états ((2 2 ième ième guerre mondiale) puis du guerre mondiale) puis du

premier micro

premier micro--processeur (INTEL) processeur (INTEL)

(40)

Utilisation électronique du Utilisation électronique du

calcul binaire calcul binaire

Codage électronique des nombres avec deux Codage électronique des nombres avec deux états

états états états

Réalisation d’opérations complexes à partir Réalisation d’opérations complexes à partir d’opérateurs Booléens simples (NON, ET, d’opérateurs Booléens simples (NON, ET, OU) réalisés avec des transistors.

OU) réalisés avec des transistors.

15:42 C.Dupaty EMSE SAM1A 40

(41)

Ecrire des nombres avec des BIT Ecrire des nombres avec des BIT

l’octet : l’octet :

Bit

Bit 7 7 6 6 5 5 4 4 3 3 2 2 1 1 0 0 Val

Val 2 2 7 7 2 2 6 6 2 2 5 5 2 2 4 4 2 2 3 3 2 2 2 2 2 2 1 1 2 2 0 0 Déc

Déc 128 128 64 64 32 32 16 16 8 8 4 4 2 2 1 1

10110110

10110110 = = 1 1**2 2 7 7 + +0 0**2 2 6 6 + +1 1**2 2 5 5 + +1 1**2 2 4 4 + +0 0**2 2 3 3 + +1 1**2 2 2 2 + +1 1**2 2 1 1 + +0 0**2 2 0 0

=

= 128 128+ +32 32+ +16 16+ +4 4+ +1 1= = 181 181 10110110

10110110 = B = B6 6

1011

1011 0110 0110 B

B 6 6

Notation hexadécimale : Notation hexadécimale :

$B

$B6 6 ou B ou B6 6h ou h ou 0 0xB xB6 6

(42)

Codage Codage

Les nombres peuvent être écrits en : Les nombres peuvent être écrits en :

Décimal : Décimal : 123 123

Hexadécimal : Hexadécimal : 7 7Bh ou Bh ou 0 0x x7 7B B

Binaire : Binaire : 01111011 01111011b b

BCD (binary coded decimal). BCD (binary coded decimal).

23 23 en BCD : en BCD : 0010 0011 0010 0011 ((2 2 et et 3 3))

Dec Hexa

0 0

1 1

2 2

3 3

4 4

5 5

6 6

7 7

8 8

9 9

10 A

11 B

12 C

15:42 C.Dupaty EMSE SAM1A 42

8 bits représentent un octet (byte) 16 bits représentent un mot (word)

32 bits représentent un mot long (long)

Pour représenter les nombres signés (positifs ou négatifs) on utilise le bit de poids fort

ex :non signé un octet est compris entre 0 et 255 signé il est compris en -128 et +127

Binaire signé

Dec

00000011 3 00000010 2 00000001 1 00000000 0 11111111 -1 11111110 -2 11111101 -3 11111100 -4 111110101 -5

12 C

13 D

14 E

15 F

(43)

ASCII ASCII

L’American Standard Code for Information L’American Standard Code for Information Interchange

Interchange permet l’échange de permet l’échange de

caractères alphanumériques (lettres, caractères alphanumériques (lettres, chiffres, ponctuation, contrôles)

chiffres, ponctuation, contrôles)

code 1 2 3 4 5 6 7 8 9 A B C D E F

code 1 2 3 4 5 6 7 8 9 A B C D E F

0x00 NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT NP CR SO SI 0x10 DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US

0x20 SP ! " # $ % & ' ( ) * + , - . /

0x30 0 1 2 3 4 5 6 7 8 9 : ; < = > ?

0x40 @ A B C D E F G H I J K L M N O

0x50 P Q R S T U V W X Y Z [ \ ] ^ _

0x60 ` a b c d e f g h i j k l m n o

0x70 p q r s t u v w x y z { | } ~ DEL

Attention, le chiffre ‘5’ codé en ASCII vaut 35h,

ce qui n’a rien à voir avec la valeur 5

(44)

Faire des OPERATIONS Faire des OPERATIONS EX : ADDITION BINAIRE EX : ADDITION BINAIRE

1011 1011 +

+ 1110 1110

1 1

+

+ 1110 1110 1 0 0 11

15:42 C.Dupaty EMSE SAM1A 44

(45)

--X : rendre un nombre négatif X : rendre un nombre négatif Le complément à

Le complément à2 2

5

5 = = 00000101 00000101

Inversion !! 11111010 11111010

Inversion !!

00000100 00000100

+1 --5 5 = = 11111011 11111011

Inversion !!

11111010 11111010

+1 00000101 00000101

(46)

Un exemple :

Un exemple : --3 3+ +5 5

11111101

11111101 ( ( --3 3)) +

+ 00000101 00000101 ((5 5)) +

+ 00000101 00000101 ((5 5))

=

= 100000010 100000010 ((2 2))

RETENUE

15:42 C.Dupaty EMSE SAM1A 46

(47)

Fonction logiques Fonction logiques

Les opérations sont réalisables à partir de fonctions logiques

OU OUI NON

OU-EXCLUSIF

(48)

NON NON

entree Sortie

0 1

1 0

15:42 C.Dupaty EMSE SAM1A 48

PORTA x x x x x x x x

! PORTA /x /x /x /x /x /x /x /x

(49)

AND : &

AND : &

Bit1 Bit2 AND

0 0 0

0 1 0

1 0 0

1 1 1

PORTA x x x x x x x x

& 0 0 0 1 0 0 0 0

= 0 0 0 x 0 0 0 0

PORTA x x x x x x x x

& 1 1 1 0 1 1 1 1

= x x x 0 x x x x

Masquage Forçage à 0

(50)

OR : | OR : |

Bit1 Bit2 OR

0 0 0

0 1 1

1 0 1

1 1 1

1 1 1

PORTA x x x x x x x x

OU 0 0 0 1 0 0 0 0

= x x x 1 x x x x

Forçage à 1

15:42 C.Dupaty EMSE SAM1A 50

(51)

XOR : ^ XOR : ^

Bit1 Bit2 XOR

0 0 0

0 1 1

1 0 1

1 1 0

PORTA x x x x x x x x

XOR 0 0 0 1 0 0 0 0

= x x x /x x x x x

BASCULEMENT

(52)

DECALAGE : <<

DECALAGE : <<

0 1 0 1 0 0 1 1 0

0 1 0 1 0 0 1 1

0 1 0 1 0 0 1 1 0

1 0 1 0 0 1 1 0

15:42 C.Dupaty EMSE SAM1A 52

(53)

ROTATION ROTATION 0 1 0 1 0 0 1 1

C

0 1 0 1 0 0 1 1 1 0 1 0 0 1 1 C

C

(54)

QUIZZ QUIZZ

15:42 C.Dupaty EMSE SAM1A 54

(55)

QUIZZ

5Ah + 78h = ( ) hexa

01111000

10011010

10001101

10110001

+

Y a t-il overflow ? comment y palier ?

Addition en code BCD résultat en décimal et BCD : 14 + 89

Dans une machine à laver, quel composant est le mieux adapté: un microprocesseur, un

microcontrôleur ou un DSP ?

Dans un analyseur de spectre, quel composant est le mieux adapté ?

Pour commander un moteur, quel composant est le mieux adapté ?

Interpréter le résultat suivant que les nombres soient signés ou non ?

et BCD : 14 + 89

Combien de bits pour représenter le nombre 1492 ? Un double mot est constitué de combien de bits ?

Intérêt du code hexadécimal ?

Quels sont les avantages des microcontrôleurs

Quel est l’ensemble des nombres entiers signés codés sur 16bits

Combien de koctets représente une mémoire de 256 kbits ?

Combien de cases mémoires possède une mémoire de 64 koctets ?

Donnez un exemple d’utilisation de la fonction

XOR

(56)

QUIZZ

Qu ’appelle-t-on un système embarqué ? Qu ’appelle-t-on un microcontrôleur 8 bits ?

Qu ’appelle-t-on un périphérique ?

Pourquoi les fréquences d ’horloge des microcontrôleurs sont-elles relativement faible ?

Quelle est l’ordre de grandeur de l’horloge de cadencement d’un microcontrôleur ?

Comment choisit-on un microcontrôleur ?

Quelles différences faites vous entre un microprocesseur et un microcontrôleur ?

15:42 C.Dupaty EMSE SAM1A 56

(57)

Eléments d’algorithmie

Eléments d’algorithmie

(58)

Algorigramme / Algorithme Algorigramme / Algorithme

DEBUT

FIXER LA CONSIGNE DE TEMPERATURE

Debut

Fixer la température de consigne Tant que T<Consigne

FIN MESURER LA

TEMPERATURE CHAUFFER

T>CONSIGNE

Tant que T<Consigne Chauffer

Fin Tant que Fin

15:42 C.Dupaty EMSE SAM1A 58

(59)

Structures alternatives Structures alternatives

SI propositionvraie alors action(s)1 sinon action(s)2 Fin si

SI proposition vraie alors action(s)

Fin si

(60)

Structures répétitives Structures répétitives

Répéter action(s)

jusqu'à proposition vraie Répéter action(s)

tant que proposition vraie

15:42 C.Dupaty EMSE SAM1A 60

(61)

Langages Langages

ASSEMBLEUR ASSEMBLEUR

LED

LED EQU EQU P P5 5. .0 0 CSEG

CSEG AT AT 0 0 MOV

MOV SP,# SP,#7 7Fh Fh ; ; SUITE:

SUITE: CPL CPL LED LED CALL

CALL TEMPO TEMPO SJMP

SJMP SUITE SUITE TEMPO:

TEMPO: MOV MOV R R0 0,# ,#0 0FFh FFh

C C

char heure,min,sec;

char heure,min,sec;

int pression,temp;

int pression,temp;

char* calcul(int m) char* calcul(int m) { char c;

{ char c;

m=valeur/

m=valeur/1000 1000; ; c=(valeur

c=(valeur--((1000 1000*m))/ *m))/100 100; ; if (c>

if (c>10 10) return (c ); ) return (c );

}}

TEMPO

TEMPO1 1:MOV :MOV R R1 1,# ,#0 0FFh FFh TEMPO

TEMPO2 2:DJNZ :DJNZ R R1 1,TEMPO ,TEMPO2 2 DJNZ

DJNZ R R0 0,TEMPO ,TEMPO1 1 RET

RET

Langage machine:

Langage machine:

0x0000 75817F

0x0003 B2A0

0x0005 1109

0x0007 80FA

0x0009 78FF

0x000B 79FF

0x000D D9FE

0x000F D8FA

(62)

Système minimum Système minimum

Horloge

Base de temps Q

A12-A15

UP type 8051-6809

D0-D7

Décodage d’adresse Adresses

hautes

Données

Vers « Chip Select »

Horloge interne du microprocesseur (E) généralement Q /4

A0-A11 CONTRÔLES

CS0 A0-A11 D0-D7 RW

ROM 8KO

CS1 A0-A7 D0-D7 RW

RAM 256

CS2 A0-A1 D0-D7 RW

PIA

PRA PRB PRC

TX RX CLK CS3 A0-A1 D0-D7 RW

ACIA

TX RX CLK O1 O2 O3 I1 I2 I3 CS4 A0-A2 D0-D7 RW

TIMER

O1 O2 O3 I1 I2 I3

Adresses basses

contrôle s

extérieur

15:42 C.Dupaty EMSE SAM1A 62

(63)

$FFFF

$F000

PROM1 4KO

$EFFF

$E000

PROM2 4KO

$A007

$A000

TIMER

Décodage d’adresses Décodage d’adresses

32K 16K 8K 4K 2K 1K 512 256 128 64 32 16 8 4 2 1

A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 Hexadécim

al

/CS

1 1 1 1 x x x x x x x x x x x x

$F000-

$FFFF

ROM1

$6004

$6000

ACIA

$4004

$4000

PIA

$07FF

$0000

RAM 2KO

1 1 1 1 x x x x x x x x x x x x

$FFFF

1 1 1 0 x x x x x x x x x x x x

$E000-

$FFFF

ROM2

1 0 1 * * * * * * * * * * x x x

$A000-$A007 TIMER

0 1 1 * * * * * * * * * * * x x

$6000-$6003 ACIA

0 1 0 * * * * * * * * * * * x x

$4000-

$4003

PIA

$0000- RAM

(64)

Décodage par portes logiques Décodage par portes logiques

RAM=A RAM=A15 15+A +A14 14+A +A13 13+A +A12 12

PIA=A PIA=A15 15+/A +/A14 14+A +A13 13+A +A12 12

ACIA=A ACIA=A15 15+/A +/A14 14+/A +/A13 13+A +A12 12

TIMER=/A TIMER=/A15 15+A +A14 14+/A +/A13 13+A +A12 12

ROM ROM2 2=/A =/A15 15+/A +/A14 14+/A +/A13 13+A +A12 12

ROM ROM1 1= /A = /A15 15+/A +/A14 14+/A +/A13 13+/A +/A12 12

15:42 C.Dupaty EMSE SAM1A 64

(65)

Decodage par décodeur Decodage par décodeur

intégré intégré

/ROM1

&

A12

/ROM2

&

&

74HC138

A2 /Y7 A1 /Y6 A0 /Y5 /Y4

/Y3

E3 /Y2 /E2 /Y1 /E1 /Y0 A15

A14 A13

E 0v 0v

/ROM

/TIMER /ACIA /PIA /RAM

(66)

Décodage par circuit Décodage par circuit

programmable PAL programmable PAL

modulemodule DECODAD; DECODAD;

titletitle 'Decodeur d adresse';'Decodeur d adresse';

DeclarationsDeclarations

DECODAD device 'PDECODAD device 'P1616LL88';';

AA1515,A,A1414,A,A1313,A,A1212,A,A1111,A,A10 10 pin pin 11,,22,,33,,44,,55,,66;;

ROMROM11,IO,ROM,IO,ROM22,DRAM pin ,DRAM pin 1414,,1515,,1616,,1717;;

H,L,X = H,L,X = 11,,00,.X.;,.X.;

Address = [AAddress = [A1515,A,A1414,A,A1313,A,A1212, A, A1111,A,A1010,X,X, X,X,X,X, ,X,X, X,X,X,X, X,X,X,X];

X,X,X,X];

equationsequations

!DRAM = (Address <= ^hDFFF);!DRAM = (Address <= ^hDFFF);

!IO = (Address >= ^hE!IO = (Address >= ^hE000000) & (Address <= ^hE) & (Address <= ^hE77FF);FF);

!IO = (Address >= ^hE!IO = (Address >= ^hE000000) & (Address <= ^hE) & (Address <= ^hE77FF);FF);

!ROM!ROM2 2 = (Address >= ^hF= (Address >= ^hF000000) & (Address <= ^hF) & (Address <= ^hF77FF);FF);

!ROM!ROM1 1 = (Address >= ^hF= (Address >= ^hF800800););

test_vectorstest_vectors

(Address (Address --> [ROM> [ROM11,ROM,ROM22,IO,DRAM]),IO,DRAM])

^h^h0000 0000 --> [ H, H, H, L ];> [ H, H, H, L ];

^h^h4000 4000 --> [ H, H, H, L ];> [ H, H, H, L ];

^h^h8000 8000 --> [ H, H, H, L ];> [ H, H, H, L ];

^hC^hC000 000 --> [ H, H, H, L ];> [ H, H, H, L ];

^hE^hE000 000 --> [ H, H, L, H ];> [ H, H, L, H ];

^hE^hE800 800 --> [ H, H, H, H ];> [ H, H, H, H ];

^hF^hF000 000 --> [ H, L, H, H ];> [ H, L, H, H ];

^hF^hF800 800 --> [ L, H, H, H ];> [ L, H, H, H ];

endend DECODADDECODAD

15:42 C.Dupaty EMSE SAM1A 66

(67)

PORTS PARALELLES PORTS PARALELLES

MICROCONTROLEUR

PORT en entrée MICROCONTROLEUR

PORT en entrée

PORT en sortie

PORT bidirectionnel PORT en sortie

PORT bidirectionnel

(68)

Lexique Lexique

UP: UP: 8 8 bits, bits, 64 64KO type KO type 8051 8051, , 68 68HC HC11 11, PIC , PIC16 16, PIC , PIC18 18, ATMEL AVR , ST , ATMEL AVR , ST6 6, , ST

ST7 7… …

ROM: ROM: mémoire morte PROM ou EPROM, elle contient le programme mémoire morte PROM ou EPROM, elle contient le programme

RAM RAM : Mémoire vive statique , elle contient les données (variables) : Mémoire vive statique , elle contient les données (variables)

PIA, PIO PIA, PIO :: Peripherical interface adapter, periphérical input/output. Port Peripherical interface adapter, periphérical input/output. Port parallèle

parallèle 8 8bits bits

UART , USART UART , USART : Asynchronous communications interface adapter ou : Asynchronous communications interface adapter ou Universal Synchrone/Asynchrone Receive/Transiver. Port série code Universal Synchrone/Asynchrone Receive/Transiver. Port série code NRZ .

NRZ .

TIMER TIMER : PTM : PTM : Programmable Timer Module : Programmable Timer Module . Production et mesures de . Production et mesures de durées.

durées.

Décodeur d’adresses Décodeur d’adresses : permet à partir du bus d’adresse (A : permet à partir du bus d’adresse (A0 0--A A15 15) ou ) ou d’une partie de celui ci de créer des signaux permettant de sélectionner d’une partie de celui ci de créer des signaux permettant de sélectionner les différents boîtiers (CS pour Chip Select) lorsque l’adresse du boîtier les différents boîtiers (CS pour Chip Select) lorsque l’adresse du boîtier considéré est est active.

considéré est est active.

15:42 C.Dupaty EMSE SAM1A 68

(69)

Interfaces Internes/Externes Interfaces Internes/Externes

EEPROM EEPROM : mémoire morte effaçable électriquement : mémoire morte effaçable électriquement

ADC ADC : convertisseurs analogiques numériques : convertisseurs analogiques numériques

DAC DAC : convertisseurs numériques analogiques : convertisseurs numériques analogiques

Comparateurs de tension Comparateurs de tension

Horloge temps réel (RTC) Horloge temps réel (RTC)

Port parallèle de puissance Port parallèle de puissance

Port parallèle de puissance Port parallèle de puissance

Interface série synchrone SPI ou IIC Interface série synchrone SPI ou IIC

Gestionnaire afficheur LCD graphique / alphanumérique Gestionnaire afficheur LCD graphique / alphanumérique

Interface ethernet Interface ethernet

Interface WIFI Interface WIFI

Bus de communications de terrain (CAN ou LIN) Bus de communications de terrain (CAN ou LIN)

Superviseur d’alimentation / Chien de garde (watch dog) Superviseur d’alimentation / Chien de garde (watch dog)

(70)

Mémoires Mémoires

Read Only Memory Read Only Memory (ROM), elle conserve (ROM), elle conserve ses données sans

ses données sans énergie.

énergie.

énergie.

énergie.

Random Access Random Access

Memory (RAM), elle Memory (RAM), elle ne conserve pas ses ne conserve pas ses données sans énergie données sans énergie

15:42 C.Dupaty EMSE SAM1A 70

(71)

Les cycles de travail du CPU Les cycles de travail du CPU

Recherche de l'instruction par accès

à la mémoire programme

Exécution de l instruction Décodage de

l'instruction

Lecture des opérandes par accés à la mémoire

donnée

CPU

CPU

FETCH

CPU

DECODE

CPU

EXECUTE

CPU

READ

(72)

Technologie Pipeline Technologie Pipeline

Recherche de l'instruction par accès

à la mémoire programme

Exécution de l instruction Décodage de

l'instruction

CPU FETCH

CPU DECODE

CPU EXECUTE Lecture des

opérandes par accés à la mémoire donnée

CPU READ

Instructions /

Temps t

n F

n + 1 n + 2 n + 3

t + 1 D F

t + 2 R D F

t + 3 E R D F

t + 4

E R D

t + 5

E R

t + 6

E

Vitesse d ’exécution x 4

15:42 C.Dupaty EMSE SAM1A 72

(73)

Technologie des Technologie des microcontrôleurs microcontrôleurs

Von Neumann Von Neumann

John von Neumann

John von Neumann ((1903 1903--1957 1957), ), mathématicien

mathématicien et et physicien physicien américain américain d'origine

d'origine hongroise hongroise

Mémoire Programm

e et donnéesADD

OP1

Séquenceur

Entrée / Sortie

Unité

Arithmétique et Logique Bus

Harvard Harvard

université

université américaine américaine située située à

à Cambridge Cambridge au au Massachusetts Massachusetts..

Bus Programme

Bus Mémoire

Programme ADD

Mémoire Données

Séquenceur

Entrée / Sortie

Unité

Arithmétique et Logique OP1

OP2

(74)

Deux concepts de jeu d’instructions Deux concepts de jeu d’instructions

pour les microcontrôleurs pour les microcontrôleurs

Compilateur simple

Au programmeur d ’optimiser le code

Jeux d ’instructions riches

Architecture matérielle simple

CISC

( Complex Instruction Set Computer ), 8051- 68HC11-ST6…

C ’est le compilateur qui optimise

RISC

( Reduced Instruction Set Computer ), PIC16, PIC18, ATMEL AVR, tous les DSP

Compilateur complexe

Jeux d ’instructions succincts

Architecture matérielle optimisées

15:42 C.Dupaty EMSE SAM1A 74

(75)

MICROCONTROLEURS

MICROCONTROLEURS – – un un système fermé

système fermé

Avantages Avantages

Intégration dans un seul boîtier Intégration dans un seul boîtier Fiabilité

Fiabilité

Coût de câblage réduit Coût de câblage réduit Faible consommation Faible consommation Faible consommation Faible consommation

Inconvénients Inconvénients

L’intégration de nombreux périphériques, de L’intégration de nombreux périphériques, de

RAM, de ROM limite la puissance de calcul et la RAM, de ROM limite la puissance de calcul et la vitesse ces circuits.

vitesse ces circuits.

Mise en œuvre et approche du composant Mise en œuvre et approche du composant d’apparence complexe.

d’apparence complexe.

(76)

Organisation générale (ex:

Organisation générale (ex:8051 8051))

•L’ALU : Arithmetic and Logic Unit

•Les registres accumulateurs (ACC et B)

•Le registre d’état du microcontrôleur (PSW)

•Le pointeur de pile (stack pointer)

•Le gestionnaire de temps et l’oscillateur qui cadence le déroulement du

programme

•Le gestionnaire d’interruptions

•Les registres pointeurs (index) DPTR

•Le compteur de programme qui contient

•Le compteur de programme qui contient l’adresse de l’instruction à exécuter

•Les mémoires RAM, ROM, EPROM

•Les ports parallèles, le port série, les TIMER

•La broche RST (Remise à zéro, active à l’état haut elle initialise le programme)

•ALE, Adresse Latch Enable, utilisée en mode « mémoire externe »

•/EA, si 1 la mémoire interne 0x000 à 0xFFF est sélectionnée

•/PSEN, indique un accès à la mémoire externe

15:42 C.Dupaty EMSE SAM1A 76

(77)

Les mémoires du

Les mémoires du 8051 8051

Mémoire programme (CODE space)

0x0000 à 0x7FFF (32KO) en interne ou 64KO en externe. Lors d’un RESET le program counter (PC) pointe l’adresse 0x0000 (toujours le début du programme)

Mémoire de données (DATA space) :

Une RAM externe est adressable de 0x0000 à 0xFFFF

Les adresses RAM 0x00 à 0x7F (internes) sont adressables en direct et en indirect

(78)

Plan mémoire Plan mémoire

de la RAM de la RAM

interne interne

0x00 à 0x1F : 4 banques de 8 registres généraux. (Une seule banque active) les registres R0 et R1 peuvent servir de pointeurs en RAM (adressage indirect)

.

0x20 à 0x2F : 16 octets soit 128 bits

15:42 C.Dupaty EMSE SAM1A 78

0x20 à 0x2F : 16 octets soit 128 bits adressables individuellement

0x30 à 0x7F : 80 octets 0x80 à 0xFF : 128 octets

adressables uniquement en indirect 0x80 à 0xFF : 128 registres internes et de périphériques adressables uniquement en direct (les adresses finissants par 0 ou 8 sont également adressables par bit)

Diapo103

(79)

Les Les

registres

registres

spéciaux

spéciaux

(80)

Mise en Mise en œuvre, œuvre, exemple exemple

du

du 8051 8051

g a b c d e f a b c d e f g

XTAL2 18 XTAL1 19

ALE 30 EA 31 PSEN 29 RST 9 P0.0/AD0

39

P0.1/AD1 38

P0.2/AD2 37

P0.3/AD3 36

P0.4/AD4 35

P0.5/AD5 34

P0.6/AD6 33

P0.7/AD7 32

P2.7/A15 28

P2.0/A8 21

P2.1/A9 22

P2.2/A10 23

P2.3/A11 24

P2.4/A12 25

P2.5/A13 26

P2.6/A14 27

P1.0 1 P3.0/RXD

10

U1

8

DSW1 R1

220R2

220R3

220

R4

D1

LED-RED

D2

LED-RED

D3

LED-RED

D4

X1

12MHZ

C1

27pF

C2

27pF

R9

10k

C3

1uF VCC

VCC

VCC

VCC

R10

220

R11

220

R12

220

R13

220

R14

220

R15

220

R16

220

VCC VCC

15:42 C.Dupaty EMSE SAM1A 80

P1.0 1 P1.1 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8 P3.0/RXD

10

P3.1/TXD 11

P3.2/INT0 12

P3.3/INT1 13

P3.4/T0 14

P3.7/RD 17 P3.6/WR 16 P3.5/T1 15

80C51

CS 1 VIN(+) 2

VIN(-)

3 VREF CLK 7

5

DO 6

U2

ADC0831

OFF ON 1 2 3 4 5 6 7 8

9 DIPSWC_8

RV1

10k 220R5

220

R6

220

R7

220

R8

220

LED-RED

D5

LED-RED

D6

LED-RED

D7

LED-RED

D8

LED-RED

Carte de test n°1 pour 8051

R17

10k

R18

10k

RXD

RTS TXD

CTS

(81)

Le langage ASSEMBLEUR Le langage ASSEMBLEUR

Avantages / Inconvénients

Langage Machine Langage Assembleur LOOP: ADD A, R1 MOV R7,# 0x20

CJNE A, #0x04, LOOP 0x8008 29

0x8009 7F 20

0x800B B4 0400 Assemblage Adresse Code

opération

Opérandes Code

opération

Opérandes Label

Claquage mémoire

Près du code machine Long à écrire

Difficile à lire

Difficile à mettre au point Dépendant du micro

Code généré très court

Demande moins de mémoire Exécution très rapide

Outils de développement simple Avantages / Inconvénients

• Routines temps réel en assembleur

• Corps principal en C

Conclusions

(82)

Pour programmer un Pour programmer un

microcontrôleur…

microcontrôleur…

Il faut Il faut se documenter se documenter ::

Connaitre le composant, son unité centrale, ses périphériques etc. Connaitre le composant, son unité centrale, ses périphériques etc.

Connaitre l’assembleur, le jeu d’instruction, les directives d’assemblage Connaitre l’assembleur, le jeu d’instruction, les directives d’assemblage

Savoir mettre en œuvre les outils de développement, simulateur, émulateur, Savoir mettre en œuvre les outils de développement, simulateur, émulateur, programmateur etc.

programmateur etc.

15:42 C.Dupaty EMSE SAM1A 82

(83)

Elément d’assembleur

Elément d’assembleur 8051 8051

ACC est l’accumulateur. Il comprend ACC est l’accumulateur. Il comprend 8 8 bits. bits.

mov

mov a,# a,# 12 12 ; charge la valeur ; charge la valeur 12 12 dans le registre ACC dans le registre ACC

B est utilisé pour les opérations de multiplication et de division B est utilisé pour les opérations de multiplication et de division mul

mul AB AB ;AxB , ;AxB , résultats pFORTS dans B, pfaibles dans ACC résultats pFORTS dans B, pfaibles dans ACC div

div AB AB ;A/B, ;A/B, résultat dans ACC, reste dans B résultat dans ACC, reste dans B

Les registres R Les registres R0 0 et R et R1 1 sont des registres pointeurs pour la mémoire RAM sont des registres pointeurs pour la mémoire RAM

;Charge

;Charge 70 70h dans ACC h dans ACC mov

mov a, a,70 70h h ;Charge ;Charge 70 70h dans ACC h dans ACC mov

mov 71 71h,a h,a ;enregistre ACC dans la case ;enregistre ACC dans la case 71 71h h

Au lieu de cette séquence on peut écrire Au lieu de cette séquence on peut écrire mov

mov R R0 0, ,70 70h h ;R ;R0 0 pointe l’adresse pointe l’adresse 70 70h h mov

mov a,@R a,@R0 0 ;le contenu de ;le contenu de 70 70h est placé dans ACC h est placé dans ACC inc

inc R R0 0 ;R ;R0 0 pointe l’adresse pointe l’adresse 71 71h h mov

mov @R @R0 0,a ,a ;le contenu de ACC est placé à l’adresse ;le contenu de ACC est placé à l’adresse 71 71h h

(84)

Modes d’adressage,

Modes d’adressage, 4 4 modes modes pour une même instruction

pour une même instruction

ADD A,# ADD A,# 127 127 ((adressage immédiat adressage immédiat)) A=A+

A=A+127 127

ADD A, ADD A,7 7FH FH ((adressage direct adressage direct)) A=A+contenu adresse

A=A+contenu adresse 7 7F F A=A+contenu adresse

A=A+contenu adresse 7 7F F

ADD A,R ADD A,R7 7 ((adressage registre adressage registre)) A=A+contenu de R

A=A+contenu de R7 7

ADD A,@RO ADD A,@RO ((adressage indirect adressage indirect))

A=A+contenu de l’adresse pointé par R A=A+contenu de l’adresse pointé par R0 0

15:42 C.Dupaty EMSE SAM1A 84

(85)

Modes d’adressage, accès ROM Modes d’adressage, accès ROM

Base register plus index Base register plus index register addressing register addressing : : L’adresse de la donnée est calculée en ajoutant le L’adresse de la donnée est calculée en ajoutant le

décalage ACC au registre DPTR (data pointer) ou PC.

décalage ACC au registre DPTR (data pointer) ou PC.

clr clr clr clr a a a a ; ACC= ; ACC=0 ; ACC= ; ACC=0 0 0 mov

mov DPTR,# DPTR,#0 0A A34 34h h ; DPTR=A ; DPTR=A34 34h h movc

movc a,@a+DPTR a,@a+DPTR ; ACC égale le ; ACC égale le contenu de la mémoire ROM A

contenu de la mémoire ROM A34 34h h

(86)

Le jeu d’instructions

Le jeu d’instructions-- Syntaxe Syntaxe

Rn

Rn – – registres R registres R0 0--R R7 7

@Ri

@Ri – – adressage indirect RAM interne ou adressage indirect RAM interne ou externe par les registres R

externe par les registres R0 0 ou R ou R1 1 externe par les registres R

externe par les registres R0 0 ou R ou R1 1

#data

#data 8 8 – – adressage immediat ( adressage immediat (8 8 ou ou 16 16 bits)

bits) bit

bit – – 128 128 drapeaux généraux et bits des drapeaux généraux et bits des SFR

SFR A

A – – Accumulateur ACC Accumulateur ACC

15:42 C.Dupaty EMSE SAM1A 86

(87)

Les types d’instructions Les types d’instructions

Logiques Logiques andl a,# andl a,#12 12 ; a=a& ; a=a&12 12

Arithmétiques Arithmétiques add a,# add a,#12 12 ; a=a+ ; a=a+12 12

Transfert Transfert mov a,# mov a,#12 12 ; a= ; a=12 12

Booleen Booleen

Booleen Booleen setb # setb #12 12 ; bit ; bit 12 12 = = 1 1

Contrôle du programme : Contrôle du programme : jb P jb P3 3. .0 0,ici ,ici

; saut à l’adresse «

; saut à l’adresse « ici ici » si » si P

P3 3. .0 0= =1 1

(88)

Exemple assembleur Exemple assembleur

#include <reg

#include <reg517 517A.inc> A.inc>

; CD

; CD 6 6/ /08 08

; PROGRAMME FLASH LED PORT

; PROGRAMME FLASH LED PORT20 20

; ce programme fait clignoter (flash) le port P

; ce programme fait clignoter (flash) le port P2 2. .0 0

;

; LED

LED EQU EQU P P2 2. .0 0 ; utilisation de la LED sur P ; utilisation de la LED sur P2 2. .0 0 CSEG

CSEG AT AT 0 0 ; adresse d'assemblage (ici ; adresse d'assemblage (ici 0 0h, RESET) h, RESET) MOV

MOV SP,# SP,#7 7Fh Fh ; charge SP avec sommet de la RAM ; charge SP avec sommet de la RAM SUITE:

SUITE: CPL CPL LED LED ; complémente la LED (FLASH) ; complémente la LED (FLASH)

Quatre «

Quatre « champs champs » » : : étiquettes (adresses), étiquettes (adresses), instructions,

instructions, opérandes, opérandes,

Commentaires …) Commentaires …)

SUITE:

SUITE: CPL CPL LED LED ; complémente la LED (FLASH) ; complémente la LED (FLASH) CALL

CALL TEMPO TEMPO ; tempo ; tempo SJMP

SJMP SUITE SUITE ; on recommence ; on recommence

; TEMPO LONGUE R

; TEMPO LONGUE R0 0xR xR1 1 TEMPO:

TEMPO: MOV MOV R R0 0,# ,#0 0FFh FFh ; charge R ; charge R0 0 et R et R1 1 TEMPO

TEMPO1 1: : MOV MOV R R1 1,# ,#0 0FFh FFh TEMPO

TEMPO2 2: : DJNZ DJNZ R R1 1,TEMPO ,TEMPO2 2 ; decremente R ; decremente R1 1 jusqu'à jusqu'à 0 0 DJNZ

DJNZ R R0 0,TEMPO ,TEMPO1 1 ; decremente R ; decremente R0 0 et recharge R et recharge R1 1 si R si R0 0!= !=0 0 RET

RET END END

15:42 C.Dupaty EMSE SAM1A 88

Références

Documents relatifs

Il faudra pour les interruptions prioritaires (0x0008) placer à cette adresse un saut vers la SP

Écrire un programme en assembleur 8086 qui introduit une chaîne de caractères via le clavier et affiche en résultat le nombre de voyelles

; l’instruction qui va suivre se trouvera à cette adresse goto debut ; saut à l’étiquette marquant le début du programme org 0x10 ; cette adresse doit être supérieure

Je suis capable de classer des images en fonction de l’attaque du mot (c’est- à dire du son entendu au début du mot : « Renard commence par le

Je suis capable de classer des images en fonction de l’attaque du mot (c’est- à dire du son entendu au début du mot : « Renard commence par le

[r]

[r]

 A l’aide d’un programme, calculez les images de 3 ; de 9 puis de -6 par la fonction h..  Comparez les fonctions