Measurement system including a programmable hardware element and measurement modules that convey interface information6823283
Abstract
System and method for measurement, DAQ, and control operations. A measurement module includes measurement circuitry for performing signal conditioning and/or signal conversion, and interface circuitry which provides an interface for the measurement circuitry. A carrier unit couples to the interface circuitry of the module. A computer system couples to the carrier unit and stores one or more hardware configuration programs. The interface circuitry communicates an interface protocol describing the interface, e.g., to the carrier unit or the computer system. The computer system provides a hardware configuration program in response to the communicated interface protocol, and programs one or more programmable hardware elements on the carrier unit with the hardware configuration program. After being configured, the programmable hardware elements interface with the measurement module in accordance with the communicated interface protocol. The measurement module and the programmed carrier unit may perform together as a DAQ device, measurement device, and/or control device.
Claims
We claim:
1. A system, comprising:
a measurement module, comprising:
measurement circuitry, wherein the measurement circuitry is operable to perform one or more of signal conditioning and signal conversion; and
interface circuitry, wherein the interface circuitry is operable to provide an interface for the measurement circuitry; and
a carrier unit, operable to couple to the interface circuitry of the measurement module;
a computer system coupled to the carrier unit, wherein the computer system comprises a memory medium which stores one or more hardware configuration programs;
wherein the interface circuitry is operable to communicate an interface protocol describing the interface;
wherein the computer system is operable to provide a first hardware configuration program of the one or more hardware configuration programs in response to the communicated interface protocol;
wherein the carrier unit comprises one or more programmable hardware elements which are programmable with the first hardware configuration program, and wherein, after being configured, the one or more programmable hardware elements are operable to interface with the measurement module in accordance with the communicated interface protocol; and
wherein the measurement module and the programmed carrier unit are together operable to perform as one or mare of a DAQ device, a measurement device, and a control device.
2. The system of claim 1,
wherein the computer system is coupled to the carrier unit over a network.
3. The system of claim 1,
wherein the computer system is coupled to the carrier unit via a transmission cable.
4. The system of claim 1,
wherein the memory medium of the computer system further stores one or more software programs which are executable to generate the first hardware configuration program based on the interface protocol.
5. The system of claim 4, wherein the interface protocol comprises a graphical program, and wherein the graphical program comprises a plurality of interconnected nodes which visually indicate functionality of the graphical program.
6. The system of claim 5,
wherein the first hardware configuration program comprises a bitstream;
wherein the programmable hardware element comprises a Field Programmable Gate Array (FPGA) which is configurable with the bitstream to implement the interface protocol; and
wherein the one or more software programs being executable to generate the first hardware configuration program based on the interface protocol comprises the one or more software programs being executable to compile the graphical program to generate the bitstream for deployment on the FPGA.
7. The system of claim 1, further comprising:
wherein the memory medium of the computer system stores a measurement program which implements one or more measurement functions;
wherein the memory medium also stores a software program which is executable to deploy the measurement program on the one or more programmable hardware elements comprised in the carrier unit; and
wherein, in response to said deployment, the carrier unit is operable to perform the one or more measurement functions.
8. The system of claim 7, wherein the measurement program comprises a graphical program, and wherein the graphical program comprises a plurality of interconnected nodes which visually indicate functionality of the graphical program.
9. The system of claim 8, wherein the software program is executable to deploy the measurement program on the one or more programmable hardware elements comprised in the carrier unit by:
generating a hardware configuration program implementing the functionality of the graphical program; and
deploying the hardware configuration program onto the one or more programmable hardware elements comprised in the carrier.
10. The system of claim 1, wherein the carrier unit further comprises:
a chassis;
a backplane comprised in the chassis providing for electrical communication; and
one or more slots comprised in the chassis, wherein each of the one or more slots includes a connector that is coupled to the backplane, wherein each of the one or more slots is adapted for receiving the measurement module or another different measurement module.
11. The system of claim 10,
wherein the computer system is comprised in a controller card;
wherein the chassis further includes at least one slot for receiving a controller card; and
wherein the controller card is inserted into the at least one slot in the chassis of the carrier unit.
12. The system of claim 10,
wherein the one or more programmable hardware elements comprised in the carrier unit are comprised in a board coupled to the chassis via a transmission medium.
13. The system of claim 1, wherein the measurement module has a small form factor.
14. The system of claim 1, wherein the programmable hardware element comprises a Field Programmable Gate Array (FPGA).
15. The system of claim 1, further comprising:
a sensor, operable to couple to the measurement module;
wherein the sensor is further operable to send sensor signals to the measurement module for one or more of signal conditioning and signal conversion.
16. The system of claim 1, wherein performing signal conditioning comprises performing one or more of protection, isolation, filtering, amplification, and excitation.
17. The system of claim 1, wherein performing signal conversion comprises one or more of analog to digital (A/D) conversion and digital to analog (D/A) conversion.
18. The system of claim 1,
wherein the measurement module comprises a sensor; and
wherein the measurement module is operable to perform one or more of signal conditioning and signal conversion on sensor signals received from the sensor.
19. The system of claim 1, wherein the interface circuitry being operable to communicate the interface protocol comprises the interface circuitry being operable to communicate the interface protocol to the carrier unit upon one or more of attachment of the measurement module to the carrier unit, reset of the measurement module, reset of the carrier unit, reboot of the measurement module, and reboot of the carrier unit.
20. The system of claim 1,
wherein the interface circuitry being operable to communicate the interface protocol comprises the interface circuitry being operable to communicate an ID to the carrier unit;
wherein the carrier unit is operable communicate the ID to the computer system;
wherein the computer system is operable to retrieve the interface protocol based on the ID; and
wherein the computer system is operable to program the one or more programmable hardware elements to interface with the measurement module in accordance with the communicated interface protocol.
21. The system of claim 1,
wherein the interface circuitry being operable to communicate the interface protocol comprises the interface circuitry being operable to communicate an ID to the computer system;
wherein the computer system is operable to retrieve the interface protocol based on the ID; and
wherein the computer system is operable to program the one or more programmable hardware elements to interface with the measurement module in accordance with the communicated interface protocol.
22. A system, comprising:
a measurement module, comprising:
measurement circuitry, wherein the measurement circuitry is operable to perform one or more of signal conditioning and signal conversion; and
interface circuitry, wherein the interface circuitry is operable to provide an interface for the measurement circuitry; and
a carrier unit, operable to couple to the interface circuitry of the measurement module, comprising:
a processor and memory medium, wherein the memory medium is operable to store one or more hardware configuration programs;
wherein the interface circuitry is operable to communicate an interface protocol describing the interface;
wherein the carrier unit is operable to provide a first hardware configuration program of the one or more hardware configuration programs in response to the communicated interface protocol;
wherein the carrier unit further comprises one or more programmable hardware elements which are programmable with the first hardware configuration program;
wherein the processor is operable to program the one or more programmable hardware elements with the one or more hardware configuration programs;
wherein, after the one or more programmable hardware elements are programmed, the programmed carrier unit is operable to interface with the measurement module in accordance with the communicated interface protocol; and
wherein the measurement module and the programmed carrier unit are together operable to perform as one or more of a DAQ device, a measurement device, and a control device.
23. A method for configuring a measurement system, comprising:
inserting a first measurement module into a first slot of a carrier unit;
the first measurement module communicating first interface information to the carrier unit, wherein the interface information specifies a first interface for operating with the first measurement module;
the carrier unit communicating said first interface information to a computer system; and
the computer system programming a programmable hardware element on the carrier unit, thereby implementing the specified first interface in the carrier unit;
wherein, after said programming, the carrier unit and the first measurement module are together operable to perform one or more of a data acquisition, measurement, and control task.
24. The method of claim 23, further comprising:
the carrier unit and the first measurement module together performing one or more of a data acquisition, measurement, and control task.
25. The method of claim 23, further comprising:
removing the first measurement module from the first slot;
inserting a second measurement module into the first slot;
the second measurement module communicating second interface information to the carrier unit, wherein the second interface information specifies a second interface for operating with the second measurement module;
the carrier unit communicating said second interface information to a computer system; and
the computer system programming a programmable hardware element on the carrier unit, thereby implementing the specified second interface in the carrier unit;
wherein, after said programming, the carrier unit and the second measurement module are together operable to perform one or more of a data acquisition, measurement, and control task.
26. The method of claim 25, further comprising:
the carrier unit and the second measurement module together performing one or more of a data acquisition, measurement, and control task.
27. The method of claim 23, further comprising:
inserting a second measurement module into a second slot of the carrier unit;
the second measurement module communicating second interface information to the carrier unit, wherein the second interface information specifies a second interface for operating with the second measurement module;
the carrier unit communicating said second interface information to a computer system; and
the computer system programming a programmable hardware element on the carrier unit, thereby implementing the specified second interface in the carrier unit;
wherein, after said programming, the carrier unit and the second measurement module are together operable to perform one or more of a data acquisition, measurement, and control task.
28. The method of claim 27, further comprising:
the carrier unit and the second measurement module together performing one or more of a data acquisition, measurement, and control task.
29. The method of claim 27, further comprising:
the carrier unit and the first measurement module together performing one or more of a data acquisition, measurement, and control task; and
the carrier unit and the second measurement module together performing one or more of a data acquisition, measurement, and control task.
30. A method for configuring a measurement system, comprising:
a measurement module communicating interface information to a carrier unit, wherein the interface information specifies an interface for operating with the measurement module;
the carrier unit communicating said interface information to a computer, system; and
the computer system programming a programmable hardware element on the carrier unit, thereby implementing the specified interface in the carrier unit;
wherein, after said programming, the carrier unit and the measurement module are together operable to perform one or more of a data acquisition, measurement, and control task.
31. The method of claim 30, further comprising:
the carrier unit and the measurement module together performing one or more of a data acquisition, measurement, and control task.
32. A method for configuring a measurement system, comprising:
a measurement module communicating interface information to a carrier unit, wherein the interface information specifies an interface for operating with the measurement module;
the carrier unit programming a programmable hardware element on the carrier unit, thereby implementing the specified interface in the carrier unit;
wherein, after said programming, the carrier unit and the measurement module are together operable to perform one or more of a data acquisition, measurement, and control task.
33. The method of claim 32, further comprising:
the carrier unit and the measurement module together performing one or more of a data acquisition, measurement, and control task.
34. A method for configuring a measurement system, comprising:
a measurement module communicating interface information to a computer system, wherein the interface information specifies an interface for operating with the measurement module;
the computer system programming a programmable hardware element on a carrier unit, thereby implementing the specified interface in the carrier unit;
wherein, after said programming, the carrier unit is operable to communicate with the measurement module according to the specified interface; and
wherein, after said programming, the carrier unit and the measurement module are together operable to perform one or more of a data acquisition, measurement, and control task.
35. The method of claim 34, further comprising:
the carrier unit and the measurement module together performing one or more of a data acquisition, measurement, and control task.
36. A method for configuring a measurement system, comprising:
receiving interface information specifying an interface protocol from a measurement module; and
deploying a hardware configuration program on a programmable hardware element of a carrier unit in response to said receiving, wherein the hardware configuration program implements the interface protocol;
wherein, once the hardware configuration program is deployed on the programmable hardware element, the carrier unit is operable to communicate with the measurement module in accordance with the interface protocol.
37. The method of claim 36,
wherein the programmable hardware element comprises a Field Programmable Gate Array (FPGA); and
wherein the hardware configuration program comprises a bitstream which is deployable on the FPGA.
38. A method for configuring a measurement system, comprising:
a carrier unit receiving interface information specifying an interface protocol from a measurement module;
the carrier unit sending the interface information to a computer system;
the computer system deploying a hardware configuration program on a programmable hardware element of the carrier unit in response to said receiving, wherein the hardware configuration program implements the interface protocol;
wherein, once the hardware configuration program is deployed on the programmable hardware element, the carrier unit is operable to communicate with the measurement module in accordance with the interface protocol.
39. A method for configuring a measurement system, comprising:
a computer system receiving interface information specifying an interface protocol from a measurement module; and
the computer system deploying a hardware configuration program on a programmable hardware element of a carrier unit in response to said receiving, wherein the hardware configuration program implements the interface protocol;
wherein, once the hardware configuration program is deployed on the programmable hardware element, the carrier unit is operable to communicate with the measurement module in accordance with the interface protocol.
40. A system, comprising:
a measurement module, comprising:
measurement circuitry, wherein the measurement circuitry is operable to perform one or more of signal conditioning and signal conversion; and
interface circuitry, wherein the interface circuitry is operable to provide an interface for the measurement circuitry; and
a carrier unit, operable to couple to the interface circuitry of the measurement module, comprising:
one or more programmable hardware elements;
wherein an interface protocol corresponds to the interface circuitry;
wherein the carrier unit is operable to receive a first hardware configuration program which implements the interface protocol;
wherein the one or more programmable hardware elements are programmable with a first hardware configuration program, wherein the first hardware configuration program implements the interface protocol;
wherein, after the one or more programmable hardware elements are programmed, the programmed carrier unit is operable to interface with the measurement module in accordance with the communicated interface protocol; and
wherein the measurement module and the programmed carrier unit are together operable to perform as one or more of a DAQ device, a measurement device, and a control device.
41. The system of claim 40,
wherein the carrier unit is operable to receive the first hardware configuration program which implements the interface protocol from an external device.
42. The system of claim 40,
wherein the first hardware configuration program is generated from a graphical program.
Description
FIELD OF THE INVENTION
The present invention relates to measurement, data acquisition, and control, and particularly to measurement devices with adaptive interfaces and modular signal conditioning and conversion devices which convey interface information.
DESCRIPTION OF THE RELATED ART
Scientists and engineers often use measurement or instrumentation systems to perform a variety of functions, including laboratory research, process monitoring and control, data logging, analytical chemistry, test and analysis of physical phenomena, and control of mechanical or electrical machinery, to name a few examples. An instrumentation system typically includes transducers and other detecting means for providing "field" electrical signals representing a process, physical phenomena, equipment being monitored or measured, etc. For example, detectors and/or sensors are used to sense the on/off state of power circuits, proximity switches, pushbutton switches, thermostats, relays or even the presence of positive or negative digital logic-level signals. The instrumentation system typically also includes interface hardware for receiving the measured field signals and providing them to a processing system, such as a personal
Often, the field signals may be coupled to high common-mode voltages, ground loops, or voltage spikes that often occur in industrial or research environments which could damage the computer system. In that case, the instrumentation system typically includes isolation circuitry such as opto-couplers for eliminating ground-loop problems and isolating the computer from potentially damaging voltages. Input modules are typically provided for conditioning the raw field voltage signals by amplifying, isolating, filtering or otherwise converting the signals to the appropriate digital signals for the computer system. As one example, the digital signals are then provided to a plug-in data acquisition (DAQ) input/output (I/O) board, or a computer-based instrument which is plugged into one of the I/O slots of a computer system. Generally, the computer system has an I/O bus and connectors or slots for receiving I/O boards. Various computer systems and I/O buses may be used to implement a processing system.
Typical DAQ, measurement, and control modules include circuitry or components to provide a standard interface to external systems, such as PCI or PXI boards. The inclusion of these standard interface components on each module may be expensive, and may also substantially increase the size of a given module. Additionally, when multiple modules are used in a single system, such as a PXI based system fielding multiple sensors, the inclusion of PXI interface circuitry on each sensor is redundant and inefficient. Finally, if multiple communication interfaces are desired for the modules, the expense and size of the modules may increase dramatically with the inclusion of each additional interface card.
Therefore, improved measurement systems are desired which reduce cost and enhance efficiency and flexibility.
SUMMARY
Various embodiments of a system and method for measurement, DAQ, and control operations are described. The system may use small form-factor measurement modules in conjunction with a re-configurable carrier unit, sensors and a computer system to provide modular, efficient, cost-effective measurement solutions. In one embodiment, the measurement module is operable to communicate interface information to the carrier, which in turn informs the computer system how to program the carrier to implement the communicated interface, i.e., how to "talk" to the measurement module. In another embodiment, the carrier itself may include a processor and memory which receives the interface information from the module and programs reconfigurable hardware on the carrier to implement the interface.
This "adaptive interface" approach allows the measurement module to include only components necessary for providing the required functionality, i.e., the measurement module does not have to include hardware and software implementing standard interfaces for communication with external systems. Said another way, much of the interface responsibilities of the measurement module are assumed by the carrier, which itself is programmed by the computer system, thus the measurement module may be smaller and cheaper than typical functional modules. In the preferred embodiment, the measurement module has a small form factor. For example, in one embodiment, the measurement module may have dimensions less than or equal to approximately 1 inch by 2 inches by 3 inches. In one embodiment, the measurement module may have dimensions of approximately 0.2 inches by 1 inch by 1 inch or more. Thus, in a preferred embodiment, the measurement module has a compact form factor which may enable deployment in a variety of devices or carriers with minimal space requirements.
A typical measurement system using this approach includes a computer system coupled to a measurement or data acquisition (DAQ) device, which may include a carrier and one or more measurement modules. As used herein, the term "measurement device" is intended to include any of various types of devices that are operable to acquire and/or store data, and which may optionally be further operable to analyze or process the acquired or stored data. Examples of a measurement device include various types of instruments, such as oscilloscopes, multimeters a data acquisition device or card, a device external to a computer that operates similarly to a data acquisition card, a smart sensor, one or more DAQ or measurement modules in a chassis, and other similar types of devices. The computer system may couple to the measurement device through a serial bus, such as a USB (Universal Serial Bus), or any other medium including Ethernet, wireless media such as IEEE 802.11 (Wireless Ethernet) Bluetooth, a network, such as a Control Area Network (CAN) or the Internet, serial or parallel buses, or any other transmission means.
The host computer may comprise a CPU, a display screen, memory, and one or more input devices such as a mouse or keyboard, and may operate with the measurement device to analyze or measure data from the sensor/measurement device or to control the sensor and/or device. Alternatively, the computer may be used only to configure or program the measurement device, i.e., the carrier, as described below.
In one embodiment, the measurement module may include measurement circuitry which is operable to perform signal conditioning and/or signal conversion, e.g., a signal conditioner and/or a signal converter, such as an analog to digital converter (ADC) or a digital to analog converter. The measurement module may also include interface circuitry which is operable to provide an interface for the measurement circuitry, and which may also be operable to communicate an interface protocol to the carrier unit describing the interface, as mentioned above. The measurement module may also include additional transmission lines and/or buses for operation, e.g., a trigger line coupled to the ADC which may receive trigger signals from an external source, such as the computer system, and a power line for supplying power to the measurement module.
The measurement module may be further operable to couple to a sensor or actuator. The sensor may receive signals from a device or unit under test (UUT) and may send sensor signals to the measurement module for one or more of signal conditioning and signal conversion. For example, the sensor may measure a phenomenon, such as temperature, pressure, voltage, current, or any other phenomenon, and send signals to the measurement module. The signal conditioner comprised in the measurement module may then perform signal conditioning on the signals, where signal conditioning may include one or more of protection, isolation, filtering, amplification, and excitation, or other signal conditioning operations. The conditioned signals may then be processed by the signal converter, also comprised in the measurement module, which may be operable to perform one or more of analog to digital (AID) conversion and digital to analog (D/A) conversion of the signal, depending on whether the signal is analog or digital. The conditioned, converted signals may then be transmitted by the interface circuitry to the carrier using the specified interface protocol. In other words, the measurement module may transmit the conditioned, converted signals to the carrier over the serial transmission medium SPI. The carrier may then further analyze the signals or transmit the signals to an external system, such as computer system.
In a preferred embodiment, the carrier includes a functional unit, e.g., a processor and memory or a programmable hardware element, which may be programmed by the computer system, or in other embodiments, by a processor and memory on the carrier. As used herein, the term "processor" is intended to include any of types of processors, CPUs, microcontrollers, or other devices capable of executing software instructions. As used herein, the term "programmable hardware element" is intended to include various types of programmable hardware, reconfigurable hardware, programmable logic, or field-programmable devices (FPDs), such as one or more FPGAs (Field Programmable Gate Arrays), or one or more PLDs (Programmable Logic Devices), such as one or more Simple PLDs (SPLDs) or one or more Complex PLDs (CPLDs), or other types of programmable hardware.
As mentioned above, the carrier unit is operable to receive interface protocol information from the measurement module specifying how to operate or interface with the measurement module. In one embodiment, the carrier unit may then communicate the interface protocol information to the computer system. Alternatively, the measurement module may communicate the interface protocol information directly to the computer system. Based on the interface protocol information, the computer system may program or configure the functional unit on the carrier unit to implement the interface as specified by the measurement module. In other words, the measurement module may tell the carrier how to "talk" with it, and the carrier may then tell the computer system how to program the carrier to communicate with the measurement module accordingly (or the measurement module may tell the computer system directly how to program the carrier). The computer system may then program the carrier (i.e., the carrier's functional unit), thereby implementing the interface specified in the interface protocol information communicated by the measurement module.
As noted above, in another embodiment, the carrier unit may be operable to receive the interface protocol information from the measurement module, and a processor and memory on the carrier unit may then program or configure the functional unit on the carrier unit to implement the interface as specified by the measurement module. In other words, the measurement module may communicate its interface protocol to the carrier, and the carrier may program itself (i.e., a processor/memory on the carrier may program a programmable hardware element) to communicate with the measurement module accordingly, thereby implementing the interface specified in the interface protocol information communicated by the measurement module.
This process may be referred to as initialization of the measurement module/carrier. The configured carrier and the measurement module may then be operable to perform measurement and data acquisition operations using the sensor and/or the computer system. In other words, the measurement module and the programmed carrier unit together may be operable to perform a measurement device (including a DAQ device), and/or a control device.
In one embodiment, the computer system may also store a program implementing one or more measurement functions, i.e., a measurement program. The measurement program may be a graphical program implementing the one or more measurement functions. The computer system may be operable to execute the measurement program to perform the one or more measurement functions, preferably in conjunction with operation of the carrier and/or measurement module, including analysis of data or signals received from the carrier, control of carrier and/or measurement module operations, and user interface functions, among others.
In another embodiment, the computer system may be operable to deploy the measurement program onto the functional unit of the carrier unit. In other words, in addition to, or instead of, programming the carrier unit to implement the interface, the computer system may download the measurement program onto the functional unit of the carrier, after which the carrier may be operable to execute the measurement program to perform the one or more measurement functions, preferably in conjunction with operation of the measurement module, and possibly the computer system. The configured carrier and the measurement module may then be operable to perform measurement and data acquisition operations using the sensor and/or the computer system.
In one embodiment, the carrier may also process and/or analyze the signals, and send the results of the processing or analysis to the computer system for storage and/or further analysis.
In various embodiments, the measurement module may also include a functional unit, e.g., a processor (or microprocessor) and memory, or a programmable hardware element (e.g., an FPGA), which may be operable to implement the module side of the specified interface and/or control module operations. Thus, the measurement module may include measurement circuitry, e.g., the signal conditioner and/or the signal converter (e.g., ADC or DAC), which may be operable to perform one or more of signal conditioning and signal conversion, as well as interface circuitry (including the functional unit) which is operable to provide an interface for the measurement circuitry. More specifically, the functional unit of the measurement module may retrieve the interface protocol information from memory and communicate the interface protocol information to the carrier.
In one embodiment, the measurement module may include signal input terminals for receiving analog inputs, e.g., from a sensor, and for optionally receiving a Transducer Electronic Data Sheet (TEDS) describing the functionality of the transducer (e.g., sensor) in machine-readable form. The measurement module may further include isolation circuitry which may be operable to protect the components of the measurement module from spurious signals, signal noise, harmful voltage and/or current surges, impedance mismatches, and the like.
The measurement module may also include terminals for communicating with external systems such as the computer system, including SPI, trigger line(s), power and ground lines, among others.
In one embodiment, the measurement module may be in the form of a measurement cartridge and the carrier in the form of a cartridge carrier which is operable to receive one or more of the measurement cartridges. For example, the carrier unit may comprise a chassis, a backplane comprised in the chassis providing for electrical communication, and one or more slots comprised in the chassis. Each of the one or more slots may include a connector that is coupled to the backplane, where each of the one or more slots may be adapted for receiving a measurement module. Thus, the carrier may host a plurality of measurement cartridges, each of which may provide measurement and/or control functionality for a measurement or control operation or task. The carrier may be operable to communicate with each measurement cartridge (i.e., module) and be programmed or configured (e.g., by the computer system or by a processor on the carrier) to implement the respective interface of each measurement cartridge. In this manner a suite of sensors may be fielded, each of which feeds signals to a respective measurement cartridge which in turn communicates through a respective interface (protocol) with the cartridge carrier. The cartridge carrier may in turn couple to a computer system. Thus, the carrier may support a heterogeneous plurality of interfaces without having to include a heterogeneous set of interface hardware components.
In a preferred embodiment, the measurement modules (or cartridges) may be easily removed, added, and replaced. In other words, measurement modules may be exchanged to change the configuration or capabilities of the measurement system. In one embodiment, the measurement module may be replaced without powering down the measurement system, i.e., the measurement module may be "hot-plugged" into the carrier, where the measurement module may communicate the interface protocol information to the carrier upon attachment, and the carrier is programmed in response, as described above. In another embodiment, the measurement module and/or carrier may require a reboot or reset after attachment to perform the described initialization. Thus, the interface circuitry (i.e., the measurement module) may be operable to communicate the interface protocol to the carrier unit upon one or more of attachment of the measurement module to the carrier unit, reset of the measurement module, reset of the carrier unit, reboot of the measurement module, and reboot of the carrier unit.
In one embodiment, the carrier may comprise a PXI card, i.e., may be implemented on a PXI card. The PXI card may be operable to plug into a PXI chassis or a suitably equipped computer system, and may implement the carrier functionality described above, i.e., the PXI card may include (in addition to PXI interface circuitry, memory, etc.) a functional unit which is programmable or configurable to implement an interface based on interface protocol information transmitted from a coupled measurement module, as described above. It should be noted that other card based implementations besides the PXI card implementation are also contemplated, for example, PCI, VXI, Infiniband, or other protocols or platforms may be used to implement a carrier, the PXI card embodiment being but one example.
In one embodiment, the carrier unit may comprise or be coupled to a Personal Digital Assistant (PDA). Thus the PDA may comprise the carrier unit and include one or more slots for measurement modules. Alternatively, the carrier unit may be in the form of an optionally detachable carrier module, which may in turn couple to a measurement module. The measurement module may in turn be operable to couple to a sensor or actuator, as described above. In one embodiment, the PDA may be operable to program the carrier (i.e., the carrier unit's functional unit) with the interface protocol information provided by the measurement module, as described in detail above, and may be further operable to provide functionality related to a measurement, and/or control task or operation. In another embodiment, the PDA may be used as an interface to another computer system. For example, a suitably equipped PDA may provide wireless communication for the carrier/measurement module.
In one embodiment, the measurement system may include a measurement module coupled to a "RIO" Reconfigurable I/O carrier, also referred to as a generalized carrier. As used herein, the term "RIO" carrier refers to a carrier which includes reconfigurable hardware which is configurable with respective interface protocols for one or more cartridges. In other words, a RIO carrier with multiple cartridge slots may be configured with multiple interfaces for inserted cartridges, such that each cartridge's interface is implemented by the RIO carrier. For example, if three cartridges with three different respective interfaces are inserted in three slots of the RIO carrier, then the RIO carrier may be configured to implement the three interfaces. Similarly, if multiple cartridges are sequentially inserted into and removed from a particular slot, the RIO carrier may be configured respectively for each cartridge, i.e., sequentially. The RIO carrier may further be operable to couple to any of various products or platforms.
In one embodiment, a channel or bus may be provided by the RIO carrier for each cartridge/interface protocol. In other words, each slot may have an associated dedicated bus for that slot, with a corresponding portion of the RIO carrier's reconfigurable hardware configurable to implement the interface for a cartridge inserted into the slot. In another embodiment, the RIO carrier may include a shared bus or backplane common to a plurality of the slots, where inserted cartridges may communicate through the common bus or backplane with the reconfigurable hardware of the RIO carrier in accordance with the respective interface protocols implemented on the reconfigurable hardware.
In yet another embodiment, the RIO carrier may be configurable to include not only the adaptive interface functionality described above, but may also include or may be configured to include, one or more measurement and/or control functions. For example, the carrier may perform all or a portion of timing, triggering, and synchronization functions for inserted cartridges or modules.
In one embodiment, the RIO carrier may include the carrier components/functionality described above, and may also include a register set, through which communication with the products/platforms may be effected. In various embodiments, the RIO carrier may provide additional functions which may include I/O scanning, timing and triggering, power-on states, logic, digital I/O timing/counting, data transfer and support for parallel and scanned backplanes, among others. Various products and platforms may provide means for the carrier to communicate with external systems. For example, an Application Programming Interface (API) may allow external systems to read and/or write to the registers in the register set to communicate and/or control the measurement system. For another example, a processor, e.g., a micro-controller, and a network interface card may couple the registers to a network through which communications with external systems may be facilitated.
In one embodiment, RIO based systems, i.e., a RIO carrier, may be extended with external I/O expansion, i.e., with additional I/O connections for coupling to a plurality of measurement modules. A RIO cartridge or card may provide connectors for analog I/O and/or digital I/O. The digital I/O may be coupled to an I/O expansion device, such as a breakout backplane, which may provide connectivity for a plurality of measurement module cards or cartridges, and may thereby be operable to facilitate external, synchronized, and conditioned I/O for the measurement system.
In another embodiment, the RIO card or device may couple to an addressable backplane, for example, through an SPI with slot select capabilities, and which may provide a plurality of individually addressable slots for a plurality of measurement modules or cartridges, which may each be individually targeted for communication by the carrier. Additionally, the addressable backplane may be expandable, i.e., additional addressable backplanes may be coupled to the addressable backplane to provide additional slots for additional measurement modules.
In yet another embodiment, the RIO card or device may couple to a "measurement module in the cable", where a measurement module may be comprised in a cable connector. In other words, the features of a measurement module, as described above, may be included in one or both connectors of a cable which may be coupled to the RIO device or to a sensor/actuator, as desired.
Thus, the use of measurement modules in combination with a variety of platforms, carrier units, and computer systems provides a broad range of approaches for efficient and affordable measurement systems, including established platforms such as PCI/PXI and FieldPoint, generalized carriers such as RIO, new USB/Ethernet devices, and small networked measurement nodes (e.g., smart sensors) for highly distributed measurement systems. These systems may provide for efficient, low-cost, modular, data acquisition, control, and integrated signal conditioning and conversion, as well as interfaces to sensors and actuators, including plug and play (PnP) sensors, and may do so using a small form factor.
BRIEF DESCRIPTION OF THE DRAWINGS
A better understanding of the present invention can be obtained when the following detailed description of the preferred embodiment is considered in conjunction with the following drawings, in which:
FIG. 1A illustrates a measurement system, according to one embodiment of the invention;
FIG. 1B illustrates a networked measurement system including a server computer system, according to one embodiment of the invention;
FIG. 2 is a block diagram of a networked measurement system computer system, according to one embodiment of the invention;
FIGS. 3A and 3B are block diagrams of two embodiments of a computer system;
FIGS. 4A and 4B are block diagrams of embodiments of a measurement module;
FIGS. 5A and 5B illustrate a measurement module, according to one embodiment;
FIG. 5C illustrates a hardware layout of a measurement module, according to one embodiment of the invention;
FIG. 6 is a block diagram of a carrier with multiple measurement modules, according to one embodiment of the invention;
FIG. 7A illustrates a cartridge carrier with measurement cartridges, according to one embodiment of the invention;
FIG. 7B illustrates a cartridge carrier with measurement cartridges, according to another embodiment of the invention;
FIGS. 7C and 7D illustrate embodiments of measurement cartridges used in RIO systems;
FIG. 8A is a block diagram of a cartridge carrier in a RIO system with separate cartridge channels, according to one embodiment;
FIG. 8B is a block diagram of a cartridge carrier in a RIO system with a shared cartridge bus, according to one embodiment;
FIG. 9 is a block diagram of a cartridge carrier, according to one embodiment;
FIG. 10A is a block diagram of a cartridge controller, according to one embodiment;
FIGS. 10B and 10C illustrate SPI signal timing, according to one embodiment;
FIG. 11A is a block diagram of a measurement system using re-configurable I/O (RIO), according to one embodiment of the invention;
FIG. 11B is a block diagram illustrating functional partitions of a RIO measurement system with measurement modules, according to one embodiment;
FIG. 12A illustrates a PXI carrier card, according to one embodiment of the invention;
FIG. 12B illustrates a PDA based measurement system, according to one embodiment of the invention;
FIG. 12C illustrates various embodiments of a RIO based system with I/O expansion;
FIG. 12D illustrates various sensor/measurement systems according to the present invention;
FIG. 13 illustrates the use of measurement modules in the context of current measurement systems;
FIG. 14 is a flowchart of a method for configuring a measurement system, according to one embodiment;
FIG. 15 is a flowchart of another method for configuring a measurement system, according to one embodiment;
FIG. 16 is a flowchart of a method for performing a measurement function, according to one embodiment;
FIG. 17 is a flowchart of a method for registering a measurement cartridge bitstream with a measurement module interface protocol (MMIP) server;
FIG. 18 is a flowchart of a method for configuring a measurement cartridge;
FIG. 19 illustrates communication layers and interfaces in the measurement system, according to one embodiment;
FIG. 20 illustrates a high-level architecture of a standard measurement system interface, according to one embodiment;
FIGS. 21-30 are timing diagrams for defined methods supported by the measurement system, according to one embodiment;
FIG. 31 illustrates one embodiment of a measurement module pinout specification, according to one embodiment;
FIGS. 32A and 32B illustrate SPI signal timing, according to one embodiment;
FIGS. 33A-33C are example circuit diagrams for various measurement modules, according to one embodiment;
FIGS. 33D-33G are example circuit diagrams for various measurement module/RIO FPGA configurations, according to one embodiment;
FIGS. 34A-34E illustrate representations of setup information for various measurement modules, according to one embodiment;
FIG. 35 is a block diagram for a serial communication block, according to one embodiment;
FIG. 36 illustrates a sequence list configuration, according to one embodiment;
FIG. 37 illustrates an SPI rate description format, according to one embodiment;
FIG. 38 illustrates a sequence command list file format, according to one embodiment; and
FIG. 39 illustrates one embodiment of a carrier logic configuration for synchronizing multiple delta-sigma converters.
While the invention is susceptible to various modifications and alternative forms specific embodiments are shown by way of example in the drawings and may herein be described in detail. It should be understood however, that drawings and detailed description thereto are not intended to limit the invention to the particular form disclosed. But on the contrary the invention is to cover all modifications, equivalents and alternative following within the spirit and scope of the present invention as defined by the appended claims.
DETAILED DESCRIPTION OF THE EMBODIMENTS
Incorporation by Reference
The following U.S. Patents and patent applications are hereby incorporated by reference in their entirety as though fully and completely set forth herein.
U.S. Pat. No. 4,914,568 titled "Graphical System for Modeling a Process and Associated Method," issued on Apr. 3, 1990.
U.S. Pat. No. 6,219,628 titled "System and Method for Configuring an Instrument to Perform Measurement Functions Utilizing Conversion of Graphical Programs into Hardware Implementations".
U.S. Pat. No. 6,173,438 titled "Embedded Graphical Programming System" filed Aug. 18, 1997, whose inventors are Jeffrey L. Kodosky, Darshan Shah, Samson DeKey, and Steve Rogers.
U.S. Provisional Patent Application Serial No. 06/312,254 titled "Measurement System with Modular Measurement Modules That Convey Interface Information" filed on Aug. 14, 2001, whose inventors are Perry Steger, Garritt W. Foote, David Potter and James J. Truchard.
U.S. patent application Ser. No. 10/195,051 titled "Measurement System with Modular Measurement Modules That Convey Interface Information" filed on Jul. 12, 2002, whose inventors are Perry Steger, Garritt W. Foote, David Potter and James J. Truchard.
U.S. patent application Ser. No. 10/194,927 titled "Measurement Module Interface Protocol Database and Registration System" filed on Jul. 12, 2002, whose inventors are Perry Steger, Garritt W. Foote, David Potter and James J. Truchard.
U.S. patent application Ser. No. 09/891,571 titled "System and Method for Configuring an Instrument to Perform Measurement Functions Utilizing Conversion of Graphical Programs into Hardware Implementations" filed on Jun. 25, 2001, whose inventors are Jeffrey L. Kodosky, Hugo Andrade, Brian Keith Odom, Cary Paul Butler, and Kevin L. Schultz.
U.S. patent application Ser. No. 09/745,023 titled "System and Method for Programmatically Generating a Graphical Program in Response to Program Information," filed Dec. 20, 2000, whose inventors are Ram Kudukoli, Robert Dye, Paul F. Austin, Lothar Wenzel and Jeffrey L. Kodosky.
U.S. patent application Ser. No. 09/595,003 titled "System and Method for Automatically Generating a Graphical Program to Implement a Prototype", filed Jun. 13, 2000, whose inventors are Nicolas Vazquez, Jeffrey L. Kodosky, Ram Kudukoli, Kevin L. Schultz, Dinesh Nair, and Christophe Caltagirone.
FIGS. 1A and 1B--a Measurement System
FIGS. 1A and 1B illustrate embodiments of a computer system 102 coupled to a measurement or data acquisition (DAQ) device 107. As used herein, the term "measurement device" is intended to include instruments, smart sensors, data acquisition devices or boards, and any of various types of devices that are operable to acquire and/or store data. A measurement device may also optionally be further operable to analyze or process the acquired or stored data. Examples of a measurement device include an instrument, such as a computer-based instrument (instrument on a card) an external instrument a data acquisition card, a device external to a computer that operates similarly to a data acquisition card, a smart sensor, one or more DAQ or measurement modules in a chassis, an image acquisition device such as an image acquisition board or smart camera, a motion control device and other similar types of devices. Exemplary instruments include oscilloscopes, multi-meters, and GPIB, PCI, PXI, and VXI instruments, among others.
In the embodiment of FIG. 1A, the computer system 102 may couple to the measurement device through a transmission medium, e.g., a serial bus, such as a USB 109. It should be noted that although a USB 109 is shown in this example, any other transmission medium may be used, including Ethernet, wireless media such as IEEE 802.11 (Wireless Ethernet) or (Bluetooth, a network, such as a fieldbus, a Control Area Network (CAN) or the Internet, serial or parallel buses, or other transmission means. For example, in the embodiment of FIG. 1B, the measurement device 107 is coupled to a server computer system 102 over a network 104, such as the Internet. In one embodiment, the server computer 102 may comprise a measurement module interface protocol (MMIP) server 102 A which is operable to store a plurality of MMIPs for use by the measurement device. The MMIP server may be accessed by the measurement device 107 to retrieve the MMIP, as described in more detail below. In another embodiment, the MMIP server may be separate from the computer system 102, and the measurement device 107 (or the computer system 102) may retrieve the MMIP from the server 102A.
Thus, FIGS. 1A and 1B illustrate an exemplary data acquisition or measurement system. As FIGS. 1A and 1B show, the measurement device 107 may in turn couple to or comprise a sensor or actuator 112, such as a pressure or temperature gauge, a thermocouple, an imaging device, (e.g. a camera), or any other type of sensor or actuator. As shown in FIG. 1C, the measurement device 107 may include a measurement module (or multiple measurement modules) comprised in a chassis for performing one or more measurement (including) or processing functions as described below.
The host computer 102 may comprise a CPU, a display screen, memory, and one or more input devices such as a mouse or keyboard as shown. The computer 102 may operate with the measurement device 107 to analyze or measure data from the sensor 112 and/or measurement device 107 or to control the sensor 112 and/or measurement device 107. Alternatively, the computer 102 may be used only to configure or program the measurement device 107, as described below.
FIG. 2--Block Diagram of a Measurement System
FIG. 2 is a block diagram of a measurement system, according to another embodiment of the invention. As FIG. 2 shows, the measurement device 107 may comprise a carrier 110 and a measurement module 108. The sensor 112 may be coupled to the measurement module 108 which may in turn be coupled to the carrier unit 110, also referred to as carrier 110. The carrier 110 may be coupled to computer system 102 via a network (e.g., the Internet) 104 as shown, or, as mentioned above, may be coupled to the computer system 102 by other transmission means, including serial or parallel bus, wireless, and CAN, among others. In an embodiment where the carrier 110 includes a processor and memory, the carrier may operate independent of the computer 102, as describe in more detail below.
The measurement module 108 and the carrier 110 together may provide the functionality of the measurement device 107 of FIG. 1A. For example, in one embodiment, the measurement module 108 may be operable to perform signal conditioning and/or signal conversion on the signals sent by the sensor 112, and to transmit results of such processing on to the carrier 110. In one embodiment, the carrier 110 may be operable to receive data from the measurement module 108 and communicate the data (possibly in a different format or form) to the computer system 102, e.g., over the transmission medium 104. For example, the carrier 110 may receive signal data in a proprietary format from the measurement module 108 and format the data for transmission over wireless Ethernet to the computer system 102.
In the preferred embodiment, the carrier 110 includes a functional unit 106, which may be programmed, for example, by computer system 102 or by a processor/memory comprised in the carrier itself. As used herein, the term "functional unit" may include a processor and memory and/or a programmable hardware element. As used herein, the term "processor" is intended to include any of types of processors, CPUs, microcontrollers, or other devices capable of executing software instructions. As used herein, the term "programmable hardware element" is intended to include various types of programmable hardware, reconfigurable hardware, programmable logic, or field-programmable devices (FPDs), such as one or more FPGAs (Field Programmable Gate Arrays), or one or more PLDs (Programmable Logic Devices), such as one or more Simple PLDs (SPLDs) or one or more Complex PLDs (CPLDs), or other types of programmable hardware. Thus, the carrier unit 110 may be re-configurable, i.e., programmable by an external computer system, such as computer system 102.
More specifically, in the preferred embodiment, the carrier unit 110 may be operable to receive interface protocol information from the measurement module 108 specifying how to operate or interface with the measurement module 108. In one embodiment, the carrier unit 110 may then communicate the interface protocol information to the computer system 102. Alternatively, measurement module may communicate the interface information directly to the computer system. Based on the interface protocol information, the computer system 102 may program or configure the functional unit 106 on the carrier unit 110 to implement the interface as specified by the measurement module 108. In other words, the measurement module 108 may tell the carrier 110 how to "talk" with it, and the carrier 110 may then tell the computer system 102 how to program the carrier 110 to communicate with the measurement module 108 accordingly (or the measurement module may tell the computer system directly how to program the camera. The computer system 102 may then program the carrier 110 (i.e., the carrier's functional unit 106), thereby implementing the interface specified in the interface protocol information communicated by the measurement module 108.
In another embodiment, the carrier unit 110 may be operable to receive the interface protocol information from the measurement module 108, and a processor and memory on the carrier unit 110 may then program or configure the functional unit on the carrier unit 110 to implement the interface as specified by the measurement module. In other words, the measurement module may communicate its interface protocol to the carrier, and the carrier may program itself (i.e., the processor/memory on the carrier 110 may program a programmable hardware element on the carrier 110) to communicate with the measurement module accordingly, thereby implementing the interface specified in the interface protocol information communicated by the measurement module.
This process may be referred to as initialization of the measurement module/carrier. Further details of this process are described below.
Referring again to FIG. 2, the computer 102 may include a memory medium on which computer programs according to the present invention may be stored. As used herein, the term "memory medium" includes a non-volatile medium, e.g., a magnetic media or hard disk, or optical storage; a volatile medium, such as computer system memory, e.g., random access memory (RAM) such as DRAM, SRAM, EDO RAM, RAMBUS RAM, DR DRAM, etc.; or an installation medium, such as a CD-ROM or floppy disks, on which the computer programs according to the present invention may be stored for loading into the computer system. The term "memory medium" may also include other types of memory or combinations thereof.
The memory medium may be comprised in the computer 102 where the programs are executed or may be located on a second computer which is coupled to the computer 102 through a network, such as a local area network (LAN), a wide area network (WAN), or the Internet. In this instance, the second computer operates to provide the program instructions through the network to the computer 102 for execution. Also, the computer system 102 may take various forms, including a personal computer system, mainframe computer system, workstation, network appliance, Internet appliance, personal digital assistant (PDA), television set-top box, instrument, or other device. In general, the term "computer system" can be broadly defined to encompass any device having at least one processor which executes instructions from a memory medium.
Thus, in various embodiments, software programs of the present invention may be stored in a memory medium of the respective computer 102, or in a memory medium of another computer, and executed by the CPU. The CPU executing code and data from the memory medium thus comprises a means for receiving interface protocol information and programming or configuring the carrier 110 to implement the specified interface, as described in more detail below.
In one embodiment, the computer system 102 may also store a program implementing one or more measurement functions, i.e., a measurement program, e.g., a software program, such as a graphical program, implementing the one or more measurement functions. The term "measurement function" may include measurement, data acquisition, and/or control functions, such as displaying received data, analyzing and/or processing received data to generate a result, performing signal processing on received data, or otherwise analyzing and/or processing received data to perform a measurement. Examples of measurement functions include various instrumentation functions or control functions.
In the present application, the term "graphical program" or "block diagram" is intended to include a program comprising graphical code, e.g., two or more nodes or icons interconnected in one or more of a data flow, control flow, or execution flow format, where the interconnected nodes or icons may visually indicates the functionality of the program. Thus the terms "graphical program" or "block diagram" are each intended to include a program comprising a plurality of interconnected nodes or icons which visually indicates the functionality of the program. A graphical program may comprise a block diagram and may also include a user interface portion or front panel portion. The user interface portion may be contained in the block diagram or may be contained in one or more separate panels or windows. A graphical program may be created using any of various types of systems which are used to develop or create graphical code or graphical programs, including LabVIEW, DASYLab, and DiaDem from National Instruments, Visual Designer from Intelligent Instrumentation, Agilent VEE (Visual Engineering Environment), Snap-Master by HEM Data Corporation, SoftWIRE from Measurement Computing, ObjectBench by SES (Scientific and Engineering Software), Simulink from the MathWorks, WiT from Coreco, Vision Program Manager from PPT Vision, Hypersignal, VisiDAQ, VisSim, and Khoros, among others. In the preferred embodiment, the system uses the LabVIEW graphical programming system available from National Instruments.
The computer system 102 may be operable to execute the measurement program to perform the one or more measurement functions, preferably in conjunction with operation of the carrier 110 and/or measurement module 108. For example, the measurement program may be executable to perform one or more of measurement or control functions, including analysis of data or signals received from the carrier, control of carrier and/or measurement module operations, user interface functions, image processing or machine vision functions, and motion control functions, among others.
In another embodiment, the computer system may be operable to deploy the measurement program onto the functional unit 106 of the carrier unit 110. In other words, in addition to, or instead of, programming the carrier unit 110 to implement the interface, the computer system may download the measurement program onto the functional unit of the carrier. After deploying a software program on the functional unit 106 the carrier 110 may be operable to execute the measurement program to perform the one or more measurement functions, preferably in conjunction with operation of the measurement module 108, and possibly the computer system 102.
The configured carrier 110 and the measurement module 108 may then be operable to perform measurement operations using the sensor 112 and/or the computer system 102.
FIGS. 3A and 3B--Computer Block Diagrams
FIGS. 3A and 3B are exemplary block diagrams of the computer 102 of FIGS. 1A and 1B, respectively. The elements of a computer not necessary to understand the operation of the present invention have been omitted for simplicity. The computer 102 may include at least one central processing unit (CPU) or processor 160 which is coupled to a processor or host bus 162. The CPU 160 may be any of various types, including an x86 processor, a PowerPC processor, a CPU from the Motorola family of processors, a CPU from the SPARC family of RISC processors, as well as others. Main memory 166 may be coupled to the host bus 162 by means of memory controller 164. The main memory 166 is operable to store one or more programs according to the present invention. For example, the memory medium 164 may store a program which is executable to use interface protocol information received from the carrier 110 to program or configure the functional unit 106 comprised in the carrier 110. The main memory 166 may also store operating system software, i.e., software for operation of the computer system, as well as one or more application programs, as is well known to those skilled in the art. In addition, the main memory 166 may store one or more measurement programs which are executable to perform DAQ, measurement, and/or control tasks.
The host bus 162 is coupled to an expansion or input/output bus 170 by means of a bus controller 168 or bus bridge logic. The expansion bus 170 is preferably the PCI (Peripheral Component Interconnect) expansion bus, although other bus types may be used. The expansion bus 170 may include slots for various devices, the examples shown including a controller 186, e.g., a USB controller 186, shown in FIG. 3A coupled to the carrier 110 (as also shown in FIG. 1A), and a network controller 184 shown in FIG. 3B coupling to the carrier 110 over a network, as described above with reference to FIG. 1B. In both embodiments shown, the carrier 110 is coupled to a measurement module 108 (or multiple measurement modules), which may itself be coupled to a sensor 112 as shown.
The computer 102 may further comprise a video display subsystem 180 and hard drive 182 coupled to the expansion bus 170, also shown. It should be noted that the network controller 184 may be any type of network controller, including Ethernet, wireless Ethernet, Bluetooth, and CAN, among others. Furthermore, the USB controller shown is meant to be illustrative only, i.e., any other type of controller may be used as desired to communicate with the carrier 110. In other embodiments, the controller 186 may be comprised in the bus controller 168, or may be implemented in any other forms customary and known in the art. Of course, the embodiments shown in FIGS. 3A and 3B may be combined in various ways, such as, for example, coupling to a first carrier through a controller, and coupling to a second carrier via a network.
FIGS. 4A and 4B--Measurement Modules with a Functional Unit
FIGS. 4A and 4B are block diagrams of embodiments of a measurement module 108 where the measurement module 108 includes one or more functional units 106. As mentioned above, a functional unit refers to either a processor 306 and memory (or multiple processors and/or memories) or one or more programmable hardware elements 308, such as an FPGA, or various combinations thereof.
FIG. 4A--A Measurement Module with Processor
FIG. 4A is a block diagram of a measurement module 108 A including a processor 306, e.g., a micro-controller. As FIG. 4A shows, the measurement module 108 A may include measurement circuitry which is operable to perform one or more of signal conditioning and signal conversion. For example, in one embodiment, the measurement circuitry may include a signal conditioner 302 and/or a signal converter 304, such as an analog to digital converter (ADC) 304, as shown. In other embodiments, the signal converter 304 may comprise a digital to analog converter, or other types of signal converter, as desired.
The measurement module 108 A may also include interface circuitry which is operable to provide an interface for the measurement circuitry. In one embodiment, the interface circuitry may be operable to couple to a carrier unit 110, and may also be operable to communicate an interface protocol to the carrier unit 110 describing the interface.
In the embodiment shown in FIG. 4A, the interface circuitry includes micro-controller 306 and memory 307, such as an EEPROM 307, containing a DAQ Electronic Data Sheet (EDS), defined by IEEE 1451.2, and an optional calibration history.
IEEE 1451.2 defines an interface between transducers and microprocessors useful in industrial automation and other fields. The standard defines a physical interface comprising a data transport serial link, in addition to triggering, interrupt and hot swap signaling. The standard also defines a transducer electronic data sheet, TEDS, that describes the functionality of the transducer in machine-readable form. The interface supports as many as 255 independent transducer channels. These may be accessed individually or as a unit. The standard may be used to implement a variety of measurement functions.
In one embodiment, the memory storing the DAQ-EDS 307 may also store program instructions for the processor 306. In another embodiment, the measurement module 108 A may include additional memory, not shown, for storing the program instructions. The program instructions may be executable by the processor 306 to implement the measurement module side of the interface and/or to manage operations of the measurement module 108A. In another embodiment, the program instructions may be executable by the processor 306 to perform a measurement task or operation.
In one embodiment, as described above, the carrier unit 110 may include the functional unit 106, such as micro-controller or FPGA which is programmable to interface with the measurement module in accordance with the communicated interface protocol. In other words, the carrier unit 110 may comprise an adaptive interface which uses the functional unit 106 to implement an interface according to instructions or specifications from the measurement module 108. The measurement module 108 and the programmed carrier unit 110 together may then be operable to perform as one or more of a measurement device and a control device.
As described above, in one embodiment, the carrier unit 110 may be operable to couple to a computer system, i.e., computer system 102, which is operable to program the one or more functional units to interface with the measurement module in accordance with the communicated interface protocol. In other words, the computer system 102 may retrieve or receive the interface protocol information from the carrier, or from the measurement module 108 A and program the carrier 110, i.e., the functional unit(s) 106 on the carrier unit 110, thereby implementing the interface protocol for communication with and operation of the measurement module 108 A. As mentioned above, in one embodiment, the computer system 102 may be operable to couple to the carrier unit 110 over a network, such as the Internet, thus the carrier unit 110 may be programmed remotely by the computer system 102. As also mentioned above, in one embodiment, the computer system may comprise a Personal Digital Assistant (PDA), as described below, or any other type of computing device.
In another embodiment, the computer system 102 may be comprised in the carrier unit. For example, the computer may be a "computer-on-a-card" or "computer-on-a-chip", where substantially all of the functionality of a PC (personal computer) is provided by components on a computer card, board or chip contained in the carrier unit 110. In this embodiment, the module 108 may communicate the interface protocol to the carrier 110, and a processor/memory on the carrier 110 may program the functional unit on the carrier 110 with the interface protocol.
The measurement module 108, as described above, may be further operable to couple to a sensor 112. The sensor 112 may send sensor signals to the measurement module for one or more of signal conditioning and signal conversion. For example, the sensor 112 may measure a phenomenon, such as temperature, pressure, voltage, current, or any other phenomenon, and send signals to the measurement module, as indicated by the analog input 310 of FIG. 4A. The signal conditioner 302 may then perform signal conditioning on the signals, where signal conditioning may include one or more of protection, isolation, filtering, amplification, and excitation, or other signal conditioning operations.
The conditioned signals may then be processed by the signal converter 304, which may be operable to perform one or more of analog to digital (A/D) conversion and digital to analog (D/A) conversion. In this embodiment, the input is analog (310), therefore the signal converter 304 is an ADC 304, as shown.
The conditioned converted signals may then be transmitted by the interface circuitry to the carrier 110 using the specified interface protocol. In other words, the processor 306 may transmit the conditioned, converted signals to the carrier 110 over the serial transmission medium SPI 316. The carrier 110 may then transmit the signals to an external system, such as computer system 102.
In one embodiment, the carrier 110 may process and/or analyze the signals, and send the results of the processing or analysis to the computer system 102 for storage and/or further analysis. In another embodiment, the carrier 110 may send a control signal to a component of the measurement system or to an external system in response to the analysis.
As FIG. 4A also shows, the measurement module 108 A may also include additional transmission lines and/or buses for operation, e.g., a trigger line 314 coupled to the ADC 304 which may receive trigger signals from an external source, such as computer system 102, and a power line 312 for supplying power to the measurement module.
FIG. 4B--A Measurement Module with Programmable Hardware
FIG. 4B is a block diagram of a measurement module 108B including a programmable hardware element 308, e.g., an FPGA 308. As may be seen, measurement module 108B is substantially the same as measurement module 108A described above with reference to FIG. 4A, but where the processor 306 is replaced with programmable hardware element 308, therefore description of the unchanged components is abbreviated or omitted.
As FIG. 4B shows, the measurement module 108B may include measurement circuitry, e.g., the signal conditioner 302 and/or the signal converter 304 (e.g., ADC or DAC), which may be operable to perform one or more of signal conditioning and signal conversion, as well as interface circuitry which is operable to provide an interface for the measurement circuitry. As described above, the interface circuitry may be operable to couple to a carrier unit 110, and to communicate an interface protocol to the carrier unit 110 describing the interface, whereupon the carrier unit's one or more functional units may be programmed (by computer system 102 or by a processor/memory on the carrier 110) using the interface protocol to implement the interface. After being programmed or configured with the interface, the measurement module and the programmed carrier unit together may then be operable to perform as one or more of a DAQ device, a measurement device, and a control device.
More specifically, in one embodiment, the programmable hardware element of the measurement module 108, e.g., the FPGA 308, may retrieve the interface protocol information from memory, as represented by the DAQ-EDS 307, and communicate the interface protocol information to the carrier 110. In one embodiment, the memory storing the DAQ-EDS 307 may also store configuration information, e.g., a hardware description, for the FPGA 308. In another embodiment, the measurement module 108B may include additional memory, such as non-volatile memory, not shown, for storing the configuration information. The configuration information may be usable to configure or program the FPGA 308 to implement the measurement module side of the interface and/or to manage operations of the measurement module 108B.
In one embodiment, a hardware netlist (preferably an FPGA-specific netlist) may be generated from the hardware description using various synthesis tools. The term "netlist" comprises various intermediate hardware-specific description formats comprising information regarding the particular hardware elements required to implement a hardware design and the relationship among those elements. The hardware netlist is used to create or configure the programmable hardware element to execute the specified function. As used herein, the term "hardware configuration file" refers to the program, bitfile, etc., which is loaded onto the programmable hardware element.
As also described above, the measurement module 108B may be operable to couple to sensor 112 which may send sensor signals to the measurement module for signal conditioning and/or signal conversion. The conditioned, converted signals may then be transmitted by the interface circuitry to the carrier 110 using the specified interface protocol. In other words, the FPGA 308 may operate to transmit the conditioned, converted signals to the carrier 110 over the serial transmission medium SPI 316. The carrier 110 may then transmit the signals (possibly in a different format) to an external system, such as computer system 102.
Thus, in one embodiment, the measurement module may communicate interface information to the carrier unit, where the interface information specifies an interface for operating with the measurement module; the carrier unit 110 may communicate the interface information to the computer system 110; (alternatively, the measurement module 108 may communicate interface information directly to the computer system 102) and the computer system 102 may program a functional unit on the carrier unit 110, thereby implementing the specified interface in the carrier unit. In another embodiment, the carrier unit 110 may include a processor and memory which receives the interface information from the measurement module, and programs the functional unit on the carrier unit 110 to implement the interface.
After the programming, the carrier unit 110 and the measurement module 108 may together be operable to perform one or more of a measurement and control task. In one embodiment, after the carrier unit 110 is programmed, the carrier unit 110 and the measurement module 108 together perform one or more of a data acquisition, measurement, and control task. In another embodiment, the computer system 102 may also perform one or more of a measurement and control task in conjunction with the carrier unit 110 and the measurement module 108.
Various embodiments of the invention may include additional features to provide efficient, low-cost measurement solutions. For example, DAQ-on-a-chip components and inexpensive, low-power digital components such as networking, processors, A/D converters, etc., allow measurement modules 108 to be developed which provide a variety of signal conditioning/conversion functions in a small form at a modest price. Additionally, various embodiments of the invention address the current trend toward networked/digital sensors and the emergence of plug and play (PnP) (analog) sensors, in that the carrier 110 is capable of adaptive "hot plug" functionality, i.e., the carrier 110 may adapt itself automatically to interface correctly with a smart sensor (i.e., a sensor/measurement module device). Thus, in various embodiments of the invention, the customer may be provided with modularity and flexibility, easy sensor connection (with integrated signal conditioning/conversion), and a variety of network options in that there is no dominant standard which requires compliance. Additionally, the customer may be provided an affordable and feasible path to smart sensors.
FIGS. 5A and 5B--Measurement Module
FIGS. 5A and 5B illustrate a measurement module, according to one embodiment. More specifically, FIGS. 5A and 5B illustrate a measurement module 108 in the form of a measurement cartridge which may be inserted into a slot in a cartridge carrier, as shown in FIGS. 7A and 7B, described below.
As FIG. 5A shows, the cartridge 108 may include signal input terminals 301 which may provide direct connectivity to various sensors and devices. In one embodiment, the measurement cartridge 108 may include integrated conditioning and isolation logic 306, including logic for signal conditioning 302, signal conversion (e.g., A/D and/or D/A converters) 304, and/or isolation 305, as shown. In various embodiments, the logic may be implemented in hard-wired circuitry, programmable hardware, such as an FPGA, and/or a micro-controller/memory, as desired. Finally, in the embodiment shown, the cartridge 108 may include a RIO (Reconfigurable I/O) interface 303 for communicating with a RIO carrier, as described in more detail below. In this embodiment, all timing, triggering, synchronization, etc., may be relegated to the RIO carrier, thereby simplifying the functional requirements of the measurement cartridge 108. The cartridge interface may comprise a very simple interface, e.g., SPI or 8 parallel DIO, through which communication with a RIO carrier may be facilitated.
FIG. 5B illustrates the measurement cartridge of FIG. 5B, where the cartridge 108 is shown with a cartridge housing 309. The housing 309 may serve to protect the various cartridge components and to provide structural support to the cartridge 108. In a preferred embodiment, the measurement cartridge may have a compact form factor. For example, in one embodiment, the measurement cartridge may measurement approximately 3.4" H.times.2.5" D.times.0.8" W, although other compact form factors are also contemplated.
In one embodiment, the measurement cartridge 108 may be operable to provide single-point and waveform I/O, e.g., analog: under 1 MS/s per cartridge, and/or digital: paralleled pass-through (fast). In a typical embodiment, channel granularity for the cartridge 108 may include 4 channels/module (higher with mass termination) for analog I/O, and/or 8 parallel I/O lines pass-through (higher density with mass termination) for digital I/O. Additionally, in one embodiment, up to 500 mW of power per slot on the cartridge carrier 110 may be provided for the operation of the cartridge 108.
FIG. 5C--Measurement Module Hardware Layout
FIG. 5C illustrates one embodiment of a hardware layout of the measurement module 108. Note that FIG. 5C only illustrates the functional components of the module, and that in the preferred embodiment, a housing or chassis may be included for enclosure, protection, or support of the module components, as illustrated in FIGS. 5A and 5B, and FIG. 7B, described below.
As FIG. 5C shows, in one embodiment, a printed wiring board (PWB) may be equipped with signal input terminals 301 for receiving analog inputs 310, e.g., from a sensor 112. In one embodiment, a subset of the input terminals 301 may be used to receive an optional Transducer Electronic Data Sheet (TEDS) describing the functionality of the transducer (e.g., sensor 112) in machine-readable form.
The PWB of the measurement module 108 may further include signal conditioning logic or circuitry 302, such as signal conditioners, MUXs, etc., which may be operable to receive the signals from the analog inputs 310 and perform signal conditioning on the signals, as is well known in the art.
As FIG. 5C also shows, the PWB may also include signal conversion logic or circuitry 304, such as the ADC shown, which may be operable to receive the conditioned signals from the signal conditioning circuitry 302 and perform any of various signal conversion operations on the signals. In the embodiment shown, the ADC 304 may operate to convert the conditioned analog signals to digital signals. Of course, in other embodiments, other signal conversions may be performed as desired, including digital to analog, or any other signal conversion.
As indicated above, in one embodiment, the PWB may include a functional unit 106, such as a processor/memory 306 and/or a programmable hardware element, such as an FPGA 308. As described above, the functional unit 106 may operate to provide an interface between the signal conditioning/conversion components 302/304 and external systems, such as computer system 102. As also mentioned above, the functional unit 106 may be operable to communicate interface protocol information to a carrier 110 indicating how to communicate with and operate the measurement module 108.
In one embodiment, isolation circuitry 305 may also be included on the PWB which may be operable to protect the components of the measurement module from spurious signals, signal noise, harmful voltage and/or current surges, impedance mismatches, and the like.
As FIG. 5C also shows, the PWB may also include terminals for communicating with external systems such as the computer system 102, including SPI 316, trigger line(s) 314, power 312 and ground 318 lines, among others.
In one embodiment, the measurement module 108 may comprise a cartridge, e.g., a measurement cartridge, which may be operable to be inserted into a slot in a chassis, described in detail below.
One benefit of the measurement module design presented above relates to cost. For example, in one embodiment of the measurement module 108, the cost may be estimated in the following way (in U.S. dollars circa 2001):
Basic System:
PWB: $4.50
Screw Terminals: $4.00
Enclosure/label: $1.10
Manufacturing: $10.00
Total (w/o isolation) $19.60
Isolation: $12.50
Total (w/ isolation) $32.10
Feature Circuitry:
Micro-Processor: $5.00
Signal Conditioner, MUX: $5.00-10.00
ADC System: $7.00-10.00
Total (w/ isolation) $49.10-57.10
Thus, for less than $60, the measurement module described above may be manufactured, resulting in a versatile and affordable DAQ/measurement solution.
Other examples of estimated costs for measurement cartridges are given below:
Estimated Cost to Builds
Cartridge Non-Iso Isolated
Slow 4-ch AI
16-bit ADC, 0-1 V, 0-10 V $42.60 $55.10
Fast 4-ch AI
12-bit ADC, 50 kS/s 36.60 49.10
4-ch T/C
16-bit ADC, +-1 deg C. 39.60 53.10
4-ch AO
12-bit DAC, 0-10 V 50.60 63.10
3-ch RTD
3-wire, 16-bit ADC 41.60 54.10
8-ch DI (5-30 VDC) 25.60 38.10
8-ch DO (5-30 VDC) 29.10 41.60
Examples of estimated costs for simple network adapters/carriers--CTB:
Estimated Cost to Builds
4-SLOT 1-SLOT
Serial RS-232 $71 $61
Serial RS-485, isolated 80 70
Simple USB 66 56
Simple Ethernet 80 70
Ethernet w/ 32-bit uproc 150 140
FIG. 6--Multiple Measurement Modules with Carrier
FIG. 6 is a block diagram of a measurement system comprising a carrier 110 and a plurality of measurement modules 108, according to one embodiment. As FIG. 6 shows, the plurality of measurement modules 108 may include analog input module 108C, analog output module 108D, and digital I/O module 108E, as well as other measurement modules not shown. Thus, the carrier 110 may be operable to communicate with each measurement module 108 and be programmed or configured (e.g., by a computer system 102 or by a processor/memory on the carrier 110) to implement the respective interface of each measurement module. In this manner a suite of sensors 112 may be fielded, each of which feeds signals to a respective measurement module 108 which in turn communicates through a respective interface (protocol) with the carrier 110. Thus, the carrier 110 may support a heterogeneous plurality of interfaces without having to include a heterogeneous set of interface hardware components.
It should be noted that in various embodiments, the carrier 110 may also be operable to perform other functions in addition to the adaptive interface functionality described above. For example, in one embodiment, the carrier may include network control circuitry (or have a functional unit configured to perform network control functions), and thus may comprise a networked measurement and control device, or a networked data acquisition device. In other words, the carrier unit may comprise one or more of an Ethernet carrier, a USB carrier, and a wireless carrier, among others, to facilitate transmission of data over a network to external systems, e.g., the computer system 102.
In one embodiment, the carrier 110 may include an IP address and web server capabilities. Thus the carrier unit may be able to publish received signals or measurement data over the Internet. The carrier 110 may similarly be operable to receive signal data over the Internet for processing. In another embodiment, one or more measurement cartridges 108 coupled to the carrier 110 may have an IP address and web server capabilities, and thus may be able to communicate with remote systems over the Internet, for example, to stream sensor data (e.g., numerical data or images) to a website for access by other systems or users.
In one embodiment, the carrier 110 may include a module 108 comprising a computer on a card, i.e., the functions of the computer system 102 may be performed by a module comprised in a slot on the carrier 110.
In one embodiment, the carrier unit 110 may comprise a measurement and control system, such as an industrial programmable logic controller, and may include one or more of a real time controller and an embedded controller.
In another embodiment, the measurement and control system may be usable in a PC based measurement and control system, and example of which is illustrated in FIG. 1A. For example, the carrier 110 may comprise or be operable to couple to a PC, i.e., computer system 102, and may be operable to perform measurement and control functions using the PC's processor 160 and memory 166. In one embodiment, the PC based measurement and control system may comprise one or more of a real time controller and an embedded controller. In another embodiment, the PC based measurement and control system may comprise one or more of a PCI carrier and a PXI carrier. In another embodiment, the carrier itself may comprise one or more of the PCI carrier and the PXI carrier.
In yet another embodiment, the carrier may comprise a DAQ-in-cable, e.g., used in a PC based DAQ or measurement system. In other words, the carrier 110 may be comprised in a cable connector, where one end of the cable is operable to be connected to the computer system 102, or to a network device, and the other end is operable to be connected to a measurement module. Thus, the cable itself may operate to perform various DAQ and/or measurement or analysis functions. Other embodiments of the carrier 110 are described below with reference to FIGS. 7A-13.
As FIG. 6 shows, the carrier 110 may receive signals from the measurement modules 108, optionally process the signals, and send the signals (or results) on to other systems and/or components of the measurement system. For example, as indicated by FIG. 6, the carrier 110 may transmit the signals to one or more of a Pass-through SPI+, e.g., a breakout/cable to FPGA board; a board bus (PXI, PC-104, etc.); Bluebus/FieldPoint adapter; a Network adapter, such as Ethernet, USB, CAN, or RS-232/485, among others; a wireless adapter, such as 802.11B or Bluetooth; a Handheld/PDA adapter, for example,Springboard, cradle, etc.; and a smart sensor module, among others.
FIGS. 7A and 7B--Measurement Cartridges with Cartridge Carrier
FIGS. 7A and 7B illustrate embodiments of the invention where the measurement module 108F is in the form of a measurement cartridge and the carrier 110 is in the form of a cartridge carrier 110A which is operable to receive one or more of the measurement cartridges 108F. FIG. 7A illustrates an embodiment in which the cartridge comprises a card with no housing, whereas FIG. 7B illustrates an embodiment in which the cartridge includes a housing, as shown.
In one embodiment, the carrier unit 110A may comprise a chassis, a backplane comprised in the chassis providing for electrical communication, a functional unit and one or more slots comprised in the chassis. Each of the one or more slots may include a connector that is coupled to the backplane, where each of the one or more slots may be adapted for receiving one of the measurement modules 108F. Thus, the carrier 110 may host a plurality of measurement cartridges 108 F, each of which may provide measurement and/or control functionality for a measurement or control operation or task. As mentioned above with reference to FIG. 6, the carrier 110A may be operable to communicate with each measurement cartridge (i.e., module) 108F and be programmed or configured (e.g., by a computer system 102 or by a processor/memory on the carrier 110) to implement the respective interface of each measurement cartridge. In this manner a suite of sensors 112 may be fielded, each of which feeds signals to a respective measurement cartridge 108F which in turn communicates through a respective interface (protocol) with the cartridge carrier 110A. Thus, the carrier 110A may support a heterogeneous plurality of interfaces without having to include a heterogeneous set of interface hardware components. In one embodiment, a channel or bus may be provided by the carrier 110 for each cartridge/interface protocol. In other words, each slot may have an associated dedicated bus for that slot, with a corresponding portion of the carrier's reconfigurable hardware configurable to implement the interface for a cartridge inserted into the slot. In another embodiment, the carrier 110 may include a shared bus or backplane common to a plurality of the slots, where inserted cartridges may communicate through the common bus or backplane with the reconfigurable hardware of the carrier 110 in accordance with the respective interface protocols implemented on the reconfigurable hardware.
In a preferred embodiment, the measurement modules 108 (or cartridges) may be easily removed, added, and replaced. In other words, measurement modules may be exchanged to change the configuration or capabilities of the measurement system. In one embodiment, the measurement module 108 may be replaced without powering down the measurement system, i.e., the measurement module 108 may be "hot-plugged" into the carrier 110, where, during operation of the measurement system, the measurement module 108 may communicate the interface protocol information to the carrier 110 upon attachment, and the carrier 110 is programmed in response, as described above. In another embodiment, the measurement module 108 and/or carrier 110 may require a reboot or reset after attachment to perform the described initialization.
For example, during operation of the measurement system, a new measurement module 108 (or cartridge) may be added (i.e., inserted or attached) to the carrier 110. The measurement system may automatically perform the initialization described above with respect to the added measurement module 108. In other words, during operation of the measurement system, the newly coupled measurement module 108 may communicate respective interface information to the carrier 110, which may then be programmed (e.g., by the computer system 102 or by a processor/memory on the carrier 110) to implement the respective interface, thereby enabling operations with the new measurement module 108. In one embodiment, the new measurement module 108 may replace another measurement module which was removed during operation of the measurement system.
Thus, the interface circuitry (i.e., the measurement module 108) being operable to communicate the interface protocol to the carrier unit 110 describing the interface may comprise the interface circuitry being operable to communicate the interface protocol to the carrier unit 110 upon one or more of attachment of the measurement module to the carrier unit, reset of the measurement module, reset of the carrier unit, reboot of the measurement module, and reboot of the carrier unit.
As FIGS. 5C, 7A, and 7B show, in a preferred embodiment, the measurement module 108 may have a small form factor. For example, in one embodiment, the measurement module 108 may have dimensions less than or equal to approximately 1 inch by 2 inches by 3 inches. In one embodiment, the measurement module may have dimensions of approximately 0.2 inches by 1 inch by 1 inch or more. In yet another embodiment, the measurement module may have dimensions of approximately 0.8 inches by 2.5 inches by 3.4 inches or more. Thus, in a preferred embodiment, the measurement module 108 has a compact form factor which may enable deployment in a variety of devices or carriers with minimal space requirements.
Thus, in one embodiment, the measurement module 108 may comprise a measurement cartridge including signal conditioning, ADC, microprocessor, and optional isolation, for sensor to digital operations. Additionally, the cartridge may provide an SPI digital interface with simple protocol, and EDS/calibration history on board. In a preferred embodiment, the cartridges may have low channel counts, e.g., 4-channel analog, 8-channel digital.
The cartridge carriers are preferably able to convert SPI to standard bus/network signals, and implement power-on states, plug and play, and watchdogs. Additionally, the cartridge carriers may be provided with application-specific form factors and functions. In other words, the cartridge carriers may be developed specifically to match the customers space and function needs. Example carriers 110 may include, but are not limited to, 4-slot Ethernet carrier, 4-slot and 1-slot USB carrier, multi-slot RIO carrier, 1-slot wireless carrier, and CAN carrier, among others.
Thus, in various embodiments, the measurement modules or cartridges may provide any or all of low first channel cost, low power requirements, small size, "good" DAQ performance (for example, .about.50 kS/s 12-bit to 10 S/s 20-bit), integrated signal conditioning, optional isolation, support for plug and play sensors (IEEE 1451.4), and easy use and configuration. Additionally, the measurement modules/cartridges may be rugged, i.e., may be suitable for industrial use. In various embodiments, the cartridges may plug into one or more of an Ethernet carrier, a USB carrier, an Ethernet Vision I/O slot, a PXI carrier, a PCI carrier, handhelds, DAQ in the cable, and RIO devices (e.g., panelettes), among others. Example functions contemplated for measurement cartridges include, but are not limited to, thermocouples, analog (e.g., 10 V) inputs, fast AI/vibration, analog output (e.g., 1V to 10V), digital input (e.g., 5V to 30V), and digital output (e.g., 5V to 30V).
Re-configurable I/O Systems
In one embodiment, the measurement system may include a measurement module coupled to a "RIO" Reconfigurable I/O carrier 110D, also referred to as a generalized carrier 110D. As used herein, the term "RIO" carrier refers to a carrier which includes reconfigurable hardware, e.g., an FPGA, which is configurable with respective interface protocols for one or more cartridges. In other words, a RIO carrier 110D with multiple cartridge slots may be configured with multiple interfaces for inserted cartridges, such that each cartridge's interface is implemented by the RIO carrier 110D.
In yet another embodiment, the RIO carrier 110D may be configurable to include not only the adaptive interface functionality described above, but may also include or may be configured to include, one or more measurement and/or control functions. For example, the carrier may perform all or a portion of timing, triggering, and synchronization functions for inserted cartridges or modules. Further descriptions of RIO based embodiments of the invention are presented below with reference to FIGS. 7C-7D and FIGS. 8A-11, described below.
FIGS. 7C and 7D--Measurement Cartridges in RIO Systems
FIGS. 7C and 7D illustrates two embodiments of measurement systems using measurement modules with RIO carriers 110. FIG. 7C illustrates an embodiment in which the measurement module (or cartridge) 108 is coupled to a stand-alone chassis with RIO 110E, which may function as the RIO carrier 110 for the system. In other words, the chassis 110E includes a RIO functional unit 308, e.g., on or coupled to the chassis backplane, for implementing the interface protocol of the measurement cartridge 108, and/or for providing other RIO functionality. Additionally, in this embodiment, a controller cartridge or module 702 may be coupled to or inserted into the chassis 110E, and may provide one or more of a power supply, communications (e.g., Ethernet, USB, 1394, etc.), real time application software, such as LabVIEW/RT from National Instruments, executable by an on-board processor and memory (comprised on the controller 702), and a PCI bus to RIO. The controller 702 may thus provide some or all of the functionality which might normally be provided by a host computer 102, as described above, thereby allowing the system as shown to operate without the host computer 102. In other words, in one embodiment, the controller 702 may function as the host computer system 102.
FIG. 7D illustrates another embodiment of a RIO-based measurement system, in which the RIO functionality (e.g., the RIO FPGA 308) is provided by an R Series board 110F which is coupled to a simple breakout for R Series 720 by a transmission medium, e.g., a 68 pin cable 703, as shown. The breakout 720 is also operable to receive the measurement cartridge 108, and so may function as a cartridge chassis. In on embodiment, the R Series board, in addition to the RIO FPGA 308, may include a processor and memory, and thus may provide the functionality of a host computer 102, e.g., storing and executing application software, programming the RIO FPGA with the module interface protocol, etc. In another embodiment, the breakout 720 may couple to an external computer system 102, e.g., via a transmission medium. In yet another embodiment, a computer-on-a-card, may be inserted into the chassis 720, and may serve as the host computer 102, as described above.
Thus, in some embodiments, the carrier 110 may include a processor and memory which may provide some or all of the functionality of the host computer system 102, described above. The processor and memory of the carrier 110 may be operable to store and execute real time application software, such as LabVIEW/RT.
For example, in one embodiment, the carrier 110 may comprise a C-Series platform (e.g., from National Instruments), which may support a variety of multi-slot chassis, e.g., a 16-slot chassis, an 8-slot chassis, a 4-slot chassis, among others, and may facilitate high-speed real time control (e.g., 10.times. to 100.times. loop performance versus PLCs). The carrier may include a 1-slot multi-drop bus adapter. The platform may also include a stand-alone x86 controller module with LabVIEW/RT. In one embodiment, the carrier 110 may be DIN-rail and panel mounted. Additionally, the carrier may be configured with a RIO personality, such as, for example, a personality for synchronous single-point acquisition. In one embodiment, the carrier 110 may support an option to distribute individual cartridges through one-slot deterministic bus adapters. This and similar embodiments of the inventions may be suitable for such applications as fast machine control, embedded systems, distributed monitoring, hardware-in-the-loop, and data acquisition, among others.
In another embodiment, the carrier 110 may comprise an M-Series platform (e.g., from National Instruments), which may also support a variety of multi-slot chassis, e.g., a 16-slot chassis, an 8-slot chassis, a 4-slot chassis, among others. This and similar embodiments may facilitate economical portable measurements, such as, for example, by using low-cost communications modules (e.g., USB, 1394), and/or a low-cost 1-slot USB bus adapter. This embodiment may not, for example, use a real time program such as LabVIEW/RT. The carrier 110 may be configured with a RIO STC-like personality, such as, for example, a personality for generating synchronized, triggered waveforms. Cartridges suitable for use with the carrier may have BNC, mass termination connectors. The carrier 110 may be implemented as a benchtop, desktop, in-vehicle, and/or rack-mounted system, as desired, and may be suitable for such applications as external/portable DAQ, in-vehicle testing, and rack-mount I/O for testing, among others.
Thus, in various embodiments, the RIO functionality of the measurement system may be comprised in or on various different components of the measurement system.
FIGS. 8A and 8B--Block Diagrams of a Cartridge Carrier in a RIO System
FIGS. 8A and 8B are block diagrams of two embodiments of a cartridge carrier 110 in a RIO system, i.e., a RIO carrier 110D. As both FIG. 8A and FIG. 8B show, the RIO cartridge carrier 110, also referred to as a "RIO" 110D, may couple to computer system 102, as described above, and may be operable to receive multiple cartridges 108, e.g., in respective slots in the RIO 110D. As FIGS. 8A and 8B also show, the RIO 110D may include a programmable hardware element, e.g., an FPGA 308 which is operable to be configured with a variety of measurement module interface protocols (MMIPs), also referred to as "personalities", in that the implemented personality corresponds to a particular measurement module, module type, or module configuration/functionality. In one embodiment, each MMIP may be configured in a respective portion of the programmable hardware element 308. For example, the MMIP for cartridge 108A may be configured in portion 308A of the FPGA, the MMIP for cartridge 108B may be configured in portion 308B of the FPGA, and so on.
FIG. 8A is a block diagram of an embodiment of the cartridge carrier or RIO 110D with separate cartridge controllers for each cartridge slot. In other words, in this embodiment, the cartridge carrier includes separate channels or buses 508A, 508B, 508C, etc. for each respective cartridge slot, such that each cartridge inserted into the RIO carrier 110D may communicate with the FPGA 308 through a respective interface, channel, or bus.
FIG. 8B is a block diagram of an embodiment of the cartridge carrier or RIO 110D with a shared cartridge controller 508. Said another way, in the embodiment of FIG. 8B, a single shared bus may provide for communication between cartridges 108 inserted into slots of the RIO 110D and the programmable hardware element 308, e.g., FPGA, in the RIO 110D. In one embodiment, communication with the inserted cartridges 108 may be performed by allocating respective time-slots for communication with each cartridge 108, i.e., through time domain multiplexing (TDM), as is well known in the art, although other techniques for communicating over a shared bus or interface are also contemplated. It is noted that in other embodiments, the RIO system may use other module forms besides cartridges. In other words, the concepts presented herein with respect to cartridge carriers 110 and cartridges 108 may be applied to embodiments where the modules are not specifically in the form of cartridges. Further details of the RIO cartridge carrier 110D and cartridge controllers 508 are presented below with reference to FIGS. 9 and 10, respectively.
FIG. 9--Block Diagram of a Cartridge Carrier
FIG. 9 is a block diagram of a RIO FPGA 308 comprised in a cartridge carrier 110, according to one embodiment. In this embodiment, the RIO FPGA 308 may provide a hardware interface between controlling software, such as an application program executing on computer system 102 or on the carrier 110D, for example, and the individual cartridge 108.
As FIG. 9 shows, the RIO FPGA 308 may be configured to include a variety of interface components, including, for example, a bus interface 514 for communicating with a real time controller 550; a CPU interface 510 for communications between a processor (e.g., on computer system 102 or on the carrier 110D) and portions of the FPGA configured with respective MMIPs, e.g., 308A-308F, as shown; and I/O interfaces 512 for communications between the FPGA MMIP portions and external signal converters, such as ADCs 507 and DACs 509. As FIG. 9 further shows, the RIO FPGA 308 may also include one or more cartridge controllers 508, e.g., 508A-508C as shown, which facilitate communication between the FPGA MMIP portions and respective inserted cartridges 108A-108C. As mentioned above with reference to FIGS. 4A-6, communications with the cartridges 108 may performed over a plurality of SPI lines 316, as well as auxiliary lines, such as timing and trigger lines 314, collectively referred to as SPI+ (SPI-Plus). One embodiment of a cartridge controller 508 is provided below with reference to FIG. 10A.
FIG. 10A--Block Diagram of a Cartridge Controller
As mentioned above, the RIO FPGA 308 may include one or more cartridge controllers 508 which may provide the basic functionality necessary to interface to a cartridge 108. FIG. 10A is a block diagram of one embodiment of a cartridge controller 508, where the cartridge controller is a component of a RIO system 110D, and where the cartridge controller 508 provides for communication between the RIO FPGA 308 (described above) and an inserted measurement module/cartridge, e.g., cartridge 108A. The cartridge controller 508 may behave much like other standard interfaces to fixed resources on the RIO board, such as ADCs, DACs, and DIO. Additionally, the cartridge controller 508 may be configurable by the MMIP portion of the FPGA 308, e.g., to mediate communications with the cartridge in accordance with the configured MMIP. In various embodiments, the cartridge controller 508 may be used as a fully functional block or as part of an FPGA diagram, such as a LabVIEW FPGA diagram.
Important aspects of the basic functionalities provided by the cartridge controller 508 include the facilities to detect cartridge insertion and to communicate with the EPROM 307 of a cartridge to identify the cartridge. The SPI interface, i.e., the plurality of wires coupling the cartridge controller 508 to the cartridge, is also used to communicate with the cartridges functionally (as opposed to simple identification) and is designed to provide high performance communication between the cartridges 108 and the cartridge controller 508. Beyond the basic functionality, the cartridge controller 508 may include a set of modular blocks that may be included based on the needs of the implementation, including, for example, queues, timer, triggers, and digital I/O (DIO) support, described below. The cartridge controller block may also provide hooks so that when instantiated as a component in a graphical diagram, such as a LabVIEW FPGA diagram, the diagram may be able to provide user defined capabilities to the cartridge while maintaining basic functionality necessary for identification, such as, for example, through a DIO line 522.
As FIG. 10A shows, the cartridge controller 508 may include pin multiplexing 525 for coupling to the cartridge 108A. In a preferred embodiment, the measurement cartridges 108 are hot-swappable and interchangeable, and may necessitate a notification mechanism which operates when a cartridge is removed or inserted. Thus, a module detection component 524 may also be included which may be operable to detect the cartridge 108A, e.g., via an ID select line 523, as shown. In one embodiment, the cartridge controller 508 may monitor the ID select line 513 for any transition when the controller 508 is not driving the line. The transition may be captured and a bit set to notify the controlling software by polled IO or interrupt. The software may then read a status register to determine if a cartridge has been inserted or removed from the slot so that it may take appropriate action, e.g., reading the EPROM 307 on the cartridge 108 and configuring for an insertion or clean up for removal. Identification of the cartridge may be facilitated by the module detection component 524 in conjunction with an SPI rate and serializer component 527, also referred to as the SPI port 527, and an optional CPU interface 510A, which may provide information regarding configuration, status, interrupts, and DMA to a processor, e.g., on the carrier 10D or on the computer system 102. In one embodiment, the CPU interface 510A may enable the cartridge controller 508 to be configured by the CPU, e.g., by the computer system 102 or a processor on the carrier 110D.
In one embodiment, the ID select line 523 may be used to toggle between communicating with the EPROM 307 for ID purposes, and communicating with the cartridge for functional purposes, such as DAQ, control, etc. In other words, the cartridge may support the ID Select cartridge detection, and may also support SPI for reading the identification EPROM. When not in identification mode, the cartridge pins may be defined and used for any purpose, thus allowing for future flexibility. In one embodiment, two primary modes may be defined for the cartridge controller 508. In a basic SPI mode, the cartridge controller 508 may communicate over the SPI port 527 and use pins for converting data, indicating busy, and exchanging triggers and clocks. In another mode, the cartridge controller 508 may use eight pins for digital input and output. Upon power up or upon a cartridge change, the controller 508 may enter a tristate (high-Z) mode in which all the pins are tristate for protection. After reading the EPROM 307, the software may set the appropriate mode as needed.
In one embodiment, the cartridge controller may support a DIO mode which provides basic digital input and output reads allowing communication with static DIO pins. For example, the DIO mode may include timed DIO and may support buffered DIO, e.g., for control applications.
As mentioned above, primary timing signals may be sent to the cartridge through one or more timing signal lines, included in the SPI+ interface. The cartridge controller 508 may provide a multiplexer for selecting a conversion signal from the local timer or system triggers. The system triggers may include a local "RTSI" bus and signal from user defined hardware. In one embodiment, the cartridge may provide a trigger signal that may be routed to the system triggers.
As FIG. 10A also shows, the cartridge controller 508 may also include an input data queue 534, as well as an output command queue 531 and an output data queue 532, for communicating with the MMIP portions of the FPGA, as well as the CPU interface 510A. As also shown, a DIO component 522 may also be included to facilitate digital communications between the cartridge 108A (via the pin multiplexing 525) and the MMIP portions of the FPGA 308. Similarly, a timer/trigger component 528 may be included for communicating timing and triggering signals to and from the cartridge 108A, as shown.
A flow control component 526 may operate to regulate or direct data flow between the output command queue 531, the SPI rate and serializer component 527, and the cartridge 108A. In one embodiment, the SPI rate and serializer component 527 may also be coupled to the cartridge (via pin multiplexing 525) through a plurality of SPI lines 529, e.g., CLK (clock), MISO (master in, slave out), and MOSI (master out, slave in) lines, as shown, which may provide for communication of clocking signals, as is well known in the art.
Thus, an efficient SPI port 527 may be desirable for communication not only with the ID EPROM 307 of the cartridge 108A, but also for functional communication with inserted cartridges 108. Many of the cartridges may be based on a variety of available SPI compatible or easily adaptable ADCs or DACs. SPI hardware/software interface performance may be a primary determining factor in the overall measurement system performance. In addition to the basic parallel-to-serial and serial-to-parallel conversion necessary to communicate efficiently, the SPI port 527 may provide a number of features to reduce software burden, including, for example, data queues to buffer data in each direction and hardware flow control. The data queue may allow blocks of data to be transferred from the software and to take up latency when the software is busy.
The SPI port 527 may also take over part of the control role for the cartridge 108A since the cartridge is simple by design. As FIG. 10A shows, the output queue may include "commands", as indicated by the output command queue 531, as well as data, as indicated by the output data queue 532, that indicate the addressing modes, whether to capture data, and flow control, among others. In addition a reload mode may be provided which allows a sequence of data/command to be repeated without software intervention. A common use case would be to load data necessary to configure a set of ADC reads, including waiting for conversion responses. With the output queue repeating, the software need only manage capturing the input data.
In one embodiment, the SPI rate, i.e., the rate of data flow, may be configurable for each controller and may be changed on the fly to allow the maximum performance for a particular IC and topology. For example, the cartridge's EPROM 307 and ADC 507 may support different transfer rates via SPI. FIG. 10B illustrates a typical SPI cycle, according to one embodiment. A s FIG. 10B shows, chip select signals 1002 may be asserted one half SPI period before the falling edge of an SPI clock signal 1004 and held a half period at the end of the cycle. The controller may drive data on the falling edge and sample the data on the rising edge of the SPI clock signal 1004.
As is common in high performance serial controllers, the input queue 534 and output queues 531 and 532 may provide a level of decoupling between the software and the hardware, i.e., the FPGA. The buffers may allow system latencies to be absorbed and lessen the processor load. The queue size may be adjusted for an implementation target, for example, a good minimum target may be one scan of data for a typical cartridge (four channels 32 bits). A s mentioned above with respect to SPI, the output queues 531 and 532 may contain data and control information and may be set to automatically reload. The input queue 534 may capture data from the SPI input stream when indicated by the output command. Each of the queues may have optimized software interfaces for efficiently managing single point and buffer operations. Additionally, DMA capability may also be included for maximum performance where possible.
Because of the simplicity of the cartridge 108, the responsibility for providing compatible timing signals may fall on the controller 508. The timer 528 may provide for polarity and pulse width control of a signal that may be routed to the cartridge through a timing line. The timer may be used independently or as part of coordinated system timing with routing and hardware enables. A n additional benefit is that the local timer may allow the cartridge to be completely functional without relying on system resources. FIG. 10C illustrates one embodiment of a common timer waveform 1010 where the initial polarity is high, and the waveform generates two periods low followed by three periods high.
An important feature in communicating with an ADC or DAC is the ability to determine or direct flow control, for example, waiting for a BUSY signal from the cartridge indicating the conversion is done, or a timer indicating when to write updates to a DAC. Wait blocks in conjunction with the output command queue 531 may allow the condition to be specified. In one embodiment, at any time, two conditions may be monitored. The source of the event and the desired edge may be programmed. When the wait command is at the head of the queue, the line may be monitored and the SPI data may not be transferred until the condition has occurred.
While the cartridge controller 508 may provide the necessary facilities to communicate and control most cartridges, more complex and sophisticated system functions may be realized by connecting to external resources, such as those available through LabVIEW FPGA, via external hooks. These hooks may provide for custom timing or triggering by coupling a diagram to timing and triggering signals. For improved flexibility, all the available pins may be made available to the user's diagram to provide complete control of the cartridge 108 while still allowing the controlling software to detect and identify cartridges via a standard mechanism. A n example is coupling custom counter timers to transform a digital module. The external hooks may also be used to build a standard configuration of timing and triggering resources.
Registers
The following is an exemplary register set for the cartridge controller, representing one embodiment of a set of controls used for communicating with and controlling components of the cartridge controller 508. It is noted that these registers are exemplary only, and are not intended to limit the register set used by the invention to any particular set or interpretation.
uD Status Register Read 16 bit Offset 0x00
uD Dout FIFO Status Read 16 bit Offset 0x02
uD Din FIFO Status Read 16 bit Offset 0x04
uD Din FIFO Read 16 bit Offset 0x08
uD DIO In Register Read 16 bit Offset 0x0C
uD Signature Read 16 bit Offset 0x0E
uD Control Register Write 16 bit Offset 0x00
uD SPI Rate Register Write 16 bit Offset 0x02
uD Timer A Register Write 16 bit Offset 0x04
uD Action Register Write 16 bit Offset 0x06
uD Dout FIFO Register Write 16 bit Offset 0x08
uD Control 2 Register Write 16 bit Offset 0x0A
uD Timer B Register Write 16 bit Offset 0x0C
uD DIO Out Register Write 16 bit Offset 0x0E
FIG. 11A--Measurement Module and Generalized Re-configurable Carrier Architecture
FIG. 11A is a block diagram of an architecture for a measurement system which includes a measurement module 108 and a RIO carrier 110D, also referred to as a generalized carrier 110D. A s mentioned above, a generalized carrier with multiple cartridge slots may be configured with multiple interfaces for inserted cartridges, such that each cartridge's interface is implemented by the carrier. For example, if three cartridges with three different respective interfaces are inserted in three slots of the RIO carrier 110D, then the RIO carrier 110D may be configured to implement the three interfaces. Similarly, if multiple cartridges are sequentially inserted into and removed from a particular slot, the RIO carrier 110D may be configured respectively for each cartridge, i.e., sequentially. The RIO carrier 110D may further be operable to couple to any of various products or platforms.
In one embodiment, a channel or bus may be provided by the generalized carrier 110D for each cartridge/interface protocol. In other words, each slot may have an associated dedicated bus for that slot, with a corresponding portion of the generalized carrier's reconfigurable hardware configurable to implement the interface for a cartridge inserted into the slot. In another embodiment, the generalized carrier 110D may include a shared bus or backplane common to a plurality of the slots, where inserted cartridges may communicate through the common bus or backplane with the reconfigurable hardware of the generalized carrier in accordance with the respective interface protocols implemented on the reconfigurable hardware.
As mentioned above, in another embodiment, the generalized carrier may be configurable t |