Sie sind auf Seite 1von 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. 2. 3. 4. 5. Les transistors effet de champs (CMOS) Les circuits intgrs Les transistors bipolaires (BJT) Les ordinateurs 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. 2. 3. 4. 5. Contrleur de grille-pain Contrleur dautomobile Tlphone cellulaire Ordinateur portable 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?
R

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)

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 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 Mot

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 0x00000000 0x00000004 0x00001000 0x00001004 0x00001008 0x0000100A 0x0000100C 0x0000100E 0x00001010 0x20000000 0x20000004 Valeur 0x00000000 0x00001004 0x12345678 0x20000000 LDR R1, [R15 8] LDR R2, [R15 6] LDR R3, [R2+2] ADD R1, R2, R3 ADD R1, R1, 0x1234 0xAAAA1111 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
D0-D7

Chronographe B
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?

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?

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 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 RS232 RS485 SPI I2C

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 Bus d'adresse

Registre 8 bits, octet transmettre


== bit de fin S Q R bascule SR Compteur de N 0
reload clk

bit de dpart

Adresse du registre de transmission Signal d'criture

D Q CLK = 0?

Signal d'interruption TX D Q D Q D Q D Q D Q D Q D Q D Q D Q D Q

UART_TX

Horloge du systme Registre de division d'horloge CLK

Registre dcalage, interne

Bus de donnes Bus d'adresse

Registre 8 bits, octet reu


== Devient 0? Signal d'interruption RX Compteur de N 0
reload clk

Adresse du registre de rception Signal de lecture

Q S bascule SR R

UART_RX
Q D

Horloge du systme Registre de division d'horloge CLK

Q D

Q D

Q D

Q D

Q D

Q D

Q D

Q D

Q D

Registre dcalage, interne

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 audessus 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?

Das könnte Ihnen auch gefallen