cours de dsp (digital signal processor) alain fruleux

32
COURS DE DSP (Digital Signal Processor) Alain Fruleux I S E N 2006

Upload: baird

Post on 05-Jan-2016

99 views

Category:

Documents


4 download

DESCRIPTION

COURS DE DSP (Digital Signal Processor) Alain Fruleux. I S E N 2006. Plan. Première Partie 0 Introduction 1 Comment se former au DSP? 2 Notions Générales 3 Le TP1. 0-1 Introduction: Code Composer Studio TI utilisé en TP. 0-2 Vision Globale DSK/TMS320c5510 de TI. ?. ?. ?. ?. ?. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: COURS DE DSP (Digital Signal Processor) Alain Fruleux

COURS DE DSP (Digital Signal Processor)

Alain Fruleux

I S E N

2006

Page 2: COURS DE DSP (Digital Signal Processor) Alain Fruleux

Plan

Première Partie– 0 Introduction

– 1 Comment se former au DSP?– 2 Notions Générales

– 3 Le TP1

Page 3: COURS DE DSP (Digital Signal Processor) Alain Fruleux

0-1Introduction: Code Composer Studio TI utilisé en TP

Page 4: COURS DE DSP (Digital Signal Processor) Alain Fruleux

0-2 Vision Globale DSK/TMS320c5510 de TI

???

? ?

Page 5: COURS DE DSP (Digital Signal Processor) Alain Fruleux

0.3 Utilisation des DSP T. I.

C1x Hard Disk Controllers C2x Fax/Machines Embedded Control C3x Videophones C5x Voice Processing C54x Digital Cellular Phones C6x Wireless Base/Modems C8x Video Conferencing

Page 6: COURS DE DSP (Digital Signal Processor) Alain Fruleux

0.4 Position du Cours

Physique

semi- conducteurs

Electro -technique

électronique de puissance

Informatique

Signaux et Systèmes

Numériques

électricité

Automatisation Processus

ManufacturierMesure

Micro -processeurs et

DSPtraitementde signal

Electronique

Réseaux

Télécommunication

Page 7: COURS DE DSP (Digital Signal Processor) Alain Fruleux

1.1 Comment se former au DSP? -

10 Cours/Expérimentation

sur une maquette DSK/TMS320C5510 Prise en main

Le jeu d ’instruction et registres Écriture et compilation d ’un programme (Assembleur)

Repeat Block/ Adressage Circulaire Temps d ’exécution Instruction Parallèle

Synthèse réaliser un filtre FIR

Page 8: COURS DE DSP (Digital Signal Processor) Alain Fruleux

1.2 Cycle de Développement

1-Réalisation ( ou utilisation) de la carte électronique (existante) : cible/target

2-Écriture d ’un programme en c et assembleur (fichier source)

3-Assemblage ou Compilation (fichier objet)

4-Chargement du programme sur la cible (fichier exécutable)

5-« Debugage »/Test du fonctionnement

1

2

34

5

Page 9: COURS DE DSP (Digital Signal Processor) Alain Fruleux

1.2.1 Le Langage Assembleur

Pour gagner de la place (concision du code)

Pour gagner du temps (d ’exécution pas de développement)

Couche indispensable entre le hard et les couches logiciels supérieurs.

Souvent lié à une programmation en C. Forme définitive d ’un programme après

compilation.

Page 10: COURS DE DSP (Digital Signal Processor) Alain Fruleux

1.2.1 Le Langage Assembleur

Formalisme : 4 champs (TMS320C5402)

Etiquette Instr. Opérand Commentaires (ou label)

Début LD #0x7FFF,0,A charger A avec la valeur hexa 7FFF Fin B Début saut à Début

pour lisibilité registre correspond à adresse mémoire adresse après étiquette compilation variable immédiate

Page 11: COURS DE DSP (Digital Signal Processor) Alain Fruleux

1.2.2-Code Composer Studio TI utilisé en TP

Page 12: COURS DE DSP (Digital Signal Processor) Alain Fruleux

2- NOTIONS PREALABLES

2.1 Représentation des Nombres Entiers 2.2 Autres Représentations 2.3 Opérations sur Entiers 2.4 Représentation des Nombres Réels

Page 13: COURS DE DSP (Digital Signal Processor) Alain Fruleux

2.1 Représentation des nombres entiers

2.1.1 Nombres entiers en Base 10

7106105104103102101100101 0 0 1

7106105104103102101100100 0 1 0 1 0 0 1

1 =1*10°

1001 +1*1000

101001 +1*100000

7106105104103102101100101

Page 14: COURS DE DSP (Digital Signal Processor) Alain Fruleux

2.1.2 Nombres entiers en Base 2

72 62 5242 32 22 12 021001

72 6252 42 32 2212 0200101001

1 =1*2°

1001 +1*8

101001 +1*32

72625242322212021

= 41 (décimal)

MSB LSB

Page 15: COURS DE DSP (Digital Signal Processor) Alain Fruleux

2.1.3 Nombre entier Hexadécimal (base 16)

Décimal Hexadécimal Binaire0 0 0 0 0 01 1 0 0 0 12 2 0 0 1 03 3 0 0 1 14 4 0 1 0 05 5 0 1 0 16 6 0 1 1 07 7 0 1 1 18 8 1 0 0 09 9 1 0 0 1

10 A 1 0 1 011 B 1 0 1 112 C 1 1 0 013 D 1 1 0 114 E 1 1 1 015 F 1 1 1 1

Page 16: COURS DE DSP (Digital Signal Processor) Alain Fruleux

8 bits 1 octet (byte) 0 à 255 Dec 00h à FFh en Héxa

16 bits 2 octets (word) 0 à 65535 ou 0000h à FFFFh

32 bits 4 octets (long w) 0 à 4.294.967.295 ou FFFFFFFFh

2.1.4 Dynamique des Nombres Entiers

Page 17: COURS DE DSP (Digital Signal Processor) Alain Fruleux

2.1.5 Nombres entiers Unités

824.741.073.12

576.048.12

10242

30

20

10

Giga

Méga

Kilo

Page 18: COURS DE DSP (Digital Signal Processor) Alain Fruleux

2.2 Autres Représentations 2.2.1 Nombres BCD (Binary Coded Decimal)

Décimal Hexadécimal Binaire0 0 0 0 0 01 1 0 0 0 12 2 0 0 1 03 3 0 0 1 14 4 0 1 0 05 5 0 1 0 16 6 0 1 1 07 7 0 1 1 18 8 1 0 0 09 9 1 0 0 1

10 A 1 0 1 011 B 1 0 1 112 C 1 1 0 013 D 1 1 0 114 E 1 1 1 015 F 1 1 1 1

C ’est une astuce pour utiliser la notation hexadécimal pour le décimal.On s ’arrête à 9 et cela complique un peu les algorithmes de calcul

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Page 19: COURS DE DSP (Digital Signal Processor) Alain Fruleux

2.2 Autres Représentations

2.2.2 Représentation de Texte (ASCII)

0 1 2 3 4 5 6 70 NUL DLE SP 0 @ P p1 SOH DC1 ! 1 A Q a q2 STX DC2 " 2 B R b r3 ETX DC3 # 3 C S c s4 EOT DC4 $ 4 D T d t5 ENQ NAK % 5 E U e u6 ACK SYN & 6 F V f v7 BEL ETB ' 7 G W g w8 BS CAN ( 8 H X h x9 HT EM ) 9 I Y i yA LF SUB * : J Z j zB VT ESC + ; K [ k {C FF FS , < L \ l |D CR GS - = M ] m }E S0 RS . > N ^ n F S1 US / ? O _ o DEL

Page 20: COURS DE DSP (Digital Signal Processor) Alain Fruleux

2.2 Autres Représentations

2.2.3 État extérieur (port d ’entrée/sortie)

Informations direction Port entrée/sortie extEntrée interrupteur 1 1Entrée interrupteur 2 1Entrée interrupteur 3 0Entrée interrupteur 4 0

Sortie voyant 1 1Sortie voyant 2 1Sortie voyant 3 0Sortie voyant 4 0

Page 21: COURS DE DSP (Digital Signal Processor) Alain Fruleux

2.2 Autres Représentations

2.2.4 Registre de commande

1.3.3 Registre de status (d’état)Contenu du registre d'état Signification7 6 5 4 3 2 1 0

x x x x x x x 1 Time outx x x x x X 1 x Liaison interrompuex x x x 1 x x Détection de porteuse

…………

Contenu du registre de commande Signification7 6 5 4 3 2 1 0

x x x x 0 0 0 1 Baud Rate 28800x x x x 0 0 1 0 Baud Rate 57600x x x x 1 1 1 1 Baud Rate 115200

Page 22: COURS DE DSP (Digital Signal Processor) Alain Fruleux

2.2 Autres Représentations

2.2.5 Codage d ’une instruction (TMS320C5402)

l ’instruction (équivalente à A=32767):

LD #0x7FFF,0,A (charger A avec la valeur hexa 7FFF)

est codée (en hexa) dans la mémoire: F0 20 LD#??,0,A 7F FF 7FFF variable immédiate

Page 23: COURS DE DSP (Digital Signal Processor) Alain Fruleux

2.3- OPERATIONS SUR ENTIERS

2.3.1 Addition en Base 2, 16 et 10

01001011 = 4Bh = 75

+ 11100101 = E5h =229

= 1 00110000 = 1 30h=304

ret 1001111- 1- 11-

Page 24: COURS DE DSP (Digital Signal Processor) Alain Fruleux

+ ????????? = - 41 = ??h

Soustraction et nombres négatifs

00101001 = + 41 = 29h

= (1) 00000000 = 00 = (1)00h

+ 11010111 = - 41 = D7h

1 XX

2.3.2 Nombres entiers signés (complément à 2)

Page 25: COURS DE DSP (Digital Signal Processor) Alain Fruleux

ET (AND) 01001011 = 4Bh = 75

et 11100101 = E5h =229

= 01000001 = 41h= 65

xxxxxxxx et 10111101 = x0xxxx0x

Masque (forcer un bit à 0)

2.3.3 Opérations Logiques

Page 26: COURS DE DSP (Digital Signal Processor) Alain Fruleux

2.3.3 Opérations Logiques

OU (OR)

01001011 = 4Bh = 75

ou 11100101 = E5h = 229

= 11101111 = EFh= 239 Masque (forcer un bit à 1)

xxxxxxxx ou 01000010 = x1xxxx1x

Page 27: COURS DE DSP (Digital Signal Processor) Alain Fruleux

2.4 Représentation des nombres Réels Dans un filtre FIR la somme des coefficients est égale à 1

Nous avons besoin de variables non entières

14

0

15 )2*(i

ifiX

S est le signe 0 positif 1 négatif la somme fractionnaire est toujours <1

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

s 12 22 32 42 52 62 72 82 92 102 112 122 132 142 152

Page 28: COURS DE DSP (Digital Signal Processor) Alain Fruleux

2.4.1 Virgule Fixe (Q15)

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

s 12 22 32 42 52 62 72 82 92 102 112 122 132 142 152

01111000000000007 8 0 0

9375.0

0625.0125.025.05.0

2222 4321

X

X

X

Exemple d ’un Nombre positif

Page 29: COURS DE DSP (Digital Signal Processor) Alain Fruleux

2.4.1 Virgule Fixe (Q15) L ’utilisation de la virgule fixe est délicate:

Les variables doivent être comprises entre -1 et +1 Multiplication : pas de débordement possible Addition et soustraction risque de débordement qu ’il faut traiter (test des variables avant l ’opération) Faire attention à l ’ordre des calculs Faire attention au format de variable supporté par les instructions en Assembleur et en C

Ces problèmes sont résolus avec la virgule flottante Malheureusement notre TMS320C55 ne possède pas de virgule flottante (sauf en C) pour des économies de surface de silicium et de consommation…..

Page 30: COURS DE DSP (Digital Signal Processor) Alain Fruleux

2.4.2 Virgule Flottante

e exposant codé en complément à 2 (-128 à 127) si e=-128 alors variable =0 s signe de la mantisse 0=positif 1=négatif f fraction de la mantisse en 2^-n on ajoute 1 systématiquement à f si s=0, -2 si s=1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

e e e e e e e e s f f f f f f f f f f f f f f f f f f f f f f f8 bits = exposants +/- 23 bits =Fraction de la mantisse

23

0

23)2( )2*1(*2

i

iou

e fiX

Page 31: COURS DE DSP (Digital Signal Processor) Alain Fruleux

2.4.2 Virgule Flottante

Exemple d ’un Nombre positif

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

e e e e e e e e s f f f f f f f f f f f f f f f f f f f f f f f8 bits = exposants +/- 23 bits =Fraction de la mantisse

0 0 0 0 0 0 1 1 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 3 7 8 0 0 0 0

5.15)9375.1(*8

)0625.0125.025.05.01(*8

)22221(*2 43213

X

X

X

Page 32: COURS DE DSP (Digital Signal Processor) Alain Fruleux

2.4.2 Virgule Flottante

3

43213

10*8125.7

0078125.0)9375.12(*125.0

)0625.0125.025.05.02(*125.0

)22222(*2

X

X

X

X

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

e e e e e e e e s f f f f f f f f f f f f f f f f f f f f f f f8 bits = exposants +/- 23 bits =Fraction de la mantisse

1 1 1 1 1 1 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0F D=(=-3) F 8 0 0 0 0

Exemple d ’un Nombre négatif