lkml.org 
[lkml]   [1999]   [Oct]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: serial.c (half duplex support)
   From: "David Schwartz" <davids@webmaster.com>
Date: Mon, 25 Oct 1999 15:46:39 -0700

There is an end of packet character. It consists of 27 idle bit
times.

Ha, ha. Very funny.

The problem with detecting the idle time is that at 9600 bps, an idle
bit is just a little bit over a 1ms; and at high baud rates, the bit
time becomes an even smaller fraction of a clock tick.

This means that in order to measure the inter-character arrival time,
you need to use a high-resolution timing source; and while we have one
on the i386 (the timestamp instruction, on modern chips), it's not
portable --- and remember, the serial driver has to work on
architectures other than the i386: the alpha, PA-RISC, etc. (Sure, on
some of the other architectures the clock tick is 1/1024 instead of
1/100, but that still isn't fast enough for baud rates higher than 9600
bps).

If the protocol had used an explicit ASCII character (with some kind of
obvious escape mechanism) it would mean that the OS wouldn't have to do
timing measurements at the interrupt receiver. It's easy enough to do
handle the timing in hardware with a one-shot, but it's much more of a
mess to do that in software.

- Ted

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:54    [from the cache]
©2003-2011 Jasper Spaans