Battery monitoring system

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From English to

Threaded View

I'm looking for advice. I'm designing a battery monitoring system and
would like to base it on the PC-104 form factor.  I need to measure
~200 battery voltage taps from a string of lead-acid batteries, ~ 3VDC
each. Additionally the system needs to measure some nearby temperatures

My questions:

1. A)Should I consider a PC-104 CPU board that integrates the A/D function
   on-board? Why or why not? B)Or, use a separate Analog input board?

2. I would like to switch 16 signals at a time into the data acq. front end.
   I plan to use solid state relay switching board (custom designed)
   controlled by the CPU. Anybody do something similar using different
   switching devices (optical isolaters, voltage comparitors, ??) Would it
   be a good idea to digitize the data onboard these cards, vice #1 above?

3. I need a system that will last a long time.  What can I do to avoid
   getting stuck with an obsolete PC104 CPU board down the road, if no
   longer supported?

4. I would like to scale this system to a general purpose data acquisition
   system (~100 channels) that would acquire 100KHz signals. With a PC104
   based system measuring lots of data fairly fast, what's the best way
   to stream this data to disk quickly?  Is it practical with the PC104
   form factor?  I could divide and conquer. Could someone point me to
   an example of how to specify such a system, so I could identify the

Thanks in advance for any help. I don't expect anyone to design this for me,
but hopefully give advice to keep me from heading down the wrong path and
wasting time. If I can't design something quickly, I probably won't get the

P.S. I'd like to use QNX as the embedded OS, but I'm certainly open to
other suggestions.


Re: Battery monitoring system

Quoted text here. Click to load it

Confirm that the 200 battery cells are all in series and that you need to
measure the voltage across each one. This can lead you into quite a few
problem areas unless you get your system organised very well to start with.
Having confirmed this assumption then I am certain we will be able to steer
your thoughts in the most appropriate direction.

There is nothing wrong in using the PC104 form factor and any ready built
systems based on it for this type of task but your initial attention should
really be in the interfacing aspects of this project. For the most part in
projects like this a processor is a processor is a processor is a.......

We've slightly trimmed the long signature. Click to see the full one.
Re: Battery monitoring system
Hi and Thanks!,
Yes, the number of batteries is actually 420 in the string.
But were using two data acquisition modules which would
divide the number of cells in half (210).
A single data acquisition module with a 16 channel A/D is
currently how I'm conceptualizing each Data Acq. Module,
so I would switch in 16 channels at a time from the string,
through some multiplexing scheme into the D/A.  

I'm curious about the "flying capacitor input multiplexer"
Tom Woodrow mentioned. Tom, would you mind describing this
in some more detail? I'll make an attempt to write up my
ideas on the front end interface, which hopefully you'd be
willing to comment upon.


Re: Battery monitoring system
With that many batteries in series, and ground assumed to be the bottom
battery, you need some sort of isolation between both inputs and ground.

For example the 145th battery up the chain is floating at what (1.5 *
145) or about 220 volts and it must be measured from its negative to its
positive terminal. This means that the (-) ADC input must be at 217.5
VDC and the (+) terminal at 219VDC.

The common mode limit if most ADC inputs is way less than 20VDC. The
flying capacitor uses a method by which the capacitir is connected
across an individual cell and charged and the capacitir is then switched
away from the battery to the input of the ADC for processing.

Tom Woodrow

omar wrote:

Quoted text here. Click to load it
Quoted text here. Click to load it

Re: Battery monitoring system

Quoted text here. Click to load it

That brings up the question of what you can use to switch the
capacitor.  If you use solid state switches of some kind, then you
still will have a common mode problem.  Of course you could use dry
relay contacts, but that would be messy.
-Robert Scott
 Ypsilanti, Michigan
(Reply through this forum, not by direct e-mail to me, as automatic reply
address is fake.)

Re: Battery monitoring system
No, can't use solid state. it has got to be relays or opto-isolated
analog awitches.

In any case you MUST use break before make. We once used Thermosen
relays and then switched CP Claire opto-isolated analog switches. We
used four opto devices, two on the battery side and two on the
measurement side.

BTW on a battery system like the one being talked about, the maximum
float voltage during charge is way above the actual battery voltage. For
instance a 130VDC substation battery float voltage during charging can
be as high as 170+ volts. Gotta take that into consideration during any

Tom Woodrow

Robert Scott wrote:

Quoted text here. Click to load it
address is fake.)

Re: Battery monitoring system

Quoted text here. Click to load it

Good heavens.  420 Pb/SO_4 cells in a single string?  That's roughly
one kV --- what on earth would you need *that* for?  

I would strongly advise against any centralized ADC solution in this
kind of setup.  You'll be way better off with lots of small, local
ADCs each monitoring a group of cells, and an opto-isolated or
optical-signal field bus to connect them all to the central data
collector.  You *don't* want 1kV of potential difference driven by
lead cells anywhere near your PC104.

Hans-Bernhard Broeker (
Even if all the snow were burnt, ashes would remain.

Re: Battery monitoring system

Quoted text here. Click to load it

That would give you problems in isolation between the two units. You do
need to ensure proper isolation between the channels. Flying capacitor
techniques or separate fully isolated ADC modules will be required for this.


Quoted text here. Click to load it

The usual way of applying a flying capacitor is by using a double pole
double throw mercury wetted relay to switch the capacitor first across the
battery cell then to across the ADC input. This way you can use one ADC
and, by selecting each relay in turn, transfer the charge from the battery
to the ADC in complete isolation. With about 1kV of battery you should pay
particular attention to the wiring details and insulation requirements. As
you stated that you will have a 16 channel A/D unit available you will be
able to do the measuring in groups of 16.

Personally, for this sort of task, I would be inclined to design the best
individual isolated ADC unit that could be networked and make enough of
them to suit your needs. Pay close attention to the input to network
isolation factors.

If you go with the flying capacitor method then pay close attention to
insulation, creepage and clearance details on your circuit board. Spend out
a biyt more for quality mercury wetted relays as skimping on these will
lead to poorer performance.

As for the temperature measurements, you should ensure these are isolated
from the voltage measuring circuits. If it is battery temperatures you are
measuring then I expect either thermocouples or Pt100's might be the ones
you choose.

We've slightly trimmed the long signature. Click to see the full one.
Re: Battery monitoring system
how many batteries in series? watch out for the common mode
charactistics of your inputs. This sounds like a job for a flying
capacitor input multiplexer like we used to use on RTUs.

Tom Woodrow

omar wrote:
Quoted text here. Click to load it

Re: Battery monitoring system
Quoted text here. Click to load it

First thing I'd ask is, "What are you gonnna do with the information
once you've acquired it?"  It doesn't do any good to monitor something
you can't control.  If there's a control mechanism for each cell, is
there some part of that that can be exploited in the measurement?

Do you REALLY, REALLY need to measure every cell.  Can you get 80% of
the value by measuring groups of cells?  If you're only looking for
"BAD" cells, you may not need much accuracy at all.

Some things don't scale very this one.
How about a completely different approach?
Generate a ramp and use 200 comparators that output a pulse when
the ramp passes a battery tap voltage.  Measure the time between pulses
and do the math.  Hooking up 200 wires will cost you about as much as
the 200 comparators.  I have a vague vision of a floating comparator
with inductively coupled pulse output somehow riding the ramp, but
the details are still stuck in my xtal ball.

Or maybe a pair of optocouplers.  One gets turned on to charge a cap
from the cell thru the emitter of the second one that gets fed back to
the measurement system.  Probably have to measure
more than one cell at a time to get enough volts to make it work.
Put 'em in a circle and rotate the scanning light source ;-)


Return address is VALID.
500MHz Tek DSOscilloscope TDS540 $2200
We've slightly trimmed the long signature. Click to see the full one.
Re: Battery monitoring system

Quoted text here. Click to load it

Why have a cap at all?
Connect the cell to a optoA-led in series with a resistor and a second
Driving the optoB-transistor will signal a optoA-transistor current at
the measuring side.

This seems the simplest solution. It all boils down to the accuracy
required. Most likely this needs calibration per cell/opty unit, but
this can be handled from then on in software.

My first worry would be the variation of temperature on the led
current and/or the current transfer ratio.
Having said that, was one of your requirements not also to measure
temperature? This makes the calibration/temperature compensation not
too simple, but hey, the circuit will be.

By the way, minimum cell voltage that can be measured is probably
around 1.5 to 2V or so if you keep the optoA-led current low when on.

Also watch out for the 'dark current' if you would connect all the
optoB-transistors in parallel at the measuring side. Select low dark
current ones or measure several separately.


Re: Battery monitoring system

Quoted text here. Click to load it

I meant optoA-transistor here of course

Re: Battery monitoring system

Quoted text here. Click to load it

Sounds that you are going to need 25 completely isolated custom made
boards, each handling 16 inputs.

With 16 batteries in series, the maximum tap voltage would be 48 V
relative to the "local" ground tap. It would be practical to use
simple resistive voltage dividers from each tap to the local ground
tap, so that the voltage divider output would be in the range 0..5 V
relative to the local ground tap, or whatever the ADC mux input range
is. With 100 kohm : 10 kohm voltage divider, the ADC input voltage
would be 1/11 of the tap voltage. With such high resistances, the
power dissipation in each resistor would be quite low.  

Powering each module would be easy, since you could get the power from
3-4 taps above the local ground tap.

To get the data out, asynchronous serial data could be used. The
simplest form would be to use a current loop with optoisolators. Put
all photo transistors  in series (check for max Vce) in each module
and feed the string by a constant current source. On each module, the
transmit data controls the LED with the idle "1" keeping the LED on to
maintain continuity in the series chain. You may have to use two
separate chains, if the max Vce of the photo transistor of the
optoisolator is less than about 75-100 V.

An other series chain would be needed to send the read requests
individually to each module with some simple series protocol that can
address each module individually.

Thus you would need 25 completely isolated custom made modules, each
containing a simple processor with an ADC and a UART (or use bit
banging with some parallel ports), a 16:1 multiplexor, sixteen
100kohm:10kohm voltage dividers,  and two optoisolators and a voltage

The serial data current loop(s) would then be connected to your PC-104
or whatever processor board using one or two serial ports through


Re: Battery monitoring system
Quoted text here. Click to load it


You might be interested in the "Exploring QNX Neutrino" article in the
Jan. 2002 issue of Circuit Cellar Magazine that talks about QNX on a
Versalogic PC104 Panther board.

The files associated with the article. talk about booting the system
from compact flash and asynchronous serial communications.
QNXBootCF.pdf  includes additional references.  
QNXSerialio.pdf  asynchronous serial communications.  
timer.c and watchdog.c are two demo files.

As an alternative to a centralized measurement, have you considered a
network of microcontrollers for measuring battery voltages, (RS422
network for example).  This would allow you to scale the system and
avoid messing with relay switching.  Node costs would be relatively
inexpensive, (example MicroChip PICKit board sells at $36 quantity 1)
and it includes 4 10bit ADCs.   You could measure temperature at each
node.    And you could easily replace the PC104 system in the future
and still use the existing network as long as you continued to support
the communications protocol.  I've worked with such a system.  Drop me
a line if you want more details.  AntiSPAM

RS422 would not be able to "practically" handle 100 channels at
100kHz, but I suspect this isn't really what you are doing since you
only want to measure 16 channels at a time.  I don't know your spec so
I don't know how long you have to stream this data.   I suppose if you
wanted to use USB as a network to also power the micros that this
might be possible, but I've not used USB under QNX. The USB1 would add
to the per node cost, but would not give you a huge  advantage over a
well designed RS422 network..

Why do you have to measure battery voltage at 100kHz?
What's the purpose of the PC104 form factor, (mainly size?)

Site Timeline