Vous êtes sur la page 1sur 17

Tlinformatique et Rseaux de Communication

Mr. Abdessadek Tikniouine

Chapitre 6 : La Transmission des Donnes par Micro-ordinateurs


1. La Norme RS 232C La norme RS-232C (ou jonction V24 normalise par le CCITT) a t publie en 1969 par llectronique Industries Association. tablie initialement pour dfinir les connexions entre un terminal et un modem. Elle dfinit les caractristiques lectriques des circuits pour linterface de deux appareils, elle donne des noms et des numros aux diffrents fils ncessaires pour leur jonction. Les prises de sorties ou les fiches de sorties sont de plusieurs sortes. Les prises 25 ou 9 broches de type D (appeles DB-25 et DB-9) sont les plus courants. Dans la pratique 9 broches seulement sont utilises. Pour tablir les diffrentes broches de la Jonction V24, nous allons procds par tapes: 1.2. Transmission PC Modem Un seul appareil transmet (Connexion Unidirectionnelle) La ligne 2: TXD (Transmitted Data ou transmission de donnes) ETTD ETCD La machine transmet par la Ligne 2, le modem reoit sur la mme ligne. La ligne 7: SG (Signal Grand: Terme de protection); signal correspond au point de rfrence

commun partir duquel la polarit et la valeur de tension des autres lignes sont dtermines.

TXD

7 ETTD 1.3. Contrle de flux

SG

7 ETCD

Dans ce cas il est ncessaire que lmetteur sache quel moment le rcepteur est prt recevoir. Pour cela il faut que le rcepteur envoie un signal vers lmetteur indiquant quil est prt ou non, ce protocole sappelle contrle de flux ou validation de transfert (Handshaking) ou poigne de main en franais. Il existe deux types contrle de flux; cbl et programm. Le contrle de flux programm: les signaux de contrle sont des caractres envoy sur les

lignes de donnes et non sur les lignes de contrles. Il sagit des caractres de commandes XON (DC3) et XOFF (DC1) (Voir la table ASCII). Le contrle de flux Cbl: Le rcepteur envoie un signal (sur la ligne de contrle) (de tension

positive) tant quil est prt recevoir, lorsque lmetteur reoit une tension ngative, il sait quil doit

Tlinformatique et Rseaux de Communication

Mr. Abdessadek Tikniouine

stopper lmission. Pour installer un contrle de flux cbl, il faut ajouter au moins une ligne supplmentaire pour transporter le signal. La ligne 6 : DSR (Data Set Ready : poste de donnes prt) Un rcepteur se sert souvent dune autre ligne de contrle, pour mieux contrler le transfert venant dun metteur, on ajoute donc une autre ligne. La ligne 5: CTS (Clear To Send : prt mettre) Dans ce cas, lmetteur ne transmet que lorsque les deux lignes de contrles sont dans ltat haut (tension positive). Il arrive souvent que les deux lignes soient relies entre eux. TXD CTS DSR SG

2 5 6 7 ETTD

2 5 6 7 ETCD

Figure 23. Transfert dun ETTD vers un ETCD avec contrle de flux

1.4. Transmission Modem PC Pour quon ETCD transmet avec un ETTD, on se sert de la ligne 3 de lETCD comme ligne de transfert de donne, La ligne 3: RXD (Receive data : Rception de donne), cette ligne sert la rception de donnes du ct ETTD. Si un contrle de flux est ncessaire, on utilise deux autres lignes de contrle de lETTD. La ligne 20: DTR (Data Terminal Ready : poste de donnes prt) sert envoyer le signal de contrle du PC vers lETCD, La ligne 4: RQS (Request to send : demande pour mettre), est la seconde ligne de contrle du PC vers lETCD. 3 4 7 20 ETTD RXD RQS SG DTR 3 4 7 20 ETCD

Figure 24. Transfert dun ETCD vers un ETTD avec contrle de flux

Tlinformatique et Rseaux de Communication

Mr. Abdessadek Tikniouine

1.5. Communication Bidirectionnelle Modem - PC Les deux appareils transmettent est reoivent en mme temps. Il faut au moins 3 lignes (2, 3, 7) pour la transmission de donne dans chaque direction. Si on ajoute les lignes de contrle dans chaque direction, les lignes (6 et 20) et les lignes (4 et 5), on aura au total 7 lignes.

ETTD

ETCD

Figure 25. Branchement Standard dun ETTD un ETCD

On ajoute ces lignes, deux lignes supplmentaires pour permettre un modem de fournir davantage dinformation un ordinateur. La ligne 8: CD (Carrier detect: dtection du signal), indique la prsence du signal de la porteuse. La ligne 22: RI (Ring indicator: indicateur dappel), avertit le modem quun appareil loign est entrain de lappeler.

1.5. Communication Bidirectionnelle PC - PC Pour transmettre des donnes en local entre deux micro-ordinateurs, le problme devient plus dlicat. Le brochage doit pouvoir simuler la prsence d'un modem. Cette forme de brochage pour une connexion directe ordinateur-ordinateur est appele Null Modem ou cble crois. Sa prsentation est celle de la Figure 26.

Tlinformatique et Rseaux de Communication

Mr. Abdessadek Tikniouine

Figure 26. Connexion ETTD ETTD (Null Modem)

Au niveau des broches 4 et 5, on peut tout simplement raliser un strap. Normalement, elles servent l'initialisation du circuit; la broche 5 (Clear To Send) renvoie l'ordinateur ce signal lorsque le modem a tabli la connexion avec l'autre modem en bout de ligne. Comme ici la connexion est directe, on rend implicite cette fonction grce au strap. On peut aussi raliser dautres cblages plus simples. 2. Le Contrleur de Communication Asynchrone Le Contrleur de Communication ou metteur Rcepteur Asynchrone Universel (ERAU ou UART en anglais) est un circuit intgr charg de la gestion de communication asynchrone.

2.1. Les Fonctions du Contrleur de Communication LERAU excute principalement 4 tches : Convertit des signaux parallles, issue de a lU.C. en signaux sries pour permettre la

communication avec lextrieur, Ajoute les bits de dpart, darrt et de parit en mission, et se dbarrasse des mme bits en

rception et transmis le caractre lU.C., Sassure que les bits soit mis avec la vitesse adquate, calcul le bit de parit sur les caractres

mis et reus et rend compte lU.C. de toute erreur dtecte, Gre le processus de contrle de flux et rend compte lU.C. de ltat des lignes de contrles entrantes.

Tlinformatique et Rseaux de Communication

Mr. Abdessadek Tikniouine

2.2. Les Registres Principaux de lERAU LERAU possde plusieurs registres, localiss des emplacements mmoires internes, ils contiennent : - Le dernier caractre reu, - Le prochain caractre mettre, - Ltat courant des signaux de contrle de flux, - Linformation indiquant si lERAU est prt ou non recevoir un caractre pour lmettre, etc. Ces registres sont de 3 sortes : Les registres de contrles, qui reoivent les commandes de lU.C. Les registres dtat, qui informe lU.C. de ce qui arrive vers LERAU. Les registres tampons, qui recueillent les caractres en instance dmission ou de traitement.

La faon dont les registres sont manipuls dpend de larchitecture de lordinateur auquel lERAU est associ.

2.2.1. Les Registres de Contrle LERAU possde 4 registres de contrle. Le registre de contrle de la ligne 3FB (pour Com1) et 2FB (pour Com2)

(Line Control Register), ce registre est utilis pour initialis les paramtres de communication.

Bits 0 et 1 2 3 4 5 6 7

Signification Longueur des mots bit darrt (bit stop) Valide la parit Slectionne la parit bit de parit un Signal Break (dpassement du time out) bits daccs la bascule de division (DLAB) (Division Latch access bit) ou dautres registres.

Les bit 0 et 1 (Longueur du mot) Bit 0 0 0 1 1 Bit 1 0 1 0 1 Longueur du mot 5 6 7 8 5

Tlinformatique et Rseaux de Communication

Mr. Abdessadek Tikniouine

Le bit 2 (Bit darrt) 0 1 1 seul bit darrt 2 bits darrt

Le bit 3 (validation de la parit) 0 1 aucun bit de parit 1 bit de parit existe

Le bit 4 (slectionne la parit) 1 0 parit paire parit impaire (le bit 4 est ignor tant que le bit 3 = 0)

Le bit 5 (Valeur de la parit) bit3 1 1 bit4 1 0 bit5 1 0 Valeur de parit = 0 parit paire Valeur de parit = 1 parit impaire

Le bit 6 (Signal Break) 0 1 Force la socit srie pas de sortie srie

Le bit 7 bits daccs la bascule (deux registres) de division DLAB (Division Latch access Bit) 1 0 Une opration de L/E provoque un accs au diviseur de vitesse de transfert, Une opration L/E provoque laccs aux tampon de rception ou bien aux registres de validation dinterruption. dmission ou

Les Bascules de Division de la Vitesse de Transfert (gnrateur de vitesse)

Correspondent deux registres qui sont: - Bascule de division, octet de poids faible dadresse 3F8 (pour Com1) et 2F8 (pour Com2) (DLL: Division Latch less Significant Bit) - Bascule de division, octet de poids fort dadresse 3F9 (pour Com1) et 2F9 (pour Com2) (DLM: Division Latch Most Significant Bit) On peut accder ces deux registres si le DLAB = 1

Tlinformatique et Rseaux de Communication

Mr. Abdessadek Tikniouine

Remarque: Si le DLAB = 0, on peut accder, soit au buffer de Transmission, soit au buffer de Rception 3F8 (pour Com 1) et 2F8 (pour Com 2) La valeur de vitesse de transfert est tablie en introduisant dans les deux registres le nombre par lequel la frquence de lhorloge dentre (1,8432 MKZ) doit tre divise, la frquence rsultante vaut 16 fois la vitesse de transfert.

Vitesse 300 1200 2400 4800 9600

Dcimal 384 96 48 24 12

Hex 180 60 30 18 0C

DLM 1 0 0 0 0

DLL 80 60 30 18 0C

Figure 27. Diviseurs de la vitesse de transfert pour diffrentes vitesses courantes

Registre de contrle du modem 3FC (pour Com1) et 3FC (pour Com2)

(Modem Control Register), ce registre commande les signaux de contrle mis par lERAU, il contrle linterface avec un modem ou un autre priphrique (ex: imprimante) bit 0 1 2 3 4 5-7 Abrviation DTR RQS out 1 out 2 Loop zro Nom (si le bit est mis 1) Poste de donne prt Demande dmission Sortie utilisateur 1 Sortie utilisateur 2 Boucle du mode test

Si le bit 0 = 1, la ligne DTR est positionne, lappareil loign est autoris mettre, Si le bit 0 = 0, la ligne DIR nest pas positionne, lERAU demande lappareil loign de ne pas mettre. Le bit 1 fonctionne de la mme faon que le bit 0, Si il est mis 1 la ligne RQS est positionne, Si il est mis gal 0 la ligne RQS nest pas positionne. Les bit 2 et 3 contrlent les sorties auxiliaires dgnres par lutilisateur OUT 1 et OUT 2. Les bits 4 valide le mode test par diagnostic Les 5 7 sont toujours zro. 7

Tlinformatique et Rseaux de Communication

Mr. Abdessadek Tikniouine

2.2.2. Les Registres dEtat Il y a 3 registres dtat qui rendent compte lU.C. de ce qui se passe dans diffrentes partie du lERAU. Registre dtat de la ligne 3FD (pour Com1) et 2FD (pour Com2)

Ce registre sert fournir des informations sur lmission et la rception des donnes. bits Abrviation Nom Signification (si le bit est mis 1) Un caractre a t reu et plac dans le registre tampon de rception (il est toujours 1 tant que le caractre na pas t lu. Un caractre a t lu avant que le prcdent le soit, crasement dun caractre par un autre. le bit de parit reu est incorrect. Un caractre reu ne contient pas de bit darrt. un signal dinterruption a t reu LERAU est prt accepter un nouveau caractre.

DR(data Ready)

donne prte

1 2 3 4

OE(overrum error) PE (Erreur de parit) FE (Frame Error) BI (Signal de Break) Registre de saisie de lmetteur vide THRE (Transmettre Holding Register Empty)

erreur de cadence erreur de parit erreur de trame

TSRE(Transmitter shift register Empty)

Registre de dcalage de lmetteur vide, il attend un caractre en provenance du registre de saisie de lmetteur Ce bit ne peut tre que lu. le registre de dcalage sert la procdure de conversion parallle /srie

toujours Zro

Registre dtat du Modem 3FE (pour Com1) et 2FE (pour Com2)

(Modem Status register), ce registre donne des informations sur ltat des lignes de contrle de flux.

Tlinformatique et Rseaux de Communication

Mr. Abdessadek Tikniouine

bits 0 1 2 3 4 5 6 7 Delta CTS

Nom

Signification (si le bit est mis 1)

La ligne prt mettre a chang La ligne poste de donnes prtes Delta DSR changer Front arrire de lindicateur dappel: TERI(Trailing Edge Ring lindicateur dappel a chang du haut Indicator) vers le bas Delta RLSD (Receive line signal La dtection du signal de la ligne de Detect) rception a chang Lentre prt mettre est ltat Haut CTS (OK) Lentre poste de donnes prt est ltat DSR haut (OK) RI Lindicateur dappel est ltat haut La dtection du signal de la ligne de RSLD rception est ltat haut

Les bit 0, 1 et 3 sont des bits delta, ils indiquent quun changement cest produit depuis la dernire lecture du registre, ces bits sont mis 1 lorsque la tension des lignes individuelles change, ils indiquent si elles sont ltat haut ou ltat bas. Les bits 4 7 donne ltat rel des lignes correspondantes, ils indiquent si ils sont ltat haut ou ltat bas Si le bit correspondant est mis 1, cela signifie que la ligne est dans ltat haut; la communication et alors autorise Si le bit correspondant est mis 0, cela signifie que la ligne est dans ltat bas, ce qui interdit la communication

2.2.3. Les Registres tampons Il y a deux sortes: tampon dmission et tampon de rception Le Registre tampon dmission 3F8 (pour Com1) et 2F8 (pour Com2), cest le registre de

saisie de lmetteur ou buffer dmission (Transmitter Holding Register), recueille le nouveau caractre mettre, le registre dtat de la ligne indique linstant o le caractre est mis. Le Registre tampon de rception 3F8 (pour Com1) et 2F8 (pour Com2), cest le registre de rception ou buffer de rception (Receive Buffer Register), il extrait le dernier caractre reu. Une fois lu, le registre dtat de la ligne indique que le tampon de rception est vide.

Tlinformatique et Rseaux de Communication

Mr. Abdessadek Tikniouine

2.3. La Programmation de lERAU 2.3.1. Les Routines DOS et BIOS

Se sont des fonctions (des micro programmes) livrs avec le systme dexploitation de la machine.
Il y a ceux qui sont dans la ROM, ce sont ceux du BIOS et ceux qui sont chargs en mmoire lors de linitialisation du systme, ce sont ceux du DOS. En communication srie, on peut avoir recours deux fonctions DOS et quatre fonctions BIOS. Elles sont appeles par lintermdiaire dinterruption. Une interruption est dclenche par linstruction int86 2.3.2. Les 2 Fonctions DOS Ces deux fonctions sont appeles en excutant linterruption numro 21H. La 1re fonction DOS de communication sert aux entres srie elle est ralise en mettant le registre AH 3 (numro de la fonction) et en excute linterruption numro 21H: - AH = 3 - appel de linterruption 21H Le Dos attend de recevoir un caractre du port Com1 ou Com2 et le retourne dans AL (contient le caractre reue) La 2me fonction concerne les sorties sries. On met dans AH 4 (numro de la fonction), le caractre mettre dans DL et en excute linterruption numro 21H - AH = 4 - DL = Caractre mettre - appel de linterruption 21H Remarque : Pas de moyens dinitialiser les paramtres de communication.

2.3.3. Les Fonctions Bios Les quatre fonctions Bios sont appeles par lintermdiaire de linterruption numro 14 H. Le registre AH contient toujours le numro de la fonction (0 3), le registre DX contient le numro du port, zro pour Com1 et 1 pour Com 2 - DX= n du port (0 ou 1) - AH = n de la fonction La fonction n: 0 Sert initialiser les paramtres de communication. On y accde on mettant:

10

Tlinformatique et Rseaux de Communication

Mr. Abdessadek Tikniouine

- DX = n du port - AH = 0 - AL = loctet reprsentant les paramtres de communication - appel de linterruption 14 H

* Les bits 0 et 1 de loctet dfinissent la longueur du caractre 1 18 bit de donnes (longueur du caractre) 1 07 Le bit 0 est toujours 1

* Le bit 2 indique le nombre de bit darrt 0 1 1 bit darrt 2 bit darrt

* Les bits 3 et 4 indique la parit 0 1 0 1 0 0 1 1 Aucune impair aucune (parit pas pris en compte) pair

* Les bits 5 7 indiquent la vitesse de transmission bit 7 0 0 0 0 1 1 1 1 Exemple: On veut initialiser les paramtres de communication avec les valeurs suivantes : Vitesse de transmission gale 1200 bits/s, 8 de donnes, 1 bit darrt et pas de parit bit 6 0 0 1 1 0 0 1 1 bit 5 0 1 0 1 0 1 0 1 Vitesse 110 150 300 600 1200 2400 4800 9600

11

Tlinformatique et Rseaux de Communication

Mr. Abdessadek Tikniouine

7 1

6 0

5 0

4 0

3 0

2 0

1 1

0 1

27 = 26 x 2 = 64 x 2 = 128 128 + 3= 131 dcimal ou 83h

Lorsque les paramtres sont initialises, la fonction retourne ltat courant du port dans le registre AX = 131 La Fonction n: 1 La fonction n: 1 sert lmission des caractres, On lappelle en mettant: - AH = 1 - DX = numro du port (0 pour Com1 et 1 pour Com 2) - AL = Caractre envoyer - appel de linterruption 14 H Remarque: La mise en oeuvre consiste excuter la fonction saisie de ltat du port (n 3) puis la fonction dmission, une fois que lon sait que les conditions sont favorables. (les lignes de contrle de flux DSR et DTR sont positionnes). En retour le registre AH rend compte de toute condition derreur, si le bit 7= 0, lmission a russi; sil est 1, les bits restants indique le type derreur bit 7 de AH 0 1 lmission est bonne erreur

La Fonction n:2 Fonction de rception de caractres. Elle est appele en mettant : - AH = 2 (n de la fonction) - DX = n du Port - puis en excute linterruption 14 H Le Bios attend un caractre en provenance du Port srie soit reu ou bien quun dpassement de temps soit atteint, lorsquun caractre est reu, il est plac dans le registre AL. Le registre AH = contient toutes les conditions derreurs. Si AH = 0 (tout les bits sont mis zro), il ny a pas derreur Si AH # de zro alors les bits 0 7 bits indiquent le type derreur.

La Fonction n: 3 Elle sert la saisie de ltat du port (Get port status) 12

Tlinformatique et Rseaux de Communication

Mr. Abdessadek Tikniouine

On y accde en mettant : - AH = 3 - DX = n du port - appel de linterruption 14 H AX contient ltat du port. Bits du registre AH 7 6 5 4 3 2 1 0 Signification si le bit est mis 1 Erreur de dpassement de temps Registre dcollage de lmetteur vide Registre de saisie de lmetteur vide Break dtecte Erreur de trame Erreur de parit Erreur de cadence Donnes prtes

Bit du registre AL 7 6 5 4 3 2 1 0

Signification si le bit est mis 1 Dtection signal de la ligne de rception Indicateur dappel positionn Poste de donnes prt Prt mettre Signal de la ligne de rception dtect Front arrire de lindicateur dappel Poste de donnes prt delta Prt mettre delta

Note : Delta signifie que le signal concern a chang depuis la dernire fois que ltat du port a t lu. Par exemple, le bit 1 du registre AL indique si ltat du signal DSR (poste de donne prt) a chang ou non depuis la dernire lecture du port.

2.3.4. Les avantages des routines DOS et BIOS Il y a trois avantages essentiels: conomiser leffort de programmation et lespace dans le fichier programme assurer une meilleure compatibilit avec dautre machine utilisant le DOS et le BIOS

13

Tlinformatique et Rseaux de Communication

Mr. Abdessadek Tikniouine

dans le futur, si il y a des machines PC. avec une nouvelle architecture, les routines DOS et BIOS seront les mmes.

Remarque : Dans le cas de la communication srie, la quantit de fonctions ralisables par les routines DOS et BIOS est limite.

2.4. La Manipulation au niveau bit En communication srie, en utilisant les routines DOS ou BIOS ou en programmation directe de lERAU. On doit frquemment accder certains bits des diffrents registres de ladaptateur de communication, soit pour lire, soit pour crire. Pour cela, il faut se familiariser avec le tableau suivant : Bits dun octet 0 1 2 3 4 5 6 7 Valeurs 1 2 4 8 16 32 64 128

2.4.1. Test dun bit Loprateur & du C, sert raliser loprateur ET logique avec cet oprateur (&) on peut dterminer la valeur de chaque bit dun octet. Pour dterminer si un bit et mis 1, en emploi loprateur & avec la valeur du bit. Exemple : Soit une variable not etat (octet AH par exemple) qui reprsente ltat du port de communication, on veut savoir si le bit 4 de cette variable est mis 1 If (etat & 16) ou If ((etat & 0x 10)) == 0 {.. } Si etat = 40 etat 00101000

configuration 00010000 ET logique 00000000

On obtient zro comme rsultat, ce qui indique que le bit 4 nest pas mis un 14

Tlinformatique et Rseaux de Communication

Mr. Abdessadek Tikniouine

Si etat = 52 etat configuration ET logique 00110100 00010000 00010000

Le rsultat est non nul, donc le bit 4 est mis 1. Comment on peut tester deux bits ?

2.4.2. Mise un dun bit Loprateur (barre Verticale) du C effectue le OU logique, pour mettre un bit 1, on utilise loprateur (barre verticale) avec la valeur de ce bit. On crit: parcom= 8 Cela mis le bit 3 1 et affecte la nouvelle valeur la variable parcom. Exemple : Si parcom vaut 37, le calcul donne parcom valeur du bit 3 OU logique 00100101 00001000 00101101

Comment mettre deux bits 1.

2.4.3. Mise Zro dun bit Loprateur le tilde (~) en C correspond loprateur complment un. Il met zro tous les bits un, et met 1 tous les bits zro. Pour mettre un bit zro, on applique le ET logique entre loctet de dpart et le complment un de la valeur des bits quil faut mettre zro. Exemple: Pour mettre zro le bit 5 de loctet param, on crit: param & = ~ 32 Si param vaut 106 en dcimal, on aura: 32 ~32 000100000 (valeur du bit 5) 111011111 (complment un de 32)

Ensuite, on applique ET logique au complment un de 32 et param param ~32 ET 001101010 111011111 001001010

Le bit 5 est maintenant mis zro 15

Tlinformatique et Rseaux de Communication

Mr. Abdessadek Tikniouine

2.5. Lecture/Ecriture dans un port de communication de lERAU Pour lire partir dun port de communication, on peut crire : Carparam = int inp(port); Lit un octet partir du port de communication et le met dans la variable Carparam int outp (portcom, valeur); Envoie la valeur au port de communication

Exemple: - Le registre dtat de la ligne pour Com1 ce trouve ladresse 3FDH Pour lire ce registre dtat de la ligne, on crit : Unsignad Adport = 0x 3FD int tat; tat = inp(adport); rcupre les paramtres de com1 dans la variable tat

- Le registre de contrle du modem Com2 se trouve ladresse 2 FCH Pour lui envoyer loctet octmod Unsigned adport = 0x2FCH outp (adport, octmod);

Exercice: Ecrire un programme dmission et de rception de caractres

/********************************************************************** * Fonction : Initialisation de la liaison srie (RS232) * Arguments : void ************************************************************************/ /*---------------------------------------------------------------------------vitesse de communication: 9600 baud parit: none (pas de parit) nombre de stop bit: 1 longueur du mot de donnes: 8 bits ------------------------------------------------------------------------------*/ void initpar() { union REGS inregs,outregs; inregs.x.dx = 0; 16

Tlinformatique et Rseaux de Communication

Mr. Abdessadek Tikniouine

inregs.h.ah = 0; inregs.h.al = 0xE3; int86(0x14,&inregs,&outregs); return; }

17