III-2-3- Élaboration d'un câble
null-modem
D'après le schéma usuel, la transmission ne peut
se faire que dans un seul sens (l'interface parallèle est
utilisée principalement pour communiquer avec l'imprimante).
L'émetteur ne peut pas recevoir des données sur les lignes D0 -
D7. Il faut alors établir une liaison bidirectionnelle pour que les
données circulent dans les deux sens librement.
On utilise à cette fin les différentes lignes
d'état qui véhiculent habituellement des informations
d'état en provenance de l'imprimante.
Figure I-7 : Schéma de câblage du
câble null-modem
III-2-4-Protocole de transmission utilisé
Le câble null-modem présenté dans la
figure I-7 permet d'envoyer simultanément (dans les deux sens) cinq bits
par lignes de données D0 - D4 dans chaque direction. Cependant il faut
réserver une ligne qui sert pour rythmer la communication. L'un des cinq
lignes va être sacrifié à cette fin (le bit). Nous présentons à la suite le protocole que nous allons
utiliser pour le transfert d'un octet.
III-2-5-Transmission d'un octet
Du coté émetteur, l'octet doit être
divisé en deux quartets pour être transféré. Donc,
le récepteur charge les bits de faible poids (de 0 à 3) dans les
bits 0 à 3 du premier registre et met le cinquième (D4) à
0 pour que le récepteur reçoive la valeur 1 sur la ligne BUSY.
Du coté récepteur, le programme doit interroger
en permanence la ligne jusqu'à ce qu'elle monte à 1 pour transformer le contenu
de deuxième registre dans une variable. Ce contenu, ainsi lu, est
renvoyé à l'émetteur par les lignes de données. Le
bit de la ligne D4 est ensuite mis à 0 pour que l'émetteur trouve
sa ligne à 1. Ce dernier va lire alors le quartet et peut le comparer au
quartet envoyé. C'est une vérification au plus bas niveau.
Le même principe est répété pour la
transmission du second quartet de poids fort. Et il ne reste que la
concaténation de deux quartets pour obtenir l'octet. L'émetteur
relie le deuxième quartet renvoyé pour contrôle, le
concatène au second et teste s'il y a conformité avec l'original.
En cas d'erreur, Une erreur est transmise au programme appelant pour
décider ce qui est de mieux.
III-3- l'environnement turbo C
Les applications industrielles informatisées sont de
plus en plus développées et doivent traiter les informations et
exécuter les instructions de plus en plus vite. Pour palier à ces
contraintes, il faut donc mettre en oeuvre de nouveaux concepts
intégrant des caractéristiques spécifiques au temps
réel.
Les applications temps réel font appel à un
environnement de plus en plus complexe pour des raisons de coût et
d'efficacité. Durant cette étude, nous utilisons l'environnement
Turbo C.
Turbo C est un langage de programmation très
utilisé en milieu industriel mais peu convivial dans l'ingénierie
industrielle.
Les deux instructions assembleur permettant au processeur de
communiquer avec les interfaces d'E/S sont IN et OUT.
Il est possible d'accéder simplement à ces
instructions en langage C, grâce aux fonctions inportb (adr) et
outportb (adr).
· Unsigned char inportb (int
address) : lit un octet à l'adresse (de l'espace
d'E/S) indiquée et la retourne.
· Void outportb (int address, unsigned char
*data) : écrit l'octet (argument data) à
l'adresse (E/S) indiquée.
|