SlideShare une entreprise Scribd logo
Développement pour une plateforme
DSP
   Mise au point de l ’algorithme
       Prototypage, simulation haut-niveau
            Matlab
            Langage C sur PC
   Implémentation DSP
       Développement sur carte d'évaluation
            Langage C
            Cartes EVM, SDK
            Noyau temps-réel (DSP/BIOS)
       Optimisation des parties critiques
            Assembleur
       Outils de débogage
            Simulateur
            Émulateur
            Boundary scan JTAG (Norme IEEE 1179.1)
            Communication temps-réel avec un PC hôte

                                                        2
Développement pour un DSP

 Outils de           Compilateur      *.asm
conception    *.c
                         C



  IDE        *.asm   Assembleur       *.obj   *.lst



 Editeur
de Texte     *.cmd     Linker         *.out   *.map




                        Simulateur
                                              *.hex       DSP


                                          Chargement
                                          sur la cible


                                                                 3
C vs. assembleur
   Assembleur                             Langage C
       Langage bas-niveau                     Langage de plus haut-
            Fastidieux                         niveau
            Jeux d’instructions                    Plus rapide à coder
             complexes et irréguliers               Meilleure portabilité
            Spécifique à chaque               Code machine généré
             constructeur                       moins efficace
       Plus puissant                               Malgré l’optimisation par
            Accès direct à certains                 le compilateur
             registres inconnus du C           Outils de développement
       Nécessaire pour une                         Noyau temps-réel
        optimisation poussée                         (DSP/BIOS)
                                                    Configuration de la carte
                                                    Librairies de calculs
                                                     optimisées (DSPLIB)


                                                                                 4
Outils d'aide au développement

                  User Application

             Drivers


               DSP/BIOS™              Dsplib
     CSL     Kernel/Scheduler         Imglib


                                     CODEC
    Timer McBSP EMIF     CPU

            DSP                        DIP
                                     Switches
             Target Board

                                                5
CSL (Chip Support Library)
   Librairie pour faciliter         C67x™ DSP Modules
    l'utilisation des                CHIP
    périphériques internes du
                                     DAA
    DSP
   Plateformes C5000 et C6000       DAT
    Texas Instruments                DMA
   Accessible depuis le             EBUS
    langage C
                                     GPIO
   Organisation en modules          HPI
       Un module par périphérique   IRQ
                                     MCBSP
                                     PLL
                                     PWR
                                     UART
                                     WDTIM
                                                         6
Avantages d'une librairie de support
de type CSL
   Abstraction du matériel à travers une API logicielle
       Configuration
       Accès aux ressources
       Macros pour accéder au niveau des contenus de registres
   Intégré au noyau temps-réel DSP/BIOS
       Interface graphique CSL
   Facilitation du développement
       Méthodes standards d'accès aux périphériques
       Temps de développement réduit
       Programmation à plus haut-niveau
       Utile pour compenser l'augmentation de la complexité des
        processeurs et des applications



                                                                   7
Librairies spécialisées (DSPLIB, IMGLIB)

   Librairies de support pour le calcul
     Traitement  du signal ou des images
     Déjà programmées
     Optimisées
     Utilisables depuis le langage C
   Fonctionnalités de base
     FFT
     Filtrage
     Mathématiques        et trigonométrie
     Calcul   matriciel



                                              8
Propriétés des systèmes temps-réel
   Piloté par évènements
     Synchrones (chronomètre)
     Asynchrones (interruptions des E/S)
   Contraint dans le temps
       Contraintes dures (deadlines critiques)
       Contraintes souples (deadlines non critiques)
   Concurrence de l'exécution
     Contraintes sur plusieurs traitements en parallèle
     Nécessite un ordonnancement
            multi-tâches (plusieurs traitements à la fois)
            préemptif (toute tâche peut être interrompue par une tâche plus prioritaire)
   Déterministe et fiable
       Comportement du système prédictible
            Temps de réponse bornés




                                                                                            9
Système temps-réel DSP BIOS
   Noyau temps-réel
     Ordonnanceur   temps-réel
     Gestion multi-threads préemptive
   Outils d'analyse temps-réel
     Débogage     sans interruption de l'exécution
     Profiling, vision des threads
   Intégration avec
     Real-time data exchange (RTDX)
        Communication hôte↔DSP pendant l'exécution

     Chip   Support Library (CSL)



                                                      10
Stratification des traitements sous
DSP/BIOS
      Hard Real-time
                            1st-TIER
Interruptions matérielles     Traitement par échantillon
                              Réaction à la microseconde


                            2nd-TIER
Interruptions logicielles     Traitement par blocs
                              Réaction à la milliseconde



                              Traitements ordonnancés
      Multi-tâche             Exécution concurrente




  Tâche de fond (idle)        S'il reste du temps


      Soft Real-time
                                                            11
Mise en œuvre et implémentation de
         filtres RIF et RII




                                     12
Méthodologie d'implantation d'un filtre
   Étape 0 : Choix du filtre
        Choix du filtre et calcul des coefficients

   Étape 1 : Choix de structure
        Choix d'un schéma d'implantation
        Écriture des équations correspondantes
   Étape 2 : Choix algorithmiques
      Choix de l'implantation mémoire et des variables
      Écriture de l'algorithme
   Étape 3 : Choix numériques
        Choix du format Qk
        Écriture du programme

   Étape 4 : Validation
        Définir un protocole de test et l'appliquer
   Etape 5 : Optimisation


                                                          13
Étape 1 : Schéma et équations
  |H(f )|   pass-band                        stop-band

      1




                          fc : cut-of f f requency               fs/2       f (norm)
                                      (a)


  |H(f )|   pass-band   transition band        stop-band                |H(f )|
   (dB)                                                                 (linear)
     p                                                                 1     p

      0                                                                 1
                                                                        1         p

                                                     pass-band
     -3
                                                       ripple



                                                     stop-band
                                                       ripple
     s                                                                    s



                                                                 fs/2       f (norm)
                                 fs b : stop-band f requency
                              fc : cut-of f f requency
                            fpb : pass-band f requency
                                      (b)
Méthodes de synthèse d'un filtre


   Il existe de nombreuses méthodes
     Méthode  de la fenêtre
     Optimisation par moindres carrés
     Calcul des coefficients par approximation de
      tchebycheff
     Par TFD récursive
     etc.
Synthèse de filtres
Synthèse de filtre
Synthèse de filtre
Synthèse de filtre
Synthèse de filtre
Synthèse de filtre
Étape 1 : Schéma et équations

 Exemple sur une cellule RII du 2e ordre


     s          wn     b0
xn                          yn
                z-1
          -a1 w b1               wn  sxn  a1wn1  a2 wn2
               n-1

                z-1
                                 yn  b0 wn  b1wn1  b2 wn2
          -a2          b2
                                   Équations correspondantes
                wn-2
         Forme directe II

                                                               22
Étape 2 : Variables et algorithme
                                              Entrées :
       coefs             dbuffer               x (contient xn)
0        s         0      wn-1       w(n-1)    dbuffer (contient wn-1 et wn-2)
                                               coefs (contient les coefficients)
1        a1        1      wn-2       w(n-2)
                                              Variable temporaire :
2        a2            tableau des             w (recevra wn)
3        b2              retards
                                              Calcul
4        b1                                    wn ← s * xn – a1 * w(n-1) – a2 * w(n-2)
5        b0                xn        x         y ← b0 * wn + b1 * w(n-1) + b2 * w(n-2)
    tableau des                               Mise à jour retards
                        ? puis yn    y
    coefficients
                                               w(n-2) ← w(n-1)
                        ? puis wn    w         w(n-1) ← wn
                         variables            Sorties :
                       temporaires             y (reçoit yn)
                                               dbuffer (contient wn'-1 et wn'-2 pour n'=n+1)
         État de la mémoire
    lors de l'appel de la fonction
                                                                                               23
Étape 3 : Format Qk et programme C
                                               int coefs[6];
        x(n)       Q15                         int dbuffer[2];

        s          Q15                         int cellule(int x) {
        ai         Q15                           int w;
                                                 int y;
        bi         Q15
                                               /* Calcul */
        wk         Q15                         w=((long)coefs[0]*x
                                                  +(long)coefs[1]*dbuffer[0]
                                                  –(long)coefs[2]*dbuffer[1]) >> 15;
                                               y=((long)coefs[5]*w
                                                  +(long)coefs[4]*dbuffer[1]
Conversion algorithme (calcul sur des réels)      +(long)coefs[3]*dbuffer[0]) >> 15;
vers programme (calcul en format Qk)
                                               /* Mise à jour retards */
                                               dbuffer[1]=dbuffer[0];
           s*x                                 dbuffer[0]=w;
          devient
                                               /* Sortie */
    (coefs[0]*x)>>15                           return y;
  pour un résultat en Q15                      }



                                                                                   24
Étape 3 : Programme détaillé

   Si programmation       ACC=x(n)  s
    en assembleur,         ACC=ACC - a1  w(n-1)
    nécessité de           ACC=ACC - a2  w(n-2)
    décomposer en          w(n)=ACC>>15
                           ACC=w(n)  b0
    calculs élémentaires
                           ACC=ACC + b2  w(n-2)
     Algorithmedétaillé   ACC=ACC + b1  w(n-1)
     Conversion en        y(n)=ACC>>15
      assembleur           w(n-2)=w(n-1)
                           w(n-1)=w(n)




                                                   25
Implantation mémoire pour cellules en
cascade
            coefs                     dbuffer
                                 0    w1(n-1)
       0      s                                 cellule 1
                                 1    w1(n-2)
       1     a11
                                2+1   w2(n-1)
       2     a12
                                                cellule 2
                    cellule 1   2+2   w2(n-2)
       …     b12
       …     b11
       5     b10
      5+1    a21
      5+2    a22
       …     b22    cellule 2
             b21
             b20


                                                            26
Filtres RIF




Structure
         transverse
Implémentation par
  Buffer linéaire
  Buffer circulaire



                           27
Structures pour filtre RIF
    Structure transverse avec ligne à retard
                             y n   b0 xn   b1 xn  1  ....  bN 1 xn  N  1
                                                -1                -1                              -1
                      x(n)                  z                 z                               z



                                        b                 b                  b                              b
                                        0                 1                  2                                  N-1




                                                     +                   +                              +                 y (n)


    Structure en treillis (filtres adaptatifs)
                  y0(n)                                  y1(n)                       y2(n)                                   y3(n)
                                                     +                           +                                    +
               x(n)
                                   k1                                   k2                         k3

                                                         u1(n)                       u2(n)                                   u3(n)
                u0(n)        z-1                     +            z-1            +           z-1                      +



    yi(n) = yi-1(n) + ki ui-1(n) et ui(n) = k1 yi-1(n) + ui-1(n-1)
    avec y0(n)=u0(n)=x(n).                                                                                                           28
Structures pour filtre RIF

    Structures en cascade:
                              N 1       k  b  b z  1  b z  2  ... b              N  1
                     H z  
                                                                                                
                                 bk z                                                z         
                                                 0    1         2               N 1
                              k 0
                                                                                   
                                                                   N  1 z   N  1 
                                     b 1 b  2                  b           
                             b 1   1 z         2 z     ...                   
                               0 b              b                  b                 
                                     0            0                 0                
                                   M
                             b  1  b z  1  b
                                                            z 2 
                                                                  
                               0
                                 k 1      k ,1        k ,2      
  x(n)   b0                                                                                      y (n)
                                +                        +                                   +

              z -1                        z -1                             z -1
                        b 1,1                    b 2,1                             b   M,1
                                +                        +                                   +
              z -1                        z -1                             z -1
                        b 1,2                    b 2,2                             b   M,2




                                                                                                         29
Filtre RIF par structure transverse

   Deux aspects
     Mise     à jour de la mémoire
         A chaque réception d’une nouvelle donnée x(n)
     Calcul    du filtre
       ACCU=0
       for i=0 to N-1:
              ACCU ← ACCU + h(i)   x(n-i)
         Sortie de y(n)=ACCU




                                                          30
N 1
                                                       y n    bi xn  i 
Buffer linéaire                                                i 0



           Schéma "état mémoire"      Schéma de structure de filtre

                     x(n)                              y(n)
           xtab               xtab
     0    x(n-1)         0    x(n)       b0
     1    x(n-2)         1   x(n-1)      b1
           …             2   x(n-2)      b2
           …                   …         …
           …                   …         …
           …                   …         …
    N-2 x(n-N+1)       N-2 x(n-N+2)      bN-2
    N-1   x(n-N)       N-1 x(n-N+1)      bN-1
                             x(n-N)


            Mise à jour du buffer     Calcul de y(n)
                                                                             31
N 1
                                                               y n    bi xn  i 
Buffer circulaire                                                      i 0



                  Schéma "état mémoire"       Schéma de structure de filtre

                        x(n)                                          y(n)
        xtab                          xtab
  0    x(n-k+1)                0   x(n-k+1)     bk+1
  1       …                    1       …        …

       x(n-N+1)                    x(n-N+1)     bN-1

        x(n-N)             idx        x(n)      b0

 idx    x(n-1)                      x(n-1)      b1

        x(n-2)                      x(n-2)      b2
 N-2      …                N-2         …        …
 N-1    x(n-k)             N-1      x(n-k)      bk




              Mise à jour du buffer           Calcul de y(n)
                                                                                     32
Quantification des coefficients RIF

   Virgule fixe:                                     N 1

     B=16  bits pour h(i) , x(n-i) et y(n)   y n    hi xn  i 
                                                      i 0
     40 bits pour les accumulateurs

   Représentation Qk
     Coefficient     de magnitude maximale:
          hmax = max |h(i)|
     Nombre      de bits nécessaires pour la partie entière :
          BE = log2(hmax)
     Codage      Qk avec k = B – BE
          h(i) = round(h(i)/2k)



                                                                      33
Filtre RIF avec buffer circulaire en
assembleur
                                    N 1
                            y n    hi xn  i 
N       .set      32
; adr_x+d supposé chargé
                                    i 0
dans AR2                                                  Adresses       Contenu
STM     #(coef)+N-1, AR3        Adresses    Contenu       k = adr_x    x(n-N+d-1)
STM     #(adr_y), AR5
                                 i = coef    h(N-1)         ……             ……
                                  i +1       h(N-2)       k+d-1         x(n-N+1)
STM     #N, BK
STM     #1, AR0                   i+2        h(N-3)         k+d            x(n)
                                  ……          ……            ……             ……
RPTZ    A, #N-1                  i+N-1        h(0)          k+N         x(n-N+d)
MAC     *AR2+0%, *AR3-, A
                                Mémoire Programme           Mémoire Données

STH     A, *AR5                              Rmq: les log2(N) bits de poids faible
                                             de adr_x doivent être nuls



                                                                                  34
Exemple d’implémentation d’un filtre RIF en Q15

short fir_filter (short input)
{
int i;
short output;
int acc=0;
int prod;
R_in[0] = input;                 /* lire les valeurs des échantillons */
acc = 0;                          /* initialisation de l’acc à zéro*/
for (i=0; i<128; i++)
{
prod = (h[i]*R_in[i]);           /* Q.15 */
acc = acc + prod;                /* mise a jour des 32-bit de l’acc */
}
output = (short) (acc>>15);       /* mise en forme de l’output (16-bits) */
for (i=127; i>0; i--)            /* décalage des échantillons */
R_in[i]=R_in[i-1];
return output;
}
Filtres RII




Structures
          de filtres
Décomposition en élements simples
Problèmes de quantification


                                     36
Filtre RII
    Fonction de transfert rationnelle
                                   Q

                     N(z)
                                   bi z i
                                  i0
              H(z)                P
                     D( z )
                                1   ak z  k
                                    k 1

    Equation aux différences
                    Q              P
              yn   bi xni   ak ynk
                   i 0           k 1



                                                 37
Filtre RII – Pôles et zéros

   Zéros au numérateur
                                                   
              Q                      Q

              bi z  b0  1  zi z 1
             i 0
                           i

                                     i 0




   Pôles au dénominateur
                                                       
                     P                   P
             1   ai z   1  pi z 1
                                i

                    i 1               i 0



                                                            38
Forme directe I (ND)

                                           Q               P
                                     yn   bi xni   ak yn k
           b0
xn                              yn
     z-1                  z-1             i 0            k 1
           b1      -a1

     z-1           -a2    z-1
           b2
                                                          1
     z-1                  z-1            H ( z)  N ( z)
           b3      -a3                                   D( z )
                                         •Forme non canonique :
                                         •Nécessite Q+P mémoires
     z-1                  z-1
           bQ-1   -aQ-1


      Forme directe I (ND)


                                                                   39
Forme directe II (DN)

                    b0
xn                           yn
                                            1
        -a1
              z-1
                    b1            H ( z)         N ( z)
                                           D( z )
              z-1
        -a2         b2             •Forme canonique
                                   •Nécessite max(Q,P) mémoires
        -a3   z-1
                    b3



              z-1
      -aQ-1         bQ-1

     Forme directe II (DN)

                                                                  40
Forme directe II transposée
                   b0                    b0
xn                        yn   xn                                 yn
             z-1                                z-1
      -a1          b1                    b1           -a1

             z-1
      -a2          b2                           z-1
                                         b2           -a2

             z-1
      -a3          b3                           z-1
                                         b3           -a3



             z-1                                z-1
     -aQ-1         bQ-1                  bQ-1         -aQ-1


     Forme directe II               Forme directe II transposée
                                                                       41
Quantification des coefficients
                   b0
xn                        yn
      -a1
             z-1
                   b1               ak  ak  ak
             z-1
      -a2          b2


      -a3
             z-1
                   b3
                                    bk  bk  bk

                          Quantification d’un coef :
             z-1
     -aQ-1         bQ-1   aq = round(a*q)/q
                          avec un pas de quantification q=2-k
     Forme directe II

                                                                42
Quantification des coefficients
                       Q

         N(z)
                       bi z i
                      i0
H(z)           
                                                a k  a k  a k
                        P
         D( z )
                    1   ak z  k
                        k 1


Le dénominateur quantifié devient :
                                       Q 1         Q 1
                                                            
                           D  z   1   ak z  k   1  pl z 1   
                                       k 1          l 1

La fonction de transfert est donc perturbée.
Plus le degré du polynôme est élevé, plus la fonction
de transfert sera perturbée.


                                                                          43
Décomposition d’un filtre RII
        en sections du deuxième ordre
            choisies pour leur stabilité
            coefficients réels (racines conjuguées)

        Structure parallèle                                      Structure cascade
                         c0

                    b0  b1 z 1                               b0  b1 z 1  b2 z 2        b0  b1 z 1  b2 z 2
                                                          xn   1  a1 z 1  a2 z  2        1  a1 z 1  a2 z  2
                                                                                                                      yn
                1  a1 z 1  a2 z  2
xn                                                   yn
                    b0  b1 z 1
                1  a1 z 1  a2 z  2                     Factorisation

Expansion partielle                                              B( z )      N 1
                                                                                   1  bi 1 z 1  bi 2 z 2
                                                                         b0                 1
     B( z )        N 1
                            bi 0  bi 1 z 1                     A( z )      i  0 1  ai 1 z     ai 2 z  2
             c0                 1
     A( z )        i 0 1  ai 1 z     ai 2 z  2
                                                                                                                      44
Décomposition en cascade


x(n) s0                          s1                      s2                       s3 y(n)
                    H1                       H2                      H3


         B( z )      N 1
                          1  bi1 z 1  bi 2 z 2
                 b0               1          2
                                                    b0 H1 ( z ) H 2 ( z ) H 3 ( z )
         A( z )      i 0 1  ai1 z  ai 2 z



avec :                1  bi1 z 1  bi 2 z 2         et       s0 s1s2 s3  b0
           H i ( z) 
                      1  ai1 z 1  ai 2 z 2


                                                                                            45

Contenu connexe

Tendances

présentation STM32
présentation STM32présentation STM32
présentation STM32
hatem ben tayeb
 
Le microprocesseur
Le microprocesseurLe microprocesseur
Le microprocesseur
ISIG
 
Regulation PI
Regulation PIRegulation PI
Regulation PI
Hamza Lagueneb
 
Cours Système Embarqué et Système d'exploitation mobile.pdf
Cours Système Embarqué et Système d'exploitation mobile.pdfCours Système Embarqué et Système d'exploitation mobile.pdf
Cours Système Embarqué et Système d'exploitation mobile.pdf
WahideArabe
 
Rapport Mini Projet : élaborer un moteur de Recherche spécialisé en Education
Rapport Mini Projet : élaborer un moteur de Recherche spécialisé en EducationRapport Mini Projet : élaborer un moteur de Recherche spécialisé en Education
Rapport Mini Projet : élaborer un moteur de Recherche spécialisé en Education
Mohamed Amine Mahmoudi
 
Rapport PFE Génie Electrique (2016)
Rapport PFE Génie Electrique (2016)Rapport PFE Génie Electrique (2016)
Rapport PFE Génie Electrique (2016)
Mohsen Sadok
 
تمارين وحلول خاصة ببرمجة Ladder et instructions automates
تمارين وحلول خاصة ببرمجة Ladder et instructions automatesتمارين وحلول خاصة ببرمجة Ladder et instructions automates
تمارين وحلول خاصة ببرمجة Ladder et instructions automates
electrolouhla
 
Programmation de systèmes embarqués : Introduction aux systèmes embarqués
Programmation de systèmes embarqués : Introduction aux systèmes embarquésProgrammation de systèmes embarqués : Introduction aux systèmes embarqués
Programmation de systèmes embarqués : Introduction aux systèmes embarqués
ECAM Brussels Engineering School
 
Tp n6 les compteurs
Tp n6 les compteursTp n6 les compteurs
Tp n6 les compteurs
Hatem Jebali
 
Exposé Le Microprocesseur
Exposé   Le MicroprocesseurExposé   Le Microprocesseur
Exposé Le MicroprocesseurTheCrazyMan
 
2743557 dossier-ppe-robot-suiveur-de-ligne
2743557 dossier-ppe-robot-suiveur-de-ligne2743557 dossier-ppe-robot-suiveur-de-ligne
2743557 dossier-ppe-robot-suiveur-de-ligneAziz ShadowStokes
 
Rapport (Mémoire de Master) de stage PFE pour l’obtention du Diplôme Nationa...
Rapport (Mémoire de Master) de stage PFE pour  l’obtention du Diplôme Nationa...Rapport (Mémoire de Master) de stage PFE pour  l’obtention du Diplôme Nationa...
Rapport (Mémoire de Master) de stage PFE pour l’obtention du Diplôme Nationa...
Mohamed Amine Mahmoudi
 
Microcontrôleur
MicrocontrôleurMicrocontrôleur
Microcontrôleur
Peronnin Eric
 
Chapitre i architectures des processeurs récents
Chapitre i architectures des processeurs récentsChapitre i architectures des processeurs récents
Chapitre i architectures des processeurs récentsSana Aroussi
 
STM32F4+Android Application
STM32F4+Android ApplicationSTM32F4+Android Application
STM32F4+Android Application
Hajer Dahech
 
Traitement d'image sous Matlab
Traitement d'image sous Matlab  Traitement d'image sous Matlab
Traitement d'image sous Matlab
Hajer Dahech
 
rapport de projet de fin d'étude_PFE
rapport de projet de fin d'étude_PFErapport de projet de fin d'étude_PFE
rapport de projet de fin d'étude_PFE
Donia Hammami
 
Soutenance mémoire de fin d'études
Soutenance mémoire de fin d'étudesSoutenance mémoire de fin d'études
Soutenance mémoire de fin d'études
Fabrice HAUHOUOT
 
Intelligence Artificielle : Introduction à l'intelligence artificielle
Intelligence Artificielle : Introduction à l'intelligence artificielleIntelligence Artificielle : Introduction à l'intelligence artificielle
Intelligence Artificielle : Introduction à l'intelligence artificielle
ECAM Brussels Engineering School
 

Tendances (20)

présentation STM32
présentation STM32présentation STM32
présentation STM32
 
Traitement de signal 1
Traitement de signal 1Traitement de signal 1
Traitement de signal 1
 
Le microprocesseur
Le microprocesseurLe microprocesseur
Le microprocesseur
 
Regulation PI
Regulation PIRegulation PI
Regulation PI
 
Cours Système Embarqué et Système d'exploitation mobile.pdf
Cours Système Embarqué et Système d'exploitation mobile.pdfCours Système Embarqué et Système d'exploitation mobile.pdf
Cours Système Embarqué et Système d'exploitation mobile.pdf
 
Rapport Mini Projet : élaborer un moteur de Recherche spécialisé en Education
Rapport Mini Projet : élaborer un moteur de Recherche spécialisé en EducationRapport Mini Projet : élaborer un moteur de Recherche spécialisé en Education
Rapport Mini Projet : élaborer un moteur de Recherche spécialisé en Education
 
Rapport PFE Génie Electrique (2016)
Rapport PFE Génie Electrique (2016)Rapport PFE Génie Electrique (2016)
Rapport PFE Génie Electrique (2016)
 
تمارين وحلول خاصة ببرمجة Ladder et instructions automates
تمارين وحلول خاصة ببرمجة Ladder et instructions automatesتمارين وحلول خاصة ببرمجة Ladder et instructions automates
تمارين وحلول خاصة ببرمجة Ladder et instructions automates
 
Programmation de systèmes embarqués : Introduction aux systèmes embarqués
Programmation de systèmes embarqués : Introduction aux systèmes embarquésProgrammation de systèmes embarqués : Introduction aux systèmes embarqués
Programmation de systèmes embarqués : Introduction aux systèmes embarqués
 
Tp n6 les compteurs
Tp n6 les compteursTp n6 les compteurs
Tp n6 les compteurs
 
Exposé Le Microprocesseur
Exposé   Le MicroprocesseurExposé   Le Microprocesseur
Exposé Le Microprocesseur
 
2743557 dossier-ppe-robot-suiveur-de-ligne
2743557 dossier-ppe-robot-suiveur-de-ligne2743557 dossier-ppe-robot-suiveur-de-ligne
2743557 dossier-ppe-robot-suiveur-de-ligne
 
Rapport (Mémoire de Master) de stage PFE pour l’obtention du Diplôme Nationa...
Rapport (Mémoire de Master) de stage PFE pour  l’obtention du Diplôme Nationa...Rapport (Mémoire de Master) de stage PFE pour  l’obtention du Diplôme Nationa...
Rapport (Mémoire de Master) de stage PFE pour l’obtention du Diplôme Nationa...
 
Microcontrôleur
MicrocontrôleurMicrocontrôleur
Microcontrôleur
 
Chapitre i architectures des processeurs récents
Chapitre i architectures des processeurs récentsChapitre i architectures des processeurs récents
Chapitre i architectures des processeurs récents
 
STM32F4+Android Application
STM32F4+Android ApplicationSTM32F4+Android Application
STM32F4+Android Application
 
Traitement d'image sous Matlab
Traitement d'image sous Matlab  Traitement d'image sous Matlab
Traitement d'image sous Matlab
 
rapport de projet de fin d'étude_PFE
rapport de projet de fin d'étude_PFErapport de projet de fin d'étude_PFE
rapport de projet de fin d'étude_PFE
 
Soutenance mémoire de fin d'études
Soutenance mémoire de fin d'étudesSoutenance mémoire de fin d'études
Soutenance mémoire de fin d'études
 
Intelligence Artificielle : Introduction à l'intelligence artificielle
Intelligence Artificielle : Introduction à l'intelligence artificielleIntelligence Artificielle : Introduction à l'intelligence artificielle
Intelligence Artificielle : Introduction à l'intelligence artificielle
 

En vedette

DSP
DSPDSP
DSP architecture
DSP architectureDSP architecture
DSP architecture
jstripinis
 
DSP Processor
DSP Processor DSP Processor
DSP Processor
Laxmikant Kalkonde
 
Introduction to Digital Signal Processing
Introduction to Digital Signal ProcessingIntroduction to Digital Signal Processing
Introduction to Digital Signal Processing
op205
 
Dsp ppt
Dsp pptDsp ppt
Dsp ppt
Sushant Burde
 
Introduction to visual DSP++ Kernel
Introduction to visual DSP++ KernelIntroduction to visual DSP++ Kernel
Introduction to visual DSP++ Kernel
Pantech ProLabs India Pvt Ltd
 
Digital Signal Processors - DSP's
Digital Signal Processors - DSP'sDigital Signal Processors - DSP's
Digital Signal Processors - DSP's
Hicham Berkouk
 
Processeur FPGA
Processeur FPGAProcesseur FPGA
Processeur FPGA
Hassan KIBOU
 
Temps reel
Temps reel Temps reel
Temps reel
Maha Achouri
 
Cours langage c
Cours langage cCours langage c
Cours langage c
coursuniv
 
Implémentation optimale de filtres linéaires en arithmétique virgule fixe
Implémentation optimale de filtres linéaires en arithmétique virgule fixeImplémentation optimale de filtres linéaires en arithmétique virgule fixe
Implémentation optimale de filtres linéaires en arithmétique virgule fixe
Benoit Lopez
 
La docencia y la cultura
La docencia y la culturaLa docencia y la cultura
La docencia y la cultura
Ro Sport
 
Evolución de las computadoras
Evolución de las computadorasEvolución de las computadoras
Evolución de las computadoras
Lety Martinez
 
S4 drf-printemps-13
S4 drf-printemps-13S4 drf-printemps-13
S4 drf-printemps-13essa1988
 
VIDEOS TUTORIALES
VIDEOS TUTORIALESVIDEOS TUTORIALES
VIDEOS TUTORIALES
Willyam HernanDez
 
Principales ressources cartographiques et statistiques Centre GéoStat (2015)
Principales ressources cartographiques et statistiques Centre GéoStat (2015)Principales ressources cartographiques et statistiques Centre GéoStat (2015)
Principales ressources cartographiques et statistiques Centre GéoStat (2015)
Centre GéoStat, Bibliothèque, Université Laval
 
07 belles-histoires-d'amour-animales
07 belles-histoires-d'amour-animales07 belles-histoires-d'amour-animales
07 belles-histoires-d'amour-animalesDominique Pongi
 
L eau chaude_et_le_coeur
L eau chaude_et_le_coeurL eau chaude_et_le_coeur
L eau chaude_et_le_coeurDominique Pongi
 

En vedette (20)

DSP
DSPDSP
DSP
 
DSP architecture
DSP architectureDSP architecture
DSP architecture
 
DSP Processor
DSP Processor DSP Processor
DSP Processor
 
Introduction to Digital Signal Processing
Introduction to Digital Signal ProcessingIntroduction to Digital Signal Processing
Introduction to Digital Signal Processing
 
Dsp ppt
Dsp pptDsp ppt
Dsp ppt
 
Chapitre2 prog dsplf3
Chapitre2 prog dsplf3Chapitre2 prog dsplf3
Chapitre2 prog dsplf3
 
Introduction to visual DSP++ Kernel
Introduction to visual DSP++ KernelIntroduction to visual DSP++ Kernel
Introduction to visual DSP++ Kernel
 
Digital Signal Processors - DSP's
Digital Signal Processors - DSP'sDigital Signal Processors - DSP's
Digital Signal Processors - DSP's
 
Processeur FPGA
Processeur FPGAProcesseur FPGA
Processeur FPGA
 
Temps reel
Temps reel Temps reel
Temps reel
 
Cours langage c
Cours langage cCours langage c
Cours langage c
 
Implémentation optimale de filtres linéaires en arithmétique virgule fixe
Implémentation optimale de filtres linéaires en arithmétique virgule fixeImplémentation optimale de filtres linéaires en arithmétique virgule fixe
Implémentation optimale de filtres linéaires en arithmétique virgule fixe
 
La docencia y la cultura
La docencia y la culturaLa docencia y la cultura
La docencia y la cultura
 
Evolución de las computadoras
Evolución de las computadorasEvolución de las computadoras
Evolución de las computadoras
 
S4 drf-printemps-13
S4 drf-printemps-13S4 drf-printemps-13
S4 drf-printemps-13
 
VIDEOS TUTORIALES
VIDEOS TUTORIALESVIDEOS TUTORIALES
VIDEOS TUTORIALES
 
Principales ressources cartographiques et statistiques Centre GéoStat (2015)
Principales ressources cartographiques et statistiques Centre GéoStat (2015)Principales ressources cartographiques et statistiques Centre GéoStat (2015)
Principales ressources cartographiques et statistiques Centre GéoStat (2015)
 
07 belles-histoires-d'amour-animales
07 belles-histoires-d'amour-animales07 belles-histoires-d'amour-animales
07 belles-histoires-d'amour-animales
 
L eau chaude_et_le_coeur
L eau chaude_et_le_coeurL eau chaude_et_le_coeur
L eau chaude_et_le_coeur
 
Inventions de femme
Inventions de femmeInventions de femme
Inventions de femme
 

Similaire à Chapitre3 prog dsplf3

COURS VHDL PROGRAMMATION ET _ETAPES pour comprendre
COURS VHDL   PROGRAMMATION ET _ETAPES pour comprendreCOURS VHDL   PROGRAMMATION ET _ETAPES pour comprendre
COURS VHDL PROGRAMMATION ET _ETAPES pour comprendre
MariamHafsa
 
.NET Microframework: du code, de l&rsquo;électronique, de la robotique
.NET Microframework: du code, de l&rsquo;électronique, de la robotique.NET Microframework: du code, de l&rsquo;électronique, de la robotique
.NET Microframework: du code, de l&rsquo;électronique, de la robotique
Microsoft
 
9 - CPU_uhghfhffdttgfffgfdfffghhggfC.ppt
9 - CPU_uhghfhffdttgfffgfdfffghhggfC.ppt9 - CPU_uhghfhffdttgfffgfdfffghhggfC.ppt
9 - CPU_uhghfhffdttgfffgfdfffghhggfC.ppt
josue25052001
 
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseriesBreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
Xavier MARIN
 
soft-shake.ch - Domotique et robotique avec le micro Framework .NET
soft-shake.ch - Domotique et robotique avec le micro Framework .NETsoft-shake.ch - Domotique et robotique avec le micro Framework .NET
soft-shake.ch - Domotique et robotique avec le micro Framework .NET
soft-shake.ch
 
Perfug BOF devoxx2017.pptx
Perfug BOF devoxx2017.pptxPerfug BOF devoxx2017.pptx
Perfug BOF devoxx2017.pptx
Marc Bojoly
 
Presentaion fpga µc µp quelles est la solution
Presentaion  fpga µc µp quelles est la solutionPresentaion  fpga µc µp quelles est la solution
Presentaion fpga µc µp quelles est la solution
Cynapsys It Hotspot
 
Sizing PoC LSF & PowerAI for Engineers schools workloads
Sizing PoC LSF & PowerAI for Engineers schools workloadsSizing PoC LSF & PowerAI for Engineers schools workloads
Sizing PoC LSF & PowerAI for Engineers schools workloads
PhilippeBrogi
 
OWF12/PAUG Conf Days Render script, sylvain galand, software engineer at geny...
OWF12/PAUG Conf Days Render script, sylvain galand, software engineer at geny...OWF12/PAUG Conf Days Render script, sylvain galand, software engineer at geny...
OWF12/PAUG Conf Days Render script, sylvain galand, software engineer at geny...Paris Open Source Summit
 
Du hard et des réseaux: Les outils pour construire l'internet des objets chez...
Du hard et des réseaux: Les outils pour construire l'internet des objets chez...Du hard et des réseaux: Les outils pour construire l'internet des objets chez...
Du hard et des réseaux: Les outils pour construire l'internet des objets chez...
Microsoft
 
Architecture des ordinateurs
Architecture des ordinateursArchitecture des ordinateurs
Architecture des ordinateurs
RMwebsite
 
Démo puppet et état du projet
Démo puppet et état du projetDémo puppet et état du projet
Démo puppet et état du projet
New Caledonian Government
 
Cours de microcontrôleurs
Cours de microcontrôleursCours de microcontrôleurs
Cours de microcontrôleurs
sarah Benmerzouk
 
Apache kafka big data track
Apache kafka   big data trackApache kafka   big data track
Apache kafka big data track
Paris Open Source Summit
 
Apache Kafka, Un système distribué de messagerie hautement performant
Apache Kafka, Un système distribué de messagerie hautement performantApache Kafka, Un système distribué de messagerie hautement performant
Apache Kafka, Un système distribué de messagerie hautement performant
ALTIC Altic
 
Chapitre 3-architecture-des-dsp
Chapitre 3-architecture-des-dspChapitre 3-architecture-des-dsp
Chapitre 3-architecture-des-dsp
gharbisalah
 
Démystifier la programmation avec LabVIEW FPGA
Démystifier la programmation avec LabVIEW FPGADémystifier la programmation avec LabVIEW FPGA
Démystifier la programmation avec LabVIEW FPGA
SAPHIR - Signal Physique & Instrumentation
 
Ez18n Annotation Processing Tool in a nutshell
Ez18n Annotation Processing Tool in a nutshellEz18n Annotation Processing Tool in a nutshell
Ez18n Annotation Processing Tool in a nutshell
gdigugli
 
Net duino et le .net micro framework
Net duino et le .net micro frameworkNet duino et le .net micro framework
Net duino et le .net micro framework
Vincent Hubert
 
Isbs slides 2010
Isbs slides 2010Isbs slides 2010
Isbs slides 2010RMwebsite
 

Similaire à Chapitre3 prog dsplf3 (20)

COURS VHDL PROGRAMMATION ET _ETAPES pour comprendre
COURS VHDL   PROGRAMMATION ET _ETAPES pour comprendreCOURS VHDL   PROGRAMMATION ET _ETAPES pour comprendre
COURS VHDL PROGRAMMATION ET _ETAPES pour comprendre
 
.NET Microframework: du code, de l&rsquo;électronique, de la robotique
.NET Microframework: du code, de l&rsquo;électronique, de la robotique.NET Microframework: du code, de l&rsquo;électronique, de la robotique
.NET Microframework: du code, de l&rsquo;électronique, de la robotique
 
9 - CPU_uhghfhffdttgfffgfdfffghhggfC.ppt
9 - CPU_uhghfhffdttgfffgfdfffghhggfC.ppt9 - CPU_uhghfhffdttgfffgfdfffghhggfC.ppt
9 - CPU_uhghfhffdttgfffgfdfffghhggfC.ppt
 
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseriesBreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
 
soft-shake.ch - Domotique et robotique avec le micro Framework .NET
soft-shake.ch - Domotique et robotique avec le micro Framework .NETsoft-shake.ch - Domotique et robotique avec le micro Framework .NET
soft-shake.ch - Domotique et robotique avec le micro Framework .NET
 
Perfug BOF devoxx2017.pptx
Perfug BOF devoxx2017.pptxPerfug BOF devoxx2017.pptx
Perfug BOF devoxx2017.pptx
 
Presentaion fpga µc µp quelles est la solution
Presentaion  fpga µc µp quelles est la solutionPresentaion  fpga µc µp quelles est la solution
Presentaion fpga µc µp quelles est la solution
 
Sizing PoC LSF & PowerAI for Engineers schools workloads
Sizing PoC LSF & PowerAI for Engineers schools workloadsSizing PoC LSF & PowerAI for Engineers schools workloads
Sizing PoC LSF & PowerAI for Engineers schools workloads
 
OWF12/PAUG Conf Days Render script, sylvain galand, software engineer at geny...
OWF12/PAUG Conf Days Render script, sylvain galand, software engineer at geny...OWF12/PAUG Conf Days Render script, sylvain galand, software engineer at geny...
OWF12/PAUG Conf Days Render script, sylvain galand, software engineer at geny...
 
Du hard et des réseaux: Les outils pour construire l'internet des objets chez...
Du hard et des réseaux: Les outils pour construire l'internet des objets chez...Du hard et des réseaux: Les outils pour construire l'internet des objets chez...
Du hard et des réseaux: Les outils pour construire l'internet des objets chez...
 
Architecture des ordinateurs
Architecture des ordinateursArchitecture des ordinateurs
Architecture des ordinateurs
 
Démo puppet et état du projet
Démo puppet et état du projetDémo puppet et état du projet
Démo puppet et état du projet
 
Cours de microcontrôleurs
Cours de microcontrôleursCours de microcontrôleurs
Cours de microcontrôleurs
 
Apache kafka big data track
Apache kafka   big data trackApache kafka   big data track
Apache kafka big data track
 
Apache Kafka, Un système distribué de messagerie hautement performant
Apache Kafka, Un système distribué de messagerie hautement performantApache Kafka, Un système distribué de messagerie hautement performant
Apache Kafka, Un système distribué de messagerie hautement performant
 
Chapitre 3-architecture-des-dsp
Chapitre 3-architecture-des-dspChapitre 3-architecture-des-dsp
Chapitre 3-architecture-des-dsp
 
Démystifier la programmation avec LabVIEW FPGA
Démystifier la programmation avec LabVIEW FPGADémystifier la programmation avec LabVIEW FPGA
Démystifier la programmation avec LabVIEW FPGA
 
Ez18n Annotation Processing Tool in a nutshell
Ez18n Annotation Processing Tool in a nutshellEz18n Annotation Processing Tool in a nutshell
Ez18n Annotation Processing Tool in a nutshell
 
Net duino et le .net micro framework
Net duino et le .net micro frameworkNet duino et le .net micro framework
Net duino et le .net micro framework
 
Isbs slides 2010
Isbs slides 2010Isbs slides 2010
Isbs slides 2010
 

Dernier

Dimensionnement réseau de transmission pour un réseau GSM-R - AIT KADDOUR Ghi...
Dimensionnement réseau de transmission pour un réseau GSM-R - AIT KADDOUR Ghi...Dimensionnement réseau de transmission pour un réseau GSM-R - AIT KADDOUR Ghi...
Dimensionnement réseau de transmission pour un réseau GSM-R - AIT KADDOUR Ghi...
MustaphaZhiri
 
Access_Cours.pptx pour débutant manipulation de données access
Access_Cours.pptx pour débutant manipulation de données accessAccess_Cours.pptx pour débutant manipulation de données access
Access_Cours.pptx pour débutant manipulation de données access
MahRandriamitsiry
 
BATIMENT 5.pptx. Fil français tourné en France
BATIMENT 5.pptx. Fil français tourné en FranceBATIMENT 5.pptx. Fil français tourné en France
BATIMENT 5.pptx. Fil français tourné en France
Txaruka
 
Proyecto Erasmus Jardineros y jardineras de paz
Proyecto Erasmus Jardineros y jardineras de pazProyecto Erasmus Jardineros y jardineras de paz
Proyecto Erasmus Jardineros y jardineras de paz
Morzadec Cécile
 
géodynamique externe première partie imp
géodynamique  externe première partie impgéodynamique  externe première partie imp
géodynamique externe première partie imp
MacLeo1
 
Bibliothèque de L'Union - Bilan de l'année 2023
Bibliothèque de L'Union - Bilan de l'année 2023Bibliothèque de L'Union - Bilan de l'année 2023
Bibliothèque de L'Union - Bilan de l'année 2023
Bibliothèque de L'Union
 
Veille Audocdi 90 - mois de juin 2024.pdf
Veille Audocdi 90 - mois de juin 2024.pdfVeille Audocdi 90 - mois de juin 2024.pdf
Veille Audocdi 90 - mois de juin 2024.pdf
frizzole
 
Margaux Laurens - Neel.pptx
Margaux        Laurens     -     Neel.pptxMargaux        Laurens     -     Neel.pptx
Margaux Laurens - Neel.pptx
Txaruka
 
Presentation powerpoint sur la filiere electrotechnique
Presentation powerpoint sur la filiere electrotechniquePresentation powerpoint sur la filiere electrotechnique
Presentation powerpoint sur la filiere electrotechnique
mohammadaminejouini
 

Dernier (9)

Dimensionnement réseau de transmission pour un réseau GSM-R - AIT KADDOUR Ghi...
Dimensionnement réseau de transmission pour un réseau GSM-R - AIT KADDOUR Ghi...Dimensionnement réseau de transmission pour un réseau GSM-R - AIT KADDOUR Ghi...
Dimensionnement réseau de transmission pour un réseau GSM-R - AIT KADDOUR Ghi...
 
Access_Cours.pptx pour débutant manipulation de données access
Access_Cours.pptx pour débutant manipulation de données accessAccess_Cours.pptx pour débutant manipulation de données access
Access_Cours.pptx pour débutant manipulation de données access
 
BATIMENT 5.pptx. Fil français tourné en France
BATIMENT 5.pptx. Fil français tourné en FranceBATIMENT 5.pptx. Fil français tourné en France
BATIMENT 5.pptx. Fil français tourné en France
 
Proyecto Erasmus Jardineros y jardineras de paz
Proyecto Erasmus Jardineros y jardineras de pazProyecto Erasmus Jardineros y jardineras de paz
Proyecto Erasmus Jardineros y jardineras de paz
 
géodynamique externe première partie imp
géodynamique  externe première partie impgéodynamique  externe première partie imp
géodynamique externe première partie imp
 
Bibliothèque de L'Union - Bilan de l'année 2023
Bibliothèque de L'Union - Bilan de l'année 2023Bibliothèque de L'Union - Bilan de l'année 2023
Bibliothèque de L'Union - Bilan de l'année 2023
 
Veille Audocdi 90 - mois de juin 2024.pdf
Veille Audocdi 90 - mois de juin 2024.pdfVeille Audocdi 90 - mois de juin 2024.pdf
Veille Audocdi 90 - mois de juin 2024.pdf
 
Margaux Laurens - Neel.pptx
Margaux        Laurens     -     Neel.pptxMargaux        Laurens     -     Neel.pptx
Margaux Laurens - Neel.pptx
 
Presentation powerpoint sur la filiere electrotechnique
Presentation powerpoint sur la filiere electrotechniquePresentation powerpoint sur la filiere electrotechnique
Presentation powerpoint sur la filiere electrotechnique
 

Chapitre3 prog dsplf3

  • 1. Développement pour une plateforme DSP  Mise au point de l ’algorithme  Prototypage, simulation haut-niveau  Matlab  Langage C sur PC  Implémentation DSP  Développement sur carte d'évaluation  Langage C  Cartes EVM, SDK  Noyau temps-réel (DSP/BIOS)  Optimisation des parties critiques  Assembleur  Outils de débogage  Simulateur  Émulateur  Boundary scan JTAG (Norme IEEE 1179.1)  Communication temps-réel avec un PC hôte 2
  • 2. Développement pour un DSP Outils de Compilateur *.asm conception *.c C IDE *.asm Assembleur *.obj *.lst Editeur de Texte *.cmd Linker *.out *.map  Simulateur *.hex  DSP Chargement sur la cible 3
  • 3. C vs. assembleur  Assembleur  Langage C  Langage bas-niveau  Langage de plus haut-  Fastidieux niveau  Jeux d’instructions  Plus rapide à coder complexes et irréguliers  Meilleure portabilité  Spécifique à chaque  Code machine généré constructeur moins efficace  Plus puissant  Malgré l’optimisation par  Accès direct à certains le compilateur registres inconnus du C  Outils de développement  Nécessaire pour une  Noyau temps-réel optimisation poussée (DSP/BIOS)  Configuration de la carte  Librairies de calculs optimisées (DSPLIB) 4
  • 4. Outils d'aide au développement User Application Drivers DSP/BIOS™ Dsplib CSL Kernel/Scheduler Imglib CODEC Timer McBSP EMIF CPU DSP DIP Switches Target Board 5
  • 5. CSL (Chip Support Library)  Librairie pour faciliter C67x™ DSP Modules l'utilisation des CHIP périphériques internes du DAA DSP  Plateformes C5000 et C6000 DAT Texas Instruments DMA  Accessible depuis le EBUS langage C GPIO  Organisation en modules HPI  Un module par périphérique IRQ MCBSP PLL PWR UART WDTIM 6
  • 6. Avantages d'une librairie de support de type CSL  Abstraction du matériel à travers une API logicielle  Configuration  Accès aux ressources  Macros pour accéder au niveau des contenus de registres  Intégré au noyau temps-réel DSP/BIOS  Interface graphique CSL  Facilitation du développement  Méthodes standards d'accès aux périphériques  Temps de développement réduit  Programmation à plus haut-niveau  Utile pour compenser l'augmentation de la complexité des processeurs et des applications 7
  • 7. Librairies spécialisées (DSPLIB, IMGLIB)  Librairies de support pour le calcul  Traitement du signal ou des images  Déjà programmées  Optimisées  Utilisables depuis le langage C  Fonctionnalités de base  FFT  Filtrage  Mathématiques et trigonométrie  Calcul matriciel 8
  • 8. Propriétés des systèmes temps-réel  Piloté par évènements  Synchrones (chronomètre)  Asynchrones (interruptions des E/S)  Contraint dans le temps  Contraintes dures (deadlines critiques)  Contraintes souples (deadlines non critiques)  Concurrence de l'exécution  Contraintes sur plusieurs traitements en parallèle  Nécessite un ordonnancement  multi-tâches (plusieurs traitements à la fois)  préemptif (toute tâche peut être interrompue par une tâche plus prioritaire)  Déterministe et fiable  Comportement du système prédictible  Temps de réponse bornés 9
  • 9. Système temps-réel DSP BIOS  Noyau temps-réel  Ordonnanceur temps-réel  Gestion multi-threads préemptive  Outils d'analyse temps-réel  Débogage sans interruption de l'exécution  Profiling, vision des threads  Intégration avec  Real-time data exchange (RTDX)  Communication hôte↔DSP pendant l'exécution  Chip Support Library (CSL) 10
  • 10. Stratification des traitements sous DSP/BIOS Hard Real-time 1st-TIER Interruptions matérielles  Traitement par échantillon  Réaction à la microseconde 2nd-TIER Interruptions logicielles  Traitement par blocs  Réaction à la milliseconde  Traitements ordonnancés Multi-tâche  Exécution concurrente Tâche de fond (idle)  S'il reste du temps Soft Real-time 11
  • 11. Mise en œuvre et implémentation de filtres RIF et RII 12
  • 12. Méthodologie d'implantation d'un filtre  Étape 0 : Choix du filtre  Choix du filtre et calcul des coefficients  Étape 1 : Choix de structure  Choix d'un schéma d'implantation  Écriture des équations correspondantes  Étape 2 : Choix algorithmiques  Choix de l'implantation mémoire et des variables  Écriture de l'algorithme  Étape 3 : Choix numériques  Choix du format Qk  Écriture du programme  Étape 4 : Validation  Définir un protocole de test et l'appliquer  Etape 5 : Optimisation 13
  • 13. Étape 1 : Schéma et équations |H(f )| pass-band stop-band 1 fc : cut-of f f requency fs/2 f (norm) (a) |H(f )| pass-band transition band stop-band |H(f )| (dB) (linear) p 1   p 0 1 1   p pass-band -3 ripple stop-band ripple s  s fs/2 f (norm) fs b : stop-band f requency fc : cut-of f f requency fpb : pass-band f requency (b)
  • 14. Méthodes de synthèse d'un filtre  Il existe de nombreuses méthodes  Méthode de la fenêtre  Optimisation par moindres carrés  Calcul des coefficients par approximation de tchebycheff  Par TFD récursive  etc.
  • 21. Étape 1 : Schéma et équations Exemple sur une cellule RII du 2e ordre s wn b0 xn yn z-1 -a1 w b1 wn  sxn  a1wn1  a2 wn2 n-1 z-1 yn  b0 wn  b1wn1  b2 wn2 -a2 b2 Équations correspondantes wn-2 Forme directe II 22
  • 22. Étape 2 : Variables et algorithme Entrées : coefs dbuffer x (contient xn) 0 s 0 wn-1 w(n-1) dbuffer (contient wn-1 et wn-2) coefs (contient les coefficients) 1 a1 1 wn-2 w(n-2) Variable temporaire : 2 a2 tableau des w (recevra wn) 3 b2 retards Calcul 4 b1 wn ← s * xn – a1 * w(n-1) – a2 * w(n-2) 5 b0 xn x y ← b0 * wn + b1 * w(n-1) + b2 * w(n-2) tableau des Mise à jour retards ? puis yn y coefficients w(n-2) ← w(n-1) ? puis wn w w(n-1) ← wn variables Sorties : temporaires y (reçoit yn) dbuffer (contient wn'-1 et wn'-2 pour n'=n+1) État de la mémoire lors de l'appel de la fonction 23
  • 23. Étape 3 : Format Qk et programme C int coefs[6]; x(n) Q15 int dbuffer[2]; s Q15 int cellule(int x) { ai Q15 int w; int y; bi Q15 /* Calcul */ wk Q15 w=((long)coefs[0]*x +(long)coefs[1]*dbuffer[0] –(long)coefs[2]*dbuffer[1]) >> 15; y=((long)coefs[5]*w +(long)coefs[4]*dbuffer[1] Conversion algorithme (calcul sur des réels) +(long)coefs[3]*dbuffer[0]) >> 15; vers programme (calcul en format Qk) /* Mise à jour retards */ dbuffer[1]=dbuffer[0]; s*x dbuffer[0]=w; devient /* Sortie */ (coefs[0]*x)>>15 return y; pour un résultat en Q15 } 24
  • 24. Étape 3 : Programme détaillé  Si programmation ACC=x(n)  s en assembleur, ACC=ACC - a1  w(n-1) nécessité de ACC=ACC - a2  w(n-2) décomposer en w(n)=ACC>>15 ACC=w(n)  b0 calculs élémentaires ACC=ACC + b2  w(n-2)  Algorithmedétaillé ACC=ACC + b1  w(n-1)  Conversion en y(n)=ACC>>15 assembleur w(n-2)=w(n-1) w(n-1)=w(n) 25
  • 25. Implantation mémoire pour cellules en cascade coefs dbuffer 0 w1(n-1) 0 s cellule 1 1 w1(n-2) 1 a11 2+1 w2(n-1) 2 a12 cellule 2 cellule 1 2+2 w2(n-2) … b12 … b11 5 b10 5+1 a21 5+2 a22 … b22 cellule 2 b21 b20 26
  • 26. Filtres RIF Structure transverse Implémentation par Buffer linéaire Buffer circulaire 27
  • 27. Structures pour filtre RIF  Structure transverse avec ligne à retard y n   b0 xn   b1 xn  1  ....  bN 1 xn  N  1 -1 -1 -1 x(n) z z z b b b b 0 1 2 N-1 + + + y (n)  Structure en treillis (filtres adaptatifs) y0(n) y1(n) y2(n) y3(n) + + + x(n) k1 k2 k3 u1(n) u2(n) u3(n) u0(n) z-1 + z-1 + z-1 + yi(n) = yi-1(n) + ki ui-1(n) et ui(n) = k1 yi-1(n) + ui-1(n-1) avec y0(n)=u0(n)=x(n). 28
  • 28. Structures pour filtre RIF  Structures en cascade: N 1  k  b  b z  1  b z  2  ... b   N  1 H z      bk z z   0 1 2 N 1 k 0   N  1 z   N  1  b 1 b  2 b   b 1  1 z  2 z  ...   0 b b b   0 0 0  M  b  1  b z  1  b  z 2   0 k 1  k ,1 k ,2  x(n) b0 y (n) + + + z -1 z -1 z -1 b 1,1 b 2,1 b M,1 + + + z -1 z -1 z -1 b 1,2 b 2,2 b M,2 29
  • 29. Filtre RIF par structure transverse  Deux aspects  Mise à jour de la mémoire  A chaque réception d’une nouvelle donnée x(n)  Calcul du filtre  ACCU=0  for i=0 to N-1:  ACCU ← ACCU + h(i) x(n-i)  Sortie de y(n)=ACCU 30
  • 30. N 1 y n    bi xn  i  Buffer linéaire i 0 Schéma "état mémoire" Schéma de structure de filtre x(n) y(n) xtab xtab 0 x(n-1) 0 x(n) b0 1 x(n-2) 1 x(n-1) b1 … 2 x(n-2) b2 … … … … … … … … … N-2 x(n-N+1) N-2 x(n-N+2) bN-2 N-1 x(n-N) N-1 x(n-N+1) bN-1 x(n-N) Mise à jour du buffer Calcul de y(n) 31
  • 31. N 1 y n    bi xn  i  Buffer circulaire i 0 Schéma "état mémoire" Schéma de structure de filtre x(n) y(n) xtab xtab 0 x(n-k+1) 0 x(n-k+1) bk+1 1 … 1 … … x(n-N+1) x(n-N+1) bN-1 x(n-N) idx x(n) b0 idx x(n-1) x(n-1) b1 x(n-2) x(n-2) b2 N-2 … N-2 … … N-1 x(n-k) N-1 x(n-k) bk Mise à jour du buffer Calcul de y(n) 32
  • 32. Quantification des coefficients RIF  Virgule fixe: N 1  B=16 bits pour h(i) , x(n-i) et y(n) y n    hi xn  i  i 0  40 bits pour les accumulateurs  Représentation Qk  Coefficient de magnitude maximale:  hmax = max |h(i)|  Nombre de bits nécessaires pour la partie entière :  BE = log2(hmax)  Codage Qk avec k = B – BE  h(i) = round(h(i)/2k) 33
  • 33. Filtre RIF avec buffer circulaire en assembleur N 1 y n    hi xn  i  N .set 32 ; adr_x+d supposé chargé i 0 dans AR2 Adresses Contenu STM #(coef)+N-1, AR3 Adresses Contenu k = adr_x x(n-N+d-1) STM #(adr_y), AR5 i = coef h(N-1) …… …… i +1 h(N-2) k+d-1 x(n-N+1) STM #N, BK STM #1, AR0 i+2 h(N-3) k+d x(n) …… …… …… …… RPTZ A, #N-1 i+N-1 h(0) k+N x(n-N+d) MAC *AR2+0%, *AR3-, A Mémoire Programme Mémoire Données STH A, *AR5 Rmq: les log2(N) bits de poids faible de adr_x doivent être nuls 34
  • 34. Exemple d’implémentation d’un filtre RIF en Q15 short fir_filter (short input) { int i; short output; int acc=0; int prod; R_in[0] = input; /* lire les valeurs des échantillons */ acc = 0; /* initialisation de l’acc à zéro*/ for (i=0; i<128; i++) { prod = (h[i]*R_in[i]); /* Q.15 */ acc = acc + prod; /* mise a jour des 32-bit de l’acc */ } output = (short) (acc>>15); /* mise en forme de l’output (16-bits) */ for (i=127; i>0; i--) /* décalage des échantillons */ R_in[i]=R_in[i-1]; return output; }
  • 35. Filtres RII Structures de filtres Décomposition en élements simples Problèmes de quantification 36
  • 36. Filtre RII  Fonction de transfert rationnelle Q N(z)  bi z i i0 H(z)   P D( z ) 1   ak z  k k 1  Equation aux différences Q P yn   bi xni   ak ynk i 0 k 1 37
  • 37. Filtre RII – Pôles et zéros  Zéros au numérateur   Q Q  bi z  b0  1  zi z 1 i 0 i i 0  Pôles au dénominateur   P P 1   ai z   1  pi z 1 i i 1 i 0 38
  • 38. Forme directe I (ND) Q P yn   bi xni   ak yn k b0 xn yn z-1 z-1 i 0 k 1 b1 -a1 z-1 -a2 z-1 b2 1 z-1 z-1 H ( z)  N ( z) b3 -a3 D( z ) •Forme non canonique : •Nécessite Q+P mémoires z-1 z-1 bQ-1 -aQ-1 Forme directe I (ND) 39
  • 39. Forme directe II (DN) b0 xn yn 1 -a1 z-1 b1 H ( z)  N ( z) D( z ) z-1 -a2 b2 •Forme canonique •Nécessite max(Q,P) mémoires -a3 z-1 b3 z-1 -aQ-1 bQ-1 Forme directe II (DN) 40
  • 40. Forme directe II transposée b0 b0 xn yn xn yn z-1 z-1 -a1 b1 b1 -a1 z-1 -a2 b2 z-1 b2 -a2 z-1 -a3 b3 z-1 b3 -a3 z-1 z-1 -aQ-1 bQ-1 bQ-1 -aQ-1 Forme directe II Forme directe II transposée 41
  • 41. Quantification des coefficients b0 xn yn -a1 z-1 b1 ak  ak  ak z-1 -a2 b2 -a3 z-1 b3 bk  bk  bk Quantification d’un coef : z-1 -aQ-1 bQ-1 aq = round(a*q)/q avec un pas de quantification q=2-k Forme directe II 42
  • 42. Quantification des coefficients Q N(z)  bi z i i0 H(z)   a k  a k  a k P D( z ) 1   ak z  k k 1 Le dénominateur quantifié devient : Q 1 Q 1  D  z   1   ak z  k   1  pl z 1  k 1 l 1 La fonction de transfert est donc perturbée. Plus le degré du polynôme est élevé, plus la fonction de transfert sera perturbée. 43
  • 43. Décomposition d’un filtre RII  en sections du deuxième ordre  choisies pour leur stabilité  coefficients réels (racines conjuguées) Structure parallèle Structure cascade c0 b0  b1 z 1 b0  b1 z 1  b2 z 2 b0  b1 z 1  b2 z 2 xn 1  a1 z 1  a2 z  2 1  a1 z 1  a2 z  2 yn 1  a1 z 1  a2 z  2 xn yn b0  b1 z 1 1  a1 z 1  a2 z  2 Factorisation Expansion partielle B( z ) N 1 1  bi 1 z 1  bi 2 z 2  b0  1 B( z ) N 1 bi 0  bi 1 z 1 A( z ) i  0 1  ai 1 z  ai 2 z  2  c0   1 A( z ) i 0 1  ai 1 z  ai 2 z  2 44
  • 44. Décomposition en cascade x(n) s0 s1 s2 s3 y(n) H1 H2 H3 B( z ) N 1 1  bi1 z 1  bi 2 z 2  b0  1 2  b0 H1 ( z ) H 2 ( z ) H 3 ( z ) A( z ) i 0 1  ai1 z  ai 2 z avec : 1  bi1 z 1  bi 2 z 2 et s0 s1s2 s3  b0 H i ( z)  1  ai1 z 1  ai 2 z 2 45