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

Progression - Quelques rappels

Présentations similaires


Présentation au sujet: "Progression - Quelques rappels"— Transcription de la présentation:

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

17

18

19

20

21

22

23 Pipeline à huit niveaux

24

25

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

28

29

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

41

42

43 Interruptions masquables

44 Interruptions masquables

45 Vecteurs d’interruptions

46 Vecteurs d’interruptions

47 Autorisations et indicateurs

48 Autorisation lors du « debug »

49

50

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

53

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

63

64

65 Echantillonnage et conversion

66

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)

69

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

73

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

90

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

92

93

94


Télécharger ppt "Progression - Quelques rappels"

Présentations similaires


Annonces Google