Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
1
Progression - Quelques rappels
Etude du DSP 320F28335 (Texas Instrument) Prise en main des outils de développement (Code Composer Studio) Utilisation des GPIO, de l’ADC et de l’UART Application à la détection et l’identification de signaux. Détecteur de tonalité par TFD Détection DTMF Démodulation FSK Utilisation de la FFT
2
Cliquez sur le chapitre auquel vous voulez accéder
Généralités Présentation du DSP 320F28355 Architecture DSP Registres Modes d’adressage Interruptions ADC DMA Calcul d’une somme de produits (virgule fixe) Virgule flottante
3
(Digital Signal Processor)
D.S.P. (Digital Signal Processor) - Processeur destiné au traitement du signal - Les grandeurs physiques sont échantillonnées et transformées en nombres - Architecture des DSP optimisée pour le traitement numérique du signal Acquisition Traitement numérique Restitution x(t) x(k) y(k) y(t) D.S.P. A.D.C. D.A.C.
4
ACQUISITION TRAITEMENT RESTITUTION
DSP + ADC Traitement Acquisition Programme DSP Restitution Entrée x(t) Passe Bas Fc<Fe/2 Passe Bas Sortie y(t) ADC DAC X(n) Y(n) Fe Sortie numérique, PWM, etc..
5
PRINCIPAUX TRAITEMENTS
Générer des signaux Filtrer Détecter, identifier des signaux (1750, DTMF, parole, image…) - Moduler démoduler (modem, ADSL, Ethernet, AX25….) - Analyser un signal ( FFT) - Crypter, décrypter
6
DOMAINES D ’APPLICATION
- Télécommunications - Sons, Images, Vidéo - Instrumentation - Biomédical - Commande de process - Equipement automobile, avionique, radars...
7
COMPARAISON AUX AUTRES DISPOSITIFS DE TRAITEMENTS NUMERIQUES
Traitements microprogrammés - microordinateurs (Traitements complexes mais rarement en temps réel) - microprocesseurs classiques (~100 Kéch./s) - DSP ( ~1Méch/s.. 10Méch/s) Traitements câblés (architectures parallèles) - FPGA, ~100 Méch/s... - ASIC (réservé aux grosses productions)
8
CHOISIR UN D.S.P. Caractéristiques communes - Architecture optimisée pour le traitement du signal (nombreux bus,Harvard, pipe-line…) - Instruction multiplication accumulation en un cycle (MAC…) - Modes d ’adressages particuliers (modulo, bit reverse) Les différentes familles de DSP - DSP avec unité de calculs en virgule fixe - DSP avec unité de calculs en virgule flottante (FPU) - DSP avec des périphériques intégrés (contrôle moteur..) Les langages de programmation: L.machine, C, G. de C(ViSim..) Constructeurs : AT&T, Texas Inst., Motorola, Analoge Devices...
9
PRESENTATION du DSP 320LF28335 - Architecture - Registres - Mémoire
- Instructions et Modes d ’adressages - Les principales fonctionnalités - Les Timers - Le convertisseur AD - Gestion des interruptions
10
Documentation http://www.ti.com/product/tms320f28335
- 320f28335.pdf Datasheet général (sprs439f.pdf) - SPRU430.pdf CPU + instructions - SPRUEO2a.pdf FPU + instructions (spraan9.pdf) SPRU566.pdf Périphériques (liens) SPRUFB0.pdf Interruptions… - SPRU509.pdf Code Composer Studio - SPRU513.pdf Assembleur, linkeur… SPRU514.pdf Compilateur C SPRA958 Programme en FLASH SPRAAM0, Pour démarrer rapidement.. SPRC530.zip Headers, structures, programme exemple SPRAA85a.pdf 28335_ezdsp_usb_tech_ref.pdf Carte de développement
11
Développer une application
Ecriture des fichiers Sources - langage machine (.asm) - langage C/C++ - utilisation d’un éditeur de texte Assemblage, compilation - Transforme les fichiers sources en fichiers objets (.obj) - fichier binaire avec des adresses non résolues - assembleur (asm2000.exe) - compilateur (cl2000.exe) Edition des liens (lnk2000.exe) - Transforme le fichier objet en fichier exécutable - Utilise les fichiers « .cmd » pour déterminer les adresses
12
Transfert dans la cible (ou dans la mémoire externe)
- en mémoire FLASH (via JTAG) - en mémoire RAM (via JTAG) - par SPI ou SCI (avec un programme boot loader en ROM) -……. Débuggage - dans la cible (via JTAG) - simulation (sur le PC) - avec un émulateur Librairies (mk2000.exe) - pour regrouper des fichiers objets (.obj) dans un fichier (.lib) - rts2800_fpu32.lib
13
Développement (3 méthodes)
Sans environnement - Ecrire les sources - Appeler successivement le compilateur, l’éditeur de liens, etc.. Avec un fichier « MakeFile » et l’utilitaire « make » - Ecrire le fichier « Makefile » - Lancer le programme make Avec un environnement graphique (méthode utilisée en TP) - Code Composer Studio (v3.x) - Eclipse configuré avec les bons outils (CSS V5.x )
14
Processeur 32bits Harvard
CARACTERISTIQUES du 320F28335 - Fréquence cycle max. 150 MHz Alimentation : 3,3 V Processeur 32bits Harvard Calculs en virgule fixe ou en flottante câblée FLASH 256 k x 16 SARAM k x 16 OPT ROM k x 16 Nombreux périphériques Entrées/sorties binaires Entrées analogiques 12 bits 80ns - Timers 32 bits, entrées de comparaison, PWM haute résolution... - Entrées de capture, modules QEP pour des codeurs incrémentaux - Liaisons série asynchrone SCI, série synchrone SPI, bus CAN…
15
Architecture avec six bus
Mémoire externe
16
Programmes, données et périphériques
Un seul PLAN MEMOIRE Programmes, données et périphériques 222 mots de 16 bits RAM interne 2k PERIPHERIQUES RAM/ROM externe 2M max RAM interne 32k FLASH 256k OPT ROM 1k ROM 8k Adresse 0 3F FFFF
23
Pipeline à huit niveaux
26
Registres d’états ST0 Registre ST0 OVC: compte les dépassements
PM : configure le multiplicateur (décalage auto) OVM: 1: Saturation / 0: overflow normal SXM: autorise l ’extension du bit de signe lors des décalages à droite N,Z,C: indicateur de signe,zéro,retenue
27
Registre d’états ST1
30
Pagination de la mémoire DONNEES
216 pages de 64 mots de 16bits pointeur de page DP l ’offset est codé à la suite de l ’instruction DP Offset Mémoire données 0000.. 0000 Page 0 : h – 0..03Fh 0000.. 0000 0000.. 0001 Page 1 : h – 0..07Fh 0000.. 0001 . . . 1111.. 1111 Page 65535 : F..FC0h - F..FFFh 1111.. 1111
31
MODES D ’ADRESSAGE - Adressage IMMEDIAT:
La donnée se trouve dans la mémoire de programme à la suite de l ’instruction Adressage DIRECT par page La donnée se trouve dans la mémoire donnée Le registre de page DP contient les 16 bits de poids fort de l ’adresse Les 6 bits de poids faibles de l ’adresse sont codés dans l ’instruction. - Adressage indirect L’adresse de la donnée se trouve dans un registre auxiliaire xARn
32
Exemple
33
Buffers circulaires adressage modulo %
34
Buffers circulaires (exemple)
35
Buffers circulaires (suite)
36
Buffers circulaires (exemple 2)
37
Adressage « bit reverse »
38
Adressage « bit reverse » exemple
39
Les sources d ’interruptions
- 2 interruptions externes non masquables: RS et NMI interruptions masquables INT1, INT2,...., INT14 qui gérent l ’ensemble des demandes des périphériques (Timers, ADC, SCI, SPI, CAN, etc… ) instructions pour le déclenchement logiciel des interruptions: INTR et TRAP
40
Interruptions
43
Interruptions masquables
44
Interruptions masquables
45
Vecteurs d’interruptions
46
Vecteurs d’interruptions
47
Autorisations et indicateurs
48
Autorisation lors du « debug »
51
GPIO (entrées/sorties binaires)
Timers CPU GPIO (entrées/sorties binaires) 88 Entrées/sorties binaires (GPIO) multiplexées avec d’autres périphériques (4 fonctions max.) réparties en trois ports A,B et C: GPA GPIO de 0 à 31 GPB GPIO de 32 à 63 GPC GPIO de 64 à 87
52
Multiplexeurs GPxMUXn
Timers CPU Multiplexeurs GPxMUXn
54
Entrée binaire
55
Sortie binaire
56
Timers CPU SCI (port série)
57
Timers CPU Timers « CPU »
58
Interruptions Timers CPU
59
Convertisseur analogique numérique
Résolution : 12bits (0 à 4095) Vitesse maximale 12.5Mech/s (80ns) 16 entrées multiplexées 2 échantillonneurs bloqueurs, 1 convertisseur Fonctionnement automatique paramétrable Possibilité de transfert « DMA »
60
Résultat de la conversion
Tension à convertir de 0 à 3V Résultat sur 12 bits de 0 à 4095 Cadré à gauche dans 16bits de ADCRESULTx Cadré à droite dans 16bits de ADCMIRRORx
61
Calibration Routine de calibration en ROM Appelée automatiquement au démarrage en fonctionnement normal Doit être appelée par le logiciel utilisateur en phase de développement Voir exemples
62
Registres de l’ADC
65
Echantillonnage et conversion
67
Echantillonnage 2voies simultanées et conversion
68
Horloge du convertisseur AdCCLK
Ne doit pas dépasser 25MHZ Diviseur (HSPCP) PLL Oscillateur externe (30MHz) SysClockOut (Horloge cycles) 150MHz ( PLL fois 5)
70
Référence interne ou externe…
71
Impédance d’entrée
72
Transfert direct en mémoire « DMA »
6 canaux « DMA » Transferts déclenchés par événements ADC, Timer, E/S… « Burst » configurable de 1 à 32 mots de 16bits Adresse source, adresse destination, taille en « burst » Adressage circulaire possible Demande d’interruption en début ou fin de transfert
74
Multiplication et accumulation câblée
Filtrage RIF et RII Calcul de DFT et de FFT Produit de corrélation Virgule fixe Virgule flottante
75
x(n-M) ...x(n-1) xn Entrée Calcul Sortie yn
yn = a0xn + a1x(n-1) … + aMx(n-M) Entrée Sortie Calcul x(n-M) ...x(n-1) xn yn
76
x(n-M) ...x(n-1) xn Entrée Calcul Sortie y(n-N) …y(n-1) y(n)
yn = a0xn + a1x(n-1) … + aMx(n-M) - b1y(n-1) - b2y(n-2) … - bN y(n-N) Entrée Sortie Calcul x(n-M) ...x(n-1) xn y(n-N) …y(n-1) y(n)
77
Programme de traitement en Virgule fixe (320F2407)
Initialisation Configuration des registres de contrôle: horloge, multiplexage des pattes, ADC, Timer, IRQ... Acquisition de l ’entrée x déclenchée par un Timer/PWM Stockage des coefficients dans la mémoire « programme » Autorisation de l ’ interruptions ADC Puis boucle infinie ou autre tâches…. Traitement par interruption ADC Lire et stocker xn en mémoire « données » Calculer yn et décaler les valeurs de X : X n -M -> perdu ; Xn-M+1 -> Xn-M … Xn -> Xn-1 Envoyer yn en sortie Fin d ’interruption
78
Stockage des données Coefficients en « mémoire programme » : .text
Coeff .word Ah, 0ff20h, …. .word h, …... ... Pour stocker les échantillons en « mémoire donnée » : .bss Xn , 18, ; pour réserver 18 emplacements ; à partir de l ’adresse Xn
79
RPT #M et MACD #Coeff, *- aM aM-1 ... .. a1 a0 xn x n-1 x n-2 ..
Zone Programme Zone Données aM aM-1 ... .. a1 a0 PC xn x n-1 x n-2 .. xn-M+1 xn-M AR* Contenu de PREG : aMxn-M Contenu de l ’accumulateur:
80
RPT #M et MACD #Coeff, *- aM aM-1 ... .. a1 a0 xn x n-1 x n-2 ..
Zone Programme Zone Données premier MACD dernier MACD aM aM-1 ... .. a1 a0 xn x n-1 x n-2 .. xn-M+1 xn-M xn x n-1 x n-2 .. xn-M+1 xn xn-1 .. xn-M+2 xn-M+1 PC AR* AR* AR* x n-M x n-M Contenu de PREG : aMxn-M aM-1xn-M a0xn Contenu de l ’accumulateur: aMxn-M ……………… a1xn-1 APAC pour ajouter le dernier produit a0xn à l ’accumulateur
81
Virgule flottante Format IEE et architecture (spraan9.pdf)
- Instructions (SPRUO2a.pdf )
82
Virgule flottante Description
Simple Précision - 32Bits 31 30 23 22 Signe Exposant Mantisse 1bit bits bits Mantisse normalisée: xxxxxxxxxxxxxxxxxxxxxxx Min: Max: 0 : + 1 : - + 127 Min: Soit Max : Soit 2+128
83
Virgule flottante Exemples
= ,75 = 1.75 = ,75 = 1.75 = ,75 = 7 = ,75 = 0.875
84
Virgule flottante Limites théoriques
Le plus grand nombre: = = 6, Le plus petit nombre : = = - 6, Le nombre le plus proche de zéro (mantisse normalisée) = ,0 = …10-39 = ,0 = …10-39
85
Virgule flottante Particularités (IEE std 754-1985)
Le plus grand nombre: = (2-2-23) = 3, = + Infini Le plus petit nombre : = = = - Infini x xxxxxxxxxxxxxxxxxxxxxxx = NaN si mantisse non nulle (« Infini » dans le DSP 28335) Les nombre proches de zéro : = 0+ = 0- Nombres proches de zéro à mantisse non normalisée: (pas utilisé dans le 28335) xxxxxxxxxxxxxxxxxxxxxxx = 0,xxxxxxxxxxxxxxxxxxxxxxx de à 2-149
86
Virgule flottante Erreur et Précision
Arrondi de la mantisse: +/- 1 lsb => Erreur: 2E-23 Précision : C’est l’erreur en % du nombre = 2E-23 / 1,x…xx.2E La mantisse étant comprise entre 1 et 2 la précision est comprise entre et 2-24 Avec une mantisse normalisée, la précision est toujours meilleure que soit environ 10-7
87
Virgule flottante Double Précision
64 Bits 63 62 52 51 1bit bits bits Signe Exposant Mantisse + 1023 Précision mieux que (mantisse normalisée) Max/Min : +/- 1, Pas d’implantation « hardware » de la double précision dans le 320F28335
88
Virgule flottante Pour les transferts en mémoire
par adressage indirect Les opérandes et les résultats des opérations en virgule flottantes
89
Exemple de programme utilisant le registre de status STF
91
Virgule flottante Instructions
Conversions virgule fixe/virgule flottante F32TOI16, I16TOF32… Transferts avec la mémoire MOV32 … Opérations mathématiques ADDF32, MPYF32, MACF32… Etc..
Présentations similaires
© 2025 SlidePlayer.fr Inc.
All rights reserved.