VMEbusDer VMEbus (Versa Module Eurocard-bus), auch VME-Bus oder VME-Bussystem genannt, ist ein Multi-User-Bussystem für die Steuerungstechnik, das 1981 ursprünglich für die Motorola-Prozessorfamilie 68000 entwickelt wurde. Gegenwärtig unterstützt der VMEbus nahezu alle Prozessoren, z. B. Intel x86, HP PA-RISC, Motorola 88000 und PowerPC. Er wurde von der IEC als ANSI/IEEE 1014–1987 standardisiert. Die Ursprungsvariante verfügte über einen 16 Bit breiten Datenbus und einen 24 Bit breiten Adressbus, für die später diverse Erweiterungen entwickelt wurden. Mit der aktuellen VME64-Version stehen 64 Bit Busbreite zur Verfügung. Verwendet wird der VMEbus u. a. in der Luft- und Raumfahrt, z. B. basiert der Computer der ISS auf dem VMEbus, wenngleich in anderer Bauform. Der Bus ist ein Backplanebus (Rückwandbus ohne eigene elektronische Bauteile) für 19″-Einschubgehäuse. Entworfen wurde der VMEbus von einem Konsortium um die Unternehmen Motorola und Philips. Unternehmen, die VMEbus-Bauteile entwickeln und vertreiben, sind in der VITA (VMEbus International Trade Association) organisiert, Anwender haben sich ebenfalls in Organisationen zusammengeschlossen. In Konkurrenz zum VMEbus hat das Unternehmen Intel den vergleichbaren Multibus II auf Basis der 80x86-Prozessoren auf den Markt gebracht, der aber bei weitem nicht so erfolgreich wurde wie der VMEbus und seine Weiterentwicklungen. AnschlüsseSteckverbindungenDie Platinen und Baugruppen (Einschübe) werden mit Steckverbindern nach DIN 41612 und IEC 603-2 auf dem VMEbus aufgesteckt. Diese haben 3 Reihen mit je 32 Kontakten, also 96 Kontakten je Steckverbinder. Je nach Ausbaustufe werden die Anschlüsse P1, P2 und P3 (neueste Erweiterung – nur im VXI-Bus) belegt. AllgemeinesAuf dem Anschluss P1 sind untergebracht (Details s. u.):
Der Anschluss P2 enthält:
Der Anschluss P3 enthält:
Belegung an P1
Legende
BussteuerleitungenDie Bussteuerungsleitungen dienen zur Belegung und Freigabe im Datenbus. Hierzu gehören die Leitungen /BR0 bis /BR3, sie sind die Busanforderungen (Busrequest), sie sind L-aktiv. Jeder Einschub kann eine Busanforderung starten, in dem die entsprechende Leitung auf L gesetzt wird. Die Leitungen /BG0OUT bis /BG3OUT sind die Busfreigaben (Bus Grant) als Ausgänge, /BG0IN bis /BG3IN analog dazu die Eingänge. Diese Leitungen sind so beschaltet, dass ein Ausgang /BGxOUT jeweils an den nächsten Einschub an den Eingang /BGxIN weitergeleitet wird. Diese Daisy-Chain-Beschaltung ermöglicht die Weitergabe der Freigabe an den nächsten Einschub. Nicht belegte Einschübe müssen mit Jumpern gebrückt werden, da die Weitergabekette sonst unterbrochen ist. Mit dieser Technik wird erreicht, dass die vier Busanforderungen von beliebig vielen Einschüben genutzt werden können, dies führt allerdings zu dem Nebeneffekt, dass Einschübe weiter links eine höhere Zuteilungswahrscheinlichkeit haben. Wenn ein Einschub den Bus belegt, zeigt er es durch ein L auf der Leitung / BBSY (Bus Busy) an. Das Gegenstück dazu ist die Leitung / BCLR (Bus Clear), die vom Arbiter angesteuert wird und mit einem L den Einschub auffordert, den Bus wieder freizugeben, also die Übertragung zu beenden. Mit der Leitung /DTACK (Data Acknowledge) wird mit L angezeigt, dass ein Datenbustransfer erfolgreich war. Mit einem L auf der Leitung /BERR wird das Fehlschlagen der Übertragung angezeigt Die Leitungen DS0 und DS1 legen zusammen mit LWORD und (in Grenzen) AD01 fest, welche Datengruppen eines 8-, 16- oder 32-Bit-Worts sich auf welchen Datenleitungen befinden. Diese etwas unübersichtliche Methode machte es möglich, Datengruppen auf unterschiedlichen Busbreiten und in unterschiedlichen Adressräumen zu übertragen. Zusätzlich dienen die Leitungen AM0 bis AM6 der Zuordnung von Adressräumen und Übertragungsarten. Dabei werden unterschieden:
InterruptleitungenDie Interruptanforderungen erfolgen über die Leitungen IRQ1 bis IRQ7. Anders als bei der Arbitrierung kann die Interruptsteuerung auch von anderen als dem ersten Einschub behandelt werden. Hierzu ist eine Leitung IACK (Interrupt Acknowledge) als Ausgang durchgeführt, die vor dem ersten Einschub zum IACKIN wird, die dann wie bei der Buszuweisung immer über IACKIN und IACKOUT weitergegeben wird. In der Zeichnung sind diejenigen Anschlüsse rot dargestellt, die bei fehlendem Einschub durch einen Jumper überbrückt werden. (Nur 3 der 20 möglichen Einschübe sind eingezeichnet, die Reihe würde sich so immer fortsetzen.) Es gibt nur einen solchen IACK-Kanal, die Nummer des Interrupts, der gerade behandelt wird, wird in den Adressbits A1 bis A3 übertragen. ArbeitsweiseInterrupt- und Bussteuerung machen einen Arbiter erforderlich, der die Interrupt- und Bus-Anforderungen regelt. Er ist in der Regel im ersten Steckplatz angeordnet. InterruptsDer VMEbus hat sieben IRQ-Leitungen mit unterschiedlichen Prioritäten. Jeder Interrupt kann aber von beliebig vielen Platinen genutzt werden, da der Interruptvektor nicht durch die IRQ-Leitung bestimmt wird, sondern die anfordernde Platine gibt den Interruptvektor selbst an. Im Einzelnen erfolgt eine Interruptanforderung so:
Der große Vorteil dieses Verfahrens, das erst einmal unnötig kompliziert anmutet, liegt darin, dass sich viele Einheiten die IRQ-Leitungen teilen können, ohne dadurch Interrupt-Konflikte zu provozieren, so wie es im ISA-, VLB- und auch im PCI-Bus immer wieder passiert. Dabei ist zu beachten, dass der VMEbus historisch vor den eben genannten Bussystemen entwickelt und im Markt eingeführt wurde. BussteuerungDer VMEbus ist ein Multimaster-Bus, d. h. mehrere Busmaster können den Bus belegen. Auch hier wird wieder mit Prioritäten gearbeitet: vier BRQ-Leitungen stehen zur Verfügung, sie:
Der Arbiter zur Buszuteilung sitzt in der Regel auf der ersten Einschubposition, weil es keine gemeinsame BGx-Leitung gibt. Ein Arbiter, der an anderer Stelle sitzt, kann nur noch die Einheiten steuern, die rechts von ihm eingebaut sind; damit wären die Steckplätze links davon verloren. VMSbus und VMXbus
AnwendungenWeblinks
Einzelnachweise
|