GB2347569A - A data acquisition circuit - Google Patents
A data acquisition circuit Download PDFInfo
- Publication number
- GB2347569A GB2347569A GB9905477A GB9905477A GB2347569A GB 2347569 A GB2347569 A GB 2347569A GB 9905477 A GB9905477 A GB 9905477A GB 9905477 A GB9905477 A GB 9905477A GB 2347569 A GB2347569 A GB 2347569A
- Authority
- GB
- United Kingdom
- Prior art keywords
- circuit
- stage
- output
- data acquisition
- filter
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03H—IMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
- H03H17/00—Networks using digital techniques
- H03H17/02—Frequency selective networks
- H03H17/0223—Computation saving measures; Accelerating measures
- H03H17/0225—Measures concerning the multipliers
- H03H17/0226—Measures concerning the multipliers comprising look-up tables
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03H—IMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
- H03H17/00—Networks using digital techniques
- H03H17/02—Frequency selective networks
- H03H17/06—Non-recursive filters
Abstract
A data acquisition circuit comprises multiple sensor input analog channels each having independent signal conditioning and analog to digital conversion means, and a digital filter comprising a state machine controlled by a counter for multiplexing the channels, performing digital filtering in cascaded stages (0-15) at sampling rates which are successive binary subdivisions of the previous stage beginning with a primary sampling rate Fp, and for selecting an output from one of the stages. The filter may be implemented using a field programmable gate array (FPGA) to provide a low gate count and tolerance of power interruptions, and high operating speed may be achieved using fixed coefficients and results in an EEPROM look-up table.
Description
"A Data Acquisition Circuit"
The invention relates to a data acquisition circuit for use in data acquisition systems suitable for harsh environments such as in the aerospace industry.
Typically, such circuits are used for processing analog signals from sensors such as accelerometers or strain gauges. The signals are converted to digital format and are sampled to deliver a digital data signal representative of the parameter being monitored.
The application may involve real-time data acquisition or stand-alone data logging.
While technologies for such processing exist at present, major problems arise in harsh environments such as in the aerospace, automotive, and energy industries. The circuits must be mounted in very rugged housings. The material may, for example, be CNC milled aluminium plate. It is often a requirement that the housing also be quite compact because the space is restricted. Also, the circuits must withstand mechanical shock and vibration.
In such an environment it is typically the case that reliability is not what it should be because of heat dissipation by processors providing functions such as digital filtering.
Also, the circuits are often intolerant of power supply fluctuations, which can cause data corruption and difficulties in re-booting. A still further problem which arises is circuit damage arising from mechanical shock and vibration.
It is therefore an object of the invention to provide a data acquisition circuit which is tolerant of a harsh environment.
Another object is to provide such a circuit which is more compact than heretofore.
According to the invention, there is provided a data acquisition circuit comprising:
a plurality of input analog channels, each comprising a signal conditioner and
each having an independent sample rate and filter cut-off point,
a digital filter comprising a state machine controlled by a counter for multiplexing
the channels, performing digital filtering in cascaded stages at sampling rates
which are successive binary sub-divisions of the preceding stage beginning with a
primary sampling rate, and for selecting an output from one of the stages.
In one embodiment, the digital filter comprises an FPGA.
Preferably, there is a set of fixed multiplier coefficients for the digital filter multipliers.
In one embodiment, the coefficients are stored in a separate read only memory.
In another embodiment, the read only memory stores a look-up table of all possible multiplication results, the table being addressable with an input register value.
In a further embodiment, the counter comprises means for selecting which cascading
filter stage provides the output for each channel. Preferably, the output is written to a
register in the digital filter.
In another embodiment, the read only memory stores values for linearisation of the
analog to digital converters and channel gain settings.
In a further embodiment, the counter controls the state machine via decoders.
In another embodiment, the decoders include a cascading stage decoder, a read pointer
decoder, and a write pointer decoder.
Preferably, all logic blocks of the digital filter are in hardware.
The invention will be more clearly understood from the following description of some embodiments thereof, given by way of example only with reference to the accompanying drawings in which:
Fig. 1 is a perspective view from above of a housing of a data acquisition system;
Fig. 2 is a block diagram of a data acquisition circuit;
Fig. 3 is a logical representation of a digital filter of the circuit;
Fig. 4 is a logical representation of cascaded filtering by the circuit;
Fig. 5 is a block diagram showing the major signal transfers of the circuit ; and
Fig. 6 is a block diagram showing signal transfers in more detail.
Referring to Fig. 1, there is shown a housing I for a data acquisition system of the invention. The housing is of AIMg material surface finished with electroless nickel plating. The plates are 4.0 mm thick. A top plate 2 comprises slots 3 for receiving connectors of circuits plugged into the housing I in a modular manner. These circuits include three data acquisition circuits in the three longer slots 3, a main control circuit in the next slot, and a power supply module in the last slot 3.
The circuits are connected in a modular manner to a general bus for control logic and data transfer. Apertures 4 in the top plate 2 are provided for fasteners which support the circuits. This arrangement provides mechanical support to minimise the effects of mechanical vibration and shock. Also, the housing provides protection from the environment generally, such as that around an aeroplane during testing. Sensors are connected directly to the circuit connectors in the slots 3. The sensors may be RTDs, strain gauges, or accelerometers, for example, or any combination.
Referring now to Fig. 2 a data acquisition circuit 10 is illusted. There are eight analog input channels CH1, CH2, CH3, CH4, CH5, CH6, CH7, and CH8. Each channel relates to a separate sensed parameter. For example one may be an accelerometre and another a strain gauge. There is a signal conditioning circuit SC for each channel. These perform anit-aliasing functions by eliminating analog frequencies above certain levels such as 5 kHz for compliance with the Nyquist criterion that the digital sampling rate be at least double the incoming analog frequency. Each SC also amplifies or attenuates according to the amplitude of the incoming analog signal. For example, a strain gauge output may have a span of approximately lOmV. The SCs provide an output in the range-IOV to +IOV, this signal being fed to the input of an analog to digital converter ADC. Each channel has an independent sample rate and filter cut-off point.
The ADCs are controlled by an FPGA digital filter 15, and it is only upon receipt of a clock signal from the filter 15 that output digital sample is delivered to the filter. The digital filter 15 is connected to an SRAM 16 and an EEPROM 17. An i/o buffer 18 is connected to the filter 15.
Fig. 3 is a logical representation of the structure of the digital filter. In this embodiment, a sample is delivered at the first input register 20 and is successively shifted across all thirty one registers 20. Thus, at any one time there are thirty-one samples in the registers.
The value in each register is multiplied by a coefficient multiplier 25. The coefficients are identified by KO to K15. Each register 20 is 16-bits wide and so the register value can be at any binary value between 0 and 65,535. It is this value which is multiplied by the coefficient. The multiplier outputs are then added by an adder 30 to provide the output. Thus, the filter is a 31-tap, Finite Impulse Response (FIR), half-band digital filter.
The logical structure of the digital filter is represented in Fig. 4, which in this embodiment illustrates sixteen cascade stages 0 to 15. Each stage generates an output which may be provided as the circuit output if so set.
Heretofore, such extensive digital filtering has required very extensive processing circuitry such as general purpose microprocessors or digital signal processors (DSPs).
These have quite high power consumption and are quite intolerant of harsh electrical and mechanical environments. For example, a DSP typically has a power consumption of approximately 5W, and so a bank of five DSPs in a full system would generate considerable heat in me confined housing space.
As indicated generally in Fig. 2, this problem is addressed in the present invention by use of a field programmable gate array FPGA (alternatively called a PLD) device. Such a filter has a very low gate count and in this embodiment it is approximately 8,000 gates.
This has a much lower power consumption of approximately 0.25 W, and is also much smaller physically. Another advantage is that it can be made tolerant of power fluctuations or other conditions which cause power interruption. The design features of the digital filter which achieve these advantages are described in more detail below.
Referring to Figs. 5 and 6, the digital filter comprises an FPGA which comprises fixed decode and control logic 40, a counter 41, and an accumulator 42. As shown particularly in Fig. 6, the counter 41 drives a core state machine 46 via stage, read pointer, and write pointer decoders 47,48, and 49 respectively. The core state machine 46 comprises logic gates for only one digital filter stage, and the counter 41 multiplexes on a time division basis to achieve a logical cascading operation of sixteen stages. This minimises the number of physical registers needed thus allowing use of an FPGA, which would otherwise not be possible. The counter 41 operates on a fast clock cycle and governs operation of the core state machine on a last state-input next state basis so that it is not permanently affected by power surges or outages of short duration.
Another important aspect of the architecture in that the clock signals of the counter, as shown in Fig. 4 cause each cascading stage to sample at a binary division of the preceding stage. Thus, stage 0 has a sampling rate of a primary sampling frequency Fp.
This is a multiple of that required at the output. Thus, the sampling frequency ranges from Fp for Stage 0 to Fpi32, 768 for Stage 15. The output of each stage is available, but only one is set by the counter 41 for any particular setup. The chosen output is written to a dedicated register in the FPGA. It is because the channel sample rates are binary divisions that the state machine may be controlled by a single binary counter. If the output rate chosen is also Fp then for every sample of the ADC a new output is calculated. If the output rate chosen is half the primary sampling rate (Fpi2) then for every second sample of the ADC a new output is calculated and passed into the second stage FIFO. Every time a new sample enters the second stage FIFO a new output is generated. If the output rate is quarter the primary sampling rate (Fp/4) then for every second sample of the ADC a new output is calculated and passed into the second stage
FIFO. For every second sample entering the second stage FIFO a new output is generated and fed into the third. The number of calculations required is independent of the number of stages of filtering.
A further important aspect is that there is no need to perform multiplication at the multipliers. This is because a fixed frequency profile or filter characteristic is chosen for the particular output sampling rate. Thus, the coefficient values are fixed. There are therefore only 4096 possible multiplication results for each multiplier because there are only 4096 possible values in the input register. All of these values are stored in the
EEPROM and are simply retrieved using the register value as an address. This dramatically reduces processing time and gate capacity required. Also, very importantly, the precision can be set to a very high level and is in this case 32 bit. The storage required provides little overhead because of the extent of space available in the
EEPROM.
The EEPROM is also used for linearisation of the ADC values and for storing filter coefficients and gain settings for each channel. The SRAM enables storage of many intermediate sample values used in calculation. This is very important because of the limited FPGA space.
In more detail, the state machine controls the ADCs, updates the values sent to the i/o, and reads the EEPROM to set the SC gains and other parameters. It also reads ADC parameter values from the EEPROM. The register banks shown in Fig. 3 are implemented using multiple FIFOs in the SRAM. Each cascaded filter stage requires its own FIFO, and each FIFO needs its own read and write pointer (typically a counter). The 128 read pointer and 128 write pointers are derived from a single counter, as in the channel and stage which is to be implemented next.
For the state machine to run, it needs to know :- Ch [2: 0] The channel being filtered.
Stage [3: 0] The stage being filtered.
Rd~Pt [5 : 0] The read pointer pointing at last output from previous stage.
Wr-Pt [5: 0] The pointer pointing to where to write the output of this stage.
These values are derived from the counter 41.
The state machine also requires a value N inversely proportional to the primary sampling rate, which is read from EEPROM. The sequence of the state machine is as follows :
State Do
If stage = 0000 linearise ADC value using EEPROM look-up
EEPROM address = CH [2: 0] ADC [11 : 0]
else
read setup values from EEPROM such as gain etc.
2 If stage = 0000 write value from EEPROM look-up to
SRAM address = CH [2: 0] 0000 Rdpt [5: 0]
3 Read SO (newest value)
SRAM address = CH [2: 0] {Stage [3: 0]} {Rdpt [5: 0]-0)
4 Read S30 (oldest value)
SRAM address = CH [2: 0] {Stage [3: 0]} {Rdpt [S : OJ-31) 5 Multiply the sum using EEPROM look-up
EEPROM address = 0000 SUM [16: 0]
x Read Sy
SRAM address = CH [2: 0] {Stage [3: 0]} {Rd~pt [5: 0] + y) x+1 Read S30-y SRAM address = CH [2 : 0] {Stage [3: 0]} {rapt [5 : 01-31 + y) x+2 Multiply the sum using EEPROM look-up
EEPROM address = y SUM [16: 0]
y Write result to SRAM
SRAM address = CH [2: 0] {Stage [3: 0] + 1} {Wrpt [5: 0]) Do nothing
N N determines the primary sampling rate and is programmable
At N increment main counter and reset the state machine to I
The main counter is incremented every time a new output is generated from any stage of any channel. It is used to generate Ch [2: 0], Stage [3: 0], Rd Pt [5: 0] and Wr-Pt [5: 0]. To generate these values the number of stages, Max [3: 0], for each channel (i. e. the amount of decimation) must be read for each channel. These are the three least significant bits of the counter C [2: 0]. If, for a given channel, the output is at one eighth the primary sample rate then the output to each stage is calculated as follows:
C [6: 3] Calculate the output of stage Note
0000 0 For 0 C3 = 0
0001 1 For 1 C4= 0 0010 0
0011 2 For 2 C5 = 0
0100 0 0101 1 0110 0 0111 3 For3C6=0 1000 0 1001 1
1010 0
1011 2 1100 0
1101 1 1110 0 1111 3 For 3 C7 0, MAX [3 : 0] =oeil In general the stage number is derived using
If C (3) = 0 then stage = 0000
elsif C (4) = 0 then stage = 0001 elsif C (3+n) = 0 then stage = n
elsif C (I 8) = 0 then stage = 15 end if.
Finally to ensure that the last stage is repeated the following check is used:
If stage > = MAX [3: 0] = 0000 then stage = MAX [3: 0]
else stage = stage
end if
This requires a small combinatorial circuit.
The read pointer Rd Pt [5: 0] provides the offset value for reading the previous values.
The following code is used to generate the read pointer:
If stage =0000 thenRdPt [5: 0] = C [8 : 3]
elsif stage = 0001 tnen Rd~Pt [5 : 0] = C [9 : 4]
elsif stage = n then Rd Pt [5 : 01=C [8+n: 3+n]
elsif stage = 15 then RdPt [5 : 0] = C [23 : 18]
end if.
This requires 5 x 16 to 1 multiplexers which can be implemented very efficiently in the
FPGA.
The write pointer Rd Pt [5: 0] provides the location to which to write the output value from the filter. For the last stage this can be the same as the read pointer (RdPt [5 : 0]) otherwise it will increment at half the rate.
The following code is used to generate the read pointer:
If stage = 0000 then x = C9
elsif stage = 0001 then x = C10 elsif stage = n then x = C (9+n)
elsif stage = 15 then x = C (2)
end if.
This requires a 16 to 1 multiplexer which can be implemented very efficiently in the
FPGA.
Then check if this is the last stage :
If stage = max then Wr~Pt [5 : 0] =RdPt [5 : 0] else lFr~Pt > Ol = X RdPt[5 : 1 endif
It will oe appreciated that the invention achieves a data acquisition circuit and incorporating such a circuit which has the major advantages of :- -a very small size,
-low power consumption because for a given performance clock frequency
and supply current are significantly lower than heretofore,
-low device count, leading to low cost,
-excellent reliability because of the absence of software, and because the
architecture is immune to power-on-reset problems,
-short testing time because of absence of software and the state machine
"works-once-work-always"characteristics, and
-scalability by potential use of higher density FPGA components.
These advantages are very important for harsh data acquisition environments.
The invention is not limited to the embodiments described but may be varied in construction and detail within the scope of the claims.
Claims (13)
- Claims 1. A data acquisition circuit comprising: a plurality of input analog channels, each comprising a signal conditioner and each having an ir. dependent sample rate and filter cut-off point, a digital filter comprising a state machine controlled by a counter for roultiplexing the channels, performing digital. filtering in cascaded stages at sampling rates which are successive binary sub-divisions of the preceding stage beginning with a primary sampling rate, and for selecting an output from one of the stages.
- 2. A circuit as claimed in ciaim 1. wherein the digital filter comprises an FPGA.
- 3. A circuit as claimed in claim I or 2, wherein there is a set of fixed multiplier coefficients for the digital filter multipliers.
- 4. A circuit as claimed in claim 3, wherein the coefficients are stored in a separate read only memory.
- 5. A circuit as claimed in any preceding claim, wherein the read only memory stores a look up table of all possible multiplication results, the table being addressable with an input register value.
- 6. A circuit as claimed in any preceding claim, wherein the counter comprises means for selecting which cascading filter stage provides the output for each channel.
- 7. A circuit as claimed in claim 6, wherein the output is wTitten to a register in the digital filter.
- S. A circuit as claimed in any of claims 4 tao 7 : wherein the read only memory stores values for linearisation of the analog to digits) converters and channel gain settings.
- 9. A circuit as claimed in any preceding claim, wherein the counter controls the state machine via decoders.
- 10. A circuit as claimed in claim 9, wherein the decoders include a cascading stage decoder, a readpointerdecoder,andawritepointer decoder.
- 1 I. A circuit as claimed in any preceding claim, wherein all logic blocks of the digital filter are in hardware.
- 12. A data acquisition circuit substantially as described with reference to the drawings.
- 13. A data acquisition system comprising a circuit as claimed in any preceding claim mounted in a rugged housing.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IE990184A IE990184A1 (en) | 1999-03-05 | 1999-03-05 | A data acquisition circuit |
Publications (3)
Publication Number | Publication Date |
---|---|
GB9905477D0 GB9905477D0 (en) | 1999-05-05 |
GB2347569A true GB2347569A (en) | 2000-09-06 |
GB2347569B GB2347569B (en) | 2003-07-30 |
Family
ID=11042015
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
GB9905477A Expired - Fee Related GB2347569B (en) | 1999-03-05 | 1999-03-11 | A data acquisition circuit |
Country Status (2)
Country | Link |
---|---|
GB (1) | GB2347569B (en) |
IE (1) | IE990184A1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002080043A1 (en) * | 2001-03-30 | 2002-10-10 | Metso Minerals (Tampere) Oy | System for collecting information |
EP4054077A4 (en) * | 2019-09-27 | 2022-11-30 | Amicro Semiconductor Co., Ltd. | Interpolation filter system implemented by digital circuit |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102855788B (en) * | 2012-09-28 | 2015-08-05 | 北京联合大学 | A kind of modularization information process experimental system based on panel computer and method |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4099245A (en) * | 1977-05-05 | 1978-07-04 | Lockheed Electronics Co., Inc. | Transducer signalling apparatus |
GB2177565A (en) * | 1985-06-27 | 1987-01-21 | Norway Geophysical Co | Digital signal processing device working with continuous bit streams |
GB2271681A (en) * | 1992-10-13 | 1994-04-20 | Inst Francais Du Petrole | Digital combination of signals |
WO1994008507A1 (en) * | 1992-10-15 | 1994-04-28 | Aspect Medical Systems, Inc. | Monitor and method for acquiring and processing electrical signals relating to bodily functions |
-
1999
- 1999-03-05 IE IE990184A patent/IE990184A1/en not_active IP Right Cessation
- 1999-03-11 GB GB9905477A patent/GB2347569B/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4099245A (en) * | 1977-05-05 | 1978-07-04 | Lockheed Electronics Co., Inc. | Transducer signalling apparatus |
GB2177565A (en) * | 1985-06-27 | 1987-01-21 | Norway Geophysical Co | Digital signal processing device working with continuous bit streams |
GB2271681A (en) * | 1992-10-13 | 1994-04-20 | Inst Francais Du Petrole | Digital combination of signals |
WO1994008507A1 (en) * | 1992-10-15 | 1994-04-28 | Aspect Medical Systems, Inc. | Monitor and method for acquiring and processing electrical signals relating to bodily functions |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002080043A1 (en) * | 2001-03-30 | 2002-10-10 | Metso Minerals (Tampere) Oy | System for collecting information |
EP4054077A4 (en) * | 2019-09-27 | 2022-11-30 | Amicro Semiconductor Co., Ltd. | Interpolation filter system implemented by digital circuit |
Also Published As
Publication number | Publication date |
---|---|
IE990184A1 (en) | 2000-09-06 |
GB9905477D0 (en) | 1999-05-05 |
GB2347569B (en) | 2003-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6611220B1 (en) | Architecture for decimation algorithm | |
US6125155A (en) | Broad-band digital filtering method and a filter implementing the method | |
CN103269212B (en) | Low cost low-power consumption Multilevel FIR filter implementation method able to programme | |
JPH01175310A (en) | Sampling frequency converting circuit | |
US5103416A (en) | Programmable digital filter | |
US5369606A (en) | Reduced state fir filter | |
JPH07245593A (en) | Data converter with fifo | |
US7702710B2 (en) | Digital signal processor optimized for interpolation and decimation | |
GB2347569A (en) | A data acquisition circuit | |
US5109395A (en) | Decimetor circuit of simple construction and high speed operation | |
EP0589662A2 (en) | Digital signal processing system | |
EP1416639B1 (en) | Analog-to-digital converter with on-chip memory | |
IES81036B2 (en) | A data acquisition circuit | |
EP1542366A1 (en) | ADC with digital error correction | |
KR19980052401A (en) | Address generator | |
EP0426296A2 (en) | Apparatus having modular interpolation architecture | |
US5053984A (en) | Memory for programmable digital filter | |
KR20150040111A (en) | Apparatus and method for coverting data rate | |
EP0373410B1 (en) | Memory for programmable digital filter | |
RU2694743C1 (en) | Digital signal processor with system of commands vliw | |
CN115865044A (en) | Fixed-point IIR filter supporting floating-point coefficients and electronic device | |
Da Sylva et al. | A reconfigurable real-time interpolation beamformer | |
Tao et al. | A FPGA-based implementation of data acquisition and processing for digital protective relays | |
US7359469B2 (en) | Signal delaying device and method for dynamic delaying of a digitally sampled signal | |
Labbé et al. | Performance evaluation of high speed network protocols by emulation on a versatile architecture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
732E | Amendments to the register in respect of changes of name or changes affecting rights (sect. 32/1977) |
Free format text: REGISTERED BETWEEN 20111027 AND 20111102 |
|
PCNP | Patent ceased through non-payment of renewal fee |
Effective date: 20140311 |