COURS DE DSP (Digital Signal Processor) Alain Fruleux
description
Transcript of COURS DE DSP (Digital Signal Processor) Alain Fruleux
![Page 1: COURS DE DSP (Digital Signal Processor) Alain Fruleux](https://reader036.fdocuments.us/reader036/viewer/2022081421/56813a7e550346895da27872/html5/thumbnails/1.jpg)
COURS DE DSP (Digital Signal Processor)
Alain Fruleux
I S E N
2006
![Page 2: COURS DE DSP (Digital Signal Processor) Alain Fruleux](https://reader036.fdocuments.us/reader036/viewer/2022081421/56813a7e550346895da27872/html5/thumbnails/2.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022081421/56813a7e550346895da27872/html5/thumbnails/3.jpg)
0-1Introduction: Code Composer Studio TI utilisé en TP
![Page 4: COURS DE DSP (Digital Signal Processor) Alain Fruleux](https://reader036.fdocuments.us/reader036/viewer/2022081421/56813a7e550346895da27872/html5/thumbnails/4.jpg)
0-2 Vision Globale DSK/TMS320c5510 de TI
???
? ?
![Page 5: COURS DE DSP (Digital Signal Processor) Alain Fruleux](https://reader036.fdocuments.us/reader036/viewer/2022081421/56813a7e550346895da27872/html5/thumbnails/5.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022081421/56813a7e550346895da27872/html5/thumbnails/6.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022081421/56813a7e550346895da27872/html5/thumbnails/7.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022081421/56813a7e550346895da27872/html5/thumbnails/8.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022081421/56813a7e550346895da27872/html5/thumbnails/9.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022081421/56813a7e550346895da27872/html5/thumbnails/10.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022081421/56813a7e550346895da27872/html5/thumbnails/11.jpg)
1.2.2-Code Composer Studio TI utilisé en TP
![Page 12: COURS DE DSP (Digital Signal Processor) Alain Fruleux](https://reader036.fdocuments.us/reader036/viewer/2022081421/56813a7e550346895da27872/html5/thumbnails/12.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022081421/56813a7e550346895da27872/html5/thumbnails/13.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022081421/56813a7e550346895da27872/html5/thumbnails/14.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022081421/56813a7e550346895da27872/html5/thumbnails/15.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022081421/56813a7e550346895da27872/html5/thumbnails/16.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022081421/56813a7e550346895da27872/html5/thumbnails/17.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022081421/56813a7e550346895da27872/html5/thumbnails/18.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022081421/56813a7e550346895da27872/html5/thumbnails/19.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022081421/56813a7e550346895da27872/html5/thumbnails/20.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022081421/56813a7e550346895da27872/html5/thumbnails/21.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022081421/56813a7e550346895da27872/html5/thumbnails/22.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022081421/56813a7e550346895da27872/html5/thumbnails/23.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022081421/56813a7e550346895da27872/html5/thumbnails/24.jpg)
+ ????????? = - 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](https://reader036.fdocuments.us/reader036/viewer/2022081421/56813a7e550346895da27872/html5/thumbnails/25.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022081421/56813a7e550346895da27872/html5/thumbnails/26.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022081421/56813a7e550346895da27872/html5/thumbnails/27.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022081421/56813a7e550346895da27872/html5/thumbnails/28.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022081421/56813a7e550346895da27872/html5/thumbnails/29.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022081421/56813a7e550346895da27872/html5/thumbnails/30.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022081421/56813a7e550346895da27872/html5/thumbnails/31.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022081421/56813a7e550346895da27872/html5/thumbnails/32.jpg)
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