1 / 105

Dernière mise à jour :24/10/2008

2009/2010. Programmation des systèmes embarqués. Répartition horaire : . Cours - TD : 12 h. TP : 18 h. Auteurs du document :      Myriam Chesneau / Thierry Suaton. Responsable du document :     Myriam Chesneau. Intervenants Myriam Chesneau Jean-Noël Martin.

angie
Télécharger la présentation

Dernière mise à jour :24/10/2008

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 2009/2010 Programmation des systèmes embarqués Répartition horaire : Cours - TD : 12 h TP : 18 h • Auteurs du document : •      Myriam Chesneau / Thierry Suaton • Responsable du document : •     Myriam Chesneau • Intervenants • Myriam Chesneau • Jean-Noël Martin Dernière mise à jour :24/10/2008 Programmation de systèmes embarqués

  2. Programmation des systèmes embarqués Les bases • CH 1 . Introduction au microcontrôleur : • Présentation d’un microcontrôleur élémentaire et application dans le cadre de l’instrumentation • CH 2 . Bases de filtrage analogique • Rappels sur les représentations temps-fréquence, présentation des filtres et gabarits, exemple de réalisation d’un filtre analogique • CH 3. Introduction au filtrage numérique • Outils mathématiques utilisés pour le filtrage numérique, présentation et principe de réalisation des filtres RII et RIF Ouverture • en fin de module ISA (instrumentation spécifique : audionumérique) ouverture sur les DSp et FPGA, qui permettent de faire du filtrage temps réel et embarqué. • En TP 4 : implémentation d’un filtre sur DSP Programmation de systèmes embarqués

  3. Un microcontrôleur comprend - Une unité de traitement de l’information de type microprocesseur - Des périphériques internes  Il permet la réalisation d’applications autonomes sans ajout de composants externes Ch 1 : Introduction au microcontrôleur Programmation de systèmes embarqués

  4. Présentation du circuit alimentations 1.1 Schéma de principe Mémoire FLASH pour stocker le programme (permanente) Mémoire RAM de travail (volatile) Mémoire EEPROM pour stocker les données (permanente) • Unité • décodage instructions • traitement • calculs Timer Compteur Horloge Ports I/O Circuits de mise en route et de veille Programmation de systèmes embarqués

  5. Programmation de systèmes embarqués

  6. 1.2 Les mémoires • La mémoire flash : (16F84) • contient le programme compilé • possède 1024 emplacements de 14 bits (taille d’une instruction) • conserve les données hors tension • La RAM • permet le stockage des données temporaires nécessaires à l’exécution du programme • possède 68 octets + 15 registres spécialisés de 8 bits • son contenu est perdu en cas de coupure Programmation de systèmes embarqués

  7. L’EEPROM • contient des données produites par le programme • conserve les données hors tension 1.3 Unité « centrale » • Elle récupère les instructions du programme, les décode et les exécute. Programmation de systèmes embarqués

  8. oscillateur externe : fosc fo = fosc/4 Horloge 1.4 L’horloge • Elle reçoit un signal périodique issu d’un oscillateur, et fabrique la référence « temps » du système. • Une instruction élémentaire est en général exécutée en 1 cycle, soit 4 périodes du signal de l’oscillateur. • Avec un oscillateur à 4 MHz, un µc PIC16F84-04 peut effectuer un million (4 M / 4) instructions simples. Programmation de systèmes embarqués

  9. 1.5 Les circuits de mise en route et de veille • Ils permettent • de réaliser une bonne mise sous tension du système, • de le mettre en veille en cas de non utilisation, • de sortir convenablement du mode veille. Programmation de systèmes embarqués

  10. 2. Les périphériques 2.1 Ports d’entrées – sorties : • Le port A fournit 5 entrées - sorties : RA0 – RA4 • RA0 – RA3 : • En entrée : comprennent les niveaux TTL • En sortie : délivrent des niveaux TTL : 0 ou 5 V • RA4 • En entrée : trigger de Schmitt pour convertir en TTL (cf TD EON) • En sortie : drain ouvert • Peut être connectée à l’entrée du timer pour du comptage Programmation de systèmes embarqués

  11. Le port B fournit 8 entrées – sorties • RB0 – RB7 délivrent et reçoivent des niveaux TTL • En entrée : peuvent être connectées au 5 V par programme • de plus • RB0 peut être utilisée pour une interruption externe, elle fonctionne alors en trigger de Schmitt • RB6 et RB7 sont utilisées pour charger le programme en mémoire (attention, ne pas les utiliser pour une autre tâche au moment du chargement) • Si RB4 à RB7 sont en entrée, on peut décider par programme de générer une interruption si la valeur d’une de ces entrées a changé. Programmation de systèmes embarqués

  12. Entrée Sortie non accessible Clk Out Compteur 2.2 Le compteur – timer • Le compteur-timer possède 8 bits. • Il compte les fronts montants ou descendants présents sur son entrée ( 0,1,…. 255=FF)h) • Le timer-compteur est associé à un registre TMR0 (Timer 0) • En fin de compte : passage de 255 à 0, un bit d’un registre spécifique est mis à 1 : c’est le bit de débordement (overflow). TMR0 Programmation de systèmes embarqués

  13. Entrée Clk Out Compteur Diviseur • Un diviseur de fréquence (Prescaler) permet de diviser la fréquence du signal à appliquer en entrée du compteur • La fréquence peut être divisée par 2, 4, 8, 16, 32, 64, 128 ou 256. Programmation de systèmes embarqués

  14. Source ExterneRA4 = T0CKl Entrée Clk Out Compteur Diviseur ou pas • Comme le compteur-timer d’une carte d’acquisition, le compteur peut être utilisé : • En compteur • Le signal d’entrée du compteur est externe, il est connecté sur la ligne 4 du port A • Le compte s’incrémente sur chaque front de l’horloge • Il est accessible dans le registre TMR0 TMR0 Programmation de systèmes embarqués

  15. Clk Out Compteur Diviseur ou pas fosc Horloge fo TMR0 • En timer • Le signal d’entrée du compteur est celui de l’horloge(fo = fosc/4 = 1 MHz) • Le compte s’incrémente sur chaque front de l’horloge • On peut positionner le compte de départ à une valeur choisie dans le registre TMR0. • On utilise le bit de débordement pour mesurer le temps écoulé entre le départ et « l’arrivée à 0 ». Programmation de systèmes embarqués

  16. 3. Les registres du PIC • Les registres spécialisés du PIC permettent • de définir le fonctionnement du PIC • de s’informer sur l’état du PIC • de configurer les périphériques • de communiquer (lecture / écriture) avec les périphériques Programmation de systèmes embarqués

  17. 3.1 Le registre des interruptions • INTCON • permet le contrôle des interruptions et leur localisation et • indique la fin de compte du timer Programmation de systèmes embarqués

  18. 3.2 Les registres des ports • TRISA : indique la direction des lignes du port A1 : entrée, 0 : sortie • PORTA : lecture – écriture du contenu du port A • TRISB : indique la direction des lignes du port B1 : entrée, 0 : sortie • PORTB : lecture – écriture du contenu du port B Programmation de systèmes embarqués

  19. 3.3 Les registres du timer • TMR0 permet d’écrire et de lire le compte du timer/compteur • INTCON permet de connaître l’état du bit de débordement ( dépassement timer = TOIF = timer output interrupt flag) • OPTION permet de définir, entre autres, les paramètres du timer/compteur • source de l’entrée du compteur • utilisation du diviseur • valeur du diviseur Programmation de systèmes embarqués

  20. OPTION • A la mise sous tension, tous les bits sont positionnés à 1. Programmation de systèmes embarqués

  21. 4. Programmation 4.1 Procédure et logiciels • Pour utiliser le PIC, il faut respecter les phases suivantes : • Écriture du programme dans un langage évolué • Traduction du programme en langage PIC (type assembleur : 35 instructions) • Transfert du fichier obtenu en mémoire flash du PIC • Mise en fonctionnement du PIC Programmation de systèmes embarqués

  22. Le positionnement d’une broche du PIC permet de choisir entre les modes • Chargement du programme (PGN) pour la phase 3 • Normal (RUN) pour la phase 4 Programmation de systèmes embarqués

  23. Nous utiliserons • L’éditeur de texte ConText pour écrire le programme en langage C : fichier xxx.c, puis à partir de cette éditeur, nous appellerons : • Cc5x pour la création du fichier en langage PIC : xxx.exe, puis • NTPicprogVf pour le transfert de ce fichier de l’ordinateur vers la mémoire flash du PIC par liaison série • Tous ces logiciels sont libres Programmation de systèmes embarqués

  24. 4.2 Adresse des registres • Chaque registre possède une adresse dans la RAM : • Exemple : PORTB est un registre 8 bits situé à l’adresse 06 de la RAM • Dans le logiciel utilisé, le nom d’un registre coïncide avec son adresse • PORTB = 0b01011100permet d’écrire les 8 bits 01011100 à l’adresse 06 de la RAM Programmation de systèmes embarqués

  25. On peut utiliser les bases 2, 10 ou 16 : • PORTB = 0b01011100 ; • PORTB =92 ; • PORTB = 0x5C ; • Pour désigner le bit n°i du registre XXX, on utilise XXX.I • Exemple TRISA.0 désigne le bit 0 du registre TRISA. Programmation de systèmes embarqués

  26. Grâce à l’ajout d’un fichier en tête spécial (16f84.h), un nom est associé à chaque bit de certains ports : • RA0 = 1 ; • équivaut à • PORTA.0 = 1; • et permet de mettre à 1 le bit 0 du port A sans modifier les autres. Programmation de systèmes embarqués

  27. On peut ajouter de telles définitions au sein du programme : • (en C) • # define TOIF INTCON.2 • permet de nommer TOIF le bit n°2 du registre des interruptions INTCON Programmation de systèmes embarqués

  28. 4.3 Exemple de programmation des ports • Pour utiliser les lignes des ports A et B, il faut : • Définir la direction des lignes : entrée ou sortie • Écrire sur les lignes en sortie ou lire les lignes en entrée • On peut travailler sur un port en entier ou sur une ligne : • TRISA.0 = 0;TRISB.5 = 1;RA0 = RB5; • TRISB = 0b00000000;PORTB = 0b01010101; Programmation de systèmes embarqués

  29. Clk Out Compteur Horloge fosc fo Diviseur TMR0 Source ExterneRA4 = T0CKl 4.4 Programmation du timer (voir exemples en TD) INTCON.2 TOIF OPTION.210 PS2 PS1 PS0 prescaler OPTION.5 TOCS : clock source OPTION.4 TOSE : source edge OPTION.3 PSA Programmation de systèmes embarqués

  30. Remarques complémentaires • On travaille principalement avec des bits ou des octets. • On peut utiliser la représentation binaire avec le logiciel ConText unsigned char octet; octet = 0b11001110; Programmation de systèmes embarqués

  31. nécessité de mémoriser l'endroit, les variables…. programme utilisateur arrivée interruption 4 1 3 traitement de l'interruption : lecture et sauvegarde 2 5. Interruptions 5.1 généralités Programmation de systèmes embarqués

  32. demande d’interruption • sauvegarde du contexte • traitement de l'interruption en exécutant des lignes de programme : lecture et stockage des données • restitution du contexte et reprise de la tâche initiale Programmation de systèmes embarqués

  33. 5.2 Sources d’interruption • Le PIC utilisé en possède 4, le programme en cours peut-être interrompu si • un front (+ ou -) est présent sur RB0 • une des lignes RB4 à RB7 change d’état (lignes placées en entrée) • le timer atteint la fin de son cycle (débordement) • une écriture dans l’EEPROM est terminée • Pour utiliser une interruption, il faut • autoriser les interruptions en général • autoriser une (ou +) interruptions en particulier Programmation de systèmes embarqués

  34. 5.3 cas du PIC • Voir documentation en TP pour la programmation Programmation de systèmes embarqués

  35. En guise d’introduction au filtrage… • Extrait de l’article «Le filtrage numérique des signaux n’est pas qu’un filtre analogique numérisé… » paru dans la revue Mesures n° 749 Novembre 2002 • Le filtrage est une étape essentielle dans une chaîne d’acquisition de données. Il permet d’isoler une fréquence particulière ou d’éliminer des fréquences parasites. • Couramment utilisés, les filtres analogiques manquent de précision et sont limités en types de gabarit disponibles. • Le filtrage numérique n’a pas ces limitations. Il utilise des algorithmes de calcul implémentés dans des DSP ou des FPGA. • Avantages : pas de dérive, filtres exotiques, filtres facilement modifiables… Programmation de systèmes embarqués

  36. Un filtre analogique reçoit en entrée un signal en tension x(t) et délivre en sortie le signal filtré y(t). Le filtre modifie le spectre du signal d’entrée. Ch 2. Bases de filtrage analogique Programmation de systèmes embarqués

  37. Ce que vous savez déjà … 1.1 Représentations temps/fréquence : rappels • Un signal peut être décrit dans le domaine du temps ou dans le domaine des fréquences. • Dans le domaine temporel, on observe s(t) à l’oscilloscope • Dans le domaine fréquentiel, on observe S(f) à l’analyseur de spectre • S(f) est la transformée de Fourier de s(t)C’est une grandeur complexe : module + phase. • On appelle spectre (bilatéral) le module de S(f) Programmation de systèmes embarqués

  38. Exemple : • Informations données par le chronogramme : • Informations données par le spectre (donné ici pour f>0) : Programmation de systèmes embarqués

  39. La FFT est une approximation de la transformée de Fourier d’un signal s(t) • échantillonné à Féch • observé sur une durée Tobs ( Tobs = Néch / Féch) • Le module de la FFT de s(t) coïncide avec |S(f)| • si le signal est convenablement échantillonné et observé. • pour 0 < f < Féch/2. Programmation de systèmes embarqués

  40. 1.2 Filtres analogiques • En électricité et en électronique, on a déjà rencontré des filtres analogiques : • Filtre passe-bas RC • Filtre résonnant RLC • Filtre actif AOP + R + C Programmation de systèmes embarqués

  41. Les filtres qui ne nécessitent pas d’alimentation sont appelés filtres passifs : • RC • RLC • À quartz • À lignes imprimées • Les filtres alimentés sont appelés filtres actifs : • AOP + R + C • Transistors + R + C • À capacités commutées Programmation de systèmes embarqués

  42. On s’intéresse ici à la conception de filtres actifs à amplificateurs opérationnels, résistances et condensateurs, à partir d’un cahier des charges précis : le gabarit. Programmation de systèmes embarqués

  43. 2. Filtre et gabarit • Un filtre permet de traiter différemment les différentes composantes spectrales d’un signal. FiltreH(f) = Y(f)/X(f) x(t) X(f) y(t) Y(f) Programmation de systèmes embarqués

  44. 2.1 Filtre idéal - Filtre réel • Un filtre idéal • transmet les composantes situées dans sa bande passante • supprime les composantes situées en dehors de sa bande passante • Un tel filtre n’est pas réalisable. Programmation de systèmes embarqués

  45. Un filtre réel ne supprime pas complètement les composantes hors bande, mais les atténue, d’autant plus fortement que son ordre est élevé. Programmation de systèmes embarqués

  46. Un gabarit représente les bornes de gain admises dans diverses bandes de fréquence. • Bande passante : gain nominal (0 dB souvent) + erreur maximum admise (a) • Bande atténuée : gain maximum admissible : b • Bande passante fp et bande atténuée fa.(sélectivité k = fp/fa) • Rq : rien n’est précisé sur un tel gabarit en termes de phase. Exemple du filtre passe-bas de fréquence de coupure fp à « a » dB. Programmation de systèmes embarqués

  47. 2.2 Les 4 grandes familles de filtres • Passe bas Programmation de systèmes embarqués

  48. Passe haut Programmation de systèmes embarqués

  49. Passe bande • Coupe bande • Rq : se familiariser avec ces deux représentations, utilisées fréquemment et « mélangées ». Programmation de systèmes embarqués

  50. 20 log T fp fa 0 dB a dB f b dB 3. Réalisation pratique : cas du passe-bas 3.1 Transformation du cahier des charges en gabarit Programmation de systèmes embarqués

More Related