GE Station de lavage PROJET Etude fonctionnelle de FP1 -Etude de la communication avec la carte à puce - Rappel : Principe de fonctionnement Lorsqu’une carte est présentée à l’entrée du lecteur le capteur optique 1 la détecte. Ceci entraîne le démarrage du moteur en marche avant afin d’introduire la carte dans le lecteur. La mise sous tension du moteur entraîne la rotation du premier galet entraîneur par l’intermédiaire du système poulie courroie. Le capteur 2, situé après le premier galet indique la position de la carte. Ceci va générer le démarrage du cycle de positionnement automatique de la carte afin de placer celle ci sous le connecteur. Cycle correspondant à une rotation alternative du moteur jusqu'à ce que le capteur 3 indique que la carte est bien positionnée. Une fois positionnée, le moteur s’arrête et le connecteur vient se positionner sur la puce afin de décoder et/ou d’encoder les informations contenues dans la puce. Enfin, la carte va être éjectée en fonction de son type : 1 1.1 Analyse du fonctionnement de la carte à puce. Rappeler le nom et le rôle de chaque contact de la carte à puce. Indiquer par quels bits sont interfacés les contacts de la puce avec le kit de développement 68HC11 68HC11 PORT … 1.2 A l’aide de la documentation technique et du dossier technique, identifier les différentes mémoires présentes sur la carte à puce. 1.3 Pour chaque mémoire, indiquer son type, sa capacité (et/ou son organisation), son rôle. 1.4 Sur le plan mémoire partiel (donné en annexe) repérer la zone ou est identifiée : Le type de carte (jeton ou crédit). Le nombre d’unités disponibles. L’identifiant de l’industriel réalisant le système « Station de lavage pour Automobile ». 1.5 On souhaite que l’identifiant de l’industriel ne puisse pas être modifié, quelle action faut-il appliquer sur la mémoire ? Faire apparaître ce changement sur le plan mémoire partiel. 1.6 Identifier sur le plan mémoire partiel le contenu de la mémoire de sécurité. 1.7 La communication avec la carte à puce est cadencée par l’horloge issue du Kit 68HC11. D’après la documentation technique de la carte à puce, quelle est la gamme de fréquence autorisée pour l’horloge ? PORTC CLK Vous allez vérifier que le programme assembleur respecte cette contrainte. Voici la partie du programme qui permet de créer l’horloge : bset portc,y clk jsr temp bclr portc,y clk jsr temp Sous-Programme « temp » : temp ldx #8 tp dex bne tp rts 1.8 Tracez l’algorigramme du bout de programme et du sous programme. 1.9 Faites le commentaire de chaque ligne. 1.10 Calculer à l’aide des instructions du 68HC11 et de son temps de cycle, la durée d’une période d’horloge et conclure sur le respect des contraintes de fréquence. (On rappelle que la fréquence du quartz est de 7,3732 MHz) 2 Lecture du mode de lavage programmé sur une carte jeton Pour cette activité il est nécessaire de comprendre comment se font les échanges avec la carte à puce : - Mode de transmission - Protocole d’envoi des instructions - Les différentes instructions existantes. 2.1 Lire le document intitulé « CARTE A PUCE – SLE 4432 » et complétez le document intitulé « protocole carte SLE4432 » La carte utilisée est une carte jeton. Le nombre d’unités présentes sur la carte permet d’identifier le programme de lavage requis. 2.2 Compétez le sous programme suivant. Le SP IFD est le sous programme qui permet d’envoyer en série à la carte, une commande, une adresse ou une donnée. ******************************************************** * Operation - Lecture nombre d'unites sur la carte * * * * Entree: sortie: modif: * prog_unites jsr startifd ldab .... jsr IFD ldab .... jsr IFD ldab .... jsr IFD jsr stopifd2 ; instruction 1er octet ; instruction 2e octet ; instruction 3e octet Attention : Il faut d’abord lancer le programme sur le Kit de Développement 68HC11 avant d’alimenter le lecteur de carte. 2.3 Lancer le programme et relever les trames émises sur les signaux CLK (PC3) et I/O (PC4) lors de la demande d’appui sur le bouton poussoir (Relever l’oscillogramme correspondant à l’envoi de la commande et l’oscillogramme correspondant à la réponse de la carte). Régler le déclenchement de l’oscilloscope sur le front montant du signal CLK (PC3). 2.4 Repérer et décrire sur le 1er oscillogramme les paramètres envoyées à la carte à puce (Commande START, commande STOP, repérage et valeur des bits A0..A7, B0..B7, D0..D7), et sur le 2e oscillogramme la réponse de celle-ci (repérage et valeur des bits D0..D7). Remarque : Lorsqu’on lit sur l’afficheur la demande « Appuyer sur le BP VALID » (pour l’envoi de la trame), on dispose d’un délai maximum de 3 à 4 secondes pour appuyer sinon une temporisation de protection provoquera la levée l’électroaimant ; I/O sera alors en état Haute Impédance. 2.5 D’après le 2e oscillogramme (réponse de la carte), indiquer en vous aidant du dossier technique le nombre d’unités écrites sur la carte jeton et par conséquent le programme de lavage qui correspond à cette carte. 3 Modification du nombre d’unités d’une carte crédit après un lavage. La carte utilisée est une carte crédit. Avant lavage, le client dispose sur sa carte d’un certain nombre d’unités. Le choix d’un programme de lavage et l’application de celui-ci entraîne une modification du nombre d’unités sur la carte après la prestation. 3.1 Quelle opération préalable est il nécessaire d’effectuer sur la carte afin de modifier les données sur celle-ci ? 3.2 A partir des éléments contenus dans le dossier et dans la documentation constructeur de la carte ; compléter l’algorigramme de cette procédure. 3.3 Le deuxième algorithme incomplet fait apparaître les codes de chaque commande. Compléter le 2e algorigramme qui, cette fois, fait apparaître les codes de chaque commande. 3.4 On souhaite demander une modification du nombre de crédits présents sur la carte, compléter alors le programme "Ecriture_eleve.s" pour modifier le nombre d’unités de celleci. Exemple de situation : Le client dispose avant lavage de xx unités (voir prof). Il choisit de laver sa voiture en utilisant le programme « TRIO ». Après lavage, on va créditer la carte du nombre d’unités restantes. ******************************************************** * Operation - Modification credits sur la carte * * * * Entree: sortie: modif: * ******************************************************** prog_credit jsr clr_aff ; effacement de l'afficheur ldx #txtInst0 ; Pointage vers le texte appui BP1 jsr aff_txt ; affichage du texte appui BP1 jsr appui_bp2 envoi_trame ldx jsr jsr jsr ldab jsr ldab jsr ldab jsr jsr jsr clr_aff #txttrame aff_txt temp1s startifd ..... IFD ..... IFD ..... IFD stopifd ; effacement de l'afficheur ; Pointage vers le texte Envoi trame ; affichage du texte Envoi trame ; instruction 1er octet ; instruction 2e octet ; instruction 3e octet 3.5 Lancer le programme et relever les trames émises sur les signaux CLK (PC3) et I/O (PC4) lors de la demande d’appui sur le bouton poussoir. Régler le déclenchement de l’oscilloscope sur le front montant du signal CLK (PC3 3.6 Repérer et décrire sur votre oscillogramme les paramètres envoyées à la carte à puce (Commande START, commande STOP, repérage et valeur des bits A0..A7, B0..B7, D0..D7). 3.7 On souhaite vérifier que la carte à puce est bien créditée. A l’aide du programme ‘Lecture_eleve.s’ modifié précédemment, relever : 3.8 L’oscillogramme des signaux CLK (PC3) et I/O ‘PC4) : ‘Envoi de la commande pour vérification’. L’oscillogramme CLK (PC3) et I/O (PC4) : ‘Réponse de la carte’. Reporter sur les deux oscillogrammes les valeurs de commande, d’adresse, de donnée, ainsi que la donnée restituée par la carte. VERIFICATION DU PSC Début Fin VERIFICATION DU PSC Début Fin 1er octet 2e octet 3e octet …. …. …. 1er octet 2e octet 3e octet …. …. …. 1er octet 2e octet 3e octet …. …. …. 1er octet 2e octet 3e octet …. …. …. 1er octet 2e octet 3e octet …. …. …. 1er octet 2e octet 3e octet …. …. …. 1er octet 2e octet 3e octet …. …. ….