OUTIL DE LOGGING DE SIGNAUX

mercredi 19 janvier 2005.
 
*************Pour revenir à la page d’accueil http://a110a.free.fr/SPIP172/plan.php3****************

Pour la petite histoire, la conception-réalisation hard et soft et premier demarrage sur l’Alpine de l’Aepl m’a demandé 6 semaines MAIS, trois ans plus tard, et après des dizaines de modifications, il reste, dans certaines conditions, sur certaines autos, pour certains cablage etc, des micro-coupures ou autre ratées !

Ce n’est pas un scoop , mais un tel developpement est par nature ASYMPTOTIQUE : 95% du resultat en 6 semaines et les 5% restants sur plusieurs années !! Il y a plusieurs niveaux de bugs :

-  SYNTAXIQUES detectées immédiatement par l’assembleur, donc triviales, n’en parlons plus

-  SEMANTIQUES detectées grace au simulateur de MPLAB, en injectant des STIMULIS, par exemple un créneau de 1ms en entrée, toutes les 5ms pour simuler un moteur 4 cylindres à 6000t/mn. Avec le pas-à-pas, les points d’arrêts etc on decouvre et corrige ces bugs assez rapidement

-  CIRCUIT REEL SUR TABLE en activant le circuit avec un allumeur tournant sur un banc (ou une perceuse) on detecte à l’oscilloscope un nouveau niveau de bugs, par exemple à 3850t/mn exactement, disparition de l’étincelle, pourquoi ? à cause d’une retenue oubliée en addition sur 16 bits

-  SUR L’AUTO là c’est la dure réalité : un fil d’alimentation du boitier trop proche d’un fil de bougie et c’est une ratée à certains régime, pas toujours reproductible...

Autre exemple : le rebondissement des vis platinées, relativement imperceptible sur un allumage standard, crée la panique au niveau du Pic. D’où une recherche de palliatifs aussi bien hard (modifier tel condensateur) ou soft (verifier par logiciel les variations d’une période à l’autre et rejeter les trop fortes differences) ou les deux à la fois. En l’occurence, le mieux est d’utiliser un capteur Hall...

La VRAIE difficulté est la DETECTION de ces signaux indésirables, sachant qu’ils sont parfois difficilement reproductibles. Il arrive de devoir monter un oscilloscope dans l’auto avec ses sondes connectées aux pattes du Pic, par exemple, mais alors les fils des sondes deviennent des ANTENNES captant elles mêmes des parasites qui se surajoutent à ceux que l’on veut observer... D’où l’idée de greffer sur les composants de l’Aepl(ou autre bien sur) un enregistreur de signaux(data logger) très compact, avec des fils courts et son alimentation autonome par pile.

Schéma de principe - 65.1 ko

Schéma de principe

Les signaux à enregistrer sont de nature numerique (0 ou 1) et aussi analogique (0 à 400V). L’idée est d’utiliser un Pic plus rapide et plus puissant de type 16F876 qui peut fonctionner à 20MHz, soit 5 fois plus rapide que l’Aepl, et surtout comporte un convertisseur analogique/numérique. Un exemple d’utilisation serait de connecter le +5V du Pic de l’Aepl à une entrée analogique du logger, les pattes d’entrée et sortie du Pic de l’Aepl à deux entrée numériques du logger : le logger enregistre en permanence ces 3 valeurs, les place dans un buffer circulant et en cas de parasite, on "gèle" le logger par l’appui sur un interrupteur.

Ensuite on relit sur un PC les valeurs enregistrées par le logger dans son EEPROM (helas limitée à 128 octets). On a ainsi les valeurs de la tension d’alimentation (echantillonée toutes les 100µs environ), les valeurs de quelques périodes precedentes, et le delai réel pour les étincelles correspondantes.

Mais vu les limitations de mémoire inhérentes aux Pic, il parait indispensable de connecter le Pic à un PC, via un branchement de 2 ou 3 fils sur le port parallèle. Ce type de liaison a déjà fait ses preuves dans l’application PICPC d’optimisation des courbes d’avance (voir article dans ce site).

Dans l’exemple çi-dessus, le Pic lirait les 3 valeurs sous surveillance, les transmettrait au PC et reviendrait lire les nouvelles 3 valeurs. Il n’ y a plus de stockage de données au niveau du Pic, seulement la detection de fronts, la conversion anlogue/numérique d’une ou plusieurs tensions, la datation de chaque événement et enfin la transmission au PC. L’unité de transmission entre Pic et PC est un PAQUET de 16 bits comprenant 3 bits "d’en-tête" et 13 bits de "corps". L’en-tête contient le numero de la ligne d’entrée et l’indication de reset eventuel du timer du Pic. Le corps contient soit la valeur du timer en unités de 12.8µs pour les fronts soit une valeur sur 10 bits de la tension en volts, unité 5mV.

En résumé, ce logger PC+PIC, a une sonde

- multi entrèes

- auto alimentée

- intelligente : elle detecte les fronts, calcul les durées entre fronts et convertit des tensions analogiques en numérique (10bits).

Cette sonde transmet toute les données saisie à un PC en-ligne.


A ce stade j’aimerai bien avoir des avis sur ce design avant de ma lancer dans la programmation Pic et PC....

1/2/5 Bon, la V1 se présente comme çà : PIC 16F628, 4Mhz, donc pas de saisie analogique mais simplement deux fronts, correspondant aux impulsions d’entrée et de sortie du Pic de l’Aepl. Pas si évident de faire dialoguer un Pic et un PC sur le port //, vue les differences de vitesse des processeurs mais ça progresse. A bientot.


Répondre à cet article

Forum