|
|
Cet article est disponible en: English Deutsch Francais Turkce |
par Bob Smith <bob(at)linuxtoys.org> L´auteur: Bob est un amateur en électronique et un programmeur sur Linux. Vous pouvez trouver son dernier projet sur www.linuxappliancedesign.com et sa page d'accueil sur www.linuxtoys.org. Traduit en Français par: Iznogood <iznogood(at)iznogood-factory.org> Sommaire:
|
Analyseur de donnée à 1 bitRésumé:
L'analyseur de données à 1 bit capture des données de 1 bit à une vitesse de
46080 (ou 92160) échantillons par seconde et code les données vers un flux
de caractères RS232 qui peut être lu à 57.6 (ou 115.2) kilobaud.
L'analyseur de données est un projet assez simple qui utilise 6 circuits
bon marché.
|
Le problème est que nous devons stocker les échantillons d'entrée lorsque
nous devons envoyer les bits de démarrage et de stop. Le diagramme suivant
illustre le problème.
Pendant les bits 0, 1, 2 et 3, nous souhaitons que les données soient
décalées de deux coups d'horloge, nous sélectionnons donc Q(B) du registre
à décalage 4015.
Pendant les bits 4, 5, 6 et 7, nous voulons que les données soient retardées
d'un coup d'horloge, nous sélectionnons donc Q(A) du registre à décalage.
Pendant les bits de démarrage et de stop (bits 8 et 9), nous voulons un
zéro et un un, nous sélectionons donc Q(0) du compteur de bit.
La capture du shéma a été faite avec un programme très bien appelé « EAGLE » disponible sur Cadsoft. Le fichier de shéma est disponible sur 1bitla.sch.gz.
Pour faire tourner le circuit à 115.2 kHz, nous utilisons les sorties Q(1) et Q(4) du 4024 au lieu des Q(2) et Q(5). D'autres vitesses sont possibles en utilisant des valeurs diférentes pour le quarz ou en le remplaçant par un oscillateur RC.
Il est possible qu'un quarz consomme moins qu'un réseau RC à la même fréquence. Pour être sûr de limiter la consommation, les entrées inutilisées du 4049 doivent être mises à la masse.
Un meilleur buffer d'entrée peut être utilisé en utilisant le second TL082. Vous pouvez utiliser un pont de résistance sur une des entrées de l'amplificateur opérationnel et l'autre pour l'entrée des données. Ceci vous permet de contrôler le seuil de déclenchement d'une manière précise et présente une très haute impédance pour le système en cours de test.
RTS fournit l'alimentation (Vcc) pour le reste du circuit. Dans le prototype, Vcc avait à peu près 7 volts. Votre voltage pour Vcc peut varier en fonction de votre interface RS-232. Le logiciel pilotant l'analyseur doit mettre en haut DTR et RTS.
Ici, vous avez quelques photos pour vous montrer l'approche de la
construction.
|
||
---|---|---|
-r | -c | -t |
03 e3 ff 03 e3 ff 03 e3 ff 03 e3 ff 03 e3 ff 03 e3 ff 03 e3 ff 03 e3 ff 03 e3 ff 03 e3 ff 03 e3 ff 03 e3 |
0, 0 1, 5 0, 3 1, 10 0, 6 1, 5 0, 3 1, 10 0, 6 1, 5 0, 3 1, 10 0, 6 1, 5 0, 3 1, 10 0, 6 1, 5 0, 3 1, 10 0, 6 1, 5 0, 3 1, 10 0, 6 1, 5 0, 3 1, 10 |
0, 0.000000 1, 0.000065 0, 0.000065 1, 0.000217 0, 0.000130 1, 0.000109 0, 0.000065 1, 0.000217 0, 0.000130 1, 0.000109 0, 0.000065 1, 0.000217 0, 0.000130 1, 0.000109 0, 0.000065 1, 0.000217 0, 0.000130 1, 0.000109 0, 0.000065 1, 0.000217 0, 0.000130 1, 0.000109 0, 0.000065 1, 0.000217 0, 0.000130 1, 0.000109 0, 0.000065 1, 0.000217 |
Le programme simple ici (1bitla.c) capture les données séries et peut sortir les données en trois formats. Le premier format est la donnée brute, affichée d'un octet par ligne avec un afficheur à deux lignes. Notez que le programme inverse les données avant l'affichage et que les données sont envoyées avec le bit au poids le plus fort en premier. La sortie brute est invoquée avec la commande -r. Le second format a une valeur (0 or 1) suivi par le compte du nombre d'échantillons que possède la valeur. La sortie de la valeur/compte est invoquée avec l'option -c. Le troisième format de sortie est une valeur (0 or 1) suivi par le nombre de secondes pour lequel l'entrée garde la même valeur. La résolution à 46080 kHz est de 21.7 microsecondes. La sortie de la valeur/compte est invoquée avec l'option -t.
Le programme est invoqué avec
1bitla [option] port_série
où les options peuvent prendre -r, -c ou -t. La valeur par défaut est (-c).
La conception du programme est assez simple. Nous traitons les options de la ligne de commande, nous ouvrons un port série et faisons une boucle infinie qui lit et affiche les octets. Comme nous ne faisons pas de processus en tâche de fond, la lecture est bloquante.
Vous pouvez vous satisfaire de l'affichage des échantillons sur la console
ou de les rediriger dans un fichier pour un traitement ultérieur ou vous
pouvez vouloir effectuer une vraie « analyse logique » sur les données
en construisant une machine à états pour traiter les échantillons. Les
exemples de machines à état incluent le décodage des commandes infrarouge
ou le décodage de la position d'une impulsion radio contrôlée avec une
sortie modulée.
|
Site Web maintenu par l´équipe d´édition LinuxFocus
© Bob Smith, FDL LinuxFocus.org |
Translation information:
|
2003-07-21, generated by lfparser version 2.42