[Lazarus] SdpoSerial Tx and Rx buffers?

José Mejuto joshyfun at gmail.com
Fri Feb 18 16:17:46 CET 2011


Hello Lazarus-List,

Friday, February 18, 2011, 12:37:53 PM, you wrote:

>> Both have FIFOs, in fact the FIFO was implemented for the transmitter
>> (sender) to achive a speed higher than 38400 bps and before the chip
>> goes out a receive FIFO was added also.
HPD> Correction: the FIFO was implemented first for the receiver, because
HPD> lost bytes can not be recovered, and not all lines or senders allow for
HPD> hardware handshake (RTS/CTS) - that was a big problem with the old
HPD> devices. The baudrate is generated by the device, so that sending never
HPD> suffered from timing problems. [In synchronous protocol the device
HPD> inserts sync codes automatically, when no new data is supplied in time]

Well, maybe we can talk for hours about this :) as I can not show you
a document about this topic, but I'll show you my background about why
transmission buffer FIFO was more important in the beginning.
In the past times most communications in serial devices was
synchronous, so in the receiver part due the possible errors in
transferences and, of course, buffer overruns some protocols can have
some simple error correction techniques. The problem appears when
serial communications want to be far away from 38400 bps as the time
needed to raise the interrupt and just put a new byte in the buffer (1
byte buffer) is more than the character frame time which in fact
raises a buffer underrun error and a serial comunication break (break,
not error). What a change in less than 20 years! :)

-- 
Best regards,
 José





More information about the Lazarus mailing list