Reply by Oliver Betz February 21, 20092009-02-21
Paul Keinanen wrote:

[...]

>>Paul: You certainly noticed the word "usually" in my post. And do you >>know of real world current loop "bus" implementations used today where >>the idle station also receives a signal? How many bidirectional >>stations can participate? > >It is just one or two years ago when I told youngsters how to connect >seven Premid (RF-tag) readers with current loop interface into a >single curent loop, in which the master polled the readers. In fact, >it worked better than I had expected, since apparently the >transmitters used a FET instead of a bipolar, since the voltage drop >was very low across the transmitters. The number of stations depend on >the loop voltage and the breakdown voltage of the (active) >transmitter.
interesting. The stations send _and_ listen to the bus traffic alternatively? I guess they are bus powered and therefore have no need for isolation, since they have no other connection. Oliver -- Oliver Betz, Muenchen (oliverbetz.de)
Reply by Paul Keinanen February 21, 20092009-02-21
On Fri, 20 Feb 2009 09:46:46 +0100, Oliver Betz <OBetz@despammed.com>
wrote:

>nemo wrote: > >[...] > >>> >And the current loop is usually no bus with several devices since the >>> >receiver takes all the _energy_ of the signal. >>> >>> In current loop systems with more than two stations, you simply put >>> them in series. All inactive stations are in the idle (mark) state >>> conducting current through the loop and only the active transmitter >>> disrupts the loop current. > >Paul: You certainly noticed the word "usually" in my post. And do you >know of real world current loop "bus" implementations used today where >the idle station also receives a signal? How many bidirectional >stations can participate?
It is just one or two years ago when I told youngsters how to connect seven Premid (RF-tag) readers with current loop interface into a single curent loop, in which the master polled the readers. In fact, it worked better than I had expected, since apparently the transmitters used a FET instead of a bipolar, since the voltage drop was very low across the transmitters. The number of stations depend on the loop voltage and the breakdown voltage of the (active) transmitter. I have never said that the 0-20 (or 0-60) mA current loop would be suitable for high data rates, but certainly sufficient for those readers (9600 bit/s) or for the telegraph key and pen system used in early telegraph systems. The problems with the mismatched current loop systems became apparent in the first transatlantic telegraphic cable. Paul
Reply by CBFalconer February 20, 20092009-02-20
Paul Keinanen wrote:
>
... snip ...
> > Serial connection of current loop stations is more than 150 years > old in telegraph stations along the early railroad lines. It is > from those days that we have the expression mark and space, i.e. > the pen made a mark on a moving paper, when there was a current > in a loop.
Makes sense. Now, after using them for 50 years, I will finally know!! This may well help me remember which marks a 1 bit. -- [mail]: Chuck F (cbfalconer at maineline dot net) [page]: <http://cbfalconer.home.att.net> Try the download section.
Reply by Oliver Betz February 20, 20092009-02-20
rickman wrote:

[...]

>> >> ..with a miserable noise margin. That's IMO the worst problem of >> >> RS485. I can't believe that the inventors of RS485 didn't consider the >> >> idle bus. >> >> >There are other ways of mitigating noise. &#4294967295;RS-485 uses differential >> >signaling which helps a lot. &#4294967295;Twisted pair further reduces pickup of >> >noise. >> >> CAN uses the same medium and also a differential signal. > >What does that have to do with anything?
When I wrote that RS485 noise margin of the idle bus is much worse than CAN, you replied that TP differential signaling mitigates noise - but that's irrelevant since CAN does the same. [...]
>Does dominant/recessive map into 0 and 1?
I explained this in the post you have replied to in lines 22 to 24: "The cable is driven actively to the dominant state. The recessive state is undriven, 0V." You can look also here: http://lmgtfy.com/?q=dominant+recessive+can (SCNR).
> What is the noise margin of CAN?
As I'm at home today, I have no data sheets present. You will be able to check this yourself? [...]
>> >> >detect a short on the bus when the driver is enabled. &#4294967295;Not only is >> >> >> _When_ do you detect the short if the short is 100m apart? >> >> >What does that mean? &#4294967295;I don't get it? >> >> Delay - the signal has to travel forth and back. > >I still ask, what does that mean? Are you suggesting that if the >short is transient it could be missed?
Maybe. You have to wait the time the signal needs to travel to the other transmitter and back again. Read my other post: "100m forth and back with 0,5c results in more than one microsecond delay". During this interval, you simply can't detect a collision. With no system (well, _maybe_ quantum physic might help using photon pairs but I'm not sure about). And as I wrote, there might be conditions where you can't even detect a static collision state due to driver strength matching and line impedances. Oliver -- Oliver Betz, Muenchen (oliverbetz.de)
Reply by Oliver Betz February 20, 20092009-02-20
nemo wrote:

[...]

>> >And the current loop is usually no bus with several devices since the >> >receiver takes all the _energy_ of the signal. >> >> In current loop systems with more than two stations, you simply put >> them in series. All inactive stations are in the idle (mark) state >> conducting current through the loop and only the active transmitter >> disrupts the loop current.
Paul: You certainly noticed the word "usually" in my post. And do you know of real world current loop "bus" implementations used today where the idle station also receives a signal? How many bidirectional stations can participate? With integrated circuits, it's harder to make a low impedance current receiver (with good common mode suppression) than a high impedance voltage receiver. Well, with current sensing relays, I might consider a current signaling bus. A bit hard to operate it even at the lowest usual CAN speed... [...]
>Read what Oliver wrote and read what you wrote and tell me what is >wrong with this picture...
Nothing. Basically both methods are possible.
>How do you connected multiple receivers in series while maintaining a >match between the impedance of the line and the receiver impedance?
theoretically you can make also very low impedance current receivers. It's just harder to do.
>If I understand Oliver correctly that dominant/recessive map to a 1 >and a 0 state, then if CAN uses a 5 volt driver, it will by definition >have half the noise margin of RS-485 because it is uni-polar rather
That's true as long as the RS485 line is driven actively. As I wrote, the problem with RS485 is the idle bus. There was a migration from a two state system to a three state system, and the designers didn't adapt the the thresholds. Please note that this was not necessarily a fault of the designers of RS485, because you can have arbitration methods where the undefined state of the undriven bus doesn't hurt. For example "DIN Messbus" used a RS422 signal from a master to slaves for arbitration, and the slaves responded via RS485 (no, I never used DIN Messbus). But some people wanted to use RS485 as single wire (pair) bus and needed to invent kludges (bias termination etc.) to make it work. BTW: CAN is also not a perfect solution for every problem. It's limit is very high speed over long distances due to it's non-destructive arbitration method. Oliver -- Oliver Betz, Muenchen (oliverbetz.de)
Reply by nemo February 20, 20092009-02-20
On Feb 19, 11:58 pm, Paul Keinanen <keina...@sci.fi> wrote:
> On Thu, 19 Feb 2009 17:54:20 +0100, Oliver Betz <OB...@despammed.com> > wrote: > > >"Meindert Sprang" wrote: > >>I stand corrected. Funny when you look at it: CAN is just a high speed > >>version of the old fashioned current loop using an opto-coupler... > > >there are at least two significant differences: > > >The current loop is usually not terminated with the line impedance. > >Therefore you can't make it very fast. > > >And the current loop is usually no bus with several devices since the > >receiver takes all the _energy_ of the signal. > > In current loop systems with more than two stations, you simply put > them in series. All inactive stations are in the idle (mark) state > conducting current through the loop and only the active transmitter > disrupts the loop current. > > Serial connection of current loop stations is more than 150 years old > in telegraph stations along the early railroad lines. It is from those > days that we have the expression mark and space, i.e. the pen made a > mark on a moving paper, when there was a current in a loop.
Read what Oliver wrote and read what you wrote and tell me what is wrong with this picture... How do you connected multiple receivers in series while maintaining a match between the impedance of the line and the receiver impedance? In a voltage based system you can use a single load and match the impedance easily. Using multiple receivers make it hard to get reasonable voltage waveforms on each receiver. Putting multiple receivers in series in a current loop will mess up an impedance match in an analogous way. So how would you make this work in a high speed impedance matched system? Virtually any impedance matched, differential system is about the same as what has been described for CAN, a current loop. This is because the propagation of the voltage wavefront requires a constant current as long as the wave is propagating, then the load impedance requires the same current to maintain that voltage on the load. That is what prevents the reflections. If I understand Oliver correctly that dominant/recessive map to a 1 and a 0 state, then if CAN uses a 5 volt driver, it will by definition have half the noise margin of RS-485 because it is uni-polar rather than bi-polar. RS-485 has close to 10 volts of driver range to work with, +5 to -5 volts differential. If CAN is on/off, then it can only have a 5 volt range = +5 to 0 volts (assuming it uses the same 5 volt power supply). Is CAN a 5 volt interface? Does dominant/recessive map to the 1/0 state? Rick
Reply by Paul Keinanen February 20, 20092009-02-20
On Thu, 19 Feb 2009 17:54:20 +0100, Oliver Betz <OBetz@despammed.com>
wrote:

>"Meindert Sprang" wrote:
>>I stand corrected. Funny when you look at it: CAN is just a high speed >>version of the old fashioned current loop using an opto-coupler... > >there are at least two significant differences: > >The current loop is usually not terminated with the line impedance. >Therefore you can't make it very fast. > >And the current loop is usually no bus with several devices since the >receiver takes all the _energy_ of the signal.
In current loop systems with more than two stations, you simply put them in series. All inactive stations are in the idle (mark) state conducting current through the loop and only the active transmitter disrupts the loop current. Serial connection of current loop stations is more than 150 years old in telegraph stations along the early railroad lines. It is from those days that we have the expression mark and space, i.e. the pen made a mark on a moving paper, when there was a current in a loop. Paul
Reply by rickman February 19, 20092009-02-19
On Feb 18, 3:00=A0am, Oliver Betz <ob...@despammed.com> wrote:
> rickman wrote: > > [...] > > >> ..with a miserable noise margin. That's IMO the worst problem of > >> RS485. I can't believe that the inventors of RS485 didn't consider the > >> idle bus. > > >There are other ways of mitigating noise. =A0RS-485 uses differential > >signaling which helps a lot. =A0Twisted pair further reduces pickup of > >noise. > > CAN uses the same medium and also a differential signal.
What does that have to do with anything?
> >> CAN has much more noise margin. But many people don't understand that > >> the line doesn't need to be driven actively in both directions to get > >> decent speed. > > >Can you explain that? =A0If both ends don't drive actively, what do they > >do? > > CAN has a dominant and a recessive state. The cable is driven actively > to the dominant state. The recessive state is undriven, 0V. The > dominant -> recessive slope is nevertheless _fast_ if the cable is > terminated correctly.
Does dominant/recessive map into 0 and 1? What is the noise margin of CAN?
> [LTC1482 CD signal] > > >> >So you can implement a CTS protocol (but not an RTS-CTS handshake) to > >> >check for the bus being driven before you transmit. =A0This will also > > >> since there is no collsion detection, it won't work reliably. You need > >> some arbitration method in a higher layer. > > >I'm not sure why you say that. =A0If each sender also receives his > >signal, a collision will result in a received message that does not > >match what was sent. > > Likely, but not guaranteed with long lines. I wouldn't rely on a > design working only because two drivers _likely_ have different > current limits. > > >Besides, using collision detection is a poor use of bandwidth on a > > You brought the CD signal into the discussion.
You are mistaken. I was responding to someone who said that it was necessary to provide some form of bus arbitration (such as collision detection) to use a multi-party line such as RS-485. In reality, that is not needed since the sharing methode can be built into the protocol for the typical, simple RS-485 application. I was pointing out that there *are* devices which include a CD function. I only found one, but one is more than zero.
> [...] > > >> >detect a short on the bus when the driver is enabled. =A0Not only is > > >> _When_ do you detect the short if the short is 100m apart? > > >What does that mean? =A0I don't get it? > > Delay - the signal has to travel forth and back.
I still ask, what does that mean? Are you suggesting that if the short is transient it could be missed? Rick
Reply by Oliver Betz February 19, 20092009-02-19
"Meindert Sprang" wrote:

>> >1 and 0 both actively with a transistor/fet. With CAN, you only drive the >> >line with a transistor to 0. The 1 state is made with pull-ups (resistor >or >> >current source). >> >> no pullup - just the terminating resistor, completely passive. The >> undriven CAN has 0V differential voltage. > >I stand corrected. Funny when you look at it: CAN is just a high speed >version of the old fashioned current loop using an opto-coupler...
there are at least two significant differences: The current loop is usually not terminated with the line impedance. Therefore you can't make it very fast. And the current loop is usually no bus with several devices since the receiver takes all the _energy_ of the signal. Oliver -- Oliver Betz, Muenchen (oliverbetz.de)
Reply by Meindert Sprang February 18, 20092009-02-18
"Oliver Betz" <obetz@despammed.com> wrote in message
news:dsenp4luqo2fjau5kjm51m4qh7itq21q5d@z1.oliverbetz.de...
> "Meindert Sprang" wrote: > >He doesn't say "both ends", but "both directions", meaning that you drive
a
> >1 and 0 both actively with a transistor/fet. With CAN, you only drive the > >line with a transistor to 0. The 1 state is made with pull-ups (resistor
or
> >current source). > > no pullup - just the terminating resistor, completely passive. The > undriven CAN has 0V differential voltage.
I stand corrected. Funny when you look at it: CAN is just a high speed version of the old fashioned current loop using an opto-coupler... Meindert