Peripheral interface and data stream transmission method as well as laser scanning microscope

The peripheral interface modifies data streams using embedded instructions to ensure continuous delivery to peripheral devices, addressing the challenge of non-real-time systems and preventing interruptions.

DE102009040839B4Active Publication Date: 2025-08-21CARL ZEISS MICROSCOPY GMBH
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
DE102009040839
Authority / Receiving Office
DE · DE
Patent Type
Patents
Current Assignee / Owner
Priority Date
2008-09-30
Filing Date
2009-09-09
Publication Date
2025-08-21
Estimated Expiration
2029-09-09

AI Technical Summary

Technical Problem

Existing peripheral interfaces struggle to provide a continuous data stream to peripheral devices without gaps, particularly when using non-real-time capable operating systems, leading to potential damage from interruptions in data transmission.

Method used

A peripheral interface with a control unit that modifies the data stream based on embedded instructions, allowing it to adapt the output to current conditions without real-time critical interaction with the control computer, using jump instructions and emergency data segments to ensure seamless transmission.

Benefits of technology

Enables continuous data stream delivery to peripheral devices without requiring a real-time operating system, preventing interruptions and potential damage by allowing the interface to manage data stream modifications independently.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

Peripheral interface (4) with a control unit (11) which receives a data stream from a control computer (1) and outputs it to a peripheral device (10), characterized in that the control unit (11) receives an instruction for modifying the output of the data stream from the received data stream, the instruction containing a conditional or unconditional jump instruction (JMP) for continuing the output at a position within the data stream that can be determined or is determined by the jump instruction (JMP).
Need to check novelty before this filing date? Find Prior Art

Description

[0001] The invention relates to a peripheral interface with a control unit that receives a data stream from a control computer and outputs it sequentially to a peripheral device, a method for transmitting a data stream via a peripheral interface, wherein a data stream is received from a control computer and preferably output sequentially to a peripheral device.

[0002] A peripheral interface is used for communication between a control computer and one or more peripheral devices through electronic data transfer. According to the current state of the art, peripheral devices are connected via standard interfaces such as USB (Universal Serial Bus), Ethernet (IEEE 802), or Firewire (IEEE 1394), which provide a separate bus on the peripheral side, while they typically communicate with the control computer via one of its system buses. If a peripheral device is to be controlled via the peripheral interface, the control computer, or more precisely its central processing unit (CPU), generates a stream of control data, for example, which is stored in the control computer's random access memory (RAM).Transfer to the peripheral interface is typically controlled by driver software executed by the central processing unit, which triggers access by the interface module to the RAM. Access to the RAM occurs cyclically using direct memory access (DMA) via the system bus of the control computer. The peripheral interface has a DMA controller for this purpose. Typically, the DMA controller transfers a data block in each DMA cycle, the size of which usually corresponds to a single memory page of the RAM.

[0003] The driver software reports each DMA cycle to the peripheral device's DMA controller for transfer. The control computer then executes other software, such as an application program with user interaction. It later receives confirmation of the complete transfer in the form of an interrupt request (IRQ). Upon the interrupt request, regular program execution is interrupted and the driver software executes instead, which must continue the data transfer by triggering the next DMA cycle. To achieve a consistently high data transfer speed, the driver software must have a very short response time to such an interrupt request so that the next DMA cycle is triggered in a timely manner. Particularly in real-time-critical systems, a maximum response time must not be exceeded to prevent a gap in the data transfer.However, if the control computer uses a non-real-time capable operating system, deterministic handling of an interrupt request for a DMA cycle is not possible. The response time to an interrupt request can increase almost arbitrarily if the system load increases or if there are a large number of concurrent DMA transfer operations. The number of concurrent DMA transfer operations increases with the desired data transfer speed and is also determined by the size of the data to be transferred. If the central processing unit's response time exceeds a critical value, interruptions in the data stream occur.

[0004] Some peripheral devices, however, rely on a continuous, i.e., uninterrupted data stream. For example, the scanner of a laser scanning microscope (LSM) must be continuously supplied with control data for the movement of one or more galvanometer mirrors during an image acquisition process. This is typically achieved by generating the control data stream in blocks (corresponding to time intervals) and transmitting it from the control computer to the scanning unit. This makes it possible, for example, to briefly change the scanning movement even during an image acquisition process. If the data stream is interrupted, however, each galvanometer mirror performs a free oscillation from its current state of motion. Depending on the current deflection, speed, and acceleration of the respective mirror at the time the data stream is interrupted, this can result in damage to the mirror (e.g.due to over-rotation) or the sample (e.g. due to overexposure).

[0005] In the current state of the art, a complex real-time operating system must therefore be used on the control computer to prevent interruptions in the data stream.

[0006] Peripheral interfaces for transmitting data streams are known, for example, from US2008 / 0005429A1, US6490676B1, US6542252B2, US2007 / 0294500A1 and DE102006025445A1.

[0007] The invention is based on the object of improving a peripheral interface, a data stream and a method of the type mentioned at the outset, so that a data stream can be provided seamlessly to a peripheral device, in particular in the case of a non-real-time capable operating system of the control computer.

[0008] The object is achieved by a peripheral interface having the features specified in claim 1 and by a method having the features specified in claim 11.

[0009] Advantageous embodiments of the invention are the subject of the respective subclaims.

[0010] According to the invention, the control unit of the peripheral interface extracts an instruction for modifying the output of the data stream from the received data stream. By identifying an instruction for modifying the output of the data stream in the received data stream and outputting the data stream modified according to the identified instruction, the control unit can adapt the data stream to the prevailing conditions according to the identified instruction without real-time-critical interaction with the control computer. Since the control computer creates the data stream, it can influence the behavior of the peripheral interface via an instruction that modifies the output of the data stream. The modification can, for example, be carried out once, until a modifying instruction is issued, or permanently, starting at the point in the data stream where the instruction is located.It is also conceivable that the modification is instead carried out once, until a modifying instruction is issued, or permanently, from a point in time at which a predefinable (e.g., external) condition is met for the first time. The instruction can also be designed or interpreted by the control unit in such a way that the output of the data stream is only modified as long as the predefinable external condition is met. For this purpose, the control unit can repeatedly check whether the condition for the modification contained in the instruction is met and only carry out the modification if and as long as the condition is met. If the condition is no longer met, the output of the data stream can continue unmodified. The modification can, for example, consist of a rearrangement of the data stream content or a repetition of certain sections of the data stream.The type of modification can be predetermined or encoded in the instruction. Additional parameters can be encoded in the instruction.

[0011] By means of a preferably conditional modification instruction contained in the data stream according to the invention, the composition of the data stream reaching the peripheral device can be flexibly adapted to the respective situation by the peripheral interface independently, i.e., without the time-critical intervention of the central unit of the control computer. For example, the modification instruction can contain a segment of substitute data ("emergency segment") with a marking known in advance to the control unit. If the control unit, in this example, determines that the data stream provided by the control computer has been interrupted, it will seamlessly continue output to the peripheral device using the substitute data. In particular, it can repeatedly perform the substitute output until it again receives sufficient regular data from the control computer. In this way, a seamless output of a consistent data stream to the peripheral device can be achieved. A real-time operating system is not required.The peripheral interface can be located directly on the peripheral device, so that it outputs exclusively analog control signals, for example. Alternatively, an additional data bus can be arranged between the peripheral interface and the peripheral device.

[0012] According to the invention, the output-modifying instruction contains a conditional or unconditional jump command for continuing the output at a position within the data stream that can be determined or is determined by the jump command. A jump command instructs the control unit to modify the output by continuing it at a different location in the data stream, which is specified by the jump command. A conditional jump command instructs the control unit to continue the output at the other location only if a logical condition, which is specified by the jump command, is met; otherwise, the control unit continues the output sequentially after the jump command. The jump command itself is never issued to the peripheral device.The use of jump instructions within the data stream allows for flexible modification of the data stream output to the peripheral device without the peripheral interface needing to know the internal structure of the data stream. It only needs to recognize jump instructions as such and be able to interpret any condition for the execution of the jump instruction. Using conditional and unconditional jump instructions, the modified output to the peripheral device can be carried out in loops with little effort. This can be used, for example, to reduce the required transmission bandwidth. For example, a repeating segment of control data only needs to be transmitted to the peripheral interface once if a counter in the peripheral interface is initialized using an instruction embedded in the data stream and a conditional jump instruction from the end to the beginning of the relevant data segment causes a finite repetition.

[0013] Advantageously, it is also possible for the control computer to generate two or more simultaneous control data streams, all of which are transmitted to the peripheral interface, whereby the control unit of the peripheral interface only outputs control data from exactly one of the data streams to the peripheral device at a given time. Using output modification instructions embedded in the data streams, such as appropriately extended jump commands, the output can be switched between the control data streams. This switch can occur in a short time, for example, within microseconds. This rapid switching can be used, for example, in medical experimental setups in which different device functions must be triggered with a short reaction time. Such switching between multiple data streams can, in particular, also be combined with modification instructions for substitute data output.For example, backup data / emergency segments can be embedded in each of the control data streams to be transmitted simultaneously.

[0014] If the data stream is structured segmentally, with each segment having a constant length or a length specification, each segment can contain a content description, for example in the form of one or more numeric or alphanumeric characters. Such a content description can be used to mark segments with substitute data as such. Such a marking for a substitute data segment can be interpreted as a jump command beyond the substitute data segment, so that the substitute data is not output directly to the peripheral device. The control unit can determine the jump destination based on the agreed or explicitly specified segment length. Alternatively, a jump offset can be explicitly specified for a jump command. The jump destination for continuing the data output is then determined from the current position in the data stream plus the jump offset. Alternatively, a jump destination can be specified directly with the jump command.

[0015] In a more general embodiment of the invention, the control unit identifies an interruption in the data stream to be received and then automatically outputs a substitute data stream. The substitute data stream can either be permanently specified to the control unit, for example in a read-only memory (ROM). It can, for example, be substitute data that controls the galvanometer mirrors so that a non-critical sample area or an area outside the sample is illuminated ("parking"). As an alternative to storage, the control unit can generate the substitute data stream during transmission ("on-the-fly"), for example based on the data last regularly output to the peripheral device. This can, for example, be done permanently and simultaneously with the regular output as a precautionary measure, whereby the output is simply switched from the regular data stream to the substitute data stream in the event of an interruption in the regular data stream.This minimizes the response time until the replacement data stream is output. Alternatively, the data stream generation can be started only after the interruption is detected.

[0016] In an advantageous alternative embodiment, the control unit can extract an instruction for composing the substitute data stream from the data stream. This allows the substitute output to be designed flexibly, as the control computer can thus influence the substitute output depending on the situation. Nevertheless, no real-time-critical interaction between the control computer and the peripheral interface is required. The instruction for composing the substitute data stream can, for example, be designed as an instruction for modifying the data stream in the sense described above, or can be interpreted by the control unit in this way.

[0017] The control unit expediently stops outputting the substitute data stream when the control computer resumes the data stream to be received and outputs the continued data stream. This allows the data stream to be transmitted seamlessly. If, in addition to the control data stream to the peripheral device, a result data stream is also transmitted from the peripheral device to the control computer via the peripheral interface, the control unit can discard result data resulting from the period in which the substitute control data was output. This allows the substitute data output to be made transparent for the control computer. Alternatively, the control unit can inform the peripheral interface that the control data stream has been interrupted, for example, at the start or end of the substitute data output, on a separate signal line or encoded into the result data stream.The control computer can then discard part of the result data stream itself, for example a part that contains only result data from the period of the replacement data output.

[0018] Preferred embodiments of the peripheral interface are those in which the control unit receives the data stream via a system bus of the control computer. This also includes embodiments in which the control unit actively reads the data stream from the main memory of the control computer through direct memory access. In particular, the data transmission method described in DE 10 2008 009 634 A1 can be used.

[0019] The advantages of the invention can be used, in particular, for controlling a component of a laser scanning microscope as a peripheral device. This can prevent damage to a scanning unit or a sample.

[0020] The peripheral interface is conveniently designed as a plug-in card for the control computer or as a circuit for use within the control computer. This allows your control unit to access the system bus and, in particular, the control computer's RAM with minimal effort. Furthermore, a plug-in card requires very little space.

[0021] The invention is explained in more detail below using exemplary embodiments.

[0022] The drawings show: Fig. 1 a block diagram of a first control computer with connected peripheral device, Fig. 2 schematically shows the setup of buffers in the main memory of the control computer, Fig. 3 a block diagram of a second control computer with connected peripheral device, Fig. 4 a diagram of a laser scanning microscope with a control computer, Fig. 5 schematic representations of the two-dimensional scanning in an LSM, Fig. 6 schematic representations of a periodic sampling process and data streams with modification instructions and Fig. 7 possible variants of jump instructions embedded in the data stream.

[0023] In all drawings, corresponding parts have the same reference numerals.

[0024] Fig. 1 shows a control computer 1 with a central processing unit 2, a working memory 3, a peripheral interface 4 according to the invention, and a bridge module 5 as a link between the processor bus 6, the memory bus 7, and the system bus 8. A peripheral device 10 is connected to the peripheral interface 4 via a peripheral bus 9. The bridge module 5 forwards memory accesses without the need for a driver for the central processing unit 2. This allows the control unit 11 of the peripheral interface 4 to have direct read and write access to the working memory 3 of the control computer 1 via the system bus 8. The control unit 11 is designed as an FPGA (Field Programmable Gate Array). The data transmission method is encoded in the firmware or in the FPGA program of the FPGA. The peripheral interface 4 is designed, for example, as a PCI Express plug-in card.“peripheral component interconnect”) with a detachable system bus connector (not shown) and a detachable peripheral bus connector (not shown).

[0025] In Fig. Figure 2 shows the creation of buffers by the control computer 1 in its working memory 3. The central unit 2 of the control computer 1 executes software 14 in which subprograms with software logic 15 are configured to carry out the part of the inventive method relating to the control computer 1. Independently of the software 14 and the central unit 2, the control unit 11 of the peripheral interface 4 carries out the complementary part of the inventive method. For two opposing unidirectional data streams, the software 14 expediently reserves a transmit buffer 16 and a receive buffer 17. The transmit buffer 16 serves the control computer 1 to store data that is to be read out by the control unit 11 and transmitted to the peripheral device 10 by the software 15.The receive buffer 17 serves the peripheral interface 4 to store data received from the peripheral device 10 and to be read by the software 14 by the control unit 11. Both buffers 16, 17 are addressed as ring buffers, for example, by both the control computer 1 and the peripheral interface 4. However, the invention can also be implemented with any other type of memory management.

[0026] Each of the buffers 16 and 17 consists, for example, of several distributed blocks of the main memory 3 combined to form a virtually contiguous FIFO buffer. The buffers 16 and 17 are reserved by the software 14 as non-pageable and each have a size of 32 MB. In other embodiments (not shown), they can also have different and other sizes. It is also possible to reserve one or both buffers as a physically contiguous block. The cache (not shown) of the central processing unit 2 is deactivated for the address ranges in which the buffers 16 and 17 are located. After the reservation, the software 14 informs the control unit 11 of the starting address and the size of the read buffer 16 and the write buffer 17. For this purpose, the control unit 11 provides two hardware registers, which are mapped into the address range of the central processing unit 2.

[0027] The peripheral interface 4 comprises, for example, a buffer memory (not shown) with a size of 8 kilobytes for each transmission direction. The first buffer memory serves to temporarily store data read from the transmit buffer 16 of the control computer 1 before further transmission via the peripheral bus 9 to the peripheral device 10. The second buffer memory serves to temporarily store data received from the peripheral device 10 via the peripheral bus 9 before being written to the receive buffer 17 of the control computer 1. In other embodiments, other buffer memory sizes can also be provided.

[0028] The control unit 10 receives the data stream, for example, in data blocks of 4 KB each. As soon as the first block is completely contained in the first buffer, it outputs the data located in the first buffer sequentially, for example, byte by byte or word by word. During this time, depending on the buffer size, one or more additional data blocks may already be received and written to the first buffer. Output continues seamlessly with this data block.

[0029] By embedding an instruction for modifying the output into the data stream when generating the data stream for the peripheral device 10, the actual modification does not need to be performed by the control computer 1. Instead, the modification of the output in the peripheral interface 4 can be performed independently by its control unit 11, without the latter needing detailed knowledge of the content of the data stream. Real-time-critical interaction with the central unit 2 is not required. The control unit 11 merely needs to be able to recognize a modification instruction in the data stream as such. For this purpose, for example, a specific bit or byte combination can be declared as a marker for a modification instruction.If the control unit 11 of the peripheral interface 4 detects a modification instruction, various possible reactions are possible. For example, the modification instruction can consist of a block segment containing a substitute data stream that is not immediately output by the control unit 11, but instead copied into a special emergency buffer. If the control unit 11 later determines that the data stream from the control computer 1 has been interrupted, it can, for example, output the substitute data stream from the emergency buffer to the peripheral device 10, either once or repeatedly until regular data is available again from the control computer 1. Other possibilities are described below using the example of a laser scanning microscope, but are not limited to this specific application.

[0030] Direct access of the control unit 11 to the main memory 3 is also possible in the Fig. 3 is possible. Here, the peripheral interface 4 according to the invention is connected to the system bus 8 via a second bridge module 12 and an intermediate bus 13; otherwise, the arrangement is identical to that shown in Fig. 2. Due to the mediation of the second bridge module 12, the direct memory accesses are delayed accordingly in this configuration. Here, too, the peripheral interface 4 is correspondingly Fig. 1 is designed as a PCI Express plug-in card, alternatively, it can be designed as a CardBus plug-in card. The implementation of the method according to the invention is possible both with the configuration of the Fig. 1 as well as with the configuration of the Fig. 3 is possible. In both configurations, the respective plug-in card can have, for example, an LVDS interface (low voltage differential signaling interface) as a peripheral connection, on which the data stream is output to the peripheral device 10.

[0031] Fig. Figure 4 is a schematic representation of an LSM controlled by a control computer 1. The LSM is modularly composed of an illumination module L with lasers 23, a scanning module S, a detection module D, and the microscope unit M with the microscope objective 31. The light from the lasers 23 can be influenced by the control computer 1 using light flaps 24 and attenuators 25 before being fed into the scanning unit S via optical fibers and coupling optics 20 and combined. Via the main beam splitter 33 and the XY scanning unit 30, which has two galvanometer mirrors (not shown), it passes through the microscope objective 21 to the sample 22, where it illuminates a focal volume (not shown). Light reflected or emitted by the sample passes through the microscope objective 21 via the scanning unit 30 and the main beam splitter 30 into the detection module D.The detection module D has several detection channels, each with a pinhole 31, a filter 28, and a photomultiplier 32, which are separated by color splitters 29. Instead of pinhole 31, slit diaphragms (not shown) can also be used, for example in the case of linear illumination. The confocal pinhole or slit diaphragms 31 serve to discriminate sample light that does not originate from the focal volume. The photomultipliers 32 therefore only detect light from the focal volume. The scanning unit 30 is connected as a peripheral device 10 via a peripheral interface 4, which can be configured, for example, according to FIG. Fig. 1 or according to Fig. 2, is connected to a control computer 1.

[0032] During image acquisition, for example, a user's action on the control computer 1 may result in a change in one or more scanning parameters, such as the scanning speed, necessitating a change in the mirror movement. Since the control computer 1 generates the control data block by block, the change can already be taken into account in the next block, i.e., in the control data for the next or next-but-one pixel row.

[0033] The confocally illuminated and recorded focal volume of the sample 22 can be moved over the sample 22 by means of the scanning unit 30 in order to record an image pixel by pixel by specifically rotating the galvanometer mirrors of the scanning unit 30. Fig. Figure 5 shows a motion sequence and the achieved result. For example, one of the galvanometer mirrors performs fast bidirectional movements in the X direction, while the other performs a slow unidirectional movement in the Y direction, typically in discrete steps during the direction reversal of the first galvanometer mirror ( Fig. 5A). The X-movement can be a sine wave ( Fig. 5B). Typically, one pixel line is recorded during both the forward scanning movement and the reverse scanning movement. One oscillation period therefore corresponds to the duration of the recording of two pixel lines. In the area of ​​the reversal points, the illumination and data recording can be interrupted to protect the sample 22. This way, only a section of the maximum scan field is recorded (outlined in bold in Fig. 5C). Both the movement of the galvanometer mirrors and the switching of the illumination by means of the light shutters 24 or the attenuators 25 are controlled directly by the control computer 1 via the peripheral interface 4. Data acquisition from the photomultipliers 32 also takes place via the peripheral interface 4.

[0034] In Fig. Figure 6 shows a section of another exemplary motion sequence of the fast X-galvanometer mirror and sections of an exemplary control data stream. The scanning speeds in the forward and reverse directions differ significantly ( Fig. 6A). Consequently, the durations of the data acquisition intervals also differ. It can be seen that the movement sequence in this example nevertheless repeats periodically. Here, too, one period corresponds to the duration of the acquisition of two pixel lines. The movement of the galvanometer mirrors is directly controlled by the control computer 1. For this purpose, the control computer 1 provides the scanning unit 30 with a block-by-block stream of control data during a measurement, which is transmitted by the peripheral interface 4. For each period, the central unit 2 of the control computer 1 generates a data block B in its working memory 3 in the transmission buffer 16. n ' with a segment B n , which contains control data for the galvanometer mirrors, and with a segment SOS, which contains replacement data for the galvanometer mirrors ( Fig. 6B and Fig. 6C). In alternative embodiments (not shown), the length of the control data segments transmitted in the data stream can be B n For example, instead of exactly one movement period, it can also correspond to exactly half a movement period, so that two data blocks B n ' and B n+1 ' be transmitted.

[0035] At the beginning of each replacement data segment SOS, an unconditional relative jump instruction JMP is arranged, which instructs the control unit 11 to start the output after the replacement data segment SOS, i.e. in a subsequent data block B n+1 , to continue ( Fig. 6B). Since the control unit 11 only executes forward jumps if the destination address is valid, i.e. if valid data of a completely received data block B n+1 ' are present, the jump instructions JMP implicitly represent an instruction to the control unit 11 to output the replacement data only if, after the output of the control data Bn no valid successor data B n+1 In alternative embodiments (not shown), in which the control unit 11 performs forward jumps without checking for valid data at the jump destination, the jump instruction itself can instead explicitly contain the condition "valid destination address" ("valid data at the jump destination"). Instead of relative jump destinations (positive or negative jump distances), absolute jump destinations (data stream addresses) can also be used, provided the control unit maintains an absolute output counter in the manner of a program counter (PC).

[0036] Is a block B n' is completed, the central unit 2 informs the control unit 11 of the peripheral interface 4 via the system bus 8 that a complete data block is present in the transmit buffer 16. This can be done, for example, according to DE 10 2008 009 634, using a first pointer past the end of the valid data still to be transmitted and a second pointer to the end of the data already transmitted and thus to the beginning of the data still to be transmitted. The control unit 11 then copies the data block into its buffer memory and outputs it seamlessly to the peripheral device 10 following the previous data block.

[0037] If, without the instructions according to the invention for modifying the data stream output, the generation of a data block B n+1, for example in the case of a non-real-time capable operating system due to high computing load, is delayed so that it is not available to the control unit 11 in time for the continuation of the regular output, the control data of the last completely transmitted control data block B nstill output to the peripheral device 10. After that, however, the galvanometer mirrors would be uncontrolled. They would continue their current movement according to the principles of inertia and harmonic oscillations. This could damage the galvanometer mirrors or the sample 22. According to the invention, an interruption of the data stream output to the peripheral device 10 is prevented by the embedded jump command JMP and the subsequent substitute control data SOS. Substitute data SOS output once could, for example, control the galvanometer mirrors in such a way that a non-critical sample area or an area outside the sample is illuminated in a stationary manner ("parking") until regular control data B is available again. n+1 are available.

[0038] In an alternative embodiment ( Fig. 6C), a second unconditional jump instruction JMP is located at the end of the replacement data segment SOS, the jump destination of which is the beginning of the replacement data segment SOS. After a truncated output of the replacement data, the control unit 11 continues with the output at the beginning of the replacement data segment SOS. There, it encounters the unconditional jump instruction JMP to the subsequent data block B. n+1 and checks again whether this jump destination is valid. If so, it jumps to this jump destination to continue the output. The output then continues normally. If the jump destination is invalid, the control unit 11 skips the first jump instruction JMP and outputs the replacement data SOS again. This is a replacement data output loop that is only exited when a valid subsequent data block B n+1 ', in particular a valid control data segment B n+1, is present. Preferably, the substitute control data contains an emergency movement curve which is designed in such a way that the subsequent regular control data block B n+1 without discontinuities or transient phenomena. For example, the galvanometer mirrors at the end of the substitute control data are set to the same accelerations and the same deflection angles as at the end of the preceding regular control data. With such a configuration, the software 14 of the control computer 1 does not need to perform any separate error handling. At most, it is informed by the peripheral interface 4 about the exact duration of the delay. Even without this information, the measurement data of the software 14 remains consistent, since the system state of the peripheral device 10 is the same after processing both the regular control data and the substitute data.

[0039] In the partial figures of Fig. Figure 7 shows various general examples of the handling of jump instructions (mnemonic JMP) by control unit 11. Solid arrows represent executed jumps, while dashed arrows represent unexecuted jumps. A jump instruction is expediently executed by control unit 11 (regardless of any condition) only if valid control data is present at the jump destination. This prevents undefined control data from being output.

[0040] If only entire blocks are declared valid (after transmission via system bus 8), a forward jump within a data block ( Fig. 7A) is always executed and the output continues at the jump destination. Backward jumps within a data block ( Fig. 7B) are always executed and the output continues at the jump destination. If the following data block B n+1not yet completely transferred, a forward jump into this block B n+1 ( Fig. 7C) is not executed and instead the output continues immediately after the jump instruction. If the following data block B n+1 complete, the jump destination (“destination address”) is valid, then a forward jump into this block B n+1 ( Fig. 7D) and the output is continued at the jump destination.

[0041] The jump instructions can be nested. For example, a backward jump instruction with a jump destination before the forward jump instruction can be located between a forward jump instruction and its jump destination. If the following data block B n+1 not yet fully transferred ( Fig. 7E), the forward jump into this block B n+1is not executed and instead the output continues immediately after the jump instruction. After some time, the unconditional back jump instruction is reached, which causes the output to be repeated until a valid successor block is available. If the subsequent data block B n+1 completely before ( Fig. 7F), the forward jump into this block B n+1 executed and output continues at the jump destination. The data between the forward jump instruction and its jump destination is not output.

[0042] In the example according to Fig.7G, the exemplary emergency segment SOS contains three jump commands. Between two consecutive forward jump commands, there is first substitute control data, which, for example, brings the peripheral device into a defined state. The second forward jump command is followed by second substitute control data, which keeps the peripheral device 10 in the defined state. This is followed by an unconditional backward jump command, whose jump destination is the second forward jump command. The forward jump commands are only executed if there is no valid subsequent data block. In the situation shown, there is no subsequent data block. The forward jumps are therefore not executed. As a result, the regular control data of block B is first executed. n to the peripheral device 10, then the first replacement data once, then the second replacement data repeatedly. Only when a valid successor block B n+1is present (not shown) the rear forward jump will lead out of the loop.

[0043] It is advisable, but not mandatory, that in a data stream divided into blocks, each data block B n An emergency segment SOS with corresponding jump commands is provided. The respective emergency segment SOS can be inserted at the end or at any other point within the respective data block B n The second alternative (not shown) can be realized, for example, by an unconditional forward jump leading the regular output over the emergency segment if, at the end of the regular control data, a backward jump into the emergency segment SOS is made, at the beginning of which a forward jump (executed by the control unit 11 only if the jump destination is valid) into the next block B n+1 stands.

[0044] In further embodiments (not shown), the jump commands can include conditions other than the validity of jump targets. For example, in conjunction with an initialization command for a counter maintained in the control unit 11, jump commands with increment or decrement and a condition for the counter reading can be implemented. In this way, output loops with a predetermined number of iterations can be programmed. Such loops can contain, for example, regular control data. For example, in an LSM, the control data for a two-dimensional image acquisition could fit into just one data block by programming two nested loops for the X and Y galvanometer mirrors.

[0045] In general, a data stream, regardless of whether it is generated and transmitted in blocks, can be divided into sections of constant size. In such cases, the jump size of a jump instruction can be specified as the number of sections to be skipped. This allows the required bit width for the jump size specification to be reduced compared to a specification in bytes, for example. With a section size of 256 bytes and a bit width of the jump size specification of 8 bits, jumps are only possible in increments of 256 bytes, but in return, jumps are possible across + / - 127 sections instead of just + / - 127 bytes. List of reference symbols 1 tax calculator 2 central unit 3 RAM 4 Peripheral interface 5 bridge building blocks 6 Processor bus 7 memory bus 8 System bus 9 Peripheral bus 10 Peripheral device 11 Control unit 12 bridge blocks 13 intermediate bus 14 Software 15 Software logic 16 read buffers 17 write buffers 20 Collimation optics 21 microscope objective 22 Sample 23 lasers 24 light flap 25 attenuators 26 fiber couplers 27 Tube lens 28 filters 29 Dichroic beam splitter 30 scanner mirrors 31 pinhole 32 photomultipliers 33 main beam splitters D Detection module M microscope L lighting module S scanning module

Claims

[1] Peripheral interface (4) with a control unit (11) which receives a data stream from a control computer (1) and outputs it to a peripheral device (10), characterized by that the control unit (11) receives from the received data stream an instruction for modifying the output of the data stream, wherein the instruction contains a conditional or unconditional jump instruction (JMP) for continuing the output at a position within the data stream that can be determined or is determined by the jump instruction (JMP). [2] Peripheral interface (4) according to claim 1, characterized by that the instruction contains a condition for the modification, wherein the control unit (11) repeatedly checks whether this condition is met and only carries out the modification if the condition is met. [3] Peripheral interface (4) according to one of the preceding claims, characterized bythat the control unit (1) receives several data streams from the control computer (1), of which it outputs only one to the peripheral device (10), wherein the modification instruction specifies the data stream to be output. [4] Peripheral interface (4) according to one of the preceding claims, characterized by that the control unit (11) identifies a break in the data stream to be received and then outputs a replacement data stream. [5] Peripheral interface (4) according to claim 4, characterized by that the control unit (11) receives an instruction for composing the replacement data stream from the data stream. [6] Peripheral interface (4) according to claim 4 or 5, characterized by that the control unit (11) stops the output of the substitute data stream when the data stream to be received is continued and outputs the continued data stream. [7] Peripheral interface (4) according to one of the preceding claims, characterized bythat the control unit (11) receives the data stream via a system bus (8) of the control computer (1). [8] Peripheral interface (4) according to one of the preceding claims, characterized by Designed as a plug-in card for the control computer or as a circuit for use in the control computer (1). [9] Peripheral interface (4) according to one of the preceding claims, characterized by that the peripheral device (10) is a component (22) of a laser scanning microscope. [10] Laser scanning microscope with a control computer (1) and a peripheral interface (4) according to claim 9. [11] Method for transmitting a data stream via a peripheral interface (4), wherein a data stream is received by a control computer (1) and output to a peripheral device (10), characterized bythat an instruction for modifying the output of the data stream is identified in the received data stream and the data stream is output modified in accordance with the identified instruction, wherein the instruction contains a conditional or unconditional jump instruction (JMP) for continuing the output at a position within the data stream that can be determined or is determined by the jump instruction (JMP). [12] Method according to claim 11, characterized by that the modification only occurs if a condition for the modification contained in the identified instruction is met. [13] Method according to claim 11 or 12, characterized by that several data streams are received by the control computer (1), of which only one is output to the peripheral device (10), wherein the data stream to be output is selected according to the modification instruction.

Citation Information

Patent Citations

  • Laser scanning microscope with high-speed data processing

    DE102006025445A1

  • Methods and system to provide references associated with data streams

    US20070294500A1

  • 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

    US20080005429A1

  • Method and apparatus for protecting against failures due to data unavailability in real-time data processing

    US6490676B1

  • Virtual printer

    US6542252B2