MCS51 - wykład 4.

Slides:



Advertisements
Podobne prezentacje
Watchdog Paweł Trojanowski
Advertisements

I część 1.
Zerowanie mikroprocesorów Cel: wprowadzenie mikroprocesora w określony stan początkowy Zwykle realizowany poprzez: inicjalizację licznika rozkazów (PC)
Transmisja danych pc<=>cnc
System interfejsu RS – 232C
Adresy IP.
Mechanizmy pracy równoległej
Wykład 5 Przerwania w systemie SAB80C537 dr inż. Andrzej Przybył
Wykład 4 Przetwornik Analogowo-Cyfrowy
Magistrale.
Podstawowe składniki funkcjonalne procesora i ich rola.
Wykład nr 2: Struktura systemu komputerowego a system operacyjny
Magistrala & mostki PN/PD
Mechanika dzielenia na podsieci. Wykład 6
Temat nr 10: System przerwań
I T P W ZPT PRUS 2007 Krzysztof Jasiński 1 PRUS - Projektowanie Programowalnych Układów Scalonych Krzysztof Jasiński
I T P W ZPT 2009 PRUSn_W2 Krzysztof Jasiński 1 PRUS - Projektowanie Programowalnych Układów Scalonych Krzysztof Jasiński
Układ interfejsu IEEE488 – uPD7210
Interfejs IEEE 488 Funkcja kontroli..
Interfejs IEEE 488 Funkcja żądania obsługi. Struktura systemu raportowania stanu urządzenia.
1-Wire® Standard 1-Wire®, zwany też czasami siecią MicroLAN, oznacza technologię zaprojektowaną i rozwijaną przez firmę Dallas Semiconductor polegającą.
Wieloprocesowy system operacyjny dla komputerów ATARI XL/XE
UKŁADY SZEREGOWO-RÓWNOLEGŁE
Programowanie systemu kontroli dostępu ATS MASTER
Mikroprocesory i mikrokontrolery
Komputerowe wspomaganie skanera ultradźwiękowego
Komputerowe wspomaganie skanera ultradźwiękowego Zbigniew Ragin Bolesław Wróblewski Wojciech Znaniecki.
Programowalny układ we-wy szeregowego 8251
Automatyka Wykład 3 Modele matematyczne (opis matematyczny) liniowych jednowymiarowych (o jednym wejściu i jednym wyjściu) obiektów, elementów i układów.
przykładowy 8-bitowy mikroprocesor uniwersalny CISC
Technika Mikroprocesorowa 1
Technika Mikroprocesorowa 1
Układy kombinacyjne cz.2
MCS51 - wykład 2.
MCS51 - wykład 5.
Mikroprocesor Z80 przerwania.
Programowalny układ we/wy równoległego.. Wyprowadzenia układu.
Architektura komputerów
MCS51 - wykład 6.
Architektura komputerów
Mikrokontrolery PIC.
Interfejs Technologie informacyjne – laboratorium Irmina Kwiatkowska
Rodzina AVR wykład 4.
Mikrokontrolery PIC.
Magistrale szeregowe.
Płyta główna. Magistrale I/O
Sekwencyjne bloki funkcjonalne
Zasada działania komputera
Podstawy adresowania hostów w sieciach komputerowych
Wiadomości wstępne o sieciach komputerowych
Rodzina AVR wykład 6.
Przerwanie ang. interrupt.
Buforowanie D e f i n i c j a.
Opracowanie radiomodemu i programu do transmisji danych
Architektura PC.
Warstwa łącza danych.
Wykład 7 Synchronizacja procesów i wątków
Systemy operacyjne i sieci komputerowe
Sieci komputerowe E-learning
BUDOWA I ZASADA DZIAŁANIA
Przerzutniki bistabilne
Kalendarz 2020.
Struktura wewnętrzna mikrokontrolera zamkniętego
Układy i systemy mikroprocesorowe
Model warstwowy ISO-OSI
PWM, obsługa wyświetlacza graficznego
Płyta główna. Magistrale I/O
Interfejsy synchroniczne
Mikrokontrolery System przerwań
Transmisja radiowa Arduino & nRF24L01P
Zapis prezentacji:

MCS51 - wykład 4

Wykład 3 1/30 Porty szeregowe MCS51 Standardowy SIO Wybrane rozszerzenia i modyfikacje

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.

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

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 IDL PCON 87h SMOD - bit zdwojenia prędkości pracy portu szeregowego w trybach 1,2 i 3 99h SBUF SBUF - rejestr buforowy nadajnika/odbiornika

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

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

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

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

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

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

fB = 2SMODfOSC : 12 : 32 : (256-TH1) MCS51 - standardowy SIO 11/30 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 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)

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

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 odbioru zerowanie dzielnika ‘:16’ - „resynchronizacja” Warunek poprawnego odbioru: odczyt poprawny ostatniego bitu (RB8) i STOPU=1

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

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

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

MCS51 - standardowy SIO 17/30 (10+10/16)1/fB* (10+6/16)1/fB* 0 1 2 3 4 5 6 7 8 9 A B C D E F stany podzielnika ‘:16’ przy odczycie bitu 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

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

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

rozproszony system automatyki/pomiarów 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 ...

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.

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

(odebrany_bajt  SADDR)  SADEN = 00h 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 11000010 SADEN= 11111110 11111101 adres 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.

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)

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)

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)

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

MCS51 - inne interfejsy szeregowe 29/30 Rejestr sterujący: CR2 DF ENS1 DE STA DD STO DC SI DB AA DA CR1 D9 CR0 D8 S1CON 0D8h 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

MCS51 - inne interfejsy szeregowe 30/30 Rejestr stanu: SC4,SC3,SC2,SC1,SC0 - bity kodu stanu interfejsu SC4 SC3 SC2 SC1 SC0 S1STA 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 GC S1ADR 0DBh S1DAT 0DAh Rejestr buforowy danych: