DataQuest Solutions have built up years of experience related to the requirements for very high-speed (MHz) signal capture and waveform generation. To capture or generate signals at these speeds with a computer based system need not be a complicated process, certainly no more complicated than at slower sampling speeds, however it does bring with it some extra considerations. What follows is an explanation of these for someone new to this field or for a person who wishes for an update as to the associated technology.
When using analogue to digital conversion the binary data that represents the captured signal needs to be transferred, stored and processed, careful consideration has to be made as to the bandwidth limitations of the computers 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 converter and transmit it outwards, or when 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 e.g. 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. Most computer owners are familiar with PCI , its been around for many years, but the PCI-X version is less familiar to many people, but can be readily obtained on many motherboards and gives over twice the bandwidth for data transmission. Note - the parallel PCI-X interface should not be confused with PCI-Express (PCIe), it is a completely different interface and uses a very high speed serial data transmission. Choosing PCI, PCI-X or PCI-Express is an important consideration and as everything hinges around the ability of the chosen slot interface to have sufficient bandwidth this is an important point to investigate. Here are some typical transmission speeds with our Spectrum M2i range cards:-
PCI: 100 Mbytes/sec, PCI-X: (high speed PCI) 200 Mbytes/sec, PCIe (PCI-Express): 130 Mbytes/sec.
Note this is not the theoretical maximum which is higher, but taking into effect 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 of all note the number of bits the signal data is digitised into. This will most commonly be 8 bit (1byte) or 16 bit (2 bytes), but note that a 12 bit or 14 bit A/D or D/A converter still uses a 16 bit "word" to hold the digitised value for transfer. Now we need to convert into Mbytes, with care, as a "Mega" byte is not 1 million bytes, it is in fact 1024*1024=1048576bytes! So for example if the requirement is to digitise a waveform with an 8 bit (1 byte) converter at 100 million samples per second, bandwidth into the PC will be 100Mbytes/1048576 = 95.367.Mbytes per second. This is probably OK even for the standard PCI bus, however if the same calculation is done with a 16-bit converter this result in double the bandwidth and a PCI-X will be certainly required, unless you are willing to limit your overall acquisition period and rely more on the available instrumentation cards memory. Having the ability to use 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 of PC.
When data is transferred to or from a card using one the the interfaces just mentioned, one of the problems is obviating the effects of PC operating system "housekeeping" grabbing priority over the card data transfer. To do this, memory installed on the cards is used as a temporary FIFO (First In First Out) buffer, so that if a brief interruption does occur during data transfer with the PC, we will not have loss of data, or have to halt card operation. The FIFO buffer holds the extra data until the card has full access again to the PC and can thus catch up.
All of our Spectrum M2i cards have at least 64Mbytes of memory as
standard and can be upgraded to 4 Giga bytes, but for most situations the
standard memory used as a FIFO buffer hss enough room to allow loss free transfer.
On the PC the best place to store data, at least temporarily, is PC RAM.
Even Giga bytes of PC RAM are of a relatively low cost, so it makes for an economic
as well as a fast and efficient system. This brings us to an important point. The majority of MS
Windows based PC systems are still 32 bit and as such can work with up to 4
Giga Byte of installed PC RAM, but the operating system will take up at
least 0.5 Giga bytes of this and in reality of the remaining address space only 2
Giga bytes 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
3Giga byte in total. Fortunately with the advent of 64 bit 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 motherboard can hold - well beyond 4Gbytes and increasing all
the time.
Acquired signal data will usually end up being stored hard disk drive (HDD) and with the Spectrum M2i card driver it is even possible to do this real time with the signal capture going on, however note that the HDD is a bottleneck to really fast data capture. Even the best SATA drive might only work to 60 to 70 Mbytes/sec 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 set up is called RAID 0. Whilst reading from disk is mentioned here, 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 data rates. This can be software controlled, simply by a screen click, but at mega sample 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 relates to the use of a digital I/O card. Time stamping 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 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 most 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™, LabWindowsCVI™, 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 a ultra high speed system, DataQuest Solutions Ltd are happy to discuss your applications. Please also visit our Web site with its links to datasheets and operation notes for an extensive range of PCI/PCI-X and PCI-Express cards, plus the PXI and compact PCI chassis mounted versions, in resolutions rates 8 to 16 bit, that can be operated from 1K to 500M samples/second.
Click here for more information about PCI-X.
Click here for more information about PCI-Express.
For more information about software and programming options for our Spectrum high speed instrumentation please click here
© Dataquest Solutions 30.01.08.