This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

89C51 Networking

Hi!
I want to Know how to connect and program multiple AT89c51 on a common serial bus so that no one can produce conflict with another client AT89C51, how can i ensure the bus conflict in case of multi master system.What would be the maximum number of clients i can handle on this common bus system.can i find some theory/stuff/material regarding this issure.

Regards!
Ahmad Kamal.

Parents
  • Master-slave is (typically?) collision avoidance, whereas multi-master (typically?) is collision detect.

    You're omitting the middle way, as used by CAN bus: arbitration. This allows several simultaneously started messages, forming a collision, but makes sure that by some point in the communication cycle, the situation is resolved, leaving a sole surviving transaction going on unharmed by the collision.

    One way of looking at this is as a collision avoidance system using a many-level hierarchy of master privileges, defined dynamically on a per-message basis, rather than statically on a per-node basis.

    Another way of looking at it is as a collision detection system that avoids wasting the bus time already used up by the time the collicision is detected. It does this by allowing one of the colliding messages to continue, as opposed to killing off all of them, which would eat up bandwidth proportional to the collision rate.

    [...]
    The Keil rand() insert the same sequence every time it is used.
    Of course it does --- as does every correctly implemented C library's rand() in the world. It's a requirement for rand() to behave that way, and the reason why srand() exists.

Reply
  • Master-slave is (typically?) collision avoidance, whereas multi-master (typically?) is collision detect.

    You're omitting the middle way, as used by CAN bus: arbitration. This allows several simultaneously started messages, forming a collision, but makes sure that by some point in the communication cycle, the situation is resolved, leaving a sole surviving transaction going on unharmed by the collision.

    One way of looking at this is as a collision avoidance system using a many-level hierarchy of master privileges, defined dynamically on a per-message basis, rather than statically on a per-node basis.

    Another way of looking at it is as a collision detection system that avoids wasting the bus time already used up by the time the collicision is detected. It does this by allowing one of the colliding messages to continue, as opposed to killing off all of them, which would eat up bandwidth proportional to the collision rate.

    [...]
    The Keil rand() insert the same sequence every time it is used.
    Of course it does --- as does every correctly implemented C library's rand() in the world. It's a requirement for rand() to behave that way, and the reason why srand() exists.

Children
No data