1 / 32

COURS DE DSP (Digital Signal Processor) Alain Fruleux

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. ?. ?. ?. ?. ?.

baird
Télécharger la présentation

COURS DE DSP (Digital Signal Processor) Alain Fruleux

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Plan • Première Partie • 0 Introduction • 1 Comment se former au DSP? • 2 Notions Générales • 3 Le TP1

  3. 0-1Introduction: Code Composer Studio TIutilisé en TP

  4. 0-2 Vision Globale DSK/TMS320c5510 de TI • ? • ? • ? • ? • ?

  5. 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

  6. 0.4 Position du Cours Télécommunication Electro - technique Electronique Informatique électronique de puissance Micro - processeurs et DSP électricité Réseaux traitement de signal semi- conducteurs Automatisation Processus Manufacturier Signaux et Systèmes Numériques Physique Mesure

  7. 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

  8. 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 2 4 3 1 5

  9. 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.

  10. 1.2.1 Le Langage Assembleur • Formalisme : 4 champs (TMS320C5402) • EtiquetteInstr.Opérand Commentaires • (ou label) • Début LD#0x7FFF,0,A charger A avec la valeur hexa 7FFF • FinBDébut saut à Début • pour lisibilitéregistre • correspond à adresse mémoire • adresse après étiquette • compilation variable immédiate

  11. 1.2.2-Code Composer Studio TIutilisé en TP

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

  13. 2.1 Représentation des nombres entiers • 2.1.1 Nombres entiers en Base 10 • 101001 +1*100000 • 1001 +1*1000 • 1 =1*10°

  14. 2.1.2 Nombres entiers en Base 2 • 101001 +1*32 • 1001 +1*8 • 1 =1*2° • = 41 (décimal) • MSB LSB

  15. 2.1.3 Nombre entier Hexadécimal (base 16)

  16. 2.1.4 Dynamique des Nombres Entiers • 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

  17. 2.1.5 Nombres entiers Unités

  18. 2.2 Autres Représentations • 2.2.1 Nombres BCD (Binary Coded Decimal) • 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

  19. 2.2 Autres Représentations • 2.2.2 Représentation de Texte (ASCII)

  20. 2.2 Autres Représentations • 2.2.3 État extérieur (port d ’entrée/sortie)

  21. 2.2 Autres Représentations • 2.2.4 Registre de commande • 1.3.3 Registre de status (d’état)

  22. 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

  23. 2.3- OPERATIONS SUR ENTIERS • 2.3.1 Addition en Base 2, 16 et 10 • ret 1001111- 1- 11- • 01001011 = 4Bh = 75 • + 11100101 = E5h =229 • = 1 00110000 = 1 30h=304

  24. 2.3.2 Nombres entiers signés (complément à 2) • + ????????? = - 41 = ??h • Soustraction et nombres négatifs • 00101001 = + 41 = 29h • + 11010111 = - 41 = D7h • = (1) 00000000 = 00 = (1)00h

  25. 2.3.3 Opérations Logiques • ET (AND) • 01001011 = 4Bh = 75 • et 11100101 = E5h =229 • = 01000001 = 41h= 65 • Masque (forcer un bit à 0) • xxxxxxxx • et 10111101 • = x0xxxx0x

  26. 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

  27. 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 • S est le signe 0 positif 1 négatif • la somme fractionnaire est toujours <1

  28. 2.4.1 Virgule Fixe (Q15) • Exemple d ’un Nombre positif

  29. 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…..

  30. 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. 2.4.2 Virgule Flottante • Exemple d ’un Nombre positif

  32. 2.4.2 Virgule Flottante • Exemple d ’un Nombre négatif

More Related