Vous êtes sur la page 1sur 23

1/ 21

Chapitre 10 : Communication Série et le circuit


16450/8250/51

Section 10.1: Notions de Base

Section 10.2: Accéder les ports COM d’IBM PC avec


DOS et BIOS

Section 10.3: Interfaçage UART 8250/16450 de National


Semi-conducteur et IBM PC

Section 10.4: Communication Asynchrone et le Circuit


USART-8251 de Intel
R. Beguenane, UQAC, 2002/2003 Systèmes à microprocesseurs
2/ 21

Objectives
Les objectifs de ce chapitre sont:
- Lister les avantages de la communication Série par rapport à la communication parallèle.

- Expliquer la différence entre communications synchrone et asynchrone.

- Définir les termes Simplex, Semi-Duplex, et Duplex Complet.

- Décrire les bits du début et de la fin dans un Frame de Données pour les communications
Série.

- Différencier entre les unités de mesure BAUD et BPS.

- Définir le standard RS232 et comparer les équipements DTE et DCE.

- Décrire les signaux ‘Handshaking’ DTR, RTS, et CTS.

- Montrer comment initialiser les port COM avec les commandes DOS.

- Coder en langage assembleur pour les communications Série avec BIOS INT14H.

- Décrire les circuits UART et USART (8250/8051).

- Décrire les protocoles standards synchrone BISYNC et SDLC


R. Beguenane, UQAC, 2002/2003 Systèmes à microprocesseurs
3/ 21

Section 10.1: Notions de Base


Transfert des données dans les PCs: série (bit  longue distance) et parallèle (8 bits  petite
distance comme imprimante ou disque dur).

Transfer Serie Transfer Parallele


(106s kms) D0
D Tx
Tx Communication 2 PCs lignes
Rx Rx
Téléphoniques (MODEMs)
D7

Communications Série, Rx : P  S (Reg. décalage PISO) Tx : S  P (Reg. décalage SIPO)

Pour longues distances, Tx: 0s et 1s  signaux audio (Sinus) par modulations et vice-versa pour Rx

Il existe 2 types de Communications Série: Synchrone (plusieurs octets de données, comme les
caractères, en un temps) et Asynchrone (1 octet de données en un temps)

Il existe 2 circuits pour les Communications Série: UART (Universal Asynchrenous Receiver-
Transmitter de NS, les Ports COM d’IBM PC utilisent l’UART8050) et USART (Universal
Synchroneous-Asynchroneous Receiver-Transmitter de Intel (Le 8251).

R. Beguenane, UQAC, 2002/2003 Systèmes à microprocesseurs


4/ 21

Notions de Base
Transmission de Données

Simplex (Imprimante)
Tx Rx

Tx Semi Duplex (1 ligne) Rx


Rx Tx

Tx Rx
Duplex Complet (2 lignes)
Rx Tx

R. Beguenane, UQAC, 2002/2003 Systèmes à microprocesseurs


5/ 21

Notions de Base
Transmission Asynchrone

Cadrage des Données (Data Framing) : Difficulté pour le récepteur de comprendre les 0s et 1s
reçus à moins d’un protocole entre lui et le transmetteur.  Data Framing.

Data Framing : Comment la donnée est paquetée. Combien de bits pour un caractère. C’est quoi
son début et sa fin.

Tx en dernier
Marque (Pas de transfert)

D7 D0 Tx en premier
Espace
Bit Bit Bit
Fin Fin Debut

parfois 1 pair/impair parity bit Donnée (ASCII Caractère)

1 Caractère ASCII (8-bits) + 1 Bit début + 2 Bits Fin (parfois 1 pair/impair parité bit) +30% Overhead
Exemple: Envoi de 5 pages de 80x25 caractères/page  5x25x80x12 = 120000 bits.

Vitesse de Transfert
bps (bits par seconde), mais aussi BAUD  Terminologie du MODEM = nombre des
changements du signal par Seconde. Les 1ers IBM PC/XT  100 à 9600 bps.
Avec les PCs (P80x86)  19200 bps. Il y’a une limite de 100000 bps (Tx Asynchrone).
R. Beguenane, UQAC, 2002/2003 Systèmes à microprocesseurs
6/ 21

Notions de Base
RS232 (1960) est un standard d’ I/F pour une compatibilité
RS232 et Standards I/F E/S Série
entre des équipements de communication série.

Line Drivers
‘Receivers’

R R
MC M
P MC S S
1488 1489 O
80 2
UART Cable 2 D 1 2 3 4 5 6 7 8 9 10 11 12 13
X MC MC
(TTL) 6 RS232 E
86 1489 6 1488
M
2 2 GND 14 15 16 17 18 19 20 21 22 23 24 25
GND
Connecteur RS232 DB-25P (Male)
Note: RS232 DB-25S (Femelle)
‘1’ : -3  -25
‘0’ : +3  +25

PIN Description
1 2 3 4 5
1 DCD (Data Carrier Detect)
PIN Description
6 DSR (Data Set Ready)
2 RxD (Pour RS232 –> pin 3)
7 RTS (Request To Send) 6 7 8 9
3 TxD (Pour RS232 –> pin 2)
8 CTS (Clear To Send) Connecteur IBM PC 9-Pin
4 DTR (Data Terminal Ready)
9 RI (Ring Indicator)
5 GND (Pour RS232 –> pin 7)
R. Beguenane, UQAC, 2002/2003 Systèmes à microprocesseurs
7/ 21

Notions de Base
Autres Standards I/F E/S Série Pour des distances longues  Vitesse de transmission
des RS232 diminue (100000 bps pour <= 5 pieds).

 RS422A et RS423 pour des débits hauts RS232 RS422


50 pi Max. 4000 pi Max.

20K 10M/40pi, 1M/400pi, 100K/4000pi

Classification des équipement de


Communication de données

DTE (Data Terminal Équipement)  Terminaux et PCs Note: Les définitions des Pins du RS232 sont
qui transmettent et reçoivent les données. par rapport à DTE

DCE (Data Communication Équipement)  Modems qui


transfèrent les données.

D 2 2 D D 2 2 D
T 3 3 C T 3 3 T
E 7 7 E E 7 7 E
Connection PC-Modem Connection PC-PC
R. Beguenane, UQAC, 2002/2003 Systèmes à microprocesseurs
8/ 21

Notions de Base

Signaux d’échange ‘Handshaking’ du RS232

Pour assurer une transmission fiable entre 2 systèmes, 2


TxD 2
le transfert de données doit être coordonnée  c’est le
rôle des Signaux de Handshaking.
RxD 3 3
RTS 4 4
Les comprendre c’est essentiel pour la compréhension de l’UART. 5
CTS 5
DSR 6 6
DTR (Data Terminal Ready): Le Terminal (PC port COM) est prêt après se mise GND
en marche. S’il y’a problème avec le port COM, ce signal ne peut être activé. 7 7
DCD 8 8
DSR (Data Set Ready): Le DCE (Modem) est prêt après sa mise en marche. S’il
y’a problème avec le la connexion téléphonique, ce signal ne peut être activé. DTR 20 20
RTS (Request To Send): Quand le DTE (PC) a un octet à transmettre, il active RI 22 22
RTS pour le signaler au modem.
DTE PC - DCE Modem
CTS (Clear To Send): En réponse au RTS, le modem envoie CTS pour signaler
au PC qu’il est prêt à recevoir la donnée maintenant. Et le PC commence la ‘Handshaking’
transmission.
DCD (Data Carrier Detect): Le Modem indique, via DCD, au PC que le contact entre
lui et un autre modem est établi pour recevoir la donnée que la PC lui a envoyé.
RI (Ring Indicator): Le Modem indique au PC que le téléphone sonne. Ce signal est
le moins utilisé parmi les précédents, car c’est le modem qui répond à la place du
téléphone. Seulement si le PC a besoin de répondre au téléphone, que ce signal est
utilisée.
R. Beguenane, UQAC, 2002/2003 Systèmes à microprocesseurs
9/ 21
Section 10.2: Accéder les ports COM
d’IBM PC avec DOS et BIOS
Ports COM d’IBM PC

BIOS Avec P80x86 IBM PC  4 Ports COM


POST (power-on self-test) permet de tester l’existence d’UARTs pour chaque.
Adresses E/S pour chaque UART (sur 16 bits)  0040:0000  0040:0007
debug –d 0040:0000 00008  0040:0000 F8 03 F8 02 E8 03 00 00 - XX

DOS MODE COMn:b,p,d,s (MODE COM1:24,O,8,1)  2400baud, P. Odd, 8-bits Data, 1 bit
stop

b: 11(110baud), 15(150b), 30(300b), 60(600b), 12(1200b), 24 (2400b), 48 (4800b), 96 (9600b), 19 (19200b)


d: 5, 6, 7, ou 8)
s: 1, 1.5, ou 2

R. Beguenane, UQAC, 2002/2003 Systèmes à microprocesseurs


10/21
Accéder les ports COM d’IBM PC avec DOS
et BIOS
Programmation de COM avec BIOS INT 14H Tx/Rx avec un autre PC, via Port COM

1. Initialiser le Port COM (Baud, Taille de la donnée, Nombre de Stop


bits, …) avec AH=0, INT14H, et DX (Nombre du COM: 0,1,2,3), et
AL = configuration (Baud, N de bits données, N de bits stop, etc.).
2. Envoi d’un caractère avec : AH = 1, INT 14H, et AL = caractère. TxD 2 2
3. Réception du caractère avec : AH = 3, INT 14H pour obtenir l’état RxD 3 3
du port COM (dans AH), (L’état du Modem est dans AL). 4
RTS 4
Vérification du bit D0 (Donnée reçue prête) du AH. Si ‘1’, le
caractère (se trouvant dans l’UART 8250) est reçu, via COM.
CTS 5 5
4. Lecture du caractère reçu avec: AH = 2, INT 14H, et AL =
caractère. GND 7 7
DSR 6 6
Exemple DTR 20 20

1. Vérifier si une touche est pressée, saisir et écrire la donnée


(caractère) au port COM pour son transfert. PC # 1 - PC # 2

2. Vérifier pour sortir en cas de la touche ESC.


3. S’il n’y a pas de touche, vérifier l’état du port COM. Si un
caractère est reçu, performer sa lecture et son affichage.
4. Boucler à l’étape 1.
R. Beguenane, UQAC, 2002/2003 Systèmes à microprocesseurs
11/21
Accéder les ports COM d’IBM PC avec DOS
et BIOS
Programme Après TITLE, MODEL, .STACK, .DATA, …

; Initialisation de COM2
MOV AH, 0 ; Initialisation du Port COM
MOV DX, 0 ; COM Numéro 1, A noter que MOV DX, 1  COM2, etc.
MOV AL, 0EF ; 9600baud, Parité ODD, 2 Stop bits, caractère 8-bits
INT 14H
; Vérifier frappe de touche et son envoi vers COM1 pour son transfert
ENCORE: MOV AH, 01 ; Vérifier la frappe de touche avec INT 16H option 01
INT 16H ; Si ZF=1  pas de frappe de touche
JZ PROCHAIN ; Si pas de frappe de touche  vérifier l’état du Port COM1
MOV AH, 00 ; Sinon saisir le caractère en question avec INT 16H option 00
INT 16H ; a noter que le caractère est dans AL (INT BIOS Clavier E/S)
CMP AL, 1BH ; S’agit-il de la touche ESC
JE SORTIRAI ; Si c’est le cas  sortir du programme
MOV AH, 1 ; Sinon envoi du caractère vers le COM1 avec INT14H option 01
MOV DX, 0 ; c’est bien le Port COM1
INT 14H ; Interruption (BIOS RS232 E/S)
; Vérifier le Port COM1 s’il y’a un caractère à saisir et à afficher
PROCHAIN: MOV AH, 03 ; L’état du port COM1 (Pas du Modem qui est dans AL)
MOV DX, 0 ; Il s’agit bien du Port COM1
INT 14H ; obtenir l’état du port COM (dans AH)
AND AH, 01 ; Masque tout les bits sauf D0 de l’état du Port COM1 (dans AH)
CMP AH, 01 ; Y’a-t-il un caractère (D0=1?)
JNE ENCORE ; Pas de donnée  surveillance du clavier s’il y’a encore frappe
MOV AH, 02 ; Sinon saisir la donnée du COM1 avec INT 14H option 02
MOV DX, 0 ; Il s’agit bien du Port COM1
INT 14H ; Saisir la donnée (se trouvant dans AL) …
12/21
Accéder les ports COM d’IBM PC avec DOS
et BIOS

MOV DL, AL ; … et l’afficher avec INT 21H option 02


MOV AH, 02 ; Pour l’affichage avec l’option 02, le caractère doit se trouver dans DL
INT 21H

JMP ENCORE ; Retour à la surveillance du clavier

SORTIRAI: MOV AH, 4CH ; sortir vers le DOS avec l’option 4CH et INT 21H
INT 21H

MAIN ENDP
END

R. Beguenane, UQAC, 2002/2003 Systèmes à microprocesseurs


13/21
Section 10.3: Interfaçage UART
8250/16450 de NS et IBM PC
Le NS8250 est l’UART le plus utilisé  NS8250A (petit bug dans le 8250)  amélioré en NS16450.

Version CMOS du NS16450 est le 16C450. Les 8250/8250A/16450 sont compatibles (mêmes pins)

L’UART 8250 reçoit


P de la CPU une
I
C
74LS245
8250 IRQ4 ou IRQ3
Donnée (un caract-
ère), lui ajoute le
 INTRPT
‘Frame’, la
 D7 .. D0 SOUT
RTS EIA R convertit en Série
D7 .. D0
 DTR Driver S (PISO), et enfin la
SIN
 DIR G CTS
Rx 2
transmet.
TTL
DSR 3
RLSD -
RI CMOS 2
IOR IOR
IOW IOW AUSSI


A0 A0
A1 A1 L’UART 8250 reçoit
A2 A2 du RS232 des
P A2  A9 CS2 BAUDOUT données (un bit à
AEN CS1 la fois), enlève le
VCC CS0 ‘Frame’, la conver-
RESET MR Xin Xout RCLK
tit en 8-bits (caract-
OSCILATEUR 1.8432MHz
ère SIPO), et enfin
(/10) la transmet à la CPU.

R. Beguenane, UQAC, 2002/2003 Systèmes à microprocesseurs


14/21

Interfaçage UART 8250/16450 de NS et IBM PC


Description de PINS

DLAB A2A1A0 Description


A0, A1, A2
0 000 Lecture: Registre (Buffer) de réception
Ces Pins sont Écriture: Registre de maintien (Hold)
utilisées pour accéder 0 001 Registre de validation des Interruptions
les registres internes
1 000 Registre Diviseur LSB
du 8250.
1 001 Registre Diviseur MSB
DLAB est le bit ‘D7’ du x 010 Registre d’identification des Interruptions ( Lecture Seulement)
registre du format
x 011 Registre du format des données (Line Control)
des données (Line
control). x 100 Registre de control du Modem
x 101 Registre d’état Ligne (Line Status)
A la transmission, le
caractère est écrit dans x 110 Registre d’état du Modem
le registre de maintien x 111 Registre Éraflure (Scratch)
avec A2A1A0 = 000 et
DLAB = 0.
Programmer la vitesse (en Baud) du 8250  DLAB = ‘1’
et les octets du diviseur sont envoyés dans les registres
A la réception, le
d’adresses respectivement A2A1A0 = 000 et A2A1A0 = 001.
caractère est lu dan le même registre.

R. Beguenane, UQAC, 2002/2003 Systèmes à microprocesseurs


15/21

Interfaçage UART 8250/16450 de NS et IBM PC

CS0, CS1, CS2 Pour activer le circuit 8250. Dans IBM PC: CS0, CS1  ‘1’

D0-D7 Ces pins sont reliés au bus système d’IBM/PC, via le ‘Transceiver’
74LS245, activé pour les adresses E/S de 3F8H 3FFH.

SIN, SOUT Pins de données Série, connectés aux RxD et TxD du RS232, via EIA.

XIN, XOUT eXternal crystal INput/OUTput : connectés à l’oscillateur cristal.


Quand l’horloge est externe au circuit, elle est connectée à XIN et XOUT
est ignorée. Avec IBM PC, XIN est connecté à une fréquence de 1.8432MHz

RTS, CTS,
DTR, DSR, Pins connectées au Modem via RS232. C’est des signaux de ‘Handshaking’
DCD, RI

Master Reset : utilisée pour vider les contenus des registres sauf ceux de la
MR
réception, transmission, et diviseur LSB et MSB.

RCLK = Horloge du récepteur = 16x l’horloge de la vitesse (en BAUD) de la partie


RCLK, réceptrice. BAUDOUT = Horloge de la transmission = 16x l’horloge de la vitesse
BAUDOUT (en BAUD) de la partie de la transmission. Les 2 horloges (RCLK et BAUDOUT)
sont connectées pour les 2 parties (Rx et Tx) aient la même vitesse.
16/21

Interfaçage UART 8250/16450 de NS et IBM PC


Les Registres du 8250
Registre de Maintien Pour transférer un octet en série : la CPU l’écrit d’abord dans ce registre.
(du Transmetteur) Le 8250 le sérialise et en ajoute le ‘Frame’ et enfin le transfert via Sout

Registre Buffer Le 8250 reçoit les bits, via Sin, rejette les bits ‘Frame’ pour former l’octet
(du Récepteur) (le caractère) en le sauvegardant dans ce registre.

D7 D6 . . . D3 D2 D1 D0
Registre de Validation
0 0 0 0 IN Err TBE RxRDY
des Interruptions
RxRDY = ‘1’  INTR vers la CPU pour lui signifier qu’un octet vient d’être reçu
via Sin
TBE = ‘1’  INTR vers la CPU pour lui signifier que le le Registre de maintien
(Buffer) est vidé et qu’il est disponible pour en recevoir un autre octet.
1 pin INTR mais
4 sources d’INTs
Err = ‘1’  INTR vers la CPU pour lui signifier qu’une erreur est détectée (parité,
framing, … ). La source d’erreur est dans le registre d’état si Err = ‘1’.
IN = ‘1’  (État du Modem) INTR vers la CPU pour lui signifier que l’une des
lignes du RS232 a changé d’état durant le transfert (Tx ou Rx).
Note: A noter que les bits D0 à D3 peuvent être masqués en mettant un ‘0’.

R. Beguenane, UQAC, 2002/2003 Systèmes à microprocesseurs


17/21

Interfaçage UART 8250/16450 de NS et IBM PC


Registre d’Identification D7 D6 . . . D3 D2 D1 D0
des Interruptions 0 0 0 0 0 x x x
(Registre à Lecture seule)

D0 = ‘1’  Pas d’interruption INTR D1, D2  Type d’Interruption

D2D1 Type d’Interruption Priorité


Quand plusieurs sources d’INTR sont activées, comment
11 État de la réception (Erreur Parité, 0 (la plus
la CPU saura qui prendra en premier lieu  Prioritisation. Framing, Dépassement, élevée)
Interruption d’arrêt)

10 Donnée valable à la réception (Rx) 1

Registre du Format des 01 Registre de maintien est vide (Tx) 2

Données (Line Control) 00 État du Modem (CTS, DSR, RI, …) 3

Si DLAB = ‘0’  Avec


A2A1A0 = 000  Registres de D7 D6 . . . D3 D2 D1 D0
Maintien et de réception  A la
transmission, le caractère est DLAB Arrêt Parité Parité Parité Stop Donnée Donnée
écrit dans le registre de
Maintien. A la réception, le D5D4D3 Parité
caractère est lu dans le même D1D0 X Bits de Données
registre. Avec A2A1A0 = 001 000 Pas de parité
 Registre de validation des Agit sur ‘Sout’ 00 5 bits de données
001 Parité impaire ‘0 ’ 
Interruptions Si ‘1’  Sout 1 stop bit
01 6 bits de données
Est forcé à l’ 011 Parité paire
Si DLAB = ‘1’  Avec A2A1A0 = État ESPACE.
000 / 001  registres diviseur LSB ‘1 ’  10 7 bits de données
101 Marque
et MSB  Programmer la vitesse 2 stop bits
11 8 bits de données
en baud du 8250 a l’aide des 111 Espace

R. Beguenane, UQAC, 2002/2003 Systèmes à microprocesseurs


18/21

Interfaçage UART 8250/16450 de NS et IBM PC


Registre Contrôle du D7 D6 . . . D3 D2 D1 D0
Modem (Output Control)
0 0 0 Test OUT2 OUT1 RTS DTR

DTR et RTS  Pour tester les pins du RS232.


DTR : Si ‘1’  active DTR (activé Bas) Le Terminal (PC port COM) est prêt
RTS : Si ‘1’  active RTS (activé Bas)  Signaler au modem que le DTE (PC) a un octet à transmettre.

OUT1 et OUT2  Sorties auxiliaires de l’utilisateur.


Utilisés pour le SOUT du 8250 dans des systèmes non compatibles avec RS232.
TEST  Utiliser pour les tests ‘Loopback’. Si TEST = ‘1’  SOUT = 1 (Marque) et SIN déconnecté.
 Le registre PISO est connecté au registre SIPO et les signaux de contrôle d’entrée du
modem (DSR, CTS, RI, et DCD) sont connectés de l’intérieur aux signaux de contrôle de sortie.

Registre d’État du Modem D7 D6 . . . D3 D2 D1 D0


(RS232 Input Status)
DCD RI DSR CTS  DCD  RI  DSR  CTS
Fournit l’état des signaux de
contrôle du Modem.

D3:D0  indiquent le changement d’état des signaux d’entées à partir de la dernière lecture par la CPU.
Mise à ‘1’ s’il y’a eu changement dans les signaux CTS, DSR, RI, et DCD.
D7:D4  Si TEST = ‘1’ (du registre contrôle du Modem), ces bits (CTS, DSR, RI, et DCD) sont équivalents
aux bits D3:D0 (RTS, DTR, OUT1, et OUT2) respectivement du registre contrôle du Modem.
8/ 21

Notions de Base

Signaux d’échange ‘Handshaking’ du RS232

Pour assurer une transmission fiable entre 2 systèmes, 2


TxD 2
le transfert de données doit être coordonnée  c’est le
rôle des Signaux de Handshaking.
RxD 3 3
RTS 4 4
Les comprendre c’est essentiel pour la compréhension de l’UART. 5
CTS 5
DSR 6 6
DTR (Data Terminal Ready): Le Terminal (PC port COM) est prêt après se mise GND
en marche. S’il y’a problème avec le port COM, ce signal ne peut être activé. 7 7
DCD 8 8
DSR (Data Set Ready): Le DCE (Modem) est prêt après sa mise en marche. S’il
y’a problème avec le la connexion téléphonique, ce signal ne peut être activé. DTR 20 20
RTS (Request To Send): Quand le DTE (PC) a un octet à transmettre, il active RI 22 22
RTS pour le signaler au modem.
DTE PC - DCE Modem
CTS (Clear To Send): En réponse au RTS, le modem envoie CTS pour signaler
au PC qu’il est prêt à recevoir la donnée maintenant. Et le PC commence la ‘Handshaking’
transmission.
DCD (Data Carrier Detect): Le Modem indique, via DCD, au PC que le contact entre
lui et un autre modem est établi pour recevoir la donnée que la PC lui a envoyé.
RI (Ring Indicator): Le Modem indique au PC que le téléphone sonne. Ce signal est
le moins utilisé parmi les précédents, car c’est le modem qui répond à la place du
téléphone. Seulement si le PC a besoin de répondre au téléphone, que ce signal est
utilisée.
R. Beguenane, UQAC, 2002/2003 Systèmes à microprocesseurs
19/21

Interfaçage UART 8250/16450 de NS et IBM PC

Registre d’état (Line D7 D6 . . . D3 D2 D1 D0


Status) 0 TEMT THRE BI FE PE OE DR

Si D2 = ‘1’ du registre de validation des INTs, ce registre est utilisé pour savoir quel type d’erreurs.

DR : Si = ‘1’  La donnée est prête (envoyée au Buffer de réception, après avoir enlevé les bits de
Framing) pour être prise. Ce bit est mit à ‘0’ après lecture du registre de réception.

OE : Si ‘1’  Erreur de dépassement de vitesse (OverRun), dans le cas ou la CPU est plus lente que la vitesse
de réception (l’ancien octet est remplacé par le nouveau à cause de la lenteur de la CPU qui n’a pas lu à temps).

PE : Si ‘1’  Erreur de parité sur la donnée reçue (la parité ne correspond pas à celle calculée dans le registre).

FE : Si ‘1’  Erreur de Framing  le bit de stop ne correspond pas au protocole établi.

BI : Si ‘1’  Break Interrupt  Si SIN est ‘0’ durant une période d’un transfert (Bit Début+ Données+Parité+Stop)
Tout comme OE, PE, FE, ce bit est mis à ‘0’ quand la CPU lit ce registre d’état.

THRE : Si ‘1’  Transmitter Hold Reg. Empty Le 8250 est prêt à recevoir un Octet à transmettre. Quand un
octet est transférer du registre de maintien vers le PISO, ce bit est mis à ‘1’. Quand la
CPU écrit un autre octet THRE est mis à ‘0’.`

TEMT : Si ‘1’  Le registre de maintien et le PISO sont vides.


R. Beguenane, UQAC, 2002/2003 Systèmes à microprocesseurs
20/21

Interfaçage UART 8250/16450 de NS et IBM PC

Registre Eflature Ce registre n’est pas utilisé par le 8250 mais par la CPU comme
(Scratch pad reg.) registre extra pour des besoins bien spécifiques.

Registre Diviseur Ces registres contiennent les octets LSB et MSB qui
permettent de programmer la vitesse en Baud du 8250 suivant
(LSB, MSB) la formule : (fXin/16) / Vitesse_Baud

Exemple La valeur du diviseur correspondant à la vitesse 110 Baud est, avec Xin = 1.8432MHz:

1.8432MHz / 16  115200Hz  115200 / 110 = 1047 = 0417H 


Registre Diviseur LSB = 17H et Registre Diviseur MSB = 04H

Programmation:
MOV AL, 80H ; 10000000B pour DLAB=‘1’
MOV DX, 3FBH ; L’adresse du Registre du format des données (Line Control), pages 13 et 14
OUT DX, AL ; D7 = ‘1’ pour DLAB afin de programmer les registres diviseurs LSB et MSB

MOV AX, 0417H ; 110 Baud


MOV DX, 3F8H ; Adresse du registre diviseur LSB, page 14
OUT DX, AL ; envoi du premier octet
MOV AL, AH ; La valeur du deuxième octet
INC DX ; Adresse du registre diviseur MSB, page 14
OUT DX, AL ; envoi du deuxième octet

R. Beguenane, UQAC, 2002/2003 Systèmes à microprocesseurs


21/21

Interfaçage UART 8250/16450 de NS et IBM PC

Limitation du circuit 8250/16450 et son remplacement par le circuit 16550

-principale limitation des circuits 8250/16450  pour chaque octet reçu ou transmet  INT la CPU.
Ceci ne constitue pas un problème pour les anciens PCs, puisque tout les périphériques étaient lents.
Mais pas pour les PCs et les stations de travail actuels, dont la haute performance et une nécessité.

NS a conçu le 16550AF (compatible avec le 16450) possédant un buffer interne de 16 octets (au lieu de 1
pour le 16450) pour sauvegarder des blocs de données de transmission et de réception, et pour ainsi
Libérer la CPU des INTs fréquentes.

Ainsi à la transmission, la CPU peut écrire 16 octets à la fois dans un buffer de transmission. Quand ce
Buffer se vide, le 16550AF active un signal à la CPU pour lui demander un autre transfert.

A la réception, le buffer de maintien de 16 octets reçoit les données reçues. Quand ce


Buffer se remplit, le 16550AF active un signal à la CPU pour lui demander de les prendre (Lire).

USART 8251 de Intel et les communications Synchrone  Section 10-4


L’USART 8251 est une puce de 28 pins permettant à la fois les communications Asynchrones et Synchrones.

Le problème des communications Asynchrones est l’OVERHEAD du framing qui peut prendre jusqu’à 50%.

Avec les communications de données Synchrones les bits de début et de fin sont remplacés par des codes de
contrôle en octets. Mais le transfert des données se fait en bloc d’octets, des 100s, au lieu d’un octet à la fois.

R. Beguenane, UQAC, 2002/2003 Systèmes à microprocesseurs


Examen final

Chapitre 4: Programmation 32-bit pour machines 386/486

Chapitre 7 (Mémoires),

Chapitre 8 (Timer) et

Chapitre 9 (PIC)

Vous aimerez peut-être aussi