The idea of measuring waveform dates back to the 16th century. For any kind of technological growth, scientific study is necessary. Scientific study involves a keen observation of the system behavior, mathematical formulations and experimentation. Observation of the system behavior include making measurements of system parameters and its output for various kinds of input signals. But when the system parameters are distinct and time varying the study of system behavior purely by analytical methods becomes somewhat cumbersome and difficult. In such cases the study can be greatly simplified by making use of transducers that convert these distinct system parameters to electrical signals. When such a conversion is made the system of interest can be easily studied since electrical signals are readily measured using Analog to Digital Converters. This is how the idea of oscilloscopes originated. Oscilloscope is an automated measuring instrument which samples an analog signals, process it and then displays the waveform on screen.
Tremendous amount of research have been made in the field of oscilloscope technology. Some of the popular features available in conventional Digital Oscilloscopes such as Triggering, FFT, Math Functions, etc were used in our project. Some of these principles are briefly documented below:
1. Reducing Blind time: Integrated scope spends most of the time processing the waveform during which it is blind to the input signal. The blind time can be effectively reduced to zero at lower sampling rates with the use of dedicated microcontrollers with large memory for storing the incoming samples. But at higher sampling rates since the microcontroller cannot keep up with the data transfer rate, the internal storage location of High speed ADC is used. This limits the maximum no of samples that can be collected in a single run to 1024 samples. Hence most of the time is spent processing the data than capturing the data which results in undesirably larger blind times.
i. "Single run" with deep memory: The ADC used in our project supports a maximum internal record length of 1024 points. To reduce blind time, at higher sampling rates the ADC is configured to its maximum record length regardless of its sampling rate. Hence at its peak sampling rate of 200 MSPS a maximum of 1024x5ns or 5.02us recording length is possible. It has been found that the integrated scope can produce a maximum of 45 frames per second. This translates to approximately 22.22ms of time required for processing a single frame. Hence the blind time percentage at its peak sampling rates is 99.986%. Although this looks hopeless it is a significant improvement than that is possible without using “single run”. In fact the scope can sample at no more than 45 samples per second if this technique is not used since the scope cannot get new sample before 22.22 ms.
ii. Dedicated trigger events: In the 1940's the trigger system was invented in order to obtain a stable waveform display. The first trigger event for an Analog oscilloscope was the "edge" event. This was then followed by level triggering, pulse triggering, external triggering facilities and a host of other advanced triggering modes such as selective signal capturing. The introduction of triggering facilities significantly reduced the blind time. With the help of dedicated trigger events the scope can be used to capture almost any kind of waveform that the user is interested in. The reduction in blind time is due to the fact that the scope will be waiting for a signal which fits the user description. Even when the scope is busy processing the samples, the trigger system will be armed to search for a particular kind of signal. Hence the blind time is greatly reduced.
2. Nyquist rate: The Nyquist theorem states that an analog signal can be exactly reconstructed if the sampling frequency is at least twice that of the maximum frequency content of the Analog signal. This works well only when the input signal is sinusoidal, if a signal with harmonics is used then the linear interpolation provides a more accurate representation of Analog signal than sinc interpolation. This is due to the fact that the sinc interpolation completely disregards the higher frequency components. Sinc interpolation works almost perfectly when the ratio of sampling rate to highest frequency content is greater that 4:1. The Integrated scope will be designed to support both of these interpolation techniques.
Figure 1. Interpolation techniques
3. Triple Buffering: To reduce the tearing and flickering effect, triple buffering is used. In triple buffering, a set three frames are stored in LCD memory as shown in figure. The frame used for displaying and rendering are isolated. The LCD will always use a frame which is fully prepared by the microcontroller. The microcontroller signals the LCD when the rendering is complete. This will switch the display frame. Hence the rendering of image and displaying it on screen can be isolated.
Figure 2. Triple Buffering
4. RTO Architecture: To virtually eliminate the blind time at lower sampling rates, the RTO architecture can be used. Here an additional microcontroller (atmega32) is used for storing the incoming samples from ADC. Whenever the main microcontroller is free to collect new samples it can request atmega32 to send them through UART. A minor drawback is that atmega32 has only 2KB of SRAM. Hence the main microcontroller will have to be fast enough to do the processing before all the memory locations dedicated for storing the samples in atmega32 gets filled.
The diagram given below shows a simplified representation of RTO architecture as implemented in integrated scope.
Figure 3: RTO structure
5. Software debouncer: This technique is commonly used to eliminate the use of interrupts to record changes at an input pin. Most of inputs given by the user by clicking a button, turning a rotary encoder or toggling a switch produces a temporary change in output voltage which exists for at least 20ms before reverting back to its original value. If the microcontroller is designed to check the status of all switches for every 20ms or less, then the user input status can be obtained without missing or jumping over any changes in the user input.