DE102009040839A1 - Peripherieschnittstelle, Datenstrom und Datenübertragungsverfahren - Google Patents

Peripherieschnittstelle, Datenstrom und Datenübertragungsverfahren Download PDF

Info

Publication number
DE102009040839A1
DE102009040839A1 DE102009040839A DE102009040839A DE102009040839A1 DE 102009040839 A1 DE102009040839 A1 DE 102009040839A1 DE 102009040839 A DE102009040839 A DE 102009040839A DE 102009040839 A DE102009040839 A DE 102009040839A DE 102009040839 A1 DE102009040839 A1 DE 102009040839A1
Authority
DE
Germany
Prior art keywords
data
data stream
control
output
replacement
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102009040839A
Other languages
English (en)
Inventor
Andreas Kühm
Nico Presser
Jörg Engel
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Carl Zeiss Microscopy GmbH
Original Assignee
Carl Zeiss MicroImaging GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Carl Zeiss MicroImaging GmbH filed Critical Carl Zeiss MicroImaging GmbH
Priority to DE102009040839A priority Critical patent/DE102009040839A1/de
Publication of DE102009040839A1 publication Critical patent/DE102009040839A1/de
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Abstract

Typischerweise werden Steuerdatenströme für Peripheriegeräte blockweise mittels DMA über Peripherieschnittstellen übertragen. Bei herkömmlichen Peripherieschnittstellen muss auf dem Steuerrechner ein aufwendiges Echtzeitbetriebssystem verwendet werden, um durch eine ausreichend kurze Reaktionszeit einen kontinuierlichen, also lückenlosen Datenstrom zu bewirken. Die Erfindung soll dies mit einem nicht echtzeitfähigen Betriebssystem ermöglichen. In dem Steuerrechner wird ein Datenstrom erzeugt, der Steuerdaten (Bn) für das Peripheriegerät (10) und ein Segment (SOS) mit im Falle eines Datenstromabrisses auszugebenden Ersatzsteuerdaten und einer einleitenden Ersatzdatenmarkierung, insbesondere einen Sprungbefehl (JMP) über die Ersatzsteuerdaten hinweg, enthält. In der Peripherieschnittstelle wird der Datenstrom empfangen und an das Peripheriegerät ausgegeben, wobei in dem empfangenen Datenstrom eine Anweisung für eine Modifikation der Ausgabe des Datenstroms identifiziert und der Datenstrom gemäß der identifizierten Anweisung modifiziert ausgegeben wird. Laser-Scanning-Mikroskopie Fig. 6C

Description

  • Die Erfindung betrifft eine Peripherieschnittstelle mit einer Steuereinheit, die einen Datenstrom von einem Steuerrechner empfängt und sequentiell an ein Peripheriegerät ausgibt, ein Verfahren zum Übertragen eines Datenstroms über eine Peripherieschnittstelle, wobei ein Datenstrom von einem Steuerrechner empfangen und vorzugsweise sequentiell an ein Peripheriegerät ausgegeben wird, und einen Datenstrom, enthaltend Steuerdaten für ein Peripheriegerät.
  • Eine Peripherieschnittstelle dient der Kommunikation zwischen einem Steuerrechner und einem oder mehreren Peripheriegeräten durch elektronische Datenübertragung. Nach dem Stand der Technik werden Peripheriegeräte über Standardschnittstellen wie „USB” (engl. „Universal Serial Bus”), „Ethernet” (IEEE 802) oder „Firewire” (IEEE 1394) angeschlossen, die auf der Peripherieseite einen separaten Bus bereitstellen, während sie mit dem Steuerrechner typischerweise über einen seiner Systembusse kommunizieren. Soll über die Peripherieschnittstelle ein Peripheriegerät gesteuert werden, so erzeugt der Steuerrechner, genauer gesagt, dessen Zentraleinheit (engl. „Central Processing Unit”, CPU), beispielsweise einen Strom von Steuerdaten, der im Arbeitsspeicher (engl. „random access memory”; RAM) des Steuerrechners abgelegt wird. Die Übertragung zur Peripherieschnittstelle wird in der Regel durch eine von der Zentraleinheit ausgeführte Treibersoftware kontrolliert, welche Zugriffe des Schnittstellenbausteins auf den Arbeitsspeicher auslöst. Der Zugriff auf den Arbeitsspeicher erfolgt zyklisch mittels direktem Speicherzugriff (engl. „direct memory access”; DMA) über den Systembus des Steuerrechners. Die Peripherieschnittstelle weist zu diesen Zweck eine DMA-Steuerung (engl. „DMA controller”) auf. Typischerweise wird von der DMA-Steuerung in jedem DMA-Zyklus ein Datenblock übertragen, dessen Größe in der Regel einer einzelnen Speicherseite (engl. „memory Page”) des Arbeitsspeichers entspricht.
  • Die Treibersoftware meldet jeden DMA-Zyklus bei der DMA-Steuerung des Peripheriegeräts zur Übertragung an. Der Steuerrechner führt anschließend andere Software, beispielsweise ein Anwendungsprogamm mit Benutzerinteraktion, aus. Er erhält später eine Bestätigung der vollständigen Übertragung in Form einer Unterbrechungsanforderung (engl. „interrupt request”, IRQ). Auf die Unterbrechungsanforderung hin wird die reguläre Programmausführung unterbrochen und stattdessen die Treibersoftware ausgeführt, welche die Datenübertragung durch Auslösen des nächsten DMA-Zyklus fortsetzen muss. Um kontinuierlich eine hohe Datenübertragungsgeschwindigkeit zu erreichen, ist eine sehr kurze Reaktionszeit der Treibersoftware auf eine solche Unterbrechungsanforderung notwendig, so dass der jeweils nächste DMA-Zyklus rechtzeitig ausgelöst wird. Insbesondere in einem echtzeitkritischen System darf eine maximale Reaktionszeit nicht überschritten werden, um eine Lücke in der Datenübertragung zu verhindern. Verwendet der Steuerrechner ein nicht echtzeitfähiges Betriebssystem, so ist eine deterministische Behandlung einer Unterbrechungsanforderung für einen DMA-Zyklus jedoch nicht möglich. Die Reaktionszeit auf eine Unterbrechungsanforderung kann hier nahezu beliebig ansteigen, wenn die Auslastung des Systems zunimmt oder wenn es eine Vielzahl gleichzeitiger DMA-Übertragungsvorgänge gibt. Die Anzahl der gleichzeitigen DMA-Übertragungsvorgänge nimmt mit der zu erzielenden Datenübertragungsgeschwindigkeit zu und wird außerdem durch die Größe der zu übertragenden Datenmenge bestimmt. Übersteigt die Reaktionszeit der Zentraleinheit einen kritischen Wert, so kommt es zu Unterbrechungen des Datenstroms.
  • Manche Peripheriegeräte sind jedoch auf einen kontinuierlichen, also lückenlosen Datenstrom angewiesen. Beispielsweise muss die Abtasteinheit (engl. „scanner”) eines Laser-Scanning-Mikroskops (LSM) während eines Bildaufnahmevorgangs permanent mit Steuerdaten für die Bewegung eines oder mehrerer Galvanometerspiegel versorgt werden. Dies erfolgt typischerweise, indem der Steuerdatenstrom blockweise (korrespondierend mit Zeitintervallen) erzeugt und vom Steuerrechner zur Abtasteinheit übertragen wird. Dadurch besteht beispielsweise die Möglichkeit, auch während eines Bildaufnahmevorgangs kurzfristig die Abtastbewegung zu verändern. Bei einer Unterbrechung des Datenstroms führt jedoch jeder Galvanometerspiegel von seinem derzeitigen Bewegungszustand aus eine freie Schwingbewegung durch. Je nach momentaner Auslenkung, Geschwindigkeit und Beschleunigung des jeweiligen Spiegels zum Zeitpunkt des Datenstromabbruchs kann es zu einer Beschädigung des Spiegels (z. B. durch Überdrehung) oder der Probe (z. B. durch Überbelichtung) kommen.
  • Im Stand der Technik muss auf dem Steuerrechner also nachteiligerweise ein aufwendiges Echtzeitbetriebssystem verwendet werden, um Unterbrechungen des Datenstroms zu verhindern.
  • Der Erfindung liegt die Aufgabe zugrunde, eine Peripherieschnittstelle, einen Datenstrom und ein Verfahren der jeweils eingangs genannten Art zu verbessern, so dass einem Peripheriegerät, insbesondere bei einem nicht echtzeitfähigen Betriebssystem des Steuerrechners, ein Datenstrom lückenlos bereitgestellt werden kann.
  • Die Aufgabe wird gelöst durch eine Peripherieschnittstelle, welche die in Anspruch 1 angegebenen Merkmale aufweist, durch einen Datenstrom, welcher die in Anspruch 10 angegebenen Merkmale aufweist, und durch Verfahren, welche die in Anspruch 13 oder 15 angegebenen Merkmale aufweisen.
  • Vorteilhafte Ausgestaltungen der Erfindung sind Gegenstand der jeweiligen Unteransprüche.
  • Erfindungsgemäß ist vorgesehen, dass die Steuereinheit der Peripherieschnittstelle aus dem empfangenen Datenstrom eine Anweisung für eine Modifikation der Ausgabe des Datenstroms entnimmt. Indem die Steuereinheit in dem empfangenen Datenstrom eine Anweisung für eine Modifikation der Ausgabe des Datenstroms identifiziert und den Datenstrom gemäß der identifizierten Anweisung modifiziert ausgibt, kann sie ohne echtzeitkritische Interaktion mit dem Steuerrechner den Datenstrom gemäß der identifizierten Anweisung den jeweils vorliegenden Bedingungen anpassen. Da der Steuerrechner den Datenstrom erstellt, kann er über eine die Ausgabe des Datenstroms modifizierende Anweisung das Verhalten der Peripherieschnittstelle beeinflussen. Die Modifikation kann beispielsweise ab der Stelle im Datenstrom, an der sich die Anweisung befindet, einmalig oder bis zu einer abändernden Anweisung oder permanent durchgeführt werden. Denkbar ist auch, dass die Modifikation stattdessen ab einem Zeitpunkt, zu dem eine vorgebbare (z. B. äußere) Bedingung erstmalig erfüllt ist, einmalig oder bis zu einer abändernden Anweisung oder permanent durchgeführt wird. Die Anweisung kann auch derart gestaltet sein oder von der Steuereinheit interpretiert werden, dass die Ausgabe des Datenstroms nur modifiziert wird, solange die vorgebbare äußere Bedingung erfüllt ist. Zu diesem Zweck kann die Steuereinheit wiederholt prüfen, ob die in der Anweisung enthaltene Bedingung für die Modifikation erfüllt ist und nur, wenn und solange die Bedingung erfüllt ist, die Modifikation durchführen. Ist die Bedingung nicht mehr erfüllt, so kann die Ausgabe des Datenstroms unmodifiziert fortgesetzt werden. Die Modifikation kann beispielsweise in einer Umordnung des Datenstrominhalts oder einer Wiederholung bestimmter Abschnitte des Datenstroms bestehen. Die Art der Modifikation kann dabei von vornherein feststehen oder alternativ in der Anweisung kodiert sein. Dabei können weitere Parameter in der Anweisung kodiert sein.
  • Durch eine erfindungsgemäß im Datenstrom enthaltene, vorzugsweise bedingte Modifikationsanweisung kann die Zusammensetzung des Datenstroms, der das Peripheriegerät erreicht, durch die Peripherieschnittstelle selbständig, also ohne zeitkritischen Einsatz der Zentraleinheit des Steuerrechners, flexibel der jeweiligen Situation angepasst werden. Beispielsweise kann die Modifikationsanweisung ein Segment von Ersatzdaten („Notfallsegment”) mit einer der Steuereinheit vorbekannten Markierung enthalten. Falls die Steuereinheit in diesem Beispiel feststellt, dass der vom Steuerrechner bereitgestellte Datenstrom abgerissen ist, wird sie die Ausgabe an das Peripheriegerät mit den Ersatzdaten nahtlos fortsetzen. Insbesondere kann sie die Ersatzausgabe wiederholt durchführen bis ihr wieder genügend reguläre Daten vom Steuerrechner vorliegen. So kann eine lückenlose Ausgabe eines konsistenten Datenstroms an das Peripheriegerät erreicht werden. Ein Echtzeitbetriebssystem ist nicht erforderlich. Die Peripherieschnittstelle kann dabei unmittelbar am Peripheriegerät angeordnet sein, so dass sie beispielsweise ausschließlich analoge Steuersignale ausgibt. Alternativ kann zwischen der Peripherieschnittstelle und dem Peripheriegerät ein weiterer Datenbus angeordnet sein.
  • Vorzugsweise enthält die die Ausgabe modifizierende Anweisung einen bedingten oder unbedingten Sprungbefehl für die Fortsetzung der Ausgabe an einer durch den Sprungbefehl bestimmbaren oder bestimmten Position innerhalb des Datenstroms. Ein Sprungbefehl weist die Steuereinheit an, die Ausgabe zu modifizieren, indem sie an einer mit dem Sprungbefehl anzugebenden, anderen Stelle des Datenstroms fortgesetzt wird. Ein bedingter Sprungbefehl weist die Steuereinheit an, die Ausgabe nur dann an der anderen Stelle fortzusetzen, wenn eine mit dem Sprungbefehl anzugebende logische Bedingung erfüllt ist; anderenfalls setzt die Steuereinheit die Ausgabe hinter dem Sprungbefehl sequentiell fort. Der Sprungbefehl selbst wird in keinem Fall an das Peripheriegerät ausgegeben. Die Verwendung von Sprungbefehlen innerhalb des Datenstroms erlaubt die flexible Veränderung der Ausgabe des Datenstroms an das Peripheriegerät, ohne dass die Peripherieschnittstelle die innere Struktur des Datenstroms zu kennen braucht. Sie muss lediglich Sprungbefehle als solche erkennen und eine eventuelle Bedingung für die Ausführung des Sprungbefehls interpretieren können. Durch bedingte und unbedingte Sprungbefehle kann die modifizierte Ausgabe an das Peripheriegerät mit geringem Aufwand in Schleifen erfolgen. Dies kann beispielsweise zur Verringerung der benötigten Übertragungsbandbreite ausgenutzt werden. So braucht ein sich wiederholendes Segment von Steuerdaten nur einmal zur Peripherieschnittstelle übertragen werden, wenn ein Zähler in der Peripherieschnittstelle mittels einer in den Datenstrom eingebetteten Anweisung initialisiert wird und eine bedingte Sprunganweisung vom Ende zum Anfang des betreffenden Datensegments eine endliche Wiederholung bewirkt.
  • Vorteilhafterweise ist es auch möglich, dass der Steuerrechner zwei oder mehr simultane Steuerdatenströme erzeugt, die alle zur Peripherieschnittstelle übertragen werden, wobei die Steuereinheit der Peripherieschnittstelle zu einem bestimmten Zeitpunkt nur Steuerdaten aus genau einem der Datenströme an das Peripheriegerät ausgibt. Durch in die Datenströme eingebettete Modifikationsanweisungen für die Ausgabe, beispielsweise entsprechend erweiterte Sprungbefehle, kann die Ausgabe zwischen den Steuerdatenströmen gewechselt werden. Dieser Wechsel kann in kurzer Zeit erfolgen, beispielsweise innerhalb von Mikrosekunden. Diese schnelle Umschaltung kann beispielsweise in medizinischen Versuchsanordnungen, in denen mit kurzer Reaktionszeit unterschiedliche Gerätefunktionen ausgelöst werden müssen, genutzt werden. Eine solche Umschaltung zwischen mehreren Datenströmen kann insbesondere auch mit Modifikationsanweisungen für eine Ersatzdatenausgabe kombiniert werden. Beispielsweise können in jeden der simultan zu übertragenden Steuerdatenströme Ersatzdaten-/Notfallsegmente eingebettet werden.
  • Wenn der Datenstrom segmentweise aufgebaut ist, wobei jedes Segment eine konstante Länge oder eine Längenangabe aufweist, kann jedes Segment eine Inhaltsangabe enthalten, beispielsweise in Form einer oder mehrerer numerischer oder alphanumerischer Zeichen. Durch eine solche Inhaltsangabe können Segmente mit Ersatzdaten als solche markiert sein. Eine solche Markierung für ein Ersatzdatensegment kann als Sprungbefehl über das Ersatzdatensegment hinweg aufgefasst werden, so dass die Ersatzdaten nicht unmittelbar an das Peripheriegerät ausgegeben werden. Das Sprungziel kann die Steuereinheit dabei anhand der vereinbarten beziehungsweise explizit angegebenen Segmentlänge bestimmen. Alternativ kann zu einem Sprungbefehl eine Sprungweite (engl. „offset”) explizit angegeben werden. Das Sprungziel zur Fortsetzung der Datenausgabe ergibt sich dann aus der aktuellen Position im Datenstrom zuzüglich der Sprungweite. Alternativ kann ein Sprungziel direkt mit dem Sprungbefehl angegeben werden.
  • In einer allgemeineren Ausprägung der Erfindung identifiziert die Steuereinheit ein Abreißen des zu empfangenden Datenstroms und gibt daraufhin selbständig einen Ersatzdatenstrom aus. Der Ersatzdatenstrom kann der Steuereinheit dabei entweder fest vorgegeben werden, beispielsweise in einem Nurlesespeicher (engl. „read-only memory”, ROM). Es kann sich beispielsweise um Ersatzdaten handeln, die die Galvanometerspiegel so steuern, dass stationär ein unkritischer Probenbereich oder ein Bereich außerhalb der Probe beleuchtet wird („Parken”). Alternativ zur Speicherung kann die Steuereinheit den Ersatzdatenstrom während der Übertragung (engl. „on-the-fly”) erzeugen, beispielsweise anhand der zuletzt regulär an das Peripheriegerät ausgegebenen Daten. Dies kann beispielsweise vorsorglich permanent-simultan zur regulären Ausgabe erfolgen, wobei die Ausgabe im Falle des Abreißens des regulären Datenstroms lediglich vom regulären Datenstrom auf den Ersatzdatenstrom umgeschaltet wird. Dadurch ist die Reaktionszeit bis zur Ausgabe des Ersatzdatenstroms minimal. Alternativ kann die Erzeugung des Datenstroms erst nach Detektion des Abreißens gestartet werden.
  • In einer vorteilhaften, alternativen Ausführungsform kann die Steuereinheit eine Anweisung für eine Zusammensetzung des Ersatzdatenstroms aus dem Datenstrom entnehmen. Dadurch kann die Ersatzausgabe flexibel gestaltet werden, denn der Steuerrechner kann auf diese Weise die Ersatzausgabe situationsabhängig beeinflussen. Dennoch ist keine echtzeitkritische Interaktion zwischen Steuerrechner und Peripherieschnittstelle erforderlich. Die Anweisung für die Zusammensetzung des Ersatzdatenstroms kann beispielsweise als Anweisung für eine Modifikation des Datenstroms im obenbeschriebenen Sinne ausgestaltet sein beziehungsweise von der Steuereinheit auf diese Weise interpretiert werden.
  • Zweckmäßigerweise beendet die Steuereinheit die Ausgabe des Ersatzdatenstroms, wenn der Steuerrechner den zu empfangenden Datenstroms fortsetzt, und gibt den fortgesetzten Datenstrom aus. Dadurch kann der Datenstrom nahtlos übertragen werden. Wird über die Peripherieschnittstelle neben dem Steuerdatenstrom zum Peripheriegerät auch ein Ergebnisdatenstrom vom Peripheriegerät zum Steuerrechner übertragen, so kann die Steuereinheit Ergebnisdaten, die aus dem Zeitraum der Ausgabe der Ersatzsteuerdaten resultieren, verwerfen. Dadurch kann die Ersatzdatenausgabe für den Steuerrechner transparent gestaltet werden. Alternativ ist es möglich, dass die Steuereinheit der Peripherieschnittstelle das Abreißen des Steuerdatenstroms mitteilt, beispielsweise mit Beginn oder am Ende der Ersatzdatenausgabe, auf einer separaten Signalleitung oder in den Ergebnisdatenstrom einkodiert. Der Steuerrechner kann daraufhin selbst einen Teil des Ergebnisdatenstroms verwerfen, beispielsweise einen Teil, der ausschließlich Ergebnisdaten aus dem Zeitraum der Ersatzdatenausgabe enthält.
  • Bevorzugt sind solche Ausgestaltungen der Peripherieschnittstelle, in denen die Steuereinheit den Datenstrom über einen Systembus des Steuerrechners empfängt. Darunter sind auch Ausführungsformen zu verstehen, in denen die Steuereinheit den Datenstrom aktiv durch direkte Speicherzugriffe aus dem Arbeitsspeicher des Steuerrechners liest. Insbesondere kann das in DE 10 2008 009 634 , deren Offenbarungsgehalt hier in vollem Umfang einbezogen wird, beschriebene Datenübermittlungsverfahren verwendet werden.
  • Die Vorteile der Erfindung können insbesondere für die Steuerung einer Komponente eines Laser-Scanning-Mikroskops als Peripheriegerät verwendet werden. Dadurch können Schäden an einer Abtasteinheit oder an einer Probe vermieden werden.
  • Zweckmäßigerweise ist die Peripherieschnittstelle als Steckkarte für den Steuerrechner oder als Schaltung für den Einsatz in dem Steuerrechner ausgebildet. Dadurch hat ihre Steuereinheit mit geringem Aufwand Zugriff auf den Systembus und insbesondere den Arbeitsspeicher des Steuerrechners. Zudem benötigt eine Steckkarte nur geringen Bauraum.
  • Die Erfindung umfasst auch einen Datenstrom, der einen Abschnitt mit im Falle eines Datenstromabrisses auszugebenden Ersatzsteuerdaten und eine den Abschnitt einleitende Ersatzdatenmarkierung enthält. Vorteilhafterweise ist die Ersatzdatenmarkierung ein bedingter oder unbedingter Sprungbefehl über die Ersatzsteuerdaten hinweg. Insbesondere kann in den Ersatzsteuerdaten, insbesondere an ihrem Ende, ein bedingter oder unbedingter Sprungbefehl zurück in das Ersatzsteuerdatensegment angeordnet sein.
  • Besonders vorteilhaft ist es, wenn die Ersatzsteuerdaten vor einem Übergang zu nachfolgenden regulären Steuerdaten so ausgebildet werden, dass sie das Peripheriegerät in denselben Zustand versetzen wie die den Ersatzsteuerdaten vorausgehenden regulären Steuerdaten. Dadurch kann die Ersatzdatenausgabe für den Steuerrechner transparent gestaltet werden.
  • Nachfolgend wird die Erfindung anhand von Ausführungsbeispielen näher erläutert.
  • In den Zeichnungen zeigen:
  • 1 ein Blockdiagramm eines ersten Steuerrechners mit angeschlossenem Peripheriegerät,
  • 2 schematisch die Einrichtung von Puffern im Arbeitsspeicher des Steuerrechners,
  • 3 ein Blockdiagramm eines zweiten Steuerrechners mit angeschlossenem Peripheriegerät,
  • 4 ein Schema eines Laser-Scanning-Mikroskops mit einem Steuerrechner,
  • 5 schematische Darstellungen der zweidimensionalen Abtastung in einem LSM,
  • 6 schematische Darstellungen eines periodischen Abtastvorgangs und von Datenströmen mit Modifikationsanweisungen und
  • 7 mögliche Varianten von in den Datenstrom eingebetteten Sprungbefehlen.
  • In allen Zeichnungen haben übereinstimmende Teile gleiche Bezugszeichen.
  • 1 zeigt einen Steuerrechner 1 mit einer Zentraleinheit 2, einem Arbeitsspeicher 3, einer erfindungsgemäßen Peripherieschnittstelle 4 und einem Brückenbaustein 5 als Bindeglied zwischen Prozessorbus 6, Speicherbus 7 und Systembus 8. An die Peripherieschnittstelle 4 ist über einen Peripheriebus 9 ein Peripheriegerät 10 angeschlossen. Der Brückenbaustein 5 vermittelt Speicherzugriffe ohne Treiberaufwand für die Zentraleinheit 2 weiter. Dadurch kann die Steuereinheit 11 der Peripherieschnittstelle 4 über den Systembus 8 lesend und schreibend direkt auf den Arbeitsspeicher 3 des Steuerrechners 1 zugreifen. Die Steuereinheit 11 ist als FPGA (engl. „Field Programmable Gate Array”) ausgebildet. Das Datenübertragungsverfahren ist dabei in der Firmware beziehungsweise im FPGA-Programm des FPGA kodiert. Die Peripherieschnittstelle 4 ist beispielsweise als PCI-Express-Steckkarte (engl. „peripheral component interconnect”) mit einem lösbaren Systembusanschluss (nicht gezeigt) und einem lösbaren Peripheriebusanschluss (nicht gezeigt) ausgebildet.
  • In 2 ist die Einrichtung von Puffern durch den Steuerrechner 1 in dessen Arbeitsspeicher 3 gezeigt. Die Zentraleinheit 2 des Steuerrechners 1 führt eine Software 14 aus, in der Unterprogramme mit einer Softwarelogik 15 zur Durchführung des den Steuerrechner 1 betreffenden Teils des erfindungsgemäßen Verfahrens eingerichtet sind. Unabhängig von der Software 14 und der Zentraleinheit 2 führt die Steuereinheit 11 der Peripherieschnittstelle 4 den komplementären Teil des erfindungsgemäßen Verfahrens durch. Bei zwei entgegengesetzten unidirektionalen Datenströmen reserviert die Software 14 zweckmäßigerweise einen Sendepuffer 16 und einen Empfangspuffer 17. Der Sendepuffer 16 dient dem Steuerrechner 1 zum Ablegen von Daten, die von der Steuereinheit 11 ausgelesen und zum Peripheriegerät 10 übertragen werden sollen, durch die Software 15. Der Empfangspuffer 17 dient der Peripherieschnittstelle 4 zum Ablegen von Daten, vom Peripheriegerät 10 empfangen wurden und von der Software 14 ausgelesen werden sollen, durch die Steuereinheit 11. Beide Puffer 16,17 werden beispielsweise sowohl vom Steuerrechner 1 als auch von der Peripherieschnittstelle 4 als Ringpuffer angesprochen. Die Erfindung kann aber auch mit jeder anderen Art der Speicherverwaltung realisiert werden.
  • Jeder der Puffer 16 und 17 besteht beispielsweise jeweils aus mehreren verteilten, zu einem virtuell zusammenhängenden FIFO-Puffer zusammengesetzten Blöcken des Arbeitsspeichers 3. Die Puffer 16 und 17 sind von der Software 14 als nicht auslagerbar reserviert und weisen eine Größe von jeweils 32 MByte auf. Sie können in anderen Ausführungsformen (nicht abgebildet) auch unterschiedliche und andere Größen aufweisen. Auch ist es möglich, einen oder beide Puffer jeweils als einen physikalisch zusammenhängenden Block zu reservieren. Der Cache (nicht gezeigt) der Zentraleinheit 2 wird für die Adressbereiche, in denen die Puffer 16 und 17 liegen, deaktiviert. Nach der Reservierung teilt die Software 14 der Steuereinheit 11 die Anfangsadresse und die Größe des Leserpuffers 16 und des Schreibpuffers 17 mit. Die Steuereinheit 11 stellt zu diesem Zweck jeweils zwei Hardwareregister, die in den Adressbereich der Zentraleinheit 2 eingeblendet sind, zur Verfügung.
  • Die Peripherieschnittstelle 4 umfasst beispielsweise jeweils einen Pufferspeicher (nicht gezeigt) einer Größe von 8 Kilobyte für jede Übertragungsrichtung. Der erste Pufferspeicher dient zum Zwischenspeichern von Daten, die aus dem Sendepuffer 16 des Steuerrechners 1 ausgelesen wurden, vor der weiteren Übertragung über den Peripheriebus 9 zum Peripheriegerät 10. Der zweite Pufferspeicher dient zum Zwischenspeichern von Daten, die über den Peripheriebus 9 vom Peripheriegerät 10 empfangen wurden, vor dem Schreiben in den Empfangspuffer 17 des Steuerrechners 1. In anderen Ausgestaltungen können auch andere Pufferspeichergrößen vorgesehen werden.
  • Die Steuereinheit 10 empfängt den Datenstrom beispielsweise blockweise in Datenblöcken von jeweils 4 KByte. Sobald der erste Block vollständig im ersten Pufferspeicher enthalten ist, gibt sie die im ersten Pufferspeicher befindlichen Daten sequentiell aus, also beispielsweise byte- oder wortweise. Währenddessen können je nach Pufferspeichergröße bereits ein oder mehrere weitere Datenblöcke empfangen und in den ersten Pufferspeicher geschrieben werden. Die Ausgabe wird mit diesem Datenblock nahtlos fortgesetzt.
  • Indem die Zentraleinheit 2 des Steuerrechners 1 beim Erzeugen des Datenstroms für das Peripheriegerät 10 eine Anweisung zur Modifikation der Ausgabe in den Datenstrom einbettet, braucht die eigentliche Modifikation nicht von dem Steuerrechner 1 durchgeführt zu werden. Stattdessen kann die Modifikation der Ausgabe in der Peripherieschnittstelle 4 durch deren Steuereinheit 11 selbständig durchgeführt werden, ohne dass diese ihrerseits detaillierte Kenntnisse über den Inhalt des Datenstroms haben muss. Eine echtzeitkritische Interaktion mit der Zentraleinheit 2 ist nicht erforderlich. Die Steuereinheit 11 muss lediglich in der Lage sein, eine Modifikationsanweisung im Datenstrom als solche zu erkennen. Zu diesem Zweck kann beispielsweise eine bestimmte Bit- oder Bytekombination als Markierung für eine Modifikationsanweisung vereinbart werden. Erkennt die Steuereinheit 11 der Peripherieschnittstelle 4 eine Modifikationsanweisung, so kommen unterschiedliche Reaktionsmöglichkeiten in Betracht. Beispielsweise kann die Modifikationsanweisung aus einem Blocksegment bestehen, dass einen Ersatzdatenstrom enthält, der von der Steuereinheit 11 nicht unmittelbar ausgegeben, sondern stattdessen in einen speziellen Notfallpuffer kopiert wird. Stellt die Steuereinheit 11 später fest, dass der von dem Steuerrechner 1 Datenstrom unterbrochen ist, so kann sie beispielsweise den Ersatzdatenstrom aus dem Notfallpuffer an das Peripheriegerät 10 ausgeben, entweder einmalig oder wiederholt bis wieder reguläre Daten vom Steuerrechner 1 vorliegen. Andere Möglichkeiten werden nachfolgend am Beispiel eines Laser-Scanning-Mikroskops beschrieben, sind jedoch nicht auf diese spezielle Anwendung beschränkt.
  • Ein direkter Zugriff der Steuereinheit 11 auf den Arbeitsspeicher 3 ist auch in der in 3 dargestellten Konfiguration möglich. Hier ist die erfindungsgemäße Peripherieschnittstelle 4 über einen zweiten Brückenbaustein 12 und einen Zwischenbus 13 an den Systembus 8 angeschlossen, im übrigen ist die Anordnung identisch mit der in 2 gezeigten. Aufgrund der Vermittlung des zweiten Brückenbausteins 12 werden die direkten Speicherzugriffe in dieser Konfiguration entsprechend verzögert. Auch hier ist die Peripherieschnittstelle 4 entsprechend 1 als PCI-Express-Steckkarte ausgebildet, alternativ ist beispielsweise die Ausbildung als CardBus-Steckkarte möglich. Die Durchführung des erfindungsgemäßen Verfahrens ist sowohl mit der Konfiguration der 1 als auch mit der Konfiguration der 3 möglich. In beiden Konfigurationen kann die jeweilige Steckkarte als Peripherieanschluss beispielsweise eine LVDS-Schnittstelle (engl. „low voltage differential signaling interface”) aufweisen, auf der der Datenstrom an das Peripheriegerät 10 ausgegeben wird.
  • 4 ist eine schematische Darstellung eines LSM, das mittels eines Steuerrechners 1 gesteuert wird. Das LSM ist modular aus einem Beleuchtungsmodul L mit Lasern 23, einem Abtastmodul S (engl. „scanning module”), einem Detektionsmodul D und der Mikroskopeinheit M mit dem Mikroskopobjektiv 31 zusammengesetzt. Das Licht der Laser 23 kann durch Lichtklappen 24 und Abschwächer 25 von dem Steuerrechner 1 beeinflusst werden, bevor es über Lichtleitfasern und Koppeloptiken 20 in die Abtasteinheit S eingespeist und vereinigt wird. Über den Hauptstrahlteiler 33 und die X-Y-Abtasteinheit 30, die zwei Galvanometerspiegel aufweist (nicht dargestellt), gelangt es durch das Mikroskopobjektiv 21 zur Probe 22, wo es ein Fokusvolumen (nicht abgebildet) beleuchtet. Von der Probe reflektiertes oder emittiertes Licht wird gelangt durch das Mikroskopobjektiv 21 über die Abtasteinheit 30 durch den Hauptstrahlteiler 30 in das Detektionsmodul D. Das Detektionsmodul D weist mehrere Detektionskanäle mit jeweils einer Lochblende 31, einem Filter 28 und einem Photovervielfacher 32 auf, die durch Farbteiler 29 separiert sind. Anstelle von Lochblenden 31 können, beispielsweise bei linienförmiger Beleuchtung, auch Schlitzblenden (nicht abgebildet) verwendet werden. Die konfokalen Loch- oder Schlitzblenden 31 dienen der Diskriminierung von Probenlicht, das nicht aus dem Fokusvolumen stammt. Die Photovervielfacher 32 detektieren daher ausschließlich Licht aus dem Fokusvolumen. Die Abtasteinheit 30 ist als Peripheriegerät 10 über eine Peripherieschnittstelle 4, die beispielsweise gemäß 1 oder gemäß 2 ausgestaltet sein kann, an einen Steuerrechner 1 angeschlossen.
  • Während der Bildaufnahme kann es beispielsweise aufgrund einer Bedienungshandlung eines Benutzers am Steuerrechner 1 zu einer Änderung eines oder mehrerer Abtastparameter wie beispielsweise der Abtastgeschwindigkeit kommen, so dass eine Änderung der Spiegelbewegung nötig wird. Da der Steuerrechner 1 die Steuerdaten blockweise erzeugt, kann die Änderung bereits im nächsten Block, also in den Steuerdaten für die nächste beziehungsweise übernächste Pixelzeile, berücksichtigt werden.
  • Das konfokal beleuchtete und aufgenommene Fokusvolumen der Probe 22 kann mittels der Abtasteinheit 30 über die Probe 22 bewegt werden, um pixelweise ein Bild aufzunehmen, indem die Galvanometerspiegel der Abtasteinheit 30 gezielt verdreht werden. 5 zeigt einen Bewegungsablauf und das erzielte Ergebnis. Beispielsweise führt einer der Galvanometerspiegel schnelle bidirektionale Bewegungen in X-Richtung durch, während der andere eine langsame unidirektionale Bewegung in Y-Richtung durchführt, typischerweise in diskreten Schritten während der Richtungsumkehr des ersten Galvanometerspiegels (5A). Die X-Bewegung kann dabei eine Sinus-Schwingung sein (5B). Üblicherweise wird sowohl bei der Hin-Abtastbewegung als auch bei der Rück-Bewegung jeweils eine Pixelzeile aufgenommen. Eine Schwingungsperiode entspricht also der Dauer der Aufnahme zweier Pixelzeilen. Im Bereich der Umkehrpunkte kann die Beleuchtung und die Datenaufnahme unterbrochen werden, um die Probe 22 zu schonen. Dadurch wird nur ein Ausschnitt des maximalen Abtastfeldes (engl. „scan field”) aufgenommen (fett umrandet in 5C). Sowohl die Bewegung der Galvanometerspiegel als auch das Schalten der Beleuchtung mittels der Lichtklappen 24 oder der Abschwächer 25 werden unmittelbar von dem Steuerrechner 1 über die Peripherieschnittstelle 4 gesteuert. Die Datenaufnahme von den Photovervielfachern 32 erfolgt ebenfalls über die Peripherieschnittstelle 4.
  • In 6 sind ein Ausschnitt aus einem anderen beispielhaften Bewegungsablauf des schnellen X-Galvanometerspiegels und Ausschnitte aus einem beispielhaften Steuerdatenstrom dargestellt. Die Abtastgeschwindigkeiten in Hin- und Rückrichtung unterscheiden sich deutlich (6A). In der Folge unterscheiden sich auch die Dauern der Datenaufnahmeintervalle. Es ist zu erkennen, dass sich der Bewegungsablauf in diesem Beispiel dennoch periodisch wiederholt. Eine Periode entspricht auch hier der Dauer der Aufnahme zweier Pixelzeilen. Die Bewegung der Galvanometerspiegel wird unmittelbar von dem Steuerrechner 1 gesteuert. Zu diesem Zweck stellt der Steuerrechner 1 der Abtasteinheit 30 während einer Messung blockweise einen Strom von Steuerdaten zur Verfügung, der von der Peripherieschnittstelle 4 übertragen wird. Zu jeder Periode erzeugt die Zentraleinheit 2 des Steuerrechners 1 in dessen Arbeitsspeicher 3 im Sendepuffer 16 einen Datenblock Bn' mit einem Segment Bn, das Steuerdaten für die Galvanometerspiegel enthält, und mit einem Segment SOS, das Ersatzdaten für die Galvanometerspiegel enthält (6B und 6C). In alternativen Ausführungsformen (nicht abgebildet) kann die Länge der im Datenstrom übertragenen Steuerdatensegmente Bn beispielsweise statt genau einer Bewegungsperiode auch genau einer halben Bewegungsperiode entsprechen, so dass pro Bewegungsperiode zwei Datenblöcke Bn' und Bn+1' übermittelt werden.
  • Am Anfang jedes Ersatzdatensegments SOS ist ein unbedingter relativer Sprungbefehl JMP angeordnet, der die Steuereinheit 11 anweist, die Ausgabe hinter dem Ersatzdatensegment SOS, also in einem nachfolgenden Datenblock Bn+1, fortzusetzen (6B). Da die Steuereinheit 11 Vorwärtssprünge nur ausführt, wenn die Zieladresse gültig ist, wenn also am Sprungziel gültige Daten eines vollständig empfangenen Datenblocks Bn+1' vorliegen, stellen die Sprungbefehle JMP implizit eine Anweisung an die Steuereinheit 11 dar, die Ersatzdaten nur dann auszugeben, wenn nach der Ausgabe der Steuerdaten Bn noch keine gültigen Nachfolgedaten Bn+1 vorliegen. In alternativen Ausführungsformen (nicht dargestellt), in denen die Steuereinheit 11 Vorwärtssprünge ohne Prüfung auf gültige Daten am Sprungziel durchführt, kann stattdessen der Sprungbefehl selbst explizit die Bedingung „Zieladresse gültig” („gültige Daten am Sprungziel”) enthalten. Anstelle von relativen Sprungzielen (positive oder negative Sprungweiten) können auch absolute Sprungziele (Datenstromadressen) verwendet werden, sofern die Steuereinheit einen absoluten Ausgabezähler in Art eines Programmzählers (engl. „program counter”; PC) führt.
  • Ist ein Block Bn' fertiggestellt, teilt die Zentraleinheit 2 der Steuereinheit 11 der Peripherieschnittstelle 4 über Systembus 8 mit, dass ein vollständiger Datenblock im Sendepuffer 16 vorliegt. Dies kann beispielsweise gemäß DE 10 2008 009 634 mit Hilfe eines ersten Zeigers hinter das Ende der gültigen, noch zu übertragenden Daten und eines zweiten Zeigers auf das Ende der bereits übertragenen Daten und damit auf den Beginn der noch zu übertragenden Daten geschehen. Daraufhin kopiert die Steuereinheit 11 den Datenblock in ihren Pufferspeicher und gibt ihn im Anschluss an den vorhergehenden Datenblock nahtlos an das Peripheriegerät 10 aus.
  • Würde ohne die erfindungsgemäßen Anweisungen zur Modifikation der Datenstromausgabe die Erzeugung eines Datenblocks Bn+1, beispielsweise bei einem nicht echtzeitfähigen Betriebssystem aufgrund hoher Rechenlast, verzögert, so dass er der Steuereinheit 11 nicht rechtzeitig für die Fortsetzung der regulären Ausgabe zur Verfügung steht, so würden zwar die Steuerdaten des letzten noch vollständig übertragenen Steuerdatenblocks Bn noch an das Peripheriegerät 10 ausgegeben. Danach wären die Galvanometerspiegel aber ungesteuert. Sie würden ihre momentane Bewegung gemäß den Grundsätzen der Massenträgheit und der harmonischen Schwingungen fortsetzen. Dadurch könnten die Galvanometerspiegel oder die Probe 22 beschädigt werden. Erfindungsgemäß wird ein Abreißen des an das Peripheriegerät 10 ausgegebenen Datenstroms durch den eingebetteten Sprungbefehl JMP und die sich anschließenden Ersatzsteuerdaten SOS verhindert. Einmalig auszugebende Ersatzdaten SOS könnten beispielsweise die Galvanometerspiegel so steuern, dass stationär ein unkritischer Probenbereich oder ein Bereich außerhalb der Probe beleuchtet wird („Parken”), bis wieder reguläre Steuerdaten Bn+1 verfügbar sind.
  • In einer alternativen Ausführungsform (6C) ist am Ende des Ersatzdatensegments SOS ein zweiter unbedingter Sprungbefehl JMP angeordnet, dessen Sprungziel der Anfang des Ersatzdatensegments SOS ist. Nach einer abrissbedingten Ausgabe der Ersatzdaten fährt die Steuereinheit 11 am Beginn des Ersatzdatensegments SOS mit der Ausgabe fort. Dort stößt sie auf den unbedingten Sprungbefehl JMP zum nachfolgenden Datenblock Bn+1 und prüft erneut, ob dieses Sprungziel gültig ist. Wenn ja, springt sie zur Fortsetzung der Ausgabe an dieses Sprungziel. Die Ausgabe wird dann regulär fortgeführt. Ist das Sprungziel ungültig, übergeht die Steuereinheit 11 den ersten Sprungbefehl JMP und gibt erneut die Ersatzdaten SOS aus. Es handelt sich um eine Ersatzdaten-Ausgabeschleife, die erst verlassen wird, wenn ein gültiger Nachfolgedatenblock Bn+1', also insbesondere ein gültiges Steuerdatensegment Bn+1, vorliegt. Vorzugsweise enthalten die Ersatzsteuerdaten eine Notfallbewegungskurve, die so gestaltet ist, dass sich der nachfolgende reguläre Steuerdatenblock Bn+1 ohne Unstetigkeiten oder Einschwingvorgänge direkt anschließen kann. Beispielsweise sind die Galvanometerspiegel am Ende der Ersatzsteuerdaten auf dieselben Beschleunigungen und dieselben Auslenkwinkel eingestellt wie am Ende der vorangehenden regulären Steuerdaten. Durch eine solche Ausgestaltung braucht die Software 14 des Steuerrechners 1 keine gesonderte Fehlerbehandlung durchzuführen. Sie wird von der Peripherieschnittstelle 4 allenfalls über die genaue Dauer der Verzögerung informiert. Auch ohne diese Information bleiben die Messdaten der Software 14 konsistent, da der Systemzustand des Peripheriegeräts 10 sowohl nach Abarbeitung der regulären Steuerdaten als auch der Ersatzdaten gleich ist.
  • In den Teilfiguren von 7 sind unterschiedliche allgemeine Beispiele für die Behandlung von Sprungbefehlen (Mnemonik JMP) durch die Steuereinheit 11 dargestellt. Durchgezogen gezeichnete Pfeile stellen ausgeführte Sprünge, unterbrochen gezeichnete Pfeile nicht ausgeführte Sprünge dar. Ein Sprungbefehl wird (unabhängig von einer eventuellen Bedingung) von der Steuereinheit 11 zweckmäßigerweise nur dann ausgeführt, wenn am Sprungziel gültige Steuerdaten vorliegen. Dadurch wird verhindert, dass undefinierte Steuerdaten ausgegeben werden.
  • Werden ausschließlich ganze Blöcke (nach Übertragung über den Systembus 8) für gültig erklärt, so wird ein Vorwärtssprung innerhalb eines Datenblocks (7A) stets ausgeführt und die Ausgabe am Sprungziel fortgesetzt. Auch Rückwärtssprünge innerhalb eines Datenblocks (7B) werden stets ausgeführt und die Ausgabe am Sprungziel fortgesetzt. Ist der nachfolgende Datenblock Bn+1 noch nicht vollständig übertragen, so wird ein Vorwärtssprung in diesen Block Bn+1 (7C) nicht ausgeführt und stattdessen die Ausgabe unmittelbar nach dem Sprungbefehl fortgesetzt. Ist der nachfolgende Datenblock Bn+1 vollständig, das Sprungziel („Zieladresse”) also gültig, so wird ein Vorwärtssprung in diesen Block Bn+1 (7D) ausgeführt und die Ausgabe am Sprungziel fortgesetzt.
  • Die Sprungbefehle können verschachtelt werden. Beispielsweise kann zwischen einem Vorwärtssprungbefehl und dessen Sprungziel ein Rückwärtssprungbefehl mit einem Sprungziel vor dem Vorwärtssprungbefehl liegen. Ist der nachfolgende Datenblock Bn+1 noch nicht vollständig übertragen (7E), so wird der Vorwärtssprung in diesen Block Bn+1 nicht ausgeführt und stattdessen die Ausgabe unmittelbar nach dem Sprungbefehl fortgesetzt. Nach einiger Zeit wird der unbedingte Rückwärtssprungbefehl erreicht, der zur Wiederholung der Ausgabe führt, bis ein gültiger Nachfolgeblock zur Verfügung steht. Liegt der nachfolgende Datenblock Bn+1 vollständig vor (7F), so wird der Vorwärtssprung in diesen Block Bn+1 ausgeführt und die Ausgabe am Sprungziel fortgesetzt. Die Daten zwischen dem Vorwärtssprungbefehl und dessen Sprungziel werden nicht ausgegeben.
  • Im Beispiel gemäß 7G enthält das beispielhafte Notfallsegment SOS drei Sprungbefehle. Zwischen zwei aufeinanderfolgenden Vorwärtssprungbefehlen liegen erste Ersatzsteuerdaten, die beispielsweise das Peripheriegerät in einen definierten Zustand bringen. Auf den zweiten Vorwärtssprungbefehle folgen zweite Ersatzsteuerdaten, die das Peripheriegerät 10 in dem definierten Zustand halten. Daran schließt sich ein unbedingter Rückwärtssprungbefehl an, dessen Sprungziel der zweite Vorwärtssprungbefehl ist. Die Vorwärtssprungbefehle werden nur ausgeführt, wenn kein gültiger Nachfolgedatenblock vorliegt. In der abgebildeten Situation liegt kein Nachfolgedatenblock vor. Die Vorwärtssprünge werden deshalb nicht ausgeführt. Dadurch werden zunächst die regulären Steuerdaten des Blocks Bn an das Peripheriegerät 10 ausgegeben, dann einmal die ersten Ersatzdaten, dann in wiederholt die zweiten Ersatzdaten. Erst wenn ein gültiger Nachfolgeblock Bn+1 vorliegt (nicht abgebildet) wird der hintere Vorwärtssprung aus der Schleife herausführen.
  • Zweckmäßigerweise, aber nicht zwingend, ist in einem blockweise unterteilten Datenstrom in jedem Datenblock Bn ein Notfallsegment SOS mit entsprechenden Sprungbefehlen vorgesehen. Das jeweilige Notfallsegment SOS kann dabei jeweils am Ende oder an beliebiger anderer Stelle innerhalb des betreffenden Datenblocks Bn liegen. Die zweite Alternative (nicht abgebildet) kann beispielsweise realisiert werden, indem ein unbedingter Vorwärtssprung die reguläre Ausgabe über das Notfallsegment hinwegführt, wenn am Ende der regulären Steuerdaten ein Rückwärtssprung in das Notfallsegment SOS erfolgt, an dessen Anfang ein (von der Steuereinheit 11 nur bei Gültigkeit des Sprungziels ausgeführter) Vorwärtssprung in den nächsten Block Bn+1 steht.
  • In weitergehenden Ausführungsformen (nicht abgebildet) können die Sprungbefehle andere Bedingungen als die Gültigkeit von Sprungzielen umfassen. Beispielsweise können in Verbindung mit einem Initialisierungsbefehl für einen in der Steuereinheit 11 geführten Zähler Sprungbefehle mit Inkrement oder Dekrement und einer Bedingung für den Zählerstand realisiert werden. Auf diese Weise können Ausgabeschleifen mit einer vorbestimmen Anzahl von Iterationen programmiert werden. In solchen Schleifen können beispielsweise reguläre Steuerdaten enthalten sein. Beispielsweise könnten in einem LSM die Steuerdaten für eine zweidimensionale Bildaufnahme in nur einem Datenblock passen, indem zwei verschachtelte Schleifen für den X- und den Y-Galvanometerspiegel programmiert werden.
  • Allgemein kann ein Datenstrom, unabhängig davon, ob er blockweise erzeugt und übertragen wird, in Abschnitte konstanter Größe unterteilt sein. Die Sprungweite eines Sprungbefehls kann in solchen Fällen als Anzahl von zu überspringenden Abschnitten angegeben werden. Dadurch kann die benötigte Bitbreite für die Sprungweitenangabe gegenüber einer Angabe beispielsweise in Bytes reduziert werden. Bei einer Abschnittsgröße von 256 Bytes und einer Bitbreite der Sprungweitenangaben von 8 Bits sind dann Sprünge zwar nur in Schritten von 256 Bytes möglich, im Gegenzug jedoch über +/–127 Abschnitte hinweg anstatt nur über +/–127 Bytes.
  • 1
    Steuerrechner
    2
    Zentraleinheit
    3
    Arbeitsspeicher
    4
    Peripherieschnittstelle
    5
    Brückenbaustein
    6
    Prozessorbus
    7
    Speicherbus
    8
    Systembus
    9
    Peripheriebus
    10
    Peripheriegerät
    11
    Steuereinheit
    12
    Brückenbaustein
    13
    Zwischenbus
    14
    Software
    15
    Softwarelogik
    16
    Lesepuffer
    17
    Schreibpuffer
    20
    Kollimationsoptik
    21
    Mikroskopobjektiv
    22
    Probe
    23
    Laser
    24
    Lichtklappe
    25
    Abschwächer
    26
    Faserkoppler
    27
    Tubuslinse
    28
    Filter
    29
    Dichroitischer Strahlteiler
    30
    Scannerspiegel
    31
    Lochblende
    32
    Photovervielfacher
    33
    Hauptstrahlteiler
    D
    Detektionsmodul
    M
    Mikroskop
    L
    Beleuchtungsmodul
    S
    Abtastmodul
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • - DE 102008009634 [0017, 0044]

Claims (19)

  1. Peripherieschnittstelle (4) mit einer Steuereinheit (11), die einen Datenstrom von einem Steuerrechner (1) empfängt und an ein Peripheriegerät (10) ausgibt, dadurch gekennzeichnet, dass die Steuereinheit (11) aus dem empfangenen Datenstrom eine Anweisung für eine Modifikation der Ausgabe des Datenstroms entgegennimmt.
  2. Peripherieschnittstelle (4) nach Anspruch 1, dadurch gekennzeichnet, dass die Anweisung einen bedingten oder unbedingten Sprungbefehl (JMP) für die Fortsetzung der Ausgabe an einer durch den Sprungbefehl (JMP) bestimmbaren oder bestimmten Position innerhalb des Datenstroms enthält.
  3. Peripherieschnittstelle (4) nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass die Anweisung eine Bedingung für die Modifikation enthält, wobei die Steuereinheit (11) wiederholt prüft, ob diese Bedingung erfüllt ist und nur, wenn die Bedingung erfüllt ist, die Modifikation durchführt.
  4. Peripherieschnittstelle (4) nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Steuereinheit (1) mehrere Datenströme von dem Steuerrechner (1) empfängt, von denen sie nur einen an das Peripheriegerät (10) ausgibt, wobei die Modifikationsanweisung den auszugebenden Datenstrom angibt.
  5. Peripherieschnittstelle (4) mit einer Steuereinheit (11), die einen Datenstrom von einem Steuerrechner (1) empfängt und an ein Peripheriegerät (10) ausgibt, insbesondere nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Steuereinheit (11) ein Abreißen des zu empfangenden Datenstroms identifiziert und daraufhin einen Ersatzdatenstrom ausgibt.
  6. Peripherieschnittstelle (4) nach Anspruch 5, dadurch gekennzeichnet, dass die Steuereinheit (11) eine Anweisung für eine Zusammensetzung des Ersatzdatenstroms aus dem Datenstrom entgegennimmt.
  7. Peripherieschnittstelle (4) nach Anspruch 5 oder 6, dadurch gekennzeichnet, dass die Steuereinheit (11) die Ausgabe des Ersatzdatenstroms bei Fortsetzung des zu empfangenden Datenstroms beendet und den fortgesetzten Datenstrom ausgibt.
  8. Peripherieschnittstelle (4) nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Steuereinheit (11) den Datenstrom über einen Systembus (8) des Steuerrechners (1) empfängt.
  9. Peripherieschnittstelle (4) nach einem der vorhergehenden Ansprüche, gekennzeichnet durch Ausbildung als Steckkarte für den Steuerrechner oder als Schaltung für den Einsatz in dem Steuerrechner (1).
  10. Peripherieschnittstelle (4) nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass das Peripheriegerät (10) eine Komponente (22) eines Laser-Scanning-Mikroskops ist.
  11. Laser-Scanning-Mikroskop mit einem Steuerrechner (1) und einer Peripherieschnittstelle (4) nach Anspruch 10.
  12. Datenstrom, enthaltend Steuerdaten (Bn) für ein Peripheriegerät (10), insbesondere für eine Komponente (22) eines Laser-Scanning-Mikroskops, gekennzeichnet durch ein Segment (SOS) mit im Falle eines Datenstromabrisses auszugebenden Ersatzsteuerdaten und einer einleitenden Ersatzdatenmarkierung.
  13. Datenstrom nach Anspruch 11, dadurch gekennzeichnet, dass die Ersatzdatenmarkierung einen bedingten oder unbedingten Sprungbefehl (JMP) über die Ersatzsteuerdaten hinweg umfasst.
  14. Datenstrom nach Anspruch 12, dadurch gekennzeichnet, dass in den Ersatzsteuerdaten ein bedingter oder unbedingter Sprungbefehl (JMP) zurück in das Ersatzsteuerdatensegment (SOS) angeordnet ist.
  15. Verfahren zum Übertragen eines Datenstroms über eine Peripherieschnittstelle (4), wobei ein Datenstrom von einem Steuerrechner (1) empfangen und an ein Peripheriegerät (10) ausgegeben wird, dadurch gekennzeichnet, dass in dem empfangenen Datenstrom eine Anweisung für eine Modifikation der Ausgabe des Datenstroms identifiziert und der Datenstrom gemäß der identifizierten Anweisung modifiziert ausgegeben wird.
  16. Verfahren nach Anspruch 14, dadurch gekennzeichnet, dass die Modifikation nur dann erfolgt, wenn eine in der identifizierten Anweisung enthaltene Bedingung für die Modifikation erfüllt ist.
  17. Verfahren nach Anspruch 14 oder 15, dadurch gekennzeichnet, dass mehrere Datenströme von dem Steuerrechner (1) empfangen werden, von denen nur einer an das Peripheriegerät (10) ausgegeben wird, wobei Auswahl des auszugebenden Datenstroms gemäß der Modifikationsanweisung erfolgt.
  18. Verfahren zum Übertragen eines Datenstroms über eine Peripherieschnittstelle (4); wobei ein Datenstrom von einem Steuerrechner (1) empfangen und an ein Peripheriegerät (10) ausgegeben wird, insbesondere nach Anspruch 14, 15 oder 16, dadurch gekennzeichnet, dass ein Abreißen des zu empfangenden Datenstroms identifiziert und daraufhin ein Ersatzdatenstrom ausgegeben wird.
  19. Gegenstand nach einem der Ansprüche 11 bis 13 oder 17, dadurch gekennzeichnet, dass die Ersatzsteuerdaten vor einem Übergang zu nachfolgenden Steuerdaten so ausgebildet sind, dass sie das Peripheriegerät (10) in denselben Zustand versetzen wie den Ersatzsteuerdaten vorausgehende Steuerdaten.
DE102009040839A 2008-09-30 2009-09-09 Peripherieschnittstelle, Datenstrom und Datenübertragungsverfahren Pending DE102009040839A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102009040839A DE102009040839A1 (de) 2008-09-30 2009-09-09 Peripherieschnittstelle, Datenstrom und Datenübertragungsverfahren

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE102008049887.4 2008-09-30
DE102008049887 2008-09-30
DE102009040839A DE102009040839A1 (de) 2008-09-30 2009-09-09 Peripherieschnittstelle, Datenstrom und Datenübertragungsverfahren

Publications (1)

Publication Number Publication Date
DE102009040839A1 true DE102009040839A1 (de) 2010-04-15

Family

ID=41651385

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102009040839A Pending DE102009040839A1 (de) 2008-09-30 2009-09-09 Peripherieschnittstelle, Datenstrom und Datenübertragungsverfahren

Country Status (3)

Country Link
US (1) US8943228B2 (de)
DE (1) DE102009040839A1 (de)
WO (1) WO2010037484A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102014117381A1 (de) 2014-11-27 2016-06-02 Carl Zeiss Microscopy Gmbh Verfahren und Vorrichtung zur Weiterleitung von Daten

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8787751B2 (en) * 2009-04-22 2014-07-22 Futurewei Technologies, Inc. Method for identifying the optical network unit power off reason
CN110221996B (zh) 2019-05-16 2021-04-06 北京小米移动软件有限公司 主控芯片中的控制器配置方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102008009634A1 (de) 2008-02-15 2009-08-27 Carl Zeiss Microimaging Gmbh Peripherieschnittstelle und Verfahren zur Datenübermittlung, insbesondere für Laser-Scanning-Mikroskop

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU4638093A (en) 1992-08-10 1994-03-03 Digital Pictures, Inc. System and method of selecting among multiple data streams
FR2749682B1 (fr) 1996-06-10 1998-07-10 Bull Sa Circuit pour transborder des donnees entre memoires distantes et calculateur comprenant un tel circuit
JPH1051514A (ja) * 1996-07-30 1998-02-20 Oki Electric Ind Co Ltd インタフェース装置
US6021446A (en) 1997-07-11 2000-02-01 Sun Microsystems, Inc. Network device driver performing initial packet processing within high priority hardware interrupt service routine and then finishing processing within low priority software interrupt service routine
US6266150B1 (en) * 1998-08-24 2001-07-24 International Business Machines Corporation Virtual printer
US6490676B1 (en) * 1999-07-29 2002-12-03 Intel Corporation Method and apparatus for protecting against failures due to data unavailability in real-time data processing
JP4207323B2 (ja) 1999-08-26 2009-01-14 富士通株式会社 データ転送装置及びデータ転送方法
JP2001135017A (ja) * 1999-11-02 2001-05-18 Nec Corp データ記憶装置及びデータ記憶装置用インタフェース装置
US7024112B2 (en) * 2000-09-11 2006-04-04 Opvista Incorporated In-band wavelength conversion wavelength buffering and multi-protocol lambda switching
US7085842B2 (en) * 2001-02-12 2006-08-01 Open Text Corporation Line navigation conferencing system
US7574728B2 (en) * 2001-07-31 2009-08-11 Dinastech Ipr Limited System for delivering data over a network
KR100739770B1 (ko) * 2004-12-11 2007-07-13 삼성전자주식회사 멀티 앵글 타이틀에 적용 가능한 메타 데이터를 포함하는저장 매체, 그 재생 장치 및 방법
US7920584B2 (en) * 2005-05-04 2011-04-05 Arm Limited Data processing system
DE102006025445A1 (de) * 2006-05-31 2007-12-06 Carl Zeiss Microimaging Gmbh Laser-Scanning-Mikroskop mit Hochgeschwindigkeitsdatenverarbeitung
US7590778B2 (en) * 2006-06-15 2009-09-15 International Business Machines Corporation Using operation codes to control a decoder's use of a buffer to generate data from an input data stream into an output data stream
US20070294500A1 (en) * 2006-06-16 2007-12-20 Falco Michael A Methods and system to provide references associated with data streams
JP4745904B2 (ja) * 2006-07-18 2011-08-10 株式会社日本自動車部品総合研究所 電子装置
US20080123677A1 (en) * 2006-08-31 2008-05-29 Honeywell International Inc. System management bus port switch
US8270819B2 (en) * 2006-10-31 2012-09-18 Tivo Inc. Performing trick play functions in a digital video recorder with efficient use of resources
US20100030927A1 (en) * 2008-07-29 2010-02-04 Telefonaktiebolaget Lm Ericsson (Publ) General purpose hardware acceleration via deirect memory access

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102008009634A1 (de) 2008-02-15 2009-08-27 Carl Zeiss Microimaging Gmbh Peripherieschnittstelle und Verfahren zur Datenübermittlung, insbesondere für Laser-Scanning-Mikroskop

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102014117381A1 (de) 2014-11-27 2016-06-02 Carl Zeiss Microscopy Gmbh Verfahren und Vorrichtung zur Weiterleitung von Daten
WO2016083378A1 (de) 2014-11-27 2016-06-02 Carl Zeiss Microscopy Gmbh Verfahren und vorrichtung zur weiterleitung von daten
US10579576B2 (en) 2014-11-27 2020-03-03 Carl Zeiss Microscopy Gmbh Method and apparatus for forwarding data

Also Published As

Publication number Publication date
US8943228B2 (en) 2015-01-27
WO2010037484A1 (de) 2010-04-08
US20110179193A1 (en) 2011-07-21

Similar Documents

Publication Publication Date Title
DE2760261C2 (de) Raster-Anzeigevorrichtung
DE19728726B4 (de) Robotercontroller und dessen Steuerverfahren
DE1928202C3 (de) Einrichtung zur Erstellung statistischer Daten über den Operationsablauf programmgesteuerter Datenverarbeitungsanlagen
DE60204687T2 (de) Speicherkopierbefehl mit Angabe von Quelle und Ziel, der in der Speichersteuerung ausgeführt wird
DE1923078C3 (de) Steueranordnung für ein mit einem Rechner verbundenes Bilddarstellgerät
EP0293517A1 (de) Steuerprozessor
EP2110995B1 (de) Datenübertragungsvorrichtung
DE2758829C2 (de) Datenverarbeitungsanlage mit mehreren Prozessoren
DE102009040839A1 (de) Peripherieschnittstelle, Datenstrom und Datenübertragungsverfahren
DE102010016915A1 (de) Konfokaloptik
DE102008009634A1 (de) Peripherieschnittstelle und Verfahren zur Datenübermittlung, insbesondere für Laser-Scanning-Mikroskop
DE2522343B2 (de) Anordnung zur steuerung von verfahrensablaeufen
DE60015271T2 (de) Schaltungsanordnung zur parallel/seriell-wandlung
DE10317904A1 (de) Fahrzeugkommunikationsvorrichtung zum Empfangen von und Senden zu einer externen Vorrichtung
DE2539929A1 (de) Rechnersystem mit busstruktur
DE2500841A1 (de) Verfolgungseinrichtung
EP3396479A1 (de) Engineering-system
DE102008028480B4 (de) Ansteuerung für eine freiprogrammierbare Anzeigefläche in einem Kraftfahrzeug und Verfahren zum grafischen Darstellen mindestens eines Mess- oder Vorgabewertes
DE10123059A1 (de) Verfahren und System zur Transformation digitaler Druckdatenströme sowie zugehörige Drucker und Druckerserver
DE3530602C2 (de)
DE102006001427B4 (de) Verfahren zum Beleuchten einer Probe
DE10025952B4 (de) Datenverarbeitungseinheit mit einer Superscaler-Struktur sowie Verfahren zum Zuführen einer Mehrzahl von Befehlen
EP0525214A1 (de) Verfahren zum Betreiben eines Automatisierungsgeräts
DE60207286T2 (de) Datenverarbeitungsgerät
DE10310340A1 (de) Datenzugriffsverfahren und System mit verteiltem, gemeinsam genutzten Speicher

Legal Events

Date Code Title Description
R081 Change of applicant/patentee

Owner name: CARL ZEISS MICROSCOPY GMBH, DE

Free format text: FORMER OWNER: CARL ZEISS MICROIMAGING GMBH, 07745 JENA, DE

Effective date: 20130204

R012 Request for examination validly filed