materiel tp processeurs de signaux

Upload: tonprince-knight-ad

Post on 03-Apr-2018

223 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/28/2019 Materiel Tp Processeurs de Signaux

    1/10

    MATERIEL TP PROCESSEURS DE SIGNAUX

    I. Description gnrale

    Le systme sur lequel vous allez travailler consiste en une carte externe ADSP-21161N EZ-

    KIT relie un PC par une liaison USB (voir Fig. 1).

    Figure 1 : description du systme complet

    Une chane de dveloppement est installe sur ce PC, et vous permet de programmer la carteet le DSP quelle contient.

    II. Carte ADSP-21161N EZ-KIT

    La Fig. 2 dcrit larchitecture gnrale de la carte ADSP-21161N EZ-KIT. On y reconnat enparticulier :- les entres-sorties analogiques permettant de faire de lacquisition/restitution de signal,- le processeur de signal ADSP-21161N programmer pour traiter ces signaux.

    Figure 2 : architecture de la carte ADSP-21161N EZ-KIT

    PC

    carteDSP

    Liaison USB

    chanede

    dveloppement

    alimentation

    mmoire

    E/S analogiques

    interface PC

    Processeur

    de signal

  • 7/28/2019 Materiel Tp Processeurs de Signaux

    2/10

  • 7/28/2019 Materiel Tp Processeurs de Signaux

    3/10

    IV. Chane de dveloppement VisualDSP++

    Vous aller utiliser la chane de dveloppement VisualDSP++ de chez Analog Device pourprogrammer le DSP prsent sur la carte dcrite au II.Son rle est de vous permettre de facilement :

    - diter des fichiers C et/ou C++,- compiler et/ou assembler ces fichiers en langage objet,- raliser ldition de liens afin de gnrer un excutable adapt la carte cible,- transfrer cet excutable sur la carte cible,- le faire excuter par le DSP, ventuellement en mode debugger.

    Cette chane trs complte contient bien dautres spcificits que nous ne verrons pas durantce cycle de TP.

  • 7/28/2019 Materiel Tp Processeurs de Signaux

    4/10

    GNRALITS SUR LES INTERRUPTIONS

    V. Type dinterruptions de lADSP-21161N

    LADSP-21161N comporte en tout 34 interruptions diffrentes. Les principaux typesdinterruptions sont :

    - les interruptions lies aux ports dentre/sortie (ports srie, DMA, ),- les interruptions internes (under et overflow, timer, ),- les interruptions software internes (SFT0 3) ,- les interruptions hardware externes (IRQ0 2).

    VI. Mcanisme des interruptions de lADSP-21161N

    VI.1. Prise en compte des interruptions

    Le registre IRPTL tant accessible en criture, lutilisateur peut gnrer une demandedinterrution par logiciel, quelle que soit cette interruption.Le registre IMASK est positionner par lutilisateur et lui permet de slectionner lesdiffrentes interruptions qui seront prisent en compte par le DSP. Il sagit du masquedes interruptions .Le bit n 12 (IRPTEN) du registre MODE1 accessible en criture permet dactiver la

    prise en compte des interruptions prcdemment slectionnes dans le masque desinterruptions. Lutilisateur peut donc le voir comme un interrupteur gnral de mise en

    marche ou darrt de lcoute des interruptions.

    demandedinterruption i

    demandedinterruption i+1

    interruptionvalide

    registreIRPTL

    registreIMASK

    Bit IRPTENdu re istre MODE1

    mmorisationde la demande

    masqueindividuel

    validationglobale

  • 7/28/2019 Materiel Tp Processeurs de Signaux

    5/10

    VI.2. Branchement ladresse du sous-programme dinterruption et retour

    Si une demande dinterruption est reue par le DSP et que cette interruption est valide(voir paragraphe prcdent), alors le DSP ralise les tches suivantes :- recherche de ladresse du sous-programme dinterruption dans la table du vecteur des

    interruptions,- sauvegarde de ladresse courante contenue dans le du Program Counter (PC) surla pile pour pouvoir revenir cette adresse aprs interruption,

    - sauvegarde du contexte minimum sur la pile si linterruption est hardware externe(seuls les 3 registres MODE1, ASTATx et ASTATy sont alors placs sur la pile),

    - branchement ladresse du sous-programme dinterruption pour lexcuter.

    A la fin de linterruption, le retour seffectue de la manire suivante :- dpilage de ladresse de retour dans le PC,- dpilage du contexte minimum si linterruption tait hardware externe.

    Toutes ces oprations sont ralises par hardware et sont donc transparentes pourlutilisateur.

    VI.3. Imbrication des interruptions

    Aprs un reset du DSP, les interruptions sont par dfaut ininterruptibles, cest direquune interruption ne peut en interrompre une autre.

    Ce mode de fonctionnement peut toutefois tre autoris par lutilisateur en mettant 1 lebit n11 (NETSM) du registre MODE1. Dans ce cas, le DSP va se comporter commesuit :- supposons que le DSP soit en train dexcuter une interruption.- supposons quune demande dinterruption arrive.- si cette demande est de plus forte priorit que linterruption en cours dexcution, elle

    est alors prise en compte. Le DSP va donc immdiatement excuter la nouvelleinterruption.

    La priorit est fixe par lordre des bits du registre IRPTL, linterruption correspondantau bit n0 tant la plus prioritaire. Lordre de ces bits est dcrit sur la figure suivante.

  • 7/28/2019 Materiel Tp Processeurs de Signaux

    6/10

  • 7/28/2019 Materiel Tp Processeurs de Signaux

    7/10

    TP Processeur de Signaux 1Prise en main des outils Analog Device et minimisation du temps de calcul

    Lobjectif de ce premier TP est dune part de prendre en main la chane de dveloppementVisualDSP++, mais galement dutiliser les spcificits de cette chane et du DSP employ

    pour amliorer les performances en temps de calcul.

    Ouvrir avec la chane de dveloppement VisualDSP++ le projet ProdScalVect

    situ dans le rpertoire Produit scalaire vecteur .Ce projet contient 2 fichiers diffrents :- un fichier C (ProdScalVect.c) ralisant le produit scalaire de deux vecteurs,- un fichier assembleur (benchmark.asm) contenant des routines permettant de

    compter le nombre de cycles ncessaires au DSP pour excuter une partie du codeprcdent.

    Ouvrir le fichier ProdScalVect.c laide de lditeur de la chane dedveloppement et comprendre sa structure

    VII. Performances de dpart

    Gnrer un excutable partir de ce projet (icne Rebuilt All).Analyser, dans le fichier assembleur, la structure gnrale de la boucle servant raliser le

    produit scalaire. Servez-vous pour cela du code dsassembl, et/ou du fichier ProdScalVect.s contenu dans le sous-rpertoire Debug du projet.Fates excuter votre programme par le DSP.Quel est le nombre de cycles ncessaires la ralisation de ce produit scalaire ?Pouvez-vous estimer le temps de calcul ncessaire pour raliser cette opration ?

    VIII. Emploi de loptimiseur C

    Autorisez le compilateur raliser les optimisations quil juge ncessaire (Project ProjectOptions Gnral (1) Enable optimization), puis rgnrez votre excutable.Comparez les rsultats (structure boucle assembleur, nombre de cycle et temps de calcul) avecle cas prcdent.

    IX. Emploi de larchitecture super Harvard

    Modifier le fichier ProdScalVect.c afin de placer un des deux vecteurs dans le bloc

    mmoire interne pm du DSP, puis rgnrez votre excutable.Comparez les rsultats (structure boucle assembleur, nombre de cycle et temps de calcul) avecle cas prcdent.

    X. Emploi des deux units de calcul (mode Single Instruction MultipleData)

    Autorisez le compilateur utiliser les 2 units de calcul prsentes sur le DSP (Project Project Options Gnral (2) effacer -no-simd dans additional options), puis rgnrezvotre excutable.Comparez les rsultats (structure boucle assembleur, nombre de cycle et temps de calcul) avec

    le cas prcdent.Conclusion gnrale sur lamlioration du temps de calcul ?

  • 7/28/2019 Materiel Tp Processeurs de Signaux

    8/10

    TP 2 PROCESSEUR DE SIGNAUXAcquisition-Restitution par interruptions

    Le projet AcqRest permet de gnrer un excutable ralisant lacquisition et la restitution dunsignal analogique sur la carte ADSP-21161N EZ-KIT la frquence de 48kHz.

    XI. Programme dacquisition-restitution

    - Editer et comprendre le programme Main.c.- Gnrer lexcutable correspondant et vrifier son fonctionnement laide

    dun gnrateur de signaux et dun oscilloscope.

    XII. Performances de la chane dacquisition-restitution

    - laide dun signal adquat, vrifiez la prsence dun filtre anti-repliement ausein de la chane dacquisition-restitution.

    - Dterminer la tension maximale au-del de laquelle la chane sature.- Mesurez enfin le retard global introduit par cette chane entre son entre et sa

    sortie et comparez le la priode dchantillonnage.

    XIII. Retard d au DSP : temps dexcution dune interruption

    - Mesurez le nombre de cycles ncessaire au DSP pour excuter le sous-programme dinterruption et dduisez-en le temps dexcution du sous-programme dinterruption.

    - Daprs vous, do vient la majeure partie du retard introduit par la chanedacquisition-restitution mesur dans la partie I. ?

    XIV. Ajout dune interruption

    Les boutons-poussoirs SW5, SW6 et SW7 de la carte ADSP-21161N EZ-KIT ont t

    respectivement relis aux pattes IRQ0, IRQ1 et IRQ2 du DSP. Ceci permet de gnrer desinterruptions hardware externes manuellement.

    - Ajouter une interruption de plus haute priorit permettant de mettre en marcheet darrter lacquisition-restitution dun signal analogique en appuyant sur undes boutons-poussoirs de la carte.

    - Tester le fonctionnement de votre excutable.- tablir le chronogramme de votre application.

  • 7/28/2019 Materiel Tp Processeurs de Signaux

    9/10

    TP 3-4 PROCESSEUR DE SIGNAUXMise en uvre dun filtrage RIF

    On dsire raliser un filtrage RIF en temps rel laide de la carte ADSP-21161N EZ-KIT.On dispose pour cela de deux jeux de coefficients fournis dans les fichiers coefRIF1.h et coefRIF2.h dfinissant deux filtres RIF diffrents. Ces deux jeux de coefficients sontaccessibles dans votre application puisquils sont inclus au programme principal (voir leslignes #include ).

    Le cahier des charges de cette application est le suivant :- filtrage RIF en temps-rel sur des signaux chantillonns fe = 48 kHz par les

    filtres RIF 1 ou 2,- marche/arrt du filtrage par bouton-poussoir (interruption de plus forte priorit),- choix du filtre par bouton-poussoir (interruption de priorit intermdiaire).

    Vous allez adopter une dmarche progressive pour dvelopper cette application.

    XV. Conception de la structure de lapplication

    - tablir un chronogramme illustrant le fonctionnement de lapplicationcomplte.

    - tablir lalgorithme de votre application complte, ainsi que les diffrentesinterruptions ncessaires.

    - tablir lalgorithme dtaill du filtrage RIF seul.

    XVI. Programmation de lapplication et tude des filtres

    - Mettre au point la partie filtrage seule en utilisant le filtre RIF 1.- Aprs vous tre assur du bon fonctionnement de votre programme, donner les

    caractristiques des filtres RIF 1 et 2.- Ajouter les interruptions ncessaires pour remplir le cahier des charges de

    lapplication complte.

    XVII. Amlioration des performances de la partie filtrage seule

    - Amliorer les performances de la partie filtrage de votre application enemployant toutes les techniques que vous connaissez (optimisation, mmoireinterne DM et PM, mode SIMD). Mesurez ces performances en comptant lenombre de cycles ncessaire au DSP pour raliser le filtrage seul, puis enanalysant le code assembleur gnr par le compilateur.

    - Employez ladressage circulaire (page 2-33 de la doc VisualDSP++4.0 C/C++Compiler) pour amliorer les performances obtenues et comparez avec lesrsultats prcdents.

    - Employez la fonction fir fournie dans la bibliothque du DSP (page 4-76de la doc VisualDSP++4.0 C/C++ Compiler) pour amliorer les performancesobtenues et comparez avec les rsultats prcdents.

    - Daprs-vous, quel est lordre maximum du filtre RIF que lon peut employeravec ce DSP cette frquence dchantillonnage ?

  • 7/28/2019 Materiel Tp Processeurs de Signaux

    10/10

    TP 5 PROCESSEUR DE SIGNAUXAnalyseur de spectre temps-rel

    On dsire raliser un analyseur de spectre temps rel laide de la carte ADSP-21161N EZ-KIT.

    Le cahier des charges de cette application est le suivant :- aucun chantillon du signal dentre ne doit tre manqu (cette condition traduit la

    contrainte temps-rel de lapplication),- le calcul du spectre seffectue en temps-rel sur des blocs disjoints (pas de

    recouvrement),- laffichage du rsultat se fera sur oscilloscope, la mme cadence que

    lacquisition.

    Le nombre de tches ncessaires cette application est donc de trois :- acquisition du signal dans un bloc,- calcul de la TFD du bloc laide dun algorithme de FFT (voir documentation

    C/C++ Compiler and Library Manual, page 5-40) puis du spectre de puissance,- affichage du rsultat.

    Vous allez adopter une dmarche progressive pour dvelopper cette application. Crez toutdabord un nouveau projet dans votre rpertoire de travail et ajoutez-y les fichiers source,header et linker ncessaires (voir les anciens projets que vous avez utiliss).

    XVIII. Conception de la structure de lapplication

    - Dterminez le nombre de tableaux ncessaires au bon fonctionnement de cetteapplication (inspirez vous du nombre de tches ncessaires, on a normalement1 tableau par tche).

    - tablir un chronogramme illustrant le fonctionnement de lapplicationcomplte, ainsi que les diffrentes interruptions ncessaires .

    - tablir lalgorithme de votre application.

    XIX. Programmation de lapplication et tude des filtres- A vous de jouer !!