>>выключите аппаратное FIFO если оно есть на плате.
>Не подскажете, можно ли это сделать по стандарту UART?
если этот чип совместим с UART 16550 и выше то да, для FIFO есть регистр управления, через который им можно рулить.
http://ianzag.megasignal.com/ftp/pub/doc/std/comm/serial/AN-491.pdf
http://ianzag.megasignal.com/ftp/pub/doc/std/comm/serial/8250_2.txt
это относится к чипам типа 8250 и выше, которые предназначались для RS232, но может помочь и для других интерфейсов. весь вопрос в совестимости.
если вам так нужен жесткий тайминг, то FIFO конечно же лучше запретить бо ожидание в FIFO на примем следующего байта лежат где-то в описываемых вами интервалах.
другой вопрос конечно - а сможет ли Linux стабильно выдержать такой тайминг даже при корректно настроеном UARTе :) может, имеет смысл пренести такого рода логику в ядро для снижения накладных расходов по времени. взять сужествующий драйвер и немного его подправить под себя.
>У нас пока подозрение, что задержка связана с уровнями абстракции,
>при работе с СОМ-портом:
>http://www.linux.it/kerneldocs/serial/serial.html
>
>Т.е. при работе с /dev/ttyS# прежде, чем мы достучимся до
>serial.c, который представляет собой самый низкий уровень и,
>видимо, работает быстро, мы натыкаемся по дороге на всякие
>tty_io.c и n_tty.c, которые и приводят к появлению задержек...
извините, на данный момент ничего не скажу по поводу Linux :)
>За подсказку спасибо - попробуем найти метод отключить FIFO,
>хотя пока не знаю где искать, непохоже, что обслуживающая порт
>микросхема 16C2852 это поддерживает...
если можно, ссылку на datasheet по микросхеме. там посмотрим, что она умеет а что нет.
// wbr