|
|
Lexikon auf Ihrer Homepage |
|
Lexikon als Lesezeichen hinzufügen |
Das MIDIbox Projekt ist eine nicht-kommerzielle, do-it-yourself-Plattform für MIDI-Hard- und Software, die auf der PIC-Mikrocontroller-Familie, insbesondere dem PIC18F452, PIC16F88, PIC18F4620 und PIC18F4685, sowie dem STM32 32-bit ARM Cortex-M3 Microcontroller aufbaut. Mit der Plattform ist es möglich eigenständige Midicontroller, Sequenzer und Synthesizer zu bauen.
Inhaltsverzeichnis |
Die MIDIbox Hardware Plattform (MBHP) basiert auf Thorsten Kloses Arbeit mit MIDI-Controllern. Das Design basiert auf einer standardisierten Umgebung von wiederverwertbaren und austauschbaren Modulen. Kurz nachdem die ersten Module veröffentlicht wurden, hat sich aus einer kleinen Anzahl von Enthusiasten eine stetig wachsende Open-Source-Entwicklercommunity gebildet.
Der Schwerpunkt der Plattform liegt auf gut designten und dokumentierten Modulen, die auf kleinen unkomplizierten Schaltungen basieren, um auch Anfängern den Einstieg zu erleichtern. Diese Module werden dann in einem kompletten Aufbau verbunden. Alle Karten können als Single-Layer-PCB hergestellt werden. Prototypen-Boards können mit einem Freeware-CAD-Programm entworfen werden. Fast alle Komponenten sind through-hole designt, um die Montage zu erleichtern.
Die MIDIbox Hardware Plattform betreibt ein eigenes Open-Source-Betriebssystem: MIOS (MIDIbox Operating System), das für Geschwindigkeit und Genauigkeit in PIC-Assemblersprache geschrieben ist. Es gibt einen C-Wrapper-Layer um leichter programmieren zu können. MIOS ist so konzipiert und dokumentiert, dass damit einfache Neukonfigurationen, Anpassungen und Erweiterungen durch Bastler und Entwickler vorgenommen werden können.
Das MIDIbox Operating System (MIOS) wurde entwickelt, um die Gestaltung von flexiblen MIDI-Controller-Applikationen zu ermöglichen. MIOS hält sich an die Idee einer nicht-kommerziellen, offenen Plattform, was als grundlegend erachtet wird für den Austausch von Ideen und persönlichen Anpassungen, die nicht mit handelsüblichen Controllern möglich wäre.
Die meisten Controller die von der Community gebaut werden, bestehen auf bereits dokumentierten Entwürfen und beginnen ihr Leben mit dem Feature-Set, das von der bestehenden Firmware zur Verfügung gestellt wird. Endbenutzer können ihre Geräte mit austauschbaren Programm-Code erweitern und somit die Geräte der Host-Anwendung, Synthesizern oder anderen MIDI-Geräten anpassen. Auch ist eine individuelle Anpassung möglich, die den eigenen bevorzugten Arbeitsablauf unterstützt, oder dem eigenen Entwurf neuer Projekte von Grund auf anzupassen.
Quellcode von Anwendungen, Modulschaltpläne und PCB-Layouts stehen kostenlos für die nicht-kommerzielle Verwendung als Vorlagen für Änderungen und Verbesserungen zur Verfügung. Somit stellt MIOS und die Hardware-Plattform einen leichten Einstieg in das Microcontroller-Entwicklungs-Hobby dar, um Anwendungen außerhalb der Bereiche des kommerziellen MIDI-Mainstream-Markts zu ermöglichen.
MIOS wurde bis Version 1.8 unter der GNU GPL lizenziert. Spätere Versionen erfordern jetzt Thorsten Kloses Erlaubnis für den gewerblichen Einsatz.
Das Betriebssystem besteht aus einem Kernel, der dem Benutzer Hooks an Hard- und Software-Ereignissen zur Verfügung stellt, sowie Funktionen für die Interaktion mit Modulen.
Ein Core-Modul kann folgendes mit einem PIC18F452 Mikrocontroller verarbeiten:
Background-Treiber stehen für die folgenden Steuerungsaufgaben zur Verfügung:
Das komplette Betriebssystem ist in Assemblersprache geschrieben und auf Geschwindigkeit optimiert. MIOS nutzt derzeit 8kb Programmspeicher und 640 Byte RAM. Nur 75 μs sind erforderlich, um 128 digitale Input-Pins zu lesen und 128 Output-Pins zu schreiben. 16 Drehregler sind innerhalb von 100 μs aktualisiert. Analoge Eingänge werden im Hintergrund alle 200 μs aktualisiert; Veränderungen, die ein definierbares Minimum überschreiten, lösen einen Hook aus.
Bis zu 256 MIDI-Events können Funktionen auslösen; Die Verarbeitung der Event-Liste erfordert etwa 300 μS. MIDI-Events können auch von einer Benutzer-Routine für das SysEx-Parsen oder ähnlichen Jobs verarbeitet werden. Ein User-Timer ist für zeit-basierenden Code vorhanden. Support für andere Hochsprachen neben C ist möglich.
MIOS ist ein dediziertes Betriebssystem für den Mikrocontroller PIC18F452. Dieser PIC ist pinkompatibel mit dem PIC16F877, der in früheren MIDIbox Projekten verwendet wurde. So ist es abwärtskompatibel mit älteren MIDIbox Core-Modulen.
Der PIC18F452 besitzt mehr internen Flash, mehr internen RAM, einige neue Anweisungen und eine bessere System-Architektur. Er ist in den meisten Ländern für den gleichen Preis wie der PIC16F877 erhältlich.
Für das neuere MIOS32 steht ein Core-Modul auf Basis des STM32F103RE zur Verfügung. Dieser 32Bit Controller ist deutlich schneller als seine PIC-Vorgänger und verfügt über eine große Zahl integrierter Schnittstellen. Das CORE32-Modul ist mit den bereits vorhandenen Modulen vollständig kompatibel.
Es stehen zahlreiche komplett dokumentierte Projekte zur Verfügung, sowie eine große Anzahl von Benutzer-Projekten der Community. Die offiziellen Projekte sind wie folgt: