wag siklusse seriële poorte rs232 spesifikasie pc- seriële poort pc uart (8250) modems

21
RS245-2003-Lesing 20 1 • Wag siklusse • Seriële Poorte • RS232 Spesifikasie • PC- seriële poort • PC UART (8250) • Modems • Pariteit en foutkorreksie Programvoorbeeld

Upload: shania

Post on 24-Jan-2016

44 views

Category:

Documents


8 download

DESCRIPTION

Wag siklusse Seriële Poorte RS232 Spesifikasie PC- seriële poort PC UART (8250) Modems Pariteit en foutkorreksie Programvoorbeeld. WAGSIKLUSSE "Wait states" [Hoofstuk 9.5]. T1. T2. T3. T4. TCLCL. TCLAV. TCLDX. TDVCL. FLOAT. ADR. DATA IN. /RD. TCLRL. TRLDV ?. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Wag siklusse  Seriële Poorte  RS232 Spesifikasie  PC- seriële poort  PC UART (8250)   Modems

RS245-2003-Lesing 20 1

• Wag siklusse• Seriële Poorte• RS232 Spesifikasie• PC- seriële poort• PC UART (8250) • Modems• Pariteit en foutkorreksie• Programvoorbeeld

Page 2: Wag siklusse  Seriële Poorte  RS232 Spesifikasie  PC- seriële poort  PC UART (8250)   Modems

RS245-2003-Lesing 20 2

T1 T2 T3 T4TCLCL

TCLAV

ADRFLOAT

TCLRLTRLDV ?

TAVDV ?

/RD

DATA IN

TDVCLTCLDX

TAVDV = 3TCLCL -TCLAVmax -TDVCLmin "Memory access time"

DATA moet hier gereed weessodat die 8086 dit hier kan lees

WAGSIKLUSSE "Wait states" [Hoofstuk 9.5]

Page 3: Wag siklusse  Seriële Poorte  RS232 Spesifikasie  PC- seriële poort  PC UART (8250)   Modems

RS245-2003-Lesing 20 3

Indien die geheue (of poort) te stadig is, kan wagsiklusse bygevoeg word. Ekstra kloksiklusse word tussen T3 en T4 ingevoeg indien READY = 0. Die READY ingang moet aan die volgende voldoen:

TRYLCL =10 ns TCHRYX = 20 ns

T3 TW

Ready moet vroeg genoeg laag gaan en lank genoeg laag bly om TW te genereer, maar as jy dit te lank laag hou genereer jy meer as een wagsiklus: TRYLCL en TCHRYX.

(Tye vir 8086-1)

READY

T4Ekstra klok tussen T3 en T4

Data een kloksiklus later gelees

[10MHz 8086]

Page 4: Wag siklusse  Seriële Poorte  RS232 Spesifikasie  PC- seriële poort  PC UART (8250)   Modems

RS245-2003-Lesing 20 4

A16

A13

A1READY2

D8

/MWR

U2

8284

17

16

4637

141

1513

11

5810

2

12

X1

X2

RDY1RDY2AEN1AEN2EFICSYNCASYNCF/C

RES

READYCLK

RESET

PCLK

OSC

D12

A4

A15

U5

74LS377

3478

13141718

111

256912151619

D1D2D3D4D5D6D7D8

CLKG

Q1Q2Q3Q4Q5Q6Q7Q8

D[0..15]

A0

D3

A[0..19]

/IORD

VCC

U7

74LS245

23456789

191

1817161514131211

A1A2A3A4A5A6A7A8

GDIR

B1B2B3B4B5B6B7B8

A18

R1

R

SW1

SW

R6R

A19

A10

D7

D1

DIODE

D15

U4

74LS377

3478

13141718

111

256912151619

D1D2D3D4D5D6D7D8

CLKG

Q1Q2Q3Q4Q5Q6Q7Q8

U16A

74LS32

1

23

D11

R2R

R5R

D2

U17A

74LS32

1

23

A14

A3

RS245-0002 1.0B

1 1Thursday, August 21, 2003

8086 MINIMUM MODETitle

Size Document Number Rev

Date: Sheet of

Y1CRYSTAL

U18A

74LS32

1

23

D6

C1C

U11A

74LS04

1 2

U19A

74LS32

1

23

D10

A8

R7

/IOWR

D1

U10

8086MIN

33

221921

18

30311723

16151413121110987654323938373635

34

262728

32292524

MN

READYCLKRESET

INTR

HLDAHOLDNMITEST

AD0AD1AD2AD3AD4AD5AD6AD7AD8AD9

AD10AD11AD12AD13AD14AD15

A16/S3A17/S4A18/S5A19/S6

BHE/S7

DENDT/RM/IO

RDWRALE

INTA

A5

R4R

A17

R3

R

D9

A2

D5

D0

/MRD

A11

/BHE

D14

READY1

A6

U8

74LS245

23456789

191

1817161514131211

A1A2A3A4A5A6A7A8

GDIR

B1B2B3B4B5B6B7B8

A12

U6

74LS377

3478

13141718

111

256912151619

D1D2D3D4D5D6D7D8

CLKG

Q1Q2Q3Q4Q5Q6Q7Q8

A7

D13

VCC

D4

A9

'n Gebufferde minimummodus 8086 stelsel (uit Lesing 10)

Gebruik oopkollektor aandrywing om die 8284se READY1 of READY2 laag te trek.

Page 5: Wag siklusse  Seriële Poorte  RS232 Spesifikasie  PC- seriële poort  PC UART (8250)   Modems

RS245-2003-Lesing 20 5

Seriële Poorte [11-6]

Seriële poorte dra data serieel in tyd oor. Sinchronisasie moet dus op een of ander manier bewerkstellig word sodat die ontvanger weet watter bis van 'n greep dit besig is om te ontvang.

Asinchrone seriële kommunikasie maak van 'n begin ("start") en 'n stop bis gebruik om sinchronisasie te verseker.

begin ("start") bis

1 1 1 1 1 10 0 stop bissestop bisse

3.33 ms

Die mins belangrike bis word eerste gestuur. Bostaande stel dus die getal 7BH voor. Indien een bis 3.33 ms lank is, kan 300 bisse per sekonde gestuur word. Dit gee 'n bistepo van 300 baud.

Page 6: Wag siklusse  Seriële Poorte  RS232 Spesifikasie  PC- seriële poort  PC UART (8250)   Modems

RS245-2003-Lesing 20 6

Hoe lank neem dit om een greep te stuur as een begin en twee stopbisse gebruik word?

11*3.33 ms = 36.63 ms (27.3 grepe per sekonde)

Dit is vinnig genoeg vir data wat byvoorbeeld op 'n sleutelbord ingetik word, maar heeltemal te stadig vir die ander toepassings.Spoed is die grootste probleem by seriële kommunikasie.

Die grootste voordeel is dat dit baie minder geleiers benodig aswanneer data parallel oorgedra word en die enigste praktiese manier is om data oor telefoonlyne oor te dra.

Aangesien die bandwydte van telefoonlyne beperk is (ongeveer 300 tot 3300 Hz), moet spesiale modulasietegnieke (modems) gebruik word om die data oor te dra.

Page 7: Wag siklusse  Seriële Poorte  RS232 Spesifikasie  PC- seriële poort  PC UART (8250)   Modems

RS245-2003-Lesing 20 7

Die bistempo waarteen een rekenaar data versend en die bistempo wat die ontvanger verwag moet dieselfde wees. Die ontvanger kyk na die spanningsvlak van die ontvangde sein in die (verwagte) middel van elke bis. 'n Fout van ongeveer 6% is die maksimum wat hanteer kan word.

6%te lank

"start"

Die ontvanger monster die laaste bis baie na aan die flankDie ontvanger verwag die

middel van die eerste bis hier

Met kwarts kristal ossillators is die toleransie maklik bereikbaar.

Page 8: Wag siklusse  Seriële Poorte  RS232 Spesifikasie  PC- seriële poort  PC UART (8250)   Modems

RS245-2003-Lesing 20 8

'n Eenvoudige hardeware implementering sal wag vir 'n afgaande flank (A). Die stelsel wag dan 1.5 biswydtes en klok die eerste bis (B) van die opeenvolgende 8 bisse in 'n skuiregister.

Skuifregister

Ossillator Frekwensie =16x bistempo (sê)

Beheerlogika

parallelle data

seriële data

"gereed"

A B

1.5 /bistempo (= 24 periodes van die ossillator)

Page 9: Wag siklusse  Seriële Poorte  RS232 Spesifikasie  PC- seriële poort  PC UART (8250)   Modems

RS245-2003-Lesing 20 9

Die Seriële poort van die PC voldoen aan die RS232C spesifikasie:

RS232C SPESIFIKASIE:

UITTREESPANNING: Logiese 1 : - 5 V tot -15 VLogiese 0 : + 5 V tot +15V

INTREESPANNING: Logiese 1 : -3 V tot -25 V Logiese 0 : + 3 V tot +25 V

Die ruisspeling is dus 2 V.

Vergelyk dit met gewone 5 V TTL : "1" Uitgang:2.4 V; Ingang 2.0V "0" Uitgang:0.4V; Ingang 0.8V

Speling dus slegs 0.4 V

Die PC het 'n +12V en -12V spanningsbron vir die RS232 poort. Die uittreespannings val dus binne die gespesifiseerde spannings.

RS232 Spesifikasie (p 490 (karig))

Page 10: Wag siklusse  Seriële Poorte  RS232 Spesifikasie  PC- seriële poort  PC UART (8250)   Modems

RS245-2003-Lesing 20 10

PC-seriepoort (Sien fig 11-24 vir 25 pen poort)

Die PC sok is normaalweg 'n D-tipe met 9 penne. 2 : RX Receive (Nota: 2 en 3 omgekeer vir 25 pen poort!)3 : TX Transmit4 : DTR Data terminal ready5 : GND Ground (Grond op pen 7 vir 25 pen poort )6 : DSR Data set ready7 : RTS Request to send8 : CTS Clear to send

1 : DCD (data carrier detect) en 9 : RI (Ring indicator) word vir modem verbindings gebruik.

Indien jy nie die CTS lyn en DSR lyn gaan monitor nie is dit slegs nodig omTX aan RX (en RX aan TX) en die twee rekenaars se grondlyne te verbind.

Verbind CTS aan RTS en DSR aan DTR as wil handskud (byvoorbeeld as jy vir die sender wil sê dat die data te vinnig kom stel jy DTR "not ready")

Page 11: Wag siklusse  Seriële Poorte  RS232 Spesifikasie  PC- seriële poort  PC UART (8250)   Modems

RS245-2003-Lesing 20 11

PC UART (8250 of ekwivalent) [11-6]

Die PC16550D wat in Brey beskryf word het 'n interne Fifo van 16 bisse.(Ons ignoreer vir eers die Fifo.)8250 Inligting vir COM1 : (Gebruik 2F8H ens vir die COM2 poort)

Port addres Register3F8H * transmitter holding register3F8H * receiver data register3F8H ~ baud-rate divisor (LSB) 115200/baud-rate3F9H ~ baud-rate divisor (MSB)3F9H * Interrupt-enable register3FAH Interrupt identification register3FBH Line-control register3FCH modem-control register3FDH line-status register3FEH modem-status register

* Bit 7 of the line control register = 0~ Bit 7 of the line control register = 1

Page 12: Wag siklusse  Seriële Poorte  RS232 Spesifikasie  PC- seriële poort  PC UART (8250)   Modems

RS245-2003-Lesing 20 12

Line-control register 3FBH of 2FBH:

7 6 5 4 3 2 1 0

Character length0 0 = 5 bits0 1 = 6 bits1 0 = 7 bits1 1 = 8 bits

Stop bits : 0 = 1 1 = 1.5 if character length = 5 1 = 2 if character length > 5Parity

0 0 No parity 1 0 No parity0 1 Odd parity1 1 Even parity

0 : No effect1 : If bit 3 = 1 and bit 4 = 0 then parity bit allways = 1 If bit 3 =1 and bit 4 = 1 then parity bit allways = 0 If bit 3 = 0 then no parity bit.

0 : Disabled1 : set break. Serial data out = 0 regardless

0 : Normal value1 : address baud-rate divisors

Page 13: Wag siklusse  Seriële Poorte  RS232 Spesifikasie  PC- seriële poort  PC UART (8250)   Modems

RS245-2003-Lesing 20 13

Modem-control register 3FCH of 2FCH:

7 6 5 4 3 2 1 0

1 = DTR active

1 = RTS active

x

0 = disable interrupts

1 = UART is looped back. Nota: Wek blykbaar nie onderbreking op nie

0 0 0

Page 14: Wag siklusse  Seriële Poorte  RS232 Spesifikasie  PC- seriële poort  PC UART (8250)   Modems

RS245-2003-Lesing 20 14

7 6 5 4 3 2 1 0

Interrupt-enable register 3F9H of 2F9H :

1 = enable RX data ready interrupt

1 = enable TX holding register empty interrupt

1 = enable received character error or received break condition interrupt

1 = enable a change in modem status interrupt

0 0 0 0

Nota: Bis 7 van Line control register = 0

Page 15: Wag siklusse  Seriële Poorte  RS232 Spesifikasie  PC- seriële poort  PC UART (8250)   Modems

RS245-2003-Lesing 20 15

7 6 5 4 3 2 1 0

Interrupt identification register 3FAH of 2FAH:

0 0 0 0 0

0 = interrupt pending1 = no interrupts pending

0 0 = modem0 1 = TX1 0 = RX1 1 = error or break condition

Page 16: Wag siklusse  Seriële Poorte  RS232 Spesifikasie  PC- seriële poort  PC UART (8250)   Modems

RS245-2003-Lesing 20 16

7 6 5 4 3 2 1 0

Line status register 3FDH of 2FDH:

Status exists if bit = 1

rx ready overrun error parity error framing error break detect tx holding register emptytransmit shift register empty

Page 17: Wag siklusse  Seriële Poorte  RS232 Spesifikasie  PC- seriële poort  PC UART (8250)   Modems

RS245-2003-Lesing 20 17

7 6 5 4 3 2 1 0

Modem status register 3FEH of 2FEH:

Status exists if bit = 1

Delta CTS Delta DSR Delta RI Delta DCD CTS DSR RI DCD

Page 18: Wag siklusse  Seriële Poorte  RS232 Spesifikasie  PC- seriële poort  PC UART (8250)   Modems

RS245-2003-Lesing 20 18

MODEMS ("modulator-demodulator")

Die gewone telefoonlyn het laag en hoog afsnyfrekwensiesvan ongeveer 300 Hz en 3300 Hz. Data kan dus nie direkversend word nie. Daar word dus van modulators en demodulators gebruik gemaak. Een frekwensie (tussen 300en 3300 hz) kan byvoorbeeld vir 0'e en 'n ander frekwensie vir 1'e gebruik word. In moderne hoëspoed modems word beide die amplitude en fase van die sein gemoduleer. Met 2 amplitudes en 8 fases kan 4 bisse gelyktydig versend word. Die bistempo is dus hoër as die "baudrate" (aantal veranderings per sekonde).

Page 19: Wag siklusse  Seriële Poorte  RS232 Spesifikasie  PC- seriële poort  PC UART (8250)   Modems

RS245-2003-Lesing 20 19

Pariteit en foutkorreksie

'n Pariteitsbis kan by die data gevoeg word om (beperkte) foutdeteksie te doen. Vir ewe pariteit word die pariteitsbis gestel om 'n ewe aantal ene te gee. Bv. Vir die ASCII "A" (41H) is die pariteitsbis 0 vir ewe pariteit.

Die pariteitsbis kan slegs enkelbis foute uitwys en kan nie gebruik word om foutkorreksie te doen nie. Deur addisionele bisse by te voeg kan beide foutdeteksie en korreksie gedoen word - in ander kursusse behandel.

Page 20: Wag siklusse  Seriële Poorte  RS232 Spesifikasie  PC- seriële poort  PC UART (8250)   Modems

RS245-2003-Lesing 20 20

setup_: ;Voorbeeld seriepoort opstelling push ax push dx mov dx,2FBH ; line-control register mov al,80H out dx,al ; Line control reg MSB =1 to set Baud rate mov dx,2F8H ;Baud Rate register LSB mov al,00H out dx,al ; baud rate divisor LSB 4800 baud

mov dx,2F9H ; Baud Rate register MSB mov al,18H out dx,al ;baud rate divisor MSB 4800 baud mov dx,2FBH ; line control register mov al,07H out dx,al ; 8 bit data, no parity, 2 stop bits mov dx,2FCH ; modem control register mov al,07H out dx,al ; disable interrupts mov dx,2F9H ; interrupt enable register mov al,00H out dx,al ; no interrupts enabled pop dx pop ax ret 0

Page 21: Wag siklusse  Seriële Poorte  RS232 Spesifikasie  PC- seriële poort  PC UART (8250)   Modems

RS245-2003-Lesing 20 21

; xmit function

xmit_: push dx push ax ; byte to transmit passed in al mov dx,2FDH ; line status register wait: in al ,dx ; get status and al,20H ; test if transmit holding register empty jz wait mov dx,2F8H ; transmit holding register pop ax ; get byte to send out dx,al ; send the byte pop dx ret 0

Shift reg

Holding reg

clk Serial data