RE: Event triggered Sensor Nodes

"Chuck Hackett" <[email protected]> Thu, 2 Apr 2015 22:06:16 -0400
Newsgroups gmane.comp.hardware.bus.can
Message-ID <[email protected]>
Hi Colin,

 

To my knowledge (see below) you MUST ensure that two different nodes NEVER
send the same arbitration field.  If they happen to send at the same instant
(most likely after the 'quite' period after a transmission by another node)
they will not detect that they collided (no arbitration error) but will get
a CRC error on their data area (i.e.: data differences will cause recessive
bits to be destroyed by dominant bits from the other sender).  In this case
the two (or more) CAN Controllers will keep trying to send their (different)
messages and the controller will eventually report a message/bus transmit
error.

 

Easiest way might be to embed a unique 'node number' in the arbitration
field of the messages.

 

I only have experience with CAN in my application (ride-on railroad signal
system, 1,000's of feet of bus buried outdoors) using nodes that I designed
and build but I'm sure someone here will correct/clarify the above if I'm
wrong.

 

I have gained 90% of my 'non-datasheet' CAN info from this list and I am
grateful to all who have helped me .

 

BTW: To all: My application is now running MUCH better after the guidance
from the list.  My typical bus 'failures' are now only due to lightning
strikes but that too has been beaten down to an acceptable level (the
application can't financially support "NASA" protection but I think I have
found a good cost-benefit balance J).

 

Cheers,

 

Chuck Hackett

"Good judgment comes from experience, experience comes from bad judgment"

7.5" gauge Union Pacific Northern (4-8-4) 844
<http://www.whitetrout.net/Chuck> http://www.whitetrout.net/Chuck

 

 

 

From: [email protected]
[mailto:[email protected]] On Behalf Of Colin
Watson
Sent: Monday, January 19, 2015 7:31 PM
To: [email protected]
Subject: [CANLIST] Event triggered Sensor Nodes

 

Hi,

 

Upon reading the MCP2510 data sheet, I am not sure how to set up a data
logging node to accept messages from about 100 

sensor nodes being animal feed bin weighers triggered by animals entering
and leaving individual feed gates.

 

The feed fence nodes will transmit data to be read by a single node so I am
considering setting the arbitration field of all the

fence nodes to a common I.D. say 999 and to set the filters in the data
logging node to accept this I.D. as the entry to the

receiving buffer. The animal/feeder assignment can be part of the 8 byte
data frame to ensure animal feed consumptions

are recorded correctly.

 

Alternatively I could build a transmit code individual to every sensor node
but include a common bit segment to be selected

by the buffer mask.

 

The animal entry into feeders will of course be random and collisions will
be rare because of the fast CAN bus baud rate when 

when compared to the randon animal behaviour - however collisions will
happen and I expect a queue until all coincident

data has been passed.

 

If the transmit I.D.s all have the same I.D. will bus arbitration work. I
think it should since the process simply  waits for a

quiet bus.

 

My question is:

 

WHAT ARE THE BEST OPTIONS FOR SETTING UP A MULTI-SENSOR NODE COMMUNICATION
WITH A CENTRAL

DATA LOGGING NODE WHERE THE SYSTEM IS EVENT DRIVEN BY SENSOR DATA BECOMING
AVAILABLE ?

 

My experience with CAN bus is nil but it seems a good option for this
application.

 

An experienced comment would be immensely helpful.

 

Colin Watson.  Edinburgh