Over the past 40 years, much has been done to improve the software programming environment for the IEEE-488 interface. Improvements such as the IEEE-448.2 extension to the standard defined a set of low-level instrument and bus commands that an instrument must support to be compliant. The industry has also adopted the standardization of higher-level programming commands for instruments, known as Standard Commands for Programmable Instruments, or SCPI, which has led to a considerable improvement in test development time, as well as a reduction in the time required to maintain existing software. While the implementation of SCPI is widely accepted by instrument vendors, an engineer automating instruments is still responsible for much of the instrument coding.
Efforts to create a higher level of abstraction for instrument automation led first to proprietary programming environment instrument drivers and later to more interoperable, standards-based drivers. Today's instruments perform a wide variety of complex analyses and measurements, and many are designed to run as an application on a Microsoft operating system. Microsoft's .NET infrastructure allows instrument vendors to enable access to much deeper insights into instrument measurements without having to open the SCPI programmer's guide or learn to use a specific driver suite. The advent of instrument driver software hosted on Microsoft .NET technology has provided automation engineers with faster test software development and easier access to the complex measurement insights generated by the instrument.
This article aims to illustrate how .NET technology implemented by an oscilloscope vendor in its digital transmitter compliance test product provides value-added measurement insights readily accessible to its customers' automation code. .NET technology has enabled the creation of a common framework used to build all of its compliant data communication applications designed to handle testing of digital transmitters against a specific standard. .NET technology has not only helped the oscilloscope vendor's internal developers but has also provided a very high level of abstraction so that its customers can take advantage of remote execution and client automation. Measurements across the current digital device ecosystem have become more complex as devices become faster and smaller. Until recently, the automation engineer was responsible for creating the measurement algorithms needed to perform compliance testing against a given standard, such as PCI Express, SAS, and other data communication standards. Today's customers simply don't have the software engineering staff to keep up with the continuous changes in data communication standards. Customers now expect oscilloscope vendors to provide the software necessary to qualify a device as compliant with a specific standard.
In early oscilloscopes, engineers typically created their own algorithms to measure the rise and fall times of electrical signals. It wasn't until the late 20th century that these measurements were incorporated into oscilloscope firmware. In the 1990s, engineers expected their oscilloscopes to offer basic measurement functions, such as rise time measurement. In the 21st century, customers expect oscilloscope vendors to meet the testing challenges of specific data communication standards and provide a complete measurement solution, along with easy access through their own automation code. An oscilloscope vendor's product offering must demonstrate ongoing investment in measurement expertise to meet the requirements of current and future data communication standards.
An oscilloscope vendor that incorporates more measurement expertise into its product offering is typically an active member of standards bodies such as PCI Express, SATA, JEDEC, and USB-IF. Active participation in these standards allows the vendor to help define test specifications designed to ensure the interoperability of devices compatible with a particular standard. Once the test requirements are defined, the oscilloscope vendor can implement the various measurements defined by the standard and incorporate them into its oscilloscope software offering. A customer can then access a suite of standard-compliant test software enabled by the oscilloscope vendor's .NET technology to establish their device's compliance with a specific data communication standard. In addition to providing a user-friendly graphical interface for the customer to operate the oscilloscope, the software platform should also allow full remote access. An oscilloscope vendor that provides test packages for a wide range of data communication standards significantly increases the productivity of the customer's engineering staff. The oscilloscope vendor assumes responsibility for interpreting the test specifications of a standard and is tasked with developing the measurement software package and providing technical support. Furthermore, the fact that the oscilloscope vendor provides the measurement software package allows for better correlation of test data between a customer's own engineering teams and their client's teams, knowing that all parties are using common tests and algorithms.
Figure 1 shows an example of a software package that exposes the available tests defined in the standard for DDR4 computer memory. The customer selects the tests and measurements of interest, and the appropriate algorithms are implemented by the oscilloscope vendor's automated software. It is important to look for an oscilloscope vendor that offers consistency across its standards-based measurement software. A DDR4 software test package should maintain consistency with one for PCI Express, which increases the end user's efficiency and productivity.
A comprehensive software package for conducting tests according to a data communication standard should produce data in an easily readable format, as shown in the example in Figure 2. An HTML report that includes screenshots, where applicable, of all executed tests with pass/fail/margin information provides significant value to the client when sharing it with their own engineering teams and customers.
Modern 21st-century oscilloscopes are considered measurement systems that include innovative polling capabilities for accessing signals not accessible via a direct RF cable. FPGA-based algorithmic engines, powered by access to external encryption languages and mathematical libraries, are necessary to analyze and produce many of the measurement values required by modern digital devices. It is not only important to access the desired tests through an interactive graphical user interface, as shown in Figure 1, but equally important to be able to execute the tests from the client's automation code. The automation engineer may also need to monitor power supplies or environmental cameras before running a prescribed test, in addition to integrating the measured data into a corporate database. An oscilloscope vendor that can provide a seamless automation interface for the same functions exposed in the interactive graphical user interface not only delivers significant value to the automation engineer but, more importantly, allows for
better utilization of the company's engineering resources. A software framework based on .NET technology enables the automation engineer to access all the functions of the oscilloscope vendor's measurement software designed for a data communications standard. Furthermore, it allows engineers to delve into asynchronous runtime events to integrate the automation of supporting instruments—for example, by programmatically responding to the message indicator "Change the power supply output to 1V and click 'OK' to continue." These events no longer require the often time-consuming manual intervention.
The following Python example of how to use a .NET suite can provide the automation engineer with a perfect level of abstraction without overwhelming them with the details of setting up test conditions, managing the test flow, and ultimately, managing the measured data. Microsoft's Common Language Runtime engine allows for easy loading of a .NET suite from various programming languages such as Visual Basic, C#, and C++, as well as graphical programming languages like Keysight's VeePro and NI's LabWindows and LabVIEW. Furthermore, .NET technology can be extended to cover a wide variety of automation tasks, including controlling environmental cameras, communicating with the device under test, switching matrices, and, of course, other instruments besides an oscilloscope.
import clr
clr.AddReference("Keysight.Infiniium.AppFW.Remote")
from Keysight.Infiniium.AppFW.Remote import *
Required to connect the oscilloscope via an Ethernet connection for access to the methods and properties exposed in the .NET sets.
remoteObj = RemoteAteUtilities.GetRemoteAte("192.168.1.107")
remoteApp = IRemoteAte(remoteObj)
The object named remoteApp can now access all the functions of the measurement software package specific to the selected data communication standard as if it were being done interactively from the test package's graphical user interface. Below is the code that the automation engineer needs to create a new project similar to doing so from the measurement software package's graphical user interface via File->New Project.
remoteApp.NewProject(True)
The following retrieves the same information presented in Figure 1 when running the measurement software package interactively. Once the automation engineer is aware of the available tests, they can be selected programmatically, similar to checking a box next to the test names in Figure 1. In fact, the graphical user interface will reflect what the engineer programmed remotely, which greatly aids in code debugging.
myAvailableTests = remoteApp.GetCurrentOptions("TestsInfo")
to get information on myAvailableTests: // The following for the loop extracts the names and ids of the available tests
myTestName = info.Name
myTestId = info.ID
testToSelect = myAvailableTests[0].ID // The first test from the available tests is selected for execution
remoteApp.SelectedTests = [testToSelect]
The following executes the selected test and creates the HTML report, as shown in Figure 2. The MY_HTML file is created in the C:\data folder.
remoteApp.Run()
descriptionHtmlString = 'MY_HTML'
saveResultHtmlOptions = ExportHtmlOptions()
saveResultHtmlOptions.ReportName = descriptionHtmlString
saveResultHtmlOptions.OverwriteExisting = True
saveResultHtmlOptions.BasePath = "C:\data"
remoteApp.ExportResultsHtmlCustom(saveResultHtmlOptions);
A critical piece of documentation for efficient use of the .NET suite is a comprehensive and up-to-date help file from the oscilloscope vendor. An excerpt from a help file shown below defines which options are available when creating an HTML report. The options are implemented in the preceding Python example.
ExportHtmlOptions Properties Keysight DigitalTestApps Remote Interface for .NET
Remote Interface Version 3.40
The ExportHtmlOptions type exposes the following members.
Properties
Name and Description
BasePath: Path to save the report. A subdirectory named ReportName will be created.
OverwriteExisting: Set this property to true to overwrite an existing report with the same name in the specified location.
ReportName: Name of the report to be generated.
Even better are the integrated indicators in the graphical user interface, which answer questions like, "Which automation command does this checkbox select?"
Companies can no longer afford to dedicate valuable engineering resources to understanding all the testing requirements of a specific data communication standard and then fund the development of the software needed to perform the measurements required by that standard. Once the oscilloscope vendor becomes the supplier of the measurement software package for a specific data communication standard, the customer's engineers can more quickly focus on gaining valuable insights about their product from the measurement data generated by the software package. The ability to correlate data obtained from different oscilloscopes using the same version of the measurement software package improves the productivity of the customer's engineering staff. Customers will continue to turn to oscilloscope suppliers to provide them with an oscilloscope as a measurement system that includes connectivity solutions with their device, such as probes, measurement software packages that address different data communication standards, and a high level of abstraction of the measurement software package, which allows automation engineers to easily control the execution of the measurement software package from their internal automation software.
