LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle...

92
LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur

Transcript of LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle...

Page 1: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

LES PROCESSEURS DU SIGNAL (DSP)DANS LE CONTRÔLE NUMERIQUEÉtude d’un DSP dédié au contrôle moteur

Page 2: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Généralités sur les DSP- Caractéristiques- Structures- Comparaison entre Processeur et DSP

Etude du processeur TMS 320LF2407Application à la carte d’évaluation eZdsp LF2407

- Architecture- Gestion des interruptions- Programmation

Exemples de programmes Codage des nombres Applications

LES PROCESSEURS DU SIGNAL (DSP)DANS LE CONTRÔLE NUMERIQUEÉtude d’un DSP dédié au contrôle moteur

Page 3: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Définition

Un DSP : Processeur particulier; - Intègre un ensemble de fonctions spéciales; - Bonnes performances; - Généralement conçu pour être utilisé sous la forme d’un monocircuit; Intègre:

- mémoire RAM et ROM- ports série rapides- ports d ’entrées / sorties

Il est destiné à être «embarqué»;

Introduction

Page 4: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Avantages

Souplesse de la programmation;

Stabilité;

Reproductibilité;

Introduction

Page 5: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Le marché en 1996 selon Forward Concepts Principaux constructeurs

Texas Instruments

45%

AT&T 29%

Analogue Device 11%

Motorola 8%

Autres7%

Introduction

Page 6: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Domaines d’application

Télécommunications Son Vidéo

Instrumentation:

analyseurs de spectres; générateurs de fonctions; analyse des signaux et des images biologiques; radar et sonar

Systèmes de commande:

commande de moteurs électriques; synthèse des correcteurs de servomécanisme équipement automobile;

Introduction

Page 7: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Soit:

Le 68000 (par ex.) a besoin de:

10 cycles d’horloges pour effectuer une addition70 cycles d’horloges pour effectuer une multiplication

Les DSP disposent de fonctions optimisées: Il peuvent effectuer simultanément les 3 opérations suivantes:

lecture d’une donnée en mémoire effectuer une multiplication puis une addition écrire en mémoire le résultat

soit au total 80 cycles d’horloges

Cette opération s’appelle MAC et prend 1 cycle d’horloge

A B C D ( . )

Différences entre un Processeur et un DSP

Page 8: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

ACRONYME

ANGLAISDEFINITION

MFLOPS

Million Floating-Point Operations Per Second

Mesure le nombre d’opérations à virgule flottante(multiplication,additions, soustraction…etc) que le DSP à virgule flottante peut

réaliser en une seconde

MOPS

Million Operations Per Second

Mesure le nombre total d’opérations que le DSP peut réaliser enune seconde. Les opérations concernent également les accèsDMA, les transferts de données, les opérations d’E/S…etc.

MIPS

Million Instructions Per Second

Mesure le nombre de codes machines (instructions) que le DSPpeut effectuer en une seconde.

MBPS

Mega-Bytes Per Second

Mesure la largeur de bande d’un bus particulier ou d’un dispositifD’E/S, c-à-d son taux de transfert

Vitesse de calcul: Nombre d ’instructions par seconde

Performances des DSP

Page 9: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Structure Von Neuman

Différences entre un Processeur et un DSP

Mémoire Programme et Données

EntréesSorties

Unité arithmétique et logique

Adresse

Donnée

Page 10: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Structure Harvard

Différences entre un Processeur et un DSP

Mémoire Programme

EntréesSorties

Unité arithmétique et logique

Adresse

DonnéeMémoire Données

Adresse

Donnée

Page 11: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Structure Harvard Modifiée

Différences entre un Processeur et un DSP

Mémoire Données

EntréesSorties

Unité arithmétique et logique

Adresse

Donnée

MUX

Mémoire Programme

MUX

Page 12: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Structure Von Newman Processeurs

Structure Harvard Processeurs spécialisés : DSP

Structure Harvard modifiée Coût plus faible

Différences entre un Processeur et un DSP

Page 13: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Temps d ’accès à la mémoire:

Un DSP peut simultanément:

- chercher en mémoire une instruction et ses données- réaliser une opération MAC- ranger en mémoire le résultant du MAC précédent.

gain de temps évident.

Performances des DSP

Page 14: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Modes d’adressages des données:

- Unité logique de génération d’adresse- travaille en parallèle avec UAL.

Performances des DSP

Page 15: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Le choix dépend :

- de la puissance de traitement nécessaire- du type de DSP à utiliser- des ressources mémoire utilisées-des besoins d’un ou de plusieurs Timers internes, de ports série - du coût par rapport au rapport « performance/prix »- de la qualité de la documentation- de la qualité du système de développement utilisé-de la possibilité d ’utiliser un langage de haut niveau….etc

Choix d ’un DSP

Page 16: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Basée sur la structure de Harvard modifiée:

- les bus programme et données sont séparés

- Accès simultané aux instructions programme et aux données

Architecture du TMS 320 LF2407

Étude du processeur TMS 320 LF 2407

Page 17: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

P bus I/F

Event Managers

(EVA and EVB)SPI SCI CAN WD ADC

control

Interruptsreset,etc

I / Oregisters

ADC

C2xx CPU+JTAG +544x16 DARAM

SARAM

(up to 2Kx16) Mem I/F

Logic I / F

Flash / ROOM (Up to 32Kx16)

P bus

Page 18: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Bus Programme

Bus Données

Registreinstruction

UA des pointeurs

Registrespointeurs:

AR0…AR7

Prédécaleur

UAL Générale

Accumulateur

Postdécaleur

Multiplieur

Registre TREG

Registre PREG

Postdécaleur

Unité centrale de calcul

Page 19: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

MUX

MUX

MUX

TREG

Multiplieur16x16

PREG

Décalage -6,0,1,4 bits (Pscaler)Décalage 0-16bits (Prescaler)

ALU

Accumulateur

Décalage 1-7 bits (Postscaler)

C

Bus de Données en écriture DWEB

Bus de Données en lecture DRDB

Bus de Programme en lecture PRDB

Page 20: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

ARB

ARP

MUX

Registre Instruction

MUX

ARAU

AR7AR6AR5AR4AR3AR2AR1AR0

Bus adresses données

Bus de Données en lecture

Générateur d ’adresses

Page 21: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

FlashEEPROM

DARAMB0

DARAMB1 / B2

TestEmulation

InterfaceMémoireExterne

Géné.Temps

d’attente

Gestionnaired’événement

Timers

Unités comparaison

Captue /QEP

WatchdogInterface SérieConvertisseur A/D

Module Horloge Module Interface système

ARAU

Registre d’état

Registres Aux.

Registres mappés en mémoire

Pré-décaleur

ALU

Accumulateur

Post-décaleur

Multiplieur

TREG

PREG

Post-décaleur

Registre Instruction

ContrôleurProgramme

Bus Données

Bus Programme

Bus Périphérique

Page 22: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Le LF2407 est organisé autour de 3 types de mémoire

Mémoire programme: 64 Kmots de 16 bits

Mémoire données internes: 64 Kmots de 16 bits, parmi lesquels: 3 blocs de mémoire double accès (DARAM) B0, B1, B2 (544 mots de 16 bits)

Espace des entrées / sorties: 64 Kmots de 16 bits, pour l’interfaçage avec les périphériques extérieurs

Au total un espace mémoire de 192 Kmots

Architecture du TMS 320LF2407

Page 23: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Mémoire Programme:

- Programme à exécuter

- Le bloc B0 peut être en mémoire programme (CNF): • CNF=0: Les 544 mots (B0+B1+B2) mémoire données • CNF=1: - Les 256 mots du bloc B0 mémoire programme - Les 288 mots de B1 et B2 mémoire données

- Mémoire Flash (MP/MC): • Se comporte comme une ROM • Formée de 32 Kmots de 16 bits • MP/MC = 0 : le DSP est en mode contrôleur • MP/MC = 1 : le DSP est en mode processeur

Bloc B0: 256 mots de 16 bits FE00h à FFFFhBloc B1: 256 mots de 16 bits 0300h à 03FFhBloc B2: 32 mots de 16 bits 0060h à 007Fh

Architecture du TMS 320 F240

Page 24: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Mémoire Données internes: Comprend 3 Blocs de mémoire double accès

- Le bloc B0 configurable en mémoire programme ou données selon la valeur du bit CNF

- Les blocs B1 et B2 sont réservés à la mémoire données seulement

le mode d’adressage peut être direct ou indirect en mode direct: adressage par blocs de 128 mots appelé page de

données

• Il existe 512 pages de 0 à 511• Accès à une page: pointeur de page DP du registre d’état ST0

en mode indirect, adressage par l’un des 8 registres auxiliaires ARn

Architecture du TMS 320 F240

Page 25: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Contenu de la page 0:

2 registres accessibles sans délai d’attente - registre de masques d’interruptions (IMR) - registre de drapeaux d’interruptions (IFR)

zone mémoire de travail: Bloc B2 (RAM: 32 mots de 16 bits)

une zone réservée pour le test et l’émulation

Organisation de la mémoire

Page 26: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Modes d ’adressage

On dispose de 3 modes d ’adressage:

direct paginé indirect et indirect indexé immédiat

L ’adressage direct utilise le registre de page DP (9 bits de poids fort de l ’adresse)

L ’adressage indirect utilise les registres - pointeurs ARn

L ’adressage immédiat utilise le compteur ordinal pour repérer une donnée en mémoire de programme

Page 27: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Mode direct, adressage par blocs de 128 mots appelés pages de données

• Il existe 512 pages de 0 à 511• Accès à une page: pointeur de page DP du registre d’état ST0

Modes d ’adressage

DP Offset Mémoire données0000 0000 00000 0000 0

000 0000111 1111

Page 0 : 0000h - 007Fh

0000 0000 10000 0000 1

000 0000111 1111

Page 1 : 0080h - 00FFh

.

.

.1111 1111 11111 1111 1

000 0000111 1111

Page 511 : FF80h - FFFFh

ldp #1 ; selection page 1add 00F0h ; le contenu de l’adresse 00F0h est ajouté au contenu de l’Accuadd #0ED83h ; ajout de ED83 au contenu de l’Accu.

Page 28: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Mode indirect, adressage par l’un des 8 registres auxiliaires ARn

LAR AR1, # 00F0h ; AR1 pointe sur le contenu de la mémoire 00FH

MAR *, AR1 ; choix de AR1, ARP=1

ADD * ; le contenu de la mémoire pointée par AR1 est ; ajouté à celui de l’Accumulateur

Modes d ’adressage

Page 29: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Lorsqu’un registre-pointeur est utilisé, AR(ARP) représente toujours l’adresse d ’un des opérandes

* AR(ARP) utilisé comme adresse, ARP reste inchangé *+ AR(ARP) AR(ARP)+1 *- AR(ARP) AR(ARP)-1 *0+ AR(ARP) AR(ARP)+AR0 *0- AR(ARP) AR(ARP)-AR0 *BR0+ AR(ARP) AR(ARP)+AR0 et propagation de la retenue de

gauche à droite après l’adressage *BR0- AR(ARP) AR(ARP)-AR0 et propagation de la retenue de

droite à gauche après l’adressage

Modes d ’adressage

Page 30: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Registres d’état

Le processeur dispose de 2 registres d’état ST0 et ST1

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

ARP OV OVM 1 INTM DP

ARP: pointeur d’adresse ( registre auxiliaire courant)OV : indique la présence d’un dépassementOVM: le résultat est saturé lors d’un dépassement si 1INTM: masquage global des interruptions si 1DP: permet l’adressage par page

Registre ST0

Page 31: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Registres d’état

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

ARB CNF TC SXM C 1 1 1 1 XF 1 1 PM

ARB: stocke le précédent ARP

CNF: indique si la mémoire à double accès (B0) est en mode prog.ou données

TC: bit indiquant le résultat d’un test logique SXM: (Sign eXtension Mode) extension du bit de signe lors des décalages à droite

C: stocke le résultat de la retenue lors d’une opération arithmétique

XF: (eXternal Flag) état de la broche XF du processeur

PM: mode de décalage des produits

00: Aucun décalagePM 01: Décalage d’un bit à gauche

10: Décalage de 4 bits à gauche11: Décalage de 6 bits à droite avec extension du signe

Registre ST1

Page 32: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Gestionnaire d’évènement

2 Gestionnaires d’évènements: EVA et EVB fonctionnent de manière identique

Chacun comprend:

• 2 Timers;• 3 Unités de comparaison;• 1 Module de génération de signaux PWM avec temps mort et possibilité de SVPWM;• 3 Unités de capture;• 1 Circuit « Quadature Encoder Pulse : QEP » adapté aux codeurs incrémentaux pour la mesure de position • Une logique de gestion des interruptions

Page 33: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Event Manager Block Diagram (EVA)

PWM Circuits

PWM Circuits

PWM Circuits

Output Logic

Output Logic

Output Logic

GP Timer 1 Compare

GP Timer 1

GP Timer 2 Compare

GP Timer 2

Compare Unit 1

Compare Unit 2

Compare Unit 3

Capture Units

MUXQEP

Circuit

Output Logic

Output Logic

EV Control Registers / Logic

Reset PIE

TCLKINA / TDIRA/2

ADC Start

Dat

a B

us

CLK

DIR

••

T1CMP/T1PWM

T2CMP/T2PWM

PWM1PWM2PWM3PWM4PWM5PWM6

CAP1/QEP1CAP2/QEP2CAP3/QEPI1•

Page 34: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Caractéristiques du LF2407:

• Fréquence 40 MHz : 40x106 instructions par seconde (40 MIPS)

• 2x2 Timers

• 2x3 unités de comparaison: 2x 6 signaux PWM (MLI)

• Circuits gérant les signaux PWM: Fonctionnement en MLI vectorielle (SVPWM)Gestion des temps morts

• 2x3 Compteurs d ’impulsions « Capture units »

• 2 modules avec des entrées « QEP » compatible avec des codeurs incrémentaux• Faible niveau de tension : 3,3 V

Récapitulatif

Page 35: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Les Timers

2 Timers par module

4 Bases de temps indépendantes:

• Génération d’une période d’échantillonnage dans un système de contrôle• Bases de temps pour les compteurs d ’impulsions• Bases de temps pour les circuits QEP (seulement les timers 2 et 4)• Bases de temps pour la génération des signaux MLI

Chaque timer comprend:

• un registre compteur TxCNT accessible en lecture et écriture• un registre de contrôle GPTCON • un registre de comparaison TxCMPR accessible en lecture et écriture• un registre période TxPR• un registre de contrôle TxCON• un diviseur de fréquence applicable aux horloges interne et externe• une logique gérant les interruptions et leur contrôle• une sortie (TxPWM / TxCMP) correspondant au résultat de la comparaison (TxCMPR)

Page 36: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

MUX

T2PR ou T4PRRegistre période

(Dédoublé)

T1PR ou T3PRRegistre période

(Dédoublé)

Logique decomparaison

TxCMPRRegistre comparaison

(Dédoublé)

Géné. dents scieSym. / Asym.

GPTCONRegistre ctrl Timer

Logiquesorties

TxPWM

TxCNTCompteur

Logique decontrôle

TxCONRegistre de contrôle

Horloge CPUinterne

Démarrage ConversionADC

DrapeauxInterruption (Flags)

TCLKINA/BTDIRA/B

Fonctionnement des Timers

Page 37: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

TxCON qui détermine:

quel mode de comptage est utilisé; si le Timer utilise une horloge interne ou externe; quelle valeur du diviseur de fréquence utiliser; dans quelle condition le registre de comparaison est rechargé; si le Timer est valide ou pas; si l’opération comparaison est valide ou pas; si les Timers 2 et 4 utilisent leur propre période ou celle du Timer1 et Timer3

Registres de Contrôle des Timers

Page 38: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Registre de contrôle des Timers TxCON

Bits 15,14: conditions d’arrêt du TimerBits 13 : RéservéBits 12-11: mode de comptageBit 10-8 : valeur du diviseur de fréquence Bit 7 : Permet de démarrer le Timer 2 (ou le Timer4) en même temps

que le Timer1 (ou le Timer3)Bit 6 : Démarrage du TimerBits 5-4 : source de l’horloge des TimersBits 3-2 : condition de chargement des registres de comparaisonBit 1 : validation de l’opération comparaisonBit 0 : choix de la période (concerne Timer 2 et 4)

Configuration des Timers

15 14 13 12-11 10-8 Free Soft Réservé TMODE2-TMODE0 TPS2-TPS0

7 6 5-4 3-2 1 0

TSWT1 TENABLE TCLKS1-TCLKS0 TCLD1-TCLD0 TECMPR SELT1PR

Page 39: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

GPTCONA/B:

spécifie les actions à prendre en compte par le Timer;

indique le sens du comptage.

Registres de Contrôle des Timers

Configuration des Timers

Page 40: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

15 14 13 12-11 10-9 8-7 T3STAT T2STAT T13STAT T3TOADC T2OADC T1OADC

6 5-4 3-2 1-0

TCOMPOE T3PIN T2PIN T1PIN

Registre de contrôle des Timers GPTCONA/B

Bits 15 : RéservéBit 14 : Sens de comptage (concerne Timer 2 ou Timer 4) Bit 13 : Sens de comptage (concerne Timer 1 ou Timer 3)Bit 12-11 : RéservésBit 10-9 : démarrage du convertisseur ADC par un événement du Timer2 ou Timer 4Bit 8-7 : démarrage du convertisseur ADC par un événement du Timer1 ou Timer 3Bit 6 : permet de valider la sortie: comparaison des TimersBits 5-4 : RéservésBits 3-2 : polarité de la sortie du Timer 2 ou du Timer 4Bits 1-0 : polarité de la sortie du Timer 1 ou du Timer 3

Configuration des Timers

Page 41: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

4 Interruptions par Timer:

Overflow: TxOFINT ( Compteur = FFFFh);

Underflow: TxUFINT ( Compteur = 0000h);

Compare match: TxCINT ( Compteur = Val TxCMPR));

Période match: TxPINT ( Compteur = Val (TxPR));

Interruptions Timer

Page 42: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Programmation des Timers

3 modes de fonctionnement sont possibles: Mode 1: « Continuous up  » Signaux asymétriques Mode 2: « Continuous up / down »  Signaux symétriques Mode 3: « Directional up /down » Signaux asymétriques

Mode asymétrique Mode symétrique

TxCMPR

TxPWM

TxCMPR

TDIRA/B

Mode 3: « Directional up /down »

Page 43: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Mode 1 Mode 2 Valeur du registre TxPR

ou Valeur du registre TxCMPR

(Valeur réelle/THCPU) -1

Valeur réelle /(2.THCPU)

Programmation des Timers

Page 44: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Programmation des Timers

Exemple: Timer1 en mode asymétrique

Période = 200 ns, soit 8*25 ns et Niveau comparaison: 100 ns, soit 4*25 ns

Page 45: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Configuration des Timers

T1PR = 8-1=7T1CMPR = 4-1=3

GPTCONA = 0000 0000 0100 0010 b polarité de la sortie: Active High sorties des 2 Timers valides

T1CON = 1001 0000 0100 0010 b Validation du mode comparaison Recharge registre T1CMPR si compt.=0 Horloge interne Timer1 valide: démarrage Timer1 Mode continuous-up opération non affectée par l’arrêt de l’émulation

Timer1 en mode asymétrique: Période 8*25 ns Niveau comparaison:4*25 ns

Page 46: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Code assembleur: Timer1 en mode asymétrique

GPTCONA .set 7400hT1CNT .set 7401hT1CMPR .set 7402hT1PR .set 7403hT1CON .set 7404h

LDP #0E8hSPLK #0042h,GPTCONASPLK #0007h,T1PRSPLK #0003h,T1CMPRSPLK #0000h,T1CNTSPLK #9042h,T1CON

Configuration des Timers

Page 47: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

T1PR = 4T1CMPR = 2T1CNT = 0

GPTCONA = 0000 0000 0100 0010 b polarité de la sortie: active high sorties des 2 Timers valides

T1CON=1000 1000 0100 0010 b Validation du mode comparaison Recharge registre T1CMPR si compt.=0 Démarre Timer1 Horloge interne

Mode continuous-Up/Down opération non affectée par l’arrêt de l’émulation

Configuration des Timers

Timer1 en mode symétrique: Période 4*2*25 ns Niveau comparaison: 2*2*25 ns

Page 48: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Configuration des Timers

GPTCONA .set 7400hT1CNT .set 7401hT1CMPR .set 7402hT1PR .set 7403hT1CON .set 7404h

LDP #0E8hSPLK #0042h,GPTCONASPLK #0004h,T1PRSPLK #0002h,T1CMPRSPLK #0000h,T1CNTSPLK #8842h ,T1CON

Code assembleur: Timer1 en mode symétrique

Page 49: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Gestion des sorties PWM

3 Unités de comparaison par module:

• compare units 1,2 et 3 dans EVA : Base de temps Timer1• compare units 4,5 et 6 dans EVB : Base de temps Timer3

Chaque unité est associée à 2 sorties PWM : 2x 6 sorties PWM

Les registres de contrôle des sorties PWM

EVA CMPR1 CMPR2 CMPR3 COMCONA ACTRA

EVB CMPR4 CMPR5 CMPR6 COMCONB ACTRB

Page 50: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Programmation des sorties PWM avec un temps mort

15 14 13 12 11 10 9 8 SVRDIR D2 D1 D0 CMP6ACT1 CMP6ACT0 CMP5ACT1 CMP5ACT0

7 6 5 4 3 2 1 0 CMP4ACT1 CMP4ACT0 CMP3ACT1 CMP3ACT0 CMP2ACT1 CMP2ACT0 CMP1ACT1 CMP1ACT0

Bit 15 : sens de rotation de la MLI (PWM) vectorielleBits 14-12 : définissent la position des vecteurs tension en MLI vectorielleBits 11-0 : définissent les polarités des sorties PWM

«Compare Action Control Register» ACTRA

Page 51: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Programmation du circuit PWM avec un temps mort

15 14 13 12 11 10 9 8

CENABLE CLD1 CLD0 SVENABLE ACTRLD1 ACTRLD0 FCOMPOE SCOMPOE

7 6 5 4 3 2 1 0 Réservés

Bit 15 : permet de valider l’opération comparaisonBits 14-13 : définissent les conditions de chargement du registre CMPRxBit 12 : validation du SVPWM (PWM vectorielle)Bits 11-10 :définissent les conditions de chargement du registre ACTRBit 9 : valident les sorties PWMBit 8 : Etat de la broche PDPINTABit 7-0 : Réservés

Registre de contrôle du mode comparaison

COMCONA

Page 52: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Programmation du circuit PWM avec un temps mort

15-12 11 10 9 8 Réservés DBT3 DBT2 DBT1 DBT0

7 6 5 4 3 2 1-0

EDBT3 EDBT2 EDBT1 DBTPS2 DBTPS1 DBTPS0 Réservés

Le temps mort est nécessaire pour éviter les court-circuits dans les structures en pont des onduleurs:

Registre de contrôle du temps mort DBTCONA

Bits 15-12: RéservésBits 11 -8 : permet de définir la valeur du temps mortBit 7 : Validation du temps mort pour PWM5 et PWM6Bit 6 : Validation du temps mort pour PWM3 et PWM4Bit 5 : Validation du temps mort pour PWM1 et PWM2Bits 4-2 : Diviseur de fréquence

000 = x /1 100 = x /16 x: Fréquence du CPU001 = x /2 101 = x /32010 = x /4 110 = x /32011 = x /8 111 = x /32

Bits 1-0 : Réservés

Page 53: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Programmation du circuit PWM avec un temps mort

Si DBTCONx [11-8] = m DBTCONx [4-2] correspond à x /p

DBTCON[4-2] p

DBTCON[11-8] m

110 (p =32)

100 (p=16)

011 p=(8)

010 (p = 4)

001 (p =2)

000 (p = 1)

0 0 0 0 0 0 0

1 0,8 0,4 0,2 0,1 0,05 0,025

2 1,6 0,8 0,4 0,2 0,1 0,05

3 2,4 1,2 0,6 0,3 0,15 0,075

4 3,2 1,6 0,8 0,4 0,20 0,1

5 4 2 1 0,5 0,25 0,125

6 4,8 2,4 1,2 0,6 0,3 0,15

7 5,6 2,8 1,4 0,7 0,35 0,175

8 6,4 3,2 1,6 0,8 0,40 0,2

9 7,2 3,6 1,8 0,9 0,45 0,225

A 8 4 2 1 0,5 0,25

B 8,8 4,4 2,2 1,1 0,55 0,275

C 9,6 4,8 2,4 1,2 0,6 0,3

D 10,4 5,2 2,6 1,3 0,65 0,325

E 11,2 5,6 2,8 1,4 0,7 3,35

F 12 6 3 1,5 0,75 0,375

MHzxxpmsenmorttemps 40610..

Page 54: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Circuits PWM associés aux Unités de comparaison

Géné ScieSym / Asym

SVPWM

MUXUnité

Temps mortLogique de

sorties

ACTRA Compare action

registre

DBTCONAdead-band timercontrol register

ACTRA [12-15]

COMCONA [11-13]

COMCONA [12]

COMCONA [9]

PWM1à

PWM6

Comparaison

Page 55: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Programmation des sorties PWM avec un temps mort: Module EVA

Procédure de programmation:

- charger le registre T1PR - charger le registre ACTRA - charger le registre DBTCONA - initialiser les registres CMPR1,2,3

- charger le registre COMCONA - charger le registre T1CON pour démarrer l’opération - charger les registres CMPR1,2,3 avec les bonnes valeurs

Page 56: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

PWM en mode symétrique

2 signaux PWM par unité de comparaison Base de temps utilisé: Timer1 Exemple: Période 250ns = 5*2*25 ns, Temps mort = 25 ns

ACTRA = 0000 0110 0110 0110 b sortie 1: active high sortie 2: active low

DBTCONA = 0000 0001 1110 0000b Prescaler = x/1 Validation temps mort pour les 3 phases Temps mort = 25 ns

Programmation des sorties PWM avec un temps mort: Module EVA

Page 57: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

CMPR1 = 3h CMPR2 = 2h CMPR3 = 4h COMCONA = 1000 0010 0000 0000 b

Validation sorties PWM

Chargement registres ACTR quand T1CNT=0 Chargement registres CMPRx quand T1CNT=0 Validation de l’opération comparaison

T1PR = 5hT1CNT = 0hT1CON = 8842h

Programmation des sorties PWM avec un temps mort: Module EVA

Page 58: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

GPTCONA .set 7400hT1CNT .set 7404hT1PR .set 7403hT1CON .set 7404hCOMCONA .set 7411hACTRA .set 7413hDBTCONA .set 7415hT1CON .set 7404hCMPR1 .set 7417hCMPR2 .set 7418hCMPR3 .set 7419h

LDP #00E8hSPLK #0666h,ACTRASPLK #01E0h,DBTCONASPLK #3h,CMPR1SPLK #2h,CMPR2SPLK #4h,CMPR3SPLK #8200h,COMCONASPLK #5h,T1PRSPLK #0h,T1CNTSPLK #8842h ,T1CON

Code assembleur: Timer1 en mode symétrique

Programmation des sorties PWM avec un temps mort: Module EVA

Page 59: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Valeur du Timer Valeurs des registres

comparaison.

PWM1Active high

PWM2Active low

PWM3Active high

PWM4Active low

PWM5Active high

PWM6Active low

Temps mort

Page 60: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Circuit QEP « quadrature Encoder Pulse » pour EVA

• Utilisé pour décoder et compter les impulsions aux entrées

QEP1 et QEP2 (EVA) ou QEP3 et QEP4 (EVB) Position & vitesse

• Prévu pour être interfacé avec un codeur incrémental ( mesure de position)

• Base de temps: Timer2 pour EVA et Timer4 pour EVB

• Les Timers doivent être programmés en mode « Directional up /down »

Timer2 Prescaler

QEPDecoder

logic

CaptureUnits1,2

CLKOUT

CAP1/ QEP1CAP2/ QEP2

T2CON[4,5]

CLKOUT CAPCONA[13,14]T2CON[8,9,10]

CLKIN

CLK

DIR

TDIRA 2

2

2

Page 61: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Circuit QEP « quadrature Encoder Pulse »

La programmation du circuit nécessite les registres:

• T2PR ou T4PR• T2CON ou T4CON• CAPCONA ou CAPCONB

Décodeurlogique

CompteurT2CNT K QEP1

QEP2

CLK

Direction

Page 62: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Gestion des interruptions

Le LF2407 dispose de: -2 signaux externes non masquables: RS et NMI

-6 interruptions masquables INT1, INT2,...., INT6

-3 instructions pour le déclenchement logiciel des interruptions: INTR, NMI et TRAP

- Les interruptions INTx sont activées par des sources issues des EVA et EVB

- Ces sources sont organisées en 3 groupes A,B et C

Page 63: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Groupe Source d’interruption

Description Interruption

INTx

A

CMP1INT

CMP2INT

CMP3INT

T1PINT

T1CINT

T1UNINT

T1OFINT

Compare unit 1

Compare unit2

Compare unit 3

Timer 1 period

Timer 1 compare

Timer 1 underflow

Timer 1 overflow

INT2

B

T2PINT

T2CINT

T2UNINT

T2OFINT

Timer 2 period

Timer 2 compare

Timer 2 underflow

Timer 2 overflow

INT3

C

CAP1INT

CAP2INT

CAP3INT

Capture unit 1

Capture unit 2

Capture unit 3

INT4

Groupe Source d’interruption

Description Interruption

INTx

A

CMP4INT

CMP5INT

CMP6INT

T3PINT

T3CINT

T3UNINT

T3OFINT

Compare unit 4

Compare unit5

Compare unit 6

Timer 3 period

Timer 3 compare

Timer 3 underflow

Timer 3 overflow

INT2

B

T4PINT

T4CINT

T4UNINT

T4OFINT

Timer 4 period

Timer 4 compare

Timer 4 underflow

Timer 4 overflow

INT3

C

CAP4INT

CAP5INT

CAP6INT

Capture unit 4

Capture unit 5

Capture unit 6

INT4

Les interruptions de EVA Les interruptions de EVB

Page 64: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Registre Drapeau Registre Masque Gestionnaire d’évènement

EVAIFRA EVAIMRA

EVAEVAIFRB EVAIMRB

EVAIFRC EVAIMRC

EVBIFRA EVBIMRA

EVBEVBIFRB EVBIMRB

EVBIFRC EVBIMRC

Gestion des interruptions

Page 65: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

15-11 10 9 8 7 6-4 3 2 1 0

Réserves T1OFINT T1UFINT T1CINT T1PINT Réservés CMP3INT CMP2INT CMP1INT PDPINTA

15-4 3 2 1 0

Réserves T2OFINT T2UFINT T2CINT T2PINT

EVAIMRA

EVAIMRB

15-3 2 1 0

Réserves CAP3INT CAP2INT CAP1INT

EVAIMRC

15-6 5 4 3 2 1 0

Réservés INT6 INT5 INT4 INT3 INT2 INT1

IMR

Les masques d’interruption de EVA

Page 66: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Pour autoriser les interruptions de manière globale:

CLRC INTM ; armement du mécanisme des ITs pour toutes; les sources masquables

Pour les inhiber:

SETC INTM ; désarmement du mécanisme des ITs

Gestion des interruptions

Page 67: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

ADC Module Block Diagram (dual sequencer mode)

12-bit A/DConverter

SoftwareEVA

Ext Pin (ADCSOC)

ResultSelect

Result MUX

RESULT0

. . .

RESULT1

RESULT7

ResultSelect

RESULT8

. . .

RESULT9

RESULT15

CHSEL00 (state 0)CHSEL01 (state 1)CHSEL02 (state 2)

CHSEL07 (state 7)...

MAX_CONV1

Autosequencer

Start SequenceTrigger

SOC1/EOC1

SEQ1

CHSEL08 (state 8)CHSEL09 (state 9)CHSEL10 (state 10)

CHSEL15 (state 15)

...

MAX_CONV2

Autosequencer

Start SequenceTrigger

SEQ2

SequencerArbiter

SOC2/EOC2

SoftwareEVB

Analog MUX

MUXA

ADCINA0

ADCINA1

ADCINA7

...

MUXB

ADCINB0

ADCINB1

ADCINB7

...

S/HA

S/HMUX

S/HB

Page 68: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Convertisseur Analogique Digital ADC

Les registres nécessaires à la programmation:

• ADCTRL1• ADCTRL2• MAXCONV• CHSELSEQ1• CHSELSEQ2• CHSELSEQ3• CHSELSEQ4• RESULT0 ……RESULT15

Bits15-12 Bits11-8 Bits7-4 Bits3-0

3 2 3 2 CHSELSEQ1

x 12 7 6 CHSELSEQ2

x x x x CHSELSEQ3

x x x x CHSELSEQ4

Page 69: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Vin ADCRESx Data Mem Signed Q15

0.15 1111|1111|1100|0000 0111|1111|1100|0000 +0.999023 0 0111|1111|1100|0000 1111|1111|1100|0000 -0.000977-0.15 0000|0000|0000|0000 1000|0000|0000|0000 -1.000000

Int resultADC;

resultADC = ADCRESx ^ 0x8000;

Exemple de mesure d’un courant via l’ADC

ADCINx

VCCA

VSSA

TMS320F2407Vin

3.3 v

-+

R

R

2R

-0.15 V < Vin < +0.15 VPWM1

PWM2

+ DC_BUS

GND

Shuntresistor

A

0 V < VADCin < +3.3 V

Page 70: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Convertisseur Analogique Digital ADC

V3,3ADCIN

Ventréed'tensionsLes

Le convertisseur étant sur 10 bits, le résultat de la conversion est:

3,3

ADCINV

1023numériqueValeur

Page 71: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Bit 15-6 : résultat de la conversion sur 10 bits

Lecture du résultat d’une conversion

En assembleur

LACC RESULTx,10 ; décalage de 10 bits à gauche pour récupérer le résultatSACH variable ; récupérer la partie haute de l’accu.

En langage C

unsigned int tmp; Float entree=0.0;

tmp = RESULTx > 6entree=((float)tmp/1023.0)*3.3

Les registres résultats RESULTx

Gestion des convertisseurs A/N (ADC)

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 0 0 0 0 0 0

Page 72: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.
Page 73: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.
Page 74: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.
Page 75: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.
Page 76: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.
Page 77: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.
Page 78: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.
Page 79: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.
Page 80: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.
Page 81: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

15-6 5 4 3 2 1 0 IMR Réservé INT6 INT5 INT4 INT3 INT2 INT1

IFR Réservé INT6 INT5 INT4 INT3 INT2 INT1

15-4 3 2 1 0

EVAIMRB Réservé T2OFINT T2UFINT T2CINT T2PINT

/* Programmation d’une interruption avec le Timer2 */

Page 82: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.
Page 83: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.
Page 84: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Codage des nombres

• Représentation en complément à 2:

Soit X un nombre codé sur N bits en complémént à 2

X= -2N-1.bN-1 + bi.2i

avec: bN-1= 0 si X > 0 bN-1= 1 si X < 0

Xmax = 2N-1 -1Xmin = - 2N-1

X bN-1 bN-2 ............. b1 b0

i=0

i=N-2

Page 85: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Codage des nombres

• Addition de 2 nombres de N bits Résultat sur N+1 bits au moins

• Produit de 2 nombres de N bits Résultat nécessite 2N-1 bits

• Le registre produit est sur 2N bits: Les 2 bits de poids fort sont identiques

Le MSB est inutile: Décaler le résultat d’un bit à gauche (PM)

Page 86: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Codage des nombres

• Représentation en virgule fixe:

On utilise le terme «Format Qk» : K bits après la virgule

Si X est codé sur N bits en format Qk.

X = - bN-1-K.2N-1-K + bN-2-K.2N-2-K +......... + b0 + b-1.2

-1 +......+ b-K.2-K

Erreur < 2-K

Pour éviter de traiter les puissances négatives, on multiplie X par 2K.

Cela correspond à la représentation de l’entier Y tq

Y= round ( X.2K)

Partie entière Partie fractionnaire X bN-1-K bN-2-K ..... b1 b0 b-1 b-2 ....... b-K

Page 87: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Codage des nombres

• Représentation en virgule fixe:

Valeurs extrêmes Xmax = 2N-1-K - 2-K

Xmin = - 2N-1-K | Xmin | = 2-K

Exemples : 110 10001 en format Q5 sur 8 bits soit: -22+21+2-1+2-5 = -4+2+0.5+0.0312 5= -1.46875

Nombre réel Format Q5 Equivalence Erreur Erreur en % 1/3

sqrt(2)

000 01011 001 01101 011 00101 100 00000

0,34375 1,40625 3,15625

4

0,0104166 0,0079635 0,0146573

0,02

3,125 0,563 0,466

0,5

Représentation sur 8 bits en format Q5

Page 88: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Codage des nombres

• Addition: Aligner les parties entières et les parties décimales

• Multiplication: Le produit de 2 nombres sur N bits donne un résultat sur 2N bits Les 2 bits de poids forts sont identiques ( bits de signe) Seuls 2N-1 bits

sont nécessaires pour le résultat

• Produit de 2 nombres en formats différents: QK1 x QK2 : Résultat en QK1+K2

Si on souhaite un résultat en format QK3 , on doit effectuer:

- un décalage vers la droite de K1+K2-K3- ou un décalage vers la gauche de 16 - (K1+K2-K3 )

Page 89: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Exemple: soit la multiplication suivante: I.cos

Avec: I =0.816 Format Q12 cos =0.5 Format Q12

I = 0.816 x 212=3342 d D0E hcos = 0.5 x 212=2048 d 800 h

D0E h x 800 h = 687 000 h au format Q24

Résultat en Q12:

• Décalage à droite de 24-12=12 et prendre la partie basse

• ou décalage à gauche de 16-( 24-12)=4 et prendre la partie haute

687 000 h après décalage : 0000 0110 1000 0111 b 0.4079589844

alors que I.cos = 0.816 x 0.5 = 0.408

Codage des nombres

Page 90: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Codage des nombres

Calcul en virgule fixe

Multiplication de 2 nombres en format Q15

LAR AR1, #ad_début ; AR1= adresse de Val1MAR *, AR1 ; Choix de AR1 comme pointeurLT ad_donnée ; Treg =Val = valeur pointée par ad_donnéeMPY * ; Preg = Treg x Val1: Q30 sur 32 bitsPAC ; Transfert de Preg dans l’accu.SACH ad_résultat,1 ; Décalge du résultat de 1 bit à gauche

; et stockage de la partie haute de l’accu ; dans ad_résultat. Résultat en Q15[31...16]

Adresses Valeurs

ad_début Val1Val2Val3Val4

...

...

ad_donnée Valad_résultat xxxx

Page 91: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Codage des nombres

Calcul en virgule fixe: Multiplication de 2 nombres en format Q15 et Q13

Valeurs du tableau en format Q13

Contenu de l’adresse ad_donnée en format Q15

Le résultat sera en Q28 sur 32 bits.

Pour ramener le résultat en Q15

il faut diviser par 213 et ne conserver que les bits de poids faibles ou multiplier par 23 et ne conserver que les bits de poids forts

c-à-d effectuer un décalage de 3 bits à gauche

Adresses Valeursen Q13

début Val1Val2Val3Val4

...

...

...

Page 92: LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

LAR AR1, # ad_début ; AR1= adresse de Val1MAR *, AR1 ; Choix de AR1 comme pointeurLT ad_donnée ; Treg = valeur pointée par ad_donnéeMPY * ; Preg = Treg x Val1: Q30 sur 32 bitsPAC ; Transfert de Preg dans l’accu.SACH ad_résultat ,3 ; Décalge du résultat de 3 bit à gauche

; et stockage de la partie haute de l’accu ; dans ad_résultat. Résultat en Q15[31...16]

Codage des nombres

31 30 29 28 27-24 23-20 19-16 15-12 11-8 7-4 3-0Preg

16 bits de poids forts 16 bits de poids faibles

31 30 29 28 27-24 23-20 19-16 15-12 11-8 7-4 3-0Preg

16 bits de poids forts 16 bits de poids faibles