On Fri, 15 Jul 2016 21:30:46 -0700 (PDT),
raimond....@gmail.com
wrote:
>> Modbus RTU requires 1.5 and 3.5 character idle times between messages
>> i.e. 15 to 35 bit times so the 0-7 bit "guard time" is too little :-(.
>>
>1.5 is "inter-character" time inside a message. This is the max. idle time between
>characters (not messages) inside a valid message.
Yes
>3.5 is the "inter-message" idle time.
Yes
I was just trying to point that the 0-7 bit time is too little.
>> Modbus RTU also requires putting the transmitter into the actively
>> driven idle "1" state, 1.5 character times (15 bit times) before
>> starting to send the actual message.
>>
>I didn't heard of that until now. Please give a reference.
The inter-character time and the preamble times are closely related.
In the time when the original RS-485 standard was written, "fail safe"
termination was apparently just an option. Many systems did not have
any terminations or pull up/down resistors.
In such a system, when a station turned the transmitter off, the line
was in a very high impedance state, floating anywhere and sensitive to
noise coupled asymmetrically to the both lines. This could cause some
false start bit generations, i.e. a sufficiently long (a half bit time
at least "0" state, which is interpreted as a start bit. The UART
would then often capture 0xFF, 0xFE or even 0xF0 depending of the
width of the spurious "0" pulse (remember LSBs is sent first
immediately after the start bit).
The 1.5 inter-character limit helps separate spurious noise from the
actual start of the message. Turning the transmitter on 1.5 character
times before the actual frame puts the line into a low impedance idle
"1" state, eliminating most of the spurious start bits 1.5 character
times before the actual frame reception.
Having a false start bit less than 1.5 character times before the
actual frame, will put a spurious prefix character in front of the
received Modbus message and if less than 1 character times before the
actual frame will even destroy the bit synch of the whole frame.
Thus, it is a good idea to stabilize the line with a low impedance
idle state just before the actual message frame.