Projet

Général

Profil

Actions

Résolution de la problèmatique

a. Définition de la solution retenue

1. Echantillonage et conversion analogique numérique

Afin de réaliser l’échantillonnage et la conversion analogique numérique à une fréquence d'au moins 500KHZ (une acquisition inférieure ou égale à 2µs), il faut avant tout trouver un composant électronique capable d'échantillonner et convertir les tensions issues des capteurs de mesure à une fréquence aussi soutenue. En effet, cette fréquence d’échantillonnage étant très grande et peu utilisée d'une façon générale, le choix du composant est donc primordiale pour le respect du cahier des charges. De plus, ce convertisseur doit être capable de recevoir un signal électrique permettant de démarrer l'acquisition ainsi que d'un module de communication SPI. Le choix d'un tel composant s'est donc porté sur un microcontrôleur possédant toutes ces caractéristiques. Puisque plusieurs développements sur microcontroleurs microchip ont déjà été réalisés au cours de projets des années précédentes et puisque les outils de dévelopement sur ces microcontroleurs sont déjà connus, le choix concernant le composant éléectronique recherché s'est naturellement porté sur le microcontroleur microchip dsPIC33FJ06GS101A.
Ce composant dit "High_speed PWM and ADC" dispose d'un convertisseur analogique nuémrique dont la fréquence de conversion peut être imposé par le générateur interne de PWM et peut ainsi permettrent de réaliser les conversions à une fréquence réspectant le cahier des charges.

Le nombre de signaux à échantillonner étant de quinze, il est nécessaire d'avoir autant de microcontrôleurs dans le système.

2. Adaptation en tension

En choisisant cette solution, une contrainte intervient. En effet, les capteurs utilisés pour mesurer les grandeurs physiques délivrent à leur sortie des tensions qui ne sont pas acceptées dans la gamme de tension d'entrée des microncontroleurs-convrestisseurs. Pour le microcontroleur-convertisseur choisi, sa gamme de tension d'entrée est comprise entre 0V et 3,3V.. Il est donc nécessaire de réaliser en amont une fonction d'adaptation en tension pour que la gamme de tension en sortie des capteurs s'ajuste à la gamme de tension d'entrée des microcontroleur-convertisseur. De plus, puisque les grandeurs physques sont de nature différente, on utilise des capteurs différents. Et ces capteurs ont tous une plage de tension en sortie différente. Ceci signifie que pour chaque capteur, une adptation en tension doit être réalisée.

3. Regroupement des données acquises

Après que chacun des microcontroleurs-convertisseurs ait convertis les différents echantillons des signaux issus des capteurs, il est important de recueillir ces données afin de les exploiter par la suite. Afin de réaliser cette fonction, un autre microcrontrolleur est placé en aval des quinze microcontroleurs. Ce composant est déstiné à recueillir toutes les conversions des microctroleurs-convertisseurs par liaison SPI afin de les ordonner, chronologiquement et en fonction du capteur d'où proviennet les conversions, puis ensuite, d'envoyer ces données sur un ordinateur capacle de les traiter.

4. Concordance des temps

Le problème de ce fonctionnement est que les microcontroleurs-convertisseurs travaillent à une fréquence bien trop élevée pour que chaque échantillion converti soit directement envoyé au microcontroleur père. Une solution apportée est d'ajouter un module mémoire directement après le micrcontrolleur-convertisseur afin que celui-ci puisse y stocker quelques echantillions avant que le microcontroleur père ne viennt charger ces valeurs. Cette mémoire serait en fait une mémoire de type FIFO où l'écriture de la part du microncontroleur-convertisseur se fait beaucoup plus vite que la lecture per le microcontroleur père. De cette façon, les deux types de convertisseurs pourrait être synchroniser pour ne perdre aucune acquisition.

5. Choix du microcontroleur père

La solution précédente ayant été detérminée, le choix du microcontroleur père peut être fait. En résumé, ce dernier doit remplir les conditions suivantes:
  • Posséder au moins un module SPI servant à lire les acquistions dans les boitiers mémoire
  • Posséder un module USB afin d'envoyer l'ensemble des résultats recueilli et ordonner à un ordinateur
  • Etre capable de supporter l'ajout d'une carte mémoire SD dans laquelle seront stockées ces résultats. En effet, puisque le nombre d'acquisiton est important, la mémoire interne du microcontroleur ne sera pas suffisant pour tout sauvegarder et l'ajout d'une mémoire extérieure est donc indispensable. De plus, l'ensemble des résultats sera transférer à l'ordinateur sous la forme d'un fichier texte (.txt) généré par ce microcontroleur. Il faut donc assez de place mémoire pour stocker ce fichier.

De plus, le choix d'un microcontroleur faisant parti de la même famille que le convertisseur choisi pour la fonction de conversion semble légitime puisque le fonctionnement des deux composants est supposé être similaire. Dans la même famille, un microcontroleur réspectant les conditions citées précedémment et dont le prix est le plus faible possible est le microncrontroleur dsPIC33EP256MU806. Un désavantage de ce microcontroleur est qu'il n'existe aucun package de type traversant. Ce qui signifie que pour le tester, il est nécéssaire de réaliser une carte électronque qui une fois réalisée dans l'atelier de Polytech Clermont-Ferrand permet de dire si ce composant est efficace pour la fonction qu'on veut lui donner. Cela constitue une phase de développement qui aurait pu être évitée si le microcontroleur avait éxisté en type tranversant au lieu de CMS puisqu'il aurait pu être directement sur une plaque de test de l'école.

6. Solution complète

L'ensemble des différents points evoqués ci-dessus peut être résumé par le schéma suivant:

Comme il est possible de le voir, la solution retenue se décompose en deux parties. Une partie sous la forme de cartes filles et une autre sous la forme d'une carte mère.
Le nombre de carte fille est égal au nombre de signaux à acquérir, ce qui représente un total de 15 cartes. Ces cartes cartes filles sont responsables des fonctionnalités suivantes:

  • Fonction d'adaptation en tension
  • Fonction de conversion analogique numérique

La carte mère quant a elle est responsable des fonctions suivantes:

  • Ordonnancement et gestion des données acquises provenant des quinze cartes filles
  • Génération d'un fichier de résultat au format texte (.txt)

b. Réalisation de la solution

1. Adaptation en tension

Des calculs préliminaires sur certains points du projet montre que la partie acquisition rapide et simultanée de 15 grandeurs physiques est source de difficulté.

Un premier aspect concerne l'acquisition "rapide" : le cahier des charges impose 500 000 échantillons par seconde minimum d’une grandeur physique. Cela implique de transformer une quantité continue en une quantité discrète sur une durée inférieure à 2 µs.

Un deuxième aspect porte sur la simultanéité de la conversion du continu en discret. Il est crucial que chaque acquisition d’une grandeur physique soit faite au même moment. En effet, sans la concordance du temps de chaque grandeur physique, il est difficile de faire les liens entre les variations de chaque grandeur. Pour illustrer ci-dessous, si on a un signal A (en rouge) et un signal B (en bleu). Quand le signal A augmente, B également, et quand A diminue, B diminue aussi. Le premier graphique montre quand il y a concordance du temps, on peut conclure que A et B ont un lien mathématiques. Dans le second graphique, s'il n'y a pas de respect du temps, on ne peut déduire s'il y a un lien entre les signaux A et B.

Un dernier aspect vient après la conversion de 15 grandeurs physiques : il faut mémoriser la valeur obtenue après conversion de chaque grandeur. Cet aspect touche donc une gestion de flux de donné. On rappelle que l'acquisition d'un échantillon se fait tous les 2 µs, cela comporte la conversion de 15 grandeurs physiques et la mémorisation des valeurs obtenues. Le composant de mémoire doit donc stocker la donnée très rapidement.

L'échantillonnage requiert à son entrée un certain plage de tension, typique de 0 à Vmax. Or, les tensions issus des capteurs ont chacune leur plage de variation. Une partie analogique s'impose pour adapter les tensions issus des capteurs pour être acceptable à l'entrée de la fonction échantillonnage.

Pour répondre à ce problème, un réseau d'amplificateur opérationnel(AOP) avec possibilité de paramétrer l'offset et l'amplification semble être adéquat.

2. Conversion Analogique Numérique

Comme cela a été défini précédemment, la fonction de conversion analogique numérique est réalisée grâce à l'utilisation du microcontrôleur PIC33FJ06GS101A appartenant à la famille des microcontroleurs 16-bits de chez Microchip. A l'aide de le l'outil de développement MPlabX, le programme implanté permettant la réalisation de cette fonction a été réalisée. Le développement de cette partie du développement fait l'objet d'une note d'application détaillée qui indique les différentes étapes à suivre pour permettre l’échantillonnage et la conversion des grandeurs caractéristiques du moteur à une fréquence d'environ 500KHZ, comme l'oblige le cahier des charges. Se référer à cette note d'application.

Resultat obtenu

Le graphique suivant est une capture prise à partir d'un oscilloscope sur lequel on mesure la fréquence de conversion réalisée par le microcontrôleur sur lequel a été implantée la fonction :

On remarque que la période d’échantillonnage est de 1,5 us soit une fréquence de 666KHz. Cette fréquence étant supérieure aux 500KHz minimum demandé. La contrainte demandée est donc réalisée.

3. Création de la carte mère

Pour rappel, la carte mère qui supporte le microcontrôleur père est en charge de regrouper les différentes données acquises en provenance des différentes cartes filles.
Puisque le choix du microcontrôleur père se base sur un composant de la même famille que les microcontrôleurs fils, la quantité de possibilité se limite rapidement. Le composant choisi est finalement un PIC33EP256MU806 disponible uniquement en package CMS ce qui impose la création d'une carte électronique. Une fois cette carte réalisée et à l'aide de l'outil de développement MplabX, il est possible d'implanter les différentes fonctions que l'on souhaite donner à la carte.

3.1 CAO et soudage de la carte mère

Comme cela a été explicité précédemment, la carte mère doit disposer des éléments suivants:
  • Le microcontrôleur père, composant central de la carte
  • Un support de carte SD
  • Un port USB-B permettant la communication avec l'ordinateur
En plus de ces fonctions, il convient d'ajouter des composants permettant le bon fonctionnement de la carte:
  • Régulateur de tension permettant une alimentation de la carte via la liaison USB
  • Les broches permettant la connexion du Pickit permettant la programmation et/ou l'alimentation de la carte
  • Des LEDs permettant le debug du programme lors du développement
  • La circuiterie minimale nécessaire au démarrage du microcontrôleur
  • Des broches d'entrée/sortie permettant d'accéder au pin du microcontrôleur

La figure suivante représente le schéma final de la carte mère. On peut y retrouver tous les éléments cités ci-dessus:

Après l'étape de placement des composants et de soudure, la carte mère est la suivante:

3.2 Ajout des fonctionnalités sur la carte mère

La carte mère doit pouvoir supporter deux grandes fonctionnalités majeures. Il s'agit d'abord de pouvoir supporter l'ajout d'une carte SD et faire en sorte que cette carte SD puisse être lue sur un ordinateur via liaison USB par l'intermédiaire du microcontrôleur. Ensuite, la carte doit être capable de générer un fichier texte contenant tous les résultats de toutes les conversions issues des cartes filles, de façon ordonnée et agencée.

Afin de réaliser ces fonctions, il est possible de réutiliser des exemples déjà fait sur d'autres cibles que celle utilisée au sein de ce projet. Ces exemples se trouvent dans la libraire MLA (Microchip Librairy for Application) dédiées aux applications pour microcontrôleurs 16-bits. Puisque les exemples ne sont pas adaptés au microcontrôleur, il convient de programmer le code source donné dans ces exemples afin de l'adapter à la cible.
Au sein de la libraire, les exemples utilisés sont les suivants:
  • Concernant la lecture de la carte SD, l'exemple utilisé se situe dans le répertoire apps/usb/device/msd_sd_card_reader/Firmware/pic24fj256da210_dev_board de la libraire MLA V2016_08_08. Un remapping des broches utilisées ainsi qu'un nouveau paramétrage de la fréquence de cadencement du microcontrôleur est nécessaire. En effet, ce dernier doit posséder une fréquence de cadencement de 48MHz afin de communiquer via liaison USB et l'utilisation d'une cible différente que celle définie initialement dans l'exemple de base ne engendre une modification du paramétrage de la fréquence de cadencement.
  • Concernant la génération d'un fichier texte, l'exemple à utiliser se situe dans le répertoire apps/fileio/sd_card_demo de la libraire MLA v2016_08_08

3.3 Résultats

Réalisation physique de la carte:
Après avoir réalisé les schémas et le placement/routage de la carte mère sur le logiciel Proteus (CAO électronique) et après avoir réalisé le tirage de celle-ci, le manque d'expérience au moment de poser et souder les composants sur la carte a été très pénalisant. En effet, il a été nécessaire de reprendre à plusieurs reprises les différentes soudures réalisées sur la carte et cette étape a été très consommatrice en terme de temps. Après cette étape laborieuse réalisée, la carte a pu être réalisée. Elle est présentée dans la figure suivante:

Implantation des fonctionnalités dans la carte:
Le peu de temps restant après réalisation de la carte n'a pas permis de terminer le travail désiré. Seule la première fonctionnalité a pu être abordée mais elle n'a pas été concluante.

Mis à jour par Anonyme il y a plus de 8 ans · 37 révisions