GB2347569A - A data acquisition circuit - Google Patents

A data acquisition circuit Download PDF

Info

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
Application number
GB9905477A
Other versions
GB9905477D0 (en
GB2347569B (en
Inventor
Niall Mcgirr
Aaron Mcnelis
Diarmuid Corry
Fergal Bonner
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NABILA Ltd
Original Assignee
NABILA Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NABILA Ltd filed Critical NABILA Ltd
Publication of GB9905477D0 publication Critical patent/GB9905477D0/en
Publication of GB2347569A publication Critical patent/GB2347569A/en
Application granted granted Critical
Publication of GB2347569B publication Critical patent/GB2347569B/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H17/02Frequency selective networks
    • H03H17/0223Computation saving measures; Accelerating measures
    • H03H17/0225Measures concerning the multipliers
    • H03H17/0226Measures concerning the multipliers comprising look-up tables
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H17/02Frequency selective networks
    • H03H17/06Non-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)

  1. 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. 2. A circuit as claimed in ciaim 1. wherein the digital filter comprises an FPGA.
  3. 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. 4. A circuit as claimed in claim 3, wherein the coefficients are stored in a separate read only memory.
  5. 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. 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. 7. A circuit as claimed in claim 6, wherein the output is wTitten to a register in the digital filter.
  8. 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. 9. A circuit as claimed in any preceding claim, wherein the counter controls the state machine via decoders.
  10. 10. A circuit as claimed in claim 9, wherein the decoders include a cascading stage decoder, a readpointerdecoder,andawritepointer decoder.
  11. 1 I. A circuit as claimed in any preceding claim, wherein all logic blocks of the digital filter are in hardware.
  12. 12. A data acquisition circuit substantially as described with reference to the drawings.
  13. 13. A data acquisition system comprising a circuit as claimed in any preceding claim mounted in a rugged housing.
GB9905477A 1999-03-05 1999-03-11 A data acquisition circuit Expired - Fee Related GB2347569B (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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