Cours sur la programmation des processeurs de signaux DSP

publicité
Cours sur les
processeurs de signaux
DSP TMS320F2812
Par Abdelouhed ABOUNADA
Sommaire
I.
Introduction : ................................................................................................................................... 6
II.
Utilité des DSP : ............................................................................................................................... 6
1.
Avantages des DSP : .................................................................................................................... 6
2.
Applications des DSP : ................................................................................................................. 7
III.
Processus de développement d’un programme sur DSP : .......................................................... 8
IV.
Architecture de Von Neuman et architecture de Harvard : ........................................................ 9
1.
Von Neuman : .............................................................................................................................. 9
2.
Harvard : ...................................................................................................................................... 9
3.
Utilisation de ces structures dans les DSP : ............................................................................... 10
V.
Principales fonctionnalités : .......................................................................................................... 10
1.
Opérateur MAC : ....................................................................................................................... 10
2.
Accès mémoire .......................................................................................................................... 11
VI.
Langage de programmation des DSP : ...................................................................................... 12
VII.
Architecture mémoire des DSP ................................................................................................. 12
1.
Parallélisme d’accès .................................................................................................................. 13
2.
Mémoires externes et internes ................................................................................................. 13
3.
Pile câblée.................................................................................................................................. 14
4.
Carte mémoire du DSP TMS320F2812 : .................................................................................... 14
5.
Mémoire Flash : ......................................................................................................................... 15
6.
ROM : ......................................................................................................................................... 15
7.
Flash mémoire M0, M1 SARAMs : ............................................................................................. 15
8.
Les mémoires L0, L1, H0 SARAMs : ........................................................................................... 16
9.
Boot ROM : ................................................................................................................................ 16
VIII.
Instructions DSP :....................................................................................................................... 16
IX.
Modes d’adressage :.................................................................................................................. 19
1.
Mode d'adressage direct : ......................................................................................................... 19
2.
Mode d'adressage indirect. ....................................................................................................... 20
3.
Mode d’adressage en bit inversé (bit reversed addressing) : ................................................... 20
4.
Mode d’adressage circulaire ou adressage en modulo (Circular Buffering) : ........................... 20
X.
DSP « TMS320F2812 » de Texas Instruments : ............................................................................. 21
1.
Architecture générale du DSP : ................................................................................................. 21
2.
Module « EVA » : ....................................................................................................................... 22
a.
Etude du fonctionnement du Timer: ..................................................................................... 22
b.
Etude du fonctionnement des unités de comparaison (1, 2 et 3) :....................................... 25
c.
Etude du fonctionnement des unités de capture (1, 2 et 3) : ............................................... 27
3.
Unité de commande : ................................................................................................................ 28
a.
Les phases du pipeline :......................................................................................................... 29
b.
Gestion des boucles :............................................................................................................. 29
4.
Unité de traitement (DP : Data Processor) : .............................................................................. 29
5.
Unité de mémorisation :............................................................................................................ 29
6.
Unité de communication (EIU : External Interface Unit) :......................................................... 30
7.
Unité de contrôle (IP : Instruction Processor): .......................................................................... 30
8.
Registres .................................................................................................................................... 30
XI.
a.
Accumulateur (ACC, AH, AL) : ................................................................................................ 30
b.
Registre de multiplicande (XT) : ............................................................................................ 31
c.
Registre de produit (P, PH, PL) : ............................................................................................. 31
d.
Registres auxiliaires (XAR0-XAR7, AR0-AR7) : ....................................................................... 32
e.
Registres de contrôle d’interruptions : ................................................................................. 32
Convertisseur AD (ADC) : .......................................................................................................... 33
1.
Caractéristiques : ....................................................................................................................... 33
2.
Principe de fonctionnement : .................................................................................................... 34
XII.
Carte eZdsp TM F2812 : ............................................................................................................ 36
XIII.
Conclusion : ......................................................................................... Erreur ! Signet non défini.
Travaux pratiques 1 : élaboration d’un signal rectangulaire :............. Erreur ! Signet non défini.
I.
But de manipulation : .............................................................................. Erreur ! Signet non défini.
II.
Etapes de programmation de la carte eZdsp TM F2812 : ....................... Erreur ! Signet non défini.
1.
Création d’un nouveau projet : Project === > New ............................. Erreur ! Signet non défini.
2. Création d’un nouveau fichier dans le projet : File === > New === > Source File Erreur ! Signet
non défini.
3.
Compilation du programme : .............................................................. Erreur ! Signet non défini.
4.
Transfert du programme vers la carte eZdsp : .................................... Erreur ! Signet non défini.
III.
Programme réalisé : ............................................................................ Erreur ! Signet non défini.
IV.
Résultats : ............................................................................................ Erreur ! Signet non défini.
V.
1.
Simulation avec LED : .......................................................................... Erreur ! Signet non défini.
2.
Visualisation du signal sur oscilloscope : ............................................. Erreur ! Signet non défini.
Conclusion : ............................................................................................. Erreur ! Signet non défini.
Travaux pratiques 2 : élaboration d’un signal rectangulaire à largeur d’impulsion variable
« signal PWM » : .................................................................................. Erreur ! Signet non défini.
I.
But de manipulation : .............................................................................. Erreur ! Signet non défini.
II.
Etapes de programmation de la carte eZdsp TM F2812 : ....................... Erreur ! Signet non défini.
III.
Programme réalisé : ............................................................................ Erreur ! Signet non défini.
IV.
Résultats : ............................................................................................ Erreur ! Signet non défini.
V.
Conclusion : ............................................................................................. Erreur ! Signet non défini.
Bibliographie.................................................................................................... Erreur ! Signet non défini.
Table des figures
Figure 1: Le processus de développement d’un programme sur DSP .................................................... 8
Figure 2: architecture de type Von Neuman ........................................................................................... 9
Figure 3: architecture de type Harvard ................................................................................................ 10
Figure 4: Evolution du temps d'exécution d'une opération MAC ......................................................... 11
Figure 5: Carte mémoire du DSP TMS320F2812 ................................................................................ 14
Figure 6 : Architecture générale du DSP TMS320F2812 ..................................................................... 21
Figure 7: Schéma synoptique du module EVA ...................................................................................... 22
Figure 8: Schéma synoptique du trimer ................................................................................................ 23
Figure 9: Principe de fonctionnement du timer pour le mode «countinuous-up» ................................ 24
Figure 10: Principe de fonctionnement du timer pour le mode «countinuous-up/down» ..................... 24
Figure 11: Schéma synoptique d'une unité de comparaison du module EVA ....................................... 26
Figure 12: Schéma synoptique d'une unité capture du module EVA .................................................... 27
Figure 13: diagramme d'état de l'unité de contrôle .............................................................................. 30
Figure 14: Schéma du module ADC...................................................................................................... 34
Figure 15: Schéma ADC en mode cascade ........................................................................................... 35
Figure 16: Schéma ADC avec double séquenceurs............................................................................... 35
Figure 17: carte de développement eZdsp TM F2812 .......................................................................... 36
Figure 18: Schéma synoptique de la carte eZdspTM F2812................................................................. 36
Figure 19: LED allumée "à l’état 1" ............................................................... Erreur ! Signet non défini.
Figure 20: LED éteinte "à l’état 0" ................................................................. Erreur ! Signet non défini.
Figure 21: montage et signal obtenus ............................................................. Erreur ! Signet non défini.
Figure 22: signal obtenu sur la sortie GPIOA0/PWM1 .................................. Erreur ! Signet non défini.
Figure 23: Première étape de compilation du programme "Compile File".... Erreur ! Signet non défini.
Figure 24: Deuxième étape de compilation du programme "Rebuild All" ..... Erreur ! Signet non défini.
Figure 25: Montage de simulation et signaux obtenus sur les broches PWM1 et PWM2 .Erreur ! Signet
non défini.
Figure 26: Signaux complémentaires obtenus sur les broches PWM3 et PWM4 ...... Erreur ! Signet non
défini.
5
I.
Introduction :
Un DSP (Digital System Processing) est un type particulier de microprocesseur. Il se
caractérise par le fait qu’il intègre un ensemble de fonctions spéciales. Ces fonctions sont
destinées à le rendre particulièrement performant dans le domaine du traitement numérique du
signal.
La plupart des DSP, comme le TMS320F2812, sont particulièrement destinés à des
applications temps réel, dans lesquelles le temps de traitement est primordial. En plus, ils se
caractérisent par une architecture optimisée pour le traitement d’une grande quantité de
données en parallèle à chaque cycle d’horloge, ce qui rend les applications à base de DSP se
caractérisent par une grande souplesse.
Comme un microprocesseur classique, un DSP est mis en œuvre en lui associant des
mémoires (RAM, ROM) et des périphériques. Un DSP typique a plutôt vocation à servir dans
des systèmes de traitements autonomes. Il se présente donc généralement sous la forme d’un
microcontrôleur intégrant, selon les marques et les gammes des constructeurs, des mémoires,
des timers, des ports série synchrones rapides et des ports d’E/S divers.
II.
Utilité des DSP :
1. Avantages des DSP :
Tous les systèmes à bases de DSP bénéficient des avantages suivants :

Souplesse de la programmation : un DSP est avant tout un processeur exécutant un
programme de traitement du signal. Ceci signifie que le système bénéficie donc d’une
grande souplesse de développement. De plus, les fonctions de traitements numériques
peuvent évoluer en fonction des mises à jour des programmes, et cela pendant toute la
durée de vie du produit incluant le système. La modification d’un filtre numérique ne
nécessite pas un changement matériel.

Des possibilités propres au système de traitement numérique du signal. Certaines
fonctions de traitement du signal sont difficiles à implanter en analogique, voire
irréalisables (exemple : un filtre à réponse en phase linéaire).
6

Stabilité : en analogique, les composants sont toujours plus ou moins soumis à des
variations de leurs caractéristiques en fonction de la température, de la tension
d’alimentation, du vieillissement, etc. Une étude sérieuse doit tenir compte de ces
phénomènes, ce qui complique et augmente le temps de développement. Ces
inconvénients n’existent pas en numérique.

Reproductibilité : les valeurs des composants analogiques sont définies avec une
marge de précision plus ou moins grande. Dans ces conditions, aucun montage
analogique n’est strictement reproductible à l’identique, il existe toujours des
différences qu’il convient de maintenir dans des limites acceptables. Un programme
réalisant un traitement numérique est par contre parfaitement reproductible.
2. Applications des DSP :
L’émergence de nouvelles applications utilisant massivement des algorithmes de traitement
du signal et réclamant de plus en plus de puissance de calcul a contribué à l’essor du marché
des circuits DSP. Les domaines d’application couverts par l’utilisation des DSP sont
particulièrement nombreux :

Communication : modem, téléphonie, radio numérique, cryptage.

Image/Vidéo : compression/codage, traitement.

Audio : mixage et édition, effets, suppression de bruit, annulation d’echo.

Militaire : imagerie (radar, sonar), cryptographie, guidage de missiles, navigation.

Médical : équipements de monitoring (EEG, ECG), imagerie (IRM).

Automatisation : commande de machines, contrôle de moteurs, robots.

Instrumentation : analyseurs de spectre, générations de fonctions.

Automobile : contrôle du moteur, assistance au freinage, aide à la navigation,
commandes vocales, tableau de bord.
7
III.
Processus de développement d’un programme sur DSP :
Le processus de développement sur DSP, peut être résumé par l’organigramme de la figure
suivante : [1]
Figure 1: Le processus de développement d’un programme sur DSP

Partie matérielle : Elle inclut la mise en œuvre du DSP, et la chaine d’acquisition des
signaux à traiter.

Parie logicielle : elle s’appuie sur des moyens classiques qui s’adaptent aux
spécificités du DSP.
Le rôle du DSP ne se limite pas juste au traitement numérique des signaux, mais il assure
aussi les fonctions réalisées par un microprocesseur, et peut avoir donc le rôle du cœur d’un
système informatique [2]
8
IV.
Architecture de Von Neuman et architecture de Harvard :
L’architecture d’un microprocesseur, et donc d’un DSP, est un élément important qui
conditionne directement les performances d’un processeur. Il existe deux types fondamentaux
de structures, dites « Von Neuman » et « Harvard ».
1. Von Neuman :
La structure de VON NEUMAN, utilisée par les microprocesseurs (architecture des x86)
depuis 40 ans, consiste à placer les données et le programme sur un bus commun.
Inconvénient majeur de cette structure : on ne peut lire une donnée ou une instruction qu’en
un seul cycle.
Figure 2: architecture de type Von Neuman
Un microprocesseur basé sur une structure Von Neuman stocke les programmes et les
données dans la même zone mémoire. Une instruction contient le code opératoire et l’adresse
de l’opérande. Ce type de microprocesseur incorpore principalement deux unités logiques de
base:

l’Unité Arithmétique et Logique (ou ALU en anglais), chargé de réaliser les opérations
centrales (de type multiplications, additions, soustractions, rotation, etc.).

l’unité en charge des Entrées/Sorties, qui commande le flux de données entre le cœur
du microprocesseur et les mémoires ou les ports.
2. Harvard :
Lorsque la vitesse d’exécution d’un programme est importante, il est préférable d’utiliser la
structure de HARVARD. Cette structure se distingue de l’architecture Von Neuman
uniquement par le fait que les mémoires programmes et données sont séparées. L’accès à
chacune des deux mémoires se fait via un chemin distinct. Cette organisation permet de
transférer une instruction et des données simultanément, ce qui améliore les performances.
Ainsi en un seul cycle, le processeur pourra lire l’instruction et la donnée.
9
Figure 3: architecture de type Harvard
3. Utilisation de ces structures dans les DSP :
L’architecture généralement utilisée par les microprocesseurs est la structure Von Neuman
(exemples : la famille Motorola 68XXX, la famille Intel 80X86). L’architecture Harvard est
plutôt utilisée dans des microprocesseurs spécialisés pour des applications temps réels,
comme les DSP.
Il existe cependant quelques rares DSP à structure Von Neuman. La raison de ceci est liée au
coût supérieur de la structure de type Harvard. En effet, elle requiert deux fois plus de bus de
données, d’adresses, et donc de broches sur la puce. Or un des éléments augmentant le coût de
productions des puces est précisément le nombre de broches à implanter.
V.
Principales fonctionnalités :
1. Opérateur MAC :
Un microprocesseur classique va nécessiter plusieurs cycles d’horloge pour effectuer un
calcul du type A = (B x C) + D, par exemple, un 68000 ( Motorola ) a besoin de :

10 cycles d’horloge pour effectuer une addition.

70 cycles d’horloge pour effectuer une multiplication.
Soit 80 cycles pour seulement calculer A. Si ce temps est admissible dans des applications
informatiques courantes, il n’est pas acceptable pour faire du traitement rapide du signal. Les
DSP sont donc conçus pour optimiser ce temps de calcul, à cet effet, ils disposent de fonctions
optimisées permettant de calculer A beaucoup plus rapidement.
Dans la pratique, la plupart des DSP ont un jeu d’instructions spécialisé permettant de lire en
mémoire une donnée, d’effectuer une multiplication puis une addition, et enfin d’écrire en
mémoire le résultat, le tout en un seul cycle d’horloge. Ce type d’opération est nommé MAC,
de l’anglais Multiply and ACcumulate.
10
Effectuer une opération MAC en seul cycle n’est malgré tout pas satisfaisant si le cycle
d’horloge est trop « long ». Le principal objectif d’évolution des DSP a toujours été
d’améliorer le temps de calcul d’un MAC [1]
Figure 4: Evolution du temps d'exécution
d'une opération MAC
Actuellement, un DSP de gamme moyenne effectue une opération MAC sur des données de
16 bits en moins de 25 ns, soit 40 000 000 opérations par seconde. De telles performances
sont indispensables pour effectuer des traitements rapides.
Outre le temps d’exécution d’une opération MAC, un autre problème se pose. L’opération
MAC étant une multiplication suivie d’une addition, un débordement de l’accumulateur est
toujours possible. Pour contourner ce problème, certains DSP possèdent un accumulateur
adapté au MAC. Ces accumulateurs ont un format spécial incorporant des bits
supplémentaires (bits de garde) par rapport à la taille des données à manipuler. Les problèmes
de débordements sont alors contournés, car un programme de traitement correctement conçu
ne devrait pas générer des suites d’opérations MAC telles qu’un résultat excède la capacité
élargie de l’accumulateur.
2. Accès mémoire
Outre l’opération MAC, une autre caractéristique des DSP est leurs capacités à réaliser
plusieurs accès mémoire en un seul cycle. Ceci permet à un DSP de chercher en mémoire une
instruction et ses données réalisant un MAC, et simultanément, d’y ranger le résultant du
MAC précédent. Le gain de temps est évident. Toutefois, sur certains DSP basiques, ce type
d’opération simultané est généralement limité à des instructions spéciales. Ces instructions
utilisent un mode d’adressage restreint, c’est à dire ne portant que sur de la mémoire vive
intégrée au DSP.
11
Les modes d’adressages des données sont un point particulier des DSP. Un DSP peut posséder
plusieurs unités logiques de génération d’adresse, travaillant en parallèle avec la logique du
cœur du DSP. Une unité logique de génération d’adresse est paramétrée une seule fois via les
registres appropriés. Elle génère alors toute seule, en parallèle avec l’exécution d’une
opération arithmétique, les adresses nécessaires à l’accès des données.
Ceci permet non seulement de réaliser les accès mémoires simultanés en seul cycle, comme
décrit plus haut, mais également d’incrémenter automatiquement les adresses générées. Ce
mode d’adressage particulier, généralement appelé adressage indirect par registre avec post
(ou pré) incrément, est très utilisé pour effectuer des calculs répétitifs sur une série de données
rangées séquentiellement en mémoire.
Si l’on ajoute la possibilité de générer ces adresses selon un modulo paramétrable, ce mode
d’adressage devient circulaire, et permet donc de créer des buffers circulaires en mémoire.
L’adressage circulaire indirecte (parfois également indexé) par registre avec post (ou pré)
incrément prend toute son importance quand il est utilisé pour accéder aux opérandes d’un
MAC [3]
VI.
Langage de programmation des DSP :
De façon générale, on dispose de deux langages pour la programmation des DSP à savoir
l’assembleur et le langage C (ou basic). La programmation en assembleur est la plus puissante
car elle permet de générer un code optimal en vitesse d’exécution (ce code étant très proche
du matériel) néanmoins elle est très complexe car intimement liée au processeur. La
programmation en langage C est plus facile mais elle est moins optimale. L’une des bonnes
habitudes de programmation est de mixer les deux langages, le langage C étant utilisé dans les
sections de code où la vitesse d’exécution n’est pas un impératif, et l’assembleur dans les
sections de code où une vitesse d’exécution optimale est demandée.
VII.
Architecture mémoire des DSP
C’est un lieu commun de dire que la mémoire constitue « le » goulot d’étranglement pour le
fonctionnement d’un processeur. Plusieurs artifices peuvent être utilisés afin d’obtenir un
débit compatible avec la rapidité du processeur : caches, mémoire multi accès, etc. [4].
12
1. Parallélisme d’accès
Les DSP résolvent les difficultés d’accès à la mémoire en adoptant tout ou partie des
dispositifs suivants :

une architecture Harvard interne, c’est-à-dire une séparation des chemins de données
pour les instructions et les données ;

deux antémémoires correspondant aux deux chemins de données (instructions et
données) ;

des bancs de mémoire RAM (Random Access Memory) et ROM (Read Only
Memory) internes dotés de temps d’accès réduit ;

la possibilité d’accéder de façon simultanée à plusieurs bancs de mémoire.
Il est à noter que, nous avons déjà présenté quelques exemples typiques d’architectures
internes de DSP à savoir l’architecture Harvard.
2. Mémoires externes et internes
Les DSP sont souvent destinés à être utilisés dans des applications où l’une des contraintes
principales est celle du coût. À cette fin, la plupart d’entre eux sont dotés de mémoire on-chip
(mémoire sur puce), ce qui résout en partie le problème. Cela est d’autant plus vrai qu’il est
difficile d’implanter des bancs de mémoire multiples et indépendants ou des mémoires multi
accès hors du circuit principal, et cela pour au moins deux raisons : la première est liée au
nombre de broches que le processeur devra comporter, la seconde à cause des coûts induits
pour la conception de la carte devant recevoir ces composants.
Afin de réserver les broches pour d’autres utilisations, la plupart des DSP ont suffisamment de
mémoire interne dans chaque banc mémoire pour les applications les plus courantes. Le
concepteur du système peut choisir d’étendre seulement un banc mémoire vers l’extérieur,
auquel cas des opérations à pleine vitesse sont toujours possibles si les mémoires externes
sont de temps d’accès suffisamment faibles.
13
3. Pile câblée
La pile est utilisée dans le traitement des appels de sous programmes et dans celui des
interruptions. Si, dans les processeurs classiques, seuls sont sauvegardés dans la pile, l’adresse
de retour et éventuellement le registre d’état (drapeaux), les contraintes « temps réel »
imposées aux DSP implique l’existence d’une pile câblée. Cela entraîne une limitation du
niveau de récursivité dans l’appel de fonctions et l’imbrication de traitements d’interruptions.
Des instructions de mise en pile et de dépilage permettent la manipulation de données dans la
pile [4].
4. Carte mémoire du DSP TMS320F2812 :
L'espace mémoire sur la F2812 se divise entre programme et données de l'espace. Il existe
différents types de mémoire disponible qui s’utilisent à la fois comme programme ou comme
l'espace de données.
Figure 5: Carte mémoire du DSP TMS320F2812
Le F2812 utilise des adresses de données de 32 bits et les adresses de programme 22 bits.
Cela permet une portée d'adresse total de mots 4G (1 mot = 16 bits) dans l'espace de données
et des mots 4M dans l'espace du programme. [5]
14

La mémoire interne non volatile est constituée d'un groupe de sections de mémoire
flash, une botte-ROM pour un maximum de six options de réinitialisation-démarrage
et d'une zone d'un temps programmable (OTP).

FLASH et OTP sont généralement utilisés pour stocker le code de contrôle de
l'application ou de données qui doit être présent lors de la réinitialisation.

Pour charger des informations dans Flash et OTP un besoin d'utiliser un programme
de téléchargement dédié, cela fait aussi partie de l'environnement de conception Texas
Instruments Code Composer Studio intégré.

Une mémoire volatile est divisée en 5 zones (M0, M1, L0, L1 et H0) qui peuvent être
utilisés à la fois comme mémoire de code et de la mémoire de données. PF0, PF1 et
PF2 sont cadres périphériques qui couvrent des registres de contrôle et le statut de
toutes les unités périphériques («Memory Registres mappés»). [5]
5. Mémoire Flash :
La F2812 et F2811 contiennent 128K x 16 de la mémoire flash intégrée, séparés en quatre 8K
x 16 secteurs, et 6 x 16K x 16 secteurs. L'utilisateur peut effacer individuellement,
programme, et de valider un secteur tout en laissant d'autres secteurs. Il est impossible
d'utiliser un secteur du flash ou le Bureau du Procureur d'exécuter des algorithmes flash qui
effacent / programmes d'autres secteurs. Mémoire spécial pipeline est fourni pour activer le
module flash pour atteindre des performances supérieures. Le flash / OTP est mappé à la fois
programme et de l'espace de données; par conséquent, il peut être utilisé pour exécuter un
code ou stocker des données d'informations.
6. ROM :
Le C2812 et C2811 contiennent 128K x 16 de ROM. Le C2810 a 64K x 16 de ROM. De plus,
il y a un bloc 1K x 16 ROM qui remplace la mémoire OTP disponible dans les périphériques.
7. Flash mémoire M0, M1 SARAMs :
Tous les appareils C28x contiennent ces deux blocs de mémoire d'accès unique, chaque 1K x
16 en taille. La pile points de pointeur au début du bloc M1 lors de la réinitialisation. Le bloc
15
M0 chevauche la B0 de dispositif de 240x, B1, B2, Blocs RAM et donc la cartographie des
variables de données sur les dispositifs 240x peuvent rester à la même adresse physique sur
les appareils C28x. Les M0 et M1 blocs, comme tous les autres blocs de mémoire sur les
appareils C28x, sont mappés à la fois programme et les données de l'espace. Ainsi,
l'utilisateur peut utiliser M0 et M1 d'exécuter du code ou pour les variables de données. La
séparation est effectuée au sein de la liaison. Le dispositif C28x présente une mémoire unifiée
mappé au programmeur. Cela rend plus facile pour la programmation en langages de haut
niveau.
8. Les mémoires L0, L1, H0 SARAMs :
Le F281x et C281x contiennent un supplément de 16K x 16 de RAM d'accès unique, divisé
en trois blocs (4K + 4K + 8K). Chaque bloc peut être accessible indépendamment donc de
minimiser les stalles de pipelines. Chaque bloc est mappé à la fois programme et les données.
9. Boot ROM :
La mémoire Boot ROM est programmé avec le logiciel “boot-loading“, le programme de
cette mémoire est exécuté après la remise de la carte DSP et la vérification des broche GPIO
pour déterminer quel est le mode démarrage. Par exemple l’utilisateur peut sélectionner le
code d’exécution qui est déjà présenté sur la mémoire interne Flash ou télécharger un nouveau
logiciel sur la RAM interne.
VIII.
Instructions DSP :
Traduites en codes binaires par le programme, les instructions se terminent avec un (;). Elles
peuvent être précédées par une étiquette (suite de caractères terminée par :). Deux instructions
exécutées en parallèle sont séparées par une (,)
Les DSP sont dotés d’instructions facilitant les traitements les plus couramment rencontrés en
traitement numérique du signal. Des exemples de ces instructions sont présentés dans ce volet.
1) Calcul et transfert: une opération de calcul, éventuellement en parallèle avec une ou
deux opérations de transfert.
16

La plupart des instructions de ce groupe peuvent être précédées par IF cond où cond
est l’un des branchements ou sauts conditionnels
Exemple: IF eq F1=F5*F12, F11=PM (I10, 40);

Dans les opérations de calcul, les opérandes sont des registres (ou les valeurs
immédiates pour certaines opérations de décalage), mais jamais des contenus de la
mémoire.

Pour effectuer une opération de calcul sur le contenu de la mémoire, il faut d’abord le
transférer dans un registre.
2) Instructions de contrôle: servent à contrôler l’exécution du programme : JUMP, CALL,
RTS, RTI, DO UNTIL.

La plupart des instructions de ce groupe peuvent être précédées par IF cond. La
structure IF cond, ELSE peut être aussi utilisée pour certaines instructions.
Exemple: IF lt JUMP suite;
IF eq RTS, ELSE R0=LSHIFT R1 BY R15

Certaines instructions de ce groupe peuvent être exécutées en parallèle avec les
instructions de calcul.
Exemple: JUMP(M8,I12), R6=R6-1;
3) Transfert des valeurs immédiates: ces instructions sont utilisées pour effectuer un transfert
entre un registre et la mémoire, ou pour copier une valeur immédiate dans un registre ou dans
la mémoire.
Exemple: ASTAT=DM(0x489060);
DM(I4, M0)=19304;
4) Divers: manipulations des bits dans un registre de système, manipulation de pile (PUSH,
POP), NOP (instruction qui ne fait rien), ….[6]
Le tableau suivant englobe les instructions de programmation du DSP en langage assembleur :
Code
Mnemonic
Description
Cycles
ABS
Absolute value of ACC
1
ADD
Add to ACC with shift of 0 to 15, direct or indirect
1
17
Code
Mnemonic
Description
Cycles
ADDC
Add to ACC with carry, direct or indirect
1
ADDS
Add to low ACC with sign-extension suppressed, direct
or indirect
1
ADDT
Add to ACC with shift (0 to 15) specified by TREG, direct
or indirect
1
AND
AND ACC with data value, direct or indirect
1
CMPL
Complement ACC
1
LACC
Load ACC with shift of 0 to 15, direct or indirect
Load ACC with shift of 0 to 15, long immediate
Load ACC with shift of 16, direct or indirect
1
2
1
LACL
Load low word of ACC, direct or indirect
1
LACT
NEG
Load ACC with shift (0 to 15) specified by TREG, direct
or indirect
Negate ACC
1
1
NORM
ADRK
Normalize the contents of ACC, indirect
Add constant to current AR, short immediate
1
1
BANZ
Branch on current AR not 0, indirect
4
CMPR
Compare current AR with AR0
1
LAR
MAR
SAR
SBRK
BACC
BANZ
BCND
CALA
CALL
CC
INTR
NMI
RET
Load specified AR from specified data location,
direct or indirect
Load specified AR with constant, short immediate
Load specified AR with constant, long immediate
2
Modify current AR and/or ARP, indirect (performs no
operation when direct)
Store specified AR to specified data location, direct or
indirectfrom current
Subtract constant
AR, short immediate
1
Branch to address specified by
ACC
Branch on current AR not 0, indirect
Branch conditionally
Call subroutine at location specified by ACC
Call subroutine, indirect
Call conditionally
Soft interrupt
Nonmaskable interrupt
Return from subroutine
RETC
Return conditionally
TRAP
Software interrupt
BLDD
Block move from data memory to data memory,
2
2
1
1
4
4
4
(condit
(condit
ion
4
ions
true)
4
true)
24
2
(any
(condit
(condit
4
conditi
ion
ions
4
on
false)
true)
4
2false)
(any
4
conditi
on
4
false)
3
18
Code
Mnemonic
BLPD
DMOV
IN
OUT
SPLK
TBLR
TBLW
Description
Cycles
Block move from program memory to data memory,
direct/indirect with long immediate source
Data move in data memory, direct or indirect
3
Input data from I/O location, direct or indirect
Output data to port, direct or indirect
Store long immediate to data memory location, direct
or indirect
Table read, direct or indirect
Table write, direct or indirect
2
3
2
1
3
3
Tableau 1: Instructions de programmation en assembleur
IX.
Modes d’adressage :
Pour optimiser la vitesse d’exécution des algorithmes de traitement numérique du signal, les
DSP possèdent en plus des modes d’adressage usuels (direct et indirect) d’autres modes
d’adressage dont les plus communs aux DSP sont : l’adressage en bit inversé (bit reversed)
et l’adressage en modulo (modulo addressing) encore appelé buffer circulaire (circular
buffering).
1. Mode d'adressage direct :
Dans ce mode d’adressage, le registre DP (16 bits) se comporte comme un pointeur de page
fixe. Il génère une adresse de 22 bits pour un accès à la mémoire à partir de deux sources : 16
bits du registre "Data Page (DP)" (les bits de poids le plus fort) et un autre 6 bits pris de
l'instruction. [5]
Avantage : Ce type d'adressage est utile pour accéder à des structures de données
d'adresses fixes, tels que les registres périphériques et des variables globales ou statiques en C
/ C ++.
Inconvénient : Si le code doit accéder à une autre page, DP doit être réglé en premier.
Exemple : MOVW DP,#VarA (Charger le pointeur DP avec la valeur VarA).
19
2. Mode d'adressage indirect.
Le mode d’adressage indirect permet d’accéder, non pas à l’information recherché, mais à un
mot mémoire dans lequel on trouvera l’adresse effective de l’information. Il utilise l'un des
huit 32-bit XARn registres à tenir l'adresse 32 bits de l'opérande. [5]
Avantage : A l'aide de l’ARAU, pointeur arithmétique est disponible dans le même cycle
dans lequel un accès à un emplacement de mémoire de données est effectué.
Inconvénient : Un accès aléatoire à la mémoire de données a besoin d'une nouvelle
configuration du registre de pointeur.
Exemple : MOVL XAR2, #Array1 (Load XAR2 l’adresse de début de Array1).
3. Mode d’adressage en bit inversé (bit reversed addressing) :
Ce mode d’adressage (géré dans le matériel) est utilisé pour simplifier et accélérer les accès
aux données d’un tableau dans l’exécution de l’algorithme de Transformer de Fourrier Rapide
(FFT). Lorsque l’algorithme de FFT est exécuté sur un processeur classique la première
opération effectuée est de réarranger les données du tableau dans l’ordre dit du «bit
reversed ».
4. Mode d’adressage circulaire ou adressage en modulo (Circular Buffering) :
Pour illustrer ce mode d’adressage et son intérêt particulier nous allons nous baser sur une des
opérations fondamentale du traitement numérique du signal à savoir le filtrage. Considérons
un filtre à réponse impulsionnelle finie (RIF), ce type de filtre est régit par une équation de
récurrence de la forme :
La sortie y[n] de ce filtre est le produit de convolution entre les échantillons d’entrées( x[n])
et la réponse impulsionnelle du filtre (ak). Ce produit de convolution nécessite deux
opérations mathématiques majeures : la multiplication et l’addition (ces deux opérations sont
connues sous le nom de MAC). Pour réaliser ce filtre, le processeur doit effectuer l’opération
MAC à l’arrivée de chaque nouvel échantillon et ensuite effectuer une mise à jour de ces
derniers.
20
Dans une application temps réel les échantillons d’entrée x[n] proviennent généralement d’un
convertisseur analogique/Digital (ADC); il est donc nécessaire que l’opération MAC ait un
temps d’exécution prédictible et que son temps d’exécution soit inférieure à la période
d’échantillonnage de l’ADC. Pour rendre cela possible les DSP possèdent un nouveau mode
d’adressage appelé « circular buffering » qui est associé à une architecture particulière permet
à la plus part des DPS d’effectuer l’opération MAC en un cycle instruction.
Revenons à l’exemple de notre filtre et supposons qu’il doit être implémenté en temps réel.
Pour calculer un échantillon de sortie nous devons avoir accès à un certain nombre
d’échantillons d’entrée les plus récents. Si nous supposons que ce filtre est d’ordre 8 c.à.d
possède 8 coefficients (a0 à a7) cela implique que l’on a besoins d’avoir les 8 échantillons
d’entrée les plus récents ( x[n], x[n-1], x[n-2], … x[n-7]) pour produire un échantillon en
sortie; ces 8 échantillons doivent être stockés en mémoire et mis à jour chaque fois qu’un
nouvel échantillon est acquis. C’est là le principe de l’adressage circulaire (ou adressage
modulo).
X.
DSP « TMS320F2812 » de Texas Instruments :
1. Architecture générale du DSP :
Ce DSP est capable de fonctionner à une fréquence de 150 MHz, soit un temps de cycle de
6.6 ns. Son architecture générale est donnée par la figure suivante.
Figure 6 : Architecture générale du DSP TMS320F2812
21
2. Module « EVA » :
Les DSP de cette famille sont équipés de deux modules identiques de gestion d’événements
appelés respectivement EVA et EVB lui permettant de générer seize signaux PWM (Pulse
Width Modulation) et aussi de détecter les transitions de six signaux logiques variables dans
le temps provenant des codeurs incrémentaux par exemple. Dans la suite de ce paragraphe, on
expliquera le principe du module EVA. [7]
Le schéma synoptique de ce module est donné par la figure suivante.
Figure 7: Schéma synoptique du module EVA
a. Etude du fonctionnement du Timer:
Ce module est constitué par les éléments suivants :
 Deux compteurs 16 bits appelés respectivement Timer1 et Timer2 et qui sont
différents de ceux de la CPU.
 Trois unités de comparaison « Compare unit1 », « compare unit2 » et « compare unit3
» qui permettent de générer 3 signaux PWM indépendants PWM1, PWM3 et PWM5.
Les sorties PWM2, PWM3 et PWM5 peuvent générer des signaux complémentaires
par rapport aux signaux PWM1, PWM3 et PWM5 respectivement.
 Trois unités de capture pouvant capter des transitions des signaux logiques.
Ce module peut fonctionner en mode capture pour mesurer la vitesse d’une machine en
captant sur les entrées CAPx(x=1,2,3) le signal d’un codeur incrémental.
22
Le circuit QEP permet de faire une mesure de la position. Dans ce cas les entrées QEP 1 et
QEP2 servent comme signal d’horloge et pour déterminer la direction et la position, alors que
l’entrée QEP3 permet de détecter le passage par l’origine.
Le module peut aussi recevoir deux signaux externes qui sont un signal d’horloge externe
(TCLKINA) et la direction de comptage (TDIRA). Il peut aussi renvoyer un signal de début
de conversion. [7]
Les Registres associés aux Timer x (x=1,2) du module EVA sont les suivants :

GPTCONA : General Purpose Timer Control register A.

TxCNT: Timer x Counter register.

TxCMPR: Timer x Compare register buffer.

TxPR: Timer x period regsiter buffer.

TxCON: timer x Control register.
La configuration du mode de fonctionnement des Timers 1et 2 de EVA se fait à travers le
registre GPTCONA et celui TxCON (x=1,2). La figure suivante donne le schéma synoptique
du Timer x (x=1,2) du EVA.
Figure 8: Schéma synoptique du trimer
Chaque timer est équipé d’un compteur 16 bits qui peut fonctionner en plusieurs modes
différents (simple comptage avec remise à zéro à la fin du comptage, un comptage et
décomptage, ….). Le signal d’horloge du compteur peut être généré soit par une horloge
externe, soit par le circuit QEP, soit par une horloge interne à travers un circuit pré diviseur.
La période de fonctionnement est programmée dans le registre TxPR.
Le registre TxCMPR peut aussi être programmé pour générer un signal PWM sur la sortie
23
TxPWM/TxCMP.
Les deux figures suivantes expliquent le fonctionnement pour les modes de comptage
«coutinuous-up» et «countinuous-up/down» pour le cas de la configuration suivante :
-Horloge interne avec prescalar =1, TxPR=5, TxCMPR est initialement chargé à 2.
-Une nouvelle valeur 4 sera ensuite chargée, une troisième valeur sera chargée à 2.
-La sortie TxPWM/TxCMPR est active à l’état haut. [7]
Figure 9: Principe de fonctionnement du timer pour le mode «countinuous-up»
Figure 10: Principe de fonctionnement du timer pour le mode «countinuous-up/down»
Plusieurs différences peuvent apparaître entre ces deux modes tels que :
- Le chargement de la nouvelle valeur de TxCMPR se fait quand le compteur atteint la valeur
finale du nombre à compter pour le mode « continuous-up », alors que pour l’autre mode ce
chargement peut se faire aussi à la fin de la période de comptage.
- La période du signal de sortie est TxPR+1 pour le mode « continuous-up ». Elle est égale à
2(TxPR) pour l’autre mode.
24
- Les signaux PWM sont asymétriques par rapports au milieu de la période pour le mode «
continuous-up ». Pour le mode « continuous-up down », il est possible de générer des signaux
symétriques. Le calcul de la valeur à charger dans le registre TxPR pour le mode de
fonctionnement « continuous-up » se fait en appliquant la formule suivante :
Avec :

Fdesirée : la fréquence de fonctionnement du compteur du Timer x. Si on génère un
signal PWM elle sera donc la fréquence du signal de sortie.

F oscillateur externe : C’est la fréquence du signal d’horloge généré par l’oscillateur
externe.

PLL : C’est un facteur avec lequel on multiplie la fréquence de l’oscillateur externe
afin d’augmenter la fréquence de la CPU. Il est désigné par PLL car on utilise un
circuit PLL pour obtenir un multiplicateur de fréquence.

HSPLK : diviseur de la fréquence du signal d’horloge généré par la PLL (High speed
clock prescalar).

Timer TPS : un deuxième diviseur de fréquence placé en amont du Timer x (Timer
clock prescalar factor) et qui varie de 1 à 128.
Le calcul de la valeur à charger dans le registre TxCMPR dépend du rapport cyclique d du
signal PWM qu’on désire générer et aussi de la valeur chargée dans le registre TxPR tels que :
Notons aussi que chaque timer est capable de générer quatre types d’interruptions aux
moments suivants :

Compteur égal à zéro.

La valeur du compteur est égale à celle du registre de période.

La valeur du compteur est égale à celle du registre de comparaison.

Débordement du Compteur (0XFFFF). [7]
b. Etude du fonctionnement des unités de comparaison (1, 2 et 3) :
Chaque module EVA ou EVB est constitué de trois unités de comparaison permettant de
générer six signaux PWM. Chaque groupe de deux signaux est indépendant des autres
signaux. Les registres associés aux unités de comparaison sont :

COMCONA : Compare Control register A.

EXTCONA : Extension Control register.
25

ACTRA : Compare Action Control register.

DBTCONA : Dead-Band Timer Control regsiter.

CMPR1: Compare Register 1.

CMPR2: Compare Register 2.

CMPR3: Compare Register 3.
La figure suivante donne le schéma synoptique d’une unité de comparaison du module EVA.
Figure 11: Schéma synoptique d'une unité de comparaison du module EVA
A chaque période de fonctionnement la valeur du registre du compteur du timer 1 est
comparée avec celle programmée dans le registre CMPRx (x=1,2,3). A l’égalité des deux
valeurs, les Sorties PWMy, PWMy+1 changent d’état et ceci selon le mode de
fonctionnement configuré dans le registre ACTRA. Ce registre permet de définir la forme du
signal des sorties PWMy et PWMy+1 dans l’un des quatre états suivants :

Sortie forcée à l’état haut quel que soit l’état de la comparaison.

Sortie forcée à l’état bas quel que soit l’état de la comparaison.

Sortie active à l’état haut.

Sortie active à l’état bas.
Le registre COMCONA permet de valider ou bloquer les sorties PWM, et aussi de valider le
mode MLI vectorielle.
Un temps mort entre la montée du signal et la descente de son complément peut être
programmé dans le registre DBTCONA.
26
c. Etude du fonctionnement des unités de capture (1, 2 et 3) :
Chaque module EVA ou EVB est constitué de trois unités de capture permettant de détecter
les fronts des signaux à leurs entrées. Les Registres associés aux unités de comparaison Pour
le cas du module EVA sont :

CAPCONA : Registre de contrôle des unités de capture de EVA.

CAPFIFOA : Registre d’état des unités de capture de EVA.

CAP1FIFO : Pile 1 à deux niveaus.

CAP2FIFO : Pile 2 à deux niveaux.

CAP3FIFO: Pile 3 à deux niveaux.

CAP1FBOT : Registre bas de CAPFIFO1.

CAP2FBOT : Registre bas de CAPFIFO2.

CAP3FBOT: Registre bas de CAPFIFO3.
La figure suivante donne le schéma synoptique d’une unité de comparaison du module EVA.
Figure 12: Schéma synoptique d'une unité capture du module EVA
Pour chaque unité de capture, la base du temps peut être celle du timer 1 ou bien du timer 2
sauf que les unités CAP1 et CAP2 doivent toujours avoir la même base du temps.
Chacune des 3 unités d’EVA possède une pile à deux niveaux de type FIFO (First In First
Out). Le niveau haut de la pile est formé par le registre CAPxFIFO (x=1, 2, 3) alors que le
niveau bas est formé par le registre CAPxFBOT (x=1, 2, 3).
27
Partons de l’état initial et pour une première capture (quand une transition est détectée sur
l’entrée correspondante) la valeur du registre compteur (T1CNT ou T2CNT) sera écrite dans
le registre haut CAPxFIFO dans le cas où la pile est vide. En même temps, les bits
correspondants dans le registre CAPFIFOA sont mis à l’état 01.
Ces bits seront remis à l’état 00 dans le cas où on accède à la lecture de la pile. Supposons
maintenant que cette unité de capture capte une deuxième transition avant la lecture du
contenu de la pile, la nouvelle valeur du compteur sera stockée dans le registre bas de la pile,
en même temps l’état des bits du registre CAPFIFOA devient 10.
Si maintenant le contenu de la pile est consulté avant qu’une autre capture est faite, la valeur
stockée dans le registre haut sera écrasée, la valeur stockée dans le registre bas sera déplacée
vers le haut et les bits du registre CAPFIFOA prennent l’état 01.
Notons aussi qu’une interruption du périphérique sera demandée si elle n’est pas masquée.
Supposons maintenant qu’une troisième capture arrive avant la lecture des deux valeurs
précédentes. Dans ce cas, l’ancienne valeur contenue dans le registre haut de la pile sera
écrasée, la valeur stockée dans le registre bas sera poussée dans le registre haut et la nouvelle
troisième valeur est stockée dans le registre bas. Dans ce cas les bits correspondants du
registre CAPFIFOA sont mis à l’état 11 pour indiquer qu’une ou plusieurs valeurs anciennes
de la pile ont été écrasées. Aussi, dans ce cas, une interruption de périphérique sera demandée
si elle n’a pas été masquée. [7]
3. Unité de commande :
 Rôle : Permet de séquencer le déroulement des instructions.
 Objectifs pour être performant :

Pilotage de chaque module du DSP indépendamment les uns des autres.

Gestion efficace des boucles.

Encodage des instructions :
o Minimiser la taille des instructions.
o Encoder le maximum de parallélisme.
L’unité de commande est le chef d’orchestre du CPU. Il séquence et décode les instructions
une à une.
Pour être efficace, le CPU met en œuvre :
28

Un pipeline.

Une gestion des boucles matérielles.
a. Les phases du pipeline :
 P (Prefecth) - Generate program address =Incrémentation du compteur ordinal.
 F (Fetch) - Get Opcode =Lecture du code de l’instruction en mémoire.
 D (Decode) - Decode instruction =Décodage de l’instruction.
 A (Access) - Generate read address =Calcul des adresses des opérandes =Calcul de
l’adresse du résultat.
 R (Read) - Read operands =Lecture des opérandes en mémoire.
 X ( Execute) =Exécution de l’instruction =Ecriture du résultat l’adresse calculée.
b. Gestion des boucles :
L’objectif est d’optimiser le traitement des boucles de petite taille par :

L’initialisation des paramètres de la boucle en 1 instruction.

L’élimination d'instructions supplémentaires pour la gestion de la fin de la boucle.
4. Unité de traitement (DP : Data Processor) :
C’est l’unité fonctionnelle qui modifie ou transforme les données.
 Rôle : Assure les traitements nécessaires à l’exécution des instructions.
 Objectifs pour être performant :

Réaliser efficacement les traitements typiques.
o 1 MAC par cycle.
o 1 décalage de N bits (droite ou gauche) en 1 cycle.
5. Unité de mémorisation :
L’unité de mémorisation se devise en deux :


IM : Instruction Memory : stocke les instructions.
DM : Data Memory : stocke les données traitées par l’unité de traitement.
 Rôle :

Mémoire de programme.

Mémoire de donnée.
 Objectifs pour être performant :

Alimenter efficacement en données l’unité de traitement afin de ne pas la ralentir.

Gérer efficacement les pointeurs d’adresse.
29
6. Unité de communication (EIU : External Interface Unit) :
L’unité de communication contrôle les accès aux données ou instructions externes, ou à
d'autres processeurs.
 Rôle : Contrôle les accès aux données, aux instructions externes ou à d'autres
processeurs.
 Objectifs pour être performant : Limiter l’utilisation des ressources processeur lors
de ces accès.
7. Unité de contrôle (IP : Instruction Processor):
C’est l’unité fonctionnelle qui interprète les instructions et commande les autres unités
fonctionnelles.
La figure suivante illustre le diagramme d’état d’un IP.
Figure 13: diagramme d'état de l'unité de contrôle
8. Registres
a. Accumulateur (ACC, AH, AL) :
L'accumulateur (ACC) est le principal registre de travail pour l'appareil. Il est la destination
pour toutes les opérations sauf celles qui opèrent directement sur la mémoire ou les registres.
ACC soutient la proposition de cycle unique, additionner, soustraire, et de comparer les
opérations de mémoire de données 32-bits de large. Il peut aussi accepter le résultat de 32 bits
d'une opération de multiplication. Les demis et quarts de l'ACC sont également accessibles.
ACC peut être traitée comme deux indépendants registres de 16 bits: AH (hautes 16 bits) et
30
AL (faible 16 bits). Les octets dans AH et AL pouvez également accéder de façon
indépendante. Octet de coup spécial instructions charger et de stocker l'octet le plus
significatif ou octet le moins significatif de l'AH ou AL. Cela permet efficace paquetage
d'octets et le déballage. [5]
b. Registre de multiplicande (XT) :
Le registre de multiplicande (registre XT) est principalement utilisé pour stocker une valeur
de 32 bits signé entier avant une 32-bit opération de multiplication.
La partie inférieure 16 bits du registre de XT est désigné par le registre de TL. Ce registre
peut être chargé avec une valeur de 16 bits signé qui est automatiquement étendu à signerremplir le registre XT 32-bit.
La partie supérieure de 16 bits du registre de XT est désigné comme le registre T. Le registre
T est principalement utilisé pour stocker une valeur entière de 16 bits avant une opération de
multiplication de 16 bits.
Le registre T est également utilisé pour spécifier la valeur de décalage pour certaines
opérations de décalage. Dans ce cas, seule une partie du registre T est utilisé, en fonction de
l'instruction. [5]
c. Registre de produit (P, PH, PL) :
Le registre de produit (P registre) est généralement utilisé pour contenir le résultat de 32 bits
d'une multiplication. Il peut également être chargé directement à partir d'un emplacement de
données de mémoire de 16 ou 32 bits, une constante de 16 bits, le CAC 32 bits ou 16 bits ou
32 bits registre de CPU adressable. Le registre P peut être considéré comme un registre à 32
bits ou comme deux indépendants registres de 16 bits: PH (haute 16 bits) et PL (16 bits
inférieurs Stack Pointer (SP)
Le pointeur de pile (SP) permet l'utilisation d'une pile de logiciel dans la mémoire de données.
Le pointeur de la pile a seulement 16 bits, et ne peut remédier à la faible 64K d'espace de
données Lorsque le SP est utilisé, la partie supérieure de 6 bits de l'adresse de 32 bits sont
forcés à 0. [5]
31
d. Registres auxiliaires (XAR0-XAR7, AR0-AR7) :
La CPU fournit huit registres 32 bits qui peuvent être utilisés comme pointeurs vers la
mémoire ou à usage généralregistres. Les registres auxiliaires sont: XAR0, XAR1, XAR2,
XAR3, XAR4, XAR5, XAR6, et XAR7.
La plupart des instructions vous permettent d'accéder au 16 bits de poids faible XAR0-XAR7.
Comme le montre la figure 8.2, les 16 bits de poids faible des registres auxiliaires sont
appelés AR0-AR7. AR0-AR7 peut être utilisé comme registres à usage général pour le
contrôle de la boucle et la comparaison 16 bits.
Lors de l'accès AR0-AR7, les 16 bits supérieurs du registre (connus sous le nom AR0HAR7H) peuvent ou peuvent ne pas être modifié, en fonction de l'instruction utilisée
comportement du particulier, AR0H-AR7H sont accessibles que dans le cadre de XAR0XAR7 et ne sont pas accessibles individuellement. [5]
e. Registres de contrôle d’interruptions :
Interrupt-Control Registers (IFR, IER, DBGIER) Le C28x CPU dispose de trois registres
dédiés au contrôle d'interruptions:

registre de drapeaux d'interruptions (IFR).

registre de validation d’interruptions(IER).

Debug interrompre permettre registre (DBGIER).
Ces registres gèrent les interruptions au niveau du processeur. Appareils avec une expansion
d'interruption périphérique (PIE) bloc aura le contrôle d'interruption supplémentaire.
L'IFR contient les bits de drapeaux pour les interruptions masquables (ceux qui peuvent être
activées et désactivées avec le logiciel). Lorsque l'un de ces drapeaux est fixé, par matériel ou
logiciel, l'interruption correspondant sera desservi si elle désactivé. Vous activer ou de
désactiver une interruption masquable avec son bit correspondant dans l'IER.
Le DBGIER indique les interruptions de temps critique qui sera desservi (si activé) tandis que
le DSP est en temps réel mode d'émulation et le CPU est arrêtée. [5]
32
XI.
Convertisseur AD (ADC) :
Un convertisseur analogique – numérique (en anglais ADC) est un dispositif électronique
permettant la conversion d’un signal analogique en un signal numérique. Le module ADC
TMS320F28x dispose d’un convertisseur analogique-numérique 12 bits en pipeline. Les
circuits analogiques de ce convertisseur, comprennent des multiplexeurs analogiques frontal
(MUX), des circuits d'échantillonnage et de maintien (S / H), régulateurs de tension…[8].
1. Caractéristiques :
Le module ADC dispose de 16 canaux configurables, comme deux modules de 8 canaux
indépendants au service des gestionnaires d'événements A et B. Les deux modules de 8
canaux indépendants peuvent être mis en cascade pour former un module 16 canaux. Bien
qu'il existe plusieurs canaux d'entrée et deux séquenceurs, il n'y a qu'un convertisseur dans le
module d’ADC. La figure 13 montre le schéma de principe du module ADC de F2812.
Les deux modules 8 canaux ont la capacité d'auto-séquencer une série de conversions, chaque
module a le choix de sélectionner l'un des huit canaux respectifs disponibles par le biais d'un
multiplexeur analogique. Dans le mode en cascade, les fonctions d’auto-séquenceur sont
comme un seul séquenceur 16 canaux. Sur chaque séquenceur, une fois la conversion est
terminée, la valeur du canal sélectionné est stockée dans son registre « ADCRESULT »
respective. Cette opération permet au système de convertir le même canal à plusieurs reprises,
ce qui permet à l'utilisateur d'exécuter des algorithmes de sur-échantillonnage. Les fonctions
du module ADC comprennent:

ADC à 12 bits avec noyau intégré double échantillonneur-bloqueur (S / H).

Entrée analogique: 0 V à 3 V.

Temps de conversion rapide tourne à 25 MHz.

16 canaux, entrées multiplexées.

Séquenceur peut être utilisé comme deux séquenceurs 8 états indépendants ou comme
un grand séquenceur 16 états.

seize registres de résultat (individuellement adressable) pour stocker les valeurs de
conversion.
33
Figure 14: Schéma du module ADC
2. Principe de fonctionnement :
Le séquenceur ADC se compose de deux séquenceurs 8 états indépendants (SEQ1 et SEQ2)
qui peuvent également être montés en cascade pour former un seul séquenceur 16 états (SEQ).
"L'état" de mot représente le nombre d’auto conversions qui peuvent être effectuées avec le
séquenceur. Les schémas fonctionnels du seul (16 états, en cascade) et double (deux 8-Etat,
séparés) séquenceur sont présentés dans les figures 14 et 15, respectivement.
Dans les deux cas, l'ADC a la capacité d'auto-séquencer une série de conversions. Cela
signifie que chaque fois que l'ADC reçoit une demande de début de conversion, il peut
effectuer de multiples conversions automatiquement.
Pour chaque conversion, l'une des 16 canaux d'entrée disponibles peut être sélectionnée par le
MUX analogique. Après la conversion, la valeur numérique de la chaîne sélectionnée est
stockée dans le registre de résultat approprié (ADCRESULTn).
(Le premier résultat est stocké dans ADCRESULT0, le deuxième résultat dans
ADCRESULT1, et ainsi de suite) [8]
34
Figure 15: Schéma ADC en mode cascade
Figure 16: Schéma ADC avec double séquenceurs
35
XII.
Carte eZdsp TM F2812 :
L’ezdspTM F2812 est une carte de développement autonome munie d’un DSP de type
TMS320F2812.
Figure 17: carte de développement eZdsp TM F2812
Elle permet d’examiner les performances de ce type de processeurs afin de déterminer s’il
répond aux exigences de l’application visée et de vérifier la vitesse du code généré tout en
utilisant l’outil de développement et de correction logiciels fourni pour la famille C2000 des
DSP. Sur la carte eZdsp TM F2812 deux connecteurs d’expansion sont pourvus, permettant
ainsi toute évaluation nécessaire, et un connecteur JTAG pour interfacer avec l’émulateur. [9]
La figure suivante représente un schéma synoptique de la carte de développement.
Figure 18: Schéma synoptique de la carte eZdspTM F2812
36
Téléchargement