Etude de cas: carte 80C552++ ‘APPALACHES’

Slides:



Advertisements
Présentations similaires
Module Systèmes d’exploitation
Advertisements

GEF 435 Principes des systèmes dexploitation Le matériel des ordinateurs Revue Pt II (Tanenbaum 1.4)
Premier programme en C :
La boucle for : init7.c et init71.c
Module 5 : Implémentation de l'impression
Le Concept du programme enregistré
A RECUPERER EN ENTRANT Le polycopié de Caml Partie 1
Développement logiciel sur micro-contrôleurs PIC en C
TECHNOLOGIE DES ORDINATEURS
ARCHITECTURE INTERNE d’un MICROPROCESSEUR
PROGRAMMATION LOGICIEL PL7 MICRO Consignes
C.
FLSI602 Génie Informatique et Réseaux
MENU DE L’AIDE Cliquer ici pour aide RESEAUX DE CONTACTS
Système d’exploitation : Assembleur
Page 1 Introduction à ATEasy 3.0 Page 2 Quest ce quATEasy 3.0? n Ensemble de développement très simple demploi n Conçu pour développer des bancs de test.
LANGUAGE GRAPHIQUE INITIATION
ROLE DES DIFFERENTS ELEMENTS
Mémoire périphérique Stockage primaire: Mémoire principale (RAM)
Architecture de base d’un ordinateur
Système d’exploitation
TRANSMISSION DES DONNEES.
LIAISON MODBUS.
Quest-ce quune classe dallocation? Une classe dallocation détermine la portée et la durée de vie dun objet ou dune fonction.
Le Système Processeur David Saint-Mellion.
Architecture introduction.
Micro contrôleurs Microchip Outil de developpement MPLAB
LES SYSTEMES AUTOMATISES
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
GPA770: Microélectronique appliquée
Module 2 : Préparation de l'analyse des performances du serveur
Module 1 : Installation de Microsoft Windows XP Professionnel
L’essentiel du langage C
Afficheur industriel « AIW » MAT Électronique
PROJET: ENREGISTREUR DE TEMPERATURE ET DE PRESSION fait par: Julien Gallet, Maxime Desgrousilliers, Stéphane Delarue et Julien Bernard
Un survol du language C.
Codage des nombres en informatique : le système binaire.
SURVEILLANCE VIDEO SUR RESEAU ETHERNET
Les microcontrôleurs PIC
ADC Microcontrôleur MSC1210.
Dossier n°1 Structure et Fonctionnement d'un micro-ordinateur.
Programmation Système et Réseau
Sif Cours 9 n 7. Communication série u Concepts généraux u Programmation des ports séries n Le matériel u Chapitre 10 CSA u Article dans MSDN: F.
La programmation de l’interface FischerTechnik
Exemple de mise en oeuvre
La programmation de l’interface FischerTechnik
Microcontrôleurs PIC. 1ère séance Présentation du PIC16F876 Outils de programmation du PIC Le langage C Exemples d’applications simples 2ème séance Présentation.
ISBN Chapitre 10 L'implémentation des sous- programmes.
GPA770: Microélectronique appliquée
DMA MEM MEM Enoncé polling novembre 2014J.Callot L.Piedfort1.
Les variables fichiers. Le type fichier On manipule les fichiers par l’intermédiaire de structures FILE décrites dans stdio.h FILE *monFichier; –Nom physique.
On utilisera la version HC912DG128
Système d’exploitation : Assembleur Semaine 01 Introduction.
18/09/2013JC LP MD1 Cours_2. 18/09/2013JC LP MD2 Mapping de configuration.
Simulateur de microcontrôleur Intel 80C51
Cours 8 La transmission.
Source : La liaison série RS232 Source : P.G Lycée Vaucanson Grenoble.
Patricia Renault UPMC 2005/2006
Représentation digitale des données Trois formats de base: 1) Décimale: base 10 (Une constante i.e dimension d ’1 vecteur) 2) Binaire: base 2 ( Mask, set/reset.
8PRO107 Éléments de programmation Les adresses et les pointeurs.
Elaboré par :Chaouki LARIBI
13/08/2013JC/LP/MD1 TP2 Enoncé. 13/08/2013JC/LP/MD2 Objectif Gérer la liaison série en polling Envoi d’un caractère § au démarrage Faire l’écho des caractères.
Chapitre 9 Les caractères.
CHAPITRE 10 Les sous-programmes 1. Sous-programme Suite d’instructions appelée de manière répétitive Par un programme Par plusieurs programmes distincts.
14/08/2013JC/LP/MD1 TP3 Enoncé. 14/08/2013JC/LP/MD2 Objectif Gérer la liaison série avec la réception en interruption On utilisera le Hardware Vector.
14/08/2013JC/LP/MD1 TP4 Enoncé. 14/08/2013JC/LP/MD2 Objectif Utiliser un canal convertisseur analogique digital Ecrire un programme qui convertit la tension.
Architecture d’un ordinateur
Chapitre8 Configuration de l'adressage TCP/IP et de la résolution de noms Module S41.
Informatique 2A Langage C 4ème séance
Transcription de la présentation:

Etude de cas: carte 80C552++ ‘APPALACHES’ Le 80C552 est basé sur le noyau C51. Il dispose des fonctions suivantes : - 256 octets de RAM interne. - Deux TIMER 16 bits standards (T0 et T1) :"noyau C51". - Un troisième TIMER 16 bits (T2) couplé à quatre registres de capture - Un ensemble de 8 entrées de conversion analogique-numérique 8bits. - Deux sortie PWM (MLI)de résolution de 8 bits. - Cinq ports bidirectionnels de 8 bits TOR et un port d’entrée analogique (C.A.N). - Un port série I²C configurable en mode maître ou esclave. - Un port série UART 8051. - Un système de gestion de quinze sources d’interruption sur deux niveaux de priorité. - Un chien de garde (watch dog). Schéma fonctionnel du 80C552 L’environnement de programmation

Configuration de la carte Une EPROM (U1) de 64Ko de référence 27512, qu’on considérera comme divisée en deux parties ; les 32Ko inférieurs qu’on note (U1-L) et les 32Ko supérieurs qu’on note (U1-H) . Une RAM (U2) de 32 Koctets de référence 62256. Une RAM sauvegardée par batterie (U3) de 32 Koctets de référence 58256. U1 U2 U3 J1 J2 J6 J3 J10 J11 1 2 A chaque combinaison de positions de ces cavaliers, on obtient une configuration différente qui place les mémoires dans l’un des espaces mémoires (32K inf ou 32K sup) et l’un des plans d’adressage (CODE ou (et) DATA). L’environnement de programmation

Configuration de la carte U1-L CODE (0000-7FFFH) U2 DATA (0000-7FFFH) U3 CODE et DATA U1 : Moniteur de la carte H : charge un programme Hexa (format Intel ou Motorola) P ou <espace> : exécute en Pas a Pas l'instruction suivante A <espace> ou [n aaaa] : affiche/modifie les points d'Arrêt G <espace> ou [aaaa] : Go (ou exécute le programme a l'adresse aaaa) M <aaaa>,[aaaa] : désassemble X <aaaa>,[aaaa] : liste la mémoire eXterne (Xdata) I <aa>,<aa> : liste la mémoire Interne (data et Idata) S <aa> : affiche la valeur du Sfr(aa) R : affiche les Registres B <aaaa>,[aaaa]=<dd> : initialise un Bloc de mémoire externe E <aaaa>-[dd] : édite la mémoire Externe D <aa>-[dd] : édite la mémoire interne (Data et iData) F <aa>=<dd> : modifie la valeur du SFR(aa) C <r>=<dd> : Change le registre (Pc Sp Acc B Dptr psW r0..9) L’environnement de programmation

La génération du code exécutable Programme source: Langage ‘C’ ou Assembleur Compilation + édition des liens données binaires représentant les instructions a exécuter par le microcontrôleur Programme (C, assembleur, .. ) Compilation (Code + références aux fonctions externes) Edition des liens (Code programmes + code fonctions externes) Librairies de fonctions (code ) Format final (fichier .HEX ou .BIN) Le fichier généré: soit de format .BIN, qui contient uniquement du code soit de format .HEX, qui contient en plus du code, les adresses à partir desquelles le code doit être logé, ainsi que des données de détection d’erreurs. Ce format est destiné à être transféré par liaison série ou autre à une carte c équipée d’un moniteur pouvant gérer ce format (ce qui est notre cas). L’environnement de programmation

L’environnement de programmation Le format Hexadécimal Fichier Hexadécimal Connexion entre le PC et carte. Port série RS232C libre du cote PC . Logiciel permettant la transmission et la réception à travers le port série: Exemple: HYPERTERMINAL fournis avec Windows Configuration de communication: 9600,8,N,1 (vitesse = 9600bps; Nombre de bits données = 8 ;  Parité :aucune ; Nombre de bits de stop =1.) Enfin on a besoin d’un câble série pour connecter le port série du PC à celui du microcontrôleur. L’environnement de programmation

L’environnement de développement Intégré KEIL saisie, simulation et compilation des programmes Espace d’édition Hiérarchie des fichiers Fenêtre d’erreur Environnement du logiciel est constitué de librairies de plusieurs microcontrôleur, classées en familles : Philips, Intel… L’environnement de programmation

Environnement mVision de Keil Etude d’un exemple Fichier généré « jelassi.hex » :02800C0080FEF4 :030000000280007B :0C800000787FE4F6D8FD75810702800C43 :00000001FF L’environnement de programmation

Chargement du programme Commande H pour le chargement du fichier généré a travers la liaison série > > H > 12 OCTETS > G 800C :02800C0080FEF4 :030000000280007B :0C800000787FE4F6D8FD75810702800C43 :00000001FF Envoyer le fichier hexadécimal à travers la liaison série Si le chargement s’est bien effectué le moniteur renvoie le nombre d’octets chargés Exécution du programme par la commande G L’adresse du début de programme est supposé ici 800C La détermination de cette adresse se fait par la fenêtre « Disassembly Window » de l’environnement mVision de Keil L’environnement de programmation

La simulation avec Keil Exécution pas a pas :02800C0080FEF4 :030000000280007B :0C800000787FE4F6D8FD75810702800C43 :00000001FF Accès aux ports d’entrées-sorties L’environnement de programmation

La Conversion Analogique numérique Accès aux convertisseurs analogiques numériques Le registre ADCON ADC1 ADC0 ADEX ADCI ADCS AADR2 AADR1 AADR0 Sélection de l’entrée 0 (AADR0, AADR1, AADR2) Lancer la conversion (ADCS=1) ADCI programmé à 0 Conversion lancée uniquement par mise à 1 de ADCS (ADEX=0) L’environnement de programmation

Exploitation des entrées analogiques Programme de conversion Analogique numérique ADCI ADCS 0 0 : CAN libre, une conversion peut être lancée 0 1 : conversion en cours, lancement impossible 1 0 : conversion finie, lancement impossible 1 1 : combinaison impossible AADR2  AADR1  AADR0  Bit de sélection d’une des 8 entrées analogiques ADEX : autorisation de lancement externe d’une conversion #include<reg552.h> #include<stdio.h> void main (void) { unsigned int resultat , rinf; ADCON&=0xF8; ADCON&=0xDF; while (1) ADCON|=0x08; while(!(ADCON&0x10)) { }; while(ADCON&0x08) rinf=(ADCON>>6)&0x03; resultat=ADCH*4 + rinf; printf ("\n %d",resultat); ADCON&=0xEF; } //sélection du canal 0 par mise à 0 des 3 premiers // bits du ADCON ; // mettre le bit ADEX à 0 : conversion lancée par //mise à 1 de ADCS //Lancer la conversion par mise du bit ADCS à 1 //Attendre jusqu’a ce que ADCI passe à 1 // et //ADCS passe à 0 ; //lire les 2 bits du poids faible du résultat de la //conversion à partir du registre ADCON ; //lire les 8 bits poids fort et ajouter les 2 bits //poids faible ; //émission du résultat vers le port série ; //Remettre ADCI à 0. L’environnement de programmation

Exploitation des résultats par MATLAB Lecture des échantillons convertis par MATLAB Chargement Exploitation Programme N°1 : écrit en langage ‘C’ et exécuté sur le microcontrôleur et qui permet :  La conversion analogique-numérique d’un signal injecté sur le port P5. L’émission de l’échantillon converti sur la liaison série à la suite d’une requête du logiciel MATLAB Programme N°2 : écrit en MATLAB et exécuté sur un PC et qui permet : La récupération des N échantillons convertis en format 8 bits.  L’émission des requêtes sous forme du caractère ‘ESPACE’. L’environnement de programmation

Exploitation des résultats par MATLAB Programme côte Microcontrôleur Programme MATLAB #include<reg552.h> #include<stdio.h> void main (void) { unsigned int resultat , rinf; ADCON&=0xF8; ADCON&=0xDF; while (1) ADCON|=0x08; while(!(ADCON&0x10)) { }; while(ADCON&0x08) getchar(); rinf=(ADCON>>6)&0x03; resultat=ADCH*4 + rinf; printf ("\n %d",resultat); ADCON&=0xEF; } w= serial('COM1'); set(w,'BaudRate',9600); fopen(w); z=0; for i=1:1:700 plot (z); fprintf (w,' '); b=fscanf(w,'%d'); while(length(b)~ =1) end k=(b*5)/1024; z=[z,k]; drawnow title('tension'); fclose(w); delete(w); clear w; L’environnement de programmation