MIKROKONTROLER DS80C390


MIKROKONTROLER DS80C390 Opis jest szybkim mikroprocesorem kompatybilnym z 8051. Maksymalna częstotliwość generatora kwarcowego, przy której mikroprocesor może pracować wynosi 40MHz, a dzięki ok. 2,5-krotnie szybciej wykonywanym instrukcjom, pozorna częstotliwość wynosi 100MHz. Opcje wewnętrznego mnożnika częstotliwości pozwalają mikroprocesorowi na operacje przy pełnej prędkości ze zmniejszoną częstotliwością generatora kwarcowego. Sprzętowy akcelerator matematyczny przyspiesza między innymi operacje mnożenia i dzielenia liczb 16 i 32 - bitowych. Mikroprocesor zawiera dwa pełno funkcyjne kontrolery CAN 2.0B Status i rejestry kontroli rozdzielone są pomiędzy SFRs i 512 bajtów wewnętrznej pamięci adresowanej pośrednio rozkazem MOVX. W dodatku do standardowych 11 - bitowych lub rozszerzonych 29 - bitowych identyfikatorów wiadomości, urządzenie zawiera dwa oddzielne 8 - bitowe maski i pola arbitrażu do obsługi wysokiego poziomu protokołów CAN, takich jak: Device Net i SDS. Wszystkie zasoby standardowego mikroprocesora 8051, takie jak: trzy układy czasowo - licznikowe, port szeregowy i cztery 8 - bitowe porty wejścia - wyjścia są zawarte w mikroprocesorze DS80C390. Dodatkowo znajdują się jeszcze dwa 8 - bitowe porty do obsługi pamięci, drugi port szeregowy, siedem dodatkowych przerwań, programowalny układ czasowy watchdog, reset błędu zasilania i programowalne wyjście zegara Urządzenie zawiera 4kB statycznej pamięci SRAM, która może być skonfigurowana jako różne kombinacje: pamięci danych, pamięci programu i stosu pamięci. 22 - bitowy licznik programu wspomaga dostęp do maksymalnie 4MB zewnętrznej pamięci programu i 4MB zewnętrznej pamięci danych. 10 - bitowy wskaźnik stosu adresuje do 1kB pamięci danych MOVX w celu zwiększenia efektywności wykonywania kodu. Nowy tryb zarządzania mocą Power Management Mode (PMM) pozwala programowo przełączać cykle maszynowe ze standardowych 4 taktów zegara na cykl do 1024 taktów na cykl Tryb PMM odpowiednio redukuje pobór mocy, kiedy procesor pracuje wolniej. Instrukcje Wszystkie wykonywane instrukcje mają dokładnie te same funkcje co ich odpowiedniki w mikroprocesorze 8051. Względny czas wykonywania instrukcji przez DS80C390 może być różny od czasu wykonywania tych samych instrukcji przez 8051. Blok Rejestrów Specjalnych Rejestry specjalne (SFR) kontrolują wiele cech mikrokontrolera. Pozwala to urządzeniu nowe zasoby używając przy tym tych samych instrukcji, co 8051. Pisząc oprogramowanie obsługujące nowe zasoby, należy zidentyfikować i zdefiniować rejestry specjalne w asemblerze lub kompilatorze. Jest to jedyna potrzebna zmiana, by uzyskać dostęp do nowych zasobów. Mikrokontroler DS80C390 powiela rejestry specjalne zawarte w standardzie 80C52. Akcelerator matematyczny Wbudowany akcelerator matematyczny pozwala mikrokontrolerowi wykonywać 16 i 32 - bitowe operacje mnożenia, dzielenia, przesunięć i normalizacji. Operacje matematyczne wykonywane są przez sekwencyjne ładowanie danych do trzech rejestrów specjalnych. Operacja matematyczna jest określona przez sekwencję trzech dostępnych rejestrów specjalnych (MA - D3h, MB - D4h i MC - D5h), eliminując kroki potrzebne na wykonanie operacji. Funkcja normalizacji ułatwia zamianę 4 - bajtowej binarnej liczby całkowitej bez znaku na format liczby zmiennoprzecinkowej. Rejestry MA i MB muszą być ładowane i odczytywane w ustalonym porządku dla właściwych operacji, ponad to dostęp do każdego innego rejestru może być wykonany pomiędzy dostępem do rejestru MA lub MB. 40 - bitowy akumulator Akcelerator matematyczny zawiera w sobie funkcję automatycznego akumulatora, pozwalającego przeprowadzać operacje mnożenia z akumulacją i dzielenia z akumulacją bez dodatkowych opóźnień. Za każdym razem, gdy akcelerator wykonuje operacje mnożenia lub dzielenia, wynik dodawany jest do 40 - bitowego akumulatora. Funkcja ta może znacznie przyspieszyć matematyczne operacje stosowane w technikach przetwarzania DSP. Adresowanie pamięci DS80C390 zawiera w sobie trzy wewnętrzne obszary pamięci:--256 bajtów bezpośredniej pamięci RAM --4kB statycznej pamięci SRAM konfigurowanej jako zmienne kombinacje pamięci danych, stosu pamięci lub pamięci programu --512 bajtów RAM zarezerwowanych dla ośrodka wiadomości CAN Zewnętrzna maksymalnie 4MB pamięć jest adresowana przez multipleksowaną lub niemultipleksowaną 20 - bitową szynę adresową i 8 - bitową szynę danych i czterema sygnałami „chip enable” (aktywowanych podczas dostępu do pamięci programu) lub czterema sygnałami „peripherial enable” (aktywowanych podczas dostępu do pamięci danych). Tryby adresowania mikrokontrolera DS80C390 1)16 - bitowy tryb adresowania W 16 - bitowym trybie adresowania dostęp do pamięci jest podobny do trybu stosowanego w tradycjonalnym 8051. Urządzenie wykonując operacje w tym trybie może zaadresować do 64kB pamięci programu i danych. Tryb ten jest ustawiany domyślnie po każdorazowym resecie. 2)22 - bitowy tryb adresowania Tryb ten zachowuje zgodność binarnego kodu z instrukcjami 8051, ale dodaje jeden cykl maszynowy do instrukcji ACALL, LCALL, RET i RETI z uwzględnieniem taktowania fastkontrolerów firmy Dallas Semiconductor. Tryb ten jest dostosowany do standardowych kompilatorów dla mikroprocesora 8051. 3)22 - bitowy ciągły tryb adresowania 22 - bitowy ciągły tryb adresowania używa pełnego 22 - bitowego licznika programu i wszystkie zmodyfikowane instrukcje są automatycznie zapisywane i przechowywane w całym liczniku programu. 22 - bitowe instrukcje takie jak, ACALL, AJMP, LCALL, LJMP, MOV DPTR, RET i RETI wymagają asemblera, kompilatora i linkera, który umożliwia wykorzystanie tej własności. Instrukcja INC DPTR jest dłuższa o jeden cykl, ale reszta bajtu licznika jest zgodna z instrukcjami 8051. Wewnętrznie urządzenie używa 22 - bitowego licznika programu. Niższe 22 - bity rozkazu adresują pamięć, ze specjalnym dwudziestym trzecim bitem używanym do mapowania 4kB pamięci powyżej 4MB przestrzeni adresowej. Bity od 16 do 23 w 22 - bitowym trybie adresowania są generowane przez rejestry specjalne SFRs zależnych od instrukcji. Adresowanie zewnętrznej pamięci Dostęp sygnałów „chip enable” jest zarządzany przez rejestr kontroli portu P4 P4CNT - 92h i rejestr kontroli pamięci MCON - 96h. Po wystąpieniu resetu port P4 będzie skonfigurowany następująco: linie P4.7 - P4.4 jako linie adresowe i P4.3 - P4.0 jako linie sygnałów /CE3 - /CE0. DS80C390 zawiera w sobie funkcję pozwalającą na łączenie sygnałów PCE i CE. Ustawienie bitów /PDCE3 - /PDCE0 (MCON. 3-0) powoduje zgodnie z sygnałami „chip enable” operacje dla dwóch instrukcji: MOVC i MOVX. Proces zapisu do połączonych bloków pamięci programu i danych jest kontrolowany przez sygnał /WR, a proces odczytu kontroluje sygnał /PSEN. Podwójny wskaźnik danych DS80C390 zawiera dwa wskaźniki danych, DPTR0 i DPTR1, które ulepszają własności zastosowań wymagających dużej przepustowości danych. Dołączenie drugiego wskaźnika danych pozwala znacznie przyspieszyć przenoszenie bloku danych instrukcją MOVX poprzez użycie jednego wskaźnika danych jako rejestr źródłowy, a drugiego jako rejestr przeznaczenia. DPTR0 jest zlokalizowany pod tym samym adresem co oryginalny wskaźnik danych 8051, pozwalając jednostce DS80C390 wykonywać kod standardu 8051 bez żadnych modyfikacji. Drugi wskaźnik danych DPTR1 jest rozdzielony pomiędzy rejestry specjalne DPH1 i DPL1, podobnie jak konfiguracja DPTR0. Aktywowanie wskaźnika danych odbywa się poprzez bit wyboru wskaźnika danych SEL (DPS.0). Każda instrukcja, która zawiera w sobie wskaźnik „DPTR” (tj. MOVX A, @DPTR) będzie wybierała wskaźnik DPTR0 jeżeli bit SEL=0 lub DPTR1 jeżeli bit SEL=1. W odróżnieniu od 8051, DS80C390 ma możliwość zarówno inkrementacji jak i dekrementacji wskaźnika danych bez używania dodatkowych instrukcji. Wykonanie instrukcji INC DPTR inkrementuje lub dekrementuje aktywny DPTR. Instrukcja ta nie dotyczy nieaktywnego DPTR. Użyteczną cechą jest dostępność automatycznego przełączania aktywnego wskaźnika danych po wykonaniu podstawowej instrukcji zawierającej DPTR, co znacznie redukuje czas dostępu do rejestrów źródłowych i przeznaczenia. Kontrola zegara DS80C390 posiada unikalne cechy pozwalające na wybór układów źródeł zegara i częstotliwości operacyjnych. Mnożnik zegara zawarty w obwodach zegarowych zegara pozwala na użycie o generatorów niższej częstotliwości, przy jednoczesnym zachowaniu pełnej szybkości wykonywanych operacji. Układ obwodów kontroli zegara generuje dwa sygnały zegarowe używane przez mikrokontroler. Wewnętrzne układy zegara są źródłem podstawy czasu dla układów czasowych i wewnętrznych układów peryferyjnych. Układ zegara przepuszcza sygnał przez obwody dzielące przez 4 w celu wygenerowania zegara cyklu maszynowego, stanowiącego podstawę czasu dla wszelkich operacji procesora. Wszystkie instrukcje wykonywane są od jednego do pięciu cykli maszynowych. Pamięć zewnętrzna dla standardowego mikrokontrolera 8051 Mikrokontroler 8051 komunikuje się z zewnętrzną pamięcią programu i danych przez porty P0 i P2. Przez port P0 przesyłanych jest osiem mniej znaczących bitów adresu A0-A7, natomiast przez port P2 osiem bardziej znaczących bitów adresu A8-A15. 16 bitów pozwala zaadresować do 64kB pamięci (216B=65536B). Dodatkowo port P0 pełni podwójną funkcję (multipleksowana szyna) - oprócz przesyłania 8 mniej znaczących bitów adresu, przesyłanych jest przez niego w obydwu kierunkach 8 bitów danych D0-D7. W tym przypadku istnieje potrzeba zatrzaśnięcia bitów adresu. Na rys. 6 przedstawiono schemat blokowy środowiska pracy mikrokontrolera 8051. Układem stosowanym jako bufor rejestru adresowego może być układ przerzutnika D - LATCH. Sygnałem sterującym dla tych układów do zatrzaśnięcia bitów adresu jest narastające zbocze sygnału ALE (Address Latch Enable). Jako pamięć programu może posłużyć układ pamięci EPROM - 27512 (lub też inne układy np. EEPROM). Jest to pamięć o organizacji 8 - bitowej, a jej maksymalna pojemność wynosi 512kb (64kB). Sygnałem sterującym odczytem z zewnętrznej pamięci danych jest niski poziom sygnału /PSEN (Program Store Enable) mikrokontrolera. Sygnał /PSEN jest generowany rozkazem odczytu zewnętrznej pamięci programu: Sygnał /CE - „chip enable” układu pamięci programu musi mieć nadaną wartość logiczną „0”. Uzyskuje się to poprzez przyłączenie wyprowadzenia sygnału /CE na stałe do masy układu. W ten sposób zapewniony zostanie stały dostęp do pamięci. Dodatkowo, gdy mikrokontroler ma korzystać jedynie z zewnętrznej pamięci programu, sygnał /EA mikrokontrolera również musi mieć nadaną wartość logiczną „0”. Natomiast, gdy układ zewnętrznej pamięci programu będzie kontynuacją wewnętrznej pamięci danych, sygnał /EA mikrokontrolera musi mieć wartość logiczną „1”. Uzyskuje się to poprzez podanie na wyprowadzenie /EA wartości napięcia zasilania układu +5V. Jako zewnętrzna pamięć danych może posłużyć układ pamięci statycznej RAM (SRAM) - 62256. Podobnie jak pamięć EPROM 27512, jest to pamięć o organizacji 8 - bitowej o pojemności 256kb (32kB). W związku z tym, że mikrokontroler może zaadresować do 64kB zewnętrznej pamięci, jako zewnętrzną pamięć danych można przyłączyć dwa układy pamięci 62256. Sygnałami sterującymi odczytem i zapisem do pamięci są sygnały mikrokontrolera: /WR (Write Strobe) - podłączany do wyprowadzenia pamięci /WR oraz sygnał /RD (Read Strobe) - podłączany do wyprowadzenia pamięci /OE (Output Enable). Sygnał /WR generowany jest rozkazem zapisu do zewnętrznej pamięci danych: MOVX @DPTR, A. Podobnie sygnał /RD generowany jest rozkazem odczytu zewnętrznej pamięci danych: MOVX A, @DPTR. MOVX @DPTR, A. Przy niskim poziomie sygnału /WR następuje zapis danych do zewnętrznej pamięci danych, natomiast przy niskim poziomie sygnału /RD następuje odczyt z zewnętrznej pamięci danych. W danej chwili możliwe jest wygenerowanie przez mikrokontroler tylko jednego z podanych sygnałów sterujących. Układ pamięci SRAM 62256 posiada jedynie 15 linii adresowych A0-A14 (wynika to z pojemności układu). Wobec czego 16 linia adresowa mikrokontrolera może posłużyć jako sygnał wyboru układu pamięci, z pomocą prostego dekodera adresów w postaci bramki negującej NOT. Do wyprowadzenia /CE jednego z układów można bezpośrednio przyłączyć sygnał pochodzący z linii A15, natomiast wyprowadzenie /CE drugiego układu należy w tym przypadku dołączyć do wyjścia dekodera adresu z bramką NOT, na którego wejściu podany jest sygnał z linii A15. W ten sposób wybór pierwszego układu nastąpi w chwili, gdy mikrokontroler adresował będzie komórki pamięci o adresach od 0000h do 7FFFh, natomiast wybór drugiego układu nastąpi przy adresowaniu komórek pamięci o adresach od 8000h do 0FFFFh. Powyższe rozwiązanie jest nie wymaga dodatkowych modyfikacji w programie. Mikrokontroler adresuje całą przestrzeń od 0000h do 0FFFFh, w ten sam sposób, jak dla jednego układu pamięci o pojemności 64kB. Przebiegi czasowe pokazane na rys. 7-9 przedstawiają cykle odczytu i zapisu danych do układów zewnętrznej pamięci danych. Cykl maszynowy w wypadku mikrokontrolera 8051 trwa 12 taktów zegara. Narastające zbocze sygnału ALE jest rozkazem do zatrzaśnięcia młodszego bajtu adresu z portu P0. Starszy bajt adresu dostępny jest przez cały cykl maszynowy na wyprowadzeniach portu P2. Przy niskim poziomie sygnału /PSEN następuje odczyt z zewnętrznej pamięci programu. Natomiast przy niskim poziomie sygnału /RD następuje odczyt z zewnętrznej pamięci danych. Podobnie podczas niskiego poziomu sygnału /WR następuje zapis do pamięci danych. Należy zwrócić uwagę na fakt, że w przypadku zapisu do pamięci danych czas wystawiania danych przez port P0 jest dłuższy niż czas odczytywania danych. Pamięć zewnętrzna mikrokontrolera DS80C390 pracującego w trybie 8051 W układzie zaprojektowanym na potrzeby niniejszej pracy dyplomowej, dla układu mikrokontrolera DS80C390 pracującego w trybie 8051, jako pamięć programu użyta została pamięć EPROM - 27512 (podobnie jak w standardzie 8051), a jako pamięć danych dołączono układ pamięci SRAM o pojemności 1Mb o symbolu TC551001 (produkcji firmy TOSHIBA). Układ pamięci statycznej RAM (SRAM) o 8 - bitowej organizacji i pojemności 1Mb (128kB) posiada 17 linii adresowych A0-A16. Ponieważ mikrokontroler DS80C390 posiada 20 linii adresowych, nie ma konieczności stosowania dodatkowych dekoderów adresu. Jednakże, pamięć tej pojemności wymusza zastosowanie 22 - bitowego trybu adresowania zgodnego ze standardem 8051. W tym trybie używając instrukcji MOVX zawierającej wskaźnik danych „DPTR” należy załadować trzy rejestry z wartościami odpowiadającymi kolejnym bitom adresu: do DPL (82h) bity adresu 7-0, do DPH (83h) bity 15-8, do DPX (93h) bity 23-16. Aby zachować zgodność dostępu do zewnętrznej pamięci (multipleksacja szyny adresowej/ danych) ze standardem 8051, konieczne jest podanie na sygnał /MUX mikrokontrolera DS80C390 wartości logicznej „0”. Tryb ten wymusza (tak jak w 8051) stosowanie buforu adresowego D - LATCH, jako zatrzask dla ośmiu najmniej znaczących bitów adresu. Podobnie, jak w mikrokontrolerze 8051 sygnałami sterującymi są sygnały: /PSEN - odczyt z zewnętrznej pamięci programu, /RD - odczyt z zewnętrznej pamięci danych, /WR - zapis do zewnętrznej pamięci danych. Sygnały /CE układów pamięci (programu i danych) powinny mieć wartość logiczną „0”. Ponieważ mikrokontroler nie posiada wewnętrznie wbudowanej pamięci programu (dopiero w późniejszym procesie, 4kB wewnętrznej pamięci SRAM mogą zostać skonfigurowane jako pamięć programu), konieczne jest podanie na wejście sygnału /EA mikrokontrolera wartości logicznej „0”. Na rysunku 11. przedstawiono przebiegi czasowe sygnałów zewnętrznych magistrali mikrokontrolera DS80C390 dla cyklu odczytu z zewnętrznej pamięci programu z multipleksacją szyny adresowej/ danych. Przedstawione przebiegi czasowe odpowiadają rozkazowi: MOVC A,@DPTR Podobnie jak dla mikrokontrolera 8051 poniżej przedstawiono przebiegi czasowe odczytu i zapisu do zewnętrznej pamięci danych dla mikrokontrolera 80C390. Rys. 11 - 12 przedstawiają przebiegi czasowe odczytu i zapisu zewnętrznych układów pamięci danych mikrokontrolera DS80C390 pracującego w trybie 8051. W trybie tym następuje generacja sygnału ALE. Zasada odczytu i zapisu danych w trybie multipleksacji szyny nie uległa zmianie. Jednakże w porównaniu do standardowego 8051 istnieje możliwość wyboru układów pamięci poprzez niską wartość sygnału /CE0-3 (wybór bloku pamięci programu) i /PCE0-3 (wybór bloku pamięci danych). Zmianie natomiast uległ czas wykonywania cyklu maszynowego z 12 do 4 taktów zegara na cykl. Pamięć zewnętrzna mikrokontrolera DS80C390 Mikrokontroler DS80C390 posiada 20 linii adresowych A0-A19 i dodatkowo sygnały wyboru bloku pamięci (/CE - wybór bloku pamięci programu i /PCE - wybór bloku pamięci danych lub urządzeń peryferyjnych) pozwalające podłączyć 4MB zewnętrznej pamięci programu i 4MB zewnętrznej pamięci danych. W związku z tym, że mikrokontroler umożliwia wybór pomiędzy multipleksowaną i niemultipleksowaną szyną adresową/ danych, zdecydowano się na wybór szyny bez multipleksacji. Wobec powyższego założenia, na wejście sygnału /MUX mikrokontrolera powinna zostać podana jedynka logiczna. Demultipleksowana szyna nie wymusza konieczności stosowania buforu adresu (tak jak ma to miejsce w standardowym układzie 8051). Port P0 pełni teraz funkcję jedynie szyny danych D0-D7, port P1 wystawia najmniej znaczących 8 bitów adresu A0-A7, funkcje portu P2 nie uległy zmianie (wystawia kolejnych 8 bitów adresu A8-A15), natomiast kolejne bity adresu dostępne są na wyprowadzeniach portu P4 (P4.4-P4.7 co odpowiada liniom adresowym A16-A19). W zaprojektowanym układzie dołączona została dołączona pamięć programu EPROM 27512 i dwa układy pamięci danych SRAM TC554001 (lub odpowiednik 628512). Schemat blokowy zaprojektowanego układu przedstawiony został na rys. 14. Układ TC554001 jest układem pamięci statycznej RAM (SRAM) o 8 - bitowej organizacji słowa. Układ ten posiada 19 linii adresowych A0-A18, co wskazuje na pojemność układu - 4Mb (512kB). 20 linia adresowa mikrokontrolera DS80C390 posłużyła przy pomocy bramki negującej NOT, jako linia sterująca wyborem jednej z dwu układów bloku pamięci. Jeżeli zaistnieje potrzeba rozszerzenia bloku pamięci lub dołączenia urządzeń peryferyjnych, należy w tym celu wykorzystać 20 linii adresowych mikrokontrolera i sygnały /CE lub /PCE (co wiąże się z programową modyfikacją rejestrów odpowiedzialnych za porty: P4 - sygnały /CE i P5 - sygnały /PCE). Na rys. 5.10 przedstawiono przebiegi czasowe odczytu zewnętrznej pamięci programu mikrokontrolera DS80C390. Standardowy rozkaz odczytu pamięci programu nie zmienia się. Dla rozkazu: MOVC A,@DPTR mikrokontroler oprócz wystawienia adresu poprzez porty P0, P2 i P4 oraz sygnału /PSEN generuje bit wyboru banku pamięci /CE0. Zapis i odczyt zewnętrznej pamięci programu dokonywany jest rozkazami dokładnie takimi samymi jak dla mikrokontrolera 8051: W powyższych przebiegach nie występuje już sygnał sterujący /ALE, gdyż nie istnieje potrzeba zatrzaskiwania adresu. Młodszy bajt adresu dostępny jest teraz przez cały cykl maszynowy na wyprowadzeniach portu P1. Zasada zapisu i odczytu w tym trybie nie uległa zmianie w stosunku do trybu z multipleksacją szyny mikrokontrolera DS80C390.



Wyszukiwarka

Podobne podstrony:
Bootloader dla mikrokontrolerów AVR
02 Mikroklimat
Mikrokontrolery Grodzki Sprawoz Nieznany
evboard, Płytka testowa dla mikrokontrolerów AT89S oraz AVR
Konfiguracja pamięci mikrokontrolera 8051 dla programów napisanych w języku C
Mikroklimat TEST nr 2, inż. BHP, V semestr
mim, studia Polibuda Informatyka, III semestr, mikroprocesory i mikrokontrolery (mim)
sprawozdanie mikroklimat i pomiary jego parametrów w środowisku górniczym
Mikroklimat kalkulatory
Mikrokontrolery F Marecki id 30 Nieznany
mikrokomputer 5
Mikrokomputer edukacyjny z 8051 cz 2
ZL5PRG Programator mikrokontrol Nieznany
06 ERGONOMIA MIKROKLIMAT
Mikrokontrolery ARM cz18
Mikrokontrolery ARM cz5
(at)MEGArewolucja nowe mikrokontrolery Atmela(1)

więcej podobnych podstron