Intel MCS-48
MCS-48 ist die Bezeichnung einer 1976 von Intel vorgestellten Familie von 8-Bit-Mikrocontrollern. Bei einem Mikrocontroller sind im Optimalfall alle Teile eines Computersystems (Prozessor, Programmspeicher, Datenspeicher und Ein-/Ausgabeeinheiten) in einem einzigen Baustein zusammengefasst. Die MCS-48-Baureihe zählt zu den ersten derartigen Systemen. Zu Beginn hatte sie nur drei Mitglieder mit den Bezeichnungen 8048, 8035 und 8748. Beim 8035 befindet sich das Anwendungsprogramm in einem externen Baustein, wohingegen sich beim 8048 und 8748 das Anwendungsprogramm im Baustein selbst befindet – entweder in einem maskenprogrammierten ROM (8048) oder in einem EPROM (8748).[1]
Intel 8048 >> | |
---|---|
Intel P8048H | |
Produktion: | 1976 bis 1990er |
Produzenten:
| |
Prozessortakt: | 6 MHz |
Befehlssatz: | 8 Bit |
Sockel: | 40-pin DIP |
Bereits 1980 wurde mit Einführung des Intel 8051 eine leistungsfähigere Nachfolgefamilie vorgestellt, die unter dem Namen MCS-51 bekannt wurde. Der Erfolg der 8048-Serie in vielen Anwendungsbereichen sorgte aber dafür, dass er auch später noch massiv verwendet wurde und sogar bis heute Verwendung findet.
Geschichte und Verwendung
Im Jahr 1978 erschienen auch die „Low-cost“-Varianten 8020, 8021 und 8022, die weniger Anschlüsse hatten und deshalb nur mit internem Programmspeicher betrieben werden konnten.[1][2] Im selben Jahr wurde auch die ergänzende Bausteinreihe UPI-41 (Universal Peripheral Interface) vorgestellt. Hier ist der 8-Bit-Datenbus direkt herausgeführt, so dass der Prozessor als Slave-Prozessor verwendet werden kann. Im Vergleich zum 8048 mit 96 Befehlen besitzt der 8041 nur 90 Befehle. Zu Beginn bestand die Reihe nur aus den beiden Mitgliedern mit den Bezeichnungen 8041 und 8741, der bekannteste Einsatz dürfte der des später erschienenen 8042 als Tastaturcontroller im 1984 vorgestellten IBM PC AT sein.[3]
Im Jahr 1978 wurden die entsprechenden Varianten 8039 und 8049, im Jahr 1981 der 8749 mit jeweils doppeltem ROM und RAM vorgestellt.[1]
Die Familie wurde zunächst in NMOS-Technologie, ab Beginn der 1980er-Jahre dann auch in der heute üblichen CMOS-Technologie hergestellt.
Philips Semiconductors (heute NXP) hatte eine Lizenz, diese Familie herzustellen und hat auf Basis der Architektur die eigene MAB8400-Familie entwickelt, die u. a. das erste I²C-Interface enthielt und in den ersten Philips CD-Spielern (z. B. CD-100) eingesetzt wurde.[4]
Auch für die in den 1980er-Jahren verbreiteten Genius-Computer-Mäuse wurde ein 8048 verwendet, ebenso wie er auch im Sinclair QL als Co-Prozessor Verwendung fand. Unsichtbar sind MCS-48-Bausteine auch heute noch in einer Unzahl von Geräten von der Nachttischuhr, über den Videorekorder bis hin zur Waschmaschine zu finden.
Architektur
Die MCS-48-Baureihe ist grundsätzlich entsprechend der Harvard-Architektur aufgebaut, wobei zum Programm- und zum Datenadressraum noch ein eigener Ein-/Ausgabeadressraum hinzukommt. Die Länge der Programmadresse beträgt 12 Bit, womit 4 KByte adressiert werden können. Diese sind als zwei unabhängige 2-KByte-Programmbänke organisiert. Da Bank 2 immer extern liegt (Ausnahme 8050), kann durch Benutzung von Ausgabeleitungen zusätzlicher Programmspeicher adressiert werden.
Der interne Datenspeicher (64–256 Bytes) kann extern durch weitere 256 Bytes erweitert werden. Die Speicherzellen sind statisch ausgeführt, sie können über eine Standby-Versorgungsleitung auch im abgeschalteten Zustand mit Strom versorgt werden und so die Daten erhalten.
Eine Erweiterung der Ein-/Ausgabeleitungen erfolgt im einfachsten Fall über den Portextender-Baustein 8243, der vier 4-Bit-Ports zur Verfügung stellt. Dabei wird der 8243 mit speziell dafür vorgesehenen Befehlen in das Gesamtsystem eingebunden. Außerdem können Standard-MCS-80/85-I/O-Bausteine im Datenadressraum betrieben werden.
Bei der Entwicklung wurde besonders auf einen Befehlssatz geachtet, der leistungsfähige Bitbefehle bietet, andererseits aber auch so kompakt wie möglich ist. Die meisten Befehle sind nur 1 Byte lang mit implizitem Operanden, einige wenige haben einen Operanden in einem zweiten Byte codiert. Dadurch ergeben sich sehr kurze Programme, die auf die vorgegebene Speichergröße abgestimmt sind.
Ein großer Nachteil der Architektur war, dass bedingte Sprünge nur absolut innerhalb einer 256-Byte-Seite durchgeführt werden konnten. Dies führte bei Programmerweiterungen zu Nachjustierung nachfolgender bedingter Sprünge durch Nachschaltung direkter langer Sprünge, um die 256-Byte-Seitengrenze zu überwinden, was in der Folge zu weiteren Codeverschiebungen mit Korrekturen führte. Mehrere Eingriffe im Assemblercode und anschließende Assemblierungen waren die Folge. Beim nachfolgenden MCS-51 wurde dieser Nachteil beseitigt, indem die bedingen Sprünge relativ ± 127 Byte zum Sprungbefehl durchgeführt werden konnten und nicht an Seitengrenzen gebunden waren.
Gemeinsamkeiten aller MCS-48-Bausteine:
- 8-Bit-Prozessorkern
- min. 64 Bytes internes RAM
- optional externes RAM und ROM
- Intervallzeitgeber
- 2 Interrupt-Quellen
Varianten
Typ | ROM intern | RAM intern | Bemerkung |
---|---|---|---|
8020 | 1024 | 64 | maskenprogrammierte Low-Cost-CPU: keine Interrupts, kein externer Programmspeicher, abgespeckter 8048-Befehlssatz, 20 Anschlüsse, 13 Ein-/Ausgänge |
8021 | 1024 | 64 | maskenprogrammierte Low-Cost-CPU: keine Interrupts, kein externer Programmspeicher, abgespeckter 8048-Befehlssatz, 28 Anschlüsse, 21 Ein-/Ausgänge[5] |
8022 | 2048 | 64 | maskenprogrammierte Low-Cost-CPU: A/D-Wandler, Spannungskomparator-Eingänge, kein externer Programmspeicher, abgespeckter 8048-Befehlssatz[6] |
8035 | – | 64 | ROM-lose Version des 8048, Programm in externem Baustein[7] |
8039 | – | 128 | ROM-lose Version des 8049, Programm in externem Baustein[8] |
8040 | – | 256 | ROM-lose Version des 8050, Programm in externem Baustein[9] |
8048 | 1024 | 64 | erster Mikrocontroller von Intel, begründete die MCS-48-Familie[7] |
8049 | 2048 | 128 | Weiterentwicklung des 8048 mit größerem Daten- und Programmspeicher[8] |
8050 | 4096 | 256 | Weiterentwicklung des 8049 mit größerem Daten- und Programmspeicher[9] |
8648 | 1024 | 64 | einmalig programmierbarer 8048, Factory OTP |
8748 | 1024 | 64 | reprogrammierbarer 8048, EPROM statt ROM[7] |
8749 | 2048 | 128 | reprogrammierbarer 8049, EPROM statt ROM[9] |
87P50 | – | 256 | Piggyback(Huckepack)-Version, bei der im Chipgehäuse ein Sockel für ein 2716-EPROM (2 KB) vorhanden ist |
Typ | ROM intern | RAM intern | Bemerkung |
---|---|---|---|
8041 | 1024 | 64 | vom 8048 abgeleiteter Slave-Prozessor mit asynchronem Datenregister zur Kommunikation mit einem Master-Prozessor (bspw. 8048/49/50)[10] |
8042 | 2048 | 128 | vom 8049 abgeleiteter Slave-Prozessor mit asynchronem Datenregister zur Kommunikation mit einem Master-Prozessor (bspw. 8048/49/50)[11] |
8641 | 1024 | 64 | einmalig programmierbarer 8041, Factory OTP[10] |
8741 | 1024 | 64 | reprogrammierbarer 8041, EPROM statt ROM[12] |
8742 | 2048 | 128 | reprogrammierbarer 8042, EPROM statt ROM[13] |
8271 | Programmierbarer Floppy-Disk-Steuerbaustein (festprogrammierter Schnittstellenbaustein auf Basis 8041) | ||
8273 | Programmierbarer HDLC/SDLC-Steuerbaustein (festprogrammierter Schnittstellenbaustein auf Basis 8041) | ||
8278 | Programmierbarer Tastatur-Schnittstellenbaustein (festprogrammierter Schnittstellenbaustein auf Basis 8041) | ||
8292 | IEC-Steuerbaustein (festprogrammierter Schnittstellenbaustein auf Basis 8041) | ||
8294 | Datenverschlüsselungs-Baustein (festprogrammierter Schnittstellenbaustein auf Basis 8041) | ||
8295 | Steuerbaustein für Punktmatrix-Drucker (festprogrammierter Schnittstellenbaustein auf Basis 8041) |
Bekannte Geräte mit MCS-48-Bausteinen
- Philips G7000, Spielkonsole (1978), als Hauptprozessor
- Sinclair QL, Homecomputer (1984), als Coprozessor für Peripherie
- IMSAI 8080, Computer (1979), zur Abfrage des Bedienpanels
- Nintendo Donkey Kong, Spielautomat (8035-Clone MB8884 als Sound-Prozessor)
- Kosmos CP1, Lerncomputer
- Entex Adventure Vision, Spielkonsole (1982)
- Motorsteuergerät Digijet VW T3 (2,1 Liter Einspritzmotor Kennbuchstabe: DJ)
- Roland CR-78, Drumcomputer (1978), arbeitet mit einem 8048
- Roland Jupiter-4, Synthesizer (1978), arbeitet mit zwei 8048 zur Parametersteuerung und Keyboard-Abfrage
- Roland ProMars, Synthesizer (1979), arbeitet mit zwei 8048 zur Parametersteuerung und Keyboard-Abfrage
- Korg Poly-61, Synthesizer (1982), arbeitet mit zwei 8049 zur Parametersteuerung und Keyboard-Abfrage
- Korg Polysix, Synthesizer (1981), arbeitet mit einem 8048 zur Parametersteuerung und einem 8049 zur Keyboard-Abfrage
- Sequential Circuits Pro One, Synthesizer (1981), arbeitet mit einem 8021, u. a. für den Sequenzer
Literatur
MCS-48
- J. Koch (Bearb.): Die Mikrocomputer-Familie MCS-48, Eigenschaften und Anwendungen. Philips / Valvo, 1980, ISBN 3-87095-253-9.
- J. Koch (Bearb.): Die Mikrocomputer-Familie MCS-48, Befehlsvorrat. Philips / Valvo, 1979, ISBN 3-8709-250-4.
- Horst Pelka: Der Ein-Chip-Mikrocomputer. Franzis-Verlag, München 1981, 141 S., ISBN 3-7723-6831-X.
- Mikrocomputer SAB 8048/8049 Befehlsliste. Hrsg. von der Siemens AG, Bereich Bauelemente, Balanstraße 73, 8000 München 80 (Bestell-Nr. B/2516).
- Helmut Steffen: Steuern/Prozeßdatenverarbeitung im Technikunterricht, Funktionsmodelle mit dem INTEL-Einchip-Computer 8048. Ferd. Dümmler Verlag, Bonn 1995, 103 S., ISBN 3-427-53411-1.
- MCS-48™ Single Component Microcomputer. Applications Seminar Notebook, 1978, Intel Corporation.
- MCS-48™ Microcomputer User's Manual (PDF; 7,2 MB), 1978, Intel Corporation.
- Lionel Smith, Cecil Moore: Serial I/O and Math Utilities for the 8049 Microcomputer. Application Note AP-49, January 1979, Intel Corporation.
- A High-Speed Emulator for Intel MCS-48™ Microcomputers. Application Note AP-55A, August 1979, Intel Corporation.
- Phil Dahm, Stuart Rosenberg: Intel MCS-48™ and UPI-41A™ Microcontrollers. Reliability Report RR-25, December 1979, Intel Corporation.
- Microcontroller Handbook. Intel 1984, Order number 210918-002.
- 8-Bit Embedded Controllers. Intel 1991, Order number 270645-003.
UPI-41
- UPI-41A User’s Manual. Intel 1980, Order number 9800504-02 Rev. B.
- Microprocessor Peripherals UPI-41A/41AH/42/42AH User’s Manual (PDF; 718 kB) Oktober 1993, Order number 231318-006, Intel Corporation.
- Johan Beaston, Jim Kahn: An 8741A/8041A Digital Cassette Controller. Application Note AP-90, May 1980, Intel Corporation.
Weblinks
- Grokking the MCS-48 System (PDF; 3,4 MB)
Einzelnachweise
- Intel’s CPU family trees (Memento vom 14. März 2011 im Internet Archive)
- MCS-48™ Microcomputer User's Manual. (Memento des Originals vom 21. Juli 2011 im Internet Archive; PDF; 7,2 MB) Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis. Intel Corporation, 1978.
- Technische Universität Chemnitz: Das Motherboard des AT (Memento des Originals vom 6. Januar 2012 im Internet Archive) Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis. .
- Datenblatt. (Memento des Originals vom 15. Mai 2016; PDF) Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis. Philips MAB8400-Familie.
- 8021 Single-Component 8-Bit Microcontroller; Intel Fair Applications Handbook (archive.org)
- 8022 Single-Component 8-Bit Microcontroller With On Chip A/D Converter; Intel Fair Applications Handbook (archive.org)
- 8048/8748/8035 Single-Component 8-Bit Microcontroller; Intel Fair Applications Handbook (archive.org)
- New High Performance 8049/8039/8039-6 Single-Component 8-Bit Microcontroller; Intel Fair Applications Handbook (archive.org)
- P8748H/P8749H/8048AH/8035AHL/8049AH/8039AHL/8050AH/8040AHL HMOS Single-Component 8-Bit Microcontroller; Intel Fair Applications Handbook (archive.org)
- 8041AH/8041AH-2/8641A/8741A Universal Peripheral Interface 8-Bit Microcontroller; Intel Fair Applications Handbook (archive.org)
- UPI-41AH/42AH Universal Peripheral Interface 8-Bit Slave Microcontroller; Intel Fair Applications Handbook (archive.org)
- 8741A Universal Peripheral Interface 8-Bit Microcomputer. (PDF; 214 kB), Oktober 1989, Order number 290241-001, Intel Corporation; Intel Fair Applications Handbook (archive.org)
- 8742 Universal Peripheral Interface 8-Bit Slave Microcomputer. (PDF; 216 kB), November 1991, Order number 290256-001, Intel Corporation; Intel Fair Applications Handbook (archive.org)