Objectifs Connaitre le vocabulaire associé aux microprocesseurs et microcontroleurs Etre capable de programmer un microcontroleur en langage C pour répondre à un cahier des charges Etre capable d'utiliser les outils de développement d'une application à microcontroleur Architecture des système et microcontroleur 2
Organisation 7 CM 11 TD 9 TP notés 2 Controles Architecture des système et microcontroleur 3
Pourquoi des système? Besoin grandissant de systèmes intelligents capables de s'adapter rapidement à un changement ou une commande Dans quels domaines? Tous les domaines, grand public et industriels Automobile (ABS, commande au volant,etc.) Industriel (automatisation des chaine de production), Téléphonie, Électromenager, Domotique, Ludique (console de jeu, jeu télécommandés, etc.), Etc. Architecture des système et microcontroleur 4
Objectifs des systèmes? Acquérir des entrées (logiques et/ou analogiques) représentant l'état du système Interpreter l'état actuel et calculer l'état futur du système Agir sur des sorties (logiques et/ou analogiques) de façon à placer le système dans le nouvel état Les besoins : un système capable de Communiquer avec le monde extérieur afin de Récupérer l'état du système (lire des entrées), Placer le système dans son nouvel état (écrire sur des sorties) Réaliser des calculs Architecture des système et microcontroleur 5
La logique cablée Comment? Rapide mais encombrante, durée d'étude longue, difficile à maintenir Les circuits logiques programmables : Gain de place en intégrant la solution en logique cablée dans un même boitiers. Les systèmes ou microcontroleur : Moins rapide mais temps d'étude réduit et maintenance plus facile Architecture des système et microcontroleur 6
Constitution ADRESSE Programme (ROM) Décodage d'@ CPU De Données (RAM) Décodage d'@ Périphérique d'e/s DATA Décodage d'@ SYSTÈME MICROPROGRAMMÉ Périphérique d'e/s Décodage d'@ CPU : Central Processor Unit Architecture des système et microcontroleur 7
Constitution La communication entre les différents éléments est assurée par : Un bus d'adresse unidirectionnel CPU périphériques Un bus de données bidirectionnel CPU périphériques Des lignes de commande (R/W, OE, etc.) unidirectionnelles CPU périphériques BUS : ensemble de plusieurs lignes qui changent de valeurs en même temps Architecture des système et microcontroleur 8
L'unité de traitement CPU PC ADRESSE programme Registres Internes A UAL Décodeur Séquenceur d'instructions De données DATA UAL : Unité Arithmétique et Logique Accumulateur : zone mémoire interne au microprocesseur utilisée par l'ual pour stocker les données le temps d'un calcul. Architecture des système et microcontroleur 9
Déroulement d'un programme Addition de la valeur 3 à une variable V=12 stokée en mémoire de données V V+3 Architecture des système et microcontroleur 10
Déroulement d'un programme CPU PC ADRESSE programme E0E3 A Registres Internes Décodeur Séquenceur d'instructions 12 De données DATA Architecture des système et microcontroleur 11
Déroulement d'un programme CPU PC ADRESSE programme E0E3 A Registres Internes (E0E3) Décodeur Séquenceur d'instructions R 12 De données DATA Architecture des système et microcontroleur 12
Déroulement d'un programme CPU PC ADRESSE programme A Registres Internes Décodeur Séquenceur d'instructions R 12 De données DATA Architecture des système et microcontroleur 13
Déroulement d'un programme CPU PC ADRESSE programme 12 Registres Internes Décodeur Séquenceur d'instructions 12 De données 12 DATA Architecture des système et microcontroleur 14
Déroulement d'un programme CPU PC ADRESSE programme 12 Registres Internes 3 3 Décodeur Séquenceur d'instructions 12 De données DATA Architecture des système et microcontroleur 15
Déroulement d'un programme CPU PC ADRESSE programme 15 Registres Internes Décodeur Séquenceur d'instructions 12 De données DATA Architecture des système et microcontroleur 16
Déroulement d'un programme CPU PC ADRESSE programme 15 Registres Internes Décodeur Séquenceur d'instructions 15 De données DATA Architecture des système et microcontroleur 17
Déroulement d'un programme Pour effectuer l'opération V=V+3, le microprocesseur effectue 3 opérations : Charger le contenu de la RAM dans l'accumulateur A, Additionner la valeur 3 au contenu de A et placer le résultat dans A, Écrire le contenu de A en mémoire RAM. Chacune de ces opérations correspond à une instruction élémentaire du microprocesseur Architecture des système et microcontroleur 18
Qu'est ce que c'est? Un microcontroleur est l'intégration sur une même puce, dans un seul boitier d'un microprocesseur et de ses périphériques. Microprocesseur ADRESSE Programme (ROM) Décodage d'@ De Données (RAM) Décodage d'@ Périphérique d'e/s DATA Décodage d'@ Périphérique d'e/s MICROCONTROLEUR Décodage d'@ Architecture des système et microcontroleur 19
Sa mise en œuvre nécessite : Valim GND Lignes de programmation Microprocesseur ADRESSE Programme (ROM) Décodage d'@ De Données (RAM) Décodage d'@ Périphérique d'e/s DATA Décodage d'@ Périphérique d'e/s MICROCONTROLEUR Décodage d'@ Architecture des système et microcontroleur 20
Critères de choix : Taille du bus de données Taille de sa mémoire programme, Fréquence max de fonctionnement, Jeu d'instruction RISC ou CISC, Périphériques disponibles, Possibilités d 'extension mémoire RISC : Reduce Instruction Set Computer, microcontroleur à jeu d'instruction réduit CISC : Complex Instruction Set Computer, microcontroleur à jeu d'instruction complexe Architecture des système et microcontroleur 21
Programmation Le microcontroleur comprend le code machine : code binaire interprété par le décodeur d'instructions qui le divise : en code opération pour l'ual, Signaux de commandes, valeurs des bus. Code machine est complexe, non intuitif et très proche de la machine donc très rarement utilisé par le programmeur. Généralement une instruction en langage machine correspond à une opération élémentaire du microcontroleur. On programme en langage évolué (C, JAVA, etc.) puis on utilise un compilateur pour traduire notre code en langage machine compris par le microcontroleur. Cela nécessite une chaine de développemnt adaptée. Compilateur : logiciel qui traduit un programme saisi en langage évolué en langage machine Architecture des système et microcontroleur 22
Programmation Algorithme Langage C Assembleur Code machine en hexadécimal (binaire) V V+3 V=V+3 ; LDI R30, 0x33 ADD R5,R30 E0E3 (1110000011100011) 0E5E (0000111001011110) Architecture des système et microcontroleur 23