Intel MCS-51
| << Intel 8051 >> | |
|---|---|
|
Intel P8051 | |
| Produkcja: | 1980 do 1990 |
Producenci:
| |
| Zegar procesora: | 12 MHz |
| Zestaw instrukcji : | 8 bitowy |
| Baza: | 40-pinowy DIP |
MCS-51 to nazwa 1980 przez Intel wprowadzonego rodzinę 8-bitowych - mikrokontrolerów . W przypadku mikrokontrolera wszystkie części systemu komputerowego ( procesor , pamięć programu, pamięć danych i jednostki wejścia / wyjścia) są idealnie połączone w jednym module. Rodzina MCS-51 jest następcą rodziny MCS-48 . Na początku miał tylko trzy elementy z oznaczeniami 8051, 8031 i 8751. W 8031 ROM jest w komponencie zewnętrznym, podczas gdy w 8051 i 8751 jest w samym komponencie - w pamięci ROM zaprogramowanej przez maskę (8051) lub w EPROM (8751). W 1983 roku wprowadzono warianty 8052, 8032 i 8752, każdy z podwójną pamięcią ROM i RAM oraz dodatkowym zegarem. Rodzina była początkowo produkowana w technologii NMOS , a po kilku latach także w dzisiejszej standardowej technologii CMOS .
Intel udzielił licencji na rdzeń procesora MCS-51 wielu producentom półprzewodników, tworząc w ten sposób podstawę dla niezależnego od producenta przemysłowego standardu. Mikrokontrolery kompatybilne z MCS-51 są od dawna sprzedawane nie tylko przez firmę Intel, ale także przez Analog Devices , Atmel , Infineon , Maxim / Dallas, Oki , NXP Semiconductors ( Philips ), Silicon Laboratories , Texas Instruments i wiele innych. za. zrobiony fabrycznie.
SDK-51 był oferowany przez firmę Intel jako system rozwojowy.
Struktura
Rodzina MCS-51 wyprodukowała bardzo dużą liczbę członków, w tym: Siemens 80C517 . Łączy je następujące cechy:
- 8-bitowy rdzeń procesora z jednolitym zestawem instrukcji
- Co najmniej 128 bajtów wewnętrznej pamięci RAM
- Zewnętrzna pamięć RAM i ROM
- Jednolity model adresowania dla tzw. Rejestru funkcji specjalnych (SFR)
- UART z pełnym dupleksem
- 5 źródeł przerwań
- 2 priorytety przerwań
- Różne timery
Ze względu na różne długości poleceń od jednego do trzech bajtów i różne czasy wykonania polecenia, jest to wyraźnie architektura CISC .
An cyklu instrukcja odpowiada pierwotnie opracowane przez struktury Intel jednego do trzech cykli maszynowych (mnożenie i dzielenie potrzebie 4). Jeden cykl maszyny odpowiada 12 cyklom zegara. Z drugiej strony, warianty MCS-51, które są dziś powszechne, zwykle mają tylko 2 cykle zegarowe na cykl maszyny. Oznacza to, że polecenia mogą być przetwarzane znacznie szybciej przy tej samej częstotliwości zegara.
Szczególną cechą tego procesora jest procesor bitowy, który umożliwia szybką i łatwą manipulację bitami w obszarze adresowalnym.
Ze względu na powszechne stosowanie tej rodziny procesorów i związanych z nią dużych bibliotek oprogramowania, istnieje również duża liczba syntezowalnych implementacji MCS-51. Są to tak zwane rdzenie IP w języku opisu sprzętu, takim jak VHDL- free i dostępny kod źródłowy . Są odpowiednie do stosowania w układach FPGA i układach scalonych specyficznych dla aplikacji (ASIC). Typowymi przykładami aplikacji są kontrolery USB, takie jak używane w drukarkach lub adapterach interfejsów. Mikrokontrolery MCS-51 są w nich zintegrowane w celu sterowania różnymi protokołami.
warianty
Seria MCS-51 obejmuje następujące dobrze znane mikrokontrolery (wszystkie informacje o pamięci są w bajtach):
| Warianty NMOS i CHMOS | ||||||||
| Rodzaj | ROM wewnętrzny |
Pamięć RAM wewnętrzna |
16-bitowy zegar |
UART | wew. Źródła IRQ |
komentarz | NMOS | CHMOS |
|---|---|---|---|---|---|---|---|---|
| 8031 | - | 128 | 2 | 1 | 2 | x | x | |
| 8032 | - | 256 | 3 | x | x | |||
| 8051 | 4096 | 128 | 2 | maska programowalna ROM | x | x | ||
| 8052 | 8192 | 256 | 3 | maska programowalna ROM | x | x | ||
| 80C54 | 16384 | 256 | 3 | maska programowalna ROM | - | x | ||
| 80C58 | 32768 | 256 | 3 | maska programowalna ROM | - | x | ||
| 8751 | 4096 | 128 | 2 | EPROM jako OTP lub z oknem UV | x | x | ||
| 8752 | 8192 | 256 | 3 | EPROM jako OTP lub z oknem UV | x | x | ||
| 87C54 | 16384 | 256 | 3 | EPROM jako OTP lub z oknem UV | - | x | ||
| 87C58 | 32768 | 256 | 3 | EPROM jako OTP lub z oknem UV | - | x | ||
| 89C52 | 32768 | 256 | 3 | Pamięć flash | - | x | ||
| 8044 | 4096 | 192 | 2 | ? | RUPI ™ -44 (Remote Universal Peripheral Interface), programowalna pamięć ROM | x | - | |
| 8344 | - | 192 | 2 | RUPI ™ -44 (Remote Universal Peripheral Interface) | x | - | ||
| 8744 | 4096 | 192 | 2 | RUPI ™ -44 (Remote Universal Peripheral Interface), EPROM jako OTP lub z oknem UV | x | - | ||
Ponadto istnieją rozbudowane mikrokontrolery MCS-51 różnych firm, np. B. opracowany przez firmę Siemens (obecnie Infineon ) i wyprodukowany przy użyciu technologii NMOS :
| Rodzaj | ROM wewnętrzny |
Pamięć RAM wewnętrzna |
komentarz |
|---|---|---|---|
| SAB 80515 | 8192 | 256 | Producent: SIEMENS, 3 × 16-bitowy timer, 1 UART, 2 zewnętrzne źródła przerwań, PWM , 8-drożny przetwornik A / D, pamięć ROM programowalna za pomocą maski |
| SAB 80535 | - | 256 | 3 x 16-bitowy timer, 1 UART, 2 zewnętrzne źródła przerwań, PWM, 8-drożny przetwornik A / D |
Warianty CMOS serii Siemens MCS-51 są funkcjonalnie identyczne, ale nie wszystkie warianty są kompatybilne z pinami.
Inne nowoczesne mikrokontrolery kompatybilne z MCS-51, które są produkowane w technologii CMOS z pamięcią flash i zwykle mają szybsze przetwarzanie poleceń, więcej pamięci lub specjalne interfejsy:
| Producent | Rodzaj | Flash wewnętrzny |
Pamięć RAM wewnętrzna |
komentarz |
|---|---|---|---|---|
| ATMEL | AT89C2051 | 2048 | 128 | Tylko 20 pinów, brak zewnętrznej magistrali danych / adresowych, 2 x 16-bitowe timery, 1 UART, 1 komparator, pamięć flash |
| ATMEL | AT89C4051 | 4096 | 128 | |
| ATMEL | AT89C51ED2 | 16384 | 256 | do 6 portów (w zależności od wielkości obudowy), 1792 bajty wewnętrznego MOVX-SRAM, program ładujący RS232 w pamięci ROM, 2 KB pamięci wewnętrznej EEPROM, 3 x 16-bitowy zegar, 1 UART, 1 komparator, 2 wskaźniki danych, PWM , SPI, pamięć flash |
| MAXIM / DALLAS | DS89C430 | 16384 | 256 | 1 cykl zegara / polecenie, maks. 33 MIPS przy 33 MHz, 1 KB wewnętrznego MOVX-SRAM, program ładujący RS232 w pamięci ROM, 3 x 16-bitowy zegar, 1 UART, 1 komparator, 2 wskaźniki danych, pamięć flash |
| MAXIM / DALLAS | DS89C450 | 65536 | 256 |
Organizacja przechowywania
Stos jest zawsze dowolnie definiowane w wewnętrznej pamięci RAM. Kolejność bajtów jest pierwszym little endian. W swojej pierwotnej formie jest to architektura Harvardu , ale wiele nowszych płyt deweloperskich MCS-51 ma zmodyfikowaną architekturę Harvardu. W tej architekturze część pamięci XRAM (rozszerzona pamięć RAM) jest dublowana w pamięci programu za pomocą dekodera adresu . Umożliwia to oprogramowanie terminala działające głównie z pamięci ROM, np. B. załadowanie przychodzącego oprogramowania do pamięci programu poprzez interfejs szeregowy i wykonanie go po przesłaniu.
Przechowywanie danych
Każdy z 4 banków rejestrów zawiera 8 rejestrów, które mogą być adresowane jako rejestry lub poprzez ich adres. Przewagą rejestrów nad "RAM do ogólnego użytku" są krótsze polecenia. Rejestry 0 i 1 mogą być używane jako 8-bitowe wskaźniki danych w wewnętrznej i zewnętrznej pamięci RAM. Czas odpowiedzi na przerwanie można skrócić dzięki sprytnemu wykorzystaniu banków rejestrów, ponieważ dane nie muszą być przenoszone na stos.
Ponieważ górna pamięć RAM i rejestr funkcji specjalnych współdzielą adresy, do rozróżnienia używany jest typ adresowania. Górna pamięć RAM może być adresowana tylko pośrednio za pomocą rejestru 0 i rejestru 1, podczas gdy rejestry funkcji specjalnych można adresować za pomocą adresowania bezpośredniego.
Podczas programowania polecenie rozróżnia rozszerzoną pamięć RAM (rozszerzoną pamięć danych lub w skrócie XRAM) i normalną pamięć RAM. MOVodpowiada na wewnętrzną pamięć RAM, podczas MOVXgdy XRAM odpowiada. XRAM można adresować tylko pośrednio, ale liniowo. We wczesnych wersjach XRAM zawsze był zewnętrzny, w nowszych wersjach może być częściowo lub w pełni zintegrowany.
Ze względu na szerokość magistrali adresowej wynoszącą 16 bitów, możliwe jest do 65536 bajtów XRAM.
Rejestry funkcji specjalnych lub adresy pamięci XRAM są używane przez niektóre warianty kontrolerów lub płyt kontrolnych do wszelkiego rodzaju rozszerzeń. Jako przykład:
- Dalsze wejścia i wyjścia
- 16-bitowa jednostka obliczeniowa
- Kontroler USB
- ...
Jest to szczególnie przydatne w syntezowalnych implementacjach MCS-51, ponieważ zestaw instrukcji rodziny MCS-51 nie jest zmieniany, co oznacza, że zachowana jest zgodność z ich narzędziami programistycznymi.
Pamięć programu
Ponieważ szyna adresowa ma szerokość 16 bitów, zewnętrzna pamięć programu może zawierać do 65536 bajtów. Można użyć wewnętrznej lub zewnętrznej pamięci programu. Jednoczesna praca nie jest możliwa.
Dzięki MOVCtemu program może czytać z pamięci programu, co jest pomocne przy implementacji tabel.
Porty
Wszystkie porty mogą działać jako wejścia lub wyjścia, przy czym porty od 1 do 3 mają wewnętrzny rezystor podciągający. Port 0 to prawdziwy port trójstanowy, który jest używany razem z portem 2 do dostępu do pamięci zewnętrznej. Port 0 jest używany w multipleksie z podziałem czasu do wyprowadzania niższego bajtu adresu lub wprowadzania i wyprowadzania danych. W tym samym czasie górny bajt adresu pojawia się na porcie 2.
Polecenia RMW odczytują wartość z pamięci, podczas gdy wszystkie inne polecenia pobierają wartości z pinu.
Literatura i arkusze danych
- J. Koch (opr.): Rodzina 8-bitowych mikrokontrolerów 8051, 1. Cechy . Philips / Valvo, 1984. ISBN 3-87095-260-1
- J. Koch (arr.): Rodzina 8-bitowych mikrokontrolerów 8051, 2. zestaw instrukcji . Philips / Valvo, 1984. ISBN 3-87095-261-X
- Lista poleceń mikrokomputera SAB 8051 . Wydane przez Siemens AG, Components Division, Balanstrasse 73, 8000 Monachium 80 (nr zamówienia B / 2591)
- Andreas Roth: The Microcontroller Cookbook MCS51 , 6. wydanie, mitp Verlag, styczeń 2002, ISBN 978-3-8266-0722-6
- R. Leicht: Wspaniała książka z 51 aplikacjami . Franzis Verlag 2005, ISBN 3-7723-5419-X
- J. Walter: Technologia mikrokomputerowa z rodziną kontrolerów 8051 . Wydanie trzecie, Springer 2008, ISBN 978-3-540-66758-2
- M. Baldischweiler: The Keil C51 Compiler , ISBN 3-9804331-8-8
- Rodzina mikrokontrolerów jednoukładowych Intel MCS-51 ™, Podręcznik użytkownika , styczeń 1981
- Podręcznik mikrokontrolera , Intel Corporation 1984, numer zamówienia 210918-002
- 8-bitowe wbudowane kontrolery , Intel Corporation 1991, numer zamówienia 270645-003
- Instrukcja obsługi rodziny mikrokontrolerów MCS ® 51 , luty 1994 Numer publikacji 121517, Intel Corporation; PDF (14,9 MB)
- Instrukcja obsługi asemblera makr MCS-51 ™ , numer publikacji 9800937, Intel Corporation
Indywidualne dowody
- ^ John Wharton: Wprowadzenie do rodziny mikrokomputerów jednoukładowych Intel ® MCS-51 ™ , Nota aplikacyjna AP-69, maj 1980, numer publikacji 121518, Intel Corporation; PDF ( pamiątka z oryginałem od 24 lutego 2013 roku w Internet Archive ) Info: archiwum Link został wstawiony automatycznie i nie została jeszcze sprawdzona. Sprawdź oryginalny i archiwalny link zgodnie z instrukcjami, a następnie usuń to powiadomienie. .
- ^ John Wharton: Using the Intel® MCS-51 ™ Boolean Processing Capabilities , Nota aplikacyjna AP-70, maj 1980, numer publikacji 203830-001, Intel Corporation; PDF .
- ↑ a b Drzewa genealogiczne procesorów Intela ( Memento z 14 marca 2011 w Internet Archive )
- ↑ Pełna implementacja mikrokontrolera MCS-51 w VHDL na licencji GNU Lesser General Public License .
- ↑ a b c d e f MCS ® 51 8-bitowy mikrokontroler zorientowany na sterowanie
- ↑ a b 8XC51FX CHMOS jednoukładowy 8-bitowy mikrokontroler
- ↑ a b c d e f 8XC52 / 54/58 CHMOS JEDNOPROBOWY 8-BITOWY MIKROKONTROLER
- ↑ a b c 8044AH / 8344AH / 8744H 8-bitowy mikrokontroler o wysokiej wydajności z wbudowanym kontrolerem komunikacji szeregowej
- ↑ M8744H RUPI ™ -44: Zdalny uniwersalny interfejs peryferyjny
- ↑ J.Koch: Rodzina 8-bitowych mikrokontrolerów 8051 , tom 1 (właściwości), Valvo / Boysen + Maasch, październik 1984, str. 21ff , ISBN 3-87095-260-1