Upload
cruz-harmon
View
27
Download
0
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
Sériová komunikácia
0 1 0 0 11 10
Start
Stop
D0D1D2D3D4D5D6D7
Znak 8-bit
01
t
Y
• 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)
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
• 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)
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
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
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)
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
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
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
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