L’électronique (ADC, Registre, DSP, l’Assembleur…)

L’électronique (ADC, Registre, DSP, l’Assembleur…)

Définition de l’ordonnancement

Nous avons vu cette notion pour la première fois en cours de temps réel. Dans un système multi-tâches (exemple ce TP), un ordonnanceur a pour rôle d’allouer le processeur à diverses tâches. A titre d’indication, nous avons vu les fonctionnalités de l’Ordonnanceur par tourniquet, par priorité, et mixte. Quel que soit l’Ordonnanceur, les tâches sont coordonnées et répondent au critère suivant :

Gestion des interruptions

Nous avons vu précédemment que cette fonctionnalité est assurée par l’Ordonnanceur,  nous allons maintenant définir plus particulièrement les interruptions. Dans un système multi-tâches, les interruptions surviennent lorsqu’un programme de forte priorité réclame le processeur, alors la tâche en cours s’interrompt pour lui laisser sa place.  Dans ce cas, on peut dire que le  système est préemptif. Cependant, ceci pose des problèmes, notamment pour les zones critiques de code. Les solutions apportées à ces difficultés sont le masquage logiciel, matériel, les sémaphores, et rendez-vous. Nous avons dû en tenir compte lors du codage du DSP..

Travail réalisé

 1ère partie

On se propose tout d’abord de faire exécuter trois taches séparées au processeur.

Contrôle d’un moteur à courant continu

La carte DSP devra corriger une commande appliquée à un moteur. Cette correction sera calculée sur les principes d’opérations de la proportionnalité – dérivation : K*(1+Td*p), avec K=2 et Td=0,13.
Pour réaliser le circuit de la boucle d’asservissement nous avons respecté différentes contraintes :
La carte DSP56002EVM dispose d’un espace adressable libre à partir de l’adresse $8000. On utilisera cette plage pour définir les deux adresses de l’ADC808 et du DAC08CN aux conditions suivantes :

  • : l’information reçue de l’ADC ou envoyée vers le DAC fait partie des données
  • : la distinction entre ADC et DAC (au niveau des adresse), se fera évidemment par les ordres de lecture ou d’écriture ()
  • : ces données seront traitées dans le champ mémoire Y (pour éviter les conflits des données des périphériques)
  • DAB15 : l’espace entre $8000 et $FFFF sera sélectionné pour une valeur que prendra une ligne particulière du bus d’adresse

Dans un premier temps, pour réaliser cette partie du travail, nous avons câblé les éléments qui permettent d’utiliser le DSP. En effet, le DSP fonctionne avec des signaux numériques tandis qu’à la sortie du moteur, nous avons un signal analogique. Ceci nous oblige à utiliser un ADC puis un DAC. Le buffer sert à stocker l’information avant l’entrée dans le DSP et le registre met en forme le signal pour le DAC pendant que le DSP s’occupe des prochaines informations à venir.

Composants du montage 

ADC 808

L’ADC 808 est un convertisseur à pesées successives qui délivre un signal de fin de conversion(pour chaque échantillon traité). Il indique également qu’une données est disponible dans son registre de sortie. Nous allons relier le signal de fin de conversion EOC à l’entrée d’interruption /IRQA(ou /IRQB) pour que le DSP puisse lire une donnée disponible à l’adresse du convertisseur.
Remarque : pour éviter les temps morts on relie START,ALE et EOC entre eux. Cela permet d’enchaîner les conversions une à une.

Buffer 74HC245

Le Buffer 74HC245 possède une entrée DIR qui fixe la direction des données. Nous alimenterons cette entrée à +5V.Le Buffer 74HC245 sert à stocker les données de l’ADC  pour le DSP 56002.
Remarque : Sur les convertisseurs  D0 correspond  au bit de poids faible LSB et D7 au bit de poids fort MSB. Pour choisir le sens de transfert, on agit sur G\ et Dir.

Registre 75HC574

Le registre a pour rôle de stocker les données provenant du DSP 56002 pour le DAC.
Décodage à effectuer pour adresser le montage sur le bus de la carte DSP56002EVM

Equation booléen

Schéma théorique du montage :
Tout d’abord on relie le bus de donnée de la carte avec notre bus de donnée .Puis on réalise les équations booléen à l’aide de porte 74HC00 et 74HC04 .On utilise un 74HC04 car il n’y a pas assez de porte dans le 74HC00 pour réaliser tout les inverseurs

Cours gratuitTélécharger le cours complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *