Vous êtes sur la page 1sur 14

Le filancemètre

ETUDE DE THEME avec le Microcontrolleur PIC


I. Mise en situation.
Le filancemètre est un système de mesurage de la filance d'une mucosité. Il est utilisé dans les
laboratoires d'analyses médicales .
La filance est la propriété rhéologique qui caractérise la capacité que possèdent certains fluides de
former un filament sous l'effet d'une traction.
L'importance des propriétés rhéolgiques des mucus (respiratoires, cervicaux, gastriques, etc...),
dans les mécanismes physiologiques de transport et/ou de défense est maintenant bien établie.
Dans le domaine médical, l'étude des variations de la filance des mucus fournit des informations
sur leurs propriétés fonctionnelles.
A titre d'exemples :
- La variation de la filance de la glaire cervicale chez la femme au cours du cycle menstruel
permet de repérer la période de fertilité.
- La filance du mucus bronchique est étroitement liée à sa capacité de transport par le système
ciliaire.
En pathologie, l'étude de la filance permet d'identifier les anomalies du mucus et de contrôler
l'efficacité des traitements visant à les corriger.
t
n

II. Présentation fonctionnelle.


e

II.1 Fonction d'usage.


Le système permet la visualisation de la valeur de la filance d'une mucosité en vue de
m

l'établissement d'un diagnostic ou du contrôle d'un traitement en cours.


e

II.2 Diagramme sagittal.


v

symptôme
Médecin
è

Patient action thérapeutique


praticien
l

se
'analy
é

d se
ande 'a n aly
dem d
ltat
r

résu
d e
p

E1 apport de mucosité
Opérateur Filancemètre
E2 ordre de départ
S1 info visuelle filance

FIL_PIC Page N°1


Rôle des différents éléments du système:
Filancemètre: Objet de l'étude, il permet le mesurage de la filance du mucus à analyser.
Patient: Consulte le médecin, fournit du mucus à analyser, reçoit les résultats de l'analyse.
Médecin Praticien: Prévoit une analyse des mucus en vue d'établir un diagnostic ou de contrôler
l'efficacité d'un traitement. II reçoit les résultats de l'analyse de son patient et tire les
conclusions.

t
Opérateur: Prélève les mucus sur le patient et effectue l'analyse de la filance. II rédige un

n
compte rendu de mesure à l'intention du médecin.

e
II.3 Fonction globale.

d
Permettre la mesure de l'étirement d'un corps.

m
On peut trouver d'autres systèmes ayant même fonction globale. A titre d'exemple on peut citer :

e
- système de mesurage de la résistance des matériaux.

g
a
II.4 Schéma fonctionnel de niveau II.

n
E1 m
Traction

o
Rétention
(production du fil)
m

Apport de
Caractéristiques
mucosité

l
mécaniques
intrinsèques
o

l
A
C

E2 Ordre de mise en fonctionnement Mesurage de Affichage de S1


l'étirement max Etirement l'étirement Filance
l max

II.5 Milieux associés.


II.5.1 Milieu physique.
L'appareil est destiné à être utilisé dans un laboratoire d'analyse médicale. Les contraintes
thermiques, hygrométriques et physiques sont faibles [cf.: cahier des charges).
II.5.2 Milieu humain.
L'usage de l'appareil est réservé à un public averti et compétent. Néanmoins les manoeuvres de
mise en fonctionnement, de nettoyage, d'entretien et de réglage doivent être aisées et rapides.
Une attention particulière doit être portée aux nuisances causées par l'appareil [bruit, pollution,
etc...).
II.5.3 Milieu technique.
De façon à minimiser le coût et à augmenter la fiabilité de l'appareil, l'emploi de circuits intégrés
d'usage courant est recommandé. Pour augmenter la flexibilité de l'OT, une solution
microprogrammée (µprocesseur, µcontrôleur, PAL, etc...) est à envisager.
II.5.4 Milieu économique.
L'appareil est fabriqué en petites séries, l'assemblage, les réglages et la mise en boîtier doivent
pouvoir être effectués sur le même poste. Afin de réduire les coûts de fabrication et de

FIL_PIC Page N°2


maintenance on minimisera le nombre de composants et de réglages.
Pour rendre l'appareil plus attractif, on portera une attention particulière au design du coffret.

III. Extrait du cahier des charges.


Gammes de mesure: - mesure de la filance: de 1/10 à 200 mm;
- vitesse d'étirage de l'échantillon: constante à 10 mm/s;
- volume de l'échantillon: 20 µl.
Alimentation en énergie: - secteur 220 V @ 50 Hz.
Dimensions : - L x l x h: 300 x 230 x 400 mm.
Environnement: - température d'utilisation: 15 à 40 °C:
- hygrométrie: normale:

s
Contraintes: - réceptacle démontable et lavable;
- réglage des dimensions du fil.
e
Options: - connexion à un ordinateur de type PC, par l'interface série.
d
n

IV. Analyse fonctionnelle de degré 1.


a

E1 Stockage Etirement Détection


m

Mucosité mucosité Echantillon Intégrité de coupure


FP2 du fil
FP5 FP3
m

Information détection de coupure


o
C

e
I

E2 Commande Comptage
t
n

Ordre de départ Séquencement


Affichage S1
f

FP1 Référence
temporelle FP4 Filance
o
s

IV.1 Description de FP1: "Séquencement".


La fonction FP1 permet l'élaboration des signaux de commandes d'étirement, de comptage et
d'affichage à partir de l'ordre de départ donné par l'opérateur et des informations de butée, de
déplacement (vitesse de déplacement), et de coupure de la mucosité.
IV.2 Description de FP2: "Etirement".
FP2 correspond à la partie opérative. Elle réalise l'étirement de l'échantillon de mucosité et le
positionnement du bras à partir des commandes fournies par FP1. Elle fournit des informations de
position du bras par rapport aux butées (CH= capteur haut et CB= capteur bas), ainsi qu'une
information significative de l'intégrité du filament.
IV.3 Description de FP3: "détection de coupure".
La fonction permet d'élaborer une information ED image de l'intégrité du filament.
IV.4 Description de FP4: "Comptage Affichage".
FP4 permet l'affichage de la valeur de la filance à partir des informations de commande délivrées
par FP1.

FIL_PIC Page N°3


IV.5 Description de FP5: "Stockage de la mucosité".
La fonction FP5 permet de réaliser le stockage dé l'échantillon de mucosité.
V. Analyse fonctionnelle de degré 2.
V.1 Etude fonctionnelle de la solution microprogrammée:
Schéma fonctionnel de degré 2:

Prise en compte
S1 Start
du départ de commandes
Ordre de cycle FS12
départ 2 Etirement Traction
Traitement
Captage Microprogrammé M/A (Marche/ (Commande
position CH Arrêt) Moteur chariot) (production
et M/D du fil)
Haute FS21
FS22 (Montée/
Informations
Descente)
de
butée
Captage CB
position 2 Raz (remise à zéro de l'affichage)
Basse FS11 et HC (horloge du compteur d'affichage)
FS23

Captage Comptage Filance


(dépl) déplacement HS Alimentation
Affichage
du chariot FS24 (fonction annexe 1)
FP4
Allongement FA1
du fil
Détection de ED FP1
(fil)
coupure
(présence
du fil) FP3

En vous aidant du schéma fonctionnel de degré 2 ci dessus, encadrez et nommez chaque fonction
sur le schéma structurel du filancemètre.
VI) Etude structurelle:
VI.1) On désire étudier la carte micro et interfaces (captage et actionneurs).
VI.1.1) A l'aide du schéma structurel du filancemètre.

VI.2) Etude des documents constructeurs sur le PIC.


VI.2.1) L'entrée RESET
¯¯¯¯¯¯ assure l'initialisation du µC
VI.3) Electronique générale.
VI.3.1) Donnez les états logiques sur l'entrée RA0, lorsque le bouton poussoir de départ de cycle
est: 1°) relâché, ou 2°) enfoncé.
VI.3.2) Les fonctions "captage" sont assurées par des détecteurs à fente (photocoupleurs). Les
diodes électroluminescentes sont toujours alimentées.
a) Calculez le courant IF dans chaque LED de ISO1 à ISO3, si on suppose VF = 1,6V.
b) La présence du chariot en haut, coupe le faisceau lumineux de ISO1. Le transistor du
détecteur est alors bloqué. en déduire l'état de CH.

FIL_PIC Page N°4


c) Lorsque le chariot n'est pas en haut, le faisceau lumineux de ISO1 n'est pas coupé. Le
transistor est alors passant. Le constructeur donne Ic(on)=2mA pour IF=16mA. Peut-on en
conclure que le transistor est saturé. Expliquez !
d) Vérifiez si le transistor de ISO3 est saturé, en supposant Ic proportionnel à IF.
VI.3.3) Le détecteur à fente ISO3 assure le captage de la position du chariot. Un disque à fente
permet ainsi de générer 100 impulsions par tour du moteur. Le moteur entraîne une vis dont le pas
est de 1mm (Le pas de la vis correspond au déplacement pour 1 tour). En déduire le déplacement
du chariot à chaque période perçue sur HS.
VI.3.4) La détection de la présence du fil est assurée par un comparateur à collecteur ouvert
LM311. La substance est équivalente à une résistance entre les bornes JP2 (fil). Calculez
l'impédance maximale de la substance à analyser, pour permettre la commutation du comparateur.
Donnez en expliquant brièvement les états logiques de la sortie ED en fonction de la présence ou
de la rupture de la substance.
VI.3.5) Le moteur est commandé par un pont hybride en H (association de transistors MOS et de
transistors bipolaires). Les MOS utilisés sont des BS170 (VGS(th)max= 3V). Remplissez le tableau
donnant l'état des transistors Q5 à Q8 en fonction de M/D et M/A, et le sens du moteur (Voir
feuille réponse N°1) . En déduire la tension aux bornes du moteur, le courant ID et la tension VDS
des MOS, si la résistance des enroulements du moteur est de 150Ω. (On supposera que VCEsat des
transistors PNP = - 0,3V. On regardera le (RDSon )max à température ambiante sur le document
constructeur du BS170.
VI.3.6) L'affichage utilise un circuit spécialisé (74C928). Ce circuit assure le comptage en BCD
sur 4 digits, la mémorisation, le transcodage BCD/7 segments et le multiplexage pour 4 afficheurs.
Calculez le courant dans un segment allumé si on suppose que le 74c928 assure VOHmin = 4,8V, que
VCEsat(2N2222) = 0,2V et que VF(afficheur led) =1,6V. En déduire le courant moyen dans un segment
allumé.

VII) Etude de programmation à l'aide du microcontrôleur PIC.


Un algorigramme du filancemètre est fourni page 7, et un programme incomplet en langage C
page 8. (Rem: Cet algorigramme peut diffèrer par quelques détails du programme fourni).
Etude du programme (Voir Fichier source du Filancemètre).
VII.1) En vous aidant de l'étude structurelle et du schéma structurel, vérifiez l'affectation des ports
d'entrée/sortie dans l'en-tête du programme (pour les ports A et B). On vérifiera pour chaque
signal, s'il est actif à l'état haut ou à l'état bas.
VII.2) Complétez l'en-tête en précisant l'état de RA0 en fonction du bouton poussoir.
VII.3) .
VII.4) Comparez l'algorigramme du programme principal avec le fichier source C.
VII.5) Indiquez sur les algorigrammes de niveau 1 et 2, les noms des sous programmes représentés
en grisé. Rem: On indiquera les noms des étiquettes utilisés dans le fichier source assembleur, tant
sur le niveau 1 que sur le niveau 2.

VII.6) Vérifiez le sous programme INIT et représentez l'ordinogramme correspondant. On ne


détaillera pas le sous programme MONTE, mais on représentera l'ordinogramme du sous

FIL_PIC Page N°5


programme SORTI en expliquant l'intérêt de chaque instruction. On justifiera l'instruction MOV
A,#10h avant ACALL SORTI.
VII.7) Expliquez totalement le sous programme MONTE et ses sous programme et représentez
son ordinogramme.
VII.8) Comparez l'algorigramme de l'attente de début de cycle avec le sous programme ATTEN.
VII.9) En vous aidant de l'étude précédente et de l'algorigramme de la descente, proposez le listing
du sous programme DECEN. Rem: On utilisera obligatoirement le sous programme SORTI pour
commander la partie opérative.
VII.10) Analysez l'algorigramme du sous programme "montée et mesure", et expliquez en rapport
avec le schéma structurel, le rôle de la recopie du signal HS sur la broche HC (horloge du
compteur d'affichage), pendant l'allongement du fil. On reprendra la question VI.3.3 pour rappeler
le rôle de HS.
VII.11) Commentez (en justifiant chaque instruction), le sous programme MESUR, en lisant en
détail la partie variable RAM du fichier source. On dessinera un ordinogramme à partir du fichier
source assembleur.
VII.12) Apportez une modification au sous programme MESUR afin de remettre à 0 l'affichage si
le fil n'est pas rompu.

FIL_PIC Page N°6


ALGORIGRAMME DU FILANCEMETRE
1) niveau 1 (programme principal) 2) niveau 2 (sous programmes)

initialisation

début
init Port

initialisation init affichage

attente départ init bras en haut

descente fin init

montée et mesure
montée et mesure
affichage (bilan)
marche et montée

descente lire capteurs

raz affichage non CH=0


attente ED=1
?
marche + descente oui

lecture poussoir recopie HS sur HC


lire CB

non
appui non
non bas CH=1
? ? ?
oui
oui (haut)
oui
fin arrêt moteur
arrêt moteur

fin fin

FIL_PIC Page N°7


Feuille réponse Programme Nom:
Fichier source du filancemètre pour le 68HC11 (FILANC11.ASM). (A compléter)
****************************************************************************
* programme filancemetre écrit par Mr COTTET JJ (FILANC11.ASM)
* Description des entrées sorties du système
* PortA PA7 PA6 PA5 PA4 PA3 PA2 PA1 PA0 En tête
* HS M/A M/D
* Sorties:
* - M/A commande Marche/arrêt du moteur ( )
* - M/D commande Montée/descente (1=Montée)
* - Hc horloge du compteur d'affichage
* - Raz commande de remise à zéro du système d'affichage (1=Raz)
* Entrées:
* - CH capteur Haut (CH= si chariot en haut)
* - CB capteur bas (CB= si chariot en bas)
* - ED présence du fil (ED= si fil présent)
* - HS horloge de référence pour le comptage
* PortD On utilise seulement PD5 pour le bouton poussoir de départ de cycle
* (PD= si bouton enfoncé)
****************************************************************************

************************ DEFINITION DES CONSTANTES *************************


Constantes
*PORTA EQU $1000 ;*** adresses des ports du 68HC11
*PORTD EQU $ et variables
*DDRD EQU $
*PACTL EQU $ ; DDRA7, PAEN, PAMOD, PEDGE, 0 ou DDRA3(811), 0, RTR1, RTR0

*************************** variables RAM ***********************************

Tableau
Rem:U12=VM1-VM2

M/A M/D Q 5 Q 6 Q 7 Q 8 U12

0 0

0 1

1 0

1 1

On utilisera: S pour Saturé


B pour Bloqué.

#include <pic.h>

/***********************************************************
* programme filancemetre écrit par Mr COTTET JJ (FILANCE.C)
* en C Pour PIC 16F84 Vers:1.0 du 24/04/2002
*
* Description des entrées sorties du système
* PortB RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0
* HS M/A M/D HC Raz CH CB ED
* In / Out I O O O O I I I
* Sorties:
* - M/A commande Marche/arrêt du moteur (Attention 0=Marche sur RB6)
* (Rem: le sous programme sortie inversera RB6)
* - M/D commande Montée/descente (1=Montée)
* - Hc horloge du compteur d'affichage

FIL_6811 Page N°8


Feuille réponse Programme Nom:
* - Raz commande de remise à zéro du système d'affichage (1=Raz)
* Entrées:
* - CH capteur Haut (CH=1 si chariot en haut)
* - CB capteur bas (CB=1 si chariot en bas)
* - ED présence du fil (ED=1 si fil présent)
* - HS horloge de référence pour le comptage
* PortA On utilise seulement RA0 pour le bouton poussoir de départ de cycle
* - BP Start = RA0 = 0 si appui
*
* en ROM programme (Flash) du PIC16F84
* Avec MPLAB et compilateur C HI-TECH.
*
************************************************************
*/
typedef unsigned char byte; //définition du type byte

//*************** Déclaration des constantes ***************

#define CH RB2
#define CB RB1
#define ED RB0
#define HS RB7
#define HC RB4
#define BP RA0

//************** Déclaration des Sous programmes ***********


void Init(void);
void Monte(void);
void Atten_BP(void);
void Descen(void);
void Mesure(void);
void Sortie(unsigned char Commande);

//****************** Programme Principal *******************


main(void)
{
Init();
while(1)
{
Atten_BP();
Descen();
Mesure();
}
}

//**************** Sous Programmes **************************


void Init(void)
{
TRISB = 0b10000111; // PortB RB6 à RB3 en sortie, les autres entrée
TRISA = 0xff; // PortA en entrée
Sortie(0x08); // Arrêt dans le sens descente et raz affichage
Monte();
}

//*********************** Monte *****************************


void Monte(void)
{
Sortie(0x60); // Marche dans le sens Montée
while(CH == 0)
{
continue;
}
Sortie(0x00); // Arrêt
}

//*********************** Attente appui sur BP **************

FIL_6811 Page N°9


Feuille réponse Programme Nom:
void Atten_BP(void)
{
while(BP == 1)
{
continue; // Appui sur BP => 0 et sortie SP Atten
}
}

//*********************** Descente **************************


void Descen(void)
{
Sortie(0x48); // Marche dans le sens descente et raz affichage
while(CB == 0)
{
continue;
}
Sortie(0x20); // Arrêt sens Montée
}

//*********************** Montée et mesure ******************


void Mesure(void)
{
Sortie(0x60); // Marche dans le sens Montée
while( (CH == 0) & (ED == 1) )
{
HC=HS; // Recopie de HS sur HC (Mesure)
}
while(CH == 0)
{
continue; // Montée jusqu'au capteur haut si fil rompu
}
Sortie(0x00); // Arrêt (capteur haut atteint, fil rompu ou non)
}

//*********************** Sous programme Sortie *************


void Sortie(unsigned char Commande)
{
PORTB = (Commande ^ 0x40) ; // Sortie sur le portB en inversant
// le bit Marche/Arret (M/A)
// actif à 0 sur la partie opérative
// ^ correspond au OU exclusif
}

FIL_6811 Page N°10


Partie Opérative.

FIL_6811 Page N°11


Feuille réponse N°1 Nom:

FIL_6811 Page N°12


Feuille réponse N°2 Nom:

FIL_6811 Feuille réponse N°2


4) Oscillateur externe à Quartz .

FIL_6811 Documentation: Page N°4