Answer the question
In order to leave comments, you need to log in
Is it possible to establish communication between devices by wire using the RS485 interface without using a data transfer protocol such as Modbus ??
Two devices, such as an Arduino, communicate with each other via a wired RS485 interface. The text is typed on the keyboard of one, and its appearance is read on the screen of another Arduino. And vice versa . Moreover, the program does not specify Master and Slave, which may not be necessary (I don’t know), but data transmission and reception works. That is, as I understand it, it works without a protocol at all, and if the text is typed simultaneously on two keyboards, then the data will be transferred to the rhinestone in both directions. Will the microcircuit fly out in the RS485 module? And you can communicate without a protocol? That is, when there is no this modbas package with bits.
https://www.youtube.com/watch?v=vG89PSj8vZw
Answer the question
In order to leave comments, you need to log in
data transmission simultaneously in both directions in RS485 will not work, because the interface was not designed for this. learn RS422.
there is no master/slave in RS485, it is the functionality of a "higher" protocol. in RS485, you can hang a bunch of devices on one bus.
running to school to learn what a protocol is :)
without a protocol, communication is simple and elementary: you send bytes - you receive bytes.
the RS485 hardware level is resistant to simultaneous transmission collisions - to put it simply, the microcircuit will not burn out. the 485 chip does not care at all to all the bytes that you send.
If several devices are simultaneously transmitting on RS485, then no one will be able to receive such a transmission.
At the same time, the microcircuits themselves will not fail immediately, but they will begin to overheat.
With prolonged overheating, they will fail. Modern microcircuits turn off when overheated.
Turn on again when cool enough after a while.
With manual keyboard input, true simultaneity is unlikely.
Therefore, it is quite possible to do without a protocol and ignore extremely rare collisions with receive errors.
But when the exchange is carried out by all devices on the bus and very intensively, then the easiest way is to make MODBUS.
To work on the MODBUS protocol, the user himself must decide who he will have a master on the bus.
Only the master decides who is on the bus and when he is transmitting or receiving. And only the master can, without asking anyone, suddenly turn on the transmission (if all previous exchange sessions are over).
Slaves always by default work on reception and listen to the commands of the master. And only when they receive a command from the master to transmit something, they turn on the transmission and transmit a strictly specified amount of data in a strictly specified time interval. If they violate this rule, then it is considered an accident or a developer error.
This is how the problem of collisions is solved with simultaneous transmission to RS485 with the MODBUS protocol.
But this is not the only way to deal with collisions.
The microcircuit should go into current limiting if it is normal. They hold both cz and oppositions.
You can come up with your own protocol, not necessarily ready to use.
M.b. you will be even more interested in rs422 and two twisted pairs. Then you can use a simple uart without thinking about the protocols.
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question