Progression - Quelques rappels

Slides:



Advertisements
Présentations similaires
Module Systèmes d’exploitation
Advertisements

Disque dur 2 Go Ecran + clavier local Host Paramètrage Analyse Dialogue avec l'extérieur PC/Modem DSP 16 entrées logiques 8 entrées analogiques DSP 16.
Électronique de base du processeur
Le bus AS-i Architecture de communication AS-i
Architecture de machines Codage des informations
Architecture de machines Le microprocesseur
ARCHITECTURE INTERNE d’un MICROPROCESSEUR
Modulation numérique.
Plan du cours : 2ème Partie
Jacques Lonchamp IUT Nancy Charlemagne – DUT Informatique 1A
C.
Objectifs Nous allons concevoir une mise en œuvre contenant un noyau de jeu d’instructions. Nous verrons comment l’architecture de jeu d’instructions.
Le codage de l ’information
Le Concept du programme enregistré
Le jeu d ’instructions Introduction Un jeu d ’instruction classique
Architecture des Ordinateurs
6. Architecture des DSP 1. Caractéristiques générales
Les types de codage Le complément à 2 : Nombres entiers
Auto Apprentissage Le DSP
2.Les différentes architectures (Louis)
Système d’exploitation : Assembleur
Chapitre 8 : L’architecture de base des ordinateurs
ARCHITECTURE GLOBALE CAPTAGE Traitement DES des données GRANDEURS
Architecture de base d’un ordinateur
Calcul et implantation des filtres numériques RIF et RII dans un DSP
LE MICROPROCESSEUR 8086/8088 Architecture externe du 8086
Structure de la famille de DSP Motorola 56300
B.Shishedjiev - Informatique
Architecture des Ordinateurs
PROGRAMMATION SCIENTIFIQUE EN C
Formats des nombres réels
INTRODUCTION AU Février 2008
Acquisition de mesures à variations lentes
LES SYSTEMES AUTOMATISES
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
GPA770: Microélectronique appliquée
COURS DE PROGRAMMATION ORIENTEE OBJET :
I S E N 2006 COURS DE DSP (Digital Signal Processor) Partie 3: Filtres Alain Fruleux Une idée intéressante soumise par un étudiant est le combat de robots,
ASI 3 Méthodes numériques pour l’ingénieur
L'Unité centrale (CPU) Le CPU doit être rapide (mesuré en temps de CPU) UNITE DE CONTROLE Générer les signaux de control/temps Contrôler le décodage/exécution.
Informatique 1. Les applications de l’informatique
Processeur modèle 8086 David Saint-Mellion.
Le langage C Rappel Pointeurs & Allocation de mémoire.
Institut de Recherche en Communications et Cybernétique de Nantes 1 Implémentation en précision finie modélisation et recherche de réalisations optimales.
Architecture Des Ordinateurs Microprocesseur Et Mémoire
Cours 5 Le modèle de référence.
(Digital Signal Processor)
Cours Architecture des Systèmes Informatiques
Un survol du language C.
Les systèmes mono-puce
Java Les primitives 1. Représentation d’éléments La représentation de n’importe quoi en informatique (chiffres, nombres, lettres, etc.) est composée de.
Exemple de mise en oeuvre
LE TRAITEMENT NUMERIQUE
Projet de Fin d’Etudes – Optimisation SSE 1/28. 1) Présentation du Stage 2) Les instructions SSE 3) Algorithme DSP Audio Conclusion 2/28 Projet de Fin.
DMA MEM MEM Enoncé polling novembre 2014J.Callot L.Piedfort1.
Calcul numérique de la transformée de Fourier Applications:
INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel ASIP Design and Synthesis for Non Linear Filtering in.
Patricia Renault UPMC 2005/2006
Représentation digitale des données Trois formats de base: 1) Décimale: base 10 (Une constante i.e dimension d ’1 vecteur) 2) Binaire: base 2 ( Mask, set/reset.
Création et Optimisation de Modules Audio avec les instructions SSE
Architecture et technologie des ordinateurs II
Chapitre 4 La représentation des nombres.
Chapitre 3 L’accès aux données.
Chapitre 4b La représentation des nombres.
Chapitre 9 Les caractères.
Architecture des ordinateurs
Les nombres à virgule flottante
A. Lebrun. La base 2 Un nombre peut se représenter en base deux par une suite de 0 ou de 1. Chaque bit a un poids qui dépend de son rang Le format n impose.
Département Informatique Codage de l’information Laurent JEANPIERRE IUT de CAEN – Campus 3.
Journées du LAPP/LAPTH 19 octobre 2011 Nicolas LETENDRE Pour le groupe Virgo.
Transcription de la présentation:

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

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

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

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

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

DOMAINES D ’APPLICATION - Télécommunications - Sons, Images, Vidéo - Instrumentation - Biomédical - Commande de process - Equipement automobile, avionique, radars...

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)

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

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

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

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

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

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 )

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 34 k x 16 OPT ROM 1k 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…

Architecture avec six bus Mémoire externe

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

Pipeline à huit niveaux

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

Registre d’états ST1

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 00 0000 Page 0 : 0..000h – 0..03Fh 0000.. 0000 11 1111 0000.. 0001 00 0000 Page 1 : 0..040h – 0..07Fh 0000.. 0001 11 1111 . . . 1111.. 1111 00 0000 Page 65535 : F..FC0h - F..FFFh 1111.. 1111 11 1111

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

Exemple

Buffers circulaires adressage modulo %

Buffers circulaires (exemple)

Buffers circulaires (suite)

Buffers circulaires (exemple 2)

Adressage « bit reverse »

Adressage « bit reverse » exemple

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

Interruptions

Interruptions masquables

Interruptions masquables

Vecteurs d’interruptions

Vecteurs d’interruptions

Autorisations et indicateurs

Autorisation lors du « debug »

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

Multiplexeurs GPxMUXn Timers CPU Multiplexeurs GPxMUXn

Entrée binaire

Sortie binaire

Timers CPU SCI (port série)

Timers CPU Timers « CPU »

Interruptions Timers CPU

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 »

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

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

Registres de l’ADC

Echantillonnage et conversion

Echantillonnage 2voies simultanées et conversion

Horloge du convertisseur AdCCLK Ne doit pas dépasser 25MHZ Diviseur (HSPCP) PLL Oscillateur externe (30MHz) SysClockOut (Horloge cycles) 150MHz ( PLL fois 5)

Référence interne ou externe…

Impédance d’entrée

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

Multiplication et accumulation câblée Filtrage RIF et RII Calcul de DFT et de FFT Produit de corrélation Virgule fixe Virgule flottante

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

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)

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

Stockage des données Coefficients en « mémoire programme » : .text Coeff .word 002Ah, 0ff20h, …. .word 07895h, …... ... Pour stocker les échantillons en « mémoire donnée » : .bss Xn , 18, 1 ; pour réserver 18 emplacements ; à partir de l ’adresse Xn

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: 0

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+1 a0xn Contenu de l ’accumulateur: 0 + aMxn-M ………………. + a1xn-1 APAC pour ajouter le dernier produit a0xn à l ’accumulateur

Virgule flottante Format IEE et architecture (spraan9.pdf) - Instructions (SPRUO2a.pdf )

Virgule flottante Description Simple Précision - 32Bits 31 30 23 22 Signe Exposant Mantisse 1bit 8 bits 23 bits Mantisse normalisée: 1.xxxxxxxxxxxxxxxxxxxxxxx Min: 1.00000000000000000000000 Max: 1.11111111111111111111111 0 : + 1 : - + 127 Min: 0000 0000 Soit 2-127 Max :1111 1111 Soit 2+128

Virgule flottante Exemples 0 0111 1111 11000000000000000000000 = + 2127-127 . 1,75 = 1.75 1 0111 1111 11000000000000000000000 = - 2127-127 . 1,75 = 1.75 0 1000 0001 11000000000000000000000 = + 2129-127 . 1,75 = 7 0 0111 1110 11000000000000000000000 = + 2126-127 . 1,75 = 0.875

Virgule flottante Limites théoriques Le plus grand nombre: 0 1111 1111 11111111111111111111111 = + 2255-127 .2-2-23 = 6,8...1038 Le plus petit nombre : 1 0111 1111 11111111111111111111111 = - 2255-127 .2-2-23 = - 6,8...1038 Le nombre le plus proche de zéro (mantisse normalisée) 0 0000 0000 00000000000000000000000 = + 20-127 . 1,0 = 5.87…10-39 1 0000 0000 00000000000000000000000 = - 20-127 . 1,0 = -5.87…10-39

Virgule flottante Particularités (IEE std 754-1985) Le plus grand nombre: 0 1111 1110 11111111111111111111111 = + 2254-127 .(2-2-23) = 3,4...1038 0 1111 1111 00000000000000000000000 = + Infini Le plus petit nombre : 1 1111 1110 11111111111111111111111 = - 2254-127 .2-2-23 = - 3.4...1038 0 1111 1111 00000000000000000000000 = - Infini x 1111 1111 xxxxxxxxxxxxxxxxxxxxxxx = NaN si mantisse non nulle (« Infini » dans le DSP 28335) Les nombre proches de zéro : 0 0000 0000 00000000000000000000000 = 0+ 1 0000 0000 00000000000000000000000 = 0- Nombres proches de zéro à mantisse non normalisée: (pas utilisé dans le 28335) 0 0000 0000 xxxxxxxxxxxxxxxxxxxxxxx = 0,xxxxxxxxxxxxxxxxxxxxxxx de 2-126 à 2-149

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 2-23 et 2-24 Avec une mantisse normalisée, la précision est toujours meilleure que 2-23 soit environ 10-7

Virgule flottante Double Précision 64 Bits 63 62 52 51 1bit 11 bits 52 bits Signe Exposant Mantisse + 1023 Précision mieux que 2-1023 (mantisse normalisée) Max/Min : +/- 1,8.10308 Pas d’implantation « hardware » de la double précision dans le 320F28335

Virgule flottante Pour les transferts en mémoire par adressage indirect Les opérandes et les résultats des opérations en virgule flottantes

Exemple de programme utilisant le registre de status STF

Virgule flottante Instructions Conversions virgule fixe/virgule flottante F32TOI16, I16TOF32… Transferts avec la mémoire MOV32 … Opérations mathématiques ADDF32, MPYF32, MACF32… Etc..