Programmable electronic test equipment and method for programming electronic test equipment

Flexibly programmable electronic test equipment and methods for programming same are disclosed. A piece of electronic test equipment includes signal processing hardware, a signal processor coupled to the signal processing hardware to control operation of the signal processing hardware, a central processor coupled to the signal processor, a graphical user interface, a graphics processor configured to control operations of the graphical user interface, a script language interpreter including a compiler and a virtual machine, the compiler converts script source code to byte code fed to the virtual machine interprets the byte code into machine code at run-time for controlling at least one of the signal processor and the graphics processor, the graphical user interface receives editable input parameters from a user to the script source code being converted by the compiler of the script language interpreter.

FIELD OF THE INVENTION

The present invention relates to flexibly programmable electronic test equipment, such as signal generators, digital pattern generators, pulse generators, oscilloscopes, frequency counters or network analysers, and to methods for flexibly programming such electronic test equipment. Such methods and systems may in particular employ script language interpreters built-in in the electronic test equipment.

BACKGROUND OF THE INVENTION

Software solutions for the contemporary signal generators support various demanding applications, including radar signal simulation, generation of digital I/Q signals supporting various radio standards, easy generation of digitally modulated signals on a PC, multi-channel vector analyser setups with calibrated amplitude, time and phase as well as software tailored for multi-channel vector signal generator setups, according to many standards and over a wide range of applications. In order to adapt the signal generator software to unique test and measurement needs external configuration tools such as PCs or static configuration logic in firmware applications.

For example, Smith, Craig: “The Car Hacker's Handbook: A Guide for the Penetration Tester”, chapter 8, No Starch Press 2016 discloses an open source configurable side-channel analysis for pen-testing embedded systems. PyArbTools (https://web.archive.org/web/20210430202438/https://pypi.org/project/pyarbtools/) and RsSmw (https://web.archive.org/web/20220124105331/https://pypi.org/project/RsSmw/) each disclose collections of Python classes, library modules and functions providing signal creation, instrument configuration, and waveform download capabilities for signal generators.

SUMMARY OF THE INVENTION

According to the disclosure of the present invention flexibly programmable electronic test equipment and methods for flexibly programming electronic test equipment may be implemented.

Specifically, according to a first aspect of the invention, an electronic test equipment includes signal processing hardware, a signal processor coupled to the signal processing hardware and configured to control the operation of the signal processing hardware, a central processor coupled to the signal processor, a graphical user interface, a graphics processor coupled to the central processor and the graphical user interface, the graphics processor configured to control operations of the graphical user interface, a script language interpreter including a compiler and a virtual machine, the script language interpreter coupled to the graphical user interface and the graphics processor, the compiler configured to convert script source code to byte code fed to the virtual machine which is configured to interpret the byte code into machine code at run-time for controlling at least one of the signal processor and the graphics processor, the graphical user interface being configured to receive editable input parameters from a user to the script source code being converted by the compiler of the script language interpreter.

According to a second aspect of the invention, a method for operating electronic test equipment comprises the steps of receiving a script source code at a compiler of a script language interpreter included in the electronic test equipment; receiving editable input parameters from a user over a graphical user interface of the electronic test equipment; converting, by the compiler, the received script source code modified by the received editable input parameters to byte code; feeding the converted byte code from the compiler to a virtual machine of the script language interpreter, the virtual machine interpreting the converted byte code into machine code at run-time; and controlling at least one of a signal processor and a graphics processor of the electronic test equipment using the machine code interpreted by the virtual machine of the script language interpreter, the graphics processor being configured to control operations of the graphical user interface and the signal processor being configured to control operations of signal processing hardware of the electronic test equipment.

One idea of the present invention is to equip electronic test equipment with scripting capabilities that enable the user of the test equipment to influence the functionality of the test equipment without need to know the firmware or the machine code of the test equipment.

Amongst others, there are several specific advantages associated with such flexibly programmable electronic test equipment and methods for flexibly programming electronic test equipment. By using electronic test equipment including script interpreters which may be fed with application-specific programmable scripts, the need for external configuration equipment such as PCs may be obviated. Moreover, the graphical user interface of the electronic test equipment may allow for easy and intuitive adjustment of the scripts. The graphical user interface may in particular be adapted specifically to the user of the electronic test equipment so that complex logic may be used to simplify the configuration process of the electronic test equipment. Users of the electronic test equipment may use the scripting capability of the test equipment to adapt complex behaviour of components of the equipment during run-time and does not have to rely on static firmware configuration.

Using commonly known scripting language such as for example Python, knowledge about domain specific languages in the particular programming environment of the electronic test equipment is not necessary. Standard Commands for Programmable Instruments (SCPI) which form a layer in the IEEE-488.2 standard may be used as command line interpreter strings that are sent via the physical communication layer to internal components of the electronic test equipment for setting operations, query operations and/or polling operations.

In all figures of the drawings elements, features and components which are the same or at least have the same functionality have been provided with the same reference symbols, unless explicitly stated otherwise.

DETAILED DESCRIPTION OF THE EMBODIMENTS

Electronic test equipment within the meaning of the present invention include any electronic equipment capable of creating signals and/or capturing responses from electronic devices under test (DUTs). Electronic test equipment may in particular be employed to test proper operation of a number of DUTs coupled to the test equipment and to trace faults in the DUTs.

FIG.1schematically illustrates a piece of electronic test equipment10. The electronic test equipment10may in particular be a signal generator, a digital pattern generator, a pulse generator, an oscilloscope, a frequency counter or a network analyser. The electronic test equipment10may generally include a housing11in which all components of the electronic test equipment10are housed or installed. The electronic test equipment10may in particular be a stand-alone device which does not necessarily need an external configuration tool such as a PC or another electronic device for configuration.

The electronic test equipment10includes a central processor2, signal processing hardware13, a signal processor7coupled to the signal processing hardware13and the central processor2and configured to control the operation of the signal processing hardware13, a graphical user interface4, and a graphics processor6coupled to the central processor2and the graphical user interface4. The graphics processor6is used to control operations of the graphical user interface4.

A possible implementation of the graphical user interface4is exemplarily shown inFIG.3. A display30of the graphical user interface4may include a number of graphical display elements31to37which may be used to visually indicate operational conditions, measurement values, equipment settings and/or other information to a user. For example, the display30may show a status bar31with status elements, a visual representation32of measurement values, and an action menu33. The display30may also include a list34specifically used for indicating script language elements, such as for example stored scripts35, currently active scripts36and/or fields37for editable input parameters to be edited by interaction of a user with the electronic test equipment10.

The electronic test equipment10further includes a script language interpreter5including a compiler14and a virtual machine15. The script language interpreter5is coupled to the graphical user interface4for receiving editable input parameters from a user. The script language interpreter5is further coupled to the graphics processor6and the signal processor7.

The compiler14converts script source code to byte code which is then fed to the virtual machine15. The virtual machine15interprets the byte code into machine code at run-time for controlling at least one of the signal processor7and the graphics processor6. The compiler14uses the editable input parameters from a user as modifications to the script source code.

The graphics processor6may comprise a virtual machine socket16coupled to the virtual machine15of the script language interpreter5. Similarly, the signal processor7may comprise a virtual machine socket17coupled to the virtual machine15of the script language interpreter5. An input/output interface9may be included in the electronic test equipment10, for example a USB port, that couples to the compiler14of the script language interpreter5and may be used to feed external script source code to the compiler14for converting into byte code. Moreover, the input/output interface9may also be used to feed external script libraries modules to the virtual machine15of the script language interpreter5. Script libraries modules are files that may be imported into script source code and may contain helpful functions, classes, or variables pointing to useful data in the respective script language.

The electronic test equipment10may further comprise a sensor module8coupled to the compiler14of the script language interpreter5. Such a sensor module8may be used to measure environmental sensor values and feed the measured sensor values to the compiler14as editable input parameters to either the user input script source code or the external script source code.

Furthermore, the electronic test equipment10may further comprise a configuration storage module3coupled to the central processor and configured to store firmware for operation of the central processor2. Additionally, the electronic test equipment10may further comprise auxiliary signal processing hardware12directly coupled to the central processor2. Such auxiliary signal processing hardware12may be hardware that should not be influenced by scripts input by a user, for example critical hardware that is fixedly encoded in the electronic test equipment10.

The script source code converted by the compiler14of the script language interpreter5is, for example, Python source code. However, other script languages designed to manipulate, customize, and automate components of the electronic test equipment10and interpreted at run-time, such as for example JavaScript, Bash, Perl, Tcl, Kotlin, Lua, Lisp or Visual Basic may also be employed. The script language interpreter5is then designed to be a direct instruction executer that parses the respective source code type, translates it into byte code and interprets the translated byte code for immediate execution in a virtual machine. The script language interpreter5may also be designed to execute stored or externally received precompiled bytecode, for example in script libraries modules.

FIG.2schematically illustrates procedural stages of a method20for programming electronic test equipment, particularly electronic test equipment10as shown and explained in conjunction withFIGS.1and3. The electronic test equipment to be programmed by the method20may be a signal generator, a digital pattern generator, a pulse generator, an oscilloscope, a frequency counter or a network analyser. The method20may be used for improving the flexibility of radar signal simulation, generation of digital I/Q signals supporting various radio standards, generation of digitally modulated signals on a PC and/or setting up multi-channel vector analyser or generator setups with calibrated amplitude, time and phase.

In the method20, a first step21includes receiving a script source code at a compiler14of a script language interpreter5included in the electronic test equipment10, for example Python source code. However, other script languages designed to manipulate, customize, and automate components of the electronic test equipment10and interpreted at run-time, such as for example JavaScript, Bash, Perl, Tcl, Kotlin, Lua, Lisp or Visual Basic may also be employed. The script language interpreter5is then designed to be a direct instruction executer that parses the respective source code type, translates it into byte code and interprets the translated byte code for immediate execution in a virtual machine. The script language interpreter5may also be designed to execute stored or externally received precompiled bytecode, for example in script libraries modules.

In a second step22, editable input parameters from a user are received over a graphical user interface4of the electronic test equipment10. In a third step,23, the compiler14converts the received script source code modified by the received editable input parameters to byte code. The converted byte code from the compiler14is fed in a fourth step24to a virtual machine15of the script language interpreter5. The virtual machine15interprets the converted byte code into machine code at run-time.

The machine code interpreted by the virtual machine15of the script language interpreter5is then used in a fifth step25to control at least one of a signal processor7and a graphics processor6of the electronic test equipment10. For example, the signal processor7and the graphics processor6may include virtual machine sockets16and17, respectively, for the virtual machine15to connect to, the virtual machine sockets being capable of facilitating operative control to the virtual machine15via the machine code generated from the script source code fed to the script language interpreter5.

The graphics processor6controls operations of the graphical user interface4and the signal processor7controls operations of signal processing hardware13of the electronic test equipment10. By allowing the virtual machine15of the script language interpreter5to at least partially alter functionality of the graphics processor6and/or the signal processor7, a user is given the opportunity to flexibly program the graphics processor6and/or the signal processor7via a script language without the need to know the machine code running the graphics processor6and/or the signal processor7.

In some implementations, external script source code may be additionally fed to the compiler14of the script language interpreter5via an input/output interface9included in the electronic test equipment10. This input/output interface9may also be used to feed external script libraries modules to the virtual machine15of the script language interpreter5. Script libraries modules are files that may be imported into script source code and may contain helpful functions, classes, or variables pointing to useful data in the respective script language.

In some implementations, a sensor module8included in the electronic test equipment10may be used to measure environmental sensor values and feed the measured sensor values to the compiler14of the script language interpreter5as (further) editable input parameters to the script source code.

Also, the invention is not limited to physical devices or units implemented in non-programmable hardware, but can also be applied in programmable devices or units able to perform the desired device functions by operating in accordance with suitable program code. Furthermore, the devices may be physically distributed over a number of apparatuses, while functionally operating as a single device. Devices functionally forming separate devices may be integrated in a single physical device. Those skilled in the art will recognize that the boundaries between logic or functional blocks are merely illustrative and that alternative embodiments may merge logic or functional blocks or impose an alternate decomposition of functionality upon various logic or functional blocks.

Skilled artisans will appreciate that the illustrations of chosen elements in the drawings are only used to help to improve the understanding of the functionality and the arrangements of these elements in various embodiments of the present invention. Also, common and well understood elements that are useful or necessary in a commercially feasible embodiment are generally not depicted in the drawings in order to facilitate the understanding of the technical concept of these various embodiments of the present invention. It will further be appreciated that certain procedural stages in the described methods may be described or depicted in a particular order of occurrence while those skilled in the art will understand that such specificity with respect to sequence is not actually required.