You are on page 1of 15

0

Objectif :
Le but de cette manipulation est de raliser une connexion entre deux ordinateurs en utilisant une surface srie sous Delphi.

Recherches bibliographiques :
I. La liaison serie
1. Prsentation
Communiquer, c'est changer des informations. Tout reprsentant du rgne animal communique avec ses congnres. Il arrive mme certains vgtaux de communiquer. Les animaux changent un nombre relativement rduit d'informations. Ils ont particulirement dvelopp un des cinq sens pour atteindre des performances qui nous laissent interrogatifs. Un papillon de nuit utilise la communication olfactive, il est capable de percevoir sa femelle plus d'un kilomtre. Les manchots se reconnaissent l'oreille. La luciole communique par un code visuel. chaque fois, on peut mettre en vidence trois parties dans l'change : L'information elle-mme Son support Le code employ pour la transmettre Exemple : Le manchot arrivant de sa pche semble dire "je suis de retour", le poussin "je suis ici". C'est une information de reconnaissance. Le support est le son Le code est constitu par des sons de frquences particulires. Pour augmenter les possibilits de codage, le manchot met deux sons simultanment.

2. bref historique
La transmission de l'information s'est longtemps faite par l'intermdiaire d'un messager, cela prenait du temps et tait risqu. Les applications de l'lectricit ont permis la transmission de l'information sur de longues distances, instantanment et de manire sre. Le problme, au dbut, tait de transmettre un texte sur une ligne conductrice (ou sur une liaison Hertzienne) qui ne connat que deux tats, prsence ou absence de tension. Il a fallu inventer des systmes de codage de l'information qui tiennent compte des possibilits techniques de l'poque.

3. Le code Baudot
mile Baudot a invent le tlimprimeur, que l'on appelle maintenant Telex. On peut voir cet appareil comme une machine crire spciale : l'action sur une touche ralise une traduction de la lettre vers une forme lectrique, selon le code Baudot. Le rcepteur ralise l'opration inverse et imprime le texte. Cette fois le code n'utilise que deux symboles, la prsence ou l'absence de tension. 0

Chaque caractre est cod par un ensemble de cinq symboles, c'est dire que le code Baudot ne permet de transmettre que 32 caractres diffrents. Grce une astuce analogue la touche "majuscule" on pouvait transmettre les 26 lettres de l'alphabet, les chiffres et quelques signes techniques. un problme important se pose : comment faire la distinction entre deux symboles contigus identiques ? Le temps joue un rle important dans ce code. tant donn que la dure de chaque symbole, prsence ou absence, est identique, la distinction se fait en lisant les symboles au rythme d'une horloge.

Autre problme important : en absence de transmission la ligne est au niveau bas. Que se passe-t-il si le premier moment du caractre est un niveau bas, comment le distinguer du niveau bas du repos ?

4. principe de la liaison srie


Le principe de la liaison srie existe depuis l'invention d'mile Baudot, il s'agissait de l'adapter aux besoins des ordinateurs. Le problme principal est de transmettre les caractres, sur de grandes distances et sur une ligne conductrice ne comprenant que deux fils. Cette ligne t remplace par la suite par le tlphone. Pas question, ici, d'employer la vingtaine de fils de la liaison Centronic. Le principe d'E.Baudot t conserv : les chiffres binaires du code ASCII des caractres circulent les uns derrire les autres sur la ligne bifilaire du tlphone. Deux problmes se sont poss : - La ligne tlphonique est incapable de transporter correctement des donnes de type logique, la forme rectangulaire du signal est altre par son passage dans le tlphone. Il faut inventer une adaptation entre la ligne tlphonique et l'ordinateur : le modem. - L encore il faut utiliser un protocole. Les bits sont transmis les un aprs les autres, en commenant par le bit de poids faible b0. Le premier bit est preced d'un bit start (niveau 0). Aprs le dernier bit, on peut transmetre un bit de parit puis un ou deux bits stop (niveau 1). En l'abscence de transmission, le niveau de la liaison est 1 (niveau de repos).

Transmission d'un octet b7b6b5b4b3b2b1b0 en srie. Chaque bit a une dure de , qui fixe le dbit transmission. Le nombre de changements de niveaux par seconde est appele rapidite de modulation (RM), et s'exprime en Bauds (du nom de Baudot, l'inventeur du code TELEX). On a :

Le rcepteur dtecte l'arrive d'un octet par le changement de niveau correspondant au bit start. Il chantillonne ensuite chaque intervalle de temps au rythme de son horloge. Comme les dbits binaires de transmission srie de ce type sont faibles (< 19600 bits/s) et que les horloges de l'metteur et du rcepteurs sont suffisament stables (horloges quartz), il n'est pas ncessaire de les synchroniser. C'est la raison pour laquelle ce type de transmission srie est qualifi d'asynchrone. Lorsque les dbits sont plus importants, la drive des horloges entrainerait des erreurs, et on doit mettre en oeuvre une transmission synchrone.

5. La liaison srie asynchrone


La liaison est dite asynchrone car les caractres peuvent tre prsents des instants quelconques sur la ligne. Bien sr une fois la transmission d'un caractre commence, elle se fait au rythme d'une horloge comme prsent ci-dessus. La liaison tant asynchrone il faut un moyen pour annoncer le dbut de la transmission d'un caractre. Nous commenons tudier le protocole de transmission. Le principe de la transmission de Baudot nous montre qu'il faut crire et lire les chiffres binaires au rythme d'une horloge. Or, ici, il n'y a pas de transmission de l'horloge de l'metteur vers le rcepteur. Le rcepteur et l'metteur possdent chacun une horloge, elles doivent tre synchronises au dbut de la transmission d'un caractre : encore une raison de marquer le dbut de la transmission.

6. Architecture simplifie des composants d'une liaison srie


Le microprocesseur transmet les octets au priphrique srie qui le dcharge d'un certain nombre de tches,enparticulier de la dcomposition de l'octet en ses lments, les chiffres binaires. C'est la transformation parallle-srie. Dans l'autre sens, le priphrique ralise la transformation srie-parallle.

Le priphrique traite le protocole c'est dire qu'il se charge d'inclure le bit de start et le bit de stop ainsi que le bit de parit si ncessaire.

7. La norme RS 232
La norme RS232 (appele aussi "CCITT V24" ou "V24") prcise ltat des niveaux : de -15V -3V pour le niveau "A" et de +3V +15V pour le niveau "B". "A" et "B" peuvent tre "0" et "1" ou bien "1" et "0" selon qu'on travaille en logique positive ou ngative. connecteur et broches : Pour la liaison RS232 le connecteur utilis doit tre DB9 ou DB25.

DB9

DB25

Sur le connecteur DB9, le brochage doit tre fait ainsi :


1 DCD : Dtection de porteuse 4 DTR : Terminal de donnes Entre prt. Sortie 2 RD : Rception de donnes 5 SG : Masse du signal Entre 3 TD : Emission de donnes 6 DSR : Donnes prtes Entre Sortie 7 RTS : Requte d'mission Sortie 8 CTS : Prt pour l'mission Entre 9 RI : Indicateur de sonnerie Entre

Protocole Au minimum, 3 fils sont ncessaires pour une liaison RS232 : SG(la masse), RD et TD. Cela suffit pour une liaison asynchrone mais peut poser problme si l'appareil connect a besoin de signaux de contrle (DTR ou CTS) pour fonctionner. On appelle cette liaison "asynchrone" parce qu'il n'y a pas d'horloge commune aux quipements qui communiquent entre eux. Ils peuvent mettre leurs messages (trames) n'importe quand pourvu que la ligne soit libre. Le rcepteur se synchronise alors sur le dbut du message. L'metteur et le rcepteur doivent cependant avoir la mme frquence d'horloge. Les bits sont "lus" la moiti de leur dure. Le protocole RS232 est ncessaire pour que deux lments qui communiquent se "comprennent". Il faut donc respecter les critres suivants : Longueur des mots : 7 bits (ex : caractre ascii) ou 8 bits Vitesse de transmission : elle se compte en bauds (bits par seconde). On peut choisir 1200baud, 2400baud, 4800baud, 9600baud, 19200baud...

Trame RS232 vue l'oscilloscope (dure 8ms, vitesse de transmission 9600 baud) Bit de start : au repos, la ligne est l'tat logique "1". Pour indiquer qu'un mot va tre transmis, la ligne passe "0" avant de commencer le transfert. Le rcepteur peut ainsi synchroniser son horloge sur ce front. La lecture des bits suivants a lieu la moiti de la dure des bits. Bit de stop : aprs la transmission, la ligne RS232 est positionne au repos pendant 1, 2 ou 1,5 priodes d'horloge selon le nombre de bits de stop. Parit : le mot transmis peut tre suivi ou non d'un bit de parit qui sert dtecter les erreurs ventuelles de transmission. 2 types de parit existent. Ni le bit de start ni le bit de stop ne sont pris en compte dans le calcul de la parit. - parit paire : le bit de parit vaut "1" si le nombre de "1" de la donne est impair. Le nombre total de "1" sur l'ensemble {donne + bit de parit} est alors pair.
4

Soit la donne "01001001" contenant trois bits "1". Trois tant un nombre impair, le bit de parit vaut "1". Le nombre total de "1" vaut donc 4, on parle de parit paire. - parit impaire : le bit de parit vaut "0" si le nombre de "1" de la donne est pair. Le nombre total de "1" sur l'ensemble {donne + bit de parit} est alors impair. Soit la donne "01101111" contenant six bits "1". Six tant un nombre impair, le bit de parit vaut "0". Le nombre total de "1" vaut donc 7, on parle de parit impaire. Longueur maximum de cble RS232
Dbit (bps) 19200 9600 4800 2400 Longueur (m) 15 150 300 900

8. Conversion srie-parallle et parallle serie


Le principe dune liaison srie est denvoyer les bits dun mot les uns derrire les autres Problme: les mots sont en gnral stocks dune manire parallle dans la mmoire La solution est simple, on utilise un registre dcalage: en mode parallle -srie lmission en mode srie -parallle la rception Ce registre est capable de dcaler son information binaire dans une ou lautre direction Registre dcalage Emission de 10111011 (187)

Rception de 01011011 (91)

On obtient par ce biais une liaison srie dite synchrone Il est ncessaire de transmettre une horloge, en plus des donnes, afin que les registres dcalage utiliss de chaque ct de la liaison fonctionnent la mme vitesse Sans cette horloge, il peut y avoir une mauvaise interprtation des donnes reues

9. Modes de fontionnement
Une liaison peut tre utilise selon 3 modes: Simplex HalfDuplex Full Duplex

Modes simplex Le mode simplex signifie quun bout de la liaison est uniquement metteur et lautre uniquement rcepteur.

Exemples de liaisons simplex: Tlvision Radio

mode halfduplex Le mode halfduplex permet lmission et la rception chaque bout de la liaison mais pas simultanment.

Un exemple de liaison halfduplex: Un talkie walkie mode full duplex Le mode full duplex permet lmission et la rception chaque bout de la liaison simultanment.

10.

Diffrence entre Bauds et Bits/seconde

Comme on l'a vu plus haut, le nombre de Bauds qualifie la frquence de l'horloge de transmission. Certains procds de codage de l'information peuvent transmettre plus d'un bit par priode d'horloge. il faut donc introduire une unit nouvelle qui qualifie le dbit de la transmission. Certains puristes ne retiennent que les bits de donnes pour calculer le dbit, ce qui fait que mme dans le cas simple prsent ci-dessus, le nombre de Bauds n'est pas gal au nombre de Bits par seconde. ATTENTION: 10 bauds ne valent pas forcment 10 bits/seconde Les bauds correspondent au nombre de modulations par seconde du signal Les bits/sec correspondent au nombre de bits transmis par seconde Il peut y avoir plusieurs bits cods dans une modulation Il y a plusieurs faon de moduler le signal pour reprsenter les 0 et 1 Modulation damplitude

Modulation de frquence

11.

Le contrle de flux

On appelle flux, le flot de caractres allant de l'metteur vers le rcepteur. Le contrle de flux cherche rsoudre le problme suivant : Il s'agit de transmettre un grand nombre de caractres, un texte par exemple. Il se peut que le rcepteur ait du mal traiter un si grand nombre de caractres la vitesse impose par l'metteur. Le rcepteur peut rclamer la suspension de la transmission. Il peut le faire de deux manires diffrentes : - Soit en plaant un niveau logique adquat sur une borne particulire du connecteur, on parle alors de contrle matriel. Ce qui ncessite la prsence d'un fil supplmentaire dans le cble de liaison. - Soit en envoyant en caractre particulier l'metteur c'est le contrle logiciel. La reprise de la transmission se fait soit en plaant la sortie la valeur logique de marche soit en envoyant un autre caractre conventionnel.

12.

La configuration d'un canal de transmission

Configurer la transmission consiste donner des valeurs communes aux paramtres de l'metteur et du rcepteur. On trouvera la frquence des horloges. Il faut indiquer si le caractre ASCII est cod sur 7 ou 8 bits, Le contrle de la parit est-il envisage, si oui, est-ce la parit ou l'imparit ? Souhaite-t-on qu'il y ait un contrle de flux ? Si oui veut-on un contrle matriel ou logiciel ? Exemple : 9800 bauds, 8 bits de donnes, parit paire, sans contrle de flux.

13.

Les transmissions de type srie actuelles

USB, CAN, IC sont les bus de type srie trs employs actuellement. Leur premire raison d'tre est la rduction de la quantit de cuivre utilis pour le cblage et l'augmentation de la rapidit de la transmission. Ces transmissions se font par un ensemble de trois ou quatre fils. La topologie peut tre le bus ou l'toile. La rduction du cblage est rendue possible par une augmentation de "l'intelligence" donne chaque priphrique qui est ainsi capable de dialoguer avec l'ordinateur centralisateur. L'intelligence est donne par un petit systme microprogramm implant dans le priphrique. Les protocoles mis en uvre diffrent selon le type de liaison, USB, CAN ou IC mais on peut dgager des caractres communs tant donn que tous les priphriques sont relis entre eux, il faut tre capable de les distinguer afin de s'adresser l'un dentre eux en particulier. Chaque priphrique possde une adresse Le priphrique doit recevoir ou envoyer des donnes Il doit informer son correspondant qu'il s'est bien acquitt de sa mission. Les informations changes entre l'ordinateur centralisateur et le priphrique doivent dont comporter : - un champ d'adresse - un champ de donnes - un champ d'acquittement De plus, comme dans toute transmission de type srie, le temps intervient. Les lments binaires doivent tre envoys et reus au rythme d'une horloge. Cette horloge est transmise de l'metteur au rcepteur dans les liaisons CAN et IC alors qu'elle est reconstitue par le rcepteur dans l'USB.

II.

Le composant TComPort sous Delphi

Pour pouvoir utiliser le comport il faut tout dabord installer les composants comport , Le paquet de conception va installer une nouvelle palette de composants comportant :

TComPort : composant d'accs au port srie lui-mme. TComDataPacket : Composant de gestion de trames reues. TComComboBox : Composant visuel d'aide la configuration du TComport TComRadioGroup : Composant visuel d'aide la configuration du TComport TComLed : Composant permettant de visualiser l'activit du composant ComPort associ TComTerminal : Composant de visualisation des trames de la liaison srie

Nous allons maintenant dtailler seulement l'utilisation du composant Tcomport car car celui ci on va lutiliser dans notre manipulation.

TComPort
C'est le composant principal de ce paquet. C'est lui qui va permettre de configurer et de grer le port srie. Ce composant comporte toutes les proprits de configuration de la liaison srie. Je vais prsenter les plus importantes et surtout celles que l'on modifie le plus souvent dans la pratique. Proprit Port Cette proprit dfinit le port utiliser sur le PC. Dans la liste droulante seuls les ports existant physiquement apparaissent. Notez que ComPort est bas sur les APIs Windows, donc il supporte parfaitement les drivers passerelle, style USB--RS232. Proprit BaudRate Dfinit la vitesse de la liaison srie en Bauds. Proprit DataBits Dfinit le nombre de bits de chaque caractre mis/reu sur la liaison srie. Proprit Parity Dfinit la type de bit de parit de chaque caractre. Il est possible ici de dfinir si le contrle de parit doit tre effectu en lecture, et dans le cas o il est effectu de remplacer dans la trame reue les caractres ayant un dfaut de parit par un caractre spcifique. Pour les essais, je vous conseille de ne pas activer le contrle de parit, il n'est pas indispensable au bon fonctionnement et peut facilement tre ajout par la suite si vous voulez renforcer le contrle. De toute manire, dans le cas d'envoi/rception de trames il est prfrable de grer un checksum plus volu de style CRC. Proprit StopsBits Nombre de bits de stops de chaque caractre. Proprit FlowControl Cet ensemble de proprits permet de dfinir la gestion du flux de caractres sur la liaison srie. Par exprience et dans la mesure du possible il est prfrable de ne pas utiliser le contrle de flux, car cela ne fait que compliquer le gestion et le cablge de la liaison. Il y a cependant des exceptions, comme la gestion d'un modem ou la gestion d'un convertisseur RS232-RS485 multipoints. Dans les premiers exemples donns dans ce cours, aucun contrle de flux ne sera utilis.

10

Proprit Timeouts Cet ensemble de proprits permet de dfinir les diffrents timeouts en mission et en rception. Leur utilisation dpend des applications. Proprit Events Permet de dfinir quels vnements lis l'activit de la liaison srie sont utiliss. Par dfaut ils sont tous activs, mais vous pouvez supprimer tous ceux qui ne vous sont pas utiles afin de ne pas surcharger le dialogue avec le TComport. Proprit EventChar Cette proprit permet de dfinir le caractre dclenchant OnRxChar quand il est reu. Il faut bien sur que l'vnement soit activ dans la proprit Events. Proprit Connected Cette proprit permet d'ouvrir/fermer la liaison srie et aussi d'en vrifier son tat.

Travail demand
On va faire une liaison srie entre 2 PC avec le cable DB9, et par delphi on fait un program qui permet denvoyer et recevoir des messages textes pour cela on insre dans le concepteur de forms 2 boutons et 2 Edit . un bouton appel envoyer qui va envoyer le message ecrit par loprateur dans edit1 lautre bouton appel recevoir qui va recevoir de lautre PC le message envoyer et lafficher dans edit2 en 2 me partie on va changer le program pour lui permettre de faire la reception automatique des messages textes.

1. linterface graphique du program

11

2. Le program crit dans lediteur de code


1ere partie unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, CPort; type TForm1 = class(TForm) ComPort1: TComPort; Edit1: TEdit; Button1: TButton; Edit2: TEdit; Button2: TButton; procedure ouverture(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Fermeture(Sender: TObject; var Action: TCloseAction); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; s , p :string ; implementation {$R *.dfm} procedure TForm1.ouverture(Sender: TObject); begin comport1.open; end; procedure TForm1.Button1Click(Sender: TObject); begin s:=edit1.Text; comport1.writeStr(s); end; procedure TForm1.Fermeture(Sender: TObject; var Action: TCloseAction); begin
12

comport1.Close; end; procedure TForm1.Button2Click(Sender: TObject); begin comport1.ReadStr(p,200) ; edit2.Text:=p; end;

end. 2me partie unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, CPort; type TForm1 = class(TForm) ComPort1: TComPort; Edit1: TEdit; Button1: TButton; Edit2: TEdit; Button2: TButton; procedure ouverture(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Fermeture(Sender: TObject; var Action: TCloseAction); procedure Button2Click(Sender: TObject); procedure automatique(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; s , p :string ; implementation {$R *.dfm}
13

procedure TForm1.ouverture(Sender: TObject); begin comport1.open; end; procedure TForm1.Button1Click(Sender: TObject); begin s:=edit1.Text; comport1.writeStr(s+#06); end; procedure TForm1.Fermeture(Sender: TObject; var Action: TCloseAction); begin comport1.Close; end; procedure TForm1.Button2Click(Sender: TObject); begin comport1.ReadStr(p,200) ; edit2.Text:=p; end;

procedure TForm1.automatique(Sender: TObject); begin comport1.ReadStr(p,200) ; edit2.Text:=p; end; end.

Conclusion
Ce program permet denvoyer et de recevoir des messages textes dun autre PC via le port serie le defaut du premier program cest quon ne peut voir si on a reu un message ou non quaprs clicker sur le bouton recevoir, ce defaut a te corriger en 2 me partie pour permettre la reception automatique en ajoutant la procedure automatique et en fesant ce changement : Comport1 object inspector events Rx flag : automatique.

14

You might also like