1 / 31

MCS51 - wykład 4

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

taylor
Download Presentation

MCS51 - wykład 4

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. MCS51 - wykład 4

  2. Wykład 3 1/30 Porty szeregowe MCS51Standardowy SIOWybrane rozszerzenia i modyfikacje

  3. 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. MCS51 - standardowy SIO 2/30

  4. SCON SM0 9F SM1 9E SM2 9D REN 9C TB8 9B RB8 9A TI 99 RI 98 98h Rejestry sterujące: MCS51 - standardowy SIO 3/30 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

  5. PCON SMOD - - - GF1 GF0 PD IDL 87h SBUF 99h 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 MCS51 - standardowy SIO 4/30 SMOD - bit zdwojenia prędkości pracy portu szeregowego w trybach 1,2 i 3 SBUF - rejestr buforowy nadajnika/odbiornika

  6. MCS51 - standardowy SIO 5/30 Praca w trybie 0 - synchronicznym

  7. Transmisja w trybie 0 - synchronicznym MCS51 - standardowy SIO 6/30

  8. MCS51 - standardowy SIO 7/30 Praca w trybie 1 - asynchronicznym 8-bitowym

  9. Transmisja w trybie 1 - asynchronicznym MCS51 - standardowy SIO 8/30

  10. MCS51 - standardowy SIO 9/30 Praca w trybie 2 i 3 - asynchronicznych 9-bitowych

  11. Transmisja w trybie 2 i 3 - asynchronicznym MCS51 - standardowy SIO 10/30

  12. Dostępne szybkości transmisji: 1. tryb synchroniczny: fB = fOSC/12 2. tryby asynchroniczne 1 i 3: fB = 2SMODfTF1/32 3. tryb asynchroniczny 2: fB = 2SMODfOSC/64 MCS51 - standardowy SIO 11/30 Wykorzystując timer/licznik 1 z 8-bitowym z aut. przeładowaniem mamy: fB = 2SMODfOSC : 12 : 32 : (256-TH1) Wykorzystując timer/licznik 2 z 16-bitowym przeładowaniem mamy: fB = fOSC : 32 : (65536-RCAP2)

  13. przykładowe szybkości transmisji i wykorzystanie timera/licznika #1 MCS51 - standardowy SIO 12/30

  14. Dostrojenie do żądanej prędkości transmisji przy odbiorze MCS51 - standardowy SIO 13/30 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

  15. 0 1 2 3 4 5 67 8 9A B C D E F 0 1 2 3 4 5 67 8 9A B C D E F 0 1 2 3 4 5 67 8 9A B C D 101/fB* 111/fB* MCS51 - standardowy SIO 14/30 stany podzielnika‘:16’ przy odczyciebitu w trybach 1,2 i 3 stan linii RxD STOP(11 bit ramki) (10+6/16)1/fBMAX (10+10/16)1/fBMIN

  16. MCS51 - standardowy SIO 15/30 Oszacowanie tolerancji częstotliwości pracy fB odbiornika:

  17. Dostrojenie do żądanej prędkości transmisji przy nadawaniu MCS51 - standardowy SIO 16/30 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

  18. 0 1 2 3 4 5 67 8 9A B C D E F (10+10/16)1/fB* (10+6/16)1/fB* MCS51 - standardowy SIO 17/30 stany podzielnika‘:16’ przy odczyciebitu w trybach 1,2 i 3 STOP(11 bit ramki) stan linii RxD 0 1 2 3 4 5 6 7 8 9 A B C D E F 111/fBMAX 0 1 2 3 4 5 6 7 8 9 A B 101/fBMIN

  19. MCS51 - standardowy SIO 18/30 Oszacowanie tolerancji częstotliwości pracy fB nadajnika: Ostrzejsze kryteria narzuca poprawny odbiór i one są decydujące:

  20. Możliwości uzyskania poprawnych wartości fB <fBMIN ; fBMAX> przy różnych fOSC MCS51 - standardowy SIO 19/30

  21. Transmisja wieloprocesorowa MCS51 - standardowy SIO 20/30 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 ...

  22. 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. MCS51 - standardowy SIO 21/30

  23. Przykł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. MCS51 - standardowy SIO 22/30

  24. 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. MCS51 - rozszerzony SIO 23/30

  25. SADDR SADEN 0A9h 0B9h Flaga RI ustawia się tylko wtedy gdy odebrany bajt jest zgodny z zaprogramowaną w rejestrach SFR maską adresu. Pojawiają się 2 rejestry SFR: MCS51 - rozszerzony SIO 24/30 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 11000010 SADEN= 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.

  26. 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)

  27. 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) MCS51 - inne interfejsy szeregowe 26/30

  28. 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) MCS51 - inne interfejsy szeregowe 27/30

  29. I2C - w C552 MCS51 - inne interfejsy szeregowe 28/30

  30. S1CON CR2 DF ENS1 DE STA DD STO DC SI DB AA DA CR1 D9 CR0 D8 0D8h Rejestr sterujący: MCS51 - inne interfejsy szeregowe 29/30 CR2,CR1,CR0 - wybór szybkości transmisji: względem fOSC (1/601/1201/9601/1601/1921/2241/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

  31. Rejestr stanu: S1ADR S1STA SC4 SA7 SA6 SC3 SC2 SA5 SC1 SA4 SA3 SC0 SA2 0 0 SA1 0 GC 0DBh 0D9h SC4,SC3,SC2,SC1,SC0 - bity kodu stanu interfejsu Rejestr adresu: S1DAT SA7...SA1 - 7-bitowy adres układu jako portu podrzędnego GC - ustawiony zezwala na reakcję na adres wywołania ogólnego 0DAh Rejestr buforowy danych: MCS51 - inne interfejsy szeregowe 30/30

More Related