Vous êtes sur la page 1sur 15

Exercices pour le cours de GIF-3002, Systmes Microprocesseurs et

Interfaces, Partie 1 de 2

Ce document contient des exercices accompagnant les notes de cours de GIF-3002 afin de
consolider et approfondir certaines notions vues en classe.

Les exercices sont diviss par cours ou par sujet prsent par lenseignant.

De nombreuses personnes ont contribu la ralisation de ces exercices, souvent au dtriment


de leur sommeil. Plusieurs exercices sont le produit dun effort additionnel, une heure indue.
Veuillez nous pardonner les fautes, les omissions ou la mise en page minimaliste

Bon apprentissage,

Etienne Tremblay, Charg de cours


Marc-Andr Bland, Assistant de cours
Patrick Clment-Bonhomme, Assistant de cours
Marc-Andr Gardner, Assistant de cours
Cours 1 : Introduction

Q1.1 Donnez lordre dapparition des technologies suivantes lchelle mondiale :

1. Les transistors effet de champs (CMOS)


2. Les circuits intgrs
3. Les transistors bipolaires (BJT)
4. Les ordinateurs
5. Les microprocesseurs

Q1.2 Le processeur Intel Core i7, produit en 2010, contient environ 1.17 milliards de
transistors. Combien de transistors les processeurs de 2015 devraient-ils contenir si les
dimensions du processeur ne changent pas, si on utilise toujours la technologie la plus
rcente et si la loi de Moore est respecte?

Q1.3 Dans le domaine des microprocesseurs pour PC, nommez les deux compagnies ayant
le plus grand volume de ventes mondialement. Dans le domaine des microcontrleurs,
nommez trois des cinq compagnies ayant le plus grand volume de ventes mondialement.
Dans le domaine des architectures de microcontrleurs, nommez trois des cinq
architectures les plus communes mondialement.

Q1.4 Dans un systme microprocesseur, qui impose les donnes sur le bus de donnes, qui
impose les adresses sur le bus dadresses et qui gre les lignes de contrle?

Q1.5 Afin de minimiser le nombre de broches du microprocesseur, de minimiser le nombre


de fils dans un systme microprocesseur et de minimiser le nombre de contrleurs de bus
ncessaires dans le microcontrleur, il y avait traditionnellement un seul bus, comprenant
des lignes dadresses, de donnes et de contrle, partant du microprocesseur. Pourquoi les
microprocesseurs modernes ont-ils souvent plusieurs bus?

Q1.6 Vous crivez un programme en C ayant la ligne suivante : <a = b + c;>. Sachant que :

- a, b, et c sont des variables de type short (16 bits) aux adresses 0x1000, 0x1002 et
0x1004
- Le microprocesseur excutant le programme a 4 registres 16 bits gnraux, R0, R1,
R2 et R3.
- Le microprocesseur excutant le programme a une architecture LOAD/STORE
(LOAD Reg, [adresse]) et supporte linstruction ADD destination, source 1, source2.

crivez la squence dinstructions tre excute par le programme qui pourrait


correspondre la ligne de code <a = b + c;>.

Q1.7 Dites quelles instructions se retrouvent dans le microprocesseur et dcrivez le(s)


programme(s) auxquels ces instructions appartiennent. Dites galement quelles
composantes servent contenir les donnes dans un microprocesseur.
Q1.8 Pour les applications suivantes, dites sil faudrait utiliser un microprocesseur ou un
microcontrleur et dites pourquoi :

1. Contrleur de grille-pain
2. Contrleur dautomobile
3. Tlphone cellulaire
4. Ordinateur portable
5. Supercalculateur

Q1.9 Dcrivez deux mthodes utilises pour programmer la FLASH dun microcontrleur,
sachant que ladresse initiale, au dmarrage, du compteur de programme des
microcontrleurs (PC) dsigne souvent la FLASH ou une autre mmoire non-volatile.

Q1.10 Quel signal est gnr sur la broche OUT du circuit suivant?

OUT

Q1.11 Dcrivez les tches d'un microprocesseur.

Q1.12 Pour quelle raison la logique trois tats existe-t-elle?

Q1.13 Quelle est la diffrence entre un microprocesseur et un microcontrleur? Donnez les


avantages et inconvnients de chacun.

Q1.14 Il faut brancher le bus de donnes d'un microcontrleur deux mmoires pour un
interfaage en lecture et criture. Chaque ligne du microcontrleur peut fournir jusqu' 10
mA. Or, chaque entre sur les mmoires ncessite 6 mA. Comment est-il possible de rgler
ce problme?

Q1.15 Dans le circuit suivant, les entres peuvent tre gales soit au VCC, soit la masse.
Identifier le type de chaque MOSFET du circuit. crivez la table de vrit de ce circuit.
Quelle est la fonction logique de ce circuit?
Q1.16 Quelle est la fonction logique du circuit suivant? (On assume que la perte de tension
dans chaque diode est de 0,7V et que les quatre entres peuvent tre seulement seulement
5V ou 0V, c'est--dire un '1' ou un '0' logique)

Q1.17: Dans un systme avec microprocesseur, pourquoi une architecture Harvard est-elle
trs avantageuse lorsque le microprocesseur a un pipeline dinstructions?

Q1.18: Vous avez un systme microprocesseur avec deux mmoires, une mmoire FLASH
de 128K-mots et une mmoire RAM de 64K-mots. Dessinez le bus dadresse de ce systme
avec le dcodeur dadresse. Notez que K = 210 et que vous devez dterminer les lments
non-tablis du problme (exemple: ladresse de base des mmoires) comme il vous plaira.

Q1.19: Les notes de cours dcrivent sommairement le protocole NMEA 0183 pour
reprsenter les fractions. Dites pourquoi ce protocole est peu utilis dans lindustrie pour
reprsenter les autres fractions.
Cours 2 Micro-Matriel

Q2.1 numrez 8 critres qui devraient guider la slection dun microprocesseur.

Q2.2 Dites quels mots sont dfinis ci-dessous :

Dfinition Mot
Circuit ayant pour fonction de faire un reset du microprocesseur lorsque
celui-ci cesse de fonctionner normalement
Ensemble de programmes servant valuer les performances dun
microprocesseur
Se dit dun contrleur dinterruptions lorsque les adresses des routines
dinterruptions sont configurables et lues dans une table dadresses.
Circuit permettant de transfrer des donnes de la mmoire aux
priphriques sans intervention du CPU
Circuit gnrant des ondes rectangulaires frquence variable et
largeur variable

Q2.3 Lorsque lon conoit un circuit lectronique avec un microprocesseur, quels sont les
circuits de base accompagnant le microprocesseur qui doivent tre labors? (Exemple de
circuit de base : les alimentations du microprocesseur).

Q2.4 Pour quelle(s) raison(s) les microcontrleurs oprent-ils habituellement entre 10MHz
et 100MHz alors que les microprocesseurs oprent des vitesses beaucoup plus grandes?

Q2.5 Qu'est-ce qu'une Nested Vectored Interruption?

Q2.6 Pourquoi est-il dconseill de faire une horloge indiquant le temps l'aide de
l'oscillateur interne d'un microcontrleur? Comment peut-on faire une telle horloge avec le
kit microcontrleur du cours?

Q2.7 Quel est l'intervalle entre les diffrentes tensions pour un ADC 12 bits dont la tension
d'entre varie entre -3,3 V et 3,3 V ?

Q2.8 Pourquoi les microprocesseurs ont-ils besoin de plusieurs broches d'alimentation?

Q2.9 Dites pourquoi certaines broches de microcontrleur on parfois le rle d'adresse et de


donnes, multiplex temporellement.

Q2.10 Qu'est-ce qu'un MAX232?


Cours 3 Micro-Logiciel

Q3.1 Vous retrouvez les instructions et donnes suivantes dans la mmoire du LM3S9B92.
Assumez quun reset vient de se produire et que ladresse du vecteur dinterruption traitant
le reset est 0x00000004 et rpondez aux questions suivantes (le registre R15 est le Program
Counter).
Note 1: Le code qui suit peut contenir des erreurs sur le -8 et le -6 des LDR R1, [R15 - 8] et
LDR R1, [R15 - 6] en raison du pipeline dinstruction du LM3S9B92. Afin de rpondre aux
questions, considrez que le PC (R15) ne varie pas pendant lexcution dune instruction.

Note 2: Assumez que le microprocesseur opre en little endian. Si vous retrouvez


0x12345678 ladresse 0x00001000, cela signifie quil y a 0x78 ladresse 0x00001000,
0x56 ladresse 0x00001001, 0x34 ladresse 0x00001002 et 0x12 ladresse 0x00001003.

Adresse Valeur
0x00000000 0x00000000
0x00000004 0x00001004

0x00001000 0x12345678
0x00001004 0x20000000
0x00001008 LDR R1, [R15 8]
0x0000100A LDR R2, [R15 6]
0x0000100C LDR R3, [R2+2]
0x0000100E ADD R1, R2, R3
0x00001010 ADD R1, R1, 0x1234

0x20000000 0xAAAA1111
0x20000004 0x2222BBBB

1. On utilise six octets de mmoire pour mettre 0x12345678 dans le registre R1 du


micro processeur. Peut-on optimiser le code pour faire la mme opration avec
moins doctets? Si oui, comment? Si non, pourquoi?
2. quelle adresse devrait se retrouver linstruction suivant cette squence
dinstruction?
3. Donnez la valeur du registre modifi par chaque instruction de la squence. Dites
quelle sera la valeur de R1 aprs le premier LDR, la valeur de R2 aprs le second
LDR et ainsi de suite.

Q3.2 Quest quune banque de registre ou une banque de mmoire? Pourquoi utilise-t-on
des banques de registres ou de mmoire?

Q3.3 Quest-ce quune architecture Load/Store?

Q3.4 quoi sert le bit-banding du ARM_Cortex-M3? Quelle squence dinstruction est


optimise par le bit-banding? Donnez un exemple de code assembleur.

Q3.5 Quel est l'algorithme que le microprocesseur accomplit lors qu'il entre et sort d'une
interruption?
Q3.6 Nommer les diffrents modes d'adressage du ARM Cortex M3?
Cours 4 Mmoires, Matriel
Q4.1 numrez les signaux ncessaires afin de lire une mmoire ROM et indiquez le rle
de chacun des signaux.

Q4.2 Expliquez le fonctionnement de la mmoire SRAM.

Q4.3 Expliquez le fonctionnement de la mmoire DRAM.

Q4.4 Expliquez pourquoi les mmoires DRAM ont, pour une mme quantit de broches,
plus de capacit que les mmoires SRAM qui ne font pas multiplexage adresses/donnes.

Q4.5 Les chronographes suivants sont-ils des chronographes de lecture ou dcriture de la


mmoire? Expliquez pourquoi?
Chronographe A Chronographe B

D0-D7 D0-D7

A0-A11 A0-A11

CE CE

RAS RAS

CAS CAS

WE WE

OE OE

Figure 1 - Accs la mmoire DRAM

Q4.6 Parmi ces mmoires non-volatiles (FLASH, EEPROM et FRAM), indiquez celle que
vous utiliseriez dans les applications suivantes (la meilleure mmoire est celle qui cote le
moins cher, vous avez une quantit illimite de mmoire non-volatile!). Indiquez pourquoi.

1. Vous mesurez la temprature toutes les 100ms et vous devez sauvegarder toutes les
tempratures lues dans le dernier 48 heures dans une mmoire non-volatiles. Pour
chaque chantillon, vous avez 8 octets de donnes (la temprature et le temps).
2. Votre systme embarqu affiche une page web avec plusieurs images et des
informations qui varieront peu, mais qui seront lues frquemment.
3. Vous chantillonnez du son 20kHz 2 octets par chantillons et vous voulez
sauvegarder plusieurs bandes sonores de 2 minutes maximum pour les relire
ensuite. Votre systme a assez de mmoire RAM pour stocker 8Mo dinformation.

Q4.7 Le MMU et le contrleur de DMA sont troitement relis ensemble. Expliquez


pourquoi.

Q4.8 Comment se fait le DMA dans LM3S9B92? Quelles sont les contraintes daccs la
mmoire de donnes par le cur du microcontrleur lors dun transfert par DMA?

Q4.9 Quelle est la diffrence principale entre les mmoires DRAM et FRAM?

Q4.10 Il faut interfacer une mmoire de 1 mga-octet sur un bus d'adresses 32 bits (on
assume le bus A31-A0 avec A31 MSB). La premire adresse de la mmoire doit tre
0x10E08000. Quelle est la fonction logique permettant d'activer la mmoire en mettant le
bit 'ENABLE' de la mmoire '0' partir des lignes du bus d'adresse?

Q4.11 Combien de temps un bit de mmoire FLASH garde-t-il sa valeur lorsque la mmoire
nest pas alimente?

Q4.12 Le contenu des mmoires non-volatiles est habituellement protg par un CRC ou un
checksum. Pourquoi? Quels vnements peuvent corrompre les donnes ou instructions
contenues dans ces mmoires?
Cours 5 : Priphriques, Gnral + GPIO

Q5.1 Lorsque deux composantes oprent des vitesses diffrentes, il faut un tampon de
donnes et des drapeaux dtat pour grer la communication entre les deux composantes.
Expliquez laide dun exemple.

Q5.2 Quelles adresses faudra-t-il lire et/ou crire afin de mettre un 1 sur la broche 10 du
microcontrleur LM3S9B92?

Q5.3 Dites pourquoi il y a habituellement un microcontrleur juste pour contrler un LCD


dans un systme microprocesseur et interfaces.

Q5.4 Expliquer comment fonctionne linterface entre un contrleur de LCD comme le


HD44780 et un autre microprocesseur (le LCD du laboratoire 3 a un contrleur HD44780).

Q5.5 Combien de broches de microprocesseur sont ncessaires afin de contrler un clavier


ayant 72 touches? Pourrions-nous relier chaque broche une touche? Si on assume que le
clavier est une matrice 8*9, serait-il possible de lire le clavier avec 14 broches? Comment?

Q5.6 Illustrez une sortie totem pole avec des transistors (BJT ou CMOS au choix) et
illustrez une sortie open drain (ou open collector, au choix).

Q5.7 Dessinez le circuit pour quune LED ncessitant 10mA soit allume avec un 0
lorsque la sortie du microprocesseur ne peut fournir que 4mA.

Q5.8 On veut lire un 1 lorsquun bouton est appuy et un 0 sinon. Si le contact du


bouton oscille normment et si un debounce matriel est requis, dessinez le circuit
permettant de lire ce bouton avec lentre digitale dun microcontrleur.

Q5.9 Quel problme peut survenir s'il n'y a pas de rsistances de pull-up ou de pull-down
sur les lignes de lecture d'un clavier?

Q5.10 Lors de l'interfaage d'un LCD, dans quel cas utilise-t-on l'instruction de lecture du
busy flag plutt que d'attendre un dlai dfini?

Q5.11 Nommer les trois sortes de registres qu'on retrouve gnralement permettant de
contrler les GPIO et quoi sert chacun?

Q5.12 Pourquoi le registre de direction est toujours configur comme des entres un
reset?

Q5.13 Pour quelle raison un condensateur peut tre mis en parallle avec une entre
(connect entre l'entre et la masse)?
Cours 6: Priphriques, PWM, Timer, ADC et DAC

Q6.1 Le site web suivant dtaille le fonctionnement des timers pour le 8051 dIntel (le cur
de microprocesseur le plus vendu sur le march mondial!) :
http://www.mikroe.com/eng/chapters/view/65/chapter-2-8051-microcontroller-architecture/.
Expliquez le fonctionnement du timer 0 du 8051.

Q6.2 Quels registres du LM3S9B92 doit-on crire pour que le timer 0 dclenche une
interruption toutes les millisecondes? Quelles valeurs doit-on donner ces registres si
lhorloge du coeur fonctionne 32MHz.

Q6.3 numrez quatre applications dans lesquelles on retrouve un PWM.

Q6.4 Peut-on convertir un signal de PWM en niveau DC dpendant des paramtres


doprations du PWM? Si oui, comment? Si non, pourquoi? (Voir
http://www.esorol.com/assets/files/PDFs/Spectral%20analysis%20of%20a%20PWM%20sig
nal.pdf pour de laide!!!).

Q6.5 Peut-on produire un sinus avec un PWM? Comment?

Q6.6 Donnez un exemple dapplication o la largeur des pulses dun PWM est module.

Q6.7 Expliquez comment fonctionne un DAC R-2R.

Q6.8 Expliquez comment fonctionne un ADC par approximation successives?

Q6.9 Expliquez ce qui limite la vitesse dchantillonnage et la rsolution des DACs/ADCs.


Utilisez le DAC R-2R et/ou lADC par approximations successives au besoin.

Q6.10 Pourquoi devrait-on toujours utiliser un filtre passe-bas entre le signal chantillonn
et lentre dun ADC lorsquon interface avec un ADC?

Q6.11 Dcrivez les diffrentes manires d'utiliser un Timer?

Q6.12 Un timer 16 bits en mode auto-reload incrmente tous les coups de lhorloge du
timer. Sachant que lhorloge du systme est 16MHz, sachant quil est possible de diviser
lhorloge du systme par 4, 8 et 16 afin de gnrer lhorloge du timer, quelle doit tre la
valeur de chargement automatique (auto-reload) du timer et quelle doit tre lhorloge du
timer pour gnrer une interruption toutes les millisecondes. Sil existe plusieurs
rponses possibles, donnez-les toutes!

Q6.13 Vous voulez utiliser un timer pour gnrer une interruption priodique.
Malheureusement, ce timer na pas de mode auto-reload. Expliquez comment vous pourriez
gnrer une interruption priodique en dpit de labsence de lauto-reload.
Cours 7: Priphriques, Interfaces Sries

Q7.1 Quelle est la diffrence entre UART et RS232?

Q7.2 Quelle interface srie est utilise dans chaque application suivante :

a) Cartes SD?
b) Programmation JTAG?
c) Circuit de contrle des jets deau et alarmes dincendies dans un immeuble 30
tages?
d) Mmoires sries?
e) ADC/DAC externes?
f) Systme de communication dans un autobus.
g) Systme de surveillance dans une usine

Q7.3 Pour les quatre interfaces sries suivantes, donnez les caractristiques gnrales :

Caractristique RS232 RS485 SPI I2C


Architecture
physique du
rseau
Architecture
logique du
rseau
Sens de la
communication
Synchrone ou
Asynchrone
Vitesse max
(bps)
Distance max
(m)
Nombre de fils
minimum
Type de sortie
requise pour
crire un bit
Matriel de
support requis
Dcennie de
cration

Q7.4 Le RS485 utilise parfois 4 fils pour la communication, mais souvent 2 : il faut moins
de fils! En contrepartie, la communication sur deux fils est HALF-DUPLEX, diffrentielle
et bidirectionnelle. Expliquez pourquoi la plupart des systmes de communication RS485
ont une architecture matre-esclaves en raison de ces caractristiques.
Q7.5 La figure suivante illustre une communication SPI entre un matre et son esclave.
Rpondez aux questions relies la figure :

A. Qui gnre les diffrents signaux de communication? Le matre ou lesclave?


B. Combien doctets sont transmis et reus lors de la communication? Quelle est la
valeur de ces octets?
C. quelle frquence sont transmis les bits lors de cette communication SPI? Quelle
est la vitesse de communication effective?
D. Quelles sont la phase et la polarit du signal SPI?
Q7.6 La figure suivante illustre un module dE/S pour un UART1. partir de cette
illustration de principe, expliquez le fonctionnement gnral du priphrique :

Bus de
donnes Registre 8 bits, octet transmettre
Bus bit de fin bit de
d'adresse == 1 0
S Q dpart

Adresse du R bascule SR D Q
registre de
transmission Compteur CLK
de N 0 = 0?
reload
Signal clk
d'criture UART_TX
Signal
d'interruption TX

D Q D Q D Q D Q D Q D Q D Q D Q D Q D Q
Horloge du
systme

Registre CLK
de division
d'horloge
Registre dcalage, interne

Bus de
donnes Registre 8 bits, octet reu
Bus
d'adresse == Compteur
Devient de N 0
0?
reload clk
Signal
Adresse du d'interruption RX
registre de
rception
Q S
Signal de
lecture bascule SR R UART_RX

Q D Q D Q D Q D Q D Q D Q D Q D Q D Q D
Horloge du
systme

Registre CLK
de division
d'horloge
Registre dcalage, interne

1
Le module dUART prsent dans ces exercices est fictif. Malgr quelques erreurs possibles (par exemple, le
nombre de bits du registre dcalage dans un UART est souvent plus petit que 10 bits!) et malgr le nombre trs
limit de caractristiques quil illustre, ce dessin permettra au lecteur de comprendre le fonctionnement global
dun UART.
Q7.7 La capture d'oscilloscope suivante reprsente le dbut d'une communication IC (le
signal d'horloge commence au dbut du chronogramme). Le signal D2 est l'horloge (SCL)
et le signal D3 le canal de donnes (SDA). Vu horizontalement, la premire moiti du
signal contient l'octet de contrle, et la seconde moiti le dbut des donnes.

a) Est-ce le matre ou l'esclave qui initie la communication? Comment?


b) Quelle est l'adresse du priphrique vis par la requte?
c) Considrant la taille de cette adresse, combien de priphriques peuvent-ils tre adresss
sur un bus IC?
d) Aprs l'envoi du premier octet de synchronisation, est-ce que c'est le matre ou l'esclave
qui crit sur le bus?

Q7.8 Pour lire un octet sur une mmoire EEPROM en IC, le protocole est le suivant :
 Envoi d'un octet de contrle pour slectionner l'esclave
 Envoi de l'adresse (2 octets)
 Envoi d'un autre octet de contrle slectionnant le mme esclave
 Lecture des donnes partir de l'esclave

a) Pourquoi l'octet de contrle est-il envoy deux fois alors que le canal de communication
ne change pas (e.g. c'est le mme esclave qui reste activ)?
b) Pour chacun de ces octets envoys, qui gnrera le bit de ACK? Qui gnrera l'horloge?
Q7.9 La capture dcran suivante reprsente l'criture de deux octets dans une mmoire de
type flash (EEPROM). La mmoire est initialement vide (toutes les pages ont t effaces).
Afin de faciliter la lecture du chronogramme, la largeur d'un bit est identifie par les deux
curseurs, et le dbut de chacun des octets de donnes est identifi par un point bleu. Le
premier octet est l'octet de contrle, les deux suivants reprsentent l'adresse (le premier
octet contenant les MSB), et les deux derniers les donnes envoyes.

a) Quelle est l'adresse laquelle les donnes seront crites?


b) Si on fait par la suite une lecture l'adresse 0x0074 (116 en dcimal), quel sera le
premier octet reu? Le deuxime?
c) D'aprs ce que vous savez du protocole IC et de son implmentation matrielle, que
reprsentent les petites transitions 0 1 0 sur SDA, que l'on peut par exemple voir au-
dessus du premier point bleu.
d) Tenant compte du temps de transmission d'un bit (identifi par les curseurs), et en
ngligeant le temps requis pour l'envoi de l'octet de contrle, quelle est la vitesse de
transmission effective (en octets/s) de ce lien IC?