This animated GIF that I created shows how one of my inventions, U.S. Patent Application No. 20060276989 creates the ISO14443 compliant Contact-less Smart Card test waveforms from an incoming data stream (lower left). As the data comes in it goes through a single flop stage that saves the last data state so this simple state machine can see not only what is coming in, but what was coming in last time. This allows us to "stitch together" or concatenate waveform segments from the Palette Memory based on the real time data-stream. As the data comes in Palette Memory waveforms are selected and sent to the Digital to Analog Convertor (DAC) to create the analog waveform that will be sent to the smart card chip. The smart card chip will decode these waveforms as an incoming stream of 1's and 0's as if it were in a credit or ID card out in the real world. The waveform segments are intentionally distorted with both overshoot and undershoot to make sure the chip works in the real world. The amount of distortion is controlled by the engineer when he assembles the waveform with tools similar to that of a graphics program which allows him to exactly meet all the requirements of ISO14443 and potentially any other new requirements that come along.

The animation is running at high speed. To watch it at a slower speed put your mouse over the animation.

I named it a Palette AWG (Arbitrary Waveform Generator) because it is similar to what an artist does when painting. The artist has a palette of different paints and selects them as she needs them to create her painting. So this state machine selects waveform segments as they are needed to create the overall waveform needed to send data to the chip in the format it expects. Just like a painter, the test engineer can alter the "dabs" of paint on the palette to suit his test needs, so the waveform segments can be altered and re-loaded into the palette memory from time to time to test various sensitivities the chip may have to too much overshoot, or too much undershoot, or too little difference between a 0 and a 1 (modulation index), etc. It is fully programmable because the waveform segments can be hand built by the test engineer to simulate any potential problem with the waveforms and see how it affects the chip. Currently this is the only system in the world that offers this much flexibility and programmability in the realm of RF data transmission test equipment, and it all came from my little brain. Originally I used this technique in software to create ISO14443 waveforms that were loaded into a traditional AWG. The program handled everything and allowed the user to define the Modulation Index (how much the RF signal was increased with a "1" or decreased for a "0"), how much overshoot and undershoot each transition, the width of the overshoot and overshoot, etc. Once the waveform segments were created it was easy to write the software to read the input data-stream and choose the appropriate waveform segment from my software waveform palette memory. The current state and the previous state were used to determine what segment to choose. For example, if the previous state was a "1" and the new state is also a "1" then the constant "1" waveform segment is chosen. On the other hand, if the new state is a "1" and the previous state was a "0" then the appropriate waveform segment to select is the transition from a "0" to a "1". It worked very well in software creating waveforms that I could load into the testers AWG. When we were tasked with coming up with a hardware engine to generate the waveforms in real time I transformed my software implementation to hardware schematics that were very similar to this animation.

In this animation I left out some details that might have made it harder to understand how the overall system works. If you are unfamiliar with AWGs click here to see how a simple Arbitrary Waveform Generator works.