11
Sériová komunikácia 0 1 0 0 1 1 1 0 S t a r t S t o p D0 D1 D2 D3 D4 D5 D6 D7 Znak 8- bit 0 1 t Y

S ériová komunikácia

Embed Size (px)

DESCRIPTION

S ériová komunikácia. Y. 1. 0. Start. Stop. 1. 0. 1. 0. 0. 1. 0. 1. D7. D6. D5. D4. D3. D2. D1. D0. t. Znak 8-bit. Vlastnosti sériového kanálu (UART). UART – Universal Asynchro Receiver-Transceiver Je plne duplexný, t.j. môže súčasne vysielať i prijímať dáta - PowerPoint PPT Presentation

Citation preview

Page 1: S ériová komunikácia

Sériová komunikácia

0 1 0 0 11 10

Start

Stop

D0D1D2D3D4D5D6D7

Znak 8-bit

01

t

Y

Page 2: S ériová komunikácia

• UART – Universal Asynchro Receiver-Transceiver• Je plne duplexný, t.j. môže súčasne vysielať i prijímať dáta• Umožňuje to samostatný register vysielača a register

prijímača (SBUF – Serial Buffer)• Vysielací a prijímací register ( SBUF ) má rovnakú adresu

(99h – oblasť SFR) • Bajt dát pre vysielanie sa zapisuje do SBUF registra

vysielača signálom Write• Prijatý bajt dát sa číta z SBUF registra prijímača signálom

Read• Môže pracovať v 4 módoch činnosti : mod0 – mod3

Vlastnosti sériového kanálu (UART)

Page 3: S ériová komunikácia

Zloženie sériového kanálu ( UART )

Procesor

SBUF vysielača

SBUF prijímača

OSC

: 12

1 MHz

DATA 8 bit

CLK

CLK

RxD (P3.0) TxD (P3.1)

D7 D6 D5 D4 D3 D2 D1 D0

D7 D6 D5 D4 D3 D2 D1 D0

AT89C2051

Sériový kanál

12 MHz

TL1

TH1

TF1

Timer T1 Mod 2

Prijímač

Vysielač

Baud. Rýchlosť

Fosc MHz

Smod bit Predvoľba

2400 12 0 -13 (F3h)

1200 12 0 -26 (E6h)

Nastavenie časovača T1

0 1 0 0 11 10 SS

D0D1D2D3D4D5D6D7

Read Write

Page 4: S ériová komunikácia

• Mod1 – ide o 8-bitový UART s voliteľnou prenosovou rýchlosťou, t.j. dáta sa prenášajú systémom : štart-bit, 8 dátových bitov, stop-bit

• Registre zodpovedné za sériový prenos :

- SCON (Serial Control Register)

- SBUF (Serial Buffer – pre čítanie prijatých dát

- pre zápis dát určených na vyslanie

- PCON (obsahuje bit SMOD, určujúci prenosovú rýchlosť)

- TH1 (horný register čítača T1, tiež určuje prenosovú rýchlosť)

• TH1 – časovač T1 nastavený v mod2, s automatickou predvoľbou, zakázané prerušenie od časovača T1

Vlastnosti sériového kanálu (UART)

Page 5: S ériová komunikácia

Vlastnosti sériového kanálu (UART)

• SM0,SM1 - 00 mod0 používa sa málokedy

- 01 mod1 8-bit UART s voliteľnou rýchlosťou

- 10 mod2 9-bit UART s pevnou rýchlosťou

- 11 mod3 9-bit UART s voliteľnou rýchlosťou

• SM2 – povolenie multiprocesorovej komunikácie ( v mode 2,3 )

• REN – Receive Enable ( povolenie prijímania softverovo )

• TB8 – deviaty vysielaný bit ( v mode 2,3 )

• RB8 – deviaty prijímaný bit ( v mode 2,3 )

• TI – príznak prerušenia pri vysielaní ( znak bol úspešne vyslaný )

• RI – príznak prerušenia pri prijímaní ( ak je prijatý nový znak )

D7 D6 D5 D4 D3 D2 D1 D0

SM0 SM1 SM2 REN TB8 RB8 TI RI

SCON – Serial Control Register

Page 6: S ériová komunikácia

Algoritmus sériovej komunikácie (1)• Sériové vysielanie

- nastaviť mód sériového prenosu a prenosovú rýchlosť

- zápis dát do SBUF vysielača- čakať, pokiaľ príznak. bit TI nabehne do LOG1 (dáta vyslané)- vynulovať príznakový bit TI, aby bolo možné vyslať ďalší znak

• Sériové prijímanie- nastaviť mód sériového prenosu a prenosovú rýchlosť- povoliť sériový príjem ( nastaviť bit REN = 1 )- čakať, pokiaľ príznak. bit RI nabehne do LOG1 (dáta boli prijaté)- prečítať ( vybrať ) dáta z SBUF prijímača na ďalšie spracovanie- vynulovať príznakový bit RI, aby bolo možné prijať ďalší znak

Page 7: S ériová komunikácia

Využitie prerušenia od sériového kanálu

• Pri vzniku prerušenia od sériového kanálu procesor odskakuje na vektorovú adresu 0023h, kde je umiestnený obslužný podprogram

• Pri vzniku prerušenia sa nevie, či k prerušeniu došlo v súvislosti s vyslaním znaku alebo prijatím znaku

• Preto je pri obsluhe prerušenia nutné otestovať príznakové bity TI, resp RI, aby bolo možné vykonať správnu časť obslužného podprogramu.

• Ak TI=1 ... vznik prerušenia od vysielača sér. kanálu• Ak RI=1 ... vznik prerušenia od prijímača sér. kanálu• Po identifikácii zdroja prerušenia je nutné vynulovať tieto príznakové

bity

Algoritmus sériovej komunikácie (2)

Page 8: S ériová komunikácia

Prepojenie sériovou komunikáciou

Podmienky nadviazania komunikácie• zvolený rovnaký mód sériovej komunikácie• nastavená rovnaká prenosová rýchlosť• krížové prepojenie vysielača jedného uP s prijímačom druhého uP

Page 9: S ériová komunikácia

Program na vyslanie jedného znakuPri stlačení tlačidla dôjde ku vyslaniu znaku rýchlosťou 2400 Bd

• $mod51• Znak EQU 88h ; kod znaku " A "• org 0000h• ajmp Start ; skok na zaciatok hlavneho programu

• org 0003h ; obsluha prerusenia INT0• mov SBUF,B ; presun znaku do bufra vysielaca• reti

• org 0050h ; Zaciatokhlavneho programu• Start: mov SCON,#01000010b ; ser.kanal,mod1, povolenie vysielania• mov TMOD,#00100000b ; casovac T1,mod2, softstart (Gate=0)• mov TH1,#0f3h ; prednastavenie T1, 2400 Bd• mov TCON,#01000000b ; start casovaca ( hodinovy signal vysielaca)• mov IE,#10000001b ; povolenie prerusenia INT0• setb IT0 ; reakcia na zostupnu hranu• mov B,#Znak ; znak na vyslanie• Slucka: sjmp Slucka ; cakanie na prikaz vysielania

• end

Page 10: S ériová komunikácia

Program na príjem jedného znakuPríklad na príjem jedného znaku s využitím prerušenia sériového kanálu

• $mod51• org 0000h ; Zaciatok hlavneho programu• mov SCON,#01010000b ; ser.kanal, mod1, povolenie prijmu• mov TMOD,#00100000b ; volba casovac T1,mod2, softstart(Gate=0)• mov TH1,#0f3h ; prednastavenie T1, 2400 Bd• mov TCON,#01000000b ; start casovaca T1• mov IE,#10010000b ; povolenie prerusenia ser.kanalu• mov P1,#0ffh ; zhasnutie displeja• Slucka: sjmp Slucka ; cakacia slucka

• org 0023h ; obsluha prerusenia ser.kanalu• mov P1,SBUF ; zobrazenie prijateho znaku na displeji• clr RI ; nulovanie priznaku prijmu• reti

• end

Page 11: S ériová komunikácia

0 1 0 0 11 0S

D1D2D3D4D5D6D7

1 S

D0

Procesor

SBUF vysielača

SBUF prijímača

OSC

: 12

1 MHz

DATA 8 bit

CLK

CLK

RxD (P3.0) TxD (P3.1)

D7 D6 D5 D4 D3 D2 D1 D0

D7 D6 D5 D4 D3 D2 D1 D0

AT89C2051 - µP 1

Sériový kanál

12 MHz

TL1

TH1

TF1

Timer T1 Mod 2

Prijímač

Vysielač

Read Write