Mise en oeuvre du Mini-Display HL 975 de Tag Heuer

Le Mini-Display HL 975 de Tag Heuer

TAG Heuer est un fabricant suisse de montres de sport et de chronographes de précision.

En 2012, la division Chronométrage de TAG Heuer dévoile le premier display au monde doté d’un système interne de chronométrage précis au 1/10 000eme de seconde. Lien : Mini-Display HL 975

Ses fonctionnalités d’affichage sont :

  • Visibilité jusqu’à 50 métres
  • 2 cartes à LED d’une matrice de 8x24 LED (Matrice 8x48 LED de 10x60x7 cm)
  • LED Muti-couleurs
  • 2 bus de communication RS232
  • Protocole standard TAG Heuer

Manuel : HL975_Manuel_FR.pdf

Le Mini-Display HL 975 gère 7 modes de fonctionnement :

  • Base de Temps - PTB
  • Compte à rebours
  • Feu de départ (permet de générer une séquence de départ, constitué de 5 feux multi-couleurs paramétrés individuellement, répondant à toutes les applications)
  • Vitesse (permet de pouvoir mesurer et afficher une vitesse entre deux points de mesure, ainsi que d’afficher un temps tournant ou un temps net entre un départ et une arrivée)
  • Compteur
  • Horloge
  • Affichage des temps

On peut ajouter un module de gestion des entrées (cellules de détection ) :

Le Mini-Display HL 975 se raccorde au PC via un adaptateur USB/RS232 qui sera géré comme un port série virtuel. On communiquera avec le Mini-Display HL 975 à partir du protocoleTHCOM08 de TAG Heuer.

Le brochage des liaisons RS232 :

La société TAG Heuer fournit aussi un logiciel (non utilisé ici) sous Windows MiniDisplay Manager à utiliser avec le Mini-Display HL 975.

Prise en charge sous Linux

Vérifier la détection de l’adaptateur USB/RS232 :

$ dmesg
...
[60634.040084] usb 2-1.5: new full-speed USB device number 6 using ehci-pci
[60634.133203] usb 2-1.5: New USB device found, idVendor=067b, idProduct=2303
[60634.133208] usb 2-1.5: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[60634.133212] usb 2-1.5: Product: USB-Serial Controller D
[60634.133214] usb 2-1.5: Manufacturer: Prolific Technology Inc. 
[60634.350996] usbcore: registered new interface driver usbserial
[60634.351012] usbcore: registered new interface driver usbserial_generic
[60634.351018] usbserial: USB Serial support registered for generic
[60634.353631] usbcore: registered new interface driver pl2303
[60634.353639] usbserial: USB Serial support registered for pl2303
[60634.353652] pl2303 2-1.5:1.0: pl2303 converter detected
[60634.355103] usb 2-1.5: pl2303 converter now attached to ttyUSB0

$ lsusb
...
Bus 002 Device 006: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port

Modifier les droits d’accès manuellement au fichier device :

$ sudo chmod 666 /dev/ttyUSB0

Pour obtenir une modification permanente et automatique, éditer le fichier :

$ sudo vim /etc/udev/rules.d/51.ttyusb.rules
# adaptateur pour Mini Display HL 975
SUBSYSTEMS=="usb", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="2303", MODE="0666", NAME="ttyUSB0", SYMLINK+="hl975"

Sauvegarder et quitter vim avec :wq

Protocole de communication

Lien : THCOM08.pdf

Le format d’une trame basique pour une communication RS232 est le suivant :
[Data] + TAB + CS16 + CR + LF

Les champs sont :

  • Data : les données
  • TAB : le séparateur du champ checksum (\t soit 0x09)
  • CS16 : le checksum sur 16 bits codés sur 4 caractères ASCII en hexadécimal (en majuscule)
  • CRLF : le délimiteutr de fin de trame (\r\n soit 0x0D suivi de 0x0A)

Le checksum est le résultat de la somme de l’ensemble des octets du champ Data à l’exception du caractère # si celui est présent en début de champ.

Remarque : si le délimiteur de trame est la séquence TAB + CR + LF, la trame est acceptée sans vérification du checksum (dans ce cas, le champ checksum est omis).

Pour toutes les trames de commande envoyées au Mini Display (commençant avec le caractère #), celui-ci renvoie une trame d’acquitemment AK :

AK X
Avec : X = 'C' accepted, 'F' rejected, 'R' not supported 

Récupération du numéro d’identifiant et de série du Mini Display :

// PC -> Mini Display
#ID 008D

// Mini Display -> PC
ID 01145    01A8
AK C    00EF

// PC -> Mini Display
#SN 00A1

// Mini Display -> PC
SN 01145 HL975 VA10 042D
AK C    00EF

Le Mini Display gére des paramètres que l’on lit avec une trame #RP (on reçoit alors une trame &P) et que l’on peut modifier avec une trame #WP.

C’est par exemple utile pour lire et/ou modifier le mode de fonctionnement du Mini Display. Il y a 7 modes de fonctionnement :

  • X = ‘0’ -> PTB
  • X = ‘1’ -> Speed / Net Time
  • X = ‘2’ -> Counter (Up&Dwn)
  • X = ‘3’ -> Start Light
  • X = ‘4’ -> Display
  • X = ‘5’ -> Clock
  • X = ‘6’ -> CountDown
// PC -> Mini Display : lecture du paramétre 120 (H975 Operating mode)
#RP 120 0155

// Mini Display -> PC : le paramétre 120 (H975 Operating mode) indique '4' qui correspond au mode Display
&P 120 4    017D
AK C    00EF

// PC -> Mini Display : modification du paramétre 120 (H975 Operating mode) pour activer le mode PTB (valeur '0')
#WP 120 0   01AA

// Mini Display -> PC : acquittement positif
AK C    00EF

Remarque : les paramètres pour le Mini Display sont listés page 53.

Le Mini Display envoie des trames asynchrones d’évènements notamment lorsque l’affichage change (trame &D) ou lorsqu’un temps a été pris en compte (trame TN) :

// Mini Display -> le temps pour le n°1 (détecté sur l'entrée 1)
TN         1  1     1:01.16000     0    05C5
// Mini Display -> le temps pour le n°2 (détecté sur l'entrée 1)
TN         2  1     4:39.07000     0    05D4
// Mini Display -> le temps pour le n°1 (détecté sur l'entrée 2)
TN         1  2    34:13.19700     0    05E9
// Mini Display -> le temps pour le n°2 (détecté sur l'entrée 2)
TN         2  2    36:24.16700     0    05EB

Il est possible de demander le numéro d’une course puis de télécharger l’ensemble des temps :

// PC -> Mini Display : lecture du paramétre 003 (Run number)
#RP 003 0155

// Mini Display -> PC : le paramétre 003 (Run number) donne le numéro de course ici le 27
&P 003 27 28 00:00:00     0 04C0
AK C    00EF

// PC -> Mini Display : (Download a run)
#DL 27  0119

// Mini Display -> PC
// Acquittement positif
AK C    00EF
// L'ID du Mini Display
ID 01145    01A8
// Download start marker
DS 27  00   01E0
// Les temps
AN         1  1     1:01.16000     0    05B2
AN         2  1     4:39.07000     0    05C1
AN         1  2    34:13.19700     0    05D6
AN         2  2    36:24.16700     0    05D8
// Download end marker
DE 27   0112

Il est possible de récupérer la date et l’heure courante (pour une synchronisation) :

// PC -> Mini Display : request date and time for synchro
#!T 0075

// Mini Display -> PC
// Acquittement positif
AK C    00EF
// Synchro time
!T 00:30:48 01/01/00    03D8

Programmation

Lire la mise en oeuvre d’un port série sous Qt [PDF].

Code source : test-mo-hl975.zip

Retour au sommaire