You are on page 1of 11

TP Informatique Industrielle L3 EEA-IE-EIA-Info Ph. Dorleans E.

Magarotto
TP1 . Carte dAcquisition--------------------------------------------------------------------------------------------------------------------------------1
TP 1 : GESTION D'UNE CARTE D'ACQUISITION
SOUS ENVIRONNEMENT LABWINDOWS CVI
ET INTERFACE GRAPHIQUE

Etablir un dialogue entre un micro ordinateur et un systeme exterieur au PC est possible par l'intermediaire de
cartes d'interIace. Ces cartes dites d'Entrees/Sorties sont directement implantees a l'interieur du PC et connectees sur le
bus PC via des Slots. Elles sont generalement equipees de Timers et de circuits integres oIIrant des entrees et des sorties
logiques et/ou analogiques a l'utilisateur. Cet ensemble PC et carte d'interIace est complete par un logiciel (generalement
appele driver) permettant la gestion de l'ensemble des Ionctions de la carte Entrees/Sorties.

Le but du TP consiste a developper, sous l'environnement LabWindows CVI, des Ionctions C permettant de gerer
l'ensemble des Ionctionnalites de la carte proposee, puis de generer une interIace graphique permettant une utilisation
aisee.

1) GENERALITES

CARACTERISTIQUES DE LA CARTE PROPOSEE

La carte d'interIace proposee possede :
Un convertisseur analogique-numerique (CAN) 12 bits multiplexe
Deux convertisseurs numeriques-analogiques (CNA) 12 bits
Trois Timers programmables dont deux cascades
Huit entrees logiques compatibles TTL
Huit sorties logiques montees en collecteur ouvert

ADRESSAGE DE LA CARTE D'INTERFACE

La carte d'interIace est consideree par le PC comme un peripherique supplementaire. Cette carte est dotee de
composants electroniques possedant des registres dans lesquels on ira lire ou ecrire des donnees (par l`intermediaire des
Ionctions C inp et outp ). On y accede par leur adresse respective.
La carte proposee occupe deux groupes d'adresses 16 bits selectionnables par l'utilisateur au moyen de cavaliers. Le
constructeur a choisi au prealable, pour ces deux adresses de base, des valeurs non encore utilisees par le PC (0x330 et
0x340 pour la salle 116 et 0x250 et 0x260 pour la salle 112). A partir de ces deux adresses de base sont deIinies
l'ensemble des adresses des diIIerents registres.

ENVOI D'UNE TENSION ANALOGIQUE

Pour ecrire les routines relatives a cette conversion, on aura besoin de cinq adresses calculees a partir de l'adresse
de base adr1 :
Deux adresses pour les registres d'entree du CNA A (da1l et da1h)
Deux adresses pour les registres d'entree du CNA B (da2l et da2h)
Une adresse pour agir sur UPD (convda)

ACQUISITION D'UN SIGNAL ANALOGIQUE

En presence d'une tension analogique, on declenchera la conversion par une operation de lecture d'un registre logique
(adconv) qui active la demande de conversion au niveau du CAN (574).
La technique de conversion se Iaisant par approximations successives, la conversion n'est pas immediate et necessite
un temps de conversion d'environ 25 s (pour l'AD574). Cette attente de Iin de conversion peut tre realisee soit par
une boucle d'attente de longueur superieure ou egale au temps de conversion soit par lecture dans un registre logique
(adh) du signal BUSY. Tant que la conversion est en cours, le bit d'etat BUSY est a l'etat haut. Le resultat de la
conversion ne devra tre lu que lorsque le bit d'etat sera passe a l'etat bas.
La lecture de la conversion se Iera en deux Iois car le CAN realise une conversion sur 12 bits alors que nous utilisons
un bus de 8 bits d'ou les deux adresses adh et adl accessibles en lecture. Remarque : adh contient les 4 bits de poids
Iort et aussi le bit d'etat BUSY.

TP Informatique Industrielle L3 EEA-IE-EIA-Info Ph. Dorleans E. Magarotto
TP1 . Carte dAcquisition--------------------------------------------------------------------------------------------------------------------------------2
Le convertisseur analogique-numerique est en general le circuit le plus coteux. Par consequent, lorsque l'on
souhaite plusieurs voies d'entrees analogiques, on preIere adjoindre au CAN un multiplexeur analogique plutt que de
multiplier ce circuit.
Ce multiplexeur permet de choisir par programmation entre X voies d'entrees celle qui sera connectee au CAN. Un
tel circuit 8 voies est utilise sur la carte etudiee. La voie est choisie par ecriture de son numero dans un registre 8 bits
d'adresse mux. On notera que pour choisir entre 8 voies, il suIIit de 3 bits. L'un des bits non utilises dans ce registre mux
a ete utilise pour commander le mode de polarite du CAN ce qui evite un registre supplementaire.
En eIIet, on peut choisir deux modes de conversion : le mode unipolaire (0 - 10 volts) ou bipolaire (-5V - 5V) par
simple action d'un signal logique ce qui consiste en une ecriture dans le registre d'adresse mux. Si le bit de poids Iaible
(pol) de mux est a 0, le mode est bipolaire sinon le mode est unipolaire.

LES ENTREES - SORTIES LOGIQUES

Les sorties logiques servent a imposer des niveaux logiques 0 ou 1 a des systemes logiques exterieurs
(multiplexeurs, ...). Elles permettent entre autre la commande de bobines de relais actionnant des systemes tout ou rien
(electrovannes, moteurs,..). Sur la carte, il y a huit sorties logiques a collecteur ouvert. Il suIIit d'envoyer un mot de 8 bits
dans le registre a l'adresse IOOUT en sachant qu'un niveau 1 dans ce registre impose un niveau 0 sur la sortie
correspondante.
Les entrees logiques permettent de tester un ensemble de niveaux logiques exterieurs qui peuvent tre generes d'une
maniere generale par des detecteurs de seuil. Ce sont des entrees logiques TTL, un niveau 0 correspond a une valeur
typique inIerieur a 0.8 Volts et un niveau 1 a une valeur typique superieure a 2.7 Volts. La carte possede huit entrees
logiques de ce type qui sont accessibles simultanement par l'intermediaire d'un registre huit bits a l'adresse IOIN. Ce
registre n'a besoin d'tre accessible qu'en lecture.

2) TRAVAIL A EFFECTUER

exercice 1 :

Ecrire dans le Iichier E_S.C l'ensemble des Ionctions qui permettent de gerer la carte d'acquisition proposee. A ce
Iichier E_S.C est associe un Iichier d'en-tte E_S.H qui Iournit les declarations des prototypes de Ionction. On a declare
les deux adresses de base de la carte sous Iorme de constantes, les variables globales a utiliser ainsi que les diIIerentes
Ionctions. Remarquons la structure particuliere du Iichier E_S.C qui sera compile et utilise comme bibliotheque.
Introduire ces Iichiers dans un Iichier projet.

Pour communiquer avec les diIIerents registres de la carte decrits precedemment sous l'environnement
LabWindows CVI, utiliser les Ionctions suivantes :
char inp (short Port) lit un octet depuis un port d'entree speciIie par l'adresse Port et retourne la valeur
lue de type char.
outp (short Port, char Byte) envoie l'octet Byte sur le port de sortie speciIie par l'adresse Port.

Details des Ionctions a ecrire :
void AO1 (float volts) et void AO2 (float volts) : ces deux Ionctions generent respectivement sur les
sorties 1 et 2 une tension analogique unipolaire |0, 10 Volts| de valeur indiquee par volts.
void AO2bipol (float volts) : cette Ionction permet d'envoyer une tension analogique bipolaire dans le
domaine |-10, 10 Volts| disponible sur la borne notee 2 BIP du botier.
float AI (void) : cette Ionction retourne la valeur de la tension analogique presente sur la voie
d'acquisition selectionnee par le dernier appel a la Ionction pmux et selon la gamme de variation indiquee
par la valeur de la constante pol.
void pmux (unsigned int nmux) : cette Ionction positionne la voie du multiplexeur analogique d'entree
designee par la valeur de nmux. Ce numero doit tre compris entre 0 et 7. Les diIIerentes voies sont
accessibles par les bornes E0 a E7. Cette Ionction impose aussi au convertisseur la polarite indiquee par la
valeur de la constante pol.
void out_port (unsigned int octet) et unsigned int in_port (void) sont deux Ionctions qui permettent
respectivement d'envoyer un mot logique de huit bits et de lire une entree logique de huit bits (compatible
TTL).

exercice 2 :

TP Informatique Industrielle L3 EEA-IE-EIA-Info Ph. Dorleans E. Magarotto
TP1 . Carte dAcquisition--------------------------------------------------------------------------------------------------------------------------------3
Ecrire dans un Iichier .C un programme de test qui permettra de veriIier le bon Ionctionnement des Ionctions
developpees dans E_S.C. Envoyer diIIerentes valeurs de tension sur les voies analogiques unipolaires et bipolaire et
realiser l'acquisition du signal analogique sur une entree analogique prealablement choisie.

exercice 3 :

On desire gerer les diIIerentes Ionctionnalites de la carte d'acquisition par l'intermediaire d`un ecran graphique
(graphique.uir).

interface utilisateur: Graphical User Interface -> GUI
Cette Ientre permet de composer, a partir d'objets proposes en bibliotheque, une interIace graphique
personnalisee. C'est un ecran contenant des objets varies du type boutons, cases de donnees, graphes, messages, etc.. Cet
ecran constitue la Iace avant de l'instrument virtuel.
Le programmeur conoit une Iaade d'appareil pour son application. Les objets de cette Iaade vont permettre a
l'utilisateur de piloter son application. Un objet possede des attributs (Iorme, taille, couleur, ...) que l'on peut lui imposer
des le depart mais qui pourront tre eventuellement modiIies en cours d'application par simple programmation.

Evnements : Lors du dessin de l'interIace utilisateur, le programmeur deIinit implicitement une zone graphique associee
a chaque objet. Une action ou modiIication de cet objet est consideree comme un evenement. Les evenements pris en
compte par LabWindows sont:

Event Type Event on the GUI (EVENT_) Information Passed to Program
control and menu event COMMIT which panel or menu bar, which control or menu item
control event VALCHANGED which panel, which control
control and panel event LEFTCLICK which panel, which control,mouse x & y coordinates
LEFTDOUBLECLICK which panel, which control, mouse x & y coordinates
RIGHTCLICK which panel, which control, mouse x & y coordinates
RIGHTDOUBLECLICK which panel, which control, mouse x & y coordinates
KEYPRESS which panel, which control, key code, pointer to key code
GOTFOCUS which panel, which control
LOSTFOCUS which panel, which control
DISCARD which panel, which control
timer control event TIMERTICK Pointer to the current time (double *), pointer to time
since the callback last received an
EVENTTIMERTICK (double *)
panel event CLOSE which panel
PANELSIZE which panel
PANELMOVE which panel
main IDLE Obsolete. Use timer controls instead
callback event ENDTASK Received when Windows wants to quit. (Return a non-
zero value to abort the termination.)

fonctions callback : Comment travaille l'instrument virtuel ? L'action sur un objet de la Iaade peut generer l'un des
evenements listes ci-dessus et le programmeur prevoit pour certains de ces evenements un programme en C qui eIIectue
le travail desire. Une Ionction callback est un programme en C associe a un objet evenement qui sera execute lors de
l'occurrence d'un evenement sur l'objet.

Source : derriere la Iaade de l'instrument, travaille tout le programme en C ANSI de l'application. Ce programme est
constitue d'un corps principal (main()) en general tres breI car il est essentiellement destine a initialiser l'application et a
executer l'interIace graphique. A cte de ce programme principal on trouve les Ionctions callback associees a l'instrument
qui assurent les tches a eIIectuer lors de l'apparition d'evenements.
Un Iichier source contient du code C (norme ANSI) pour l'application envisagee. Ce code est ecrit par le
programmeur mais peut aussi provenir d'une librairie. Dans ce second cas, le programmeur dispose d'outils de generation
de code: menu Library.

Projet : ce Iichier d'extension .prj contient la liste de tous les Iichiers utiles pour une application. Le type de Iichiers est
tres varie mais au depart, pour une application simple, on trouve essentiellement des Iichiers sources .c et des Iichiers .uir
(user interIace ressource). On peut aussi y ajouter des Iichiers compiles .obj, des echanges de donnees .dll, etc...

TP Informatique Industrielle L3 EEA-IE-EIA-Info Ph. Dorleans E. Magarotto
TP1 . Carte dAcquisition--------------------------------------------------------------------------------------------------------------------------------4
Ralisation : le programmeur eIIectue son travail en trois etapes:
conception de l'interIace utilisateur correspondant au probleme.
ecriture du programme, essentiellement des Ionctions callback associees.
ecriture du projet et execution de l'application.
Ce sont ces possibilites que nous allons decouvrir par la realisation d'une interIace graphique aboutissant a un
panneau graphique destine a gerer une carte d'acquisition.

tape n1

On propose de realiser le GUI indique ci-dessous :


attributs des objets : par un double-click sur un objet, on accede a un ecran semblable a celui presente ci-apres (cas du
bouton) qui permet de preciser tous les attributs de l'objet. On y remarque:
constant name: permettra de designer l'objet dans les programmes.
callback function: nom de la Ionction callback associee. Si on ne souhaite pas de Ionction callback, cet
emplacement doit tre vide.
un certain nombre de possibilites de modiIication de l'apparence de l'objet: couleur, etiquette, ...
control settings: deIault value valeur par deIaut indiquee par le bouton, data type type de donnee
indiquee (ici un Ilottant double precision), control mode voir ensuite, range value speciIication de
l'ensemble des valeurs autorisees, Iormat and precision Iormat de l'aIIichage.

Control mode : un objet, vis a vis de la generation d'evenements, peut avoir quatre comportements:
normal: l'utilisateur peut changer l'objet ce qui genere des evenements et celui-ci peut tre modiIie aussi
par programmation.
indicator: seul le programme peut changer l'objet. L'utilisateur ne pourra donc pas generer d'evenements
sur cet objet. Il sert d'indicateur, c'est le cas de tout aIIicheur, graphe, message,...
Hot: identique a normal mais il genere en plus des evenements.
Validate: identique a Hot mais avant de generer un evenement, tous les contrles numeriques du panneau
qui possedent l'attribut NotiIy seront remis a jour.

TP Informatique Industrielle L3 EEA-IE-EIA-Info Ph. Dorleans E. Magarotto
TP1 . Carte dAcquisition--------------------------------------------------------------------------------------------------------------------------------5


Cration de l'interface utilisateur :
Creer un nouveau Iichier .uir: File->New->User Interface.
Creer un panneau: Create->Panel. En cliquant deux Iois a l'interieur de ce nouveau panneau deIinir ses attributs
(essentiellement son nom : Constant Name ->PANEL).
Ajouter dans ce panneau les objets necessaires a la realisation du GUI de l'exemple: Create->Numeric->Knob
pour le potentiometre "Tension generee", Create->Numeric->Numeric pour l'indicateur "Acquisition",
Create->Numeric->Vertical Pointer Slide pour les curseurs "Entrees Analogiques" et "Voie de sortie", Create
Binary Switch->Vertical Switch pour le commutateur "polarite", Create->Command Button->Rounded
Command Button pour le bouton "Quit" et Create Graph->Strip Chart pour la "representation graphique".
Les StripCharts permettent de generer des graphes comme l'oscilloscope, permettant donc de representer un
certain nombre de points sur un ecran et d'en ajouter au Iur et a mesure d'acquisitions par exemple.
Parametrer le potentiometre en lui associant le nom de constante "Commande" sans Ionction callback.
Parametrer l'objet numerique "Aquisition" comme un indicateur en lui associant le nom de constante "Mesures"
sans Ionction callback.
Parametrer le curseur "Voie de sortie" avec la Ionction callback "Choix_voie_sortie" et le nom de constante
"SORTIE".
Parametrer le curseur "Entrees Analogiques" avec la Ionction callback "Configuration_entree" et le nom de
constante "ENTREES".
Parametrer le switch "Polarite" avec la Ionction callback "Configuration_entree" le nom de constante
"POLARITE".
Parametrer le bouton "Quit" avec la Ionction callback "Quit" et le nom de constante "Quit".
Parametrer la representation graphique en lui associant le nom de constante "STRIPCHART"
Sauvegarder dans un Iichier graphique.uir.

Ecriture du code C : LabWindows propose une generation automatique du squelette des programmes et Ionctions
callback associees a la GUI realisee: Code->Generate->All Code (il y a aussi les options main pour creer uniquement le
programme principal et control callback pour creer la Ionction callback associee a un objet).
Dans la Ionction "Configuration_entree", Iaire la lecture du curseur "Entres Analogiques" (Ionction
GetCtrlVal) sur l'evenement EVENTCOMMIT). Reproduire cette indication sur l'indicateur "Acquisition"
TP Informatique Industrielle L3 EEA-IE-EIA-Info Ph. Dorleans E. Magarotto
TP1 . Carte dAcquisition--------------------------------------------------------------------------------------------------------------------------------6
(SetCtrlVal). Pour obtenir avec Iacilite la syntaxe des Ionctions du type GetCtrlVal(.) et SetCtrlVal(.), on
peut utiliser le menu Library->User Interface->Controls/Graphs/Strip Charts..->General Functions->Get
Control Value ou Set Control Value.
Dans la Ionction Quit reagissant a EVENTCOMMIT, mettre l'instruction QuitUserInterface(0) qui permet
d'achever l'execution de l'application. Ce resultat sera obtenu par action sur le bouton Quit.
Sauvegarder le programme essai.c.

Ecriture du projet : Iaire un projet contenant graphique.uir et essai.c. L'executer pour veriIier le Ionctionnement.

tape n2

Dans cette deuxieme partie, l'indication (de type Ilottant) du potentiometre sera recopiee toutes les secondes sur
l'indicateur numerique Acquisition et sur la representation graphique (StripChart). Cet exercice est donc destine a
decouvrir une methode simple pour realiser un echantillonnage temporel. Pour cela on utilise le timer du PC pour
lequel LabWindows prevoit une gestion d'evenement (EVENTTIMERTICK).

L'exercice precedent sera donc modiIie comme suit: introduire un Timer. Parametrer ce Timer en lui associant le nom de
constante TIMER avec la Ionction callback Temps (dans le Iichier .uir, Create->Timer).
Parametrer le Timer de telle maniere que la Ionction callback associee Temps soit executee toutes les
secondes.
Introduire le squelette de la Ionction callback en cliquant sur l'objet Timer avec le bouton droit de la souris et
executee Generate Control Callback .
Incrementer un compteur de type Ilottant. AIIicher sa valeur sur l'indicateur numerique Acquisition et la
representer graphiquement a l'aide de l'instruction PlotStripChart.

Une Iois compris et veriIie ce Ionctionnement, comment l'utilisateur peut-il changer la periode d'echantillonnage ? Pour
cela il Iaut changer l'intervalle de temps du Timer . Cet intervalle de temps est un attribut de cet objet que l'on pourra
modiIier par SetCtrlAttribute et non par SetCtrlVal. Il Iaut donc apporter les modiIications suivantes:
Creer un contrle numerique de type hot auquel on associera une Ionction callback temps. Autoriser une
echelle de valeurs de 0,1 a 20 avec un increment de 0,1.
Creer la Ionction callback temps. Celle-ci devra lire l'indication du contrle precedent (GetCtrlVal) et
attribuer cette valeur a l'intervalle de temps du Timer (SetCtrlAttribute).
VeriIier le Ionctionnement.

tape n3

VeriIier le Ionctionnement global en relevant la reponse indicielle des procedes electriques.

CONTENU DES REGISTRES A PROGRAMMER


Convertisseur numrique / analogique


dal D7 D6 D5 D4 D3 D2 D1 D0

dah D11 D10 D9 D8

convda declenche la conversion mais le contenu de ce registre n'est pas utilise.

Convertisseur analogique / numrique

adh BUSY D11 D10 D9 D8

adl D7 D6 D5 D4 D3 D2 D1 D0

TP Informatique Industrielle L3 EEA-IE-EIA-Info Ph. Dorleans E. Magarotto
TP1 . Carte dAcquisition--------------------------------------------------------------------------------------------------------------------------------7
mux NX
2
NX
1
NX
0
POL

adconv declenche la conversion mais le contenu de ce registre n'est pas utilise.

(NX
2
,NX
1
, NX
0
) Iixe le numero de la voie selectionnee pour le multiplexeur.

POL Iixe la polarite du CAN.

Entres / Sorties logiques

IOIN I7 I6 I5 I4 I3 I2 I1 I0

IOOUT O7 O6 O5 O4 O3 O2 O1 O0



TP Informatique Industrielle L3 EEA-IE-EIA-Info Ph. Dorleans E. Magarotto
TP2 . Telemetre a ultrasons - liaison parallele-----------------------------------------------------------------------------------------------------
8
TP N2 TELEMETRE A ULTRASONS COMMANDE PAR PC

Objectif

L`objectiI du TP est de realiser, sous l'environnement LabWindows CVI, un logiciel permettant le dialogue avec un telemetre a
ultrasons connecte sur la liaison parallele d'un PC. Le logiciel doit gerer l`emission et la reception des ultrasons et indiquer la distance
entre le telemetre et un obstacle.

I - Raccordement au connecteur SUB-D25:

Pour piloter le telemetre par la liaison parallele d'un PC, 12 broches du connecteur DB25 ont ete utilisees (Le sigle ` indique une
logique inversee) :



Les 8 broches (2 a 9) de donnees D0-D7
pour la lecture du buIIer du compteur.

La broche STROBE` (1) pour lancer le
compteur (autorisation de comptage).
La broche BUSY (11) sert a inIormer de
la reception des ultrasons (detection).
La broche AUTOFEED` (14) permet
d`eIIectuer une remise a zero (RAZ) du
compteur.
La broche INIT` (16) active l`emission
des ultrasons (emission 40 KHz).
.

II - Programmation

Le tableau ci-dessous indique la relation entre les broches du connecteur DB25 utilisees et les diIIerents registres a programmer :

Broche PC Nom Rle (connexion avec le telemetre). Registres
1 STROBE* Autorisation de comptage. Bit 0 du registre de commande.
2 a 9 D0 D7 Lecture du contenu du compteur. Registre de donnees.
11 Busy Detection de l'onde ultrason. Bit 7 du registre d'etat.
14 AutoFeed* Remise a zero du compteur. Bit 1 du registre de commande.
16 Initialize* Lancement de l'emission (40 KHz.) Bit 2 du registre de commande.

III - Utilisation du tlmtre

Le contrle du telemetre a ultrasons doit se Iaire en 3 grandes etapes :
Declenchement de l'emission ultrasonore et du compteur initialement a 0.
Detection de l'echo et arrt du compteur et de l'emission ultrasonore.
Lecture du compteur et aIIichage a l'ecran de la distance mesuree.

Algorithme du programme final dvelopper :

Remarque : le programme a realiser eIIectue 5 Iois la mesure de distance et en calcule la moyenne.


TP Informatique Industrielle L3 EEA-IE-EIA-Info Ph. Dorleans E. Magarotto
TP2 . Telemetre a ultrasons - liaison parallele-----------------------------------------------------------------------------------------------------
9

















































IV - Travail prparatoire obligatoire

Tous les bits du registre de commande de la liaison parallle non utiliss doivent tre fixs 1.

AIin d'utiliser le bus de donnees en entree, le bit 5 du registre de commande doit tre Iixe a 1. Ecrire l'instruction permettant de
modiIier ce bit sans modiIier les autres bits de ce registre.

Ecrire l'instruction permettant d'eIIectuer simultanement les operations suivantes :
Mettre au niveau 1 la ligne de Strobe` pour bloquer le compteur.
Mettre au niveau 0 la ligne de Init` pour bloquer l`emission des ultrasons.
Mettre au niveau 0 la ligne de AutoFeed` pour mettre a zero le compteur.

Ecrire l'instruction permettant d'eIIectuer simultanement les operations suivantes :
Declencher l'emission des ultrasons en imposant un niveau 1 sur la ligne Init`.
Autoriser le comptage en imposant sur la ligne du Strobe` un niveau 0.

Initialisation de l`interIace
parallele
Initialisation de la maquette
I0
Fermeture du programme de
mesure
Calcul de la moyenne
Conversion temps/distance
AIIichage de la mesure
II1
Emission des ultrasons
Attente de retour de l`echo
Memorisation de l`etat du
compteur
Remise a zero du compteur
Arrt du programme
Commande
I5
Lancement de la
mesure
oui
non
TP Informatique Industrielle L3 EEA-IE-EIA-Info Ph. Dorleans E. Magarotto
TP2 . Telemetre a ultrasons - liaison parallele-----------------------------------------------------------------------------------------------------
10
L'etat du bit Busy permet de connatre l'etat de la sortie de la PLL. Lorsque celle-ci passe au niveau 0, le signal ultrasonore a ete
detecte. Ecrire l'instruction permettant d'attendre que le bit Busy passe au niveau bas.

Ecrire l'instruction permettant de lire le bus de donnees.

La vitesse du son est de 331,6 m/s a 0 C et croit de 0,62 m/s par degre. Calculer la vitesse du son lorsque la temperature est de 20
C.

La lecture du compteur Iournit la valeur 100. en considerant que l'horloge du compteur possede une Irequence de 60 KHz, en
deduire la distance entre l'obstacle et le telemetre a ultrasons.

V - Travail effectuer

Initialiser la maquette c'est-a-dire :
Imposer le bit 5 du registre de commande a la valeur 1 aIin de conIigurer le bus de donnees en entree (ne pas modiIier les
autres bits de ce registre).
Bloquer le compteur (ligne du Strobe` au niveau 1), le remettre a zero (ligne du AutoFeed` au niveau 0), et bloquer
l`emission des ultrasons.
Attendre ensuite 1 ms.

Declencher l'emission des ultrasons en imposant un niveau 1 sur la ligne Init` et autoriser le comptage en imposant sur la ligne du
Strobe` un niveau 0.

VeriIier a l'oscilloscope la Irequence d'emission (40 KHz) et la Irequence du compteur (60 KHz). Ajuster eventuellement ces
Irequences par l'intermediaire des potentiometres. VeriIier le niveau bas de l'ordre d'emission.

Visualiser a l'oscilloscope le signal reu apres ampliIication. Visualiser egalement la sortie de la PLL lorsqu'il y a obstacle ou non.

ModiIier le programme de maniere a ce que l'emission soit active pendant 0.05 ms.
Detecter le retour de l'echo (test du bit Busy du registre d'etat) puis bloquer le compteur. VeriIier la detection de l'onde ultrason en
observant le niveau de tension a la sortie de la PLL a l'oscilloscope.

Lire le compteur et stoker l'inIormation dans une variable de type unsigned char. Retrancher la valeur 20 au compteur
correspondant au temps ecoule entre l`inIormation de retour de l`echo (sortie de la PLL) et l`arrt du compteur.

Determiner la vitesse du son (en m/s) en tenant compte du Iacteur correctiI de temperature et en deduire la distance en cm entre le
telemetre et l'obstacle.

Une interIace graphique a ete developpee sous l'environnement LabWindows CVI pour gerer le telemetre (Iichier
TeleUltrason.uir).



Sur cette interIace, on trouve donc 2 boutons,
l`un permettant de lancer la mesure et l`autre de
quitter le programme. On trouve egalement 4
objets numeriques et un voyant indiquant que la
mesure est en cours. Le programme gere le
telemetre, aIIiche le contenu du compteur et met
en Iorme pour en deduire la distance.

EnIin, on trouve une Ientre permettant de
rentrer la temperature ambiante dans laquelle
s`eIIectue la mesure car la vitesse varie selon la
temperature ainsi qu`une Ientre indiquant la
vitesse des ultrasons.

ModiIier le programme tel que le telemetre a ultrason soit gere via ce panneau graphique.

AIin d'obtenir une meilleure indication sur la distance, on realise une boucle eIIectuant la mesure 5 Iois de suite (cI. organigramme
precedent). Une 2
eme
interIace graphique a donc ete developpee (Iichier TeleUltrason2.uir). ModiIier le programme precedent en
consequence.
TP Informatique Industrielle L3 EEA-IE-EIA-Info Ph. Dorleans E. Magarotto
TP2 . Telemetre a ultrasons - liaison parallele-----------------------------------------------------------------------------------------------------
11




Ordre d'emission
9V
Masse
5V
Reglage 40 KHz de
l'emission
Trigger d'emission
Signal a 40 KHz
Masse
Emetteur
Recepteur
Signal reu
Mise en Iorme du signal reu
(avant la PLL)
Reglage de l'horloge du
compteur 60 KHz
AmpliIicateur
operationnel
PLL
Horloge a 60 KHz
Compteur 8 bits
Detection du signal a
40 KHz, sortie de la
PLL
Reglage oscillateur
local de la PLL
Connecteur DB25
liaison parallele

You might also like