Précisions des quartz

13 septembre 2012

 Contexte

L’idée de base du développement des balises pour la coupe de France de Robotique 2012, était qu’en synchronisant les balises lors de leur initialisation, elle resteraient synchronisées. Cette synchronisation permettrait d’avoir plusieurs balises d’émission qui émettent successivement.

Les balises comportent une ou des cartes d’émission et une carte de réception. Lorsque les balises émettent, elle émettent un message puis attendent une durée équivalente à la durée d’une message, nous appellerons la durée de cette séquence une période. Une période dure 5,6 ms. Ces balises émettent un messages lors de chacune des 16 premières périodes puis attendent 32 périodes. La balises de réception lit les messages reçus par ses récepteurs.

L’un des test se déroulait ainsi : une carte émettait sur le port série et l’autre recevait. La carte de réception faisait clignoter lentement une LED si elle recevait au moins un message pendant les 16 premières périodes. La LED clignotait vite dans le cas contraire. Si la situation était nominale juste après la synchronisation, systématique, au bout de 36 secondes, la LED se mettait à clignoter vite.

 Précision temporelle

La précision d’une horloge est le rapport entre la dérive et le temps écoulé. Cette grandeur est un rapport, elle est donc sans unité. Elle est souvent exprimée en pourcentage ou en partie par million (ppm). 1 ppm = 1 / 1 000 000 = 0,0001 %
Un exemple avec nos balises :

Notre balise de réception à une fenêtre d’écoute équivalente à une période. À la synchronisation, le message est centré sur la fenêtre d’écoute.


Message centré par rapport à la fenêtre de réception

Le message ne doit pas sortir de notre fenêtre de réception sinon il ne sera pas compris. Notre dérive admissible est d’une demi-période, soit 1,4 ms. Nous souhaitons que nos balises restent synchronisées 10 minutes. À la coupe de robotique, il faut compter la durée du match mais aussi le temps d’installation.
Ceci nous donne la précision voulue, de 1,4 ms au bout de 10 minutes, soit 1,4 / 600000, de l’ordre de 2 ppm.

 Programmation

Notre dérive est bien plus importante. Nous avons dérivé de 16 périodes complètes en 36 secondes. Ce qui nous donne une précision affreuse de 16 * 5,6 / 36000 = 2,5%

Cette mauvaise précision ne vient pas du quartz mais du code. Les appels de fonction en interruption prennent trop de temps. Le code de l’interruption n’a pas fini de s’executer qu’une nouvelle interruption se déclenche. En remplaçant l’appel des fonction par leur code, on gagne énormément en précision.

 Quartz

Malgré tout, la désynchronisation arrive bien avant les 10 minutes requises. Avec un nouveau code, on remarque qu’au bout d’une minute et demi, le décalage atteint la valeur fatidique de 1,4 ms. On a donc une précision de : 1,4 / 90000 = 0,0015 % = 15 ppm.

La précision des quartz que l’on trouve dans le commerce varie de 10 ppm à 70 ppm.

 Conclusion

La précision des quartz n’est pas suffisante pour le système de balises se basant sur une seule synchronisation avant le match. Ceci ne veut pas dire que les balises sont à jeter. Il existe au moins deux solutions :

  • Positionner les balises de manière à se qu’elles restent parfaitement synchronisée jusqu’au début du match. Auquel cas, le système risque d’être inopérant sur les dix dernières secondes
  • Trouver un système pour que les balises puissent continuer de se synchroniser au cours du match.

Commentaires

Il n'y a pas de commentaires

Ajouter un commentaire

Pseudo :
Mail :

Texte :

Copyright "POIVRON" 2011-2023, tous droits réservés
Administration du site