Programmation de systèmes embarqués

Slides:



Advertisements
Présentations similaires
Mais vous comprenez qu’il s’agit d’une « tromperie ».
Advertisements

ORTHOGRAM PM 3 ou 4 Ecrire: « a » ou « à » Référentiel page 6
Reporting de la Cellule Nationale Droit dOption Situation au 31 décembre 2011.
Additions soustractions
Distance inter-locuteur
1 Plus loin dans lutilisation de Windows Vista ©Yves Roger Cornil - 2 août
Analyse temps-fréquence
PRINCIPE SIMPLIFIE DE LA COMPRESSION MP3
1 Jean-Paul Stromboni, mars 2005, Révision des cinq premières séances S.S.I. Jean-Paul Stromboni, mars 2005, ESSI1 Elève : ______________________ groupe.
Cours 5 – Comment bien échantillonner le signal audio
Comment décimer les sons numériques
Calculs de complexité d'algorithmes
1 Jean-Paul Stromboni, mars 2005, Révision des cinq premières séances S.S.I. Jean-Paul Stromboni, mars 2005, ESSI1 Elève : ______________________ groupe.
Du signal continu au numérique
Les numéros 70 –
Les identités remarquables
2. Echantillonnage et interpolation des signaux vidéo
Les éléments de mémorisation



Introduction à la logique
Comment créer des filtres « simples »
Cours S.S.I., SI1, avril 2007 – Comment utiliser les outils déjà présentés. Page 1 Comment utiliser les outils déjà présentés dans le cours S.S.I. et pourquoi.
LES TRIANGLES 1. Définitions 2. Constructions 3. Propriétés.
Données statistiques sur le droit doption au 31/01 8 février 2012.
Technologies et pédagogie actives en FGA. Plan de latelier 1.Introduction 2.Les technologies en éducation 3.iPads 4.TNI 5.Ordinateurs portables 6.Téléphones.
Révision (p. 130, texte) Nombres (1-100).
La législation formation, les aides des pouvoirs publics
Les requêtes La Requête est une méthode pour afficher les enregistrements qui répondent à des conditions spécifiques. La requête est donc un filtre.
ARCHITECTURE GLOBALE CAPTAGE Traitement DES des données GRANDEURS
Le soccer & les turbans Sondage mené par lAssociation détudes canadiennes 14 juin 2013.
Présentation générale
Cours de physique générale I Ph 11
Calcul et implantation des filtres numériques RIF et RII dans un DSP
Les nombres.
Fierté envers les symboles et institutions canadiens Jack Jedwab Association détudes canadiennes 26 novembre 2012.
Conseil Administration AFRAC – 2 décembre Toulouse 1 Fermes de références Palmipèdes à foie gras Synthèse régionale – Midi Pyrénées Exercice
LES NOMBRES PREMIERS ET COMPOSÉS
électronique analogique
Logiciel gratuit à télécharger à cette adresse :
Les chiffres & les nombres
S.S.I.I., , n°6, Créer des filtres sur mesure pour compresser S.S.I.I., , n°6, : Créer des filtres sur mesure pour compresser 1 Créer un.
Filtrer le signal audio numérique
RACINES CARREES Définition Développer avec la distributivité Produit 1
Représentation des systèmes dynamiques dans l’espace d’état
Systèmes mécaniques et électriques
Représentation des systèmes dynamiques dans l’espace d’état
Représentation des systèmes dynamiques dans l’espace d’état
1 Licence dinformatique Algorithmique des graphes Problèmes dordonnancement. Utilisation de ce document strictement réservée aux étudiants de l IFSIC dans.
Année universitaire Réalisé par: Dr. Aymen Ayari Cours Réseaux étendus LATRI 3 1.
3ème partie: les filtres
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
Résoudre une équation du 1er degré à une inconnue
Aire d’une figure par encadrement
Conversion analogique numérique et numérique analogique
Les fondements constitutionnels
ASI 3 Méthodes numériques pour l’ingénieur
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
Mise en forme en Mathématiques
1/65 微距摄影 美丽的微距摄影 Encore une belle leçon de Macrophotographies venant du Soleil Levant Louis.
Certains droits réservés pour plus d’infos, cliquer sur l’icône.
ELECTRICITE Hervé BOEGLEN IUT de Colmar Département R&T 2007.
Annexe Résultats provinciaux comparés à la moyenne canadienne
La formation des maîtres et la manifestation de la compétence professionnelle à intégrer les technologies de l'information et des communications (TIC)
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
DU TRAITEMENT DU SIGNAL
D’ UN CIRCUIT RLC DEGRADE
Les bascules et registres
Transcription de la présentation:

Programmation de systèmes embarqués 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 IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

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 IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Ch 1 : Introduction au microcontrôleur 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 IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

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 IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués 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 IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués 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. IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués 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. Horloge oscillateur externe : fosc fo = fosc/4 IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués 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. IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués 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 IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués 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é. IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués 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). Clk Out Compteur Entrée Sortie non accessible TMR0 IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués 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. Clk Out Compteur Entrée Diviseur IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués 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 Clk Out Compteur Entrée Diviseur ou pas Source Externe RA4 = T0CKl TMR0 IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués 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 ». Horloge fosc fo Clk Out Compteur Diviseur ou pas TMR0 IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués 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 IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués 3.1 Le registre des interruptions INTCON permet le contrôle des interruptions et leur localisation et indique la fin de compte du timer GIE EEIE TOIE INTE RBIE TOIF INTF RBIF Int non masquées autorisées Int EEPROM autorisée Int dépast timer autorisée Int externe (RB0/INT) autorisée Int Changt RB4-7 autorisée Dépast timer Int externe Changt RB4-7 1 : oui 0 : non IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués 3.2 Les registres des ports TRISA : indique la direction des lignes du port A 1 : entrée, 0 : sortie PORTA : lecture – écriture du contenu du port A TRISB : indique la direction des lignes du port B 1 : entrée, 0 : sortie PORTB : lecture – écriture du contenu du port B X Dir RA4 Dir RA3 Dir RA2 Dir RA1 Dir RA0 Dir RB7 Dir RB6 Dir RB5 Dir RB4 Dir RB3 Dir RB2 Dir RB1 Dir RB0 IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués 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 IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués OPTION A la mise sous tension, tous les bits sont positionnés à 1. NOT RBU INTEDG TOCS TOSE PSA PS2 PS1 PS0 RBi à Vcc Interruption externe Source d’horloge Front source externe Diviseur d’horloge Sélection du diviseur d’horloge 1 : non 0 : oui 1 : front + 0 : front - 1 : externe(*) 0 : fosc/4 1 : front – 0 : front + 1 : watchdog 0 : timer Timer : 000 : 2 001 : 4 … 111 : 256 Watchdog : 000 : 1 001 : 2 111 : 128 RB0 / INT (*) RB4/TOCKl IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués 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 IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués 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 IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués 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 IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués 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 = 0b01011100 permet d’écrire les 8 bits 01011100 à l’adresse 06 de la RAM IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués 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. IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués 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. IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués 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 IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués 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; IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

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

Programmation de systèmes embarqués 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; IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

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

Programmation de systèmes embarqués 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 IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués 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 IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués 5.3 cas du PIC Voir documentation en TP pour la programmation IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

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… IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Ch 2. Bases de filtrage analogique 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. IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués 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) IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués Exemple : Informations données par le chronogramme : Informations données par le spectre (donné ici pour f>0) : IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués 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. IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués 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 IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués 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 IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués 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. IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

2. Filtre et gabarit Un filtre permet de traiter différemment les différentes composantes spectrales d’un signal. Filtre H(f) = Y(f)/X(f) x(t) X(f) y(t) Y(f) IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués 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. IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués 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é. IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués 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. IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

2.2 Les 4 grandes familles de filtres Passe bas |H(f)| 20 log (|H(f)| échelle log en f IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Passe haut |H(f)| 20 log (|H(f)| échelle log en f IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Passe bande Coupe bande |H(f)| 20 log (|H(f)| échelle log en f Rq : se familiariser avec ces deux représentations, utilisées fréquemment et « mélangées ». |H(f)| 20 log (|H(f)| échelle log en f IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

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

Programmation de systèmes embarqués 3.2 Normalisation La normalisation permet d’obtenir des résultats utilisables pour tous les filtres des 4 familles citées ci-dessus. on pose alors 1 x1 0 dB a dB b dB x 20 log T IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués 3.3 Choix d’une fonction |T(x)| |T(x)| doit passer dans la canal défini par le gabarit. Exemple : Fonction de transfert de Butterworth pour a = -3 dB : , n ordre du filtre Pour x = 1 ( f = fp) TdB (1) = -3 dB. n est choisi pour obtenir TdB (x1)  b Autres fonctions : Bessel, Tchebychev IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués 3.4 Choix d’une fonction T(x) ayant ce module Pour un filtre de Butterworth -3dB : T(s) = 1/P(s) Ordre P(s) 1 1 + s 2 1 + 2 s + s² 3 1 + 2s + 2s² + s3 ou (1 + s)(1 + s + s²) 4 1 + 2,613s + 3,414s² + 2,613s3 + s4 ou (1 + 0,7653s + s²)(1 + 1,848s + s²) IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués 3.5 Choix d'un montage électronique 1. T(s) -> H(f) avec s = j f/fp 2. T(s) est un produit de fonctions de transfert du premier et du second ordre : les cellules du premier ordre son réalisées avec des structures passives RC. les cellules du second ordre à partir de structures actives. 3. Choix des composants et vérification / gabarit IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués Exemple de cellule du second ordre : la cellule de Sallen Key : Z4 + - Z1 Z2 Z3 IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués Pour un filtre passe-bas du second ordre R = Z1 = Z3 Y2 = jC2 Y4 = jC1 IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

4. Généralisation : passe-haut, passe-bande Dans le cas d’un filtre passe-haut, passe bande ou coupe-bande, la normalisation permet de se ramener à un gabarit normalisé de type passe- bas, comme spécifié ci-dessous les étapes 3 et 4 sont inchangées ( §3.3 et § 3.4) on revient à une fonction de transfert par dé-normalisation, en remplaçant s par sa valeur en fonction de j, f et fp. IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués 4.1 Normalisation d’un passe – haut 20 log T 20 log H fa fp 0 dB a dB 0 dB a dB 1 x1 x b dB b dB IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués 4.2 Normalisation d’un passe-bande 20 log H 20 log T 1 x1 0 dB a dB f’1 f1 fo f2 f’2 0 dB a dB f f b dB b dB IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

En guise de conclusion sur les filtres analogiques… Extrait du même article… Les filtres analogiques se distinguent par une facilité de mise en œuvre, un fonctionnement à des fréquences qui peuvent atteindre quelques gigahertz. Le revers de la médaille réside dans la sensibilité de ces composants aux conditions externes (température, humidité). La non-maîtrise de leurs tolérances nuit également à la précision du filtrage… surtout dans le cas de filtres exigeants. IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Et d’introduction sur les filtres numériques… Extrait du même article… Pour s’affranchir des limites des composants traditionnels, il existe une alternative : les filtres numériques. Les judicieux assemblages de résistances, de capacités, d’amplificateurs opérationnels des filtres analogiques sont ici remplacés par des algorithmes de calcul implémentés dans des microprocesseurs DSP ou des composants spécifiques du type FPGA. IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Ch 3. Introduction au filtrage numérique Un filtre numérique reçoit en entrée une valeur numérique xn et délivre en sortie une valeur numérique yn fonction de l’entrée xn, des entrées précédentes xn-i et des sorties précédentes yn-j Il est décrit par une équation de récurrence : yn = f(xn, xn-i, yn-j) IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués Filtre numérique 1.1 Définition Un filtre numérique est un algorithme de calcul qui transforme une séquence de nombre {xn}  en une autre séquence de nombres : {yn}. Le calcul algorithmique est effectué par Le µP d’un microordinateur Le DSP d’une carte son Un FPGA ( circuit logique programmable après sa conception) {xn} {yn} Filtre numérique IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

La séquence d’entrée {xn} est issue de la discrétisation d’un signal analogique x(t) aux instants nTe : x(nTe) = xn La séquence de sortie {yn}, un fois transformée en tension, devient la signal de sortie y(t) du filtre équivalent. [1] La discrétisation est double : échantillonnage (temps) et quantification (valeur). Nous ne tenons pas compte ici de l’erreur introduite par cette dernière (l’erreur de quantification), on suppose que la résolution de convertisseur est « suffisamment » élevée! Echantillonneur-Bloqueur (Féch) + CAN Filtre numérique {hn} H(z) {xn} {yn} CNA + Lissage éventuel x(t) y(t) Filtre anti-repliement (FAR) x(t) y(t) Filtre numérique utilisé analogiquement IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués 1.2 Equation de récurrence La relation générale entre les séquences {xn} et {yn} est Si les aj sont nuls, le filtre est dit itératif ou non-récursif Si les aj ne sont pas nuls, il est dit récursif. IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués 1.3 Exemple de filtre non récursif Équation de récurrence : Réponse : Les filtres non–récursifs sont à réponse impulsionnelle finie : RIF Ils sont toujours stables. xn n xn-1 yn IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués 1.4 Exemples de filtres récursifs Ex 1 équation de récurrence : La réponse à l’impulsion est hn = ½ (1/2)n Ce filtre possède une réponse impulsionnelle infinie, mais il est stable. n 1 2 3 4 xn yn-1 1/2 1/4 1/8 1/16 yn 1/32 xn n yn n IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués Ex 2 équation de récurrence : La réponse à l’impulsion est hn = (2)n. La séquence de sortie est divergente. Ce filtre possède une réponse impulsionnelle infinie, il est instable. Les filtres récursifs sont à réponse impulsionnelle infinie : RII Ils ne sont pas toujours stables. n 1 2 3 4 xn yn-1 8 yn 16 IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

2. Fonctions de transfert et Réponse Imp 2.1 Transformée en z On définit la transformée en z d’un signal échantillonné {xn} par Un formalisme plus complet permet de montrer que la transformée en z est l’équivalent, dans le monde numérique, de la transformée de Laplace, l’outil mathématique des signaux causaux de l’analogique. IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués Ex : Le signal {yn} = {xn-1} a pour transformée en z : xn yn n n n IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués On retiendra la propriété fondamentale : TZ[xn-1] = z-1 TZ[xn] = z-1.X(z) Qui s’étend à tout retard : TZ[xn-k] = z-k TZ[xn] = z-k.X(z) IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués 2.2 Fonction de transfert en z On définit la fonction de transfert d’un filtre numérique par : Ex : La fonction de transfert du filtre numérique qui retarde d’une unité s’écrit alors X(z) Y(z) Filtre numérique IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués Généralisation à un filtre quelconque : En regroupant les termes en Y(z) : IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués 2.3 Réponse impulsionnelle Soit {hn} la réponse d’un filtre à une impulsion xn = n La fonction de transfert H(z) du filtre est la transformée en z de hn : La séquence de sortie du filtre peut être obtenue par convolution de la séquence d’entrée avec la réponse impulsionnelle : xn= dn yn=hn n n n IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Echantillonneur-Bloqueur (Féch) + CAN 2.4 Filtre équivalent Ht En ajoutant les convertisseurs adéquats, on obtient, à partir du filtre numérique (algorithme) un filtre équivalent utilisable avec des signaux analogiques, et qui peut donc remplacer un filtre analogique : On déduit la fonction de transfert du filtre analogique Ht ainsi constitué en remplaçant z-1 par e-2jfTe = e-2jf/Féch dans H(z). Conséquence : Ht(f) est périodique de période Féch, comme e-2jf/Féch . Echantillonneur-Bloqueur (Féch) + CAN Filtre numérique {hn} H(z) {xn} {yn} CNA + Lissage éventuel x(t) y(t) Filtre anti-repliement (FAR) IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués Remarque Un filtre qui, à chaque instant nTe, reçoit xn et délivre xn-1 retarde le signal d’entrée de Te. En utilisant les propriétés de la transformée de Fourier : TF (x(t-a)) = X(f) e-2jfa, cette opération de retard temporel correspond dans le domaine fréquentiel à une multiplication par e-2jfTe. Ce qui justifie le fait de poser z-1 = e-2jfTe pour retourner dans le domaine analogique. IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués Ex : Soit un filtre issu d'un filtre numérique passe-bas parfait. Un tel filtre ne remplit son rôle que pour des signaux de fréquence f < Féch/2, soit des signaux "convenablement" échantillonnés. |Ht(f)| f Féch/2 IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués D’où… Tout filtre numérique est précédé d'un filtre passe-bas analogique qui élimine toute composante qui ne satisfait au théorème d'échantillonnage, c’est-à-dire toute composante de fréquence supérieure à Féch/2 IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués 2.5 Les types de filtres Un filtre numérique peut être construit pour avoir un effet le plus proche possible d’un filtre analogique connu : ce sont les filtres à réponse impulsionnelle infinie, récursifs. pour avoir un effet le plus proche possible d’un filtre analogique idéal : ce sont les filtres à réponse impulsionnelle finie, non-récursifs. IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

3. Filtres à réponse impulsionnelle finie 3.1 Méthode d’échantillonnage de la réponse impulsionnelle On part d'une fonction de transfert H(f) idéale On calcule sa réponse impulsionnelle h(t) par transformée de Fourier inverse On échantillonne cette réponse pour obtenir {hn} Ces échantillons sont les coefficients du filtre, ils permettent d’écrire la relation de récurrence IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués Mais… La formule générale n’est utilisable avec un calculateur que si le nombre de termes de la suite est fini. La sortie ne peut pas dépendre des entrées futures (système causal) donc n-k  n, soit k  0. L’équation de récurrence devient Elle comporte N termes, les N coefficients non nuls de la réponse impulsionnelle : RIF. IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués Illustration 1. Filtre idéal, ici passe-bas de fréquence de coupure 100 Hz 2. Calcul de la réponse impulsionnelle = TF-1(H(f)) Réponse impulsionnelle infinie : non réalisable. IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués Nécessité de ne garder que la partie « essentielle » 3. Fenêtrage de la réponse impulsionnelle : IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués Conséquences Tronquer la réponse impulsionnelle, pour obtenir une somme finie, équivaut à multiplier la réponse impulsionnelle par une fenêtre rectangulaire, donc à convoluer la réponse fréquentielle par un sinus cardinal. Conséquences : introduction d'oscillations dans les bandes passantes et atténuées de la réponse fréquentielle et élargissement de la zone de transition. L'erreur due à cette troncature sera atténuée en appliquant une fenêtre de pondération non rectangulaire (ex : Hamming) IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués 4. Echantillonnage de cette réponse pour obtenir hn Conséquence Périodisation de la réponse en fréquence à 1/Tech IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués 5. Décalage pour assurer la causalité Conséquence : Déphasage, linéaire en fréquence. IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués 3.2 Influence des fenêtres et du nombre de points IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués Remarques Un tel filtre est appelé Filtre à réponse impulsionnelle finie (RIF) Filtre itératif ( yn ne dépend que des xn-i) ou non-récursif Filtre à phase linéaire. Une méthode équivalente à celle présentée consiste à calculer les {hn} par périodisation de H(f) et décomposition en série de Fourier, puis effectuer un fenêtrage. IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués 3.3 Autres méthodes La méthode de la réponse impulsionnelle finie fait coïncider les réponses impulsionnelles souhaitée et réelle, mais introduit des erreurs sur la réponse fréquentielle. Une autre méthode permet d’être plus fidèle en fréquence. Il s’agit de la méthode d’échantillonnage de la réponse en fréquence souhaitée : on impose que la fonction de transfert passe par certains points de H(f), et n'ondule pas trop entre ces points. IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués Et toujours extrait du même article… « Pour une détermination optimale des coefficients, on fait appel aux algorithmes Parks-McClellan et Remez. Cette méthode est basée sur une distribution uniforme de l’ondulation sur l’ensemble de la bande passante et de l’affaiblissement sur toute la bande de réjection. Les filtres FIR résultants ou filtres “equiripple” sont nettement plus performants que les filtres FIR fenêtrés et leur réponse en phase est également linéaire. La méthode recherche itérativement les paramètres afin qu’avec un ordre minimal, le gabarit soit respecté au mieux. Par rapport à un filtre FIR fenêtré, l’ordre d’un filtre FIR “equi-ripple” est nettement inférieur (à gabarit identique). L’ondulation dans la bande passante et l’affaiblissement minimal dans la bande de réjection sont configurables séparément. » IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

4. Filtres à réponse impulsionnelle infinie 4.1 Principe On part d'un filtre réalisable en analogique, de fonction de transfert H(f), obtenue comme expliqué dans le cours "filtrage analogique". On exprime la fonction de transfert obtenue H(f) en fonction de la variable de Laplace p = j= j 2f : H(p) On remplace la variable p par une fonction de z, cette transformation doit permettre d'obtenir Ht(f) le plus proche possible de H(f). IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués On obtient une fonction de transfert en z que l’on peut mettre sous la forme : Cette expression permet de calculer la valeur de yn en fonction de xn et des échantillons précédents : IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués Démonstration : IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués Remarques : Si les ai sont nuls, on retrouve un filtre à RIF avec bi = hi, sinon, un tel filtre possède une réponse implusionnelle infinie. yn est calculé de manière récursive (en utilisant les yn-i) Un tel filtre est appelé Filtre à réponse impulsionnelle infinie (RII) Filtre récursif Filtre transversal IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués 4.2 Cas de la transformée bilinéaire Le passage de l’analogique au numérique, si les signaux sont échantillonnés à la fréquence Féch = 1/Te, se fait par : Cette transformation effectue une compression en fréquence : une fréquence f0 d’un filtre analogique H(f) devient pour le filtre numérique Ht(f) IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués Ainsi, l’intervalle de fréquences [0, [ est transformé en [0, Féch/2[. Donc si on souhaite obtenir un filtre numérique Ht(f) de fréquence de coupure fto, il faut partir d’un filtre de fréquence de coupure : Remarque : pour f << Féch, cette compression est très faible. IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués 4.3 Exemple (à compléter en TD) Filtre passe bas du premier ordre, Féch = 10 000 Hz Fréquence de coupure souhaitée = 1 000 Hz H(f) = IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués Calcul de la fréquence de coupure analogique à prévoir : fc = H(p) = IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués Transformée bilinéaire : H(z) = IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués Equation de récurrence : IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

5. Mises en œuvre 5.1 Mise en œuvre x(t) xn yn y(t) Analog Input 0 échantillonnage + numérisation CAN de la carte d’acquisition Calculateur  PC + programme Analog Output 0 restitution CNA de la carte d’acquisition x(t) xn yn y(t) IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

Programmation de systèmes embarqués 5.2 Performances IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués

En guise de conclusion sur les filtres… Et toujours extrait du même article… IUT ANNECY MPh-MC/2009-2010 Programmation de systèmes embarqués