Technical question about bit stop number with none parity

  • Thread starter Francesco Savino
  • Start date
F

Thread Starter

Francesco Savino

Good morning,

About the stop bits number with parity NONE, on Modbus Serial Line Protocol and Implementation Guide V1.02, page 12, i read: "the use of no parity requires 2 stop bits".

Why many Modbus slave or Master with parity none, use only one stop bit? Shouldn't they use two stop bits with no parity?

francescosavino76 [at] yahoo.it
 
Yes, but as you've noticed, many do not use two stops for no parity.

In fact, I find it rarer to find either a slave or a master that offers two stop bits for no parity, which assume 1 stop bit, regardless.

Why? Lack of economic sanction on the offenders.

Name a customer who has refused to buy a Modbus device because of its lack of compliance with the Standard in this regard...

David
 
J

Jerry Miille

Sure, if they strictly follow the specifications!

But, there are many, many suppliers of "Modbus" equipment and over the years, there are many, many different "versions" out there. Some are compatible and some are not. It is very common with asynchronous serial communication to be able to set the parity bits to Even, Odd, None, Mark or Space and since Modbus RTU is an asynchronous serial protocol, it is very common to see the setting as none and stop bits to one.

There are actually a couple of reasons that this makes sense. First, it adds very little if anything to error detection because Modbus RTU uses a CRC-16 error check and second, it adds another bit time to every byte in the messages. Maybe in some of today's high-speed circuits this is not so important but in the days of 1200 baud (or slower) modem communication every millisecond counts!

It only makes sense to me that to be compatible with the most equipment, that all the serial port parameters be configurable (baud rate, parity and stop bits). The number of data bits must be eight for Modbus RTU.

Jerry Miille
 
F

Francesco Savino

Before all,Thanks a lot for your answers.

The problem was born because two days ago i did some test with Proface touch panel and with Hakko touch panel.

I made a test network with 2 slave with parity none and two stop bits set up and two slave with parity none and one stop bit.
Hakko touch screen, i set up it with parity none and 2 stop bits, read all the slave with 1 or 2 stop bits without any timeout.
Proface touch screen with 2 stop bit set up read only the slave with 2 stop bits and with one stop bit set up only the others with 1 stop bit.

For this i wanted to understand why this discordancy and why i had slaves with parity none and only one stop bit.
Now i've understood: free software implementations!

Thanks again
Regard
Francesco Savino
 
Top