Tapping a data bus...

Good evening all,

I have tried several things and still have not gotten this right. I am wondering if someone here can help.

I need to detect the first of any voltage change on a wire that is part of a data bus. I would like to detect this voltage without affecting the reception of the data on the other end. So far, everything I have tried messes up the data bus enough that the receiver does not get good data.

So basically I want to passively tap this connection. I would prefer to be able to do it somehow with an opto-isolator in the chain so that I can isolate the tapped network and the rest of my circuitry (which includes my arduino). Can anyone help me with any ideas.

Thanks,
Rob

Most people use a logic analyzer for inspecting traffic on a data bus. One example

What kind of data bus ? What logic level is it? What have you tried to do so far?

Before we make any suggestions, we need to do a 'sanity check'.
We need you to describe as accurately as possible , exactly WHAT it is that you have done.
"Everything I have tried..." means abosolutely nothing to us. You could be chanting or praying to the Gods or who knows what. Please tell us what you mean by "everything I have tried" . Leave nothing out. Keep in mind, at this point we don't even know if you know how to use a DMM, (or even if you even know what that is). Include you experience with electronics. We need to know what language to use in our answer. Keep in mind that you haven't even told us WHAT kind of data bus you are talking about. Do you have any idea how many DIFFERENT kinds of data bus exist in the year 2018 ?
Some of the early data buses were introduced about 1955, so someone born then would be 63 and ready to retire soon. How many data buses could there be now ?
Do you think you could narrow it down a little ?

or,
as the Tinman said:

What kind of data bus ? What logic level is it? What have you tried to do so far?

Just for the record, what you are asking is simple if you have some basic experience. If not, then it will not be so simple.

robhix:
So basically I want to passively tap this connection. I would prefer to be able to do it somehow with an opto-isolator in the chain so that I can isolate the tapped network and the rest of my circuitry (which includes my arduino). Can anyone help me with any ideas.

Thanks,
Rob

An opto isolator is definitely not a passive tap, its a fairly high current drain device and very slow (probably too slow for your "data bus", but as you've not told us what this bus is I can't be sure).

A simple buffer gate is all you need to listen in on a bus, a buffer or inverter or any gate, frankly.

But that's assuming this is standard logic levels, not LVDS or something special.

TTL ?
CMOS ?
CANBUS ?
MODBUS ?
HOTELBUS ?
DeviceNet ?

There's an air of impatience on this forum. A "bludgeon the Newbie into compliance" attitude. And, what's silly is the time that is spent "educating" the Newbie to not waste the "master's" precious time. These are not "padawans" to be shaped into Jedi, or "maggots" at boot camp -- they're just people having difficulty with their project and who have no experience posting on a forum.

If you "venders of wisdom and experience" are so busy, then why are you spending time here? It doesn't make sense.

"Don't waste my time with your vague questions! My time is precious! And I will hate you until you become more descriptive and terse!!"

Then don't waste your time with inexperienced Newbies. Just, with civility, point them to the Forum Guidelines. Or remind yourself that you, once, were a Newbie, and mentor with kindness and compassion.

There's an air of impatience on this forum. A "bludgeon the Newbie into compliance" attitude. And, what's silly is the time that is spent "educating" the Newbie to not waste the "master's" precious time. These are not "padawans" to be shaped into Jedi, or "maggots" at boot camp -- they're just people having difficulty with their project and who have no experience posting on a forum.

If you "venders of wisdom and experience" are so busy, then why are you spending time here? It doesn't make sense.

"Don't waste my time with your vague questions! My time is precious! And I will hate you until you become more descriptive and terse!!"

Then don't waste your time with inexperienced Newbies. Just, with civility, point them to the Forum Guidelines. Or remind yourself that you, once, were a Newbie, and mentor with kindness and compassion.

@ReverseEMF ,

If you are not an engineering technician or an engineer or a professional with at least 10 years of hands on electronics experience , then you can not possibly understand what is required to answer the OP's question.

The Tinman succintly summed up the missing information. I elaborated on it.

Mark astutely pointed out the "unpassiveness" of using an opt-isolator.

I am waiting for more info to venture a suggestion. Without knowing the technology of the bus, it's hard to suggest anything.

This is not exactly a Newbie level request. it is a little more advanced than blinking an led, but still doable with the correct information.

All of the statements you have made are conjecture and assumptions.

Comments about "bludgeoning the Newbie .." etc in response to request for more information suggest that
you don't have the answer to the OP's question. I am happy to answer his question when he answers ours.
If you know of a way to answer technical questions with no information I would be interested to see how you do it.

As far as "don't waste our time...etc" please post a quote of where someone said that in this thread
And FYI, most of us are experienced professionals .

Many of us are retired and in no hurry. I , on the other hand, am working 10 hours a day , 5 days a week , so yes, I am busy, but I took time our from my day to ask the OP for more information. What have you contributed ?

With your 27 posts and 2 karma points since June of 2016, one might wonder how it is that you only have 2 karma points in 2 years. (average of 1 karma point per year). Could it be that you don't have any answers ?

The attachment show the circuit I have now.

It is a serial bus with a voltage of +/- 12V. I am not 100% sure of the protocol. The truth is I do not need to know (at least that is what we think). There is only one message that ever goes across this bus. Once I detect it (via any voltage change on the bus), it triggers the interrupt on an Arduino and it reports out via an ethernet card that the message started.

Current measurements using a power supply as my bus signal show about a 40 microamp current in the base of the input resistor. The device the bus is going to shows no data received when my device is connected to the bus. With my device disconnected it gets data as expected. I am guessing I need to draw even less current from the bus but I am unsure as to how to go about it.

Now big deal about the bludgeoning, I did ask a vague question. At the time I did not have my current circuit available so I did the best I could.

Thanks for the help.

I don't need a schematic. It's obviously RS-232.
RS-232 Breakout boxes are readily available.
You can get a breakout and connect it to an RS-232 Passive Tap

If that's too pricey there are other options.
The most logical method is use a breakout and connect it to a PC (that has an RS-232 connector)

As already mentioned, an opt is not the right approach, not to mention that your circuit doesn't take into account the +/- 12V signals.

I would recommend an RS-232 BREAKOUT BOX

Do you know the message you are trying to detect ?
Do you know how RS-232 works ? (negative logic)

I would think a breakout tap to patch it to a PC and then a script to read the RS-232 on the PC.

If that's too much trouble get an RS232 to USB adaptor.

It is not RS-232. It is serial, but I do know it is not RS-232.

Also, as I have said befoer, I do not need to decode the message or even know what it is. I just need to detect a voltage change on this bus and turn that into an interrupt for the Arduino. It would be nice id the circuit used to detect the voltage change would also allow the bus to operate normally.

Thanks again.

Yeah, I don't quite get ReverseEMF's post either. I didn't see anything wrong with any of the posts. Nevertheless,

I'm understanding you don't necessarily want to read ANY data, only know when data is being sent. Any idea of how often that is? Are you looking to only get a single 5V pulse out?

Serial +/- 12V IS RS-232

robhix:
It is not RS-232. It is serial, but I do know it is not RS-232.

On your diagram from post #8 you show the input signal as "TRIG(+).IN" and "TRIG(-).IN" which suggests differential signalling, but I don't know if that's your nomenclature or if it's so designated on the source of this signal. If it's differential, connecting "TRIG(-).IN" to ground might be a problem. I haven't worked much with current loop protocols, but I think they also use a +/- labeling and again one doesn't want to ground one of the signals.

More generally, it's kind of difficult to evaluate a monitoring approach for a signal without a better indication of the signal characteristic. An oscilloscope capture would be particularly useful. Also some indication of the components (e.g. this is sensor X connected to an industrial controller) might help narrow down the possible protocols.

How many wires are there?

The circuit shown is not designed for a +/- 12V input signal and the use of the "Trig" labels are inappropriate because if you are trying to implement a "passive " detection (which you are not) then the input signal should be simply " input signal".
(a "trigger" is something else entirely and doesn"t have a "+" and a "-" , but rather a "Trig" and GND.

Are you going to tell us ANYTHING about this databus, like what it is , a photo of the device or anything other than your speculation ?

I have told you about all I am being told about the databus. Why am I not being told more? Well, because it is not thought that I need more information.

So, the trigger labeling may not be what you consider to be correct, but this is part of a larger system that, in general, takes a trigger signal that is anywhere from 5V to 32V and generates an interrupt for the Arduio which then controls a relay to open/close other signal paths with predictable timing. Basically, I am insterting faults into a system. the TRIG(-) is nothing more than the ground reference for the triggering signal. It is NOT differential signaling. I know experience would say +/- 12V would be RS-232, but this is not RS-232. If it were, the problem would be trivial, I would have ordered and RS-232 passive tap and been done with it.

With the databus I am trying to use that same circuitry (at least for now) to detect a voltage change (any voltage change) on the data bus. Like I have said once before, there is only one message on the databus. And I need to detect when it is on the databus (using the voltage change). This "trigger" signal generates an interrupt to the Arduino which then out puts a single UDP message on the network that the message was sent. From that point network analysis software is used to analyze the network traffic to get the needed results.

Thanks again...

So , you don't know what this equipment is or you don't want to tell us ?
Obviously , you must have some idea what kind of equipment this is , so why are you not telling us ?
Also, you have reiterated there is only one signal but you have not answered the question about what is the signal ? (what message is it sending ?)
And why are you inserting faults into the system ?

How about telling us WHY you are trying to do what you are trying to do ?

Current measurements using a power supply as my bus signal show about a 40 microamp current in the base of the input resistor. The device the bus is going to shows no data received when my device is connected to the bus. With my device disconnected it gets data as expected. I am guessing I need to draw even less current from the bus but I am unsure as to how to go about it.

No, you need to scrap your circuit and use the right kind of circuitry.
If you want to do that , you can start by telling us exactly what this databus is coming from (what kind of equipment) and why you are doing this .

Have you tried a simple diode forward biased into a voltage divider? That could give you a signal more easily digested by the arduino, as it would be a 0-5V signal, but would also send the whole positive going stream. If you wanted to only get the initial positive going change for "x" timeframe, you could run the centertap of the divider into one pin of an AND gate and the second pin from the arduino digital out. When you get the positive transition, set the arduino pin to low for "x" period of time.

If the loading is still to great, increase the values of the divider. You can also use a hex inverter as a high impedance buffer, but the logic will be inverted.

Just remember, grounds must be connected.

You told us you measured +-12 volts, but you did NOT tell us where the other lead of your DMM was connected. Does your circuit have a ground wire where you connected the other DMM lead? Or is there another data wire where you connected the DMM lead?

Another question, the DMMs I have used cannot measure a data signal because the DMM does not digitalize fast enough. You need a scope.

And another test you can do is to put a LED in series with a 1k resistor, some similar higher value and put the LED lead and other end of the resistor across the data wire and ground. LED will blink with data.

Paul