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

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

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

Présentations similaires


Présentation au sujet: "LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur."— Transcription de la présentation:

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

2  Généralités sur les DSP - Caractéristiques - Structures - Comparaison entre  Processeur et DSP  Etude du processeur TMS 320LF2407  Application à 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

3 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

4 Avantages  Souplesse de la programmation;  Stabilité;  Reproductibilité; Introduction

5 Le marché en 1996 selon Forward Concepts Principaux constructeurs Texas Instruments 45% AT&T 29% Analogue Device 11% Motorola 8% Autres 7% Introduction

6 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

7 Soit: Le 68000 (par ex.) a besoin de:  10 cycles d’horloges pour effectuer une addition  70 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 Différences entre un  Processeur et un DSP

8 Vitesse de calcul: Nombre d ’instructions par seconde Performances des DSP

9 Structure Von Neuman Différences entre un  Processeur et un DSP Mémoire Programme et Données Entrées Sorties Unité arithmétique et logique Adresse Donnée

10 Structure Harvard Différences entre un  Processeur et un DSP Mémoire Programme Entrées Sorties Unité arithmétique et logique Adresse Donnée Mémoire Données Adresse Donnée

11 Structure Harvard Modifiée Différences entre un  Processeur et un DSP Mémoire Données Entrées Sorties Unité arithmétique et logique Adresse Donnée MUX Mémoire Programme MUX

12  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

13 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

14 Modes d’adressages des données: - Unité logique de génération d’adresse - travaille en parallèle avec UAL. Performances des DSP

15 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

16 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

17 P bus I/F Event Managers (EVA and EVB) SPI SCICANWD ADC control Interrupts reset,etc I / O registers ADC P bus

18 Bus Programme Bus Données Registre instruction UA des pointeurs Registres pointeurs: AR0…AR7 Prédécaleur UAL Générale Accumulateur Postdécaleur Multiplieur Registre TREG Registre PREG Postdécaleur Unité centrale de calcul

19 MUX TREG Multiplieur 16x16 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

20 ARB ARP MUX Registre Instruction MUX ARAU AR7 AR6 AR5 AR4 AR3 AR2 AR1 AR0 Bus adresses données Bus de Données en lecture Générateur d ’adresses

21 Flash EEPROM DARAM B0 DARAM B1 / B2 Test Emulation Interface Mémoire Externe Géné. Temps d’attente Gestionnaire d’événement Timers Unités comparaison Captue /QEP Watchdog Interface 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ôleur Programme Bus Données Bus Programme Bus Périphérique

22 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

23 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 à FFFFh Bloc B1: 256 mots de 16 bits 0300h à 03FFh Bloc B2: 32 mots de 16 bits 0060h à 007Fh Architecture du TMS 320 F240

24 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 AR n Architecture du TMS 320 F240

25 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

26 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

27 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 ldp#1 ; selection page 1 add00F0h ; le contenu de l’adresse 00F0h est ajouté au contenu de l’Accu add#0ED83h ; ajout de ED83 au contenu de l’Accu.

28 Mode indirect, adressage par l’un des 8 registres auxiliaires AR n 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

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

30 Registres d’état Le processeur dispose de 2 registres d’état ST0 et ST1 ARP: pointeur d’adresse ( registre auxiliaire courant) OV : indique la présence d’un dépassement OVM: le résultat est saturé lors d’un dépassement si 1 INTM: masquage global des interruptions si 1 DP: permet l’adressage par page Registre ST0

31 Registres d’état 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écalage PM01: Décalage d’un bit à gauche 10: Décalage de 4 bits à gauche 11: Décalage de 6 bits à droite avec extension du signe Registre ST1

32 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

33 Event Manager Block Diagram (EVA) PWM Circuits 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 MUX QEP Circuit Output Logic EV Control Registers / Logic Reset PIE TCLKINA / TDIRA / 2 ADC Start Data Bus CLK DIR T1CMP/T1PWM T2CMP/T2PWM PWM1 PWM2 PWM3 PWM4 PWM5 PWM6 CAP1/QEP1 CAP2/QEP2 CAP3/QEPI1

34  Caractéristiques du LF2407: Fréquence 40 MHz : 40x10 6 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

35 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)

36 MUX T2PR ou T4PR Registre période (Dédoublé) T1PR ou T3PR Registre période (Dédoublé) Logique de comparaison TxCMPR Registre comparaison (Dédoublé) Géné. dents scie Sym. / Asym. GPTCON Registre ctrl Timer Logique sorties TxPWM TxCNT Compteur Logique de contrôle TxCON Registre de contrôle Horloge CPU interne Démarrage Conversion ADC Drapeaux Interruption (Flags) TCLKINA/B TDIRA/B Fonctionnement des Timers

37  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

38 Registre de contrôle des Timers TxCON Bits 15,14: conditions d’arrêt du Timer Bits 13 : Réservé Bits 12-11: mode de comptage Bit 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 Timer Bits 5-4 : source de l’horloge des Timers Bits 3-2 : condition de chargement des registres de comparaison Bit 1 : validation de l’opération comparaison Bit 0 : choix de la période (concerne Timer 2 et 4) Configuration des Timers

39  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

40 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és Bit 10-9 : démarrage du convertisseur ADC par un événement du Timer2 ou Timer 4 Bit 8-7 : démarrage du convertisseur ADC par un événement du Timer1 ou Timer 3 Bit 6 : permet de valider la sortie: comparaison des Timers Bits 5-4 : Réservés Bits 3-2 : polarité de la sortie du Timer 2 ou du Timer 4 Bits 1-0 : polarité de la sortie du Timer 1 ou du Timer 3 Configuration des Timers

41  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

42 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 »

43 Programmation des Timers

44 Exemple: Timer1 en mode asymétrique Période = 200 ns, soit 8*25 ns et Niveau comparaison: 100 ns, soit 4*25 ns

45 Configuration des Timers T1PR = 8-1=7 T1CMPR = 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 o pé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

46 Code assembleur: Timer1 en mode asymétrique GPTCONA.set7400h T1CNT.set7401h T1CMPR.set7402h T1PR.set7403h T1CON.set7404h LDP#0E8h SPLK#0042h,GPTCONA SPLK #0007h,T1PR SPLK #0003h,T1CMPR SPLK #0000h,T1CNT SPLK #9042h,T1CON Configuration des Timers

47 T1PR = 4 T1CMPR = 2 T1CNT = 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

48 Configuration des Timers GPTCONA.set7400h T1CNT.set7401h T1CMPR.set7402h T1PR.set7403h T1CON.set7404h LDP#0E8h SPLK#0042h,GPTCONA SPLK#0004h,T1PR SPLK#0002h,T1CMPR SPLK#0000h,T1CNT SPLK#8842h,T1CON Code assembleur: Timer1 en mode symétrique

49 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 EVACMPR1CMPR2CMPR3COMCONAACTRA EVB CMPR4CMPR5CMPR6COMCONBACTRB

50 Programmation des sorties PWM avec un temps mort Bit 15 : sens de rotation de la MLI (PWM) vectorielle Bits 14-12 : définissent la position des vecteurs tension en MLI vectorielle Bits 11-0 : définissent les polarités des sorties PWM «Compare Action Control Register» ACTRA

51 Programmation du circuit PWM avec un temps mort Bit 15 : permet de valider l’opération comparaison Bits 14-13 : définissent les conditions de chargement du registre CMPRx Bit 12 : validation du SVPWM (PWM vectorielle) Bits 11-10 :définissent les conditions de chargement du registre ACTR Bit 9 : valident les sorties PWM Bit 8 : Etat de la broche PDPINTA Bit 7-0 : Réservés Registre de contrôle du mode comparaison COMCONA

52 Programmation du circuit PWM avec un temps mort 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és Bits 11 -8 : permet de définir la valeur du temps mort Bit 7 : Validation du temps mort pour PWM5 et PWM6 Bit 6 : Validation du temps mort pour PWM3 et PWM4 Bit 5 : Validation du temps mort pour PWM1 et PWM2 Bits 4-2 : Diviseur de fréquence 000 = x /1100 = x /16 x: Fréquence du CPU 001 = x /2 101 = x /32 010 = x /4 110 = x /32 011 = x /8 111 = x /32 Bits 1-0 : Réservés

53 Programmation du circuit PWM avec un temps mort Si DBTCONx [11-8] = m DBTCONx [4-2] correspond à x /p

54 Circuits PWM associés aux Unités de comparaison Géné Scie Sym / Asym SVPWM MUX Unité Temps mort Logique de sorties ACTRA Compare action registre DBTCONA dead-band timer control register ACTRA [12-15] COMCONA [11-13] COMCONA [12] COMCONA [9] PWM1 à PWM6 Comparaison

55 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 CMPR 1,2,3 - charger le registre COMCONA - charger le registre T1CON pour démarrer l’opération - charger les registres CMPR 1,2,3 avec les bonnes valeurs

56 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

57 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 = 5h T1CNT = 0h T1CON = 8842h Programmation des sorties PWM avec un temps mort: Module EVA

58 GPTCONA.set7400h T1CNT.set7404h T1PR.set7403h T1CON.set7404h COMCONA.set7411h ACTRA.set7413h DBTCONA.set7415h T1CON.set7404h CMPR1.set7417h CMPR2.set7418h CMPR3.set7419h LDP#00E8h SPLK#0666h,ACTRA SPLK#01E0h,DBTCONA SPLK#3h,CMPR1 SPLK#2h,CMPR2 SPLK#4h,CMPR3 SPLK#8200h,COMCONA SPLK#5h,T1PR SPLK#0h,T1CNT SPLK #8842h,T1CON Code assembleur: Timer1 en mode symétrique Programmation des sorties PWM avec un temps mort: Module EVA

59 Valeur du Timer Valeurs des registres comparaison. PWM1 Active high PWM2 Active low PWM3 Active high PWM4 Active low PWM5 Active high PWM6 Active low Temps mort

60 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 QEP Decoder logic Capture Units1,2 CLKOUT CAP1/ QEP1 CAP2/ QEP2 T2CON[4,5] CLKOUT CAPCONA[13,14] T2CON[8,9,10] CLKIN CLK DIR TDIRA 2 2 2

61 Circuit QEP « quadrature Encoder Pulse » La programmation du circuit nécessite les registres: T2PR ou T4PR T2CON ou T4CON CAPCONA ou CAPCONB Décodeur logique Compteur T2CNT K  QEP1 QEP2 CLK Direction

62 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

63 GroupeSource d’interruption DescriptionInterruption 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 GroupeSource d’interruption DescriptionInterruption 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

64 Registre DrapeauRegistre MasqueGestionnaire d’évènement EVAIFRAEVAIMRA EVA EVAIFRBEVAIMRB EVAIFRCEVAIMRC EVBIFRAEVBIMRA EVB EVBIFRBEVBIMRB EVBIFRCEVBIMRC Gestion des interruptions

65 15-11 109876-43210 Réserves T1OFINTT1UFINTT1CINTT1PINTRéservésCMP3INTCMP2INTCMP1INTPDPINT A 15-4 3210 Réserves T2OFINTT2UFINTT2CINTT2PINT EVAIMRA EVAIMRB 15-3 210 Réserves CAP3INTCAP2INTCAP1INT EVAIMRC 15-6543210 RéservésINT6INT5INT4INT3INT2INT1 IMR Les masques d’interruption de EVA

66 Pour autoriser les interruptions de manière globale: CLRCINTM; armement du mécanisme des ITs pour toutes ; les sources masquables Pour les inhiber: SETCINTM; désarmement du mécanisme des ITs Gestion des interruptions

67 ADC Module Block Diagram (dual sequencer mode) 12-bit A/D Converter Software EVA Ext Pin (ADCSOC) Result Select Result MUX RESULT0... RESULT1 RESULT7 Result Select RESULT8... RESULT9 RESULT15 CHSEL00 (state 0) CHSEL01 (state 1) CHSEL02 (state 2) CHSEL07 (state 7)... MAX_CONV1 Autosequencer Start Sequence Trigger SOC1/ EOC1 SEQ1 CHSEL08 (state 8) CHSEL09 (state 9) CHSEL10 (state 10) CHSEL15 (state 15)... MAX_CONV2 Autosequencer Start Sequence Trigger SEQ2 Sequencer Arbiter SOC2/ EOC2 Software EVB Analog MUX MUX A ADCINA0 ADCINA1 ADCINA7... MUX B ADCINB0 ADCINB1 ADCINB7... S/H A S/H MUX S/H B

68 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 3232CHSELSEQ1 x1276CHSELSEQ2 xxxxCHSELSEQ3 xxxxCHSELSEQ4

69 V in ADCRESxData MemSigned Q15 0.151111|1111|1100|00000111|1111|1100|0000+0.999023 00111|1111|1100|00001111|1111|1100|0000-0.000977 -0.150000|0000|0000|00001000|0000|0000|0000-1.000000 Int resultADC; resultADC = ADCRESx ^ 0x8000; Exemple de mesure d’un courant via l’ADC ADCINx V CCA V SSA TMS320F2407 V in 3.3 v - + R R 2R -0.15 V < V in < +0.15 V PWM1 PWM2 + DC_BUS GND Shunt resistor A 0 V < V ADCin < +3.3 V

70 Convertisseur Analogique Digital ADC Le convertisseur étant sur 10 bits, le résultat de la conversion est:

71 Bit 15-6 : résultat de la conversion sur 10 bits Lecture du résultat d’une conversion En assembleur LACCRESULTx,10 ; décalage de 10 bits à gauche pour récupérer le résultat SACH variable ; récupérer la partie haute de l’accu. En langage C unsigned int tmp; Float entree=0.0 ; tmp = RESULTx > 6 entree=((float)tmp/1023.0)*3.3 Les registres résultats RESULTx Gestion des convertisseurs A/N (ADC)

72

73

74

75

76

77

78

79

80

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

82

83

84 Codage des nombres Représentation en complément à 2: Soit X un nombre codé sur N bits en complémént à 2 X= -2 N-1.b N-1 +  b i.2 i avec: b N-1 = 0 si X > 0 b N-1 = 1 si X < 0 X max = 2 N-1 -1 X min = - 2 N-1 i=0 i=N-2

85 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)

86 Codage des nombres Représentation en virgule fixe: On utilise le terme «Format Q k » : K bits après la virgule Si X est codé sur N bits en format Q k. X = - b N-1-K.2 N-1-K + b N-2-K.2 N-2-K +......... + b 0 + b -1.2 -1 +......+ b -K.2 -K Erreur < 2 -K Pour éviter de traiter les puissances négatives, on multiplie X par 2 K. Cela correspond à la représentation de l’entier Y tq Y= round ( X.2 K )

87 Codage des nombres Représentation en virgule fixe: Valeurs extrêmesX max = 2 N-1-K - 2 -K X min = - 2 N-1-K | X min | = 2 -K Exemples : 110 10001 en format Q5 sur 8 bits soit: -2 2 +2 1 +2 -1 +2 -5 = -4+2+0.5+0.0312 5= -1.46875 Représentation sur 8 bits en format Q 5

88 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: Q K1 x Q K2 : Résultat en Q K1+K2 Si on souhaite un résultat en format Q K3, 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 )

89 Exemple: soit la multiplication suivante: I.cos  Avec:I =0.816 Format Q12 cos  =0.5 Format Q12 I = 0.816 x 2 12 =3342 d  D0E h cos  = 0.5 x 2 12 =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

90 Calcul en virgule fixe Multiplication de 2 nombres en format Q 15 LARAR1, #ad_début ; AR1= adresse de Val1 MAR*, AR1 ; Choix de AR1 comme pointeur LT ad_donnée ; Treg =Val = valeur pointée par ad_donnée MPY* ; Preg = Treg x Val1: Q 30 sur 32 bits PAC ; Transfert de Preg dans l’accu. SACHad_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 Q 15 [31...16]

91 Codage des nombres Calcul en virgule fixe: Multiplication de 2 nombres en format Q 15 et Q 13 Valeurs du tableau en format Q 13 Contenu de l’adresse ad_donnée en format Q 15 Le résultat sera en Q 28 sur 32 bits. P our ramener le résultat en Q 15  il faut diviser par 2 13 et ne conserver que les bits de poids faibles  ou multiplier par 2 3 et ne conserver que les bits de poids forts c-à-d effectuer un décalage de 3 bits à gauche

92 LARAR1, # ad_début ; AR1= adresse de Val1 MAR*, AR1 ; Choix de AR1 comme pointeur LT ad_donnée ; Treg = valeur pointée par ad_donnée MPY* ; Preg = Treg x Val1: Q 30 sur 32 bits PAC ; 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 Q 15 [31...16] Codage des nombres


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

Présentations similaires


Annonces Google