PC instrumentation for very high speed signals
Capturing and/or generating megahertz signals with a computer based system need not be a complicated process, but it does require careful planning, says Mike Montague, MD of Dataquest Solutions.
When using analogue to digital conversion the binary data that represents the captured signal needs to be transferred, stored and processed, with careful consideration made as to the bandwidth limitations of the computers connection interface with the card.
This applies equally where the programmer needs to take his data and convert it into an electrical signal (waveform) using a digital to analogue convertor and transmit it outwards, or using a digital I/O card and dealing with logic signals.
Handling data associated with relatively low speed signals of 1MHz is well within the capabilities of many types of interface, such as USB, Ethernet and motherboard slot (eg PCI).
However once the waveform speed goes above about 1MHz then internal computer fitment is the most common interface to handle the greater bandwidth requirements and the type we will consider here.
Dataquest Solutions tackles the demands of very high-speed data transmission with the PC by using PCI, PCI-X and PCI-Express interfaces; for this we have our M2i range of Spectrum instrumentation cards.
To obviate the effects of the PC operating system "housekeeping" grabbing priority over the card data transfer, memory installed on the cards is used as a temporary FIFO (first-in/first-out) buffer, so that if a brief interruption occurs in data transfer with the PC, we will not have loss of data, or have to halt card operation.
Each of our Spectrum M2i cards has at least 64Mbyte of memory as standard and can be upgraded to 4Gbyte, but for most situations the standard memory is enough to allow loss-free transfer.
On the PC the best place to store data, at least temporarily, is PC RAM.
Even gigabytes of PC RAM are relatively low in cost, and so this makes for an economical as well as fast and efficient system.
This brings us to an important point.
The majority of MS Windows based PC systems are still 32bit, and so can work with up to 4Gbyte of installed PC RAM.
But the operating system will take up at least 512Mbyte of this, and in reality of the remaining address space only 2Gbyte might actually be available for signal data.
This can be extended however with special options at boot up, but don't rely on more than about 3Gbyte in total.
Fortunately with the advent of 64bit Linux and Windows operating systems - for which we can supply drivers - these restrictions need no longer apply, and the programmer can work with as much memory as his or her motherboard can hold - well beyond 4Gbyte and increasing all the time.
As everything hinges around the ability of the chosen slot interface to have sufficient bandwidth, this is the next important point to discuss.
Typical transmission speeds for M2i cards are 100 Mbyte/s using PCI, 200Mbyte/s for PCI-X or 130Mbyte/s for PCIe.
Note this is not the theoretical maximum (which is higher) but takes into account the currently available interface chips and system overheads.
The newest interface, PCI-Express, offers the greatest opportunities in terms of higher speeds in the future.
Indeed, with our Spectrum range of cards PCIe offers the advantage of allowing multiple cards to be used in the same PC without having to share available motherboard bus bandwidth.
Conversely PCI-X is still the fastest and it is possible to obtain motherboards with a number of separate PCI-X bus systems for multiple cards.
To calculate the bandwidth for your application, first note the number of bits into which the signal data are digitised.
This will most commonly be 8bit (1byte) or 16bit (2byte), but note that a 12 or 14bit A/D or D/A convertor still uses a 16bit "word" to hold the digitised value for transfer.
Now we need to convert into megabytes: but take care, as a "mega" byte is not 1 million bytes, it is in fact 1024 x 1024=1,048,576 bytes.
So for example if the requirement is to digitise a waveform with an 8bit (1byte) convertor at 100 million samples per second, bandwidth into the PC will be 100Mbyte/1,048,576 = 95.367Mbyte/s.
This is probably OK even for the standard PCI bus;, however if the same calculation is done with a 16bit convertor this will result in double the bandwidth and a PCI-X bus will be certainly required, unless you are willing to limit your overall acquisition period and rely more on the available instrumentation card memory.
The ability to use a PCI-X interface is therefore of great benefit.
This slot is commonly found on server motherboards, but these can be in a standard format for fitment into an office type PC.
Acquired signal data will usually end up being stored on a hard disk drive (HDD), and with the Spectrum M2i card driver it is even possible to do this in real time - simultaneous with the signal capture.
However, the HDD is a bottleneck to really fast data capture.
Even the best SATA drive might only work to 60 to 70Mbyte/s, and perhaps only half this rate in many cases.
One way around this is with a RAID system using two or more SATA devices working in parallel, where simultaneous access to multiple disks allows data to be written to or read from a RAID array faster than would be possible with a single drive.
Having two drives can nearly double the speed, and this setup is called RAID 0.
Reading from disk is mentioned here, although we could be working the other way around too, getting data off the disk onto a Spectrum waveform generator card.
It could also be that a number of cards of different types could be synchronised and working together in the same PC.
Perhaps an A/D, D/A and digital I/O combined.
All Spectrum M2i cards can be used in this way.
Going to the front end of our instrumentation card, signal capture or signal generation needs to be controlled, and this is normally done through triggering.
This allows a signal to be captured (or generated) only when it is needed, cutting down the amount of data required and thus datarates.
This can be software controlled, simply by a screen click, but at megasample rates triggering is normally controlled by looking at the amplitude of the analogue signal itself, or an external digital pulse, or indeed a digital pattern, should the application relate to the use of a digital I/O card.
Timestamping of the trigger is often very useful here particularly if there are multiple trigger events, so events and data can be tied together.
Spectrum hardware has this option.
So we know something of very high-speed signal data, its storage and control and related hardware issues; but it is the software driver that allows the user to set parameters and have overall control of the system.
Programming of the installed card(s) can be performed with many types of text code.
It all comes down to the drivers supplied with the instrumentation card.
The Spectrum drivers are very versatile, allowing text code programming in many types of code, most commonly Visual Basic, Delphi and C++ - the latter recommended for best performance and versatility, with many examples provided to get the programming underway.
Other third party packages can be used too, these being LabView, LabWindows CVI, Matlab, VEE, DasyLab or MS Excel.
Every Spectrum board purchased comes with SBench, a menu-driven signal capture and analysis package complete with a scope type display and easy access to board programmable options, allowing a basic working system to be up and running within a few minutes.
This is a very good way to get familiar with a new system or for simpler applications may be all that is required.
For more details and advice on putting together an ultra-high-speed system, Dataquest Solutions is happy to discuss your applications.
The company's website features links to datasheets and operation notes for an extensive range of PCI/PCI-X and PCI-Express cards, plus the PXI and CompactPCI chassis-mounted versions, in resolutions rates 8 to 16bit, that can be operated from 1Ksample/s to 0.5Gsample/s.
Not what you're looking for? Search the site.
Browse by category
- Active components (13616)
- Passive components (3614)
- Design and development (10262)
- Enclosures and panel products (4002)
- Interconnection (3675)
- Electronics manufacturing, packaging (3490)
- Industry news (2106)
- Optoelectronics (1963)
- Power supplies (3034)
- Subassemblies (5653)
- Test and measurement (5817)