Tripp Lite USA-19HS Owner's Manual for Windows v3.4 USA-19HS USB Serial Adapte - Page 32

Notes about the Work Around, What Should I Use?, Standard, Faster

Page 32 highlights

Keyspan:USB Serial Adapter for Windows-v3.4 Manual Notes about the Work Around In most situations, the serial adapter's lie is harmless or beneficial, even. However, in some circumstances, this lie gets us into trouble. There are several ways this can happen: Flow control: If the adapter is programmed to use flow control, the remote (receiving) end of the serial connection can ask the adapter to suspend its data transmission (e.g. if it's not ready to receive more data). Since this state can persist indefinitely, the "I'm done" indication, if it were sent early, could arrive at the host a significant amount ahead of time. As a result, the application might use the "I'm done" signal as an indication that the remote end is ready, leading to various kinds of trouble. Data flushing: Sometimes, an application will issue a "transmit flush" command to the adapter get rid of extra data. For example, let's say that an application sends "AAAA" to the adapter, and then, once it's received the "I'm done" indication, sends "BBBB." Now, let's say that some time after sending "BBBB," the application decides to cancel whatever part of the "BBBB" has yet to leave the serial port, and sends a "transmit flush" command to the adapter. If the adapter had been lying about being done sending "AAAA," it might still not be done, and the flush could purge the transmit FIFO of some of the A's (which is not what the application was expecting) in addition to the B's. Timing: In some applications, the receipt of the "I'm done" indication is used as a timing reference point. For example, an application could send a data stream like this: COMMAND The extra periods following COMMAND would be just used to establish a timing interval: the application would know that once the serial port said "I'm done," the receiver would have had at least 64 character times to process COMMAND. If the "I'm done" indication was sent early, the application might then do its subsequent action too early. There are many other communication protocols in which time periods are counted from the point that a message has been delivered. Any time you change the timing of the "I'm done" indication, you run the risk of interfering with such protocols. What Should I Use? There are two ways you can configure Tx Ack Advance: Standard: If you're using a baud rate of 57600 or less, you probably don't have a problem. The 1 millisecond delay will not significantly affect your throughput, and you can select this option. This option is also a good choice if you are running an application in which throughput is not an issue, or one in which guaranteeing 100% correct operation is important enough that you'd prefer not to risk having problems. Faster: If you're using a baud rate above 57600, you can simply try increasing this setting, and see whether it improves performance (in which case, great!), causes problems (in which case, don't use it), or doesn't make any difference (in which case it doesn't matter what you do). Rev 03jul13 This User Manual applies to the Keyspan USB Serial Adapter Software for Windows. Page 32

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36

Notes about the Work Around
In most situations, the serial adapter's lie is harmless or beneficial, even. However, in some
circumstances, this lie gets us into trouble. There are several ways this can happen:
Flow control: If the adapter is programmed to use flow control, the remote (receiving) end of the
serial connection can ask the adapter to suspend its data transmission (e.g. if it's not ready to receive
more data). Since this state can persist indefinitely, the "I'm done" indication, if it were sent early,
could arrive at the host a significant amount ahead of time. As a result, the application might use the
"I'm done" signal as an indication that the remote end is ready, leading to various kinds of trouble.
Data flushing: Sometimes, an application will issue a "transmit flush" command to the adapter get
rid of extra data. For example, let's say that an application sends "AAAA" to the adapter, and then,
once it's received the "I'm done" indication, sends "BBBB." Now, let's say that some time after
sending "BBBB," the application decides to cancel whatever part of the "BBBB" has yet to leave the
serial port, and sends a "transmit flush" command to the adapter. If the adapter had been lying
about being done sending "AAAA," it might still not be done, and the flush could purge the transmit
FIFO of some of the A's (which is not what the application was expecting) in addition to the B's.
Timing: In some applications, the receipt of the "I'm done" indication is used as a timing reference
point. For example, an application could send a data stream like this:
COMMAND
................................................................
The extra periods following COMMAND would be just used to establish a timing interval: the
application would know that once the serial port said "I'm done," the receiver would have had at
least 64 character times to process COMMAND. If the "I'm done" indication was sent early, the
application might then do its subsequent action too early.
There are many other communication protocols in which time periods are counted from the point
that a message has been delivered. Any time you change the timing of the "I'm done" indication,
you run the risk of interfering with such protocols.
What Should I Use?
There are two ways you can configure Tx Ack Advance:
Standard
: If you're using a baud rate of 57600 or less, you probably don't have a problem.
The 1
millisecond delay will not significantly affect your throughput, and you can select this option. This
option is also a good choice if you are running an application in which throughput is not an issue,
or one in which guaranteeing 100% correct operation is important enough that you'd prefer not to
risk having problems.
Faster
: If you're using a baud rate above 57600, you can simply try increasing this setting, and see
whether it improves performance (in which case, great!), causes problems (in which case, don't use
it), or doesn't make any difference (in which case it doesn't matter what you do).
Keyspan:USB Serial Adapter for Windows-v3.4 Manual
This User Manual applies to the Keyspan USB Serial Adapter Software
for
Windows
.
Rev 03jul13
Page
32