Title: INTEL 8251A USART (univerzalni sinhrono/asinhroni risiver/transmiter)
1 INTEL 8251A USART(univerzalni
sinhrono/asinhroni risiver/transmiter)
- Dejan Stojnic, ds13_at_beotel.net
- Tatjana Petrovic, tanja_at_etf.bg.ac.yu
- Prof. Dr. Veljko Milutinovic, vm_at_etf.bg.ac.yu
2Osnovne karakteristike
- sinhroni i asinhroni mod rada
- full-duplex, duplo baferovan transmiter i risiver
- korekcija grešaka
- svi ulazi i izlazi su TTL kompatibilni
3Osnovne karakteristike
- uredaj prihvata od procesora podatke za slanje u
paralelnom formatu, konvertuje ih u serijski
format a zatim šalje na port/ka modemu, a
istovremeno prihvata sa porta/modema serijski niz
podataka, konvertuje ih u paralelni format, a
zatim šalje ka procesoru - 8251A takode briše ili ubacuje bite ili karaktere
karakteristicne za izabranu tehniku komunikacije
(start, stop, parity bite...) - suština je da uredaj bude transparentan za
procesor, tj. da se ponaša kao jednostavan
ulaz/izlaz za bajtovski orijentisane podatke koje
prima/šalje procesor
4Interna struktura
5 Interna struktura
6Interna struktura
- 9 registara
- procesor može pristupiti svim registrima osim
receiver/transmitter shift registrima - 8251A ima samo 2 interne adrese, a kojoj od njih
se pristupa odreduje se preko pina C/D koji se
vezuje na adresnu magistralu
7Interna struktura
- kombinacije signala C/D, RD i WR 8251A
interpretira na sledeci nacin
C/D RD WR
0 0 1 podatak se uzima iz Data-in buffer-a
0 1 0 podatak se šalje u Data-out buffer
1 0 1 Status registar se šalje na Data magistralu
1 1 0 sa Data magistrale se šalje podatak u jedan od sledeca 4 registra Mode, Control ili Sync character 1 i 2
8Interna struktura
- blok Data Bus Buffer trostaticki, bidirekcioni,
8-bitni bafer - povezuje 8251A sa sistemskom Data magistralom
- svi podaci, kao i kontrolne reci, komandne reci,
i statusne reci se šalju i primaju preko ovog
bloka
9Interna struktura
- CS pin se povezuje sa adresnim dekoderom
- pinovi RESET, RD i WR se povezuju standardno sa
sistemskim signalima - pin CLK se obicno povezuje sa klokom izvedenim is
sistemskog kloka (PCLK)
10Interna struktura
- pin TxD služi za serijski izlaz podataka
- blok TRANSMIT BUFFER prihvata podatke iz bloka
DATA BUS BUFFER, konvertuje ih u serijski niz
podataka, ubacuje odgovarajuce karaktere/bite
(parity, start i stop bite...) i šalje ovaj niz
na TxD pin
11Interna struktura
- da bi mogao da shiftuje podatke, shift registar
unutar ovog bloka zahteva signal takta on se
dovodi preko pina TxC - blok TRANSMIT CONTROL kontroliše sve aktivnosti
tj. signale povezane sa transimisijom podataka -
12Interna struktura
- pin TxRDY se postavlja na visok nivo, kada je
bafer prazan, i to znaci da procesor tada može da
pošalje sledeci karakter - kada procesor pošalje karakter TxRDY pin se
automatski resetuje na opadajucu ivicu signala
WR. - ovaj pin se može povezati na interrupt controler
sistema, ili ako se koristi mehanizam polling-a
njegov status se može proveravati preko STATUS
registra - pin TxEMPTY se postavlja na visok nivo kada su
prazni i prihvatni bafer i shift registar u bloku
TRANSMIT BUFFER, odnosno kada 8251a nema više
karaktera u sebi za slanje -
13Interna struktura
- pin RxD služi sa serijski ulaz
- blok RECEIVE BUFFER prihvata serijski niz
podataka preko pina RxD, konvertuje ga u
paralelni format,proverava/odbacuje
karaktere/bite specificne za korišcenu tehniku
prenosa, i zatim šalje podatak na Data magistralu
preko bloka DATA BUS BUFFER
14Interna struktura
- da bi mogao da shiftuje podatke, shift registar
unutar ovog bloka zahteva signal takta on se
dovodi preko pina RxC - blok RECEIVE CONTROL kontroliše sve aktivnosti
tj. signale vezane za prijem podataka
15Interna struktura
- pin RxRDY se postavlja na visok nivo, kada je
karakter prebacen iz shift registra u prihvatni
bafer, tj. kada je spreman da ga procita
procesor, a resetuje se automatski nakon što
procesor procita karakter - ako procesor ne procita karakter pre nego što se
sledeci karakter prebaci iz shift registra u
bafer, prethodni karakter ce biti prebrisan i
izgubljen
16Interna struktura
- na TxC i RxC se vezuje obicno isti signal takta
- podaci izlaze iz 8251a na opadajucu ivicu takta
TxC, i analogno tome ulaze na opadajucu ivicu RxC - frekvencija takta mora biti ili jednaka ili 16
ili 64 puta veca od željenog baud rate-a - ako je frekvencija takta veca od baud rate-a
verovatnoca pojave šuma, a samim tim i greške je
manja
17Interna struktura
- 8251a je duplo-baferovan
- ovo znaci da je moguce istovremeno ucitavati
karakter u bafer, dok se drugi karakter shift-uje
kroz odgovarajuci shift registar - ovo važi i za transmiter, i za receiver
18Interna struktura
- pin SYNDET/BD (sync-detect/break-detect) se
koristi u zavisnoti od moda rada - u asinhronom modu, ovaj pin se postavlja na visok
nivo, ako ulazni pin RxD ostane na niskom nivou
svo vreme u toku uzastopne 2 stop-bit sekvence
(ukljucujuci start bite, data bite i parity bite) - u sinhronom modu rada, postavlja se na visok nivo
kada 8251a pronade specificne karaktere za
sinhronizaciju u ulaznom nizu podataka
19Interna struktura
- pinovi DSR, DTR, CTS i RTS bloka MODEM CONTROL se
koriste za handshake kada je 8251a povezan sa
modemom - ako je to potrebno ovi signali se mogu koristiti
i u druge svrhe
20Inicijalizacija
- kompletna inicijalizacija 8251a se vrši
softverskim putem - procesor šalje set kontrolnih reci, i
inicijalizuje 8251a u željeni nacin rada - ove kontrolne reci izmedu ostalog odreduju baud
rate, dužinu karaktera, broj stop bita, sinhroni
ili asinhroni mod rada, mod za proveru parnosti
(even,odd,off), itd...
21Inicijalizacija
- kontrolne reci se dele u 2 grupe
- MODE instrukcija
- COMMAND instrukcija
- redosled slanja ovih instrukcija od strane
procesora mora zadovoljiti specificnu sekvencu da
bi 8251a ispravno funkcionisao
22Inicijalizacija
- MODE instrukcija, asinhroni režim rada
- napomena slika se odnosi na asinhroni režim
rada, biti D7 i D6, imaju drugacije znacenje nego
na slici, za sinhroni režim rada
23Inicijalizacija
- baud-rate faktor (odreden bitima D1 i D0)
predtavlja odnos izmedu signala takta na ulazima
TxC i RxC i željenog baud-rate-a. - npr. ako želimo da šaljemo podatke brzinom od
1200 Bd, a na TxC ulazu je takt od 19200 Hz,
baud-rate faktor je 16X, odnosno B2 treba
postaviti na 1, a B1 na 0 - u sinhronom režimu rada, baud-rate je isti kao i
takt TxC i RxC
24Inicijalizacija
- dužina karaktera specificirana bitovima D3 i D2
podrazumeva samo bitove podataka, a ne i start
bit, bit parnosti i stop bit(e). - bit D4 odreduje da li je ukljucena provera
parnosti - bit D5 odreduje nacin generisanja bita parnosti,
a biti D6 i D7 broj stop bita
25Inicijalizacija
- ako je parnost ukljucena, bit koji se koristi za
proveru parnosti, se ne smatra kao deo reci
(karaktera) - bit parnosti koji je primljen preko RxD pina, se
ne može procitati preko Data Bus-a - u slucaju izabrane dužine karaktera koja je manja
od 8 bita, podatak se upisuje u 8251a preko grupe
nižih bita Data Bus-a, dok je ostatak bita
nebitan, a u slucaju citanja podataka iz 8251a
viši biti ce biti postavljeni na 0
26Inicijalizacija
- MODE instrukcija, sinhroni režim rada
27Inicijalizacija
- nakon što je poslao MODE instrukciju, procesor
šalje Sync Character 1 i Sync Character 2, ako je
MODE instrukcijom zadat sinhroni režim rada,
odnosno preskace ove 2 reci, i šalje odmah
COMMAND instrukciju, za slucaj asinhronog režima
rada (režim rada je odreden bitovima D1 i D0 MODE
instrukcije)
28Inicijalizacija
- COMMAND instrukcija ima sledeci format
29Inicijalizacija
- bit D0 enabluje transmitter sekciju uredaja, i
TxRDY izlaz - TxRDY signal može biti spojen na interapt ulaz
procesora, ili na interapt kontroler - bit D1 Data terminal ready ovaj signal se
koristi da kaže modemu da je terminal/kompjuter
operacionalan - bit D2 enabluje RxRDY izlazni pin
- RxRDY signal takode može biti spojen na interapt
ulaz procesora, ili na interapt kontroler
30Inicijalizacija
- ako bit D3 postavimo na 1, 8251a ce izbaciti na
izlaz break karakter karakter koji se sastoji
od svih 0 ovaj karakter se ponekad koristi da
signalizira kraj bloka podataka koji se šalju - ako bit D4 postavimo na 1, 8251a ce resetovati
parity, overrun i framing error flegove u
statusnom registru - ako bit D5 postavimo na 1, RTS pin se postavlja
na 0 ovaj signal se šalje modemu radi upita da
li je modem/risiver spreman da mu bude poslat
karakter
31Inicijalizacija
- stavljanjem 1 u bit D6 komandne reci, uzrokuje
interni reset uredaja, nakon što je komandna
(COMMAND) instrukcija poslata nakon toga uredaju
mora biti poslata nova MODE instrukcija - bit D7 komandne reci se koristi samo u sinhronom
modu ako je postavljen na 1, 8251a ce tražiti
specificirane sinhronizacione karaktere u nizu
bitova koji se prima ako ih pronade postavice
pin SYNDET/BD na visok nivo
32Inicijalizacija
33Inicijalizacija
- STATUS registar omogucava programeru da u svakom
momentu normalnog rada uredaja procita status
uredaja - neki od bitova STATUS registra imaju identicno
znacenje kao i izlazni pinovi 8251a - izuzetak je TxRDY pin (pogledati objašnjenje na
dnu prethodne slike)
34Inicijalizacija
- nakon paljenja uredaja, ne možemo tacno znati u
kojem režimu rada se našao uredaj (da li ocekuje
MODE, SYNC CHARACTER ili COMMAND instrukciju) - zbog toga je potrebno izvršiti worst-case
inicijalizacionu sekvencu pretpostavicemo da
uredaj ocekuje MODE instrukciju, pa cemo ga
inicijalizovati u sinhroni režim rada, sa 2
sinhronizaciona karaktera ovo postižemo upisom
na kontrolnu adresu 3 uzastopna bajta kojima su
vrednosti svih bita 0 - zatim softverski resetujemo uredaj, tako što
šaljemo COMMAND instrukciju, u kojoj bit D6 ima
vrednost 1
35Inicijalizacija
- prilikom inicijalizacije uredaja, treba obratiti
pažnju i na vreme oporavka (write-recovery
time)koje iznosi 16 taktova signala prikacenog na
ulazni CLK pin - prilikom upisivanja obicnih podataka u 8251a,
ne treba voditi racuna o ovome, pošto novi
karakter ne može biti upisan, sve dok se
prethodni shiftuje kroz shift registar, a ovo
vreme je mnogo duže od vremena oporavka - sledeca slika prikazuje kako treba
inicijalizovati 8251a
36Inicijalizacija
37Slanje i primanje karaktera
- karaktere možemo slati i primati na 2 nacina
- mehanizmom interrupt-a
- mehanizmom polling-a
38Slanje i primanje karaktera
- mehanizam interrupt-a slanje
- TxRDY pin se poveže na interrupt ulaz procesora
ili na interrupt kontroler - u kontrolnoj reci bit D1 se postavi na 1
- kada je CTS pin na niskom nivou, i bafer spreman
da prihvati podatak, TxRDY pin ce se postaviti na
visok nivo - ako je mehanizam prekida dozvoljen, procesor ce
otici u prekidnu rutinu, koja ce poslati karakter
na adresu za podatke 8251a - nakon toga, automatski 8251a ce resetovati TxRDY
signal, koji ce ostati na niskom nivou sve dok
bafer ponovo nije spreman da prihvati karakter - u prekidnoj rutini možemo koristiti brojac koji
broji karaktere
39Slanje i primanje karaktera
- mehanizam interrupt-a prijem
- RxRDY pin se poveže na interrupt ulaz procesora
ili na interrupt kontroler - u kontrolnoj reci bit D2 se postavi na 1
- kada 8251a primi karakter, on ga smešta u ulazni
bafer, i kada je karakter spreman da ga procesor
procita, RxRDY pin se postavlja na visok nivo - ako je mehanizam prekida dozvoljen, procesor ce
otici u prekidnu rutinu, koja ce procitati
karakter - nakon toga resetovace se RxRDY signal, i ostace
na niskom nivou sve dok naredni karakter nije
spreman za citanje
40Slanje i primanje karaktera
- mehanizam pollinga
- zasniva se na proveri bita statusnog registra
- citamo i proveravamo u petlji bite - D0 (za
slanje TxRDY) ili D1 (za prijem - RxRDY) sve
dok ne dobiju vrednost 1 - zatim šaljemo/citamo podatak, a analogno
mehanizmu interrupt-a, nakon slanja/citanja,
odgovarajuci bit u statusnom registru ce se
resetovati, sve dok uredaj nije spreman da primi
novi podatak za slanje, odnosno dok ne primi novi
podatak sa periferije, kada se odgovarajuci bit u
statusnom registru ponovo postavlja na visok nivo - sledeca slika prikazuje ovaj proces
41Slanje i primanje karaktera
42RS-232C standard
- TTL nivoi signala (koje daje 8251a na svojim
izlazima) nisu pogodni za prenos na daljinu - zato oni moraju biti konvertovani u drugi oblik
jedan od mogucih je i RS-232C standard - RS-232C standard je razvijen 60-ih godina kao
rezultat potrebe da se povežu DTE i DCE uredaji - DCE Data Communication Equipment (modemi, i
sl...) - DTE Data Terminal Equipment (terminali,
kompjuteri koji šalju i primaju podatke...)
43RS-232C standard
- ovaj standard opisuje funkciju 25 signala i
handshake pinova za serijski prenos podataka - takode opisuje i elektricne karakteristike ovih
signala - specificirano je takode da DTE konektor treba da
bude muški, a DCE ženski konektor - najcešce korišceni konektori su DB-25P muški
konektor, a za sisteme gde nisu potrebni svih 25
pina, koristi se 9-pinski DIN konektor, na primer
DE-9P muški konektor, i prikazani su na sledecoj
slici
44RS-232C standard
- pošto se TTL i RS-232C logicki nivoi razlikuju,
signali iz 8251a moraju biti konvertovani pomocu
translatora nivoa (npr. MAX232) na RS-232C
logicke nivoe, pa tek onda povezani sa konektorom
45RS-232C standard
- na ovoj slici je prikazan opis svih 25 RS-232C
signala
46Literatura
- 1. Microprocessors and Interfacing Douglas V.
Hall - 2. Microcomputer Systems The 8086/8088 Family
Yu Cheng Liu, Glenn A. Gibson - 3. www.datasheetarchive.com
47Kraj prezentacije )...hvala na pažnji...
- prezentacija se može preuzeti sa
http//galeb.etf.bg.ac.yu/vm/os/osmips.html