Thread Starter


In UART there is start bit and stop bit for every data send.
While in case of Modbus Protocol there is in 3.5 char. times for start and stop so how they are made compatible when the comm is done though the Pc with a microcontroller as in my case.
Please let me know.
The at least 3.5 char. times is just an interval between the Modbus messages. It can be more than 3.5 characters. It doesn't have to be exactly 3.5 characters. Personally with the speed on microcontrollers and the Tx and Rx buffers in UARTs today this consideration is rarely a problem.

Lynn August Linse

ou mis-understand the "3.5 char timeout".

Basically, you'll have say a 10 or 11-bit async char (start+data+parity+stop). So if this is 9600 baud, this works out to about 1msec per char. This is standard and you shouldn't need anything special.

Thus the 3.5 char timeout defined in formal Modbus/RTU would means if (in theory) you slave receives say the 8th char of a message, then does NOT receive another char in about 3.5 msec it is free to assume that the message has ended and is complete with those 8 chars. However, few slaves are so strict as few Windows PC can send data so consistently without a few msec break now and then for various low-level OS services (ie: serial driver has lower priority than desired in this case).

Any async UART can be used, just make sure your device can keep up a constant stream of bytes UNTIL your message is done - this means things like interrupt service etc cannot cause a pause of more than 3.5 char times in adding more data to your UART TX buffer if it were to run out of data to send.


Lynn August Linse, Senior IA Application Engineer
15353 Barranca Parkway, Lantronix Inc, Irvine CA 92618
[email protected]
Tel: (949)300-6337 Fax: (949)453-7152