Ein RAM/EPROM-Simulator simuliert, wie der Name schon andeutet, einen RAM oder EPROM in der Schaltung. Solche Simulatoren machen sich zu Nutze, dass EPROMs typischerweise gesteckt (nicht eingelötet) werden, da man sie zum Löschen und Programmieren zumeist ausbauen musste. (In-System-Programmierung war damals, um 1995, noch nicht üblich.)
Man spart sich damit bei der Programmentwicklung den umständlichen Steck- und Löschzyklus für den EPROM für jedes Programm-Update. Mit dem Aufkommen von Flash-Speichern ist das Problem heutzutage weitestgehend verschwunden. Trotzdem ist RAM beim Schreiben immer noch schneller als Flash.
Weiterhin sind die unterschiedlichen EPROM-Typen trotz unterschiedlicher Speichergröße weitestgehend pinkompatibel, was die Konstruktion von Programmiergeräten als auch Simulatoren erleichtert.
Schließlich wurden statische RAM-Schaltkreise pinkompatibel zu EPROMs hergestellt. Diese haben nur einen zusätzlichen Anschluss zum Beschreiben (WE). Daher ist ein RAM-Simulator eine einfach realisierbare Bonus-Funktionalität eines EPROM-Simulators. Dynamische RAMs können damit nicht emuliert werden.
Ausgelesener Schaltplan (Eagle), ohne Gewähr!
Der Simulator hat folgende Eigenschaften:
Und er hat folgende Besonderheiten bzw. Kuriositäten:
Hier noch mal der Schaltplan des PEPS-III als Vektorgrafik (WMF).
Eine Alternative wäre der Betrieb an einem USB2LPT (nur High-Speed sinnvoll) mit Gender-Changer und spezialisierter Firmware. Die Schreib- und Lesegeschwindigkeit erreicht damit über 100 kByte/s, viel mehr als mit einem konventionellen Parallelport möglich ist.
Da USB Full-Speed für den Datentransport ausreichend erscheint, kann man auch eine eigenständige Mikrocontroller-Anbindung mit einem USB-Controller entwickeln, etwa mit AT90USB162.
Die Zugriffsmöglichkeiten zusammengefasst (Zeiten: Parameter z = 1, Celeron 2,8 GHz):
Software | Interface | DOS | Windows 9x/Me | Windows NT/2k/XP/Vista/7/8 | Windows XP/Vista/7/8 64 bit | Linux |
---|---|---|---|---|---|---|
Conitec peps3.exe | Parallelport, Direktzugriff | W: 25 kByte/s R: 19 kByte/s (mit EMM386.EXE) | W: 31 kByte/s R: 24 kByte/s (Celeron 1,1 GHz) | W: 14 kByte/s R: 7 kByte/s mit Portzugriffs-Treiber DirectNT | geht nicht, kein DOS | kein Linux- Programm |
Heimo Schön peps für Linux | kein DOS- Programm | kein Windows-Programm | mit ioperm()
| |||
meine Version (haftmann#software) Windows: peps.exe win9x/peps.exe win64/peps.exe Linux: peps.x86 peps.amd64 | -d0: Parallelport, Direktzugriff | ja | mit Portzugriffs-Treiber DirectNT (eincompiliert) | geht nicht, giveio64 war noch nicht erfunden | mit ioperm()
| |
-d1: Parallelport, inpout32.dll | ja | ja | ja (64-bit-EXE benötigt InpOutX64.dll) | via /dev/parportX
| ||
-d2: USB->Paralleldrucker-Konverter, Adapter, fĂĽr Notebooks | ja ab Win98 | W: 30 kByte/s R: 0,8 kByte/s Keine Admin-Rechte erforderlich! | W: 17 kByte/s R: 1 kByte/s via /dev/usb/lpX
| |||
-d3: USB2LPT High-Speed, fĂĽr Notebooks | ohne Firmware W: 20 kByte/s, R: 8 kByte/s mit Firmware W: 100 kByte/s, R: 100 kByte/s | TODO (Treiberzertifizierungszwang deaktivieren) | geplant: libusb |
FĂĽr Parallelport unter Windows XP und Linux gibt es bereits auf der Conitec-Seite entsprechende Software.
Diese von mir ĂĽberarbeitete Software hat folgende Features
Was noch fehlt:
Der derzeitige Quelltext setzt wahrscheinlich Intel-Architektur voraus, was wegen des Parallelports auch sinnvoll erscheint:
Es gibt Leute, die das Fahrrad gerne nochmal erfinden, ohne vorher das WWW auf vorhandenes abzuklopfen.