'Multi Access protocol'
part 0 16 bytes
Byron A Jeff
If you could, turn off the HTML please.
> I am building an RS485 communication network which has several nodes =
> connected in multidrop to a common bus. (2 wire + GND ,half duplex).
> I am using PIC16F86 and writing code in 'C'.
> Does anyone have a reliable and compact protocol I can implement on my =
> network to allow nodes to communicate with each other with minimal =
> collisions ?
Actually the best way to do it is with no collisions at all. Two basic
ways of doing it:
1) Polling. Have a primary node give each seconday node an opportunity to
use the line. Biggest problem is the latency if only one or two stations
want to speak.
2) Arbitration. This is one I've been thinking about but haven't yet
implemented. Someone (I think it was Scott) posted a pretty cool protocol
that pulsed then released the line during arbitration phase. Then each
station who wanted the line would wait. One of two things could happen.
First the line remained idle until the node's assigned time slot. In which
case the node would assert the line thereby grabbing it. Or at some time
before the assigned time, someone else grabbed the line in which case
the node waits until the next arbitration cycle.
I was concerned about fairness where an earlier node could hog the line. So
I proposed adding a set of secondary time slots after the primary slots.
Once a node has used the line, they park in their secondary slot until
no one uses a primary slot, then all secondary slot holders can move back
to their primary slots. So in situations where everyone wants to talk all
the time, each node that uses the line would be forced to wait until everyone
who hadn't used the line finished.
Again I haven't implemented any of this yet. It's on my list of things to
do but it may be 6 months before I get to it.
Hope the idea helps. For quick and dirty use polling.
Thanks for your ideas. I did consider time slots and polling also but came
up with the same conclusions. Time slot would be fine if I settled on a
small, finite set of nodes, but I am wanting to have the system
At present I am considering CSMA/CD with random "back off" delay when
My system has no masters or slaves but rather a collection of nodes with
differing functions. A number of nodes can "talk" to a number of other nodes
at any instant in time.
BTW: is the the send format better for my messages now ?
part 0 972 bytes content-type:text/html;How many nodes? This is a perfect situation for token passing depending on net
David Huisman <ADVMININGTECH.COM.AU> on 04/03/2000 12:47:40 AM david.huisman
Please respond to pic microcontroller discussion list <MITVMA.MIT.EDU> PICLIST
cc: (bcc: Andrew Kunz/TDI_NOTES)
Subject: Multi Access protocol
I am building an RS485 communication network which has several nodes connected
in multidrop to a common bus. (2 wire + GND ,half duplex).
I am using PIC16F86 and writing code in 'C'.
Does anyone have a reliable and compact protocol I can implement on my network
to allow nodes to communicate with each other with minimal collisions ?
Content-Disposition: attachment; filename="att1.htm"
Content-Description: Internet HTML
Attachment converted: growth:att1.htm 2 (TEXT/MSIE) (000095EE)
On Mon, 3 Apr 2000, David Huisman wrote:
> Thanks for your ideas. I did consider time slots and polling also but came
> up with the same conclusions. Time slot would be fine if I settled on a
> small, finite set of nodes, but I am wanting to have the system
> At present I am considering CSMA/CD with random "back off" delay when
> collisions occur.
Remember that RS-485 is limited to 32 nodes (if you strictly adhere to the
spec). In my case we were limited to 32 nodes on one RS485 cluster, but clusters
could be connected together with a RS485/fiber optic transceivers. So
theoretically the number nodes could be extended indefinitely. But for practical
reasons we limited ourselves to 32, 8 of which could potentially serve as a
If the number of nodes is large and each has something to say, then collision
detection will bog down your network. CD works well when very few nodes have
anything to say (and the number of nodes isn't too high).
> My system has no masters or slaves but rather a collection of nodes with
> differing functions. A number of nodes can "talk" to a number of other nodes
> at any instant in time.
Again, for this application I think that the arbitration scheme still works
best. Even without a master, communication can be sustained by the last node to
transmit a message. (But I'd still add a master if for nothing else to monitor
> BTW: is the the send format better for my messages now ?
I can read it in pine.
The version of RS485 drivers I use are not limited to 32 nodes, they are low
power devices which do not load the bus to the same extent as standard
More... (looser matching)
- Last day of these posts
- In 2000
, 2001 only
- New search...