La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Programmation de systèmes embarqués

Présentations similaires


Présentation au sujet: "Programmation de systèmes embarqués"— Transcription de la présentation:

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

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

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

6 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/ Programmation de systèmes embarqués

7 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/ Programmation de systèmes embarqués

8 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/ Programmation de systèmes embarqués

9 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/ Programmation de systèmes embarqués

10 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/ Programmation de systèmes embarqués

11 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/ Programmation de systèmes embarqués

12 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/ Programmation de systèmes embarqués

13 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/ Programmation de systèmes embarqués

14 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/ Programmation de systèmes embarqués

15 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/ Programmation de systèmes embarqués

16 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/ Programmation de systèmes embarqués

17 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/ Programmation de systèmes embarqués

18 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/ Programmation de systèmes embarqués

19 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/ Programmation de systèmes embarqués

20 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/ Programmation de systèmes embarqués

21 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/ Programmation de systèmes embarqués

22 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/ Programmation de systèmes embarqués

23 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/ Programmation de systèmes embarqués

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

25 Programmation de systèmes embarqués
On peut utiliser les bases 2, 10 ou 16 : PORTB = 0b ; 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/ Programmation de systèmes embarqués

26 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/ Programmation de systèmes embarqués

27 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/ Programmation de systèmes embarqués

28 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 = 0b ; PORTB = 0b ; IUT ANNECY MPh-MC/ Programmation de systèmes embarqués

29 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/ Programmation de systèmes embarqués

30 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 = 0b ; IUT ANNECY MPh-MC/ Programmation de systèmes embarqués

31 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/ Programmation de systèmes embarqués

32 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/ Programmation de systèmes embarqués

33 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/ Programmation de systèmes embarqués

34 Programmation de systèmes embarqués
5.3 cas du PIC Voir documentation en TP pour la programmation IUT ANNECY MPh-MC/ 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… IUT ANNECY MPh-MC/ Programmation de systèmes embarqués

36 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/ Programmation de systèmes embarqués

37 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/ Programmation de systèmes embarqués

38 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/ Programmation de systèmes embarqués

39 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/ Programmation de systèmes embarqués

40 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/ Programmation de systèmes embarqués

41 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/ Programmation de systèmes embarqués

42 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/ 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. Filtre H(f) = Y(f)/X(f) x(t) X(f) y(t) Y(f) IUT ANNECY MPh-MC/ Programmation de systèmes embarqués

44 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/ Programmation de systèmes embarqués

45 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/ Programmation de systèmes embarqués

46 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/ Programmation de systèmes embarqués

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

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

49 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/ Programmation de systèmes embarqués

50 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/ Programmation de systèmes embarqués

51 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 x1 0 dB a dB b dB x 20 log T IUT ANNECY MPh-MC/ Programmation de systèmes embarqués

52 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/ Programmation de systèmes embarqués

53 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/ Programmation de systèmes embarqués

54 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/ Programmation de systèmes embarqués

55 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/ Programmation de systèmes embarqués

56 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/ Programmation de systèmes embarqués

57 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/ Programmation de systèmes embarqués

58 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 x1 x b dB b dB IUT ANNECY MPh-MC/ Programmation de systèmes embarqués

59 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 f f’2 0 dB a dB f f b dB b dB IUT ANNECY MPh-MC/ Programmation de systèmes embarqués

60 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/ Programmation de systèmes embarqués

61 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/ Programmation de systèmes embarqués

62 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/ Programmation de systèmes embarqués

63 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/ Programmation de systèmes embarqués

64 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/ Programmation de systèmes embarqués

65 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/ Programmation de systèmes embarqués

66 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/ Programmation de systèmes embarqués

67 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/ Programmation de systèmes embarqués

68 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/ Programmation de systèmes embarqués

69 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/ Programmation de systèmes embarqués

70 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/ Programmation de systèmes embarqués

71 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/ Programmation de systèmes embarqués

72 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/ Programmation de systèmes embarqués

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

74 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/ Programmation de systèmes embarqués

75 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/ Programmation de systèmes embarqués

76 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/ Programmation de systèmes embarqués

77 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/ Programmation de systèmes embarqués

78 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/ Programmation de systèmes embarqués

79 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/ Programmation de systèmes embarqués

80 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/ Programmation de systèmes embarqués

81 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/ Programmation de systèmes embarqués

82 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/ Programmation de systèmes embarqués

83 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/ Programmation de systèmes embarqués

84 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/ Programmation de systèmes embarqués

85 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/ Programmation de systèmes embarqués

86 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/ Programmation de systèmes embarqués

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

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

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

90 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/ Programmation de systèmes embarqués

91 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/ Programmation de systèmes embarqués

92 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/ Programmation de systèmes embarqués

93 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/ Programmation de systèmes embarqués

94 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/ Programmation de systèmes embarqués

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

96 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/ Programmation de systèmes embarqués

97 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/ Programmation de systèmes embarqués

98 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/ Programmation de systèmes embarqués

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

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

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

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

103 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/ Programmation de systèmes embarqués

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

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


Télécharger ppt "Programmation de systèmes embarqués"

Présentations similaires


Annonces Google