SORTIE SUR LE PORT ASYNCHRONE RS232 -

ENTREES SORTIES EN C

L'adaptateur de communication asynchrone, que nous appelons par la suite "port série" est entièrement programmable et peut être utilisé selon les spécifications de la norme RS232.

Une communication série est faite selon certains paramètres qui sont:

- la vitesse d'échange (en bauds) de 50 à 115200;

- le nombre de bits de données;

- la présence d'un bit de parité ou non;

- la présence d'un bit de stop ou non.

Le brochage généralement utilisé est :

DB9 DB25

DTR 4 20

DCD 1 8

Tx 3 2

Rx 2 3

Masse 5 7

DSR 6 6

RTS 7 4

CTS 8 5

RI 9 22

Vous pouvez y connecter une imprimante de type "courrier", un IBM ou un modem. C'est dans ce dernier cas que l'utilisation est intéressante. Si la première version du BIOS concernant le port série était "buggée", il n'en est rien actuellement.

Pour rediriger les sorties du port parallèle vers le port série, il faut utiliser la commande MODE de la façon suivante:

Positionner les caractéristiques de communications (exemple pour une imprimante laser).

MODE COM1:9600,N,8,1

Faire la redirection de l'imprimante

MODE LPT1:=COM1

Pour faire communiquer 2 I.B.M. ou compatibles, vous devez relier leurs ports séries de la façon suivante:

2 --------------------------- 3

3 --------------------------- 2

4+5 ------------------------ 8

6 --------------------------- 20

7 --------------------------- 7

8 --------------------------- 4+5

20 -------------------------- 6

Si vous voulez prendre le contrôle de votre ordinateur à partir d’une console branchée sur le port série, faites :

CTTY com1

Le circuit principal est un 8250 ou un équivalent qui gère les différents signaux reçus ou envoyés. Des adresses mémoires sont réservées aux ports séries. Elles sont ;

Ces adresses correspondent aux fonctions suivantes.

3F8 Buffer Tx si DLAB = 0 Write

3F8 Buffer Rx si DLAB = 0 Read

3F8 Latch diviseur LSB si DLAB = 1

3F9 Latch diviseur MSB si DLAB = 1

3FA Registre d’identification d’interruptions (priorités)

3FB Registre de contrôle de ligne (lcr)

(le bit 7 permet de sélectionner certains registres)

3FC Registre de contrôle du modem (mcr)

3FD Registre état de la ligne (lsr)

3FE Registre état du modem (msr)

Les données transmises ou reçues le sont dans l’ordre bit 0 vers bit 7.

REGISTRES DE LIGNE

3FB Registre de contrôle de ligne (lcr)

Ce registre précise les caractéristiques de la communication :

BIT 7 6 5 4 3 2 1 0

D I P P P S L L

ex. : 0 0 1 1 0 1 0

bits 0 et 1 Longueur des données :

00 à 0 à 5bits

01 à 1 à 6 bits

10 à 2 à 7bits

11 à 3 à 8 bits

bit 2 Nombre de bits de stop :

Bit 2 = 0 à 1bit de stop

Bit 2 = 1 à Variable suivant la longueur

des données

Pour 5 bits de données à 1 bit ½ de stop

Pour 6, 7 ou 8 bits à 2 bits de stop

bit 3 Enclenchement de la parité :

Bit 3 = 1 à 1 bit de parité est généré entre les

bits de données et les bits de stop

bit 4 Parité impaire s’il est à 0 : avec bit 5 =0 :

Parité paire si ce bit est à 1

bit 5 Valeur de la parité

Bit 3 Bit 4 Bit 5

1 1 1 valeur de parité : 0

1 0 1 valeur de parité : 1

Bit 6 Break

0 force la sortie série

1 permet au processeur d’accéder au terminal

Bit 7 D.L.A.B

0 accède au buffer de réception et aux registres

1 accède au diviseur (vitesse)

3F8-3F9 Générateur de vitesses

On peut y accéder si D.L.A.B = 1 (voir ci - avant) :

Vitesse Valeurs (Hexa)

50 09 00

75 06 00

l10 04 17

134,5 03 59

150 03 00

300 01 80

600 00 C0

1200 00 60 ‘ MINITEL

1800 00 40

2000 00 3A

2400 00 30

3600 00 20

4800 00 18

7200 00 10

9600 00 0C

14400 00 08

19200 00 06

38400 00 03

57600 00 02

115200 00 01

3FD Registre d’état de la ligne (lsr)

Ce registre permet de donner des informations sur le transfert

des données,

Bit 0 DR (Data Ready)

Si ce bit est à 1 alors une donnée reçue est prête.

Remis à 0 par lecture des données ou forçage.

Bit 1 OE (Over run Error)

Un écrasement de données a eu lieu car la lecture n’a

pas été faite à temps.

Bit 2 PE (Parity Error)

Mauvaise parité à la réception.

Bit 3 FE (Framing Error)

Erreur avec les bits de stop.

Bit 4 BI (Break Interrupt)

Erreur de transmission.

Bit 5 THRE (Transmitter Holding Register Empty)

Le 8250 est prêt à accepter un nouveau caractère.

Bit 6 TSRE (Transmitter Shift Register Empty)

Ce bit ne peut être que lu.

Bit 7 Toujours à 0.

INTERRUPTIONS

3FA Registre d’identification d’interruption (IIR)

Le 8250 dispose de possibilités d’interruptions selon quatre niveaux.

Réception du Status de ligne :

  • écrasement ;
  • erreur de parité ;
  • erreur avec les bits de stop ;
  • break.

<2> réception de données : donnée prête.

<3> prêt à émettre : registre vide.

<4> status du modem :

  • CTS
  • DSR
  • RI (sonnerie)
  • RLSD

Bit 0 aucune interruption si ce bit est à 1

Bit 1 et Bit 2 identifient le niveau de priorité

(voir ci-dessus).

Bit 3 à Bit 7 toujours à 0.

3F9 Registre d’enclenchement d’interruptions

Ce registre active les quatre types d’interruption.

Pour éviter toute interruption il suffit de mettre tous les bits à 0

Bit 0 Interruption Donnée prête.

Bit 1 interruption Registre de transmission vide. .

Bit 2 Interruption Status de ligne

Bit 3 Interruption Status du modem.

Bit 4 à 7 Toujours à 0.

REGISTRES DE MODEM (MCR)

3FC Registre de contrôle du modem

Ce registre contrôle l’interfaçage avec un modem ou tout périphérique équivalent.

Bit 0 DTR (Data Terminal Ready)

Terminal prêt

Bit 1 RTS (Request To Send)

Demande à émettre

Bit 2 OUT1

Bit 3 OUT2

Bit 4 LOOP

Ce bit permet un bouclage de test du 8250 (mode diagnostic).

Bit 5 à 7 Toujours à 0.

3FE Registre de status du modem

Ce registre donne l’état du modem ou du périphérique.

Bit 0 DCTS .

Permet de savoir que l’état CTS a changé depuis la dernière lecture,

Bit 1 DDSR

Permet de savoir que l’état DSR a changé depuis la dernière lecture.

Bit 2 TERI

La sonnerie a changé d’état depuis la dernière lecture

Bit 3 DRLSD

Indique que RLSD a changé d’état depuis la dernière lecture.

Bit 4 CTS

Ce bit est le complément de CTS. Si le bit 4 de mcr est mis à 1 ceci est équivalent à RTS dans mcr.

Bit 5 DSR

Ce bit est le complément de DSR. Si le bit 4 de mcr est mis à 1 ceci est équivalent à DTR dans mcr.

Bit 6 RI

Ce bit est le complément de RI. Si le bit 4 de mcr est mis à 1 ceci est équivalent à OUT1 dans mcr,

Bit 7 RLSD

Ce bit est le complément de RLSD. Si le bit 4 de mcr est

mis à 1 ceci est équivalent à OUT2 dans mcr.

FONCTIONS ET MACROS

DU LANGAGE C

Les compilateurs C peuvent fournir des fonctions de lecture et d’écriture sui les ports, Normalement ces fonctions sont réduites au strict minimum. Il vous appartient de gérer la communication autrement dit le plus gros du travail !

 

Retour

Retour à la Page d'accueil

24 août, 2009

matthieu.benoit@free.fr