31
MCS51 - wykład 4

MCS51 - wykład 4

  • Upload
    taylor

  • View
    51

  • Download
    0

Embed Size (px)

DESCRIPTION

MCS51 - wykład 4. Wykład 3 1/30. Porty szeregowe MCS51 Standardowy SIO Wybrane rozszerzenia i modyfikacje. Cechy standardowego SIO: - PowerPoint PPT Presentation

Citation preview

Page 1: MCS51 - wykład 4

MCS51 - wykład 4

Page 2: MCS51 - wykład 4

Wykład 3 1/30

Porty szeregowe MCS51

Standardowy SIO

Wybrane rozszerzenia i modyfikacje

Page 3: MCS51 - wykład 4

MCS51 - standardowy SIO 2/30

Cechy standardowego SIO:

• możliwość transmisji synchronicznej danych 8-bitowych, ze stałą prędkością, w półdupleksie;

• możliwość transmisji asynchronicznej danych 8- lub 9-bitowych, ze stałą lub programowaną prędkością w pełnym dupleksie;

• możliwość transmisji krótszych znaków, przy odpowiedniej interpretacji programowej;

• pojedyncze rejestry buforujące nadajnik i odbiornik;

• dostęp do danych poprzez rejestr buforowy SBUF;

• sterowanie pracą poprzez rejestr SCON i bit SMOD w rej. PCON;

• możliwość realizacji transmisji wieloprocesorowej;

• indywidualne flagi zakończenia odbioru RI oraz nadawania TI;

• możliwość zgłaszania przerwań jako sumy logicznej RI TI.

Page 4: MCS51 - wykład 4

MCS51 - standardowy SIO 3/30

Rejestry sterujące:

SM0,SM1,SM2 - wybór jednego z trybów pracy:

0 0 0 - tryb 0 - synchroniczny

0 1 0 - tryb 1 - asynchroniczny - szybkość programowalna

0 1 1 - tryb 1 - asynchroniczny z oczekiwaniem na poprawny bit stopu szybkość programowalna

1 0 0 - tryb 2 - asynchroniczny - stała szybkość

1 0 1 - tryb 2 - asynchroniczny z ignorowaniem odebranej danej, jeżeli jej 9-ty bit był zerem, stała szybkość

1 1 0 - tryb 3 - asynchroniczny - szybkość programowalna

1 1 1 - tryb 3 - asynchroniczny z ignorowaniem odebranej danej, jeżeli jej 9-ty bit był zerem, szybkość programowalna

SM0 9F SM1 9E SM2 9D REN 9C TB8 9B RB8 9A TI 99 RI 98SCON 98h

Page 5: MCS51 - wykład 4

MCS51 - standardowy SIO 4/30

REN - bit włączający odbiornik

TB8 - 9-ty bit danej do wysłania (w trybie 2 lub 3)

RB8 - odebrany 9-ty bit danej (w trybie 2 lub 3)

TI - flaga przerwania od nadajnika, ustawiana po wysłaniu ostatniego bitu, musi być kasowana programowo

RI - flaga przerwania od odbiornika, ustawiana po odebraniu ostatniego bitu, musi być kasowana programowo

SMOD - - - GF1 GF0 PD IDLPCON 87h

99hSBUF

SMOD - bit zdwojenia prędkości pracy portu szeregowego w trybach 1,2 i 3

SBUF - rejestr buforowy nadajnika/odbiornika

Page 6: MCS51 - wykład 4

MCS51 - standardowy SIO 5/30

Praca w trybie 0 - synchronicznym

Page 7: MCS51 - wykład 4

Transmisja w trybie 0 - synchronicznym

MCS51 - standardowy SIO 6/30

Page 8: MCS51 - wykład 4

MCS51 - standardowy SIO 7/30

Praca w trybie 1 - asynchronicznym 8-bitowym

Page 9: MCS51 - wykład 4

MCS51 - standardowy SIO 8/30

Transmisja w trybie 1 - asynchronicznym

Page 10: MCS51 - wykład 4

MCS51 - standardowy SIO 9/30

Praca w trybie 2 i 3 - asynchronicznych 9-bitowych

Page 11: MCS51 - wykład 4

MCS51 - standardowy SIO 10/30

Transmisja w trybie 2 i 3 - asynchronicznym

Page 12: MCS51 - wykład 4

MCS51 - standardowy SIO 11/30

Dostępne szybkości transmisji:

1. tryb synchroniczny: fB = fOSC/12

2. tryby asynchroniczne 1 i 3: fB = 2SMODfTF1/32

3. tryb asynchroniczny 2: fB = 2SMODfOSC/64

Wykorzystując timer/licznik 1 z 8-bitowym z aut. przeładowaniem mamy:

fB = 2SMODfOSC : 12 : 32 : (256-TH1)

Wykorzystując timer/licznik 2 z 16-bitowym przeładowaniem mamy:

fB = fOSC : 32 : (65536-RCAP2)

Page 13: MCS51 - wykład 4

MCS51 - standardowy SIO 12/30

PORT SZEREGOWY TIMER/LICZNIK 1mod szybkość fOSC

[MHz]bit

SMODbitC/T

tryb stałaprzeładowania

0 1MHz 12,000 x x x x2 375000bod 12,000 1 x x x2 187500bod 12,000 0 x x x

1,3 62500bod 12,000 1 0 2 0FFh1,3 19200bod 11,059 1 0 2 0FDh1,3 9600bod 11,059 0 0 2 0FDh1,3 4800bod 11,059 0 0 2 0FAh1,3 2400bod 11,059 0 0 2 0F4h1,3 1200bod 11,059 0 0 2 0E8h1,3 600bod 11,059 0 0 2 0D0h1,3 300bod 11,059 0 0 2 0A0h1,3 137,5bod 11,059 0 0 2 1Dh1,3 110bod 6,000 0 0 2 72h1,3 110bod 12,000 0 0 1 0FEEBh

przykładowe szybkości transmisji i wykorzystanie timera/licznika #1

Page 14: MCS51 - wykład 4

MCS51 - standardowy SIO 13/30

Dostrojenie do żądanej prędkości transmisji przy odbiorze

Odbiór przy dokładnej fB*:

Odbiór przy zawyżonej fB w odbiorniku (fB > fB*):

Odbiór przy zaniżonej fB w odbiorniku (fB < fB*):

start odbioruzerowanie dzielnika ‘:16’- „resynchronizacja”

Warunek poprawnego odbioru:odczyt poprawny ostatniego bitu (RB8) i STOPU=1

Page 15: MCS51 - wykład 4

MCS51 - standardowy SIO 14/30

0 1 2 3 4 5 6 7 8 9 A B C D E Fstany podzielnika‘:16’ przy odczyciebitu w trybach 1,2 i 3

stan linii RxD

0 1 2 3 4 5 6 7 8 9 A B C D E F

0 1 2 3 4 5 6 7 8 9 A B C D

STOP(11 bit ramki)

(10+6/16)1/fBMAX

(10+10/16)1/fBMIN

101/fB* 111/fB

*

Page 16: MCS51 - wykład 4

MCS51 - standardowy SIO 15/30

Oszacowanie tolerancji częstotliwości pracy fB odbiornika:

%4,3

%7,3ff

f966,0f176

170)

16

1010(

11

ff

f037,1f160

166)

16

610(

10

ff

*BB

*B

*B

*B

BMIN

*B

*B

*B

BMAX

Page 17: MCS51 - wykład 4

MCS51 - standardowy SIO 16/30

Dostrojenie do żądanej prędkości transmisji przy nadawaniu

Nadawanie dokładnie z fB = fB*:

Nadawanie przy zawyżonej fB w nadajniku (fB > fB*):

Nadawanie przy zaniżonej fB w nadajniku (fB < fB*):

start nadawania/odbioru- „resynchronizacja”

Warunek poprawnego nadawania/odbioru:odczyt poprawny ostatniego bitu (TB8) i STOPU=1

Page 18: MCS51 - wykład 4

MCS51 - standardowy SIO 17/30

0 1 2 3 4 5 6 7 8 9 A B C D E Fstany podzielnika‘:16’ przy odczyciebitu w trybach 1,2 i 3

stan linii RxD

0 1 2 3 4 5 6 7 8 9 A B C D E F

0 1 2 3 4 5 6 7 8 9 A B

STOP(11 bit ramki)

111/fBMAX

101/fBMIN

(10+6/16)1/fB

*

(10+10/16)1/fB*

Page 19: MCS51 - wykład 4

MCS51 - standardowy SIO 18/30

%6,3%7,3ff

f964,0f166

160

166

10

10ff

f037,1f160

166

1610

10

11ff

*BB

*B

*B

*B

BMIN

*B

*B

*B

BMAX

Oszacowanie tolerancji częstotliwości pracy fB nadajnika:

Ostrzejsze kryteria narzuca poprawny odbiór i one są decydujące:

%4,3

%7,3ff *BB

Page 20: MCS51 - wykład 4

MCS51 - standardowy SIO 19/30

Możliwości uzyskania poprawnych wartości fB <fBMIN ; fBMAX> przy różnych fOSC

B

OSCSMOD

f3212

f2INT2561TH

fB* tolerancja TH1 SMOD przy fOSC fB

1200 1159...1244 230 0 12MHz 1202

2400 2318...2489 243 0 12MHz 2404

4800 4636...4978 243 1 12MHz 4808

9600 9274...9955 251 1 9MHz 9375

19200 18547...19910 254 0 15MHz 19531

38400 37094...39821 255 0 15MHz 39063

Page 21: MCS51 - wykład 4

MCS51 - standardowy SIO 20/30

Transmisja wieloprocesorowa

RxD TxD

C1

RxD TxD

C2

RxD TxD

Ck

rozproszony system automatyki/pomiarów

• wymiana informacji o procesie;

• koordynacja współpracy;

• synchronizacja procesów;

• gromadzenie pomiarów ...

Page 22: MCS51 - wykład 4

MCS51 - standardowy SIO 21/30

Możliwości portu SIO:

• wyjścia RxD i TxD łączy się na wspólną linię transmisyjną;

• wykorzystanie trybów 2 i 3 z ustawionym bitem SM2 (pozwala on zaakceptować tylko te odebrane ramki, które mają ustawiony bit RB8);

• zakłada się, że w danej chwili jeden z mikrokontrolerów jest nadrzędny;

• mikrokontroler nadrzędny ma wyzerowany bit SM2;

• w mikrokontrolerach podrzędnych musi być ustawiony bit SM2;

• każdemu mikrokontrolerowi należy przyporządkować indywidualny, 8-bitowy adres;

• dopuszcza się adres ogólny dla transmisji typu rozgłaszanie;

• w procedurach obsługi przerwań od SIO przy RI=1, należy wstawić sekwencje rozkazów rozpoznające adres wywołania.

Page 23: MCS51 - wykład 4

MCS51 - standardowy SIO 22/30Przykładowy algorytm działania:

1. Procesor nadrzędny wysyła ramkę z adresem indywidualnym lub ogólnym i ustawionym bitem TB8 - adres ten określa do kogo jest adresowana następująca po nim transmisja.

2. Wszystkie pozostałe procesory, działając jako podrzędne, mają ustawiony bit SM2 i odbiorą wysłaną ramkę wywołania - adres wywołania trafi do ich rejestrów SBUF i ustawią się flagi RI.

3. Uruchomione zostaną procedury obsługi SIO, które w przypadku przerwania od odbiornika (RI=1) przy ustawionym bicie SM2=1 porównują bajt z SBUF z przyporządkowanymi adresami indywidualnymi lub ogólnym.

4. Procesor, który stwierdzi zgodność adresu wywołania z własnym, zeruje swój bit SM2 i kończy procedurę obsługi SIO, pozostałe procesory kończą obsługę SIO pozostawiając SM2=1.

5. Następuje wymiana informacji pomiędzy procesorem nadrzędnym a zaadresowanym podrzędnym przy SM2=0 i zerowych bitach TB8/RB8. SIO pozostałych procesorów ignorują tak przesyłane ramki danych.

6. Po zakończeniu transmisji, procesor podrzędny ponownie ustawia SM2=1.

Page 24: MCS51 - wykład 4

MCS51 - rozszerzony SIO 23/30

Dostępne funkcje dodatkowe:

1. Sygnalizacja błędnego bitu stopu - brak ‘1’ w chwili spodziewanego bitu STOP - jest to tzw. błąd ramki, sygnalizowany ustawieniem bitu FE, który można sprawdzić odczytując bit SM0 w SCON.

2. Automatyczne rozpoznawanie adresów wywołania przy komunikacji wieloprocesorowej - włączane przez ustawienie bitu SM2;

W trybie 1 SIO analizowane są wszystkie odebrane bajty z poprawnymi bitami stopu, a w trybach 2 i 3 - tylko te, dla których RB8=1.

Page 25: MCS51 - wykład 4

MCS51 - rozszerzony SIO 24/30

Flaga RI ustawia się tylko wtedy gdy odebrany bajt jest zgodny z zaprogramowaną w rejestrach SFR maską adresu.

Pojawiają się 2 rejestry SFR:

SADDR 0A9h

SADEN 0B9h

Odebrany bajt-adres wywołania jest zgodny, jeżeli spełnia równanie:

(odebrany_bajt SADDR) SADEN = 00h

Przykład:w C1 ustawiono: w C2 ustawiono:

SADDR= 11000001 11000010SADEN= 11111110 11111101adres aktywny= 1100000x 110000x1

Wtedy adres wywołania 11000001 adresuje tylko C1, adres 11000010 - tylko C2,adres11000000 - oba C, a każdy adres z grupy xxxxxx11 zostanie zignorowany.

Page 26: MCS51 - wykład 4

MCS51 - dodatkowe SIO 25/30

Np. układy Siemensa

Funkcje:

• transmisja tylko asynchroniczna (jak tryby 1,2 i 3 podstawowego SIO);

• własny generator prędkości transmisji;

• analogiczne rejestry obsługujące (S1BUF i S1CON)

Page 27: MCS51 - wykład 4

MCS51 - inne interfejsy szeregowe 26/30

SPI - pełnodupleksowa magistrala synchroniczna, umożliwiająca dostęp do

specjalizowanych układów peryferyjnych, pamięci konfiguracji, bądź

programowanie mikrokontrolera w układzie.

Obsługiwana poprzez zestaw rejestrów SFR (SPDR, SPSR, SPCR)

Page 28: MCS51 - wykład 4

MCS51 - inne interfejsy szeregowe 27/30

I2C - półdupleksowa magistrala synchroniczna, umożliwiająca dostęp do

specjalizowanych układów peryferyjnych, pamięci konfiguracji.

Spotykane są 2 warianty:

1. obsługa transmisji całych bajtów (np. rejestry: S1DAT, S1CON,

S1STA i S1ADR w C552)

2. obsługa transmisji pojedynczych bitów (np. rejestry: S1INT, S1BIT

i S1SCS w C524, albo I2CON, I2DAT, I2CFG i I2STA w C751,C752)

Page 29: MCS51 - wykład 4

MCS51 - inne interfejsy szeregowe 28/30

I2C - w C552

Page 30: MCS51 - wykład 4

MCS51 - inne interfejsy szeregowe 29/30

Rejestr sterujący:

CR2,CR1,CR0 - wybór szybkości transmisji: względem fOSC (1/60 1/120 1/960 1/160 1/192 1/224 1/256) lub 1/8TF1

ENS1 - włączenie portu I2C do pracy

STA - nadaj bit START

STO - nadaj bit STOP

SI - flaga przerwania od portu I2C

AA - wyzerowany wstrzymuje reagowanie na odebrany adres wywołania

CR2 DF ENS1 DE STA DD STO DC SI DB AA DA CR1 D9 CR0 D8S1CON 0D8h

Page 31: MCS51 - wykład 4

MCS51 - inne interfejsy szeregowe 30/30

Rejestr stanu:

SC4,SC3,SC2,SC1,SC0 - bity kodu stanu interfejsu

SC4 SC3 SC2 SC1 SC0 0 0 0S1STA 0D9h

Rejestr adresu:

SA7...SA1 - 7-bitowy adres układu jako portu podrzędnego

GC - ustawiony zezwala na reakcję na adres wywołania ogólnego

SA7 SA6 SA5 SA4 SA3 SA2 SA1 GCS1ADR 0DBh

S1DAT 0DAh

Rejestr buforowy danych: