Documente Academic
Documente Profesional
Documente Cultură
Introduction
Linterface UART
(Universal Asynchronous Receiver Transmitter)
LUART est une interface classique de communication srie en mode
asynchrone
Appele aussi ACIA (Asynchronous Communication Interface
Adapter)
Processeur
D0
D1
Transmission
D7
Rception
TxD
RxD
Milieu extrieur
communication entre deux quipements via linterface UART doit obir un pro
1. Au repos, la ligne de transmission (TXD ou RXD) est au niveau
logique 1
2. Le dbut de communication doit toujours commencer par la mise
0 de la ligne de communication pour la dure dun bit. On appelle
ce bit, le bit Start
3. Les bits de loctet transmettre sont ensuite envoys bit par bit
4. Quad tous les bits de loctet sont envoys , un bit de parit est
eventuellement ajout
5. La transmission est enfin termine par la mise 1 de la ligne de
LUART
ncessitepour
donclaune
surcharge.
8 bits
on ce
aura
transmission
dure
dun bit Pour
2 bits.
Onutiles
appelle
bit,donc
bit
besoin
denvoyer jusqu 11 bits (12 avec le bit de parit)
Stop
Mme si deux UARTs sont synchronises par une mme frquence dhorloge,
(donc, elles fonctionnent la mme vitesse), ils se peut que le dispositif sousjacent ne soit pas prt pour rcuprer un caractre ds son arrive
Un nouveau caractre peut donc arriver et craser un ancien caractre avant
quil soit lu par le processeur
Pour pallier cette situation, on utilise plusieurs solutions de contrle de flux
Interconnexion dquipements en
liaison srie
Liaison 3 fils
Une liaison srie utilise au minimum trois fils:
Un fil pour la transmission (TxD)
Un fil pour la rception (RxD)
Un fil de masse (GND)
D0
D1
Transmission
D7
Rception
Equipement 1
TxD
TxD
RxD
RxD
GND
GND
Transmission
Rception
Equipement 2
D0
D1
D7
Interconnexion dquipements en
liaison srie
Liaison 5 fils
En plus des trois fils (TxD, RxD, GND), on utilise deux autres fils
RTS et CTS pour assurer le contrle de flux
D0
D1
D7
Transmission
Rception
Equipement 1
RTS
RTS
CTS
TxD
CTS
TxD
RxD
RxD
GND
GND
Transmission
D0
D1
Rception
D7
Equipement 2
Interconnexion dquipements en
liaison srie
Liaison 9 fils
Cette liaison est spcifique la gestion dun modem pilot par un
quipement terminal (ordinateur, routeur, ..etc)
4 nouveaux fils sont ajouts:
DTR (Data Terminal Ready) : lquipement est prt mettre
DSR(Data Send Ready): lquipement est prt recevoir
RI(Ring Indicator) : le modem signale lquipement terminal
larrive dun appel tlphonique
DCD(Data Carrier Detect) : le modem signale lquipement
terminal, la prsence de donne sur la ligne de transmission
Transmission
D0
D1
D7
Rception
DCD
RI
DTR
DCD
RI
DTR
DSR
RTS
DSR
RTS
CTS
TxD
CTS
TxD
RxD
RxD
GND
GND
ETTD (ordinateur)
Transmission
D0
D1
D7
Rception
ETCD (Modem)
La norme RS232
Pour communiquer sur la liaison srie, deux quipements doivent
utiliser des connecteurs standards et des niveaux logiques identiques
(0 0 volts, 1 5 volts par exemple)
Toutefois, les quipements diffrents utilisent des niveaux logiques
diffrents (1 5v en TTL et 2,5 v en CMOS)
La norme RS-232 permet de standardiser les niveaux logiques en
les transformant grce des circuits transcodeurs spcifiques (0
-12v,
1+12V)
La norme
dfinit galement les caractristiques du connecteur
utiliser et son brochage
UARTs de la LPC3250
Caractristiques gnrales
Chaque UART dispose dune file dattente de 64 octets en mission
et en rception permettant de sauvegarder temporairement les
donnes
envoyer
ou dun
recevoir
ChaqueUART
dispose
mcanisme permettant de gnrer la
frquence denvoie et de rception
Les UARTs supportent les frquences 2400, 4800, 9600, 19200,
38400, 57600, 115200, 230400 et 460800 bps (bits par seconde)
Les UARTs supportent le mode loopback permettant de renvoyer
automatiquement les donnes reues (trs utile pour le dbugage)
Description fonctionnelle
Description fonctionnelle
Chaque UART dispose dun transmetteur et dun receveur
Le processeur fournit le caractre transmettre (sur 8 bits en gnral)
via le registre UnTHR (Transmitter Holding Register) n=3,4,5,6
Ce caractre est ensuite envoy vers la file dattente de transmission
Tx FIFO
Le registre dcalage Tx Shift Register prlve un caractre de la file
dattente et lenvoie bit par bit sur la ligne Un_TXD
La frquence de transmission est dtermine par le bloc clock control
and baud rate generation
La rception fonctionne de manire identique
Le registre dcalage Rx Shift Register rcupre les bits fournis par la
ligne Un_RX et reconstitue le caractre puis lenvoie la file dattente
des
reus
Rx FIFO
La caractres
file dattente
alimente
le registre UnRBR pour que le processeur
puisse rcuprer le caractre reu via ce registre
Description fonctionnelle
a gestion des transmissions est assure par les registre UnLCR, UnLSR et UnFCR
Le registre UnLCR (Line contrl register) permet de configurer les
diffrents paramtres de transmission (nombre de bits du caractre,
parit,
bit stop,
etc)(Line Status register) contient les diffrents bits
Le registre
UnLSR
dtats de la transmission (effectue avec succs, erreurs, etc)
Le registre UnFCR (FIFO control register) permet de rentrer les
diffrents paramtres pour la gestion des files dattente
Le bloc de gnration dinterruptions Interrupt Generation permet de
gnrer des interruptions au processeur en cas de prsence
dinformation
Le registre UnIER (Interrupt Enable Register) permet dautoriser les
inerruptions
Le registre UnIIR (Interrupt ID Register) permet didentifier la source
dinterruption
0x4008 0000
0x4000 8000
0x4009 0000
0x4009 8000
U3_CLK
0x4000
40D4
U4_CLK
0x4000
40D8
U5_CLK
0x4000
40DC
U6_CLK
0x4005
Offset
Nom
Description
B7
B6
B5
B4
0x00
(DLAB
=0)
UnRB
R
Reciever
Buffer
Register
0x00
(DLAB
=0)
UnTH
R
Transmit
Holding
Register
0x00
(DLAB
=1)
UnDL
L
Divisor Latch
Lower Byte
0x04
(DLAB
= 1)
UnDL
M
Divisor Latch
Upper Byte
0x04
(DLAB
= 0)
UnIER
Interrupt
Enable
Register
0x08
UnIIR
Interrupt Id
Register
Rservs
B3
B2
Modem
Status IE
Rservs
RX Line
Status
IE
Interrupt ID
B1
THRE
IE
B0
RX
Data
Avail.
IE
Int.
pendin
g
0x0C
UnLC
Line Control
DLAB
Break
Parity
Even
Parity
Stop
Word Lenth
Notes
R
Register
bit
Control
Select
Parity
Enable
Bit
ccs aux adresses offset 0x00 et 0x04 est multiplex la fois par le bit DLAB ( bit 7 du registre UnLCR) et Select
de lopration
Select si DLAB = 1
La lecture de ladresse offset 0 permet de lire le registre UnRBR si DLAB = 0 ou le registre UnDLL
criture de ladresse offset 0 permet dcrire le registre UnTHR si DLAB = 0 ou le registre Un DLM si DLAB = 1
0x14
UnLS
Line status
RX
Trans.
Trans.
Brek
Framing
Parity
Overu Reciev
R
register
FIFO
empty
Holding interrup
Error
Error
n
Data
error
reg.
t
(FE)
(PE)
Error
Ready
empty
(BI)
Par exemple, si lhorloge dentre est de 13 MHZ (13 000 000 Hz),
et on veut obtenir un dbit de transmission de 9600 bps (bits par
seconde) on a alors :
UnDLM:UnDLL = 13 000 000/16*9600 = 84.63 quon peut arrondir 85
Cette valeur tant sur 8 bits, on place ainsi 85 dans le
registre UnDLL et 0 dans UnDLM
UnDLL est localis lofset 0x00 et UnDLM lofset 0x04
Par exemple, pour lUART5, U5DLL est ladresse 0x4000 8000 et
U5DLM est ladresse 0x4000 8004
Pour accder ces registres, il faut que le bit DLAB (bit 7 de UnLCR)
soit mis au pralable 1
Il peut fournir(PERIPH_CLK)
galement un meilleur contrle de la frquence
dhorloge en fournissant un rapport X/Y avec X tant lhorloge dentre
et Ylhorloge
sortiede Y
Bits 0 7:devaleur
Bits 8 15: valeur de X
Bit 16: Choix de lhorloge
0 : lhorloge dentre est PERIPH_CLK
1 : lhorloge dentre est HCLK
Chaque UART est associe son propre registre avec une adresse
propre
U3_CLK : 0x4000 40D0
U4_CLK : 0x4000 40D4
U5_CLK: 0x4000 40D8
U6_CLK: 0x4000 40DC
( DLM : DLL)
Source _ CLK X
16
Y
Source _ CLK
1
16
( DLM : DLL)
Exercice
Sur la carte Phycore LPC3250, lUART5 est relie une interface
RS232 permettant dinterfacer un ordinateur ou tout autre quipement
via la liaison srie RS232 (voir diapo suivante).
Nous souhaitons doter la carte dun systme de commande travers
un terminal (clavier-cran). On utilisera pour cela lmulateur de terminal
dun ordinateur (Hyperterminal de Windows, Putty, ou autre)
Ecrire un programme assembleur permettant deffectuer les tche
suivantes :
1. Afficher sur cran un message de bienvenu Bonjour tout le monde
par exemple
2. Revenir au dbut de la ligne suivante et afficher $>
3. Ensuite, faire en sorte que tout caractre crit par lutilisateur soit
affich sur cran (c-a-d renvoyer en mission tous les caractres reus)
4. Quand
tape sur
la touche
dentre (retour chariot), passer
Utilisezlutilisateur
les paramtres
suivants
:
une nouvelle
ligne sur
et afficher
Caractres
8 bits $>
1 bit stop
Vitesse de 57600 bps
N.B: Le code du retour chariot est 0x0D, le code de nouvelle ligne est
0x0A
Connecteur en dessous