You are on page 1of 13

M.

SENHADJI

Microprocesseur

LUSART est un canal srie Single Full duplex avec un buffer double de rception et de transmission. Les bytes de donnes et d'tats de la rception sont aussi indpendant de ceux de la transmission. Des canaux d'interruptions sont associs sparment la partie rception et transmission. Chaque partie possde la fois un canal d'interruption dans les conditions normales de fonctionnement et un canal d'interruption dans le cas d'erreur. Un transfert DMA (Direct Memory Accs) peut tre effectu en utilisant les signaux externes RR\ (Receive Ready) et TR\ (Transmitter Ready). L USART du MFP support un format synchrone et asynchrone
M.SENHADJI Microprocesseur 2

Identique a l ACIA, plusieurs configurations sont programmables :


longueur variable des mots de donnes, le bit de STOP/START, la longueur du mot varie entre 5 et 8 bits, les bits de stop peuvent tre slectionns entre 1, 1 ou 2, la parit paire, impaire ou sans parit

Pour des mots 8 bits, le caractre assembl sera constitu du mot de donne complt par des zros et suivi du bit de parit si la parit est utilise.
M.SENHADJI Microprocesseur 3

En mode asynchrone, la logique de dtection du bit de START est active. Les donnes ne sont dcals dans le registre dcalage de rception que lorsque le bit zro et dtect. Lorsque le mode %16 d'horloge est slectionn la logique de dtection de faux bit de START est active aussi. Une transition est considre valide si elle reste stable au moins pour trois fronts montants de l'horloge de rception. Et dans ce cas la transition valide du zro un " 1" ne doit pas arriver a moins de 8 transitions positives de l'horloge
M.SENHADJI Microprocesseur 4

Synchronisation sur le contenu du registre SCR, Les donnes ne sont stockes dans le registre de rception que lorsque la synchro est tablie, Pour une longueur du mot de donne (a initialiser avant le registre SCR), les bits non utiliss du SCR sont mis zro. Lorsque la parit est active, la longueur du mot de synchronisation est quivalente celle du mot de donne plus un.

M.SENHADJI

Microprocesseur

Le MFP calcul et ajoute le bit de parit pour le mot de synchronisation lorsque la longueur du mot est 8 bits Lorsque la longueur du mot est infrieur 8 bits, l'utilisateur doit dterminer le bit de parit du mot de synchronisation et l'crire dans le registre SCR avec le caractre de synchronisation. Le MFP doit alors transmettre le bit en trop du mot de synchronisation comme un bit de parit.

M.SENHADJI

Microprocesseur

Le registre de contrle de l'USART (UCR) slectionne l'horloge de fonctionnement, le format du caractre et la parit pour la rception et la transmission.
Adresse 29 Hexa

CLK

WL1

WL0

ST1

ST0

PE

E/O

M.SENHADJI

Microprocesseur

CLK : Clock mode. CLK = 0 : la donne est stocke dans le registre de rception ou transmise partir du registre de transmission la frquence de leur horloges respectives. CLK = 1 : La rception et la transmission se font au 1/16 de leurs frquences. La logique de resynchronisation des donnes est active.

M.SENHADJI

Microprocesseur

Format du mot et du caractre


WL1 WL2 : Longueur du mot (Seulement la donne sans bit Start ni Stop ni Parit) 0 0 8 Bits 0 1 7 Bits 1 0 6 Bits 1 1 5 Bits ST0,ST1 : Format du caractre ST0 ST1 Bits START 0 0 0 0 1 1 1 0 1 1
M.SENHADJI

Bits STOP FORMAT 0 Synchrone 1 Asynchrone 1 Asynchrone (valable uniq. pour le mode 16%) 2 Asynchrone
Microprocesseur 9

PE : Parit active, (Parity Enable) :


PE = 0 Le bit de parit n'est pas calcul (la parit n'est pas utilise) PE = 1 La parit n'est pas vrifie par le rcepteur et elle est calcule est insre durant la transmission de donnes. A noter, que la parit n'est pas automatiquement rajoute au caractre synchrone pour les mots de longueur infrieures huit bits. Dans ce cas, la parit doit tre insre dans le SCR (Registre de caractre Synchrone) avec le mot synchrone.

E/O : Parit paire/Impaire : (EVEN/ODD parity) : E/O = 0 : la parit impaire est slectionne E/O = 1 : La parit paire est slectionne
M.SENHADJI Microprocesseur 10

Lorsque les donnes sont reue par l'entre srie (SI), elles sont enregistres dans un registre a dcalage de 8 bits jusqu' ce que le nombre de donnes spcifies soit assembl. Le caractre est alors transfr au registre de rception (sachant que le dernier mot prsent dans le registre de rception a t lu) La lecture du registre de rception satisfait la condition "Buffer Full" et permet un nouveau mot d'tre assembl au niveau du registre dcalage. Ce transfert produit la demande d'interruption "Buffer Full" au processeur.
M.SENHADJI Microprocesseur 11

Le registre de rception est accessible par la lecture du registre de donne UDR (USART DATA REGISTER). Chaque fois qu'un mot est transfr au registre de rception, les informations d'tat de ce mot sont positionnes dans le registre d'tat de rception RSR. Le RSR n'est mis jour que lorsque le mot de donne dans le registre de rception a t lu. Le RSR doit tre toujours lu avant le registre de rception UDR pour maintenir une correspondance correcte entre les donnes et les bits d'tats.
M.SENHADJI Microprocesseur 12

La partie rception de l'USART possde deux canaux d'interruption.


Un canal indique la condition "Registre Plein", l'autre canal indique la condition d'erreur. La condition d'erreur comprend
le dbordement, erreur de parit, synchronisation trouve, et le break. Ces conditions d'interruptions correspondent aux bits BF, OE, PE, et F/S ou B du registre d'tat du receveur.

Pour un caractre reu, une seule interruption est gnre la fois. Un vecteur d'interruption est affect chaque canal.
M.SENHADJI Microprocesseur 13

Lorsque le mot reu est erron et le canal d'interruption d'erreur est actif, une interruption est gnre uniquement par le canal d'erreur. Lorsque la canal d'erreur est dsactiv, une interruption pour une condition d'erreur pourra tre gnre par le canal d'interruption "Buffer plein". Le registre d'tat du receveur RSR doit tre toujours lu pour dterminer laquelle des conditions a provoque l'interruption.
M.SENHADJI Microprocesseur 14

RSR : Receiver Status Register


Les bits du registre RSR sont positionns lorsque le mot de donne est transfr au buffer de rception. Les bits d'tat de RSR ne changent que lorsque le mot de donne est lu.
Adresse 2B Hexa

BF

OE

PE

FE

F/S ou B M/CIP

SS

RE

BF : "Buffer Full BF = 1 lorsque le mot reu est transfr au Buffer de rception, BF = 0 lorsque le buffer de rception est lu en accdant au registre de donne (UDR), Ce bit est en lecture seulement.
M.SENHADJI Microprocesseur 15

Registre tat rception : RSR


OE : "Overrun Error " : Erreur dbordement L'erreur de dbordement arrive lors du transfre du mot de donne reu au registre de rception alors que le registre de rception est plein. Tant que la donne existante dans le registre de rception n'est pas lu, ni le registre de rception ni le registre RSR ne peuvent tre crass.
OE 1 aprs BF 1, Cette conditions d'erreur gnre une interruption au processeur, Le bit OE est remis zro par la lecture de RSR. La nouvelle donne ne peut tre assembl que lorsque le RSR est lu.

PE : Parity Error :
PE = 1 erreur de parit PE = 0 pas d'erreur
M.SENHADJI Microprocesseur 16

Registre tat rception : RSR


FE : "Frame Error" : Erreur de format . L'erreur de format provient lorsque le mot de donne n'est pas suivi par un bit de stop en format asynchrone.
FE = "I" erreur de format lors du transfert du mot au buffer de rception, FE = 0 pas derreur de format lors du transfert du mot au buffeur rception

RE : "Receiver Enable" : Rcepteur actif


RE = 0 Le rcepteur est dsactiv RE = 1 Le rcepteur est actif, tous les bits du RSR sont zro. Ce bit ne peut tre positionn "1" que lorsque l'horloge de rception est active.

SS : "Synchronous Strip Enable". Synchronisation active


SS = 0 les mots de donnes qui quivaux le contenu du registre de caractre synchrone ne sont pas chargs dans le buffer de rception. SS = 1 les mots de donnes qui quivaux le contenu du registre de caractre synchrone sont chargs dans le buffer de rception et le bit correspond la condition BF Buffer plein est positionn "1".
M.SENHADJI Microprocesseur 17

Registre tat rception : RSR


F/S ou B : "Found/Search" ou "Break" trouver/chercher ou Break En mode caractre synchrone, ce bit peut tre positionn "1" ou zro par logiciel.
F/S = 0 le receveur de l'USART est plac en mode recherche. La donne qui arrive est compare au contenu du registre de caractre synchrone (SCR) et le compteur de la longueur du mot est dsactiv. Le bit F/S est automatiquement mis 1 lorsque "l'quivalence" est trouve ainsi le compteur de la longueur du mot est activ. Une interruption est produite sur le canal d'erreur de rception.

En mode caractre asynchrone, ce drapeau indique la condition du "BREAK". Un "BREAK" est dtect lorsque le mot de donne ne contient que des zros (sans bit de STOP) est reu . La condition "BREAK" continue jusqu' rception de donnes non nul.
B = 1 lors d un BREAK. La condition "BREAK" gnre une interruption B = 0 lorsque la donne reue est non nulle. L'interruption d au "BREAK" est leve lorsque le bit est zro.
M.SENHADJI Microprocesseur 18

Registre tat rception : RSR


M ou CIP : "Match/Character in Progress". quivalence/caractre en cours de chargement. En mode caractre synchrone, ce flag indique qu'un caractre synchrone est reu.
M est mis "1" lorsque le mot transfr au buffer de rception quivaut le contenue du registre de caractre synchrone, M est mis zro lorsque le mot transfr au buffer de rception diffre du contenue du registre de caractre synchrone.

En mode caractre asynchrone, ce flag indique que le mot est en cours d'assemblage.
CIP est mis "1" lorsque le bit start est dtect. CIP est mis zro lorsque le dernier bit de STOP est reu.
M.SENHADJI Microprocesseur 19

Le buffer de transmission ne peut tre charg que lorsque le transmetteur est activ END 0 Donne crite par le processeur dans UDR La donne est transfre ensuite au registre dcalage interne Ceci provoque la condition BE 1 UE est produite, si la donne prsente dans le registre a dcalage est encore prsente alors quune nouvelle donne vient s inscrire dans le buffer de transmission
M.SENHADJI Microprocesseur 20

10

Canaux d IT du transmetteur
Deux canaux dinterruption sont associ a la partie transmission de lUSART.
Un canal indique la condition Buffer Empty , le deuxime indique les conditions Underrun Error ou END.

Ces conditions dinterruption correspondent aux bits BE, UE et END du registre TSR Transmitter Status Register . Pour prendre en compte lIT le canal associ au bit doit tre actif.
M.SENHADJI Microprocesseur 21

TSR : Transmitter Status Register


Le registre TSR contient les diffrents indicateurs derreurs et les bits de contrle du transmetteur pour slectionner le mode autoturnaround et Loopback
Adresse 2D Hexa

BE

UE

AT

END

TE

TE : Transmetteur Enable TE = 0 le transmetteur est dsactiv UE = 0 et END = 1 TE = 1 transmetteur est activ, la sortie du transmetteur devra prendre la valeur programme dans H,L jusquau moment ou la transmission dmarre. Par consquent un bit (le premier) sera transmit en trop avant de transmettre la donne dans le registre a dcalage.
M.SENHADJI Microprocesseur 22

11

Registre tat transmission : TSR


BE : Buffer Empty : BE = 1 contenu du Buffer de transmission UDR transfr au registre a dcallage du transmetteur BE = 0 donne encore prsente dans le Buffer de transmission UDR UE : Underrun Error : UE = 1 lorsque la donne du registre dcalage est en cours de transmission alors quon reoit une nouvelle donne dans le buffer de transmission. UE = 0 lors de la lecture du registre TSR ou par la dsactivation du transmetteur.
M.SENHADJI Microprocesseur 23

Registre tat transmission : TSR


AT : Auto-Turnaround ; lorsque ce bit est 1 le receveur est activ automatiquement lorsque le transmetteur est dsactiv et que le dernier caractre soit transmis compltement. Ce bit est remis zro la fin de la transmission. AT = 1 crit par le MPU : activation automatique du rcepteur lorsque le transmetteur est dsactiv AT = 0 transmetteur dsactiv END : End of transmission : END = 1 Transmetteur dsactiv END = 0 Transmetteur activ lorsque le transmetteur est dsactiv alors quun caractre est encours de transmission le bit END est positionn 1 aprs la transmission complte du caractre. Sil ny a pas de donn en cours de transmission lorsque le transmetteur est dsactiv, le bit END est immdiatement positionn a 1. Il est remis a zro lorsque le transmetteur est ractiv.

M.SENHADJI

Microprocesseur

24

12

Registre tat transmission : TSR


B : En mode Synchrone ce bit na pas de fonction. B=1 un break est transmis : Un break consiste a transmettre une donne constitue que de zros sans bit de stop. B=0 la condition de break cesse dtre envoy. H, L : High and Low : Ces bits de contrle configurent la sortie srie SO lorsque le transmetteur est dsactiv. H L Output State 0 0 High impedance 0 1 Low 1 0 High 1 1 Loopback Le mode Loopback effectue la connexion en interne de la sortie srie vers lentre srie et lhorloge du transmetteur vers lhorloge du rcepteur
Microprocesseur 25

M.SENHADJI

Ex 6 : Programmation USART
Envoi dun message sur le port serie : 1200 Baud, parit paire, 7 bits de donnes

M.SENHADJI

Microprocesseur

26

13

You might also like