MICROCONTROLEUR - C MPLABX - XC8

Dimension: px
Commencer à balayer dès la page:

Download "MICROCONTROLEUR - C MPLABX - XC8"

Transcription

1 Institut Universitaire de Technologie de CRETEIL-VITRY Département de Génie Électrique et Informatique Industrielle MC-II2 - SYSTEMES EMBARQUES AVANCES MPLABX - XC8 Année universitaire J. VILLEMEJANE - julien.villemejane@u-pec.fr

2 MC-II2 - SYSTEMES EMBARQUES AVANCES Ce module d enseignement se base sur les microcontroleurs PIC16F690 et PIC18F2520 de chez Microchip. L environnement de développement utilisé est MPLABX de Microchip dans sa version Il est disponible gratuitement sur le site de Microchip, sur toute plate-forme (Windows, Mac, Linux). Le compilateur C utilisé est XC8 de Microchip dans sa version Il est disponible gratuitement sur le site de Microchip, sur toute plate-forme (Windows, Mac, Linux). Les cartes d étude utilisées ont été réalisés par le département GEII de l IUT de Créteil. Mais les exemples donnés peuvent être rapidement portés vers d autres cartes de développement. Ce document se base sur les documentations suivantes (disponibles sur le site de Microchip) : PIC16F690, PIC18F2520, MPLAB XC8 C Compiler - User s Guide, PIC18 Peripheral Library - Help Document. Consignes Faites valider chacun des exercices par l enseignant Un compte-rendu est obligatoire pour chaque TP et doit etre rendu à la fin de la séance. Les réponses aux questions dont le numéro est souligné doivent apparaitre dans le compte-rendu. Répartition des séances Séance 1 : Introduction aux systèmes embarqués (TP0) et Découverte de MPLABX Séance 2 : Programmation en C des PIC (TP1) Séance 3 : Constitution d un système embarqué à microcontroleur PIC16F (TP2) Séance 4 : Migration vers les PIC18F (TP3) Séance 5 : TP Test 1 Séance 6 : Gestion du temps / Timers matériel et logiciel (TP4) Séance 7 : Programmation par machine à état (TP5) Séance 8 : TP Test 2 2

3 GEII - MC-II2 TP 0 Introduction aux systèmes embarqués Objectifs Comprendre et maîtriser l organisation fonctionnelle d une application embarquée Connaître les principaux composants d un système embarqué 1. Les systèmes embarqués Les systèmes embarqués sont de plus en plus présents dans notre quotidien : téléphone portable, distributeur de billet, box ADSL, GPS... Et la liste s allonge chaque jour. La plupart d entre eux ont pour but de nous rendre la vie plus simple, souvent en totale autonomie et assigné à une tâche très précise. Mais de quoi sont-ils constitués et comment sont-ils conçus? 1.1. Définition Un système embarqué est le regroupement d un système matériel et d un logiciel, développés conjointement. Il possède une architecture spécifique dédiée à la réalisation d une tâche très particulière, la plupart du temps en parfaite autonomie, c est à dire sans l intervention de l être humain. En permanence en contact avec l environnement, dans lequel il récupére des informations via des capteurs (température, vitesse de rotation...) et avec lequel il intéragit par l intermédiaire d actionneurs (moteur, écrans, voyants...), il possède des entrées/sorties spécifiques et très réactives Caractéristiques Un système embarqué est un système principalement numérique, mais il peut intégrer une partie analogique (conditionnement de signaux provenant de capteurs, modulation, filtrage). Contrairement à un système plus généraliste (PC standard par exemple qui peut exécuter tout type d applications), un système embarqué n exécute qu une application dédiée. Cependant, l interface homme-machine (IHM), faisant le lien entre l application et l utilisateur, peut aller d une simple LED jusqu à un écran tactile dernière génération. Son système matériel est simplifié au maximum permettant ainsi de rendre plus fiable le système, de limiter la consommation électrique et de réduire les couts de fabrication. Le nombre de ressources (mémoires, entrées-sorties) est alors limité.

4 Un système embarqué est généralement un sous-ensemble d un système plus complexe dans lequel il remplit une tache spécifique. Dans l automobile, par exemple, on peut dénombrer entre 40 et 100 de ces systèmes, qui, regroupés ensemble, permettent d assurer la sécurité et le confort des passagers Contraintes Les systèmes embarqués étant généralement au plus proche des procédés à controler, ils doivent pouvoir fonctionner dans des conditions environnementales souvent extrêmes (température, humidité...). Rendre un système autonome nécessite de diminuer au maximum sa consommation électrique. Son faible encombrement et son faible poids imposent des contraintes supplémentaires lors de la conception, par exemple pour la dissipation de chaleur. Certains systèmes nécessitent aussi une gestion du temps très précise et font parfois appel à la notion de temps réel, intégrant alors des systèmes d exploitation spécifiques dits temps réels. Pour résumé, un système embarqué doit être : robuste, simple, fiable, fonctionnel, sûr, tolérant aux fautes, autonome. 2. Constitution Pour concevoir un système embarqué "intelligent", il existe deux solutions principales : des architectures existantes : basées autour d un processeur ou d un microcontroleur ; des architectures dédiées : basées autour de composants logiques programmables (FPGA 1 ou ASIC 2 ) Architecture à processeur / microcontroleur Les processeurs sont des unités de calculs séquentiels précablées. Ces opérations élémentaires sont appelées instructions. Une suite séquentielle d instructions, que l on appelle programme, est alors écrite afin de pouvoir établir la liste des calculs à effectuer pour réaliser la (ou les) tache(s) du système. On utilise plus couramment des microcontroleurs pour les systèmes embarqués, qui intégrent tous les éléments nécessaires au fonctionnement de l unité de calculs (mémoires, entrées/sorties...). Ces composants peuvent également proposer des modules supplémentaires (convertisseurs analogiques-numériques, des gestionnaires de communication...) permettant de faciliter la mise en oeuvre d un système embarqué et de sa communication avec l extérieur. Ils existent d ailleurs un grand large choix de composants de ce type et de fabricants qui intégrent généralement un très (trop) grand nombre de ces modules. Une même entrée-sortie du composants sert alors souvent à plusieurs modules, ce qui les rend inutilisable en même temps pour une même application. Les microcontroleurs intègrent également une gestion d horloge et de plus en plus possèdent leur propre oscillateur interne. Les fréquences actuelles vont de quelques MHz à quelques centaines de MHz. L architecture précablée des microcontroleurs leur confère une facilité de mise en oeuvre gràce à l utilisation de modules déjà existants, en particulier pour tout ce qui concerne les communications inter-systèmes (voir section 4). Ils intègrent également de plus en plus d entrées et sorties analogiques, permettant la récupération d informations provenant de capteurs et la commande de systèmes analogiques. 1. Field Programmable Gate Array 2. Application-Specific Integrated Circuit 4

5 2.2. Architecture à composants logiques Les systèmes à microcontroleurs sont des systèmes basés sur une suite d instructions qui sont exécutées séquentiellement par l unité de calculs. Même si les cadences de fonctionnement de ces composants augmentent de plus en plus, ils restent plus lents que les architectures parallèles que proposent les composants programmables. Les composants logiques programmables (FPGA ou ASIC) sont constitués d un ensemble de portes logiques et de bascules que l on peut interconnecter pour réaliser des fonctions combinatoires ou/et séquentielles plus complexes, pouvant aller jusqu à des machines à état très complexes. Il est alors possible de concevoir sa propre structure logique et ainsi pouvoir réaliser les fonctions nécessaires à l application finale. On parle alors d architecture dédiée à une application particulière, n incluant que les modules indispensables. L approche "schématique" au niveau porte logique ou fonctionnalités de base RTL (Register Transfer Logic) est délaissée pour la conception de ces systèmes complexes au profit d une approche "textuelle", appelée encore description comportementale. On utilise, pour cela, des langages de description de matériel comme le VHDL (Very high speed integrated circuit Hardware Description Language). Il est également possible de modifier le comportement du système en reconfigurant le FPGA dynamiquement, c est à dire en cours d utilisation. On peut ainsi modifier certaines fonctions au gré de l évolution du système controlé. La contrepartie est qu il n existe pas de modules préconçus déjà intégrés dans ces composants. Il est alors nécessaire de les développer soi-même. La phase de développement peut alors en être affectée. Des bibliothèques de fonctionnalités (interface USB, un contrôleur MAC Ethernet...) ont cependant rapidement vues le jour. On appelle ces fonctionnalités des blocs IP (Intellectual Property). Un site de référence pour ces IP est http :// Choix de l architecture Le choix d une architecture à microcontroleur plutôt qu une architecture à composants logiques programmables, ou inversement, est souvent difficile et pourtant crucial pour le reste du développement des systèmes embarqués. Les critères à prendre en compte sont les suivants : le nombre de fonctions à réaliser ; le nombre d entrées-sorties nécessaires ; la vitesse d exécution de ces fonctions ; la consommation électrique ; l aspect temps réel et multitaches. 5

6 De plus en plus de plateformes de développement proposent les deux types de composants sur une même carte. On parle alors de co-design : une partie est developpée sur microcontroleur (communication avec l extérieur par exemple) et l autre partie sur FPGA (traitement de données rapide). 3. Exemples d applications Les domaines dans lesquels on trouve des systèmes embarqués sont de plus en plus nombreux. La liste suivante n est pas exhaustive. Automate programmable industriel, contrôle-commande Electroménager : télévision, four à micro-ondes Distributeur automatique bancaire Métrologie Applications militaires : drones, missiles Télécommunication : box, routeur, pare-feu, serveur de temps, téléphone portable... Transport : automobile, aéronautique... Astronautique : fusée, satellite artificiel, sonde spatiale, etc. 4. Communications Les systèmes embarqués sont souvent des sous-ensembles d un système plus important. Il est alors essentiel de les faire communiquer entre eux pour obtenir le fonctionnement global souhaité. Selon le nombre de systèmes embarqués (ou noeuds) communicants sur une même application, plusieurs choix technologiques de communication peuvent exister : Liaison point à point, lorsque le nombre de noeuds est très faible ; Utilisation d un réseau de terrain. Dans tous les cas, il est nécessaire de mettre en place : un bus de communication : moyen matériel pour transmettre des informations numériques ; un protocole de communication : ensemble de règles permettant de régir des communications sur un réseau (prise de parole d un noeud, arbitrage, gestion des erreurs...). La mise en place d un réseau de terrain ainsi que des protocoles associés n est pas l objet de ce module. Tout ceci sera étudié dans un module annexe. 6

7 4.1. Communication inter-systèmes Il existe plusieurs protocoles de communication pour faire discuter plusieurs systèmes entre eux. On peut citer par exemple : I2C : "Inter Integrated Circuit", développé par Philips ; CAN : "Controller Area Network", développé par Bosch, devenu un standard dans l automobile ; SPI : "Serial Peripheral Interface", développé par Motorola ; Communication avec un ordinateur On peut également vouloir faire communiquer un ordinateur avec des systèmes embarqués, pour récupérer et traiter des données par exemple plus rapidement ou envoyer des ordres. Là encore, plusieurs possibilités s offrent aux développeurs : Communication sans fil : WiFi, BlueTooth... Communication filaire : USB (Universal Serial Bus), RS Exemple : Contrôle de processus Soit le système ci-dessous qui permet de contrôler le moteur d un procédé de fabrication. Ce système est équipé d une LED de visualisation, d un interrupteur et d un bouton d arrêt d urgence Scrutation des entrées On souhaite piloter ce système à l aide d un microcontroleur contenant le programme suivant : 1 INITIALISATION DU COMPOSANT 2 3 BOUCLEINFINIE 4 SI (URGENCE = 1) 5 LED = 1 ; 6 MOTEUR = 0 ; 7 SINON 8 SI (MARCHE = 1) 9 LED =!LED ; 10 MOTEUR = 1 ; 11 SINON / / on s t o p p e t o u t 12 LED = 0 ; 13 MOTEUR = 0 ; 14 t e m p o r i s a t i o n ( 1 ) ; 15 FINBOUCLE Cette solution n est pas satisfaisante. Certains évènements peuvent avoir des répercussions graves (humaines, économiques, écologiques) s ils ne sont pas pris en compte au plus vite. Ici, le bouton d arrêt d urgence n est scruté que toutes les secondes Entrées sur interruption L autre possibilité pour gérer des évènements extérieurs est d utiliser un mode dit par interruption. Chaque périphérique souhaitant interagir avec le microcontroleur sera relié à une broche spécifique dite entrée d interruption et sa demande sera alors prise en compte instantanément. Le programme principal sera interrompu pour exécuter une fonction courte et spécifique au périphérique demandeur (lecture d une touche sur le clavier, mise en sécurité du systèmes après appui sur le bouton d arrêt d urgence...) 7

8 Cette gestion plus précise des évènements nécessite cependant une structure matérielle spécifique. Tous les microcontroleurs ne sont pas capables de gèrer des interruptions. Au contraire, d autres sont capables de gérer plusieurs niveaux de priorité dans les interruptions et proposent un grand nombre d entrée spécifique d interruption Systèmes, tâches et évènements Un système est caractérisé par : sa relation entrées-sorties son temps de réponse Tout système embarqué pourra être découpé en un certains nombres de tâches spécifiques à exécuter selon un ordre particulier. Certains évènements doivent également être pris en compte dès qu ils arrivent (arrêt d urgence par exemple) et doivent exécuter des tâches plus prioritaires que d autres. Gestion de tâches : priorité ordonnancement Gestion d évènements (indiquant l évolution d un système) : synchrones asynchrones (non prédictibles) - interruptions Selon la complexité du systèmes, on peut voir apparaitre un certains nombres de tâches et d évènements extérieurs susceptibles d interrompre le programme initial. Si ce nombre de taches devient trop important, il est difficile de prévoir leur ordonnancement et les interactions possibles entre elles et les évènements. Il peut également arriver que certaines tâches doivent s exécuter en parallèle Vers des systèmes d exploitation temps réels et multitaches Les systèmes embarqués devenant de plus en plus complexes à programmer, il est souvent difficile de concevoir la partie logicielle sur la base d une boucle infinie et d une gestion des interruptions. De plus en plus de concepteurs adoptent alors un système d exploitation, offrant différents services permettant une meilleure gestion de la complexité du logiciel embarqué. Un système d exploitation offre ainsi différents services pour mieux appréhender cette complexité : apport du multitâche : une application monolithique est divisée en une somme de tâches coopératives (système multitâche) ; maîtrise des contraintes temporelles : système temps réel, qui doit satisfaire des contraintes explicites (bornées) de temps de réponse ; développement de pilotes de périphérique (driver) simplifié pour pouvoir avoir accès aux accélérateurs matériels ; système de fichiers. 8

9 GEII - MC-II2 TP 1 Programmation en C des PIC Objectifs Comprendre les mécanismes de compilation et de gestion des variables sur un système embarqué Savoir utiliser des bibliothèques de fonctions Savoir créer et utiliser ses propres bibliothèques de fonctions 1. Architecture des PIC16F

10 2. Du C vers l assembleur - la compilation L utilisation d un compilateur C facilite la production de code pour les applications embarquées. L écriture de ce type d applications reste cependant très différente de l écriture d un programme pour station de travail (module II1), en raison notamment : de la faible quantité de mémoire de programme disponible ; de la faible quantité de mémoire de données disponible ; des ressources limitées (vitesse d exécution entre autre). Mais les systèmes embarqués sont cependant connus pour avoir une très grande réactivité aux sollicitations et évènements extérieurs. EXERCICE 1.1 Q Créer un projet TP1 en sélectionnant un microcontroleur du type PIC16F690. Créer un code source exo1.c Q Compiler le code. Q A quoi correspond l espace mémoire RAM? A quoi correspond l espace mémoire Flash? Quelle place occupe le programme de base? 2.1. Les variables et les constantes Constantes Il est possible de définir des données constantes par l utilisation de la directive de pré-processeur suivante : 1 # d e f i n e NOM_CONSTANTE Variable entière EXERCICE 1.2 Q Ajouter la définition et l initialisation (non nulle) d une variable de type int au programme précédent. Compiler le code. Q Quelle place occupe le programme de base? Combien d octets sont-ils utilisés en mémoire RAM? Q Ajouter une seconde variable de type int. Combien d octets sont-ils utilisés en mémoire RAM à présent? Que pouvez-vous en conclure sur la place occupée par une variable de type int en RAM? Q Réécrire cet exemple en langage assembleur. Q Il est possible d accèder au code compilé par XC8 en allant dans le menu Window / Output / Disassembly Listing File. Le code obtenu est-il cohérent par rapport à celui que vous avez écrit? A quoi correspondent les valeurs de la première colonne au niveau des instructions du code obtenu? Q Que pouvez-vous dire du code obtenu par rapport au code écrit précédemment en assembleur? Variable caractère EXERCICE 1.3 Q Remplacer la définition et l initialisation (non nulle) de la variable de type int par une variable du type char dans le programme précédent. Compiler le code. Q Quelle place occupe le programme de base? Combien d octets sont-ils utilisés en mémoire RAM? Q Le programme assembleur obtenu est-il différent de celui de l exercice précédent? Q Ajouter une seconde variable de type char. Combien d octets sont-ils utilisés en mémoire RAM à présent? Que pouvez-vous en conclure sur la place occupée par une variable de type char en RAM? Q Comment écrire la même définition en binaire? en hexadécimal? Cela a-t-il un impact sur le code source résultant? 10

11 2.1.4 Variable réelle EXERCICE 1.4 Q Remplacer la définition et l initialisation (non nulle) de la variable de type char par une variable du type double dans le programme précédent. Compiler le code. Q Quelle place occupe le programme de base? Combien d octets sont-ils utilisés en mémoire RAM? Q Le programme assembleur obtenu est-il différent de celui de l exercice précédent? Q Ajouter une seconde variable de type double. Combien d octets sont-ils utilisés en mémoire RAM à présent? Que pouvez-vous en conclure sur la place occupée par une variable de type double en RAM? Résumé sur les variables EXERCICE 1.5 Q Recopier et remplir le tableau suivant (on suppose que l on travaille en entier non signé) : Type de variable Taille en bits Taille en octets Valeur min Valeur max char int double Q Quel est le format initial des données sur les microcontroleurs PIC16F ou 18F? Quel est alors le type de données en C le plus proche des données du microcontroleur? 2.2. Les conditions logiques Il est également possible de faire des tests sur certaines variables pour modifier l ordre et la séquence des instructions à exécuter et ainsi pouvoir prendre certaines décisions en fonction de la valeur de certaines entrées du micro-controleur. EXERCICE 1.6 Q Ecrire un programme en assembleur qui initialise une variable à une valeur non nulle et qui teste si cette variable vaut une certaine valeur. Si cette variable est égale à la valeur testée, alors elle réinitialise cette variable à 0, sinon il ne se passe rien. Combien de place prendrait ce programme en mémoire? Q Ecrire ce même programme en C et compilez-le. Le code assembleur obtenu est-il similaire à celui que vous avez écrit à la question précédente? Quelle place prend-il en mémoire? Q Toutes les lignes du code désassemblé sont-elles utiles? Que pouvez-vous en conclure quand à l utilisation du langage C pour l écriture de programme sur microcontroleur? 2.3. Les boucles itératives Il peut également être nécessaire de répéter un certains nombres de fois une certaine action ou suite d instructions. Pour cela, on utilise des boucles itératives. EXERCICE 1.7 Q Quels sont les 3 types de boucles itératives que vous connaissez? Faites leur organigramme Compteur EXERCICE suite Q Ecrire le code assembleur d une boucle itérative permettant d exécuter 10 fois un sous-programme action. 11

12 En langage C, on écrira ceci de cette façon : 1 char a, b ; 2 void a c t i o n ( ) { 3 b = b 2 ; 4 } 5 i n t main ( void ) { 6 b = 0 ; 7 8 f o r ( a = 0 ; a < 1 0 ; a ++){ 9 a c t i o n ( ) ; 10 } return 0 ; 13 } Dans cette boucle, la variable a joue le rôle d un compteur variant de 0 à 9, ce qui donne 10 itérations de action(). EXERCICE suite Q Noter l utilisation ici de variables globales. Cela a-t-il un impact sur le code résultant? Aurait-on pu faire autrement? Q Quelle place utilise ce programme en mémoire? Décompteur Cependant, le jeu d instruction du PIC incite à coder ces boucles sous forme descendante, en mettant à profit l instruction decfsz pour obtenir un programme très efficace. Le modèle en C pourrait s écrire comme ci-dessous : 1 char a, b ; 2 void a c t i o n ( ) { 3 b = b 2 ; 4 } 5 i n t main ( void ) { 6 b = 0 ; 7 8 f o r ( a = 1 0 ; a > 0 ; a ){ 9 a c t i o n ( ) ; 10 } return 0 ; 13 } EXERCICE suite Q Le code désassemblé de ce programme utilise-t-il l instruction decfsz? Q Quelle place utilise ce programme en mémoire? Est-il moins long que le précédent? Que pouvezvous en conclure quand à l utilisation du langage C pour l écriture de programme sur microcontroleur dans le cas de boucles itératives? 12

13 3. Utilisation de bibliothèques XC8 est accompagné de bibliothèques de fonctions précompilées dont les définitions sont réparties dans divers fichiers d en-tête.h. La documentation de ces fonctions se trouve dans le fichier MPLAB-XC8-UserGuide.pdf. Une seconde documentation est également disponible pour les bibliothèques des PIC18F dans le fichier MPLAB- XC8-P18-Librairies.pdf Bibliothèque de base - xc.h La bibliothèque <xc.h> est incluse dans chaque source en langage C que vous écrirez à l aide du compilateur XC8, quelque soit le microcontroleur ciblé. C est une bibliothèque générique qui inclue l ensemble des définitions et des macros utilisables sur la cible microcontroleur choisi en début de projet. EXERCICE 1.8 Q Quel est le prototype de la fonction delay_ms? A quoi sert le paramètre attendu par cette fonction? Quelles sont les autres fonctions du même type? A quoi sert l instruction de pré-processeur _XTAL_FREQ? Q Ecrire un programme qui fait appel à cette fonction et compilez-le. Q Comment a été remplacé l appel à cette fonction dans le code désassemblé? Est-ce la meilleure façon de réaliser une temporisation? Quelle est l autre possibilité? Que fait-elle intervenir? Q Quelle place occupe le programme de base? Combien d octets sont-ils utilisés en mémoire RAM? 3.2. Bibliothèque standard - stdlib.h Le compilateur XC8 permet également d utiliser des bibliothèques standard, redéfinies pour les microcontroleurs. Ainsi les bibliothèques stdio et stdlib sont disponibles et utilisables. EXERCICE suite Q Donner le prototype de la fonction permettant de convertir un entier vers une chaine de caractère itoa. Q Ecrire un programme qui fait appel à cette fonction et compilez-le. Q Comment a été remplacé l appel à cette fonction dans le code désassemblé? Quelle place occupe le programme de base? Combien d octets sont-ils utilisés en mémoire RAM? 3.3. Bibliothèque de math - math.h Il est également possible d importer d autres bibliothèques comme par exemple la bibliothèque de math. EXERCICE suite Q Quels types de fonctions retrouve-t-on dans cette bibliothèque? Donner le prototype de la fonction permettant de calculer le sinus d un nombre. Q Ecrire un programme qui fait appel à cette fonction et compilez-le. Q Comment a été remplacé l appel à cette fonction dans le code désassemblé? Quelle place occupe le programme de base? Combien d octets sont-ils utilisés en mémoire RAM? 3.4. Conclusion EXERCICE suite Q Que pouvez-vous conclure quant aux avantages et inconvénients de l utilisation de bibliothèque dans un programme pour système embarqué? 13

14 4. Création de ses propres bibliothèques L utilisation du langage C pour la programmation de systèmes embarqués permet également la création de bibliothèques propres à l application développée. Il est alors possible de structurer l organisation des fonctions dans différents sous-ensembles de fichiers afin d une part alléger le code principal de l application et d autre part permettre une réutilisation rapide pour les applications futures. Pour cela, il faut créer deux types de fichiers : un fichier d en-tête (extension *.h) ; un fichier source (extension *.c) Fichiers header (*.h) Dans le fichier dit d en-tête ou header en anglais, qui porte l extension *.h, on retrouve : la définition des différentes constantes ; les prototypes des fonctions (type de retour, nom de la fonction et paramètres d entrée). Pour pouvoir utiliser une bibliothèque, ce fichier doit impérativement être fourni. Il permet à l utilisateur de connaitre les paramètres d entrée attendus par les fonctions ainsi que leur type de retour Fichier source (*.c) / fichiers objet (*.o) En plus d être déclarées dans le fichier header, les fonctions doivent être définies. La définition d une fonction consiste en l écriture du code permettant d obtenir le résultat souhaité. Celle-ci est faite dans un fichier source portant l extension *.c et portant le même nom que le fichier header associé. Il est souvent préférable de ne pas divulguer ce fichier source, soit pour éviter que des utilisateurs modifient ces codes et endommagent le matériel associé, soit pour des raisons de confidentialité du code (propriété intellectuelle, commercialisation). L étape de compilation génère un fichier objet (extension *.o) à partir de ce fichier source. Ce type de fichier est compilé et ne permet alors pas d accéder à la source des fonctions tout en garantissant l utilisation de la bibliothèque ainsi créée. 14

15 GEII - MC-II2 TP 2 Constitution d un système embarqué (PIC16F) Objectifs Configurer et utiliser les modules du PIC16F690 en langage C Réaliser des programmes simples pour système embarqué Chercher les informations dans une documentation technique Il est rappelé ici le fonctionnement de la carte d étude basée sur un PIC16F690. La carte est alimentée via le dispositif PICKIT2 de Microchip, à partir du connecteur USB. Elle comporte un microcontrôleur PIC16F690, 8 LEDs, 2 boutons poussoirs, deux interrupteurs, un potentiomètre et une photorésistance. Elle est prévue pour fonctionner jusqu à une cadence de 8 MHz. Les composants sont affectés aux ports d entrées/sorties de la façon suivante : LED0 à LED7 : RC0 à RC7 ; K1, K2 : RB6, RB7 (interrupteurs) ; BP1, BP2 : RB4, RB5 (boutons poussoirs) ; potentiomètre : RA4 (entrée analogique AN3) ; photorésistance : RA2 (entrée analogique AN2). 1. Utilisation des registres Les registres sont des espaces mémoire de 8 bits chacun permettant la gestion de certains modules du microcontroleur (ADC, PWM, Timers...) ou l interaction avec l environnement extérieur (port d entrées-sorties). Pour pouvoir modifier la valeur d un registre, il existe deux possibilités : le chargement ou la récupération de l ensemble du registre ; le changement bit à bit. Gràce à la bibliothèque du compilateur XC8, tous les registres sont accessibles via leur nom, tel qu il apparait dans la documentation constructeur du composant. Pour pouvoir écrire sur le port A par exemple, il suffira d écrire : 1 PORTA = 0 b ; / / en b i n a i r e 2 PORTA = 0 x29 ; / / en h e x a d e c i m a l Pour pouvoir récupérer la valeur du registre STATUS par exemple, il suffira d écrire : 1 char c ; 2 c = STATUS ; Il est également possible d affecter une valeur à un seul bit. Pour cela, il faut ajouter le terme "bits" à la fin du nom du registre auquel on souhaite accèder, et ajouter le nom du bit souhaité séparé par un point. Pour pouvoir mettre à un le bit 2 du port A par exemple, il suffira d écrire : 1 PORTAbits. RA2 = 1 ; Pour pouvoir récupérer la valeur du bit Z du registre STATUS par exemple, il suffira d écrire : 1 char c ; 2 c = STATUSbits. Z ;

16 2. Configuration du microcontroleur 2.1. Registre de configuration Afin de garantir la parfaite compatibilité du microcontroleur avec l application développée, ces composants intègrent un registre de configuration spécifique. L état de ces registres est pris en compte uniquement au démarrage du microcontroleur et ne peut être modifié en cours de programme. Ces registres déterminent les modes de fonctionnement du composant. Parmi les modes de fonctionnement possible, on retrouve : le choix de l horloge principale (oscillateur interne, oscillateur RC, oscillateur rapide, quartz) ; l utilisation du Watchdog ; l utilisation de la broche de réinitialisation (MCLR) ; la possibilité de protéger les codes... Pour plus de détails, référez-vous à la section "Configuration Bits" du chapitre "Special Features of the CPU" de la documentation technique du composant. Sous MPLABX, pour accèder à la configuration de ces bits, il faut aller dans Window / PIC Memory Views / Configuration Bits. Une fenêtre s ouvre alors et vous propose de modifier la valeur de chacun des paramètres énoncés précédemment Choix de l horloge Sur certains microcontroleurs, il est également possible de choisir la fréquence de l horloge d exécution des instructions. Il est possible de choisir : un oscillateur externe (OSC1 - OSC2) ; l oscillateur interne (dont la fréquence initiale est sélectionnée à l aide des registres de configuration précédents). Il est parfois possible de choisir plus précisément la fréquence de sortie de l oscillateur interne (voir schéma suivant). Il arrive également que le microcontroleur soit équipé de deux oscillateurs internes : un oscillateur rapide (de l ordre de la dizaine de MHz), pour pouvoir exécuter des instructions à un rythme compatible avec l application ; un oscillateur lent (de l ordre de la dizaine de khz), moins gourmand en énergie, réservé en particulier au phase de mise en veille de l application. La configuration de l horloge se fait via le registre OSCCON. 16

17 3. Utilisation des entrées / sorties numériques EXERCICE 2.1 Q Quels sont les registres liés à l utilisation des ports d entrée/sortie? A quoi servent-ils? A quelle valeur faut-il les initialiser par rapport à la carte d étude? 3.1. Programme simple On souhaite afficher une valeur de 8 bits sur les 8 LED disponibles sur la carte. La valeur sera définie comme une constante. On rappelle que le programme d un système embarqué ne doit jamais s arrêter. EXERCICE suite Q Ecrire et tester ce programme sur la carte d étude Mise en place de fonctions Afin de simplifier l écriture du programme principale, nous allons créer plusieurs fonctions, toutes regroupées dans une bibliothèque monpic EXERCICE suite Q Ecrire une fonction initpic() dans une bibliothèque monpic qui permet d initialiser la direction des entrées-sorties de la carte. Q Ecrire des fonctions toutallumer() et touteteindre() qui permettent d allumer ou d éteindre toutes les LED Clignotement des LED EXERCICE suite Q Faire l organigramme d un programme permettant de faire clignoter une des LED avec une période de 1 s. Q Ecrire ce programme en C et tester-le. Q Ajouter la possibilité de bloquer le clignotement à l aide de l interrupteur K1. 17

18 4. Utilisation des entrées analogiques Le PIC16F690 dispose d un ADC (Analogic Digital Converter) à 12 voies, convertissant sur 10 bits. Sur la carte d étude, seules les entrées AN2 et AN3 sont utilisées et connectées respectivement à un potentiomètre et une photorésistance. EXERCICE Mise en oeuvre d un ADC Q Quels sont les registres associés au convertisseur analogique numérique? A quoi servent-ils? Q Faire l organigramme d un programme qui initialise l ADC sur la voie AN2, permet de faire une acquisition sur cette voie et affiche les poids forts du résultat sur les LED. Q Ecrire le programme en C et tester-le. Q Modifier le programme précédent pour que l utilisateur puisse choisir la voie d entrée à l aide de l interrupteur K1. Tester votre programme. 18

19 5. Utilisation d une sortie modulée (PWM ou MLI) La fonction PWM (Pulse Width Modulation = modulateur de largeur d impulsion) est souvent mise en oeuvre pour le réglage proportionnel d organes présentant une certaine inertie (moteurs par exemple) ou associés à des récepteurs à temps de réponse important (vision humaine par exemple). Un signal rectangulaire de période fixée est produit avec un rapport cyclique pouvant être réglé. La fonction PWM des PIC 16F690 est la combinaison de 2 périphériques : le timer TMR2 (commandé par l horloge interne) ; le comparateur CCP1 (Capture Compare PWM module). Le timer va servir à générer un signal de modulation de forme triangulaire (compteur binaire) qui fixe la fréquence (ou période) du signal de sortie. Le comparateur va en permanence comparer ce signal de modulation à un valeur de référence permettant de fixer le rapport cyclique du signal de sortie. EXERCICE Mise en oeuvre d un PWM Q Sur quelle broche du composant se trouve la sortie CCP1 du comparateur? Quel composant de la carte est associé à cette broche? Q Quelles sont les valeurs que peut prendre le prédiviseur du TMR2? Quel registre et quels bits dans ce registre permettent de configurer la valeur du prédiviseur du TMR2? Le post-diviseur est-il utilisé dans le mode PWM? Q Comment peut-t-on règler la période du signal de sortie? Donner la formule permettant d obtenir la période du signal de sortie. Quelles sont les valeurs minimale et maximale de période que l on peut atteindre avec ce microcontroleur si on utilise une fréquence d oscillation de 8 MHz? Avec une fréquence de 31 khz? Q Quels registres et quels bits dans ces registres permettent de règler le rapport cyclique? Donner la formule permettant d obtenir le rapport cyclique du signal de sortie. Q Faire l organigramme de la configuration du module PWM. On souhaite à présent pouvoir mettre en oeuvre un PWM pour alimenter une LED et en faire varier sa luminosité. Le rapport cyclique sera controlé par le potentiomètre. Q Comment doit être choisie la fréquence du signal à appliquer sur la LED? Qu est-ce qui impose ces différentes contraintes? Q Ecrire et tester le programme en C. 19

20 GEII - MC-II2 TP 3 Migration vers les PIC18F Objectifs Découvrir une nouvelle architecture de microcontroleur Utiliser certains modules des PIC18F 1. PIC18F - un microcontroleur dédié au C 1.1. Architecture du PIC18F2520

21 Il n y a pas une grande différence dans l architecture globale des microcontroleurs de la famille 18F par rapport à celle des 16F. On retrouve les mêmes types d espace mémoire, d entrées-sorties et de modules. Par contre, les PIC18F possèdent un jeu d instructions plus étendu que les PIC16F : 75 instructions pour le PIC18F contre 35 seulement pour les PIC16F. Ce nouveau jeu d instructions permet un passage vers l assembleur plus optimisé que dans le cas des PIC16F, certaines fonctions étant alors déjà précablées dans l unité de calcul. Par exemple, sur les PIC16F, seule l instruction DECFSZ existe pour décrémenter et tester si une variable vaut 0. Dans la version PIC18F, trois autres fonctions ont vu leur apparition : DECFSNZ (décrémente et teste si une variable n est pas nulle), INCFSZ (incrémente et teste si une variable est nulle) et INCFSNZ (incrémente et teste si une variable est non nulle) Carte d étude basée sur un PIC18F2520 Il est rappelé ici le fonctionnement de la carte d étude basée sur un PIC18F2520. La carte est alimentée via le port USB. Elle comporte un micro-contrôleur PIC18F2520, 6 LEDs, 3 boutons poussoirs, 2 interrupteurs, un potentiomètre, une photorésistance et un capteur de température. Elle est prévue pour fonctionner jusqu à une cadence de 8 MHz (oscillateur interne) mais peut monter à 32 MHz par utilisation d une PLL interne. La communication avec la carte et la programmation du PIC se font par l intermédiaire d une liaison série (RS-232). Pour cela, un programme nommé bootloader est déjà présent dans le PIC. Il permet d établir la communication série avec un logiciel de communication (type Tiny Bootloader). Les composants sont affectés aux ports d entrées/sorties de la façon suivante : élément broche élément broche élément broche analog LED1 RC2 SW1 RC0 Pot RA0 AN0 LED2 RA3 SW2 RB3 Photo RA1 AN1 LED3 RB4 Temp RA2 AN2 LED4 RB5 BP1 RB0 LED5 RB6 BP2 RB1 HP RC1 LED6 RB7 BP3 RB2 2. Utilisation des entrées / sorties numériques EXERCICE Clignotement d une LED Q Créer un nouveau projet TP3 et créer un nouveau fichier source exo1.c. Vous choisirez un composant de type PIC18F2520 et le simulateur comme outil de débuggage. Q Quel est l espace mémoire disponible pour le programme et pour les données sur le PIC18F2520? Q Ecrire une bibliothèque monpic, contenant un fichier monpic.h et monpic.c regroupant l ensemble des définitions associées à la carte d étude. Ecrire une fonction initpic() dans cette bibliothèque qui permet d initialiser la direction des entrées-sorties de la carte. Q Reprendre le code en C de l exercice 2.1 du TP2 sur le clignotement d une LED. Compiler ce programme et tester-le. Q Constatez-vous un changement sur le code désassemblé obtenu par rapport à l exercice 2.1 du TP2? EXERCICE Boucle itérative / compteur Q Reprendre le code en C de l exercice 1.7 du TP1 sur l utilisation de boucle itérative. Compiler ce programme et tester-le. Q Constatez-vous un changement sur le code désassemblé obtenu par rapport à l exercice 1.7 du TP1? 21

22 3. Utilisation des entrées analogiques Le PIC18F2520 dispose d un ADC (Analogic Digital Converter) à 10 voies, convertissant sur 10 bits. Sur la carte d étude, la voie AN0 est connectée à un potentiomètre ; la voie AN1 à une photodiode ; la voie AN2 à un capteur de température. L utilisation de l ADC sur les PIC18F est, comme sur la famille 16F, associée à des registres permettant de controler les opérations effectuées par le module ADC (ADCON0), de configurer les broches utilisées (ADCON1) et de configurer l horloge utilisée par le convertisseur et la justification du résultat (ADCON2). Le résultat est ensuite obtenu dans les registres ADRESL et ADRESH. EXERCICE ADC Q Pourquoi a-t-on besoin de deux registres pour stocker le résultat de la conversion? Comment sera représenté le résultat sur ces registres selon que l on justifie à droite ou à gauche le résultat? Q Quelles sont les étapes à suivre pour configurer l ADC sur le PIC18F2520? 3.1. Utilisation de la bibliothèque adc.h On peut également s affranchir de l utilisation de ces registres en passant par la bibliothèque de fonctions associées à l ADC fournie par le compilateur. Cette bibliothèque se nomme adc.h. Il suffit alors d ajouter la ligne suivante dans le code C. 1 # i n c l u d e < p l i b / adc. h> 22

23 EXERCICE ADC - suite Q Quelles sont les fonctions disponibles pour le module ADC sur le PIC18F2520? Donner un bref descriptif de chacune d entre elles. Q Quel type de variable doit-on utiliser pour stocker le résultat complet de la conversion? Comment peut-on faire pour ne garder que les 6 bits de poids fort? Quel type de variable peut-on alors utiliser pour stocker cette information? Q D après l exemple donné d utilisation de l ADC, quelles sont les étapes pour pouvoir obtenir un résultat de conversion? Dans quel ordre doit-on utiliser les fonctions précédemment trouvées? 3.2. Temps d acquisition La conversion d une valeur analogique vers une valeur numérique se déroule en 2 étapes sur les microcontroleurs PIC : l acquisition de la tension à convertir (échantillonneur-bloqueur) et la conversion de cette valeur (convertisseur). Le temps d acquisition total doit alors tenir compte de ces deux étapes. Il est paramétré à l aide des différents registres associés à l ADC. En particulier, il est nécessaire de fixer le paramètres suivants : le temps de conversion par bits (T AD - typiquement de 1 µs), le temps d acquisition (T ACQ ). EXERCICE ADC - suite Q Quelle valeur faut-il donner aux bits ADCS du registre ADCON2 pour obtenir le temps de conversion souhaité à partir d une fréquence interne de 8 MHz? Q Donner la formule permettant de calculer le temps d acquisition. Dans le cas de l entrée AN0 (potentiomètre de 5 kω), quelles sont les valeurs minimale et maximale du temps de charge de C HOLD? Quelle valeur faut-il alors donner aux bits ACQT du registre ADCON2? 3.3. Récupération et affichage de données converties On souhaite à présent réaliser un système qui affiche sur les LED les 6 bits de poids fort de la valeur convertie du potentiomètre. EXERCICE ADC - suite Q A partir de toutes les questions précédentes, indiquer les valeurs à placer dans chacun des registres de configuration de l ADC. En déduire les mots de configuration à placer dans la fonction OpenADC(). Q Ecrire et tester le programme en C. Vous ferez une fonction permettant l affichage de la donnée convertie. Q Ajouter la possibilité de changer de voie par l intermédiaire de SW1 afin de pouvoir sélectionner soit le potentiomètre, soit la photoresistance. 23

24 4. Utilisation d un bus de communication série - USART La plupart des microcontroleurs sont équipés de liaison série de toute sorte pour pouvoir échanger des inforamtions avec d autres systèmes (I2C, CAN, SPI...). L USART (Universal Asynchronous/Synchronous Receiver Transmitter) est une liaison série universelle. Nous allons mettre en place une liaison série de type RS232 entre le PC et la carte d étude afin de pouvoir échanger des messages au format ASCII entre ces deux systèmes. Cette liaison est full-duplex et asynchrone. Dans l exemple suivant, la vitesse sera de bauds, les données seront de 8 bits et la réception continue sans utilisation d interruptions Utilisation de la bibliothèque usart.h Tout comme le module ADC, il est possible de configurer les paramètres de la liaison USART via les registres associés. Mais il existe également une bibliothèque de fonctions fournie par le compilateur. Cette bibliothèque se nomme usart.h. Il suffit alors d ajouter la ligne suivante dans le code C. 1 # i n c l u d e < p l i b / u s a r t. h> EXERCICE USART Q Quelles sont les fonctions disponibles pour le module USART sur le PIC18F2520? Donner un bref descriptif de chacune d entre elles. Q Quelles sont les étapes à suivre pour configurer l USART sur le PIC18F2520? Q A quoi servent les registres SPBRGH et SPBRG? Donner la formule de calcul du BRG (Baud Rate Generator). Que doit valoir cette valeur pour obtenir le taux de transfert souhaité à partir d une fréquence interne de 8 MHz? Q Indiquer les valeurs à placer dans chacun des registres de configuration de l USART pour obtenir le fonctionnement énoncé précédemment. En déduire les mots de configuration à placer dans la fonction OpenUSART() Envoi et réception de données via l USART On souhaite à présent faire un système qui envoie un message d accueil par la liaison RS232 puis renvoie indéfiniment en écho sur la liaison RS232 les données reçues par celle-ci. EXERCICE USART - suite Q Ecrire et tester le programme en C Controle d un système par un PC via RS232 On souhaite maintenant faire un système qui envoie un message d accueil par la liaison RS232 puis en fonction de la donnée reçue (0, 1 ou 2), renvoie la valeur convertie sur la voie 0, 1 ou 2 de l ADC. EXERCICE Communication série Q Ecrire et tester le programme en C. Q Ajouter la possibilité d allumer la LED1 par la donnée a, la LED2 par la donnée b... On rappelle que les données envoyées et reçues sur l USART ne peuvent être que du type caractère (char). 24

25 GEII - MC-II2 TP 4 Gestion du temps / Timers matériel et logiciel Objectifs Mettre en oeuvre des interruptions en langage C sur microcontroleur Faire la différence entre timer matériel et timer logiciel Mettre en oeuvre un timer matériel pour la gestion du temps Mettre en oeuvre un timer logiciel pour la gestion de taches particulières 1. Système d interruption sur les PIC Rappel sur les interruptions sur les PIC16F GIE Global Interrupt Enable EEIE EEprom write complete IE T0IE Timer0 IE INTE INTerrupt pin Enable (RB0) RBIE RB port change IE T0IF Timer0 Interrupt Flag INTF INTerrupt pin Flag RBIF RB port change IF Le vecteur d interruption dans la mémoire programme est à l adresse 0x Interruptions sur les PIC18F La famille des PIC18F gère les interruptions sur le même principe que la famille des PIC16F, mais comme ces PIC18F intègrent plus de périphériques, il y a un plus grand nombre d évènements qui peuvent entrainer une interruption. De plus, il est possible de gérer deux niveaux de priorité, alors qu il n en existe qu un sur les PIC16F. Des registres d extension sont apparus dans les versions PIC18F. Il existe alors 10 registres de contrôle des interruptions sur les PIC18F2520/4520. INTCON contient GIE et PIE (contrôle des périphériques) INTCON2 complément pour les sources INT, RB et TMR0 INTCON3 triplets IE/IF/IP de INT1 et INT2 PIR1,PIR2 registres des bits de requête des périphériques PIE1,PIE2 registres des bits d autorisation des périphériques IPR1,IPR2 registres des bits de priorité des périphériques RCON contient le bit d activation des priorités (IPEN) Lorsque les niveaux de priorité sont activés, deux bits d activation globale se rajoutent : GIEL et GIEH. Les interruptions de haute priorité sont vectorisées vers l adresse 0x0008 et les interruptions de basse priorité vers l adresse 0x Codage des interruptions en C Dans la majorité des cas, les bits spécifiques d autorisation (IE) sont positionnés lors des appels aux fonctions de type Open... (comme OpenTimer0() par exemple). Les bits généraux d autorisation (GIE, IPEN, GIEH ou GIEL) doivent être traités par des affectations telles que INTCONbits.GIE = 1. De même, les bits de signalisation (IF) devront être remis explicitement à zéro dans les routines d interruption.

26 1.3.1 Programme principal 1 # i n c l u d e <p i c 1 8. h> 2 # i n c l u d e < h t c. h> 3 # i n c l u d e < p l i b / t i m e r s. h> 4 # i n c l u d e " monpic. h " 5 6 # d e f i n e TAST 10 7 # d e f i n e TMONO void i n t e r r u p t HighISR ( void ) ; char t _ a s t, t_mono ; i n t main ( void ) { 14 i n i t P I C ( ) ; / / CONFIGURATION DU TIMER0 17 OpenTimer0 ( TIMER_INT_ON & T0_16BIT & T0_SOURCE_INT & T0_PS_1_16 ) ; 18 INTCONbits. GIE = 1 ; while ( 1 ) 21 { 22 i f ( t _ a s t == 0){ / / a s t a b l e 23 t _ a s t = TAST ; 24 / / a c t i o n s a f a i r e p e r i o d i q u e m e n t 25 } i f ( t_mono == 0){ / / m o n o s t a b l e 28 / / f i n de l a p e r i o d e m o n o s t a b l e 29 } 30 i f ( BPo1 == 1){ 31 t_mono = TMONO; 32 / / d e b u t de l a p e r i o d e m o n o s t a b l e 33 } 34 } 35 return 0 ; 36 } Le réglage du timer TMR0 et de son mode d interruption se fait par la fonction préprogrammée OpenTimer0(...) Gestion des interruptions 1 void i n t e r r u p t HighISR ( void ) 2 { 3 i f ( INTCONbits. TMR0IF ) { 4 i f ( t _ a s t!= 0) t _ a s t ; 5 i f ( t_mono!= 0) t_mono ; 6 INTCONbits. TMR0IF = 0 ; 7 } 8 } 26

27 2. Gestion du temps dans les systèmes embarqués Dans les systèmes embarqués, les diverses taches qu accomplit le microcontrôleur doivent souvent respecter une chronologie précise : instant de démarrage, périodes de fonctionnement... La temporisation "classique", au moyen d une boucle, monopolise le processeur, ne permettant pas alors d autres traitements. L utilisation de timers matériels est alors préconisée. Ces fonctions spéciales des microcontroleurs permettent de générer des interruptions à des instants précis. Cependant, ces timers matériels ne sont jamais en nombre suffisant pour faire face à toutes les situations. Il faut alors faire appel à des timers logiciels. 3. Principe des timers logiciels Un timer matériel du microcontrôleur est configuré pour qu il produise une interruption périodique avec une période assez petite, constituant le "quantum de temps". Ce choix est fonction de l application. On définit ensuite autant de variables entières que de temporisations nécessaires. On initialise chacune des variables à une valeur de départ. Chaque interruption du timer est un événement ("tick") traité par un sous-programme d interruption. Les variables de temporisation sont alors décrémentées si elles ne sont pas nulles. Lorsqu une de ces variables atteint 0, le temps programmé est écoulé. Le traitement de cette temporisation est alors actif. 4. Utilisation du timer matériel TMR0 Le timer TMR0 est un compteur paramétrable en mode 8 bits ou en mode 16 bits. Dans tous les cas, le timer TMR0 compte à chaque front montant de l horloge d entrée et produit un débordement lorsqu il repasse de sa valeur maximale à 0. Il génére alors une interruption détectable sur TMR0IF du registre INTCON. L horloge d entrée de ce compteur est également paramétrable : on peut ainsi choisir l oscillateur interne ou une entrée extérieure. On peut également utiliser un pré-diviseur pour réduire la fréquence en entrée du compteur TMR0. La relation qu il existe entre la fréquence des interruptions sur le timer TMR0 et la fréquence d oscillation (dans le cas du choix de l oscillateur interne) est la suivante : f T MR0 = F OS C 4 2 MODE PREDIV (1) 27

28 EXERCICE Configuration du timer TMR0 Q Quelles sont les valeurs minimale et maximale de prédivision disponible pour le timer TMR0? Q Pour une fréquence d oscillation de 2 MHz, quelles sont les fréquences minimale et maximale atteignable en mode 8 bits? En mode 16 bits? Calculer également les périodes équivalentes. Q On choisit pour le TMR0 : un mode de 8 bits, la source interne d horloge à une cadence de 2 Mhz et une prédivision de 16. Quelle sera alors la fréquence des interruptions sur le timer TMR0? Quel registre faut-il modifier pour obtenir une fréquence d oscillation interne de 2 MHz? 4.1. Application de base : astable / monostable Nous allons à présent mettre en oeuvre ce timer en réalisant l équivalent de montages monostables et astables. On souhaite réaliser : un astable d une période d environ 1 seconde (sortie sur la LED1) ; un monostable déclenché sur l appui sur BP2 allumant la LED2 pendant environ 2 secondes. EXERCICE Astable et monostable Q A partir de l oscillateur interne à 2 MHz, quel mode et quelle valeur de prédivision faut-il utiliser pour obtenir le bon fonctionnement de l astable? Quelle est l erreur commise sur la fréquence obtenue par rapport à celle souhaitée dans l énoncé? Q A partir de l oscillateur interne à 2 MHz, quel mode et quelle valeur de prédivision faut-il utiliser pour obtenir le bon fonctionnement du monostable? Les deux applications (astable et monostable) pourront-elles fonctionner en même temps? On reprend la configuration précédente pour le TMR0 : un mode de 8 bits, la source interne d horloge à une cadence de 2 Mhz et une prédivision de 16. Il faut à présent mettre en place des timers logiciels basés sur la référence de temps du timer TMR0 : un pour l astable et un pour le monostable. EXERCICE Astable et monostable - suite Q Quelles sont les valeurs de préchargement à utiliser pour obtenir les périodes d astable et de monostable souhaitées? Quelle est alors l erreur commise sur la fréquence finalement obtenue pour l astable? Q Ecrire et tester le programme en C. 28

29 4.2. Gradateur de LED Basé sur les principes de l astable et du monostable, il est possible de mettre en place un modulateur de largeur d impulsion (ou PWM - signal rectangulaire de rapport cyclique variable). Il sera utilisé pour faire varier l éclat apparent (ou luminosité) d une LED. Pour produire un tel signal, on utilisera un premier timer logiciel (timer_total) pour la période du signal rectangulaire et un second pour la durée à l état haut (timer_on). Le timer_total se relance automatiquement à chaque expiration. Le timer_on n est lancé qu au début de la période timer_total et si sa durée est inférieure à timer_total. La durée de l état haut sera contrôlé par le potentiomètre. EXERCICE 4.3 Q Sur quel principe (vu précédemment) sera basé le timer_total? Le timer_on? Q Quelle fréquence minimale doit avoir le signal de sortie de ce système pour ne pas voir le scintillement de la LED? Q Quelle est la valeur maximale que pourra prendre timer_on si on utilise la valeur convertie du potentiomètre? Que vaut le rapport cyclique en fonction de timer_on et timer_total? Quelle sera alors la valeur de préchargement à associer au timer_total pour que le rapport cyclique maximal soit de 1? Q Quels doivent être alors les paramètres du timer TMR0? Q Ecrire et tester le programme en C qui permet de commander la LED1. Q Ajouter un second PWM logiciel pour la LED2. Les deux systèmes doivent fonctionner en parallèle Clignotants anarchiques On souhaite faire clignoter indépendamment les 6 LEDs disponibles sur la maquette. La durée d allumage et la durée d extinction seront identiques pour chaque diode (rapport cyclique de 0,5). La période de clignotement (somme des temps d allumage et d extinction) est définie avec précision pour chaque diode : LED1 = 1s, LED2 = 3,7s, LED3 = 0,54s, LED4 = 0,22s, LED5 = 1,7s et LED6 = 4,78s. EXERCICE 4.4 Ecrire et tester le programme en C 29

30 GEII - MC-II2 TP 5 Programmation par machine à état Objectifs Programmer une machine à état sur un microcontroleur. 1. La machine à états dans les systèmes numériques Elle constitue un modèle simple et efficace pour construire des programmes multi-tâches de faible ou moyenne complexité. Les programmes ainsi obtenus sont : prévisibles, compréhensibles et compacts. Un programme embarqué pourra contenir plusieurs machines à état indépendantes ou interconnectées, synchronisées entre elles ou non. Une des limitations des machines à état est le nombre de cas maximal à envisager. En effet, pour une machine à N E états et N I entrées de N B bits, le nombre de cas à envisager est N E N I 2 N B. Si ce nombre est trop grand, il vaut mieux s orienter vers des solutions plus puissantes : les systèmes d exploitation multi-tâches. 2. Machine de MOORE et modèle logiciel L une des machines les plus utilisées dans les systèmes séquentiels est la machine dite de Moore. La structure de cette machine est la suivante : Dans une telle machine, la sortie ne dépend que de l état de la machine : elle ne change que lors d un changement d état. Les sorties sont synchrones avec les transitions d état et les fronts d horloge. Une représentation possible des machines de Moore est le diagramme d états. Un exemple est donné ci-après.

31 Chaque cercle représente un état possible de la machine. Les sorties étant fonction exclusivement de l état, leurs valeurs sont indiquées dans les cercles. On passe d un état à un autre s il existe une transition entre ces états, représentée par une flèche. Dans le cas d une machine de Moore (système séquentiel synchrone), le passage d une transition ne peut se faire que lorsque la condition logique associée est vérifiée et en présence d un front montant. Voici un modèle possible de représentation d une machine à états en langage C. La boucle principale doit être exécutée avec une fréquence de répétition suffisante pour prendre en compte les changements des entrées (ici entree). 1 char e t a t = ETAT0 ; 2 while ( 1 ) 3 { 4 i f ( c l k = 0){ 5 c l k = M; 6 7 / / E t a t s 8 switch ( e t a t ) 9 { 10 c ase ETAT0 : 11 i f ( e n t r e e == VAL1) e t a t = ETAT1 ; 12 i f ( e n t r e e == VAL2) e t a t = ETAT3 ; 13 i f ( e n t r e e == VAL3) e t a t = ETAT4 ; 14 break ; 15 c ase ETAT1 : e t c. 16 / / e v e n t u e l l e m e n t d e f a u l t 17 } 18 } 19 / / C a l c u l des s o r t i e s ( Moore ) 20 s o r t i e 1 = ( ( e t a t == ETAT1 ) ( e t a t == ETAT4 ) ) ; } / / f i n b o u c l e p r i n c i p a l e 3. Application à la détection de fronts montants On considère un signal E (représenté par le bouton poussoir BP1) susceptible de changer d état n importe quand. On désire construire une machine d état synchronisée par une horloge qui fournisse une (et une seule) impulsion sur sa sortie (S ) de détection après apparition d un front montant sur E. L horloge associée à la détection de transition sera choisie de manière à éviter les détections de rebonds (période d environ 20 ms réalisée par un timer logiciel et un timer matériel fournissant une période d environ 100 µs). Afin de pouvoir tester ce système, on incrémentera un compteur à chaque front montant sur BP1. La valeur du compteur sera en permanence affichée sur les LED. EXERCICE Détection de fronts montants Q Faire le diagramme d état de la machine décrite ci-dessus. Q Quelle est la configuration à donner au timer TMR0 pour obtenir l horloge souhaitée dans l énoncé? Quelle est la valeur de préchargement à donner au timer logiciel pour pouvoir remplir le cahier des charges? Q Ecrire et tester le programme en C. Q Que se passe-t-il si on diminue la valeur de préchargement précédemment calculée? Si on l augmente? 31

32 4. Automatisme de porte de garage 4.1. Description du système Une porte de garage motorisée comporte un moteur électrique réversible à 2 sens de marche correspondant à la montée ou à la descente. La commande est assurée par un boutonpoussoir unique, BOU qui commande la marche : ouverture lorsque la porte est fermée, fermeture lorsque la porte est ouverte. Deux capteurs de fin de course haut et bas, FH et FB, permettent d arrêter automatiquement le mécanisme. Ils seront simulés par les interrupteurs SW1 et SW2. Deux sorties permettront de commander le moteur : ON_OFF représente l activité : marche si ON_OFF = 1, arrêt sinon ; SENS représente le sens de marche : montée si SENS = 1, descente sinon. Lorsqu une commande est en cours d exécution, le bouton BOU est inopérant. Une LED (ON_LED), clignotant avec une période de 0,5 s, indiquera que la porte est en cours d ouverture ou de fermeture Système sans sécurité EXERCICE Automate Q Faire le diagramme d état de la machine décrite ci-dessus. 3 états A, M et D sont suffisants. Q Décrire le choix de la période de l horloge principale de votre système. Donner alors la configuration du timer TMR0. Q Ecrire et tester le programme en C Système simple Un bouton d arrêt d urgence, URG, permet d arrêter immédiatement le fonctionnement, quel que soit l état du système, à la position où il se trouve ; dans ce cas, après élimination du défaut (URG = 0 ), un appui sur BOU permet de reprendre le mouvement dans le sens précédent. EXERCICE Automate - suite Q Modifier le diagramme d état précédent pour prendre en compte cette nouvelle possibilité. Q Décrire le choix de la période de l horloge principale de votre système. Donner alors la configuration du timer TMR0. Q Modifier le programme en C précédent. Le bouton d arrêt d urgence sera simulé par un boutonpoussoir. 32

MICROCONTROLEURS PIC PROGRAMMATION EN C. V. Chollet - cours-pic-13b - 09/12/2012 Page 1 sur 44

MICROCONTROLEURS PIC PROGRAMMATION EN C. V. Chollet - cours-pic-13b - 09/12/2012 Page 1 sur 44 MICROCONTROLEURS PIC PROGRAMMATION EN C V. Chollet - cours-pic-13b - 09/12/2012 Page 1 sur 44 Chapitre 1 GENERALITES 1 DEFINITION Un microcontrôleur est un microprocesseur RISC (Reduced Instruction Set

Plus en détail

PIC EVAL Dev Board PIC18F97J60

PIC EVAL Dev Board PIC18F97J60 PIC EVAL Dev Board PIC18F97J60 2 TP1 : Prise en main de l environnement de programmation pour la carte PIC EVAL-ANFA Pour répondre aux questions et justifier vos réponses, vous pouvez faire des copies

Plus en détail

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE ARDUINO DOSSIER RESSOURCE POUR LA CLASSE Sommaire 1. Présentation 2. Exemple d apprentissage 3. Lexique de termes anglais 4. Reconnaître les composants 5. Rendre Arduino autonome 6. Les signaux d entrée

Plus en détail

La programmation des PIC en C. Les fonctions, les interruptions.

La programmation des PIC en C. Les fonctions, les interruptions. La programmation des PIC en C Les fonctions, les interruptions. Réalisation : HOLLARD Hervé. http://electronique-facile.com Date : 26 août 2004 Révision : 1.2 Sommaire Sommaire... 2 Introduction... 3 Structure

Plus en détail

Conférence sur les microcontroleurs.

Conférence sur les microcontroleurs. Conférence sur les microcontroleurs. Le microcontrôleur Les besoins et le développement. Vers 1970, pour des calculs (calculatrice). Le premier est le 4004 de Intel, 90K. La technologie. Les 2 principales

Plus en détail

IV- Comment fonctionne un ordinateur?

IV- Comment fonctionne un ordinateur? 1 IV- Comment fonctionne un ordinateur? L ordinateur est une alliance du hardware (le matériel) et du software (les logiciels). Jusqu à présent, nous avons surtout vu l aspect «matériel», avec les interactions

Plus en détail

REALISATION d'un. ORDONNANCEUR à ECHEANCES

REALISATION d'un. ORDONNANCEUR à ECHEANCES REALISATION d'un ORDONNANCEUR à ECHEANCES I- PRÉSENTATION... 3 II. DESCRIPTION DU NOYAU ORIGINEL... 4 II.1- ARCHITECTURE... 4 II.2 - SERVICES... 4 III. IMPLÉMENTATION DE L'ORDONNANCEUR À ÉCHÉANCES... 6

Plus en détail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par

Plus en détail

ANALYSE TRAMEs LIAISON SERIE

ANALYSE TRAMEs LIAISON SERIE ANALYSE TRAMEs LIAISON SERIE 1 Objectifs de ce travail Nous allons étudier dynamiquement la liaison série en utilisant la simulation. La mise en œuvre des liaisons séries simulées et de TestCom est expliquée

Plus en détail

Carte Relais GSM (Manuel Utilisateur)

Carte Relais GSM (Manuel Utilisateur) Carte Relais GSM (Manuel Utilisateur) Carte Relais GSM Introduction Cette carte est une véritable centrale de télécommande et d alarme par GSM. Elle se connecte par un port série à un modem GSM compatible

Plus en détail

Configuration de TCPIPconfig.h

Configuration de TCPIPconfig.h AVANT DE COMMENCER LIRE EN DETAIL L APPLICATION MICROCHIP AN833. (L application MICROCHIP AN1120 est un excellent cours sur le protocole TCP-IP, qu il est indispensable de connaitre avant de fabriquer

Plus en détail

Flowcode - Mode d'emploi

Flowcode - Mode d'emploi Flowcode - Mode d'emploi Sommaire I) Introduction Introduction 4 Nouveautés de la version 2 5 Les microcontrôleurs PIC 5 Support technique 7 II) Pour commencer Concevoir un algorigramme pour un composant

Plus en détail

PROGRAMMATION D'UN MICROCONTRÔLEUR

PROGRAMMATION D'UN MICROCONTRÔLEUR Projet de Physique P6-3 STPI/P6-3/2009 44 PROGRAMMATION D'UN MICROCONTRÔLEUR Etudiants : Pierre HOUSSIN Peng GE Aël GAIN Enseignant-responsable du projet : Faouzi DHAOUADI Date de remise du rapport :

Plus en détail

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE QCM Remarque : - A une question correspond au moins 1 réponse juste - Cocher la ou les bonnes réponses Barème : - Une bonne réponse = +1 - Pas de réponse = 0

Plus en détail

STS SE. FreeRTOS. Programmation réseau WIFI. Programmation réseau. Socket Tcp. FlyPort smart Wi-Fi 802.11 module

STS SE. FreeRTOS. Programmation réseau WIFI. Programmation réseau. Socket Tcp. FlyPort smart Wi-Fi 802.11 module François SCHNEIDER Lycée Victor-Hugo BESANÇON. STS SE FreeRTOS Programmation réseau WIFI Programmation réseau Socket Tcp FlyPort smart Wi-Fi 802.11 module Prérequis : langage C, connaissance réseau : Ip,

Plus en détail

1. PRESENTATION DU PROJET

1. PRESENTATION DU PROJET Bac STI2D Formation des enseignants Jean-François LIEBAUT Denis PENARD SIN 63 : Prototypage d un traitement de l information analogique et numérique (PSoC) 1. PRESENTATION DU PROJET Les systèmes d éclairage

Plus en détail

PRESENTATION RESSOURCES. Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille

PRESENTATION RESSOURCES. Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille PRESENTATION RESSOURCES Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille 1) Introduction, Objectifs et Intentions Le BTS SN (Systèmes Numériques) intègre la formation

Plus en détail

Programmation en langage C d un µcontrôleur PIC à l aide du compilateur C-CCS Sommaire

Programmation en langage C d un µcontrôleur PIC à l aide du compilateur C-CCS Sommaire Programmation en langage C d un µcontrôleur PIC à l aide du compilateur C-CCS CCS Sommaire Généralités sur le langage. 2 Structure d un programme en C.. 3 Les constantes et équivalences.. 4 Les variables...

Plus en détail

Réalisation d un réseau de capteurs de température sans fil basé sur le protocole ZigBee

Réalisation d un réseau de capteurs de température sans fil basé sur le protocole ZigBee Cedric BEAUSSE Mohamed BOUGUERRA Hong Yu GUAN El Ayachi MOKTAD Projet avancé en systèmes embarqués 2006 / 2007 Réalisation d un réseau de capteurs de température sans fil basé sur le protocole ZigBee Sommaire

Plus en détail

Le multiplexage. Sommaire

Le multiplexage. Sommaire Sommaire Table des matières 1- GENERALITES... 2 1-1 Introduction... 2 1-2 Multiplexage... 4 1-3 Transmission numérique... 5 2- LA NUMERATION HEXADECIMALE Base 16... 8 3- ARCHITECTURE ET PROTOCOLE DES RESEAUX...

Plus en détail

Extrait des Exploitations Pédagogiques

Extrait des Exploitations Pédagogiques Pédagogiques Module : Compétitivité et créativité CI Première : Compétitivité et créativité CI institutionnel : Développement durable et compétitivité des produits Support : Robot - O : Caractériser les

Plus en détail

Transmission d informations sur le réseau électrique

Transmission d informations sur le réseau électrique Transmission d informations sur le réseau électrique Introduction Remarques Toutes les questions en italique devront être préparées par écrit avant la séance du TP. Les préparations seront ramassées en

Plus en détail

Hubert & Bruno Lundi 12 octobre 2009 SAINT-QUENTIN (02)

Hubert & Bruno Lundi 12 octobre 2009 SAINT-QUENTIN (02) Hubert & Bruno Lundi 12 octobre 2009 SAINT-QUENTIN (02) Ne rien livrer au hasard, c est économiser du travail Pont Sainte Maxence(O C est quoi USB? Comment ça marche? Les standards? La technique en détail

Plus en détail

La conversion de données : Convertisseur Analogique Numérique (CAN) Convertisseur Numérique Analogique (CNA)

La conversion de données : Convertisseur Analogique Numérique (CAN) Convertisseur Numérique Analogique (CNA) La conversion de données : Convertisseur Analogique Numérique (CAN) Convertisseur Numérique Analogique (CNA) I. L'intérêt de la conversion de données, problèmes et définitions associés. I.1. Définitions:

Plus en détail

Traitement de données

Traitement de données Traitement de données Présentation du module TINI Présentation du module : Le module Tini se décline en plusieurs versions, il est constitué d une carte d application et d un module processeur : Les modules

Plus en détail

Les systèmes embarqués Introduction. Richard Grisel Professeur des Universités Université de Rouen Nacer Abouchi Professeur ESCPE Lyon

Les systèmes embarqués Introduction. Richard Grisel Professeur des Universités Université de Rouen Nacer Abouchi Professeur ESCPE Lyon Les systèmes embarqués Introduction Richard Grisel Professeur des Universités Université de Rouen Nacer Abouchi Professeur ESCPE Lyon Introduction aux systèmes embarqués Définition. Caractéristiques d

Plus en détail

PIC : COURS ASSEMBLEUR

PIC : COURS ASSEMBLEUR PIC : COURS ASSEMBLEUR I) Fonctions de base d une machine informatique Contenir de façon permanente les tâches à exécuter (mémoire programme) en ROM ou sur support magnétique. Contenir de façon temporaire

Plus en détail

SYSTEME DE PALPAGE A TRANSMISSION RADIO ETUDE DU RECEPTEUR (MI16) DOSSIER DE PRESENTATION. Contenu du dossier :

SYSTEME DE PALPAGE A TRANSMISSION RADIO ETUDE DU RECEPTEUR (MI16) DOSSIER DE PRESENTATION. Contenu du dossier : SYSTEME DE PALPAGE A TRANSMISSION RADIO ETUDE DU RECEPTEUR (MI16) DOSSIER DE PRESENTATION Contenu du dossier : 1. PRESENTATION DU SYSTEME DE PALPAGE A TRANSMISSION RADIO....1 1.1. DESCRIPTION DU FABRICANT....1

Plus en détail

Document de formation pour une solution complète d automatisation Totally Integrated Automation (T I A) MODULE A5 Programmation de la CPU 314C-2DP

Document de formation pour une solution complète d automatisation Totally Integrated Automation (T I A) MODULE A5 Programmation de la CPU 314C-2DP Document de formation pour une solution complète d automatisation Totally Integrated Automation (T I A) MODULE A5 Document de formation T I A Page 1 sur 23 Module A5 Ce document a été édité par Siemens

Plus en détail

VIII- Circuits séquentiels. Mémoires

VIII- Circuits séquentiels. Mémoires 1 VIII- Circuits séquentiels. Mémoires Maintenant le temps va intervenir. Nous avions déjà indiqué que la traversée d une porte ne se faisait pas instantanément et qu il fallait en tenir compte, notamment

Plus en détail

Programmation C. Apprendre à développer des programmes simples dans le langage C

Programmation C. Apprendre à développer des programmes simples dans le langage C Programmation C Apprendre à développer des programmes simples dans le langage C Notes de cours sont disponibles sur http://astro.u-strasbg.fr/scyon/stusm (attention les majuscules sont importantes) Modalités

Plus en détail

Les liaisons SPI et I2C

Les liaisons SPI et I2C DAMÉCOURT BENJAMIN AVRIL 28 Liaisons synchrones Les liaisons SPI et I2C Face arrière d un imac : trois ports USB, un port Firewire 4 et un port Firewire 8 CHRONOLOGIE ANNÉES 7 La liaison SPI et la création

Plus en détail

Alcatel OmniPCX Enterprise TSC-IP V1 (4098RE)

Alcatel OmniPCX Enterprise TSC-IP V1 (4098RE) Alcatel OmniPCX Enterprise TSC-IP V1 (4098RE) NOTE : Les spécifications Produit contenues dans ce document peuvent évoluer sans information préalable. Les produits et services décrits dans ce document

Plus en détail

Architecture des ordinateurs

Architecture des ordinateurs Architecture des ordinateurs Cours 4 5 novembre 2012 Archi 1/22 Micro-architecture Archi 2/22 Intro Comment assembler les différents circuits vus dans les cours précédents pour fabriquer un processeur?

Plus en détail

12 applications pour maîtriser le PICBASIC PB-3B - Gérard GUIHÉNEUF. Elektor-Publitronic ISBN : 978 2 86661 166 8

12 applications pour maîtriser le PICBASIC PB-3B - Gérard GUIHÉNEUF. Elektor-Publitronic ISBN : 978 2 86661 166 8 Sommaire Avant-propos 1. Présentation du module PICBASIC PB-3B 1.1 La gamme PICBASIC fabriquée par Comfile Technology..................... 3 1.2 Principe commun de programmation......................................

Plus en détail

Hiérarchie matériel dans le monde informatique. Architecture d ordinateur : introduction. Hiérarchie matériel dans le monde informatique

Hiérarchie matériel dans le monde informatique. Architecture d ordinateur : introduction. Hiérarchie matériel dans le monde informatique Architecture d ordinateur : introduction Dimitri Galayko Introduction à l informatique, cours 1 partie 2 Septembre 2014 Association d interrupteurs: fonctions arithmétiques élémentaires Elément «NON» Elément

Plus en détail

PIC 16F84. Philippe Hoppenot

PIC 16F84. Philippe Hoppenot Département GEII PIC 16F84 Philippe Hoppenot hoppenot@lsc.univ-evry.fr http://lsc.univ-evry.fr/~hoppenot/presentationfrancaise.html Ce cours sur le PIC est dispensé en licence professionnelle Concepteurs

Plus en détail

Prototypage électronique

Prototypage électronique Prototypage électronique C'est quoi Arduino? Enseignant d'électronique en BTS des Systèmes Électroniques au lycée Cabanis de Brive-la-Gaillarde, j'ai commencé en 2010 à entendre parler d'arduino à gauche

Plus en détail

Cours 1 : Qu est-ce que la programmation?

Cours 1 : Qu est-ce que la programmation? 1/65 Introduction à la programmation Cours 1 : Qu est-ce que la programmation? Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr Université Paris Diderot Paris 7 2/65 1. Sortez un appareil qui peut se rendre

Plus en détail

ASR1 TD7 : Un microprocesseur RISC 16 bits

ASR1 TD7 : Un microprocesseur RISC 16 bits {Â Ö Ñ º ØÖ Ý,È ØÖ ºÄÓ Ù,Æ ÓÐ ºÎ ÝÖ Ø¹ ÖÚ ÐÐÓÒ} Ò ¹ÐÝÓÒº Ö ØØÔ»»Ô Ö Óº Ò ¹ÐÝÓÒº Ö» Ö Ñ º ØÖ Ý»¼ Ö½» ASR1 TD7 : Un microprocesseur RISC 16 bits 13, 20 et 27 novembre 2006 Présentation générale On choisit

Plus en détail

Fiche technique CPU 314SC/DPM (314-6CG13)

Fiche technique CPU 314SC/DPM (314-6CG13) Fiche technique CPU 314SC/DPM (3146CG13) Données techniques N de commande 3146CG13 Type CPU 314SC/DPM Information générale Note Caractéristiques SPEEDBus Technologie SPEED7 24 x DI, 16 x DO, 8 x DIO, 4

Plus en détail

UE Programmation Impérative Licence 2ème Année 2014 2015

UE Programmation Impérative Licence 2ème Année 2014 2015 UE Programmation Impérative Licence 2 ème Année 2014 2015 Informations pratiques Équipe Pédagogique Florence Cloppet Neilze Dorta Nicolas Loménie prenom.nom@mi.parisdescartes.fr 2 Programmation Impérative

Plus en détail

Débuter avec PsoC ou PsoC niveau 0

Débuter avec PsoC ou PsoC niveau 0 Débuter avec PsoC ou PsoC niveau 0 Objectifs : se familiariser avec les circuits PsoC et leur environnement, prendre en main le logiciel et le kit d'évaluation, développer une application simple avec le

Plus en détail

MANUEL UTILISATEUR DU RECEPTEUR HAICOM HI-303MMF

MANUEL UTILISATEUR DU RECEPTEUR HAICOM HI-303MMF MANUEL UTILISATEUR DU RECEPTEUR HAICOM HI-303MMF 1 SOMMAIRE DU MANUEL UTILISATEUR I. LE POSITIONNEMENT PAR GPS..3 II. INTRODUCTION - GPS HAICOM HI-303MMF... 4 III. COMPOSITION DU PACK GPS...5 IV. INSTALLATION

Plus en détail

Programmation en Java IUT GEII (MC-II1) 1

Programmation en Java IUT GEII (MC-II1) 1 Programmation en Java IUT GEII (MC-II1) 1 Christophe BLANC - Paul CHECCHIN IUT Montluçon Université Blaise Pascal Novembre 2009 Christophe BLANC - Paul CHECCHIN Programmation en Java IUT GEII (MC-II1)

Plus en détail

GenIP 30i : Passerelle intelligente dédiée aux applications industrielles les plus critiques

GenIP 30i : Passerelle intelligente dédiée aux applications industrielles les plus critiques GenIP 30i Juillet 2015 GenIP 30i : Passerelle intelligente dédiée aux applications industrielles les plus critiques Gérez vos Alarmes (Voix, SMS, Email, trame TCP) GenIP 30i Supervisez à distance vos équipements

Plus en détail

COMMANDER A DISTANCE LE ROBOT-PONG ETUDE DE LA TELECOMMANDE (2 nde PARTIE)

COMMANDER A DISTANCE LE ROBOT-PONG ETUDE DE LA TELECOMMANDE (2 nde PARTIE) SIN STI2D - Système d'information et Numérique TD TP Cours Synthèse Devoir Evaluation Projet Document ressource COMMANDER A DISTANCE LE ROBOT-PONG ETUDE DE LA TELECOMMANDE (2 nde PARTIE) 1 GESTION DES

Plus en détail

! analyse du fonctionnement

! analyse du fonctionnement Coloreau chaude MT V P1 V MT! Le composant repéré TH1 sur le schéma structurel et une thermistance. Son rôle est de détecter une grandeur physique la température, et de la convertir en une grandeur électrique

Plus en détail

Leçon 1 : Les principaux composants d un ordinateur

Leçon 1 : Les principaux composants d un ordinateur Chapitre 2 Architecture d un ordinateur Leçon 1 : Les principaux composants d un ordinateur Les objectifs : o Identifier les principaux composants d un micro-ordinateur. o Connaître les caractéristiques

Plus en détail

Modules du DUT Informatique proposés pour des DCCE en 2014/2015

Modules du DUT Informatique proposés pour des DCCE en 2014/2015 Modules du DUT Informatique proposés pour des DCCE en 2014/2015 Résumé de l offre : Parmi les 5500 heures d enseignement informatique dispensées au département informatique de l IUT (avec 2880 heures de

Plus en détail

ELP 304 : Électronique Numérique. Cours 1 Introduction

ELP 304 : Électronique Numérique. Cours 1 Introduction ELP 304 : Électronique Numérique Cours 1 Introduction Catherine Douillard Dépt Électronique Les systèmes numériques : généralités (I) En électronique numérique, le codage des informations utilise deux

Plus en détail

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique

Plus en détail

VoIP & Domotique. KITS DOMOTIQUES EnOcean

VoIP & Domotique. KITS DOMOTIQUES EnOcean VoIP & Domotique KITS DOMOTIQUES EnOcean La technologie Enocean Un nouveau standard pour la domotique Présentation La technologie innovante EnOcean fonctionne sans aucune pile et ne nécessite donc absolument

Plus en détail

Introduction à l informatique temps réel Pierre-Yves Duval (cppm)

Introduction à l informatique temps réel Pierre-Yves Duval (cppm) Introduction à l informatique temps réel Pierre-Yves Duval (cppm) Ecole d informatique temps réel - La Londes les Maures 7-11 Octobre 2002 -Définition et problématique - Illustration par des exemples -Automatisme:

Plus en détail

AMICUS 18 (2ème partie) 4) Présentation du logiciel Amicus IDE

AMICUS 18 (2ème partie) 4) Présentation du logiciel Amicus IDE AMICUS 18 (2ème partie) Dans la première partie, nous avions présenté la platine Amicus 18 et nous avions réalisé quelques montages simples. Nous allons découvrir un peu mieux la programmation. Dans la

Plus en détail

Ordinateurs, Structure et Applications

Ordinateurs, Structure et Applications Ordinateurs, Structure et Applications Cours 10, Les interruptions Etienne Tremblay Université Laval, Hiver 2012 Cours 10, p.1 Les interruptions du 8086 Une interruption interrompt l exécution séquentielle

Plus en détail

MultiMedia Board. Système de développement. Manuel utilisateur. pour PIC32MX4

MultiMedia Board. Système de développement. Manuel utilisateur. pour PIC32MX4 MultiMedia Board pour PIC32MX4 Les systèmes de développement sont des outils irremplaçables pour le développement et la programmation des microcontrôleurs. Un choix attentif des composants ainsi que l

Plus en détail

1 Introduction C+ + Algorithm e. languag. Algorigramm. machine binaire. 1-1 Chaîne de développement. Séance n 4

1 Introduction C+ + Algorithm e. languag. Algorigramm. machine binaire. 1-1 Chaîne de développement. Séance n 4 1 Introduction 1-1 Chaîne de développement Algorithm e C+ + Algorigramm e languag e machine binaire Le programme est écrit à l aide de Multiprog sous forme d algorigramme puis introduit dans le microcontrôleur

Plus en détail

Temps Réel. Jérôme Pouiller <j.pouiller@sysmic.org> Septembre 2011

Temps Réel. Jérôme Pouiller <j.pouiller@sysmic.org> Septembre 2011 Temps Réel Jérôme Pouiller Septembre 2011 Sommaire Problèmatique Le monotâche Le multitâches L ordonnanement Le partage de ressources Problèmatiques des OS temps réels J. Pouiller

Plus en détail

Ecran programmable. Testez la différence grâce. à sa puissance, sa rapidité. et ses possibilités réseaux

Ecran programmable. Testez la différence grâce. à sa puissance, sa rapidité. et ses possibilités réseaux Ecran programmable Testez la différence grâce à sa puissance, sa rapidité et ses possibilités réseaux Gamme de Produits Compact & hautement fonctionnel Pouces Couleurs Rétro éclairage 3 Ports série Maitre/

Plus en détail

Manipulations du laboratoire

Manipulations du laboratoire Manipulations du laboratoire 1 Matériel Les manipulations de ce laboratoire sont réalisées sur une carte électronique comprenant un compteur 4-bit asynchrone (74LS93) avec possibilité de déclenchement

Plus en détail

Millenium3 Atelier de programmation

Millenium3 Atelier de programmation Millenium3 Millenium 3 Millenium3 1. Aide en ligne CLSM3... 2 1.1 Présentation de l'atelier de programmation... 2 1.1.1 Présentation de l'atelier de programmation... 2 1.2 Comment débuter avec l'atelier

Plus en détail

Cours 7 : Programmation d une chaîne d acquisition

Cours 7 : Programmation d une chaîne d acquisition Cours 7 : Programmation d une chaîne d acquisition 4 Concepts 4 Programmation Cible Pentium : Langages de haut niveau Langage graphique G sous LabView + librairies de VI ; Langage C + librairies de fonctions

Plus en détail

LE MICRO ORDINATEUR. Introduction Architecture Les supports amovibles Les composants Le système d exploitation Les portables

LE MICRO ORDINATEUR. Introduction Architecture Les supports amovibles Les composants Le système d exploitation Les portables LIONEL FRANC Introduction Architecture Les supports amovibles Les composants Le système d exploitation Les portables L'INTRODUCTION Micro ordinateur portable ou fixe Système pluri- technologiques (mécanique,

Plus en détail

Contrôle d accès UTIL TP N 1 découverte

Contrôle d accès UTIL TP N 1 découverte Contrôle d accès UTIL TP N 1 découverte A partir de : Documents sur CD TIL : \CD usesame\documentations\produits_til\modules\util_tillys fpr_utilv2.pdf FTe_UTiL_V2.pdf UTiL2_express.pdf \CD usesame\documentations\logiciels_til\tilman

Plus en détail

Présentation et installation PCE-LOG V4 1-5

Présentation et installation PCE-LOG V4 1-5 PCE-LOG V4 version borne externe type PC50 mesures U, I + 3 TS version coffret mural mesures U, U, I + 3TS PRESENTATION 1-5 1 Presentation PCE-LOG V4 est un datalogger pour la télésurveillance de la protection

Plus en détail

Informatique Industrielle

Informatique Industrielle Informatique Industrielle Cours Master SIS Micro-contrôleurs Microchip Intervenants : Marc Allain - marc.allain@fresnel.fr Julien Marot - julien.marot@fresnel.fr Coordonnées Marc Allain [Maître de conférence]

Plus en détail

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs Architecture Matérielle des Systèmes Informatiques. S1 BTS Informatique de Gestion 1 ère année THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT Dossier 1 L environnement informatique. Objectifs Enumérer et

Plus en détail

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr Mars 2002 Pour Irène et Marie Legal Notice Copyright c 2002 Patrick Cégielski Université

Plus en détail

Performance et usage. La différence NETGEAR - R7000. Streaming HD illimitée

Performance et usage. La différence NETGEAR - R7000. Streaming HD illimitée Performance et usage Wi-Fi AC1900 - Vitesse 600Mbps (2.4GHz) + 1300 Mbps (5GHz) Processeur Dual Core 1GHz Fonctionnalités avancées pour le jeu en ligne sans latence Bande passante prioritaire pour les

Plus en détail

Data Station Plus. La solution complète de gestion de données. > Convertisseur de multiples

Data Station Plus. La solution complète de gestion de données. > Convertisseur de multiples Data Station Plus La solution complète de gestion de données Convertisseur de multiples protocoles permettant une intégration système complet E nregistreur de données de process compatible avec les applications

Plus en détail

Modules d entrées/sorties pour FX série XM07 et XM14

Modules d entrées/sorties pour FX série XM07 et XM14 Fiche produit Modules XM07 et XM14 Date Juillet 2009 Modules d entrées/sorties pour FX série XM07 et XM14 Les modules XM07 et XM14 proposent des points d entrées et de sorties physiques supplémentaires

Plus en détail

Université de La Rochelle. Réseaux TD n 6

Université de La Rochelle. Réseaux TD n 6 Réseaux TD n 6 Rappels : Théorème de Nyquist (ligne non bruitée) : Dmax = 2H log 2 V Théorème de Shannon (ligne bruitée) : C = H log 2 (1+ S/B) Relation entre débit binaire et rapidité de modulation :

Plus en détail

LOGICIEL DC4D MONITOR

LOGICIEL DC4D MONITOR THQtronic LOGICIEL DC4D MONITOR La communication entre PC et DC4D ne peut se faire qu à l aide du câble de liaison USB-TTL de FTDI référence TTL-232R-5V-AJ vendu en option. DC4D Monitor est la même application

Plus en détail

La mémoire. Un ordinateur. L'octet. Le bit

La mémoire. Un ordinateur. L'octet. Le bit Introduction à l informatique et à la programmation Un ordinateur Un ordinateur est une machine à calculer composée de : un processeur (ou unité centrale) qui effectue les calculs une mémoire qui conserve

Plus en détail

ÉCOLE POLYTECHNIQUE DE MONTRÉAL. Département de Génie Électrique. La technologie de TEXAS INSTRUMENTS DSP pour le cours Analyse des Signaux ELE2700

ÉCOLE POLYTECHNIQUE DE MONTRÉAL. Département de Génie Électrique. La technologie de TEXAS INSTRUMENTS DSP pour le cours Analyse des Signaux ELE2700 ÉCOLE POLYTECHNIQUE DE MONTRÉAL Département de Génie Électrique La technologie de TEXAS INSTRUMENTS DSP pour le cours Analyse des Signaux ELE2700 M. Corinthios et Zaher Dannawi 29 août 2007 2 Tables des

Plus en détail

Exécutif temps réel Pierre-Yves Duval (cppm)

Exécutif temps réel Pierre-Yves Duval (cppm) Exécutif temps réel Pierre-Yves Duval (cppm) Ecole d informatique temps réel - La Londes les Maures 7-11 Octobre 2002 Plan Exécutif Tâches Evénements et synchronisation Partage de ressources Communications

Plus en détail

epowerswitch 8XM+ Fiche technique

epowerswitch 8XM+ Fiche technique Fiche technique L est le successeur de l epowerswitch 8XM. Il peut piloter jusqu à 136 prises secteur et dispose de borniers à vis amovibles en face avant pour une connexion aisée et rapide de capteurs

Plus en détail

DimNet Gradateurs Numériques Evolués Compulite. CompuDim 2000

DimNet Gradateurs Numériques Evolués Compulite. CompuDim 2000 DimNet Gradateurs Numériques Evolués Compulite La gamme des gradateurs Compulite est conçue autour des technologies les plus récentes et les plus évoluées que ces 20 dernières années ont vu apparaître.

Plus en détail

TER Licence 3 Electronique des Télécoms Transmission GSM

TER Licence 3 Electronique des Télécoms Transmission GSM Université de Savoie Module TER (Travaux d études et réalisation) TER Licence 3 Electronique des Télécoms Transmission GSM Note : L ensemble des documents du projet se trouve sur l espace étudiant du site

Plus en détail

Présentation Internet

Présentation Internet Présentation Internet 09/01/2003 1 Sommaire sières 1. Qu est-ce que l Internet?... 3 2. Accéder à l Internet... 3 2.1. La station... 3 2.2. La connection... 3 2.3. Identification de la station sur Internet...

Plus en détail

Cours 1 : La compilation

Cours 1 : La compilation /38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà

Plus en détail

GUIDE D UTILISATION ADSL ASSISTANCE

GUIDE D UTILISATION ADSL ASSISTANCE GUIDE D UTILISATION ADSL ASSISTANCE Sommaire I. Vérifications à faire avant d entamer les étapes de diagnostic complexe II. Les étapes du diagnostic après les vérifications A. La synchronisation est KO

Plus en détail

Cours Informatique 1. Monsieur SADOUNI Salheddine

Cours Informatique 1. Monsieur SADOUNI Salheddine Cours Informatique 1 Chapitre 2 les Systèmes Informatique Monsieur SADOUNI Salheddine Un Système Informatique lesystème Informatique est composé de deux parties : -le Matériel : constitué de l unité centrale

Plus en détail

SmartCaisse, depuis 2005. Prise de Commande IPhone, IPad (2, 3 et mini), IPod et tablette Android SmartCaisse

SmartCaisse, depuis 2005. Prise de Commande IPhone, IPad (2, 3 et mini), IPod et tablette Android SmartCaisse SmartCaisse, depuis 2005 Prise de Commande IPhone, IPad (2, 3 et mini), IPod et tablette Android SmartCaisse Présentation : Les logiciels de prise de commande téléchargeables sur Android Market sous le

Plus en détail

Sur un ordinateur portable ou un All-in-One tactile, la plupart des éléments mentionnés précédemment sont regroupés. 10) 11)

Sur un ordinateur portable ou un All-in-One tactile, la plupart des éléments mentionnés précédemment sont regroupés. 10) 11) 1/ Généralités : Un ordinateur est un ensemble non exhaustif d éléments qui sert à traiter des informations (documents de bureautique, méls, sons, vidéos, programmes ) sous forme numérique. Il est en général

Plus en détail

Chapitre 1 : Introduction aux méthodologies de conception et de vérification pour SE

Chapitre 1 : Introduction aux méthodologies de conception et de vérification pour SE Chapitre 1 : Introduction aux méthodologies de conception et de vérification pour SE 1. Rappel de ce qu est un SE 2. Conception au niveau système (ESL) Méthodologie de conception (codesign logiciel/matériel)

Plus en détail

Architecture des ordinateurs Introduction à l informatique

Architecture des ordinateurs Introduction à l informatique Architecture des ordinateurs Introduction à l informatique 17 septembre 2004 1 2 3 4 5 6 Les interrupteurs... 0V 5V Ce sont des composants électroniques qui laissent pser un courant principal lorsque la

Plus en détail

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C Haute Ecole d Ingénierie et de Gestion Du Canton du Vaud MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C Programmation en mode simulation 1. DOCUMENTS DE RÉFÉRENCE...

Plus en détail

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation Base de données S. Lèbre slebre@unistra.fr Université de Strasbourg, département d informatique. Présentation du module Contenu général Notion de bases de données Fondements / Conception Utilisation :

Plus en détail

Fiche technique CPU 315SN/PN (315-4PN33)

Fiche technique CPU 315SN/PN (315-4PN33) Fiche technique CPU 315SN/PN (315-4PN33) Données techniques N de commande 315-4PN33 Information générale Note - Caractéristiques SPEED-Bus - Données techniques de l'alimentation Alimentation (valeur nominale)

Plus en détail

ALERT NOTICE D UTILISATION DU DRIVER PC-TEXTE

ALERT NOTICE D UTILISATION DU DRIVER PC-TEXTE 1) Installation ALERT NOTICE D UTILISATION DU DRIVER PC-TEXTE A) Installation du driver PC-TEXTE Lors de l installation du logiciel ALERT, le gestionnaire de communication «PC-TEXTE» doit être sélectionné

Plus en détail

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Cours d introduction à l informatique Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Qu est-ce qu un Une recette de cuisine algorithme? Protocole expérimental

Plus en détail

fullprotect inside EOLE SPEie RS E-SPEie 0.5-12-5V-0.6A-RS 1.0 revision Protection environnement Datasheet édition française

fullprotect inside EOLE SPEie RS E-SPEie 0.5-12-5V-0.6A-RS 1.0 revision Protection environnement Datasheet édition française Protection environnement Datasheet édition française 1.0 revision R-D-CO-D-27112011-1.0-C fullprotect inside SPEi Protection environnement interne SPEe Protection environnement externe SPEc Contrôle de

Plus en détail

Les tablettes. Présentation tablettes Descriptif Fournisseurs Caractéristiques Comparatifs Conseils Perspectives Démonstration

Les tablettes. Présentation tablettes Descriptif Fournisseurs Caractéristiques Comparatifs Conseils Perspectives Démonstration Les Tablettes Les tablettes Présentation tablettes Descriptif Fournisseurs Caractéristiques Comparatifs Conseils Perspectives Démonstration Les tablettes Description: Appareil mobile positionné entre smartphone

Plus en détail

NET BOX DATA Télégestion d'équipements via Internet & Intranet

NET BOX DATA Télégestion d'équipements via Internet & Intranet MANUEL SIMPLIFIEDE L UTILISATEUR ------------------------------------------- Système de réservation de place de stationnement VigiPark2.COM Réf. : DT100502 Rév. : A Date : 24/01/2006 Auteur : Christophe

Plus en détail

PC INDUSTRIELS DYALOX L e c h o i x d e l a f i a b i l i t é

PC INDUSTRIELS DYALOX L e c h o i x d e l a f i a b i l i t é PC INDUSTRIELS DYALOX L e c h o i x d e l a f i a b i l i t é» Pa s d e p i è c e s m o b i l e s» 3 ans de garantie et 7 ans de service» D e s c o m p o s a n t s d e c l a s s e i n d u s t r i e l l

Plus en détail

Education Delivery Intelligent Tool

Education Delivery Intelligent Tool Education Delivery Intelligent Tool Projet AMO2 Maxence RAOUX Joachim SEGALA RICM 4 Avril 2012 Sommaire I. Presentation du projet... 2 1. Contexte... 2 2. Demande... 2 3. Spécifications... 2 II. Guide

Plus en détail

Une carte pour vos projets

Une carte pour vos projets ARDUINO Une carte pour vos projets CHRISTOPHE ULTRÉ [1] Les projets interdisciplinaires impliquent de faire l acquisition d un matériel adaptable et peu coûteux qui réponde à des problématiques communes,

Plus en détail