Les Secrets de l'Interface Serie PC/AT1. Pour trouver l'adresse du portRappel : On peut connaitre l'adresse des ports parallele en regardant le contenu de l'adresse systeme 000408H a 00040FH.
- 000400H a 000407H = adresses Entree- Sortie (2 octets) pour les voies
COM1, COM2, COM3, COM4, respectivement
- 000400H = adresse Entree/Sortie voie logique No0 = COM1
- 000402H = adresse Entree/Sortie voie logique No1 = COM2
- 000404H = adresse Entree/Sortie voie logique No2 = COM3
- 000406H = adresse Entree/Sortie voie logique No3 = COM4
Attention! : l'affectation du numero des voies COM1 et COM2 est realisee par le BIOS dans l'ordre des voies effectivement presentes aux adresses 03F8H, 02F8H, 02E8H. Par exemple s'il n'existe qu'une interface a l'adresse 02F8H, celle-ci est affectee a COM1.
******** POUR CONNAITRE L'ADRESSE DE VOTRE PORT SERIE : ******* Taper debug <RETURN> Taper d 0:400 <RETURN>L'ecran affiche : C:\> debug commande -d 0:400 commande 0000:0400 F8 03 00 00 00 00 00 00-78 03 00 00 00 00 00 00 0000:0410 33 02 C1 80 02 00 41 80-00 00 26 00 26 00 34 05 0000:0420 30 0B 30 0B 0D 1C 73 1F-0D 1C 64 20 65 12 62 30 0000:0430 75 16 67 22 0D 1C 64 20-20 39 30 0B 3A 34 01 00 0000:0440 8C 00 4B 01 07 35 00 B1-20 07 50 00 00 40 00 00 0000:0450 00 08 00 00 00 00 00 00-00 00 00 00 00 00 00 00 0000:0460 0C 0B 00 B4 03 29 00 03-00 00 E0 FF 17 40 16 00 0000:0470 00 00 00 00 00 02 B1 00-14 14 14 14 01 01 01 01 -q commande C:\>Les 8 premiers octets sont les adresses des ports serie :
F8 03 00 00 00 00 00 00 (ici adresse 03F8 Hexa) COM1 COM2 COM3 COM4 il n'y a qu'un port serieLes 8 octets suivants sont les adresses des ports paralleles :
78 03 00 00 00 00 00 00 LPT1 LPT2 LPT3 LPT4Dans l'exemple : l'adresse de LPT1 (premier port //) est 0378 Hexa (il faut inverser les octets deux a deux). Il n'y a pas d'autre port car les autres octets sont tous a 00.
2. GeneralitesL'interfaces serie, RS232, a un mode de programmation identique a un circuit controleur de transmission asynchrone UART de type 16450. Elle est pilotee par un oscillateur 1,8432 MHz. L'interface serie RS232 dispose d'amplificateurs de ligne emetteurs et recepteurs compatibles avec le niveau des signaux de la norme RS232C ; ces circuits assurent la conversion entre les niveaux TTL utilises par le controleur 16450 et les niveaux +/--12V de la norme RS232C.
* CONFIGURATION EN STANDARD ---------------------------------------------------------------- | | INTERFACE SERIE RS232 | | Adresse E/S -------------------------------------------- | COMx COMy |DLAB|Designation du registre |Mode L/E| ---------------------------------------------------------------- | 03F8H | 02F8H | 0 |Tampon reception | L | | 03F8H | 02F8H | 0 |Tampon emission | E | | 03F8H | 02F8H | 1 |Horloge emiss./recept. (LSB)| L/E | | 03F9H | 02F9H | 0 |Validation interruptions | L/E | | 03F9H | 02F9H | 1 |Horloge emiss./recept. (MSB)| L/E | | 03FAH | 02FAH | x |Identification interruptions| L | | 03FBH | 02FBH | x |Commande ligne | L/E | | 03FCH | 02FCH | x |Commande modem | L/E | | 03FDH | 02FDH | x |Etat ligne | L/E | | 03FEH | 02FEH | x |Etat modem | L/E | ----------------------------------------------------------------Le bit b7 (DLAB), du registre commande de ligne, sert a differencier les registres situes a une meme adresse. 3. Description des registres
Registre tampon reception (lecture) et emission (ecriture) :Ces registres 8 bits sont utilises pour emettre ou recevoir les donnees a transmettre.
----------------------------------------- | REGISTRE TAMPON RECEPTION OU EMISSION | ----------------------------------------- | b7 | b6 | b5 | b4 | b3 | b2 | b1 | b0 | ----------------------------------------- | | | | | | | | | ----------------------------------------- Registre horloge emission/reception (lecture/ecriture) :Ce registre 16 bits contient le rapport N de division de l'horloge de reference 1,8432 MHz (N de 1 a 65535). Il permet de programmer la vitesse de l'horloge utilisee pour l'emission et la reception des donnees ; cette horloge a une vitesse 16 fois superieure a la vitesse reelle de transmission . Ce registre est charge en deux parties a des adresses distinctes : poids forts (MSB) et poids faibles (LSB).
-------------------------------------------------------------------- | REGISTRE HORLOGE EMISSION |Vitesse |Diviseur| --------------------------------------------------desiree | pour | | MSB || LSB |en bauds| CLK*16 | -------------------------------------------------------------------- |b7|b6|b5|b4|b3|b2|b1|b0||b7|b6|b5|b4|b3|b2|b1|b0| 75 | 1538 | -------------------------------------------------- 1200 | 96 | | | | | | | | | || | | | | | | | | 9600 | 12 | -------------------------------------------------------------------- Registre validation interruption (lecture/ecriture) :Ce registre 8 bits permet de valider quatre sources d'interruption independantes. Les interuptions sont validees par un etat 1 et inhibees sinon.
------------------------------------------------- | REGISTRE VALIDATION INTERRUPTION | ------------------------------------------------- | b7 | b6 | b5 | b4 | b3 | b2 | b1 | b0 | ------------------------------------------------- | 0 | 0 | 0 | 0 | EMSI| ELSI|ETBEI|ERDAI| ------------------------------------------------- Registre identification interruption (lecture) :Ce registre contient l'etat des interruptions. Il indique le numero de l'interruption la plus prioritaire en attente.
-----------------------------------------
| REGISTRE IDENTIFICATION INTERRUPTION |
-----------------------------------------
| b7 | b6 | b5 | b4 | b3 | b2 | b1 | b0 |
-----------------------------------------
| 0 | 0 | 0 | 0 | 0 | ID1| ID0| IR |
-----------------------------------------
-------|-- --|--
---------------------------------------------| |
|Niveau | Origine de |Contenu | |
| de | l'interruption | du | |
|priorite| en attente |registre| |
---------------------------------------------- |
| Max. |etat ligne | 06H | |
| | |tampon reception plein | 04H | |
| | |tampon emission vide | 02H | |
| Min. |etat modem | 00H | |
---------------------------------------------- |
| x |aucune interruption | 01H -------
----------------------------------------------
Registre commande ligne (lecture/ecriture) :Ce registre 8 bits definit la trame des donnees transmises :
-- ------------- ----------------- -------------- ------------- --
X DEBUT X CARACTERE X PARITE X ARRET X
-- ------------- ----------------- -------------- ------------- --
1 bit start 5 a 8 bits 1 bit 1 ou 1,5 bit stop
-----------------------------------------
| REGISTRE COMMANDE LIGNE |
-----------------------------------------
| b7 | b6 | b5 | b4 | b3 | b2 | b1 | b0 |
-----------------------------------------
|DLAB| SBC| SPY| EPS| PEN| STB|WLS1|WLS0|
-----------------------------------------
---------------- -----------
Parite Caracteres
------------- |SPY|EPS|PEN| ---------------------------------------------- | x | x | 0 |Pas de bit de parite | | 0 | 0 | 1 |Parite impaire | | 0 | 1 | 1 |Parite paire | | 1 | 0 | 1 |Parite impaire inverse reception| | 1 | 1 | 1 |Parite paire inverse reception | ----------------------------------------------
----------- |WLS1|WLS0| ------------------ | 0 | 0 |5 bits| | 0 | 1 |6 bits| | 1 | 0 |7 bits| | 1 | 1 |8 bits| ------------------ Registre commande modem (lecture/ecriture) :Ce registre 8 bits definit l'etat des signaux de commande envoyes vers le modem.
-----------------------------------------
| REGISTRE COMMANDE MODEM |
-----------------------------------------
| b7 | b6 | b5 | b4 | b3 | b2 | b1 | b0 |
-----------------------------------------
| 0 | 0 | 0 |LOOP|OUT1|OUT2| RTS| DTR|
-----------------------------------------
----- -----------
Rebouclage Signaux
de sortie
de l'interface
Registre etat ligne (lecture/ecriture) :Ce registre 8 bits renseigne l'unite centrale sur l'etat des transmissions. Chaque bit actif de ce registre est susceptible de provoquer une demande d'interruption si cette demande est validee par le registre validation interruption.
-----------------------------------------
| REGISTRE ETAT LIGNE |
-----------------------------------------
| b7 | b6 | b5 | b4 | b3 | b2 | b1 | b0 |
-----------------------------------------
| 0 |TEMT|THRE| BI | FE | PE | OE | DR |
-----------------------------------------
----- -----
| |
Tampon emission vide: |
demande d'interruption |
masquee par le bit |
ETBEI du registre |
validation interruption |
Tampon reception plein:
demande d'interruption
masquee par le bit ERDAI
du registre validation
interruption.
Registre etat modem (lecture/ecriture) :Ce registre 8 bits contient l'etat des signaux de controle envoyes sur l'interface serie par le modem.
-------------------------------------------------
| REGISTRE ETAT MODEM |
-------------------------------------------------
| b7 | b6 | b5 | b4 | b3 | b2 | b1 | b0 |
-------------------------------------------------
| RLSD| RI | DSR | CTS |DSLSD| TERI| DDSR| DCTS|
-------------------------------------------------
-------------------------------------------------
Etat des signaux |
d'entree de l'interface |
|
|
|
A l'etat 1, ces bits signalent un changement d'etat d'un bit depuis la
derniere lecture du registre etat modem, respectivement RLSD (CD), RI, DSR
et CTS. Un seul de ces bits a 1 provoque une demande d'interruption
(masquee par le bit EMSI du registre validation interruptions).Ces bits
sont remis a 0 par une lecture de ce registre.
4. Interface electriqueInterface serie (connecteur HE5 25 pts)La longueur maximum d'une liaison RS232C (EIA) est d'environ 17 metres.
-------------------------------------------------- -------------
| BROCHAGE INTERFACE SERIE 25 pts male | | O |
-------------------------------------------------- | --------- |
|Broche|Signal |Mode E/S||Broche|Signal |Mode E/S| 13| |o o| |25
-------------------------------------------------- 12| |o o| |24
| 1 |chassis| - || 14 | nc | | 11| |o o| |23
| 2 | TXD | S || 15 | nc | | 10| |o o| |22
| 3 | RxD | E || 16 | nc | | 9| |o o| |21
| 4 | RTS | S || 17 | nc | | 8| |o o| |20
| 5 | CTS | E || 18 | nc | | 7| |o | |
| 6 | DSR | E || 19 | nc | | 6| |o o| |19
| 7 | masse | - || 20 | DTR | S | 5| |o o| |18
| 8 | CD | E || 21 | nc | | 4| |o o| |17
| 9 | nc | || 22 | RI | E | 3| |o o| |16
| 10 | nc | || 23 | nc | | 2| |o o| |15
| 11 | nc | || 24 | nc | | 1| |o o| |14
| 12 | nc | || 25 | nc | | | --------- |
| 13 | nc | -------------------------- | O |
------------------------- -------------
Connecteur 25 pts male
Les interfaces conformes a la norme RS232C disposent d'amplificateurs de ligne emetteurs et recepteurs qui assurent la conversion entre les niveaux TTL utilises par le controleur serie et les niveaux +/- 12V de la norme RS232C. Les noms de signaux de l'interface V24 (CCITT) et les correspondances dans la norme RS232C (EIA) sont donnes dans le tableau ci-dessous :
-------------------------------------------------------------------------- | CCITT V24 | EIA RS232C |Broche| ------------------------------------------------------------------- HE5 | | Nom | Designation |Nom| Designation |25 pts| -------------------------------------------------------------------------- | 101 |TP : Terre de protection |AA |SG :Earth Ground | 1 | | 103 |ED : Emission des Donnees |BA |TxD:Transmitted Data | 2 | | 104 |RD : Reception des Donnees |BB |RxD:Received Data | 3 | | 105 |DPE: Demande Pour Emettre |CA |RTS:Request To Send | 4 | | 106 |PAE: Pret A Emettre |CB |CTS:Clear To Send | 5 | | 107 |PDP: Poste de Donnees Pret |CC |DSR:Data Set Ready | 6 | | 102 |TS : Terre de signalisation |AB |SG :Signal Ground | 1 | |108/2|TDP: Terminal de Donnees Pret|CD |DTR:Data Terminal Ready | 20 | | 109 |DP : Detection de Porteuse |CF |DCD:Data Carrier Detector| 8 | | 102 |IA : Indicateur d'Appel |CE |RI :Ring Indicator | 22 | -------------------------------------------------------------------------- Exemple d'une connexion serie
Ordinateur No1 CABLE CROISE Ordinateur No2
DTE THEORIQUE DTE
(connecteurs 25pts de meme sexe)
TxD 2 >-------------\/-------------------< 2 TxD
RxD 3 <-------------/\-------------------> 3 RxD
RTS 4 >-------------\/-------------------< 4 RTS
CTS 5 <-------------/\-------------------> 5 CTS
DSR 6 <-------------\/-------------------> 6 DSR
DTR 20 >-------------/\-------------------< 20 DTR
masse 7 ------------------------------------ 7 masse
Theoriquement, il est possible d'identifier si une interface serie se comporte comme un modem ou un terminal :
ORGANISATION D'UN DIALOGUE :Exemple modem vers terminalExemple terminal vers modem CABLE DE CONVERSION 25pts 9pts(connecteurs 25pts male) (connecteurs 9pts femelle) CD 8 ------------------------------------ 1 CD RxD 3 ------------------------------------ 2 RxD TxD 2 ------------------------------------ 3 TxD RTS 4 ------------------------------------ 7 RTS CTS 5 ------------------------------------ 8 CTS DSR 6 ------------------------------------ 6 DSR DTR 20 ------------------------------------ 4 DTR masse 7 ------------------------------------ 5 masse
|