Professional Documents
Culture Documents
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?
Chronographe B
D0-D7
A0-A11
A0-A11
CE
CE
RAS
RAS
CAS
CAS
WE
WE
OE
OE
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?
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
bit de dpart
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
Q S 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
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?