The protocol :
A protocol consists of the definition of exchange frames. Several protocols have been defined. The best known protocol is the Modbus protocol (trademark registered by MODICON) and Profibus (Siemens) which are two standard dialogue protocols based on a hierarchical structure between a master and several slaves. Mikroelectronika also offers a non-standard protocol for communicating microcontrollers such as PIC, DsPIC, AVR and Intel. However, the user is free to define his own protocol.


- The master sends a request and waits for a response.
- Two slaves cannot talk to each other.
- The master-slave dialogue can be shown schematically in a successive form of point-to-point links.
- Communication mode: half-duplex. (2 wires or 4 wires)
- the master talks to all the slaves, without waiting for a response (broadcast).
There can be only one device transmitting on the line. No slave can send a message without a prior request from the master. Direct dialogue between slaves is impossible.
1. Message structure :
The master sends a message consisting of the following:

- The end of message detection is performed on a silence of duration greater than or equal to the transmission duration of 3 bytes.
- The slave responds with a message of the same type as the question message.
The Modbus protocol is widely used for communications of industrial programmable logic controllers and variable speed drives for electric motors.
2. Addressing
Bus subscribers are identified by addresses assigned by the user.
The address of each subscriber is independent of its physical location.
The addresses range from 1 to 64 for the Modbus protocol and from 1 to 255 in general and do not have to be assigned sequentially.
Two subscribers cannot have the same address.
3. Master to 1 slave exchange
The master interrogates a slave with a unique number on the network and waits for a response from this slave.

4. Master exchange to all slaves
The master broadcasts a message to all the slaves present on the network, they execute the order of the message without emitting a response.

5. General format of a frame
Two types of coding can be used to communicate on a Modbus network.
All the devices on the network must be configured according to the same type.
- RTU (Remote Terminal Unit) mode:
The frame does not have a message header byte or end of message bytes.
Its definition is as follows:

CRC16: polynomial check parameter (cyclical redundancy check).
The end of frame detection is performed on a silence greater than or equal to 3 bytes.
- ASCII mode :
Each field making up a frame is coded with 2 ASCII characters (2 times 8 bits).

LRC: It is the sum in modulo 256 hexadecimal of the content of the frame excluding delimiters, complemented to 2 and transmitted in ASCII.
6. Question / answer exchange frame
The question :
It contains a function code indicating to the slave addressed what type of action is requested.
The data contains additional information that the slave needs to perform this function.
The control bytes field allows the slave to ensure that the content of the question is complete.
The answer
If an error appears, the function code is changed to indicate that the response is an error response.
The data then contains a code (exception code) allowing the type of error to be known.
The control field allows the master to confirm that the message is valid.