Introduction
Pour aborder les problèmes d’informatique industrielle, il nous à été demandé de réaliser
un composant ayant pour but le décodage d’informations contenues sur une carte magnétique.
Le principe est de créer une carte sur laquelle est greffé un lecteur de carte magnétique, une
puce programmable servant de décodeur de données ainsi que de module de communication
avec un processeur 68020. De plus, il est nécessaire de développer le programme s’exécutant
sur le processeur 68020 et permettant d’afficher les données lues sur la carte magnétique.
Lors d’une année précédente, un étudiant de l’ESSI a développé une carte mère
supportant un microprocesseur 68020. Il nous a été demandé de développer notre carte de
décodage pour qu’elle soit compatible avec la carte mère ESSI et ainsi pouvoir travailler avec
du matériel fait maison.
Présentation du lecteur de carte
Considérations matérielles
Boîtier externe relié par 5 fils :
présence carte (fil jaune) actif à l’état haut
données en logique inverse (fil vert)
horloge (fil bleu), n’est valide qu’après que les données soient passées à 0
alimentation (fil rouge) +5V
masse (fil noir)
Codage des données sur une carte
Sur la carte, les données sont codées sur plusieurs pistes qui comportent chacune une
information différente. Nous ne nous intéresserons qu’à deux d’entre elles, à savoir l’horloge,
une suite de 0 et 1 visant à rythmer le passage de la carte pour en permettre le décodage, et
une piste de données comprenant notamment un nom et un numéro.
Lors du passage d’une carte, on reçoit les bits en série avec d’abord le bit de poids le
plus fort et le bit de parité en dernier. Les données sont codées suivant un dérivé de l’ASCI. Il
faut faire attention car les données sont codées en logique inverse sur la carte magnétique,
ainsi l’information reçue est le complémentaire de l’information affichée. De plus l’ASCI est
sur 7 bits (0x00 - 0x7F) mais on utilisa uniquement des lettres minuscules et des nombres (pas
de caractères spéciaux, ni majuscules…). Ces caractères sont codés au format 11X XXXX
pour les lettres car elles vont de 0x61 à 0x7A, et au format 011 XXXX pour les chiffres qui
vont de 0x30 à 0x39. Ainsi, on fera l’économie du codage et donc de la transmission du 6ème
bit, puisqu’il est toujours à 1. Le 7ème bit correspond à la parité des 6 précédents, il sera
transmit, mais ne sera pas traité dans cette application. On se contentera de reformer l’octet et
de le transmettre à la carte mère. Cet octet aura tout de même une différence par rapport à de
l’ASCI : le bit de poids fort codera la présence de la carte.